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 | ... | ... |