1
0
Fork 0
mirror of synced 2024-06-03 03:14:50 +12:00

Improve UX of adding roles

(cherry picked from commit 0940d40f27badc13b04c718ad879c04129753098)

# Conflicts:
#	app/views/console/comps/permissions-matrix.phtml
#	public/dist/scripts/app-all.js
#	public/dist/scripts/app.js
This commit is contained in:
Steven Nguyen 2022-09-09 23:46:32 +00:00 committed by Jake Barnby
parent 4eedd443a5
commit a1194d91f3
No known key found for this signature in database
GPG key ID: C437A8CC85B96E9C
2 changed files with 24 additions and 52 deletions

View file

@ -58,9 +58,26 @@ $escapedPermissions = \array_map(function ($perm) {
</thead>
<tbody>
<template x-for="(permission, index) in permissions">
<tr>
<tr x-data="permissionsRow"
@addrow<?php echo \strtolower($form); ?>.window="addPermission('<?php echo $form; ?>', role, { <?php echo \implode(',', $escapedPermissions) ?> })">
<td>
<p x-text="permission.role"></p>
<datalist id="types">
<option value="user:">
<option value="team:">
<option value="users">
<option value="guests">
<option value="any">
</datalist>
<input
required
id="<?php echo $form; ?>Input"
name="<?php echo $form; ?>"
form="<?php echo $form ?>"
list="types"
type="text"
x-model="permission.role"
@keyup="updatePermission(index)"/>
</td>
<?php foreach ($escapedPermissions as $permission): ?>
<td>
@ -78,35 +95,6 @@ $escapedPermissions = \array_map(function ($perm) {
</td>
</tr>
</template>
<tr x-data="permissionsRow"
@addrow<?php echo \strtolower($form); ?>.window="addPermission('<?php echo $form; ?>', role, { <?php echo \implode(',', $escapedPermissions) ?> })">
<td>
<datalist id="types">
<option value="user:">
<option value="team:">
<option value="users">
<option value="guests">
<option value="any">
</datalist>
<input
required
autocomplete="off"
id="<?php echo $form; ?>Input"
name="<?php echo $form; ?>"
form="<?php echo $form ?>"
list="types"
type="text"
x-model="role"
@keydown.enter="prevent($event)" />
</td>
<?php foreach ($escapedPermissions as $permission): ?>
<td>
<input type="checkbox" name="<?php echo $permission ?>" x-model="<?php echo $permission; ?>"/>
</td>
<?php endforeach; ?>
<td></td>
</tr>
</tbody>
<tfoot>
<tr>

View file

@ -32,21 +32,13 @@
this.permissions[index] = existing;
}
});
this.permissions.push({role: ''});
},
addPermission(formId, role, permissions) {
if (!this.validate(formId, role, permissions)) {
return;
}
Object.entries(permissions).forEach(entry => {
let [type, enabled] = entry;
type = this.parseOutputPermission(type);
if (enabled) {
this.rawPermissions.push(this.buildPermission(type, role));
}
});
this.permissions.push({
role,
...permissions,
role: '',
});
this.reset();
},
@ -62,15 +54,7 @@
}
const parsedKey = this.parseOutputPermission(key);
const permissionString = this.buildPermission(parsedKey, permission.role);
if (permission[key]) {
if (!this.rawPermissions.includes(permissionString)) {
this.rawPermissions.push(permissionString);
}
} else {
this.rawPermissions = this.rawPermissions.filter(p => {
return !p.includes(permissionString);
});
}
this.rawPermissions[index] = permissionString;
});
});
},