@7365admin1/layer-common 4.148.2 → 4.149.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @iservice365/layer-common
|
|
2
2
|
|
|
3
|
+
## 4.149.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e4731af: Show proper words instead of lower-case values: Document Mgmt file-type filter (All file types / PDF / CSV / Word), Online form status (Active / Inactive), pending invitation status.
|
|
8
|
+
|
|
9
|
+
## 4.149.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 9692f90: Security role catalogue: add People Mgmt (people-mgmt) with the same six actions as the Property Management catalogue, so Security roles can be granted the People Mgmt page.
|
|
14
|
+
|
|
3
15
|
## 4.148.2
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -3530,11 +3542,11 @@ Monthly report: a month that had patrols opens the list of that month's patrol r
|
|
|
3530
3542
|
`utils/console-tier.ts` + `composables/useConsoleTier.ts` mirror the server's
|
|
3531
3543
|
own rule from two endpoints the console already calls, unprojected:
|
|
3532
3544
|
|
|
3533
|
-
|
|
3534
|
-
|
|
3545
|
+
GET /api/members/user/:user/app/admin the Seven365 staff membership
|
|
3546
|
+
GET /api/roles/id/:role that membership's role document
|
|
3535
3547
|
|
|
3536
|
-
|
|
3537
|
-
|
|
3548
|
+
owner = member.type === "admin" && role.type === "admin" && role.default === true
|
|
3549
|
+
staff = member.type === "admin" && role.type === "admin"
|
|
3538
3550
|
|
|
3539
3551
|
`role.default` is the marker because it is the only property of a platform
|
|
3540
3552
|
staff role no API caller can set - `role.controller.ts` validates create and
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
<td class="td-muted" data-label="Email">{{ item.email }}</td>
|
|
227
227
|
<td data-label="App">{{ item.app }}</td>
|
|
228
228
|
<td class="td-muted" data-label="Role">{{ item.role }}</td>
|
|
229
|
-
<td data-label="Status"><span class="status-chip pending">{{ item.status }}</span></td>
|
|
229
|
+
<td data-label="Status"><span class="status-chip pending text-capitalize">{{ item.status }}</span></td>
|
|
230
230
|
<td data-label="Action">
|
|
231
231
|
<button
|
|
232
232
|
class="cancel-btn"
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
<v-menu v-model="filterMenu" offset-y>
|
|
35
35
|
<template #activator="{ props }">
|
|
36
36
|
<button v-bind="props" type="button" class="doc-filters__type">
|
|
37
|
-
<span>{{ selectedFileType
|
|
37
|
+
<span>{{ selectedFileType ? fileTypeLabel(selectedFileType) : "Filter by File Type" }}</span>
|
|
38
38
|
<v-icon size="18">mdi-chevron-down</v-icon>
|
|
39
39
|
</button>
|
|
40
40
|
</template>
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
class="filtertype-item"
|
|
49
49
|
>
|
|
50
50
|
<v-list-item-title class="text-subtitle-2">
|
|
51
|
-
{{ type }}
|
|
51
|
+
{{ fileTypeLabel(type) }}
|
|
52
52
|
</v-list-item-title>
|
|
53
53
|
</v-list-item>
|
|
54
54
|
</v-list>
|
|
@@ -859,6 +859,9 @@ const currentFolderPath = computed(() => {
|
|
|
859
859
|
});
|
|
860
860
|
|
|
861
861
|
const fileTypes = ref(["all", "pdf", "csv", "doc"]);
|
|
862
|
+
/** What each filter value reads as on screen; the value sent stays as is. */
|
|
863
|
+
const FILE_TYPE_LABELS: Record<string, string> = { all: "All file types", pdf: "PDF", csv: "CSV", doc: "Word (DOC)" };
|
|
864
|
+
const fileTypeLabel = (type: string) => FILE_TYPE_LABELS[type] ?? type.toUpperCase();
|
|
862
865
|
const selectedFileType = ref("all");
|
|
863
866
|
|
|
864
867
|
/**
|
|
@@ -327,6 +327,38 @@ export default function useSecurityPermission() {
|
|
|
327
327
|
},
|
|
328
328
|
},
|
|
329
329
|
|
|
330
|
+
// People Mgmt in the Security app (owner, 2026-10-27): the same six
|
|
331
|
+
// actions, spelling and wording as `usePropertyPermission`, because both
|
|
332
|
+
// apps open the same `/api/people` records.
|
|
333
|
+
"people-mgmt": {
|
|
334
|
+
"add-people": {
|
|
335
|
+
check: true,
|
|
336
|
+
description: "Allows the user to add a new person to the system.",
|
|
337
|
+
},
|
|
338
|
+
"see-all-people": {
|
|
339
|
+
check: true,
|
|
340
|
+
description: "Allows the user to view the list of all people.",
|
|
341
|
+
},
|
|
342
|
+
"see-people-details": {
|
|
343
|
+
check: true,
|
|
344
|
+
description:
|
|
345
|
+
"Allows the user to view the details of a specific person.",
|
|
346
|
+
},
|
|
347
|
+
"update-people": {
|
|
348
|
+
check: true,
|
|
349
|
+
description: "Allows the user to update person details.",
|
|
350
|
+
},
|
|
351
|
+
"delete-people": {
|
|
352
|
+
check: true,
|
|
353
|
+
description:
|
|
354
|
+
"Allows the user to remove a person from the system permanently.",
|
|
355
|
+
},
|
|
356
|
+
"see-people-nric": {
|
|
357
|
+
check: true,
|
|
358
|
+
description: "Allows the user to see a person nric from the system.",
|
|
359
|
+
},
|
|
360
|
+
},
|
|
361
|
+
|
|
330
362
|
// "guest-mgmt": {
|
|
331
363
|
// "add-guest": {
|
|
332
364
|
// check: true,
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@7365admin1/layer-common",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "4.
|
|
5
|
+
"version": "4.149.1",
|
|
6
6
|
"author": "7365admin1",
|
|
7
7
|
"main": "./nuxt.config.ts",
|
|
8
8
|
"//files": "What a consumer extending this layer actually loads. Without this npm ships the whole working tree - the changesets, the CI workflows, the render harness in tools/ and any scratch directory that happened to exist at publish time. Nuxt resolves a layer by directory, so every runtime directory below has to stay listed; adding a new top-level runtime directory means adding it here too.",
|