@@ -142,15 +142,23 @@ def menu_for(parent, abstract_model = nil, object = nil, only_icon = false) # pe
142142 actions = actions ( parent , abstract_model , object ) . select { |a | a . http_methods . include? ( :get ) && a . show_in_menu }
143143 actions . collect do |action |
144144 wording = wording_for ( :menu , action )
145- %(
146- <li title="#{ wording if only_icon } " rel="#{ 'tooltip' if only_icon } " class="icon #{ action . key } _#{ parent } _link #{ 'active' if current_action? ( action ) } ">
147- <a class="#{ action . pjax? ? 'pjax' : '' } " href="#{ rails_admin . url_for ( action : action . action_name , controller : 'rails_admin/main' , model_name : abstract_model . try ( :to_param ) , id : ( object . try ( :persisted? ) && object . try ( :id ) || nil ) ) } ">
148- <i class="#{ action . link_icon } "></i>
149- <span#{ only_icon ? " style='display:none'" : '' } >#{ wording } </span>
150- </a>
151- </li>
152- )
153- end . join . html_safe
145+ li_class = [ 'icon' , "#{ action . key } _#{ parent } _link" ] .
146+ concat ( current_action? ( action ) ? [ 'active' ] : [ ] ) .
147+ concat ( action . enabled? ? [ ] : [ 'disabled' ] )
148+ content_tag ( :li , { class : li_class } . merge ( only_icon ? { title : wording , rel : 'tooltip' } : { } ) ) do
149+ label = content_tag ( :i , '' , { class : action . link_icon } ) + content_tag ( :span , wording , ( only_icon ? { style : 'display:none' } : { } ) )
150+ if action . enabled? || !only_icon
151+ href = if action . enabled?
152+ rails_admin . url_for ( action : action . action_name , controller : 'rails_admin/main' , model_name : abstract_model . try ( :to_param ) , id : ( object . try ( :persisted? ) && object . try ( :id ) || nil ) )
153+ else
154+ 'javascript:void(0)'
155+ end
156+ content_tag ( :a , label , { href : href } . merge ( action . pjax? ? { class : [ 'pjax' ] } : { } ) )
157+ else
158+ content_tag ( :span , label )
159+ end
160+ end
161+ end . join ( ' ' ) . html_safe
154162 end
155163
156164 def bulk_menu ( abstract_model = @abstract_model )
0 commit comments