aboutsummaryrefslogtreecommitdiff
blob: 0fc29b2aa90aca7c71428ab0762196e2e8ce0b38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 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 5.10.1;
use strict;
use warnings;

use parent qw(Bugzilla::Extension);

use constant MORE_SUB_CLASSES => qw(
  Bugzilla::Extension::MoreBugUrl::BitBucket
  Bugzilla::Extension::MoreBugUrl::ReviewBoard
  Bugzilla::Extension::MoreBugUrl::Rietveld
  Bugzilla::Extension::MoreBugUrl::RT
  Bugzilla::Extension::MoreBugUrl::GetSatisfaction
  Bugzilla::Extension::MoreBugUrl::PHP
  Bugzilla::Extension::MoreBugUrl::Redmine
  Bugzilla::Extension::MoreBugUrl::Savane
  Bugzilla::Extension::MoreBugUrl::Phabricator
);

# 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;