summaryrefslogtreecommitdiffstats
path: root/extensions/MoreBugUrl/Extension.pm
diff options
context:
space:
mode:
authorTiago Mello <timello@gmail.com>2012-02-19 18:36:22 +0100
committerTiago Mello <timello@gmail.com>2012-02-19 18:36:22 +0100
commit84982d8b04f6232d4eaa38fde78e8bfa67d496bb (patch)
treeea1fa9d6f5022b6d36de8773ac2eb0566feeb61a /extensions/MoreBugUrl/Extension.pm
parent8cf999925d27402a3c2a9abc4394d33b3f11c97a (diff)
downloadbugzilla-84982d8b04f6232d4eaa38fde78e8bfa67d496bb.tar.gz
bugzilla-84982d8b04f6232d4eaa38fde78e8bfa67d496bb.tar.xz
Bug 722580: Move 'ReviewBoard' and 'Rietveld' BugUrl sub-classes
to a new 'MoreBugUrl' extension. r/a=LpSolit
Diffstat (limited to 'extensions/MoreBugUrl/Extension.pm')
-rw-r--r--extensions/MoreBugUrl/Extension.pm43
1 files changed, 43 insertions, 0 deletions
diff --git a/extensions/MoreBugUrl/Extension.pm b/extensions/MoreBugUrl/Extension.pm
new file mode 100644
index 000000000..715316585
--- /dev/null
+++ b/extensions/MoreBugUrl/Extension.pm
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+package Bugzilla::Extension::MoreBugUrl;
+use strict;
+use base qw(Bugzilla::Extension);
+
+use constant MORE_SUB_CLASSES => qw(
+ Bugzilla::Extension::MoreBugUrl::ReviewBoard
+ Bugzilla::Extension::MoreBugUrl::Rietveld
+);
+
+# We need to update bug_see_also table because both
+# Rietveld and ReviewBoard were originally under Bugzilla/BugUrl/.
+sub install_update_db {
+ my $dbh = Bugzilla->dbh;
+
+ my $should_rename = $dbh->selectrow_array(
+ q{SELECT 1 FROM bug_see_also
+ WHERE class IN ('Bugzilla::BugUrl::Rietveld',
+ 'Bugzilla::BugUrl::ReviewBoard')});
+
+ if ($should_rename) {
+ my $sth = $dbh->prepare('UPDATE bug_see_also SET class = ?
+ WHERE class = ?');
+ $sth->execute('Bugzilla::Extension::MoreBugUrl::ReviewBoard',
+ 'Bugzilla::BugUrl::ReviewBoard');
+
+ $sth->execute('Bugzilla::Extension::MoreBugUrl::Rietveld',
+ 'Bugzilla::BugUrl::Rietveld');
+ }
+}
+
+sub bug_url_sub_classes {
+ my ($self, $args) = @_;
+ push @{ $args->{sub_classes} }, MORE_SUB_CLASSES;
+}
+
+__PACKAGE__->NAME;