@7365admin1/layer-common 4.149.0 → 4.149.2

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.2
4
+
5
+ ### Patch Changes
6
+
7
+ - d1c8392: Members list: role chips start with a capital letter (a role saved as "owner" reads "Owner").
8
+
9
+ ## 4.149.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 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.
14
+
3
15
  ## 4.149.0
4
16
 
5
17
  ### Minor Changes
@@ -3536,11 +3548,11 @@ Monthly report: a month that had patrols opens the list of that month's patrol r
3536
3548
  `utils/console-tier.ts` + `composables/useConsoleTier.ts` mirror the server's
3537
3549
  own rule from two endpoints the console already calls, unprojected:
3538
3550
 
3539
- GET /api/members/user/:user/app/admin the Seven365 staff membership
3540
- GET /api/roles/id/:role that membership's role document
3551
+ GET /api/members/user/:user/app/admin the Seven365 staff membership
3552
+ GET /api/roles/id/:role that membership's role document
3541
3553
 
3542
- owner = member.type === "admin" && role.type === "admin" && role.default === true
3543
- staff = member.type === "admin" && role.type === "admin"
3554
+ owner = member.type === "admin" && role.type === "admin" && role.default === true
3555
+ staff = member.type === "admin" && role.type === "admin"
3544
3556
 
3545
3557
  `role.default` is the marker because it is the only property of a platform
3546
3558
  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 || "Filter by File Type" }}</span>
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
  /**
@@ -155,7 +155,7 @@
155
155
  :title="r"
156
156
  data-test="member-role-chip"
157
157
  >
158
- {{ r }}
158
+ {{ r ? r.charAt(0).toUpperCase() + r.slice(1) : r }}
159
159
  </StatusChip>
160
160
  <span
161
161
  v-if="memberAccess(item, orgLevel).roles.length > 2"
@@ -54,7 +54,7 @@
54
54
  <InputLabel title="Status" />
55
55
  <v-select
56
56
  v-model="formStatus"
57
- :items="['active', 'inactive']"
57
+ :items="[{ title: 'Active', value: 'active' }, { title: 'Inactive', value: 'inactive' }]"
58
58
  density="compact"
59
59
  variant="outlined"
60
60
  hide-details
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.149.0",
5
+ "version": "4.149.2",
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.",