| Class | DocumentController |
| In: |
app/controllers/document_controller.rb
|
| Parent: | ApplicationController |
関連文書の編集を取り止める。
# File app/controllers/document_controller.rb, line 43
43: def cancel
44: prepare_to_edit
45: session[:added_documents].clear
46: session[:deleted_documents].clear
47: @documents = @relatable ? @relatable_product.documents_for(@relatable) : []
48: return render(:action => "summary")
49: end
関連文書を削除する。
# File app/controllers/document_controller.rb, line 20
20: def delete
21: prepare_to_edit
22: deleted = params[:deleted] || {}
23: proc = lambda do |d|
24: if d.new_record?
25: deleted.fetch("#{d.target_type}_#{d.target_id}", nil).to_i == 1
26: else
27: deleted.fetch("#{d.id}", nil).to_i == 1
28: end
29: end
30: session[:added_documents].delete_if(&proc)
31: @documents.delete_if(&proc)
32: deleted.each_pair do |key, value|
33: if key.match(/\A([0-9]+)\z/) && value.to_i == 1
34: if d = Document.find_by_id(key)
35: session[:deleted_documents] |= [d]
36: end
37: end
38: end
39: return render(:action => "select")
40: end
関連文書を編集する。
# File app/controllers/document_controller.rb, line 10
10: def edit
11: prepare_to_edit
12: end
関連付ける文書を選択する。
# File app/controllers/document_controller.rb, line 61
61: def select
62: prepare_to_edit
63: unless @documents.find {|d| d.target_id == params[:target_id].to_i && d.target_type == params[:target_type] && d.target_product_id == params[:target_product_id].to_i}
64: d = Document.new(:relatable_id => defined?(@relatable) ? @relatable.id : nil,
65: :relatable_type => params[:type],
66: :relatable_product_id => @relatable_product.id,
67: :target_id => params[:target_id].to_i,
68: :target_type => params[:target_type],
69: :target_product_id => params[:target_product_id].to_i)
70: session[:added_documents].push(d)
71: @documents.push(d)
72: end
73: end
関連文書の一覧を表示する。
# File app/controllers/document_controller.rb, line 15
15: def show
16: prepare
17: end
関連文書に関する現在のサマリを表示する。
# File app/controllers/document_controller.rb, line 52
52: def summary
53: prepare
54: end
(試験用)
# File app/controllers/document_controller.rb, line 92
92: def test
93: prepare
94: @current_view = "view_m"
95: @sub_view = "view_de"
96: end
関連付けの相互性を有効/無効にする。
# File app/controllers/document_controller.rb, line 76
76: def toggle_mutual
77: prepare_to_edit
78: m = params[:mutual] || {}
79: proc = lambda do |d|
80: if d.new_record?
81: d.mutual = (m.fetch("#{d.target_type}_#{d.target_id}", nil).to_i == 1)
82: else
83: d.mutual = (m.fetch("#{d.id}", nil).to_i == 1)
84: end
85: end
86: session[:added_documents].each(&proc)
87: @documents.each(&proc)
88: return render(:action => "select")
89: end