]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1273046 - Disable the legacy non-modal bug UI
authorKohei Yoshino <kohei.yoshino@gmail.com>
Wed, 17 Jul 2019 09:00:12 +0000 (05:00 -0400)
committerGitHub <noreply@github.com>
Wed, 17 Jul 2019 09:00:12 +0000 (05:00 -0400)
Bugzilla/User/Setting.pm
extensions/BugModal/Extension.pm
extensions/BugModal/template/en/default/hook/global/setting-descs-settings.none.tmpl
scripts/entrypoint.pl

index ff94f98688ab1c1ac39ee9cb8d0990df01f630cc..c7e91a442229207ac83c74a28fb0cccb19a9b4d7 100644 (file)
@@ -19,6 +19,7 @@ use base qw(Exporter);
   get_all_settings
   get_defaults
   add_setting
+  remove_setting
   clear_settings_cache
 );
 
@@ -144,18 +145,7 @@ sub add_setting {
   if ($exists) {
 
     # If this setting exists, we delete it and regenerate it.
-    $dbh->do('DELETE FROM setting_value WHERE name = ?', undef, $name);
-    $dbh->do('DELETE FROM setting WHERE name = ?',       undef, $name);
-
-    # Remove obsolete user preferences for this setting.
-    if (defined $options && scalar(@$options)) {
-      my $list = join(', ', map { $dbh->quote($_) } @$options);
-      $dbh->do(
-        "DELETE FROM profile_setting
-                      WHERE setting_name = ? AND setting_value NOT IN ($list)", undef,
-        $name
-      );
-    }
+    remove_setting($name, $options);
   }
   elsif (!$silently) {
     print get_text('install_setting_new', {name => $name}) . "\n";
@@ -178,6 +168,26 @@ sub add_setting {
   }
 }
 
+sub remove_setting {
+  my ($name, $options) = @_;
+  my $dbh = Bugzilla->dbh;
+
+  return unless _setting_exists($name);
+
+  $dbh->do('DELETE FROM setting_value WHERE name = ?', undef, $name);
+  $dbh->do('DELETE FROM setting WHERE name = ?',       undef, $name);
+
+  my $sql = 'DELETE FROM profile_setting WHERE setting_name = ?';
+
+  # Remove obsolete user preferences for this setting.
+  if (defined $options && scalar(@$options)) {
+    my $list = join(', ', map { $dbh->quote($_) } @$options);
+    $sql .= " AND setting_value NOT IN ($list)";
+  }
+
+  $dbh->do($sql, undef, $name);
+}
+
 sub get_all_settings {
   my ($user_id) = @_;
   my $settings  = {};
@@ -384,6 +394,13 @@ Params:      C<$name> - string - the name of the new setting
 
 Returns:     a pointer to a hash of settings
 
+=item C<remove_setting($name, \@options)>
+
+Description: Removes an existing setting and the options.
+
+Params:      C<$name> - string - the name of the setting to be removed.
+             C<$options> (optional) - arrayref - contains the existing setting
+             choices that shouldn't be removed.
 
 =item C<get_all_settings($user_id)>
 
index e6064424fc070d1951c1727625250141b65bff1c..d19e14f9fb77ef11f239eff6bd20b4dccd06fb2e 100644 (file)
@@ -61,7 +61,7 @@ sub _alternative_show_bug_format {
     # as the Long Format option
     return $format;
   }
-  return $user->setting('ui_experiments') eq 'on' ? 'modal' : '';
+  return 'modal';
 }
 
 sub template_after_create {
@@ -333,12 +333,7 @@ sub webservice {
 
 sub install_before_final_checks {
   my ($self, $args) = @_;
-  add_setting({
-    name     => 'ui_experiments',
-    options  => ['on', 'off'],
-    default  => 'on',
-    category => 'User Interface'
-  });
+  remove_setting('ui_experiments');
   add_setting({
     name     => 'ui_remember_collapsed',
     options  => ['on', 'off'],
index c8e4029f3e6e9cd7e417661de401114ff0a95280..56f29097474c7229a3e75bec6d08648b8420edbf 100644 (file)
@@ -7,7 +7,6 @@
   #%]
 
 [%
-  setting_descs.ui_experiments = "Use modal user interface"
   setting_descs.ui_remember_collapsed = "Remember visibility of header sections when viewing a bug"
   setting_descs.ui_use_absolute_time = "Use absolute format instead of relative time when viewing a bug"
 %]
index b3b166644bdedebc7f34c1ff9baefe706a758ca4..66e8a5e5bf45802833893a4593b321712d83951d 100755 (executable)
@@ -138,7 +138,6 @@ sub cmd_load_test_data {
 
   run(
     'perl',        'scripts/generate_bmo_data.pl',
-    '--user-pref', 'ui_experiments=on',
     '--param',     'use_mailer_queue=0'
   );