2012-03-08 14 views

risposta

-1

secondo il post che @phoet accennato, (https://stackoverflow.com/a/7218598/445908) provate questo codice:

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

non lo faccio pensa che funzioni a partire dalla versione 0.5.0 - per favore qualcuno mi corregga se sbaglio. –

11

Per le versioni recenti di amministrazione attiva, ci sono due soluzioni, entrambe di tipo sfortunato.

Qualsiasi risorsa con menu false può essere impostata su menu label: "Google", url: "http://www.google.com". Questo è sfortunato perché è evidenziato come selezionato se sei sulla risorsa da cui lo hai impostato.

L'altra soluzione è sovrascrivere lo ActiveAdmin::Views::Header come sopra, ma aggiornato.

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 

Questo non funziona esattamente a destra, come non è possibile impostare le cose come parent: "Developer" per la voce di menu ... Ad ogni modo, io possa fare una forchetta in modo da poter aggiungere elementi nel inizializzatore ad un particolare namespace ... Qualcuno ha aperto un problema per questo? Non l'ho visto.

Aggiornamento: Penso che questo sia il modo più pulito per implementare questo (senza contribuire all'amministratore attivo).

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

C'è un problema aperto per questo https://github.com/gregbell/active_admin/issues/1694 – ARun32

+0

'@menu.add item' causerà l'aggiunta di una nuova voce di menu su ciascun carico di ciascuna risorsa (quando clicca su una risorsa in alto). elemento '@menu.add se @ menu.items.select {| m | m.label == item.label} .blank? ' Verificherà se esiste una voce di menu con quell'etichetta prima di aggiungerla. – ARun32

+0

Sì, ho aggiunto il problema. :) – rayban

5

Se si utilizza una versione successiva di ActiveAdmin che ha la capacità per le pagine personalizzate, è possibile effettuare le seguenti operazioni:

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

Ciò ignora l'index azione del PageController che normalmente solo rende nella pagina, ma si può invece avere reindirizzare a dove si vuole andare, come ad esempio edit_user_path

12

versioni recenti di ActiveAdmin ti permettono di fare questo nel vostro active_admin.rb initializer:

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 
Problemi correlati