Commit d6e63a774e18f40ca70538ea62f7a20d5f919155
1 parent
305736e5
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
dspace_plugin : return to previous page if unable to contact dspace rest api
Showing
1 changed file
with
31 additions
and
0 deletions
Show diff stats
plugins/dspace/lib/dspace_plugin.rb
... | ... | @@ -33,4 +33,35 @@ class DspacePlugin < Noosfero::Plugin |
33 | 33 | false |
34 | 34 | end |
35 | 35 | |
36 | + def cms_controller_filters | |
37 | + block = proc do | |
38 | + | |
39 | + dspace_content_type = params[:type] | |
40 | + | |
41 | + case dspace_content_type | |
42 | + | |
43 | + when 'DspacePlugin::Communityy' | |
44 | + parent = DspacePlugin::Library.find_by_id(params[:parent_id]) | |
45 | + children = Dspace::Community.get_all_communities_from parent.dspace_server_url | |
46 | + | |
47 | + when 'DspacePlugin::Collection' | |
48 | + parent = DspacePlugin::Communityy.find_by_id(params[:parent_id]) | |
49 | + children = Dspace::Collection.get_all_collections_from parent.parent.dspace_server_url | |
50 | + | |
51 | + end | |
52 | + | |
53 | + if dspace_content_type == 'DspacePlugin::Communityy' || dspace_content_type == 'DspacePlugin::Collection' | |
54 | + if children.nil? | |
55 | + session[:notice] = _('Unable to contact DSpace server') | |
56 | + redirect_to parent.view_url | |
57 | + end | |
58 | + end | |
59 | + | |
60 | + end | |
61 | + | |
62 | + { :type => 'before_filter', | |
63 | + :method_name => 'new', | |
64 | + :block => block } | |
65 | + end | |
66 | + | |
36 | 67 | end | ... | ... |