From: Jean-Philippe Lang Date: Mon, 21 Feb 2011 09:53:29 +0000 (+0000) Subject: Warning on leaving a page with unsaved content in textarea (#2910). X-Git-Tag: 1.2.0~922 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=17591a3ea58a6da8d619bdd9dd0ece4b73a07402;p=redmine.git Warning on leaving a page with unsaved content in textarea (#2910). The warning can be turned off in the user's preference. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4900 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c6d88487f..be0ebaec1 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 3daa7a740..85236ff64 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 b59f1e280..d6d3400aa 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 %>