Skip to content

Commit b818f09

Browse files
committed
Determine asset custom role visibility based on page layout
1 parent 7fbe5a1 commit b818f09

File tree

6 files changed

+22
-10
lines changed

6 files changed

+22
-10
lines changed

share/html/Asset/Elements/EditPeople

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
%# END BPS TAGGED BLOCK }}}
4848
% for my $role ( $object->Roles ) {
4949
% my $custom_role = $object->CustomRoleObj($role);
50+
% next if $custom_role && grep { $custom_role->Name eq $_ } @HiddenRoles;
5051
% my $hint = $custom_role ? $custom_role->EntryHint : '';
5152
<&| /Elements/LabeledValue, Label => $object->LabelForRole($role), Class => "asset-people-".CSSClass($role), LabelTooltip => $hint &>
5253
<& /Elements/EmailInput, Name => $role, Size => undef, Default => $ARGS{$role}, Autocomplete => 1, ($object->Role($role)->{Single} ? (AutocompleteNobody => 1, AutocompleteReturn => 'Name') : (AutocompleteType => 'Principals', AutocompleteMultiple => 1)) &>
@@ -60,4 +61,5 @@ my $object = $AssetObj->Id ? $AssetObj : $CatalogObj;
6061
<%args>
6162
$AssetObj
6263
$CatalogObj
64+
@HiddenRoles => ()
6365
</%args>

share/html/Asset/Elements/EditPeopleInline

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
%#
4747
%# END BPS TAGGED BLOCK }}}
4848
% for my $role ($AssetObj->Roles( ACLOnly => 0 )) {
49+
% my $custom_role = $AssetObj->CustomRoleObj($role);
50+
% next if $custom_role && grep { $custom_role->Name eq $_ } @HiddenRoles;
4951
<div class="role-<% CSSClass($role) %> role">
5052
<h5 class="mt-2"><% $AssetObj->LabelForRole($role) %></h5>
5153
<& EditRoleMembers, Object => $AssetObj, Role => $role &>
@@ -56,7 +58,7 @@
5658
<h5 class="mt-2"><&|/l&>Add a person</&></h5>
5759
<div class="row mt-2">
5860
<div class="col-3">
59-
<& SelectRoleType, Object => $AssetObj, Name => "AddUserRoleMember-Role" &>
61+
<& SelectRoleType, Object => $AssetObj, Name => "AddUserRoleMember-Role", %ARGS &>
6062
</div>
6163
<div class="col-9">
6264
<input type="text" name="AddUserRoleMember"
@@ -73,7 +75,7 @@
7375
<h5 class="mt-2"><&|/l&>Add a group</&></h5>
7476
<div class="row mt-2">
7577
<div class="col-3">
76-
<& SelectRoleType, Object => $AssetObj, Name => "AddGroupRoleMember-Role" &>
78+
<& SelectRoleType, Object => $AssetObj, Name => "AddGroupRoleMember-Role", %ARGS &>
7779
</div>
7880
<div class="col-9">
7981
<input type="text" name="AddGroupRoleMember"
@@ -89,6 +91,7 @@
8991
<& /Elements/EditCustomFields, Object => $AssetObj, Grouping => 'People', InTable => 1 &>
9092
<%ARGS>
9193
$AssetObj => undef
94+
@HiddenRoles => ()
9295
</%ARGS>
9396

9497
<%attr>

share/html/Asset/Elements/SelectRoleType

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,15 @@
4949
$Object
5050
$Name
5151
$AllowNull => 0
52+
@HiddenRoles => ()
5253
</%args>
5354
<select name="<% $Name %>" class="form-select selectpicker">
5455
% if ($AllowNull) {
5556
<option value=""></option>
5657
% }
5758
% for my $role ($Object->Roles( ACLOnly => 0, Single => 0 )) {
59+
% my $custom_role = $Object->CustomRoleObj($role);
60+
% next if $custom_role && grep { $custom_role->Name eq $_ } @HiddenRoles;
5861
<option value="<% $role %>"><% $Object->LabelForRole($role) %></option>
5962
% }
6063
</select>

share/html/Asset/Elements/ShowPeople

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,14 @@
4747
%# END BPS TAGGED BLOCK }}}
4848
<%args>
4949
$AssetObj
50+
@HiddenRoles => ()
5051
</%args>
5152
<%init>
5253
my $CatalogObj = $AssetObj->CatalogObj;
5354
</%init>
5455
% for my $role ($AssetObj->Roles) {
56+
% my $custom_role = $AssetObj->CustomRoleObj($role);
57+
% next if $custom_role && grep { $custom_role->Name eq $_ } @HiddenRoles;
5558
<div class="row mt-2 <% $AssetObj->RoleGroup($role)->MembersObj->Count ? q{} : q{unset-field}%>">
5659
<div class="col">
5760
<div class="rt-label "><span class="rt-label text-body-secondary"><% $AssetObj->LabelForRole($role) %></span></div>

share/html/Asset/Widgets/Display/People

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,16 @@
5454
data => { 'inline-edit-behavior' => $modify_behavior },
5555
&>
5656
% unless ($modify_behavior eq 'always') {
57-
<div class="inline-edit-display" hx-trigger="assetPeopleChanged from:body" hx-get="<%RT->Config->Get('WebPath')%>/Views/Asset/ShowPeople?id=<% $AssetObj->id %>">
58-
<& /Asset/Elements/ShowPeople, AssetObj => $AssetObj &>
57+
<div class="inline-edit-display" hx-trigger="assetPeopleChanged from:body"
58+
hx-get="<%RT->Config->Get('WebPath')%>/Views/Asset/ShowPeople?<% QueryString( id => $AssetObj->id, map { blessed $ARGS{$_} ? () : ( $_ => $ARGS{$_} ) } keys %ARGS ) %>">
59+
<& /Asset/Elements/ShowPeople, AssetObj => $AssetObj, %ARGS &>
5960
</div>
6061
% }
6162
% if ($modify_behavior ne 'hide') {
6263
<form hx-post="<% RT->Config->Get('WebPath') %>/Helpers/AssetUpdate" hx-swap="none" class="inline-edit" enctype="multipart/form-data">
6364
<input type="hidden" class="hidden" name="id" value="<% $AssetObj->id %>" />
64-
<div hx-trigger="assetPeopleChanged from:body" hx-get="<% RT->Config->Get('WebPath') %>/Views/Asset/EditPeopleInline?id=<% $AssetObj->id %>" hx-swap="innerHTML">
65-
<& /Asset/Elements/EditPeopleInline, AssetObj => $AssetObj &>
65+
<div hx-trigger="assetPeopleChanged from:body" hx-get="<% RT->Config->Get('WebPath') %>/Views/Asset/EditPeopleInline?<% QueryString( id => $AssetObj->id, map { blessed $ARGS{$_} ? () : ( $_ => $ARGS{$_} ) } keys %ARGS ) %>" hx-swap="innerHTML">
66+
<& /Asset/Elements/EditPeopleInline, AssetObj => $AssetObj, %ARGS &>
6667
</div>
6768
<div class="row mt-2">
6869
<div class="col-12 text-end">

share/html/Elements/EditPageLayout

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191
<% GetSVGImage( Name => 'info', Title => ' ' ) |n %>
9292
<a href="#" class="edit" data-bs-toggle="modal" data-bs-target="#pagelayout-widget-<% $item %>-modal">
9393
<% GetSVGImage( Name => 'pencil', Title => loc('Edit') ) |n %></a>
94-
% } elsif ( ( $item eq 'History' && $Page !~ /^SelfService / ) || ( $Class eq 'RT::Ticket' && ( $item =~ /^(?:People|Basics)$/ || ( $Page eq 'Create' && $item eq 'Message' ) ) ) ) {
94+
% } elsif ( ( $item eq 'History' && $Page !~ /^SelfService / ) || ( $Class =~ /^RT::(?:Ticket|Asset)$/ && $item eq 'People' ) || ( $Class eq 'RT::Ticket' && ( $item eq 'Basics' || ( $Page eq 'Create' && $item eq 'Message' ) ) ) ) {
9595
<a href="#" class="edit" data-bs-toggle="modal" data-bs-target="#pagelayout-widget-<% $item %>-modal">
9696
<% GetSVGImage( Name => 'pencil', Title => loc('Edit') ) |n %></a>
9797
% }
@@ -105,7 +105,7 @@
105105
<& SELF:EditWidgetCustomFieldCustomGroupings, Widget => $item, Groupings => \@groupings &>
106106
% } elsif ( $item eq 'Message' && $Class eq 'RT::Ticket' && $Page eq 'Create' ) {
107107
<& SELF:EditWidgetMessage, Widget => $item, Class => $Class, Page => $Page &>
108-
% } elsif ( $item eq 'People' && $Class eq 'RT::Ticket' ) {
108+
% } elsif ( $item eq 'People' && $Class =~ /^RT::(?:Ticket|Asset)$/ ) {
109109
<& SELF:EditWidgetPeople, Widget => $item, Class => $Class, Page => $Page &>
110110
% } elsif ( $item eq 'Basics' && $Class eq 'RT::Ticket' ) {
111111
<& SELF:EditWidgetBasics, Widget => $item, Class => $Class, Page => $Page &>
@@ -384,7 +384,7 @@ $Content => []
384384
<% GetSVGImage( Name => 'info', $Widget =~ /.*:(.+)/ ? ( Title => $1 ) : ( Title => ' ', ExtraClasses => 'hidden' ) ) |n %>
385385
<a href="#" class="edit" data-bs-toggle="modal" data-bs-target="#pagelayout-widget-<% $Index %>-modal">
386386
<% GetSVGImage( Name => 'pencil', Title => loc('Edit') ) |n %></a>
387-
% } elsif ( ( $widget_name eq 'History' && $Page !~ /^SelfService / ) || ( $Class eq 'RT::Ticket' && ( $widget_name =~ /^(?:People|Basics)$/ || ( $Page eq 'Create' && $widget_name eq 'Message' ) ) ) ) {
387+
% } elsif ( ( $widget_name eq 'History' && $Page !~ /^SelfService / ) || ( $Class =~ /^RT::(?:Ticket|Asset)$/ && $widget_name eq 'People' ) || ( $Class eq 'RT::Ticket' && ( $widget_name eq 'Basics' || ( $Page eq 'Create' && $widget_name eq 'Message' ) ) ) ) {
388388
<a href="#" class="edit" data-bs-toggle="modal" data-bs-target="#pagelayout-widget-<% $Index %>-modal">
389389
<% GetSVGImage( Name => 'pencil', Title => loc('Edit') ) |n %></a>
390390
% }
@@ -399,7 +399,7 @@ $Content => []
399399
<& SELF:EditWidgetHistory, %ARGS, Class => $Class &>
400400
% } elsif ( $Class eq 'RT::Ticket' && $Page eq 'Create' && $widget_name eq 'Message' ) {
401401
<& SELF:EditWidgetMessage, %ARGS, Class => $Class, Page => $Page &>
402-
% } elsif ( $Class eq 'RT::Ticket' && $widget_name eq 'People' ) {
402+
% } elsif ( $widget_name eq 'People' && $Class =~ /^RT::(?:Ticket|Asset)$/ ) {
403403
<& SELF:EditWidgetPeople, %ARGS, Class => $Class, Page => $Page &>
404404
% } elsif ( $Class eq 'RT::Ticket' && $widget_name eq 'Basics' ) {
405405
<& SELF:EditWidgetBasics, %ARGS, Class => $Class, Page => $Page &>

0 commit comments

Comments
 (0)