Class: SubjectsController
- Inherits:
-
ApplicationController
show all
- Defined in:
- frontend/app/controllers/subjects_controller.rb
Instance Method Summary
(collapse)
can_access?, permission_mappings, set_access_control
Instance Method Details
- (Object) create
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'frontend/app/controllers/subjects_controller.rb', line 35
def create
handle_crud(:instance => :subject,
:model => JSONModel(:subject),
:on_invalid => ->(){
return render_aspace_partial :partial => "subjects/new" if inline?
return render :action => :new
},
:on_valid => ->(id){
if inline?
render :json => @subject.to_hash if inline?
else
flash[:success] = I18n.t("subject._frontend.messages.created")
return redirect_to :controller => :subjects, :action => :new if params.has_key?(:plus_one)
redirect_to :controller => :subjects, :action => :edit, :id => id
end
})
end
|
- (Object) defaults
64
65
66
67
68
69
70
71
72
|
# File 'frontend/app/controllers/subjects_controller.rb', line 64
def defaults
defaults = DefaultValues.get 'subject'
values = defaults ? defaults.form_values : {:vocab_id => JSONModel(:vocabulary).id_for(current_vocabulary["uri"]), :terms => [{}]}
@subject = JSONModel(:subject).new(values)._always_valid!
render "defaults"
end
|
- (Object) delete
121
122
123
124
125
126
127
|
# File 'frontend/app/controllers/subjects_controller.rb', line 121
def delete
subject = JSONModel(:subject).find(params[:id])
subject.delete
flash[:success] = I18n.t("subject._frontend.messages.deleted", JSONModelI18nWrapper.new(:subject => subject))
redirect_to(:controller => :subjects, :action => :index, :deleted_uri => subject.uri)
end
|
- (Object) edit
31
32
33
|
# File 'frontend/app/controllers/subjects_controller.rb', line 31
def edit
@subject = JSONModel(:subject).find(params[:id])
end
|
- (Object) index
10
11
12
13
|
# File 'frontend/app/controllers/subjects_controller.rb', line 10
def index
@search_data = Search.global({"sort" => "title_sort asc"}.merge(params_for_backend_search.merge({"facet[]" => SearchResultData.SUBJECT_FACETS})),
"subjects")
end
|
- (Object) merge
114
115
116
117
118
|
# File 'frontend/app/controllers/subjects_controller.rb', line 114
def merge
handle_merge( params[:refs],
JSONModel(:subject).uri_for(params[:id]),
'subject')
end
|
- (Object) new
19
20
21
22
23
24
25
26
27
28
29
|
# File 'frontend/app/controllers/subjects_controller.rb', line 19
def new
@subject = JSONModel(:subject).new({:vocab_id => JSONModel(:vocabulary).id_for(current_vocabulary["uri"]), :terms => [{}]})._always_valid!
if user_prefs['default_values']
defaults = DefaultValues.get 'subject'
@subject.update(defaults.values) if defaults
end
render_aspace_partial :partial => "subjects/new" if inline?
end
|
- (Object) show
15
16
17
|
# File 'frontend/app/controllers/subjects_controller.rb', line 15
def show
@subject = JSONModel(:subject).find(params[:id])
end
|
- (Object) terms_complete
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
# File 'frontend/app/controllers/subjects_controller.rb', line 94
def terms_complete
query = "#{params[:query]}".strip
if !query.empty?
begin
results = JSONModel::HTTP::get_json("/terms", :q => params[:query])['results']
return render :json => results.map{|term|
term["_translated"] = {}
term["_translated"]["term_type"] = I18n.t("enumerations.subject_term_type.#{term["term_type"]}")
term
}
rescue
end
end
render :json => []
end
|
- (Object) update
53
54
55
56
57
58
59
60
61
62
|
# File 'frontend/app/controllers/subjects_controller.rb', line 53
def update
handle_crud(:instance => :subject,
:model => JSONModel(:subject),
:obj => JSONModel(:subject).find(params[:id]),
:on_invalid => ->(){ return render :action => :edit },
:on_valid => ->(id){
flash[:success] = I18n.t("subject._frontend.messages.updated")
redirect_to :controller => :subjects, :action => :edit, :id => id
})
end
|
- (Object) update_defaults
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# File 'frontend/app/controllers/subjects_controller.rb', line 74
def update_defaults
begin
DefaultValues.from_hash({
"record_type" => "subject",
"lock_version" => params[:subject].delete('lock_version'),
"defaults" => cleanup_params_for_schema(
params[:subject],
JSONModel(:subject).schema)
}).save
flash[:success] = I18n.t("default_values.messages.defaults_updated")
redirect_to :controller => :subjects, :action => :defaults
rescue Exception => e
flash[:error] = e.message
redirect_to :controller => :subjects, :action => :defaults
end
end
|