[Rt-commit] rt branch, 4.6/core-rightinspector, repushed
Michel Rodriguez
michel at bestpractical.com
Mon Sep 9 10:04:56 EDT 2019
The branch 4.6/core-rightinspector was deleted and repushed:
was fb35100b212808c0d154c0225e45703461f2d9eb
now a5266b786adfbded4e2e24acac1e41121d04e172
1: 1eeb8b344 ! 1: 40dec2d6e Cored RT::Extension::RightsInspector
@@ -1,20 +1,26 @@
Author: michel <michel at bestpractical.com>
Cored RT::Extension::RightsInspector
-
- Missing: the stylesheet is not used, the javascript only works if RT is
- at the top level of the web server (ie not in /rt/)
diff --git a/lib/RT/Interface/Web/MenuBuilder.pm b/lib/RT/Interface/Web/MenuBuilder.pm
--- a/lib/RT/Interface/Web/MenuBuilder.pm
+++ b/lib/RT/Interface/Web/MenuBuilder.pm
+@@
+ #
+ # COPYRIGHT:
+ #
+-# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
++# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC
+ # <sales at bestpractical.com>
+ #
+ # (Except where explicitly superseded by other copyright notices)
@@
path => '/Admin/Tools/Queries.html',
);
}
+ $admin_tools->child( rights_inspector =>
+ title => loc('Rights Inspector'),
-+ description => loc('Search your configured permissions'),
++ description => loc('Search your configured rights'),
+ path => '/Admin/Tools/RightsInspector.html',
+ );
$admin_tools->child( shredder =>
@@ -26,6 +32,54 @@
--- /dev/null
+++ b/lib/RT/RightsInspector.pm
@@
++# BEGIN BPS TAGGED BLOCK {{{
++#
++# COPYRIGHT:
++#
++# This software is Copyright (c) 1996-2019 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 }}}
++
+package RT::RightsInspector;
+use strict;
+use warnings;
@@ -44,7 +98,7 @@
+# record - generalization of principal and object since rendering
+# and whatnot can share code
+
-+my $PageLimit = 100;
++my $PageLimit = 10;
+
+$RT::Interface::Web::WHITELISTED_COMPONENT_ARGS{'/Admin/RightsInspector/index.html'} = ['Principal', 'Object', 'Right'];
+
@@ -554,8 +608,8 @@
+ }
+
+ KEY: for my $key (qw/principal object/) {
-+ # filtering on the serialized record is hacky, but doing the
-+ # searching in SQL is absolutely a nonstarter
++ # filtering on the serialized record is hacky, but doing the
++ # searching in SQL is absolutely a nonstarter
+ next KEY unless $use_regex_search_for{$key};
+
+ if (my $term = $args{$key}) {
@@ -610,6 +664,7 @@
+# should the "Revoke" button be disabled? by default it is for the two required
+# system privileges; if such privileges needed to be revoked they can be done
+# through the ordinary ACL management UI
++# it is also disabled for SuperUser, otherwise it is too easy to completely hose the system
+sub DisableRevoke {
+ my $self = shift;
+ my $ACE = shift;
@@ -619,7 +674,7 @@
+
+ if ($Principal->Object->Domain eq 'ACLEquivalence') {
+ my $User = $Principal->Object->InstanceObj;
-+ if ($User->Id == RT->SystemUser->Id && $Object->isa('RT::System') && $Right eq 'SuperUser') {
++ if ($Object->isa('RT::System') && $Right eq 'SuperUser') {
+ return 1;
+ }
+ if ($User->Id == RT->Nobody->Id && $Object->isa('RT::System') && $Right eq 'OwnTicket') {
@@ -859,10 +914,57 @@
--- /dev/null
+++ b/share/html/Admin/Tools/RightsInspector.html
@@
++# BEGIN BPS TAGGED BLOCK {{{
++#
++# COPYRIGHT:
++#
++# This software is Copyright (c) 1996-2019 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 => loc("Rights Inspector") &>
+<& /Elements/Tabs &>
+
-+<div class="help">
++<div class="help" id="rt-help-text">
+<&| /Widgets/TitleBox, title => loc('Usage Help') &>
+<p>The Rights Inspector lets you search your configured permissions based
+on several different criteria. Each permission consists of a "Principal"
@@ -934,6 +1036,53 @@
--- /dev/null
+++ b/share/html/Helpers/RightsInspector/Revoke
@@
++# BEGIN BPS TAGGED BLOCK {{{
++#
++# COPYRIGHT:
++#
++# This software is Copyright (c) 1996-2019 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 }}}
+<%ARGS>
+$id => undef
+</%ARGS>
@@ -958,6 +1107,53 @@
--- /dev/null
+++ b/share/html/Helpers/RightsInspector/Search
@@
++# BEGIN BPS TAGGED BLOCK {{{
++#
++# COPYRIGHT:
++#
++# This software is Copyright (c) 1996-2019 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 }}}
+<%INIT>
+use RT::RightsInspector;
+
@@ -977,21 +1173,6 @@
}
+
+
-+#rights-inspector .search input,
-+#rights-inspector .results .result .cell {
-+ display: inline-block;
-+ width: 15em;
-+}
-+
-+#rights-inspector .results .result .cell {
-+ text-overflow: ellipsis;
-+ overflow: hidden;
-+}
-+
-+#rights-inspector .results .result .cell.revoke {
-+ display: inline-block;
-+ width: auto;
-+}
+
+#rights-inspector .search .loading,
+#rights-inspector > .loading {
@@ -1016,15 +1197,11 @@
+#rights-inspector.error .results {
+ color: red;
+ font-weight: bold;
++
+}
+
+#rights-inspector.awaiting-first-result .results {
+ opacity: 0.5;
-+}
-+
-+#rights-inspector .results .result .cell {
-+ padding: 2px;
-+ vertical-align: top;
+}
+
+#rights-inspector .results .result:nth-child(even) {
@@ -1036,31 +1213,40 @@
+ font-weight: bold;
+}
+
++#rights-inspector .results .result .name {
++ display: block;
++}
++
++#rights-inspector .results .result .record.disabled .name {
++ text-decoration: line-through;
++}
++
+#rights-inspector .results .result .detail {
+ font-size: 80%;
+ color: #AAA;
-+ display: block;
-+}
-+
-+#rights-inspector .results .result .record.disabled .name {
-+ text-decoration: line-through;
++ display: inline-block;
+}
+
+#rights-inspector .results .result .primary {
+ font-size: 80%;
+ font-style: italic;
-+ display: block;
++ display: inline-block;
++ padding-left: 3px;
++}
++
++#rights-inspector .results .result .primary .name {
++ display: inline-block;
+}
+
+#rights-inspector .results .result .primary .detail {
+ display: none;
+}
+
-+#comp-Admin-RightsInspector kbd {
++#rt-help-text kbd {
+ color: #111;
+ border: 1px dashed #AAA;
+ background-color: #F6F6F6;
-+ padding: 1px;
++ padding: 2px 3px;
+}
+
@@ -1268,13 +1454,18 @@
+}
+
+function render_inspector_result (item) {
-+ var revoke = item.disable_revoke ? 'class="ui-state-disabled" disabled="disabled"' : '';
++ var disabled_state = item.disable_revoke ? ' disabled="disabled"' : '';
++ var disabled_class = item.disable_revoke ? ' ui-state-disabled' : '';
++ var revoke_action = RT.Config.WebPath + '/Helpers/RightsInspector/Revoke?id=' + item.ace.id;
++
+ return '<div class="result row">'
+ + ' <div class="principal cell col-md-3">' + render_inspector_record( item.principal) + '</div>'
+ + ' <div class="object cell col-md-3">' + render_inspector_record( item.object) + '</div>'
+ + ' <div class="right cell col-md-3">' + item.right_highlighted + '</div>'
-+ + ' <div class="revoke cell col-md-2">'
-+ + ' <button type="button" data-action="/Helpers/RightsInspector/Revoke?id=' + item.ace.id + '" ' + revoke + '>Revoke</button>'
++ + ' <div class="revoke cell col-md-1">'
++ + ' <button type="button" class="revoke-button' + disabled_class + '"'
++ + ' data-action="' + revoke_action + '" '
++ + disabled_state + '>Revoke</button>'
+ + ' </div>'
+ + '</div>'
+ ;
2: dcb032b4d < --: ------- Fixed formating
3: df0835109 < --: ------- Added generation of the proper URL in the JS even if the RT URL is not /
4: 7b42639f9 < --: ------- Change wording of the RightsInspector description
5: 3601524a6 < --: ------- Add licensing boilerplate
6: e8254b9a7 < --: ------- Change the help text id (and associated CSS rule)
7: e9b6246cf < --: ------- Use the RT provided RT.Config.WebPath to get the Web Path
8: 16e549b26 < --: ------- Create a Spinner widget
9: 3002b6253 ! 2: cd5a7d820 Improve formating with new themes
@@ -1,6 +1,6 @@
Author: michel <michel at bestpractical.com>
- Made everything work with bootstrap
+ Improve formating with new themes
diff --git a/lib/RT/RightsInspector.pm b/lib/RT/RightsInspector.pm
--- a/lib/RT/RightsInspector.pm
@@ -19,45 +19,53 @@
--- a/share/html/Admin/Tools/RightsInspector.html
+++ b/share/html/Admin/Tools/RightsInspector.html
@@
- <&|/Widgets/TitleBox, title => loc("Rights Inspector") &>
- <form action="<%RT->Config->Get('WebPath')%>/Helpers/RightsInspector/Search" id="rights-inspector" class="search">
- <div class="row">
-- <input class="col-md-3" value="<% $ARGS{Principal} %>" type="text" name="principal" placeholder="Principal">
-- <input class="col-md-3" value="<% $ARGS{Object} %>" type="text" name="object" placeholder="Object">
-- <input class="col-md-3" value="<% $ARGS{Right} %>" type="text" name="right" placeholder="Right">
-+ <input class="col-md-3 form-control" value="<% $ARGS{Principal} %>" type="text" name="principal" placeholder="Principal">
-+ <input class="col-md-3 form-control" value="<% $ARGS{Object} %>" type="text" name="object" placeholder="Object">
-+ <input class="col-md-3 form-control" value="<% $ARGS{Right} %>" type="text" name="right" placeholder="Right">
- </div>
-
-- <& /Widgets/Spinner &>
--
- <div class="results">
- </div>
- <& /Widgets/Spinner &>
- </form>
-- <script type="text/javascript" src="<%RT->Config->Get('WebPath')%>/static/js/rights-inspector.js"></script>
- </&>
-
-
-
-diff --git a/share/html/Helpers/RightsInspector/Search b/share/html/Helpers/RightsInspector/Search
---- a/share/html/Helpers/RightsInspector/Search
-+++ b/share/html/Helpers/RightsInspector/Search
-@@
- # END BPS TAGGED BLOCK }}}
- <%INIT>
- use RT::RightsInspector;
--sleep(2);
- my $results = RT::RightsInspector->Search(%ARGS);
- $r->content_type('application/json; charset=utf-8');
- RT::Interface::Web::CacheControlExpiresHeaders( Time => 'no-cache' );
-
-diff --git a/share/html/Widgets/Spinner b/share/html/Widgets/Spinner
-new file mode 100644
---- /dev/null
-+++ b/share/html/Widgets/Spinner
-@@
+-# BEGIN BPS TAGGED BLOCK {{{
+-#
+-# COPYRIGHT:
+-#
+-# This software is Copyright (c) 1996-2019 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 }}}
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
@@ -105,6 +113,100 @@
+%# those contributions and any derivatives thereof.
+%#
+%# END BPS TAGGED BLOCK }}}
+ <& /Admin/Elements/Header, Title => loc("Rights Inspector") &>
+ <& /Elements/Tabs &>
+
+@@
+ </div>
+
+ <&|/Widgets/TitleBox, title => loc("Rights Inspector") &>
+-<form action="<%RT->Config->Get('WebPath')%>/Helpers/RightsInspector/Search" id="rights-inspector">
+- <div class="search row">
+- <input class="col-md-3" value="<% $ARGS{Principal} %>" type="text" name="principal" placeholder="Principal">
+- <input class="col-md-3" value="<% $ARGS{Object} %>" type="text" name="object" placeholder="Object">
+- <input class="col-md-3" value="<% $ARGS{Right} %>" type="text" name="right" placeholder="Right">
+- <span class="loading"><img src="<%RT->Config->Get('WebPath')%>/static/images/loading.gif" alt="<%loc('Loading')%>" title="<%loc('Loading')%>" /></span>
++<form action="<%RT->Config->Get('WebPath')%>/Helpers/RightsInspector/Search" id="rights-inspector" class="search">
++ <div class="row">
++ <input class="col-md-3 form-control" value="<% $ARGS{Principal} %>" type="text" name="principal" placeholder="Principal">
++ <input class="col-md-3 form-control" value="<% $ARGS{Object} %>" type="text" name="object" placeholder="Object">
++ <input class="col-md-3 form-control" value="<% $ARGS{Right} %>" type="text" name="right" placeholder="Right">
+ </div>
+
+- <script type="text/javascript" src="<%RT->Config->Get('WebPath')%>/static/js/rights-inspector.js"></script>
+-
+ <div class="results">
+ </div>
+- <span class="loading"><img src="<%RT->Config->Get('WebPath')%>/static/images/loading.gif" alt="<%loc('Loading')%>" title="<%loc('Loading')%>" /></span>
++ <& /Widgets/Spinner &>
+ </form>
+ </&>
+
+
+diff --git a/share/html/Helpers/RightsInspector/Search b/share/html/Helpers/RightsInspector/Search
+--- a/share/html/Helpers/RightsInspector/Search
++++ b/share/html/Helpers/RightsInspector/Search
+@@
+ # END BPS TAGGED BLOCK }}}
+ <%INIT>
+ use RT::RightsInspector;
+-
+ my $results = RT::RightsInspector->Search(%ARGS);
+ $r->content_type('application/json; charset=utf-8');
+ RT::Interface::Web::CacheControlExpiresHeaders( Time => 'no-cache' );
+
+diff --git a/share/html/Widgets/Spinner b/share/html/Widgets/Spinner
+new file mode 100644
+--- /dev/null
++++ b/share/html/Widgets/Spinner
+@@
++%# BEGIN BPS TAGGED BLOCK {{{
++%#
++%# COPYRIGHT:
++%#
++%# This software is Copyright (c) 1996-2019 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 }}}
+<div class="spinner">
+ <div class="d-flex justify-content-center">
+ <div class="spinner-border" role="status">
@@ -117,6 +219,34 @@
diff --git a/share/static/css/elevator-light/admin.css b/share/static/css/elevator-light/admin.css
--- a/share/static/css/elevator-light/admin.css
+++ b/share/static/css/elevator-light/admin.css
+@@
+
+
+
+-#rights-inspector .search .loading,
+-#rights-inspector > .loading {
++#rights-inspector .loading {
+ display: none;
+ }
+
+-#rights-inspector .search .loading img,
+-#rights-inspector > .loading img,
+-#rights-inspector .results .revoke img {
+- height: 1.5em;
+- width: 1.5em;
+-}
+-
+-#rights-inspector.awaiting-first-result .search .loading {
+- display: inline;
+-}
+-
+-#rights-inspector.continuing-load > .loading {
+- display: inline;
+-}
+-
+ #rights-inspector.error .results {
+ color: red;
+ font-weight: bold;
@@
opacity: 0.5;
}
@@ -222,15 +352,4 @@
function render_inspector_primary_record (primary_record) {
return primary_record ? '<span class="primary">Contains ' + render_inspector_record( primary_record) + '</span>'
: '';
-@@
- + ' <div class="principal cell col-md-3">' + render_inspector_record( item.principal) + '</div>'
- + ' <div class="object cell col-md-3">' + render_inspector_record( item.object) + '</div>'
- + ' <div class="right cell col-md-3">' + item.right_highlighted + '</div>'
-- + ' <div class="revoke cell col-md-2">'
-- + ' <button type="button" data-action="' + RT.Config.WebPath + '/Helpers/RightsInspector/Revoke?id=' + item.ace.id + '" ' + disabled_state + '>Revoke</button>'
-+ + ' <div class="revoke cell col-md-1">'
-+ + ' <button type="button" class="revoke-button" data-action="' + RT.Config.WebPath + '/Helpers/RightsInspector/Revoke?id=' + item.ace.id + '" ' + disabled_state + '>Revoke</button>'
- + ' </div>'
- + '</div>'
- ;
-
+
10: df2818573 ! 3: a5266b786 Improve look for the dark theme
@@ -18,4 +18,3 @@
+ background-color: #114 !important;
+}
+
-
11: b48b3136e < --: ------- Fixes a problem with the display of disabled revoke buttons
12: fb35100b2 < --: ------- Fixes 2 problems with t/99-policy.t testing
More information about the rt-commit
mailing list