Class: RepositoriesController
- Inherits:
-
ApplicationController
show all
- Defined in:
- frontend/app/controllers/repositories_controller.rb
Instance Method Summary
(collapse)
can_access?, permission_mappings, set_access_control
Instance Method Details
- (Object) create
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'frontend/app/controllers/repositories_controller.rb', line 37
def create
generate_names(params[:repository])
handle_crud(:instance => :repository,
:model => JSONModel(:repository_with_agent),
:on_invalid => ->(){
if @exceptions[:errors]["repo_code"]
@exceptions[:errors]["repository/repo_code"] = @exceptions[:errors].delete("repo_code")
end
return render_aspace_partial :partial => "repositories/new" if inline?
return render :action => :new
},
:on_valid => ->(id){
MemoryLeak::Resources.refresh(:repository)
return render :json => @repository.to_hash if inline?
flash[:success] = I18n.t("repository._frontend.messages.created", JSONModelI18nWrapper.new(:repository => @repository))
return redirect_to :controller => :repositories, :action => :new, :last_repo_id => id if params.has_key?(:plus_one)
redirect_to :controller => :repositories, :action => :show, :id => id
})
end
|
- (Object) delete
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'frontend/app/controllers/repositories_controller.rb', line 95
def delete
repository = JSONModel(:repository).find(params[:id])
begin
repository.delete
rescue ConflictException => e
flash[:error] = I18n.t("repository._frontend.messages.cannot_delete_nonempty")
return redirect_to(:controller => :repositories, :action => :show, :id => params[:id])
end
MemoryLeak::Resources.refresh(:repository)
flash[:success] = I18n.t("repository._frontend.messages.deleted", JSONModelI18nWrapper.new(:repository => repository))
redirect_to(:controller => :repositories, :action => :index, :deleted_uri => repository.uri)
end
|
- (Object) edit
61
62
63
|
# File 'frontend/app/controllers/repositories_controller.rb', line 61
def edit
@repository = JSONModel(:repository_with_agent).find(params[:id])
end
|
- (Object) generate_names(repository_with_agent)
24
25
26
27
28
29
30
31
32
33
34
|
# File 'frontend/app/controllers/repositories_controller.rb', line 24
def generate_names(repository_with_agent)
name = JSONModel(:name_corporate_entity).new
name['primary_name'] = repository_with_agent['repository']['name'].blank? ? '<generated>' : repository_with_agent['repository']['name']
name['source'] = 'local'
name['sort_name'] = name['primary_name']
repository_with_agent['agent_representation']['names'] = [name]
if repository_with_agent['agent_representation']['agent_contacts']['0']['name'].blank?
repository_with_agent['agent_representation']['agent_contacts']['0']['name'] = name['primary_name']
end
end
|
- (Object) index
11
12
13
14
|
# File 'frontend/app/controllers/repositories_controller.rb', line 11
def index
@search_data = Search.global(params_for_backend_search.merge({"facet[]" => []}),
"repositories")
end
|
- (Object) new
16
17
18
19
20
21
|
# File 'frontend/app/controllers/repositories_controller.rb', line 16
def new
@repository = JSONModel(:repository_with_agent).new('repository' => {},
'agent_representation' => {
'agent_contacts' => [{}]
})._always_valid!
end
|
- (Object) run_transfer
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
# File 'frontend/app/controllers/repositories_controller.rb', line 117
def run_transfer
old_uri = JSONModel(:repository).uri_for(params[:id])
response = JSONModel::HTTP.post_form(JSONModel(:repository).uri_for(params[:id]) + "/transfer",
"target_repo" => params[:ref])
if response.code == '200'
flash[:success] = I18n.t("actions.transfer_successful")
redirect_to(:action => :index)
else
@transfer_errors = ASUtils.json_parse(response.body)['error']
return transfer
end
end
|
- (Object) select
85
86
87
88
89
90
91
92
93
|
# File 'frontend/app/controllers/repositories_controller.rb', line 85
def select
selected = @repositories.find {|r| r.id.to_s == params[:id]}
self.class.session_repo(session, selected.uri)
set_user_repository_cookie selected.uri
flash[:success] = I18n.t("repository._frontend.messages.changed", JSONModelI18nWrapper.new(:repository => selected))
redirect_to :root
end
|
- (Object) show
80
81
82
83
|
# File 'frontend/app/controllers/repositories_controller.rb', line 80
def show
@repository = JSONModel(:repository_with_agent).find(params[:id])
flash.now[:info] = I18n.t("repository._frontend.messages.selected") if @repository.id === session[:repo_id]
end
|
- (Object) transfer
111
112
113
114
|
# File 'frontend/app/controllers/repositories_controller.rb', line 111
def transfer
@repository = JSONModel(:repository_with_agent).find(params[:id])
render :transfer
end
|
- (Object) update
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'frontend/app/controllers/repositories_controller.rb', line 65
def update
generate_names(params[:repository])
handle_crud(:instance => :repository,
:model => JSONModel(:repository_with_agent),
:replace => false,
:obj => JSONModel(:repository_with_agent).find(params[:id]),
:on_invalid => ->(){ return render :action => :edit },
:on_valid => ->(id){
MemoryLeak::Resources.refresh(:repository)
flash[:success] = I18n.t("repository._frontend.messages.updated", JSONModelI18nWrapper.new(:repository => @repository))
redirect_to :controller => :repositories, :action => :show, :id => id
})
end
|