]> source.dussan.org Git - redmine.git/commitdiff
Host setting should contain the path prefix (Redmine base URL) to properly generate...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 7 Nov 2008 15:37:17 +0000 (15:37 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 7 Nov 2008 15:37:17 +0000 (15:37 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@1989 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/settings_controller.rb
app/models/mailer.rb
app/views/settings/_general.rhtml
lang/en.yml
lang/fr.yml

index 6482a35762f67c1be8824aa696932af8ad1ab183..7f9c9d5ccd566594dee0e56b3dc6199b147bd236 100644 (file)
@@ -5,19 +5,19 @@
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 class SettingsController < ApplicationController
   before_filter :require_admin
-  
+
   def index
     edit
     render :action => 'edit'
@@ -39,8 +39,11 @@ class SettingsController < ApplicationController
     @options = {}
     @options[:user_format] = User::USER_FORMATS.keys.collect {|f| [User.current.name(f), f.to_s] }
     @deliveries = ActionMailer::Base.perform_deliveries
+
+    @guessed_host_and_path = request.host_with_port
+    @guessed_host_and_path << ('/'+ request.relative_url_root.gsub(%r{^\/}, '')) unless request.relative_url_root.blank?
   end
-  
+
   def plugin
     plugin_id = params[:id].to_sym
     @plugin = Redmine::Plugin.registered_plugins[plugin_id]
index 60a5a827d36f499337863f3920ee702454c8fb42..070f7e5709c7564cd19fdb7142f1293c7df9302b 100644 (file)
@@ -5,12 +5,12 @@
 # modify it under the terms of the GNU General Public License
 # as published by the Free Software Foundation; either version 2
 # of the License, or (at your option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
@@ -19,15 +19,15 @@ class Mailer < ActionMailer::Base
   helper :application
   helper :issues
   helper :custom_fields
-  
+
   include ActionController::UrlWriter
-  
-  def issue_add(issue)    
+
+  def issue_add(issue)
     redmine_headers 'Project' => issue.project.identifier,
                     'Issue-Id' => issue.id,
                     'Issue-Author' => issue.author.login
     redmine_headers 'Issue-Assignee' => issue.assigned_to.login if issue.assigned_to
-    recipients issue.recipients    
+    recipients issue.recipients
     subject "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] (#{issue.status.name}) #{issue.subject}"
     body :issue => issue,
          :issue_url => url_for(:controller => 'issues', :action => 'show', :id => issue)
@@ -50,7 +50,7 @@ class Mailer < ActionMailer::Base
          :journal => journal,
          :issue_url => url_for(:controller => 'issues', :action => 'show', :id => issue)
   end
-  
+
   def reminder(user, issues, days)
     set_language_if_valid user.language
     recipients user.mail
@@ -59,7 +59,7 @@ class Mailer < ActionMailer::Base
          :days => days,
          :issues_url => url_for(:controller => 'issues', :action => 'index', :set_filter => 1, :assigned_to_id => user.id, :sort_key => 'issues.due_date', :sort_order => 'asc')
   end
-  
+
   def document_added(document)
     redmine_headers 'Project' => document.project.identifier
     recipients document.project.recipients
@@ -67,7 +67,7 @@ class Mailer < ActionMailer::Base
     body :document => document,
          :document_url => url_for(:controller => 'documents', :action => 'show', :id => document)
   end
-  
+
   def attachments_added(attachments)
     container = attachments.first.container
     added_to = ''
@@ -104,7 +104,7 @@ class Mailer < ActionMailer::Base
     body :message => message,
          :message_url => url_for(:controller => 'messages', :action => 'show', :board_id => message.board_id, :id => message.root)
   end
-   
+
   def account_information(user, password)
     set_language_if_valid user.language
     recipients user.mail
@@ -113,7 +113,7 @@ class Mailer < ActionMailer::Base
          :password => password,
          :login_url => url_for(:controller => 'account', :action => 'login')
   end
-  
+
   def account_activation_request(user)
     # Send the email to all active administrators
     recipients User.find_active(:all, :conditions => {:admin => true}).collect { |u| u.mail }.compact
@@ -128,7 +128,7 @@ class Mailer < ActionMailer::Base
     subject l(:mail_subject_lost_password, Setting.app_title)
     body :token => token,
          :url => url_for(:controller => 'account', :action => 'lost_password', :token => token.value)
-  end  
+  end
 
   def register(token)
     set_language_if_valid(token.user.language)
@@ -137,7 +137,7 @@ class Mailer < ActionMailer::Base
     body :token => token,
          :url => url_for(:controller => 'account', :action => 'activate', :token => token.value)
   end
-  
+
   def test(user)
     set_language_if_valid(user.language)
     recipients user.mail
@@ -148,12 +148,12 @@ class Mailer < ActionMailer::Base
   # Overrides default deliver! method to prevent from sending an email
   # with no recipient, cc or bcc
   def deliver!(mail = @mail)
-    return false if (recipients.nil? || recipients.empty?) && 
+    return false if (recipients.nil? || recipients.empty?) &&
                     (cc.nil? || cc.empty?) &&
                     (bcc.nil? || bcc.empty?)
     super
   end
-  
+
   # Sends reminders to issue assignees
   # Available options:
   # * :days     => how many days in the future to remind about (defaults to 7)
@@ -163,13 +163,13 @@ class Mailer < ActionMailer::Base
     days = options[:days] || 7
     project = options[:project] ? Project.find(options[:project]) : nil
     tracker = options[:tracker] ? Tracker.find(options[:tracker]) : nil
-    
+
     s = ARCondition.new ["#{IssueStatus.table_name}.is_closed = ? AND #{Issue.table_name}.due_date <= ?", false, days.day.from_now.to_date]
     s << "#{Issue.table_name}.assigned_to_id IS NOT NULL"
     s << "#{Project.table_name}.status = #{Project::STATUS_ACTIVE}"
     s << "#{Issue.table_name}.project_id = #{project.id}" if project
     s << "#{Issue.table_name}.tracker_id = #{tracker.id}" if tracker
-    
+
     issues_by_assignee = Issue.find(:all, :include => [:status, :assigned_to, :project, :tracker],
                                           :conditions => s.conditions
                                     ).group_by(&:assigned_to)
@@ -185,17 +185,18 @@ class Mailer < ActionMailer::Base
     from Setting.mail_from
     default_url_options[:host] = Setting.host_name
     default_url_options[:protocol] = Setting.protocol
+    default_url_options[:skip_relative_url_root] = true
     # Common headers
     headers 'X-Mailer' => 'Redmine',
             'X-Redmine-Host' => Setting.host_name,
             'X-Redmine-Site' => Setting.app_title
   end
-  
+
   # Appends a Redmine header field (name is prepended with 'X-Redmine-')
   def redmine_headers(h)
     h.each { |k,v| headers["X-Redmine-#{k}"] = v }
   end
-  
+
   # Overrides the create_mail method
   def create_mail
     # Removes the current user from the recipients and cc
@@ -209,10 +210,10 @@ class Mailer < ActionMailer::Base
       bcc([recipients, cc].flatten.compact.uniq)
       recipients []
       cc []
-    end    
+    end
     super
   end
-  
+
   # Renders a message with the corresponding layout
   def render_message(method_name, body)
     layout = method_name.match(%r{text\.html\.(rhtml|rxml)}) ? 'layout.text.html.rhtml' : 'layout.text.plain.rhtml'
@@ -234,7 +235,7 @@ class Mailer < ActionMailer::Base
     end
     return value
   end
-  
+
   # Makes partial rendering work with Rails 1.2 (retro-compatibility)
   def self.controller_path
     ''
index 85b459720c7e3743aab64daff9083d28744bb5fa..06db77b227ef7b89b17daa0aed43ec218a6506de 100644 (file)
@@ -33,7 +33,8 @@
 <%= text_field_tag 'settings[activity_days_default]', Setting.activity_days_default, :size => 6 %> <%= l(:label_day_plural) %></p>
 
 <p><label><%= l(:setting_host_name) %></label>
-<%= text_field_tag 'settings[host_name]', Setting.host_name, :size => 60 %></p>
+<%= text_field_tag 'settings[host_name]', Setting.host_name, :size => 60 %><br />
+<em><%= l(:label_example) %>: <%= @guessed_host_and_path %></em></p>
 
 <p><label><%= l(:setting_protocol) %></label>
 <%= select_tag 'settings[protocol]', options_for_select(['http', 'https'], Setting.protocol) %></p>
index 42c4e96a64adf4fb7da5317120bc96c9779e3a4a..a76c5d1a586ecbeb8719d771806e017d6cc2b21e 100644 (file)
@@ -196,7 +196,7 @@ setting_issues_export_limit: Issues export limit
 setting_mail_from: Emission email address
 setting_bcc_recipients: Blind carbon copy recipients (bcc)
 setting_plain_text_mail: plain text mail (no HTML)
-setting_host_name: Host name
+setting_host_name: Host name and path
 setting_text_formatting: Text formatting
 setting_wiki_compression: Wiki history compression
 setting_feeds_limit: Feed content limit
@@ -576,6 +576,7 @@ label_planning: Planning
 label_incoming_emails: Incoming emails
 label_generate_key: Generate a key
 label_issue_watchers: Watchers
+label_example: Example
 
 button_login: Login
 button_submit: Submit
index 576476c0a748bed33968c6486c6e0b46b5ba0edc..556bb454800e8f03452ff5dd332151055579cf1c 100644 (file)
@@ -197,7 +197,7 @@ setting_issues_export_limit: Limite export demandes
 setting_mail_from: Adresse d'émission
 setting_bcc_recipients: Destinataires en copie cachée (cci)
 setting_plain_text_mail: Mail texte brut (non HTML)
-setting_host_name: Nom d'hôte
+setting_host_name: Nom d'hôte et chemin
 setting_text_formatting: Formatage du texte
 setting_wiki_compression: Compression historique wiki
 setting_feeds_limit: Limite du contenu des flux RSS
@@ -576,6 +576,7 @@ label_planning: Planning
 label_incoming_emails: Emails entrants
 label_generate_key: Générer une clé
 label_issue_watchers: Utilisateurs surveillant cette demande
+label_example: Exemple
 
 button_login: Connexion
 button_submit: Soumettre