OSDN Git Service

fix new element dialog
[pettanr/pettanr.git] / app / controllers / comics_controller.rb
1 class ComicsController < ApplicationController
2   if Manifest.manifest.magic_numbers['run_mode'] == 0
3     before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
4     before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
5   else
6     before_filter :authenticate_reader, :only => [
7       :index, :show, :play, :by_story, :by_author
8     ]
9     before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
10     before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
11   end
12   
13   def index
14     filer_list
15   end
16   
17   def by_story
18     filer_list
19   end
20   
21   def by_author
22     filer_list
23   end
24   
25   def show_html_format format
26     format.html {
27       @play_list = Locmare::ListGroup.list(
28         'comic_stories', 'by_comic', @operators, 
29         {:id => @item.id, :page_size => -1}  # set no limit options
30       )
31     }
32   end
33   
34   def show
35     set_show
36     respond_to do |format|
37       show_html_format format
38       show_prof_format format
39       show_json_format format
40       format.atom 
41       format.rss 
42     end
43   end
44   
45   def play
46     set_play
47     @list.options.merge!({'page_size' => -1})    # no limit no pager
48     @list.reset
49     play_list
50     respond_to do |format|
51       format.html {
52         if @item.own? @operators
53           @new_story_items = assist_items('home', 'stories')
54         end
55       }
56       list_json_format @list, format
57     end
58   end
59   
60   def new
61     form_new
62   end
63   
64   def edit
65     form_edit
66   end
67   
68   def create
69     set_model
70     @item = @my_model_class.new
71     @item.supply_default 
72     @my_model_class.fold_extend_settings params[@my_model_class.item_name]
73     @item.attributes = params[@my_model_class.item_name]
74     @item.overwrite @operators
75     render_create
76   end
77   
78   def update
79     set_edit
80     @my_model_class.fold_extend_settings params[@my_model_class.item_name]
81     @item.attributes = params[@my_model_class.item_name]
82     @item.overwrite @operators
83     render_update
84   end
85   
86   def destroy
87     @item = Comic.edit(params[:id], @operators)
88     respond_to do |format|
89       if @item.destroy_with_leafs
90         flash[:notice] = I18n.t('flash.notice.destroyed', :model => Comic.model_name.human)
91         format.html { redirect_to '/home/comics' }
92         format.json { head :ok }
93       else
94         flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => Comic.model_name.human)
95         format.html { redirect_to @item }
96         format.json { render json: @item.errors, status: :unprocessable_entity }
97       end
98     end
99   end
100 end