OSDN Git Service

temp
[pettanr/pettanr.git] / app / controllers / sheets_controller.rb
1 class SheetsController < ApplicationController
2   layout 'test' if MagicNumber['test_layout']
3   if MagicNumber['run_mode'] == 0
4     before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
5     before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
6   else
7     before_filter :authenticate_reader, :only => [:index, :show, :play]
8     before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
9     before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
10   end
11   before_filter :authenticate_admin!, :only => [:list, :browse]
12
13   @@model = Sheet
14   def index
15     set_filer
16
17     respond_to do |format|
18       format_filer format
19       format.json { render json: @items.to_json(@@model.list_json_opt) }
20       format.atom 
21       format.rss
22     end
23   end
24
25   def show
26     @item = Sheet.show(params[:id], @operators)
27
28     respond_to do |format|
29       format.html {
30         @sheet = @item
31         if @operators.author
32           @new_panels = Panel.mylist(@operators.author, 1, 5)
33           @new_stories = Story.mylist(@operators.author, 1, 5)
34           @fresh_stories = StorySheet.mylist(@operators.author, 1, 5).map {|ss| ss.story}
35         end
36       }
37       format_prof format
38       format.json { render json: @item.to_json(Sheet.show_json_opt) }
39       format.atom 
40       format.rss 
41     end
42   end
43
44   def play
45     @sheet = Sheet.show(params[:id], [@user, @admin])
46     respond_to do |format|
47       format.html {
48         if @author
49           @new_panels = Panel.mylist(@author, 1, 5)
50         end
51       }
52       format.json {render json: @sheet.to_json(Sheet.show_json_opt)}
53       format.jsonp {
54         render :json => "callback(" + @sheet_panels.to_json_list + ");"
55       }
56     end
57   end
58   
59   def count
60     @sheet = {:count => Sheet.visible_count}
61     respond_to do |format|
62       format.json { render json: @sheet.to_json }
63     end
64   end
65   
66   def list
67     @sheets = Sheet.all
68
69     respond_to do |format|
70       format.html { render layout: 'system' }# index.html.erb
71       format.json { render json: @sheets }
72     end
73   end
74
75   def browse
76     @sheet = Sheet.find(params[:id])
77
78     respond_to do |format|
79       format.html { render layout: 'system' } # show.html.erb
80       format.json { render json: @sheet }
81     end
82   end
83   
84   def new
85     @sheet = Sheet.new
86     @sheet.supply_default
87     respond_to do |format|
88       format.html # new.html.erb
89       format.js
90       format.json { render json: @sheet.to_json(Sheet.show_json_opt) }
91     end
92   end
93
94   def edit
95     @sheet = Sheet.edit(params[:id], @author)
96     respond_to do |format|
97       format.html 
98       format.js
99     end
100   end
101
102   def create
103     @sheet = Sheet.new
104     @sheet.supply_default 
105     jsn = nil
106     if params[:json]
107       jsn = JSON.parse_no_except(params[:json])
108     end
109     @prm = params[:sheet] || jsn
110
111     respond_to do |format|
112       if @sheet.store @prm, @author
113         flash[:notice] = I18n.t('flash.notice.created', :model => Sheet.model_name.human)
114         format.html { redirect_to @sheet }
115         format.json { render json: @sheet.to_json(Sheet.show_json_opt), status: :created, location: @sheet }
116       else
117         flash[:notice] = I18n.t('flash.notice.not_created', :model => Sheet.model_name.human)
118         format.html { render action: "new" }
119         format.json { render json: @sheet.errors, status: :unprocessable_entity }
120       end
121     end
122   end
123
124   def update
125     @sheet = Sheet.edit(params[:id], @author)
126     jsn = nil
127     if params[:json]
128       jsn = JSON.parse(params[:json])
129     end
130     @prm = params[:sheet] || jsn
131     respond_to do |format|
132       if @sheet.store @prm, @author
133         flash[:notice] = I18n.t('flash.notice.updated', :model => Sheet.model_name.human)
134         format.html { redirect_to @sheet }
135         format.json { head :ok }
136       else
137         flash[:notice] = I18n.t('flash.notice.not_updated', :model => Sheet.model_name.human)
138         format.html { render action: "edit" }
139         format.json { render json: @sheet.errors, status: :unprocessable_entity }
140       end
141     end
142   end
143
144   def destroy
145     @sheet = Sheet.edit(params[:id], @author)
146     respond_to do |format|
147       if @sheet.destroy_with_sheet_panel
148         flash[:notice] = I18n.t('flash.notice.destroyed', :model => Sheet.model_name.human)
149         format.html { redirect_to '/home/sheets' }
150         format.json { head :ok }
151       else
152         flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => Sheet.model_name.human)
153         format.html { redirect_to @sheet }
154         format.json { render json: @sheet.errors, status: :unprocessable_entity }
155       end
156     end
157   end
158 end