Defect #10251
closedDescription diff link in note details is relative when received by email
0%
Description
In the HTML email notification received after an issue description has been updated, the "diff" link is present and relative so clicking on it leads to some http://journals/diff/<...>?detail_id=<...> URL.
Files
Related issues
Updated by Etienne Massip almost 13 years ago
It should be either not displayed or absolute.
Updated by Sridhar P almost 13 years ago
Apparently the default_url_options of app/models/mailer.rb is not being picked up or fired when link_to is called in the app/helpers/issues_helper.rb.
As a temporary hack we can provide the host and protocol options to link_to. May be there is an elegant solution that I am not aware of.
Updated by Sridhar P almost 13 years ago
- File 10251_1.diff 10251_1.diff added
When I set the ":only_path => false" in the app/models/mailer.rb > def self.default_url_options, it remains so up until line 76 of app/models/mailer.rb. By the time the flow reaches to app/helpers/issues_helper.rb for the diff link, the "only_path" option is "true". Not sure where or how it is being changed.
I am submitting the patch with :only_path => false for the diff_link in the issues_helper.rb. This works for me.
Updated by Sridhar P almost 13 years ago
I think I got hold of the reason. The link_to method called from the issues_helper is the one defined in actionpack-2.3.14/lib/action_view/helpers/url_helper.rb
The link_to invokes the url_for and code in question that is causing the trouble is here:
ActionView::Helpers::UrlHelper - lines 83-85
83 options = { :only_path => options[:host].nil? }.update(options.symbolize_keys)
84 escape = options.key?(:escape) ? options.delete(:escape) : true
85 @controller.send(:url_for, options)
We are not passing the :host parameter in the options from the show_detail function of issues_helper, so the line 83 effective sets the
options[:only_path] to true.
On line 85, the @controller.send(:url_for, options) is called which will call the url_for defined in the ActionController::UrlWriter with options[:only_path] = true and hence the host and protocol options(being set in the app/models/mailer.rb) are being ignored.
Updated by Etienne Massip almost 13 years ago
Yes, I saw that.
I think that this is an issue of RoR #link_to
not taking default url_options into account and wanted to have a look to Rails code to see if this has been fixed.
A simple fix would be to override #url_for
in Mailer:
def url_for(options={})
options[:only_path] = false
super options
end
Updated by Etienne Massip almost 13 years ago
- Status changed from Confirmed to Resolved
- Target version changed from Candidate for next minor release to 1.3.2
- Resolution set to Fixed
Updated by Jean-Philippe Lang almost 13 years ago
- Status changed from Resolved to Closed
- Target version changed from 1.3.2 to 1.4.0
- Affected version (unused) changed from 1.3.1 to devel
- Affected version deleted (
1.3.1)
1.3-stable is not affected (links are not displayed).
Updated by Jean-Philippe Lang almost 13 years ago
HTML is disabled when displaying change details: source:/tags/1.3.1/app/views/mailer/issue_edit.html.erb
Updated by Etienne Massip almost 13 years ago
Indeed, it was changed in devel with r8721, I thought it was a 1.3 issue.
So maybe it would have been simpler and even more consistent to set back the no_html
to true
?