2012-03-08 14 views
9

में हेडर मेनू पर कस्टम आइटम जोड़ें मैं ActiveAdmin में शीर्षलेख पर link_to ("yout profile संपादित करें", edit_user (current_user)) जैसे लिंक जोड़ना चाहता हूं। क्या यह संभव है?ActiveAdmin

+0

http://stackoverflow.com/questions/7199753/how-to-add-a-link-back-to-the-application-in-activeadmin/7201824#7201824 के संभावित डुप्लिकेट – phoet

उत्तर

-1

पोस्ट कि उल्लेख किया @phoet के अनुसार, (https://stackoverflow.com/a/7218598/445908) इस कोड का प्रयास करें:

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

मुझे नहीं पता लगता है कि यह 0.5.0 के रूप में काम करता है - अगर कोई गलत है तो कृपया मुझे सही करें। –

11

सक्रिय व्यवस्थापक के हाल के संस्करणों के लिए, वहाँ दो समाधान, दुर्भाग्यपूर्ण के दोनों प्रकार हैं।

menu false के साथ आपके किसी भी संसाधन को menu label: "Google", url: "http://www.google.com" पर सेट किया जा सकता है। यह दुर्भाग्यपूर्ण है क्योंकि इसे चयनित के रूप में हाइलाइट किया गया है यदि आप उस संसाधन पर हैं जहां से आपने इसे सेट किया है।

दूसरा समाधान उपरोक्त के रूप में ActiveAdmin::Views::Header को ओवर-राइट करना है, लेकिन अपडेट किया गया है।

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 

यह बिल्कुल सही काम नहीं करता है, तो आप वैसे भी मेनू आइटम के लिए parent: "Developer" ... तरह बातें सेट नहीं कर सकता के रूप में है, तो आप एक विशेष के लिए प्रारंभकर्ता में आइटम जोड़ सकते हैं मैं एक कांटा कर सकते हैं नेमस्पेस ... क्या किसी ने इसके लिए कोई मुद्दा खुलवाया? मैंने एक नहीं देखा।

अद्यतन: मुझे लगता है कि यह इसे लागू करने का सबसे आसान तरीका है (सक्रिय व्यवस्थापक में योगदान किए बिना)।

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

इस https://github.com/gregbell/active_admin/issues/1694 – ARun32

+0

'@menu.add item' प्रत्येक संसाधन के प्रत्येक लोड पर एक नया मेनू आइटम जोड़ने के लिए एक खुली समस्या है (जब आप शीर्ष पर संसाधन पर क्लिक करें)। '@menu.add आइटम अगर @ menu.items.select {| m | m.label == item.label} .blank? ' यह देखने के लिए जांच करेगा कि उस लेबल के साथ मेनू आइटम इसे जोड़ने से पहले मौजूद है या नहीं। – ARun32

+0

यूप, मैंने उस मुद्दे को जोड़ा। :) – rayban

5

आप कस्टम पेज के लिए क्षमता है कि ActiveAdmin के बाद के संस्करण का उपयोग कर रहे हैं, तो आप निम्न कर सकते हैं:

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

यह PageController की index कार्रवाई जो आम तौर पर सिर्फ renders ओवरराइड करता है पेज है, लेकिन आप के बजाय यह जहाँ भी आप जाना चाहते हैं पर पुन: निर्देशित, जैसे edit_user_path

12

ActiveAdmin के हाल के संस्करणों आप अपने active_admin.rb प्रारंभकर्ता में ऐसा करने की अनुमति हो सकती है:

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 
संबंधित मुद्दे