[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