Skip to content

Commit 64d71d6

Browse files
committed
Delete asset obsolete ModifyPeople and ModifyCFs pages
The features are conveniently available via inline edit on display page.
1 parent 562155d commit 64d71d6

5 files changed

Lines changed: 33 additions & 275 deletions

File tree

lib/RT/Interface/Web/MenuBuilder.pm

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,18 +1117,6 @@ sub _BuildAssetMenu {
11171117
if ($asset->id) {
11181118
$page->child("display", title => HTML::Mason::Commands::loc("Display"), path => "/Asset/Display.html?id=$id");
11191119
$page->child("history", title => HTML::Mason::Commands::loc("History"), path => "/Asset/History.html?id=$id");
1120-
$page->child("people", title => HTML::Mason::Commands::loc("People"), path => "/Asset/ModifyPeople.html?id=$id");
1121-
1122-
for my $grouping (RT::CustomField->CustomGroupings($asset)) {
1123-
my $cfs = $asset->CustomFields;
1124-
$cfs->LimitToGrouping( $asset => $grouping );
1125-
next unless $cfs->Count;
1126-
$page->child(
1127-
"cf-grouping-$grouping",
1128-
title => HTML::Mason::Commands::loc($grouping),
1129-
path => "/Asset/ModifyCFs.html?id=$id;Grouping=" . $HTML::Mason::Commands::m->interp->apply_escapes($grouping, 'u'),
1130-
);
1131-
}
11321120

11331121
_BuildAssetMenuActionSubmenu( $request_path, $widgets, $page, %args, Asset => $asset );
11341122
}

share/html/Asset/ModifyCFs.html

Lines changed: 0 additions & 104 deletions
This file was deleted.

share/html/Asset/ModifyPeople.html

Lines changed: 0 additions & 117 deletions
This file was deleted.

share/html/Asset/Widgets/Display/People

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
% $m->callback( %ARGS, CallbackName => 'BeforeWidget' );
4949

5050
<&| /Widgets/TitleBox, title => loc('People'),
51-
(($can_modify || $can_modify_cf) ? (title_href => RT->Config->Get('WebPath')."/Asset/ModifyPeople.html?id=".$AssetObj->Id) : ()),
5251
class => (join " ", 'asset-people', ($modify_behavior eq 'always' ? 'editing' : ())),
5352
(($can_modify || $can_modify_cf) && $modify_behavior =~ /^(link|click)$/ ? (titleright_raw => $m->scomp('/Elements/InlineEditLink')) : ()),
5453
data => { 'inline-edit-behavior' => $modify_behavior },

t/playwright/asset_inline_edit.t

Lines changed: 33 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -150,68 +150,56 @@ diag "Bulk update";
150150
$p->text_unlike( qr{Asset \d+: Asset \d+:'}, 'Bulk update messages do not have duplicated prefix' );
151151
}
152152

153-
diag "People update";
153+
diag "People inline edit";
154154
{
155155
my $asset = create_asset( Name => "Test asset", Catalog => $catalog->Id );
156-
my $page = $p->{page};
157-
158-
$p->get_ok( '/Asset/Display.html?id=' . $asset->Id );
159-
my $people_link = $p->find_element(q{//a[@id='page-people']});
160-
$p->get_ok( $people_link->getAttribute('href') );
161-
162-
my $dom = $p->dom;
163-
my $owner_input = $dom->at('input[name="SetRoleMember-Owner"]');
164-
ok( $owner_input, 'Found owner input' );
165-
is( $owner_input->attr('value'), 'Nobody', 'Default owner is Nobody' );
166-
167-
# submit_form_ok sets hidden input values directly, bypassing TomSelect UI
168-
$p->submit_form_ok(
169-
{
170-
form => '#ModifyAssetPeople',
171-
fields => {
172-
'SetRoleMember-Owner' => 'root',
173-
},
174-
button => 'Update',
175-
},
176-
'Set owner to root'
177-
);
178-
$p->text_contains('Owner set to root');
179-
180-
$dom = $p->dom;
181-
$owner_input = $dom->at('input[name="SetRoleMember-Owner"]');
182-
ok( $owner_input, 'Found owner input' );
183-
is( $owner_input->attr('value'), 'root', 'Input value of owner is root' );
184-
156+
my $page = $p->{page};
157+
my $id = $asset->Id;
185158
my $staff = RT::Test->load_or_create_group('Staff');
159+
my $alice = RT::Test->load_or_create_user( Name => 'alice@localhost' );
186160

161+
$p->get_ok( '/Asset/Display.html?id=' . $id );
162+
163+
# Open People inline edit and submit all changes at once
164+
$page->click('div.asset-people a.inline-edit-toggle');
187165
$p->submit_form_ok(
188166
{
189-
form => '#ModifyAssetPeople',
167+
form => 'div.asset-people form.inline-edit',
190168
fields => {
169+
'SetRoleMember-Owner' => 'root',
191170
'AddUserRoleMember-Role' => 'Contact',
192171
'AddUserRoleMember' => 'alice@localhost',
193172
'AddGroupRoleMember-Role' => 'HeldBy',
194173
'AddGroupRoleMember' => 'Staff',
195174
},
196-
button => 'Update',
197175
},
198-
'Add contact and held by'
176+
'Submit people inline edit'
199177
);
178+
179+
$p->wait_for_notifications(3);
180+
$p->wait_for_element('div.asset-people .inline-edit-display span.user:has-text("root")');
181+
182+
my $dom = $p->dom;
183+
like( $dom->at('div.asset-people .inline-edit-display')->all_text, qr/root/, 'Display shows owner root' );
184+
$p->text_contains('Owner set to root');
200185
$p->text_contains('Member added: alice@localhost');
201186
$p->text_contains('Member added: Staff');
187+
$p->close_jgrowl;
202188

203-
# Remove the members we just added
204-
my $alice = RT::Test->load_or_create_user( Name => 'alice@localhost' );
189+
# Reopen inline edit to remove members
190+
$page->click('div.asset-people a.inline-edit-toggle');
191+
$p->wait_for_element( 'input#checkbox-RemoveRoleMember-Contact-' . $alice->PrincipalId );
205192
$page->click( 'input#checkbox-RemoveRoleMember-Contact-' . $alice->PrincipalId );
206193
$page->click( 'input#checkbox-RemoveRoleMember-HeldBy-' . $staff->PrincipalId );
207194
$p->submit_form_ok(
208195
{
209-
form => '#ModifyAssetPeople',
210-
button => 'Update',
196+
form => 'div.asset-people form.inline-edit',
211197
},
212198
'Remove contact and held by'
213199
);
200+
$p->wait_for_notifications(2);
214201
$p->text_contains('Member deleted');
202+
$p->close_jgrowl;
215203

216204
# Add manager custom role and test it
217205
my $manager = RT::CustomRole->new( RT->SystemUser );
@@ -224,22 +212,26 @@ diag "People update";
224212
);
225213
ok( $manager->AddToObject( $catalog->Id ) );
226214

227-
$p->get_ok( '/Asset/ModifyPeople.html?id=' . $asset->Id );
215+
# Reload to pick up the new custom role
216+
$p->get_ok( '/Asset/Display.html?id=' . $id );
217+
$page->click('div.asset-people a.inline-edit-toggle');
218+
228219
$dom = $p->dom;
229220
my $manager_input = $dom->at( 'input[name="SetRoleMember-' . $manager->GroupType . '"]' );
230221
ok( $manager_input, 'Found manager input' );
231222
is( $manager_input->attr('value'), 'Nobody', 'Default manager is Nobody' );
232223

224+
my $group_type = $manager->GroupType;
233225
$p->submit_form_ok(
234226
{
235-
form => '#ModifyAssetPeople',
227+
form => 'div.asset-people form.inline-edit',
236228
fields => {
237-
'SetRoleMember-' . $manager->GroupType => 'root',
229+
"SetRoleMember-$group_type" => 'root',
238230
},
239-
button => 'Update',
240231
},
241232
'Set manager to root'
242233
);
234+
$p->wait_for_notifications(1);
243235
$p->text_contains('Manager set to root');
244236
}
245237

0 commit comments

Comments
 (0)