summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
authorGervase Markham <gerv@mozilla.org>2014-12-18 17:08:19 +0100
committerGervase Markham <gerv@gerv.net>2014-12-18 17:08:19 +0100
commit323acaaecd742e195c718e696e3206c516ccda32 (patch)
treed2d2c2ee8b71c9d776fef5c83551be3af44c6870 /Bugzilla
parent1365815665b01b62e5085130eb3a690abf2aff24 (diff)
downloadbugzilla-323acaaecd742e195c718e696e3206c516ccda32.tar.gz
bugzilla-323acaaecd742e195c718e696e3206c516ccda32.tar.xz
Bug 399068: Remove the docs_urlbase parameter. r=LpSolit, a=dkl.
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/Config/Common.pm13
-rw-r--r--Bugzilla/Config/General.pm7
-rw-r--r--Bugzilla/Template.pm36
3 files changed, 33 insertions, 23 deletions
diff --git a/Bugzilla/Config/Common.pm b/Bugzilla/Config/Common.pm
index f7e37c6fc..b6e58b318 100644
--- a/Bugzilla/Config/Common.pm
+++ b/Bugzilla/Config/Common.pm
@@ -22,7 +22,7 @@ use Bugzilla::Status;
use parent qw(Exporter);
@Bugzilla::Config::Common::EXPORT =
- qw(check_multi check_numeric check_regexp check_url check_group
+ qw(check_multi check_numeric check_regexp check_group
check_sslbase check_priority check_severity check_platform
check_opsys check_shadowdb check_urlbase check_user_verify_class
check_ip check_mail_delivery_method check_notification check_utf8
@@ -211,15 +211,6 @@ sub check_urlbase {
return "";
}
-sub check_url {
- my ($url) = (@_);
- return '' if $url eq ''; # Allow empty URLs
- if ($url !~ m:/$:) {
- return 'must be a legal URL, absolute or relative, ending with a slash.';
- }
- return '';
-}
-
sub check_user_verify_class {
# doeditparams traverses the list of params, and for each one it checks,
# then updates. This means that if one param checker wants to look at
@@ -491,8 +482,6 @@ valid group is provided.
=item check_smtp_auth
-=item check_url
-
=item check_urlbase
=item check_email
diff --git a/Bugzilla/Config/General.pm b/Bugzilla/Config/General.pm
index 5efaa6f6c..380680590 100644
--- a/Bugzilla/Config/General.pm
+++ b/Bugzilla/Config/General.pm
@@ -25,13 +25,6 @@ use constant get_param_list => (
},
{
- name => 'docs_urlbase',
- type => 't',
- default => 'docs/%lang%/html/',
- checker => \&check_url
- },
-
- {
name => 'utf8',
type => 'b',
default => '0',
diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm
index 2b068dc2c..066f9dc30 100644
--- a/Bugzilla/Template.pm
+++ b/Bugzilla/Template.pm
@@ -1028,10 +1028,38 @@ sub create {
'urlbase' => sub { return Bugzilla::Util::correct_urlbase(); },
# Allow templates to access docs url with users' preferred language
- 'docs_urlbase' => sub {
- my $language = Bugzilla->current_language;
- my $docs_urlbase = Bugzilla->params->{'docs_urlbase'};
- $docs_urlbase =~ s/\%lang\%/$language/;
+ # We fall back to English if documentation in the preferred
+ # language is not available
+ 'docs_urlbase' => sub {
+ my $docs_urlbase;
+ my $lang = Bugzilla->current_language;
+ # Translations currently available on readthedocs.org
+ my @rtd_translations = ('en', 'fr');
+
+ if ($lang ne 'en' && -f "docs/$lang/html/index.html") {
+ $docs_urlbase = "docs/$lang/html/";
+ }
+ elsif (-f "docs/en/html/index.html") {
+ $docs_urlbase = "docs/en/html/";
+ }
+ else {
+ if (!grep { $_ eq $lang } @rtd_translations) {
+ $lang = "en";
+ }
+
+ my $version = BUGZILLA_VERSION;
+ $version =~ /^(\d+)\.(\d+)/;
+ if ($2 % 2 == 1) {
+ # second number is odd; development version
+ $version = 'latest';
+ }
+ else {
+ $version = "$1.$2";
+ }
+
+ $docs_urlbase = "https://bugzilla.readthedocs.org/$lang/$version/";
+ }
+
return $docs_urlbase;
},