[Rt-commit] rt branch, 4.6/lifecycle-ui-dev, repushed

Craig Kaiser craig at bestpractical.com
Tue Feb 4 18:03:37 EST 2020


The branch 4.6/lifecycle-ui-dev was deleted and repushed:
       was c19d65687c30f74dea73f3a598e967f858a151cd
       now 8a7190eac4206310dc7f56671f1701962da4992c

--:  ------- >  1: df734e53cb Function "size" has been dropped since jQuery 3
--:  ------- >  2: 999524541a Fix jquery ui background url
--:  ------- >  3: 0761408f8c Revert back to old padding of autocomplete list
--:  ------- >  4: a018ec36ea Highlight hovered autocomplete item like RT menu
--:  ------- >  5: 94f71583ee Don't show underline for items in superfish and autocomplete menus
--:  ------- >  6: e35a5bd89b Add question-circle to fontawesome SVG build
--:  ------- >  7: 0d2f8e1670 Replace Cc and AdminCc helper text with tooltips
--:  ------- >  8: 512c923e34 Replace CustomField hint text with tooltips
--:  ------- >  9: 2cdd7c1dee Add hint text for queue CustomField
--:  ------- > 10: 631f9da17a No need to show hint icon if cf doesn't have hints
--:  ------- > 11: 3a4b8c6ae6 Replace custom role hints with tooltips
--:  ------- > 12: 859337a59a Update dated reference to carbon-copy
--:  ------- > 13: 967569f10e Initial ticket transaction query builder
--:  ------- > 14: dd39b9f8c3 Resolve the inconsistent $Class param in Search and CollectionAsTable
--:  ------- > 15: 0e4b159daf Add support to clip long search result columns
--:  ------- > 16: c54d6a8b97 Add transaction search tests
--:  ------- > 17: 65fb92cee0 Add transaction query builder tests
--:  ------- > 18: 8c15d7b1bd Add Transactions to query builder docs
--:  ------- > 19: 5e21183b11 Tighten margin and padding for ticket people lists
--:  ------- > 20: a00ca8f4dc Add css background for tr and form-row elements with oddline class
--:  ------- > 21: 6207c71f49 Allow longer email addresses for value on People
--:  ------- > 22: df229c3aeb Add collapse to topactions inputs
--:  ------- > 23: f1e9a79e7d Fix topactions menu overlap
--:  ------- > 24: 0f4b41bcb8 Horizontally align bootstrap-select labels query builder labels
--:  ------- > 25: 8e3fae9251 Horizontally align AND/OR operators with its label in query builder
--:  ------- > 26: 46a2a2b228 Allow specifying size for Integer and String widgets
--:  ------- > 27: 905f556204 Allow String widget to have a value of "0"
--:  ------- > 28: 0542699993 Add RadioStyle option to Boolean widget
--:  ------- > 29: 95a03293f6 Make booleans with RadioStyle use true/false logic
--:  ------- > 30: 6870277a5d DatabaseSetting schema updates
--:  ------- > 31: 208e8b024a Add ORM classes for DatabaseSettings
--:  ------- > 32: bf67efa9a0 Port database config loading and refreshing from extension
--:  ------- > 33: 2aa39df793 Add Code and MultilineString widgets
--:  ------- > 34: 40cd7f0cba Port EditConfig page from extension
--:  ------- > 35: 0f84863dc8 Annotate Immutable options
--:  ------- > 36: 404fa64dd6 Add widget metadata for config options
--:  ------- > 37: 508affcfd3 Hide deprecated options
--:  ------- > 38: 3f6eb3322c List Database as source of configuration on Sys Config page
--:  ------- > 39: 5285070e53 Render config with EditLink as readonly
--:  ------- > 40: e163dfd3e0 Switch from Storable::dclone to Clone::clone to handle code/regex
--:  ------- > 41: 25d049da65 Migrate MultilineString to new themes
--:  ------- > 42: dd8840d281 Add LabelLink support for form widgets
--:  ------- > 43: 3be8415d3f Vertically align boolean label/value
--:  ------- > 44: 4a531199f3 Add tabs to the Configuration in DB feature
--:  ------- > 45: 674817e718 Rename DatabaseSetting to Configuration
--:  ------- > 46: 17730cbdf2 Validate Content of Configurations
--:  ------- > 47: 0f883c6c17 Use Data::Dumper instead in Configuration to support regex
--:  ------- > 48: 96225fe34a Note RT::Extension::ConfigInDatabase is cored and the main backend change
--:  ------- > 49: 17b78b10aa Add container div for configuration pages
--:  ------- > 50: 66462915a8 Move Edit link to the page menu on the configuration page
--:  ------- > 51: ed027415fb Add some basic help to configuration pages
--:  ------- > 52: 8bbbe8ddaa Add configuration documentation in POD
--:  ------- > 53: f7c39dd275 Add the missing $LDAPOptions to RT_Config.pm
--:  ------- > 54: 863f59cde9 Add test for /Admin/Tools/EditConfig.html
--:  ------- > 55: a95edf7e09 Refactor SectionMap to get the whole structure from RT_Config.pm
--:  ------- > 56: e8764fdc2b Re-organize RT_Config.pm to update config stucture on "RT Configuration"
--:  ------- > 57: 1df35f9004 Fix typo of "TransactionDefaultSearchResultOrderBy"
--:  ------- > 58: 694a603c39 Clean up items that simply use default widget from config meta
--:  ------- > 59: 0ac511afdb Use select widget for DefaultCatalog for better user experience
--:  ------- > 60: b7ab1acd08 Move "Must modify" message up to be right under the option it's talking about
--:  ------- > 61: e408f7dae2 Line up the top menu option on left with the top of config box on the right
--:  ------- > 62: 8141c77cd1 Add $LabelCols and $ValueCols to easily customize cols for label/value
--:  ------- > 63: c9841e7e49 Switch to 4/8 of label/value layout considering we have long option names
--:  ------- > 64: 1958a54c8e Hide all crypt related configs from web
--:  ------- > 65: 72929ed7fe Suppress stack info trace from user interface
--:  ------- > 66: 3ff137c7cb Clean up obsolete config AllowLoginPasswordAutoComplete
--:  ------- > 67: b2611aeeb1 Don't show "Save Changes" if there is nothing to change
--:  ------- > 68: bb7a369435 Make log configs immutable as updates from web doesn't work
--:  ------- > 69: ab30f346e7 Add empty option to StatementLog so we can disable it
 1: 5562e3f240 ! 70: 6fa582c3f1 Core lifecycle-UI
    @@ -67,15 +67,6 @@
     --- a/lib/RT/Lifecycle.pm
     +++ b/lib/RT/Lifecycle.pm
     @@
    - our %LIFECYCLES_CACHE;
    - our %LIFECYCLES_TYPES;
    - 
    -+my $lifecycle_cache_time = 0;
    -+
    - # cache structure:
    - #    {
    - #        lifecycle_x => {
    -@@
          my $proto = shift;
          my $self = bless {}, ref($proto) || $proto;
      
    @@ -88,14 +79,7 @@
              Name => '',
              @_,
          );
    -+    $args{'Type'} = $args{'Type'} // 'ticket';
    -+
    -+    my $needs_update = RT->System->LifecycleCacheNeedsUpdate;
    -+    if ( $needs_update > $lifecycle_cache_time) {
    -+        $self->FillCache();
    -+        $lifecycle_cache_time = $needs_update;
    -+    }
    - 
    +-
     -    if (defined $args{Name} and exists $LIFECYCLES_CACHE{ $args{Name} }) {
     -        $self->{'name'} = $args{Name};
     -        $self->{'data'} = $LIFECYCLES_CACHE{ $args{Name} };
    @@ -108,6 +92,8 @@
     -        $self->{'type'} = $args{Type};
     -    } else {
     -        return undef;
    ++    $args{'Type'} = $args{'Type'} // 'ticket';
    ++
     +    my $load_class = sub {
     +        if (defined $args{Name} and exists $LIFECYCLES_CACHE{ $args{Name} }) {
     +            $self->{'name'} = $args{Name};
    @@ -167,11 +153,6 @@
          my @res = ();
      
     @@
    -             and $class->can("RegisterRights");
    -     }
    - 
    -+    $lifecycle_cache_time = time;
    -+
          return;
      }
      
    @@ -778,7 +759,7 @@
     +</form>
     +<%INIT>
     +my ($title, @results);
    -+my $LifecycleObj = RT::Lifecycle->new();
    ++my $LifecycleObj = RT::Lifecycle->new( $session{'CurrentUser'} );
     +$LifecycleObj->Load(Name => $Name, Type => $Type);
     +
     +Abort("Invalid lifecycle") unless $LifecycleObj->Name
 2: 825a160d8b = 71: ba1e568ec4 Remove 'Interactive' lifecycle UI component
 3: c92508f72b = 72: 555d2551ba Remove lifecycle UI from ticket display
 4: 9703d80040 = 73: a4252b123b Debug log when removing an old status mapping instead of error logging
 5: 0d92d4fbb3 = 74: 413af7dbde Use RT::Configuration to store lifecycle config instead of RT::Attribute
 6: 86683c5880 = 75: 7e2fb6382d Migrate lifecycle UI pages to elevator theme
 7: 43d72ebb25 < --:  ------- Reload lifecycle cache on ListAll if needed
 8: 8c2411b5e0 < --:  ------- Update lifecyle Mapping page's title
 9: a78b4a36e0 ! 76: 1c3052c51c Update lifecyle Mapping page's title
    @@ -1,6 +1,6 @@
     Author: Craig Kaiser <craig at bestpractical.com>
     
    -    Update lifecyle Mapping page subtitles
    +    Update lifecyle Mapping page's title
     
     diff --git a/share/html/Admin/Lifecycles/Mappings.html b/share/html/Admin/Lifecycles/Mappings.html
     --- a/share/html/Admin/Lifecycles/Mappings.html
    @@ -14,4 +14,22 @@
      
      <h3><&|/l, $Other->Name, $LifecycleObj->Name &>Changing from [_1] to [_2]:</&></h3>
      <div class="row">
    +@@
    + </form>
    + <%INIT>
    + my ($title, @results);
    +-my $LifecycleObj = RT::Lifecycle->new();
    ++my $LifecycleObj = RT::Lifecycle->new( $session{'CurrentUser'} );
    + $LifecycleObj->Load(Name => $Name, Type => $Type);
    + 
    + Abort("Invalid lifecycle") unless $LifecycleObj->Name
    +@@
    + 
    + my @MyStatuses = $LifecycleObj->Valid;
    + 
    +-$title = loc("Lifecycle [_1] Mappings", $LifecycleObj->Name);
    ++$title = loc("Mappings for lifecycle [_1]", $LifecycleObj->Name);
    + 
    + # This code does automatic redirection if any updates happen.
    + MaybeRedirectForResults(
     
10: 527bd331a4 = 77: 4911d30c2e Lifecycle mapping page show status mappings side by side
11: 475957a273 < --:  ------- Ensure lifecycle cache is updated across threads when flagged
--:  ------- > 78: fa978ebfee Ensure lifecycle cache is updated across threads when flagged
12: 5b812b1724 ! 79: 58645cca9d  Add lifecycle UI Advanced page
    @@ -1,6 +1,6 @@
     Author: Craig Kaiser <craig at bestpractical.com>
     
    -    Add advanced page for lifecycle UI configurations
    +     Add lifecycle UI Advanced page
     
     diff --git a/lib/RT/Lifecycle.pm b/lib/RT/Lifecycle.pm
     --- a/lib/RT/Lifecycle.pm
    @@ -55,7 +55,6 @@
     +        for my $status ( @statuses ) {
     +            push @warnings, "Nonexistant status @{[lc $status]} in transitions in ".$self->Name." lifecycle"
     +                unless $lifecycle->{canonical_case}{lc $status};
    -+            push @{ $lifecycle->{transitions}{lc $from} },
     +        }
     +    }
     +    my $rights = $lifecycle->{rights} || {};
    @@ -140,106 +139,7 @@
     +    return @warnings;
     +}
     +
    - sub _Init {
    -     my $self = shift;
    -     $self->{'lifecycle_cache_time'} = 0;
    -
    -diff --git a/share/html/Admin/Lifecycles/Actions.html b/share/html/Admin/Lifecycles/Actions.html
    -new file mode 100644
    ---- /dev/null
    -+++ b/share/html/Admin/Lifecycles/Actions.html
    -@@
    -+%# BEGIN BPS TAGGED BLOCK {{{
    -+%#
    -+%# COPYRIGHT:
    -+%#
    -+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
    -+%#                                          <sales at bestpractical.com>
    -+%#
    -+%# (Except where explicitly superseded by other copyright notices)
    -+%#
    -+%#
    -+%# LICENSE:
    -+%#
    -+%# This work is made available to you under the terms of Version 2 of
    -+%# the GNU General Public License. A copy of that license should have
    -+%# been provided with this software, but in any event can be snarfed
    -+%# from www.gnu.org.
    -+%#
    -+%# This work is distributed in the hope that it will be useful, but
    -+%# WITHOUT ANY WARRANTY; without even the implied warranty of
    -+%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    -+%# General Public License for more details.
    -+%#
    -+%# You should have received a copy of the GNU General Public License
    -+%# along with this program; if not, write to the Free Software
    -+%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    -+%# 02110-1301 or visit their web page on the internet at
    -+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
    -+%#
    -+%#
    -+%# CONTRIBUTION SUBMISSION POLICY:
    -+%#
    -+%# (The following paragraph is not intended to limit the rights granted
    -+%# to you to modify and distribute this software under the terms of
    -+%# the GNU General Public License and is only of importance to you if
    -+%# you choose to contribute your changes and enhancements to the
    -+%# community by submitting them to Best Practical Solutions, LLC.)
    -+%#
    -+%# By intentionally submitting any modifications, corrections or
    -+%# derivatives to this work, or any other work intended for use with
    -+%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
    -+%# you are the copyright holder for those contributions and you grant
    -+%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
    -+%# royalty-free, perpetual, license to use, copy, create derivative
    -+%# works based on those contributions, and sublicense and distribute
    -+%# those contributions and any derivatives thereof.
    -+%#
    -+%# END BPS TAGGED BLOCK }}}
    -+<& /Admin/Elements/Header, Title => $title &>
    -+<& /Elements/Tabs &>
    -+<& /Elements/ListActions, actions => \@results &>
    -+
    -+<%INIT>
    -+my ($title, @results);
    -+my $LifecycleObj = RT::Lifecycle->new();
    -+$LifecycleObj->Load(Name => $Name, Type => $Type);
    -+
    -+Abort("Invalid lifecycle") unless $LifecycleObj->Name
    -+                                && $LifecycleObj->{data}{type} eq $Type;
    -+
    -+$title = loc("Rights for lifecycle [_1]", $LifecycleObj->Name);
    -+
    -+if ($Config) {
    -+    my $LifecycleConfiguration = JSON::from_json($LifecycleConfiguration);
    -+    my ($ok, $msg) = RT::Lifecycle->UpdateLifecycle(
    -+        CurrentUser    => $session{CurrentUser},
    -+        LifecycleObj   => $LifecycleObj,
    -+        NewConfig      => JSON::from_json($Config),
    -+        Configuration  => $LifecycleConfiguration,
    -+    );
    -+    if ( $ok ) {
    -+        push @results, "Lifecycle updated";
    -+    }
    -+    else {
    -+        push @results, "An error occured when attempting to update lifecycle, see RT log for more info.";
    -+    }
    -+}
    -+
    -+# This code does automatic redirection if any updates happen.
    -+MaybeRedirectForResults(
    -+    Actions   => \@results,
    -+    Arguments => { Name => $LifecycleObj->Name, Type => $LifecycleObj->Type },
    -+);
    -+</%INIT>
    -+<%ARGS>
    -+$Name                   => undef
    -+$Type                   => undef
    -+$Config                 => undef
    -+$LifecycleConfiguration => undef
    -+</%ARGS>
    -+    
    -\ No newline at end of file
    + 1;
     
     diff --git a/share/html/Admin/Lifecycles/Advanced.html b/share/html/Admin/Lifecycles/Advanced.html
     new file mode 100644
    @@ -326,7 +226,7 @@
     +
     +<%INIT>
     +my ($title, @results);
    -+my $LifecycleObj = RT::Lifecycle->new();
    ++my $LifecycleObj = RT::Lifecycle->new( $session{'CurrentUser'} );
     +$LifecycleObj->Load(Name => $Name, Type => $Type);
     +
     +Abort("Invalid lifecycle") unless $LifecycleObj->Name
    @@ -383,103 +283,6 @@
        <div class="col-md-12">
          <& /Elements/Submit, Label => loc('Save Changes') &>
        </div>
    -
    -diff --git a/share/html/Admin/Lifecycles/Rights.html b/share/html/Admin/Lifecycles/Rights.html
    -new file mode 100644
    ---- /dev/null
    -+++ b/share/html/Admin/Lifecycles/Rights.html
    -@@
    -+%# BEGIN BPS TAGGED BLOCK {{{
    -+%#
    -+%# COPYRIGHT:
    -+%#
    -+%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC
    -+%#                                          <sales at bestpractical.com>
    -+%#
    -+%# (Except where explicitly superseded by other copyright notices)
    -+%#
    -+%#
    -+%# LICENSE:
    -+%#
    -+%# This work is made available to you under the terms of Version 2 of
    -+%# the GNU General Public License. A copy of that license should have
    -+%# been provided with this software, but in any event can be snarfed
    -+%# from www.gnu.org.
    -+%#
    -+%# This work is distributed in the hope that it will be useful, but
    -+%# WITHOUT ANY WARRANTY; without even the implied warranty of
    -+%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    -+%# General Public License for more details.
    -+%#
    -+%# You should have received a copy of the GNU General Public License
    -+%# along with this program; if not, write to the Free Software
    -+%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    -+%# 02110-1301 or visit their web page on the internet at
    -+%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
    -+%#
    -+%#
    -+%# CONTRIBUTION SUBMISSION POLICY:
    -+%#
    -+%# (The following paragraph is not intended to limit the rights granted
    -+%# to you to modify and distribute this software under the terms of
    -+%# the GNU General Public License and is only of importance to you if
    -+%# you choose to contribute your changes and enhancements to the
    -+%# community by submitting them to Best Practical Solutions, LLC.)
    -+%#
    -+%# By intentionally submitting any modifications, corrections or
    -+%# derivatives to this work, or any other work intended for use with
    -+%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
    -+%# you are the copyright holder for those contributions and you grant
    -+%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
    -+%# royalty-free, perpetual, license to use, copy, create derivative
    -+%# works based on those contributions, and sublicense and distribute
    -+%# those contributions and any derivatives thereof.
    -+%#
    -+%# END BPS TAGGED BLOCK }}}
    -+<& /Admin/Elements/Header, Title => $title &>
    -+<& /Elements/Tabs &>
    -+<& /Elements/ListActions, actions => \@results &>
    -+
    -+<%INIT>
    -+my ($title, @results);
    -+my $LifecycleObj = RT::Lifecycle->new();
    -+$LifecycleObj->Load(Name => $Name, Type => $Type);
    -+
    -+Abort("Invalid lifecycle") unless $LifecycleObj->Name
    -+                                && $LifecycleObj->{data}{type} eq $Type;
    -+
    -+$title = loc("Rights for lifecycle [_1]", $LifecycleObj->Name);
    -+
    -+if ($Config) {
    -+    my $LifecycleConfiguration = JSON::from_json($LifecycleConfiguration);
    -+    my ($ok, $msg) = RT::Lifecycle->UpdateLifecycle(
    -+        CurrentUser    => $session{CurrentUser},
    -+        LifecycleObj   => $LifecycleObj,
    -+        NewConfig      => JSON::from_json($Config),
    -+        Configuration  => $LifecycleConfiguration,
    -+    );
    -+    if ( $ok ) {
    -+        push @results, "Lifecycle updated";
    -+    }
    -+    else {
    -+        push @results, "An error occured when attempting to update lifecycle, see RT log for more info.";
    -+    }
    -+}
    -+
    -+# This code does automatic redirection if any updates happen.
    -+MaybeRedirectForResults(
    -+    Actions   => \@results,
    -+    Arguments => { Name => $LifecycleObj->Name, Type => $LifecycleObj->Type },
    -+);
    -+</%INIT>
    -+<%ARGS>
    -+$Name                   => undef
    -+$Type                   => undef
    -+$Config                 => undef
    -+$LifecycleConfiguration => undef
    -+</%ARGS>
    -+    
    -\ No newline at end of file
     
     diff --git a/share/html/Elements/Lifecycle/Graph b/share/html/Elements/Lifecycle/Graph
     --- a/share/html/Elements/Lifecycle/Graph
    @@ -562,5 +365,4 @@
     +        });
     +    });
     +}
    -\ No newline at end of file
    -
    +
13: d84b453203 < --:  ------- Add Rights page for lifecycle UI
14: 1eec3d3c0a < --:  ------- Add Actions page for lifecycle UI
--:  ------- > 80: d215346ae4 Add lifecycle UI Actions page
--:  ------- > 81: d1cbfcbd4f Add lifecycle UI Rights page
15: bb54f07734 ! 82: 8a7190eac4 Add lifecycle Rights/Actions/Advanced pages to menu
    @@ -16,4 +16,3 @@
                  }
              }
              else {
    -
16: c19d65687c < --:  ------- Add helper methods to RT::Lifecycle



More information about the rt-commit mailing list