| Class | ListController |
| In: |
app/controllers/list_controller.rb
|
| Parent: | ApplicationController |
一覧設定画面の制御を行う。
新規の一覧を追加する。
# File app/controllers/list_controller.rb, line 12
12: def add
13: default_list = DefaultList.find_by_user_id_and_product_id(User.current_id, @product.id)
14: source = default_list && Display.find_by_id(default_list.display_id)
15: source ||= DisplayToList.find_by_product_id(@product.id)
16: raise ActiveRecord::RecordNotFound, "source list not found" unless source
17: source.private_copy
18: load_displays
19: view_list
20: render :template => "list/index"
21: end
既存の一覧を削除する。
# File app/controllers/list_controller.rb, line 24
24: def destroy
25: verify_display_id
26: @display.destroy
27: view_detail
28: x_close_or_redirect_to :action => "index", :id => @product.id
29: end
既存の一覧を編集するための画面を開く。
# File app/controllers/list_controller.rb, line 32
32: def edit
33: verify_display_id
34: view_detail
35: @mode = :edit
36: if flash[:pick]
37: # restore temporary input values.
38: session[:picker] ||= {}
39: if picker_session = session[:picker]
40: @display.name = picker_session[:display_before_picker][:name]
41: if picker_session[:set_default_before_picker].to_i > 0
42: def @display.default_list?() true; end
43: else
44: def @display.default_list?() false; end
45: end
46: end
47: session[:picker] = nil
48: case flash[:pick][:lump_pick]
49: when "company"
50: @roleable = Company.find(flash[:pick][:company])
51: when "organization"
52: @roleable = Organization.find(flash[:pick][:organization])
53: when "person"
54: @roleable = Person.find(flash[:pick][:person])
55: when "group"
56: @roleable = Group.find(flash[:pick][:group])
57: end
58: end
59: render :partial => "detail"
60: end
共有一覧の内容情報を取得する
# File app/controllers/list_controller.rb, line 142
142: def glance_to_import
143: view_list # x_form_tag needs @current_view
144: @shared_list = SharedList.find(params[:shared_list_id].to_i)
145: render :partial => "glance"
146: end
共有一覧をインポートする画面を表示する。
# File app/controllers/list_controller.rb, line 121
121: def import
122: view_import
123: render :partial => "import"
124: end
一覧を一覧表示する。
# File app/controllers/list_controller.rb, line 6 6: def index 7: load_displays 8: view_list 9: end
選択された項目を並び替える。
# File app/controllers/list_controller.rb, line 90
90: def order_selected
91: verify_display_id
92: if params[:selected_items].respond_to?(:map)
93: ids = params[:selected_items].map(&:to_i)
94: items = @display.items
95: ids.each_with_index do |id,i|
96: items = items.delete_if do |item|
97: r = (item.id == id)
98: if r
99: item.layout = i + 1
100: item.selected = true
101: item.save!
102: end
103: r
104: end
105: end
106: items.each do |item|
107: item.selected = false
108: item.save!
109: end
110: end
111: render :nothing => true
112: end
選択されていない項目を並び替える。
# File app/controllers/list_controller.rb, line 115
115: def order_unselected
116: # nothing to do
117: render :nothing => true
118: end
共有一覧を検索する
# File app/controllers/list_controller.rb, line 127
127: def search_to_import
128: view_import
129: @target = params[:target]
130: unless @target
131: render :partial => "import"
132: return
133: end
134: @shared_lists = SharedList.find(:all).select do |shared_list|
135: (@target[:display_sub].blank? || shared_list.display.name[@target[:display_sub]]) &&
136: (@target[:creator_sub].blank? || shared_list.creator.name[@target[:creator_sub]])
137: end
138: render :partial => "import"
139: end
共有一覧を選択する
# File app/controllers/list_controller.rb, line 149
149: def select_to_import
150: shared_list = SharedList.find(params[:shared_list_id].to_i)
151: shared_list.export(User.current.person)
152: view_detail
153: x_close_or_redirect_to :action => "index", :id => @product.id
154: end
既存の一覧を更新する。
# File app/controllers/list_controller.rb, line 63
63: def updateupdateupdate
64: verify_display_id
65: view_detail
66: return if use_picker
67: Language.all.each do |lang|
68: @display.__send__("name_#{lang.code}=", params[:display][:name])
69: end
70: @display.save!
71: default_list = DefaultList.find_or_initialize_by_product_id_and_user_id(@product.id, User.current_id)
72: if params[:set_default].to_i > 0
73: # set default
74: default_list.display_id = @display.id
75: default_list.save!
76: elsif !default_list.new_record? && default_list.display_id == @display.id
77: # drop default
78: default_list.destroy
79: end
80: if params[:share].to_i > 0
81: # create a shared list
82: roleable_class = params[:roleable_type].to_s.classify.constantize
83: roleable = roleable_class.find(params[:roleable_id].to_i)
84: @display.share(roleable)
85: end
86: x_close_or_redirect_to :action => "index", :id => @product.id
87: end