3

I use active admin and in my app there are different .js that must be loaded in specifics pages (not all).

Following this topic Best way to add page specific javascript in a Rails 3 app? it appears to be easy, but the layout in active admin is compiled.

I have used a workaround to overwrite the footer:

    class ActiveAdmin::Views::Pages::Base < Arbre::HTML::Document
 private
  # Renders the content for the footer
  def build_footer
    div :id => "footer" do
      para "Copyright &copy; #{Date.today.year.to_s}- All rights reserved ".html_safe
    end
  end
end

How can I add some .js in the header of some pages? How with a workaround? (if possible with a "yield :head" or something like that, so I can call it easier from everywhere ;))

EDIT NOTE: the js that i want to include render a highcharts

Community
  • 1
  • 1
damoiser
  • 6,058
  • 3
  • 40
  • 66

2 Answers2

15

I'm using master branch of ActiveAdmin 0.5.0 (as of 23 Nov 2012) and there is a Arbre builder method within which is working for me.

show do 
   within @head do
      script :src => javascript_path('somefile.js'), :type => "text/javascript"
   end
end 

You can see an example of its use in ActiveAdmin::Views::Pages::Base#build_active_admin_head.

Hope this helps.

Andrew Pietsch
  • 600
  • 5
  • 8
1

I found an "alternative" solution, the basic one: insert simply the script in the html body with the jquery tag $(document).ready(...) (but with lose in performance and dry coding)

damoiser
  • 6,058
  • 3
  • 40
  • 66