2012-03-08 7 views

Respuesta

-1

acuerdo con el post que @phoet mencionó, (https://stackoverflow.com/a/7218598/445908) prueba este código:

module ActiveAdmin 
    module Views 
    class HeaderRenderer 
     def to_html 
     title + global_navigation + profile_link + utility_navigation 
     end 

     def profile_link 
     link_to ("Edit yout profile", edit_user (current_user)) 
     end 
    end 
    end 
end 
+4

no lo hago Creo que esto funciona a partir de 0.5.0. Por favor, que alguien me corrija si me equivoco. –

11

Para las versiones recientes de administración activa, hay dos soluciones, tanto en tipo de desafortunado.

Cualquiera de sus recursos con menu false puede establecerse en menu label: "Google", url: "http://www.google.com". Esto es desafortunado porque se resalta como seleccionado si se encuentra en el recurso desde el que lo configuró.

La otra solución es sobreescribir el ActiveAdmin::Views::Header como arriba, pero actualizado.

module ActiveAdmin 
    module Views 
    class Header < Component 

     def build_global_navigation 
     item = ActiveAdmin::MenuItem.new(label: "google", url: "http://www.google.com") 
     @menu.add item 
     insert_tag view_factory.global_navigation, @menu, :class => 'header-item' 
     end 
    end 
    end 
end 

esto no funciona exactamente a la derecha, como no se puede configurar cosas como parent: "Developer" para el elemento de menú ... De todos modos, puedo hacer un tenedor para que pueda agregar elementos en el inicializador para un particular, espacio de nombres ... ¿Alguien abrió un problema para esto? No vi uno.

Actualización: Creo que esta es la forma más limpia de implementar esto (sin contribuir al administrador activo).

ActiveAdmin.register_page "Queue" do 
    menu parent: "Developer", url: '/admin/resque' 
end 
+0

Hay un problema abierto para este https://github.com/gregbell/active_admin/issues/1694 – ARun32

+0

'@menu.add elemento' Causará que se agregue un nuevo elemento de menú en cada carga de cada recurso (cuando haga clic en un recurso en la parte superior). '@menu.add elemento si @ menu.items.select {| m | m.label == item.label} .blank? ' Verificará si existe un elemento de menú con esa etiqueta antes de agregarlo. – ARun32

+0

Sí, agregué ese problema. :) – rayban

5

Si está utilizando una versión posterior de ActiveAdmin que tiene la capacidad para páginas personalizadas, puede hacer lo siguiente:

ActiveAdmin.register_page "Store Admin" do 
    controller do 
    define_method(:index) do 
     redirect_to "/store/admin" 
    end 
    end 
end 

Esto anula la acción de la index PageController que normalmente solo hace la página, pero en cambio puede tener que redirigir a donde quiere ir, como edit_user_path

12

las versiones recientes de ActiveAdmin le permiten hacer esto en su active_admin.rb inicializador:

config.namespace :admin do |admin| 
    admin.build_menu do |menu| 
    menu.add :label => 'Custom Menu' do |submenu| 
     submenu.add :label => 'Custom Link', :url => custom_path 
    end 
    end 
end 
Cuestiones relacionadas