diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c6d8848..be0ebae 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -894,6 +894,15 @@ module ApplicationHelper '' end end + + # Returns the javascript tags that are included in the html layout head + def javascript_heads + tags = javascript_include_tag(:defaults) + unless User.current.pref.warn_on_leaving_unsaved == '0' + tags << "\n" + javascript_tag("Event.observe(window, 'load', function(){ new WarnLeavingUnsaved('#{escape_javascript( l(:text_warn_on_leaving_unsaved) )}'); });") + end + tags + end def favicon "" diff --git a/app/models/user_preference.rb b/app/models/user_preference.rb index 3daa7a7..85236ff 100644 --- a/app/models/user_preference.rb +++ b/app/models/user_preference.rb @@ -51,4 +51,7 @@ class UserPreference < ActiveRecord::Base def comments_sorting; self[:comments_sorting] end def comments_sorting=(order); self[:comments_sorting]=order end + + def warn_on_leaving_unsaved; self[:warn_on_leaving_unsaved] || '1'; end + def warn_on_leaving_unsaved=(value); self[:warn_on_leaving_unsaved]=value; end end diff --git a/app/views/layouts/base.rhtml b/app/views/layouts/base.rhtml index b59f1e2..d6d3400 100644 --- a/app/views/layouts/base.rhtml +++ b/app/views/layouts/base.rhtml @@ -8,7 +8,7 @@ <%= favicon %> <%= stylesheet_link_tag 'application', :media => 'all' %> <%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %> -<%= javascript_include_tag :defaults %> +<%= javascript_heads %> <%= heads_for_theme %> <%= heads_for_wiki_formatter %>