@7365admin1/layer-common 4.1.3-staging.257 → 4.2.0

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.
Files changed (2) hide show
  1. package/CHANGELOG.md +57 -4
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,58 @@
1
1
  # @iservice365/layer-common
2
2
 
3
+ ## 4.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 8fa8aff: Add a bulk camera import, and make the camera settings list reach past ten.
8
+
9
+ `CameraBulkImportDialog` takes the technician camera survey sheet as a CSV,
10
+ previews every row with the server's own verdict before anything is saved, and
11
+ then commits. Preview and commit are the same server call, so the preview
12
+ cannot disagree with what is written. `is_anpr` rows are refused by name, and
13
+ the screen states which surveyed columns a camera record cannot store.
14
+
15
+ `CameraMain` now loads the site's whole camera list in server pages of 100
16
+ (five pages maximum), searches it by name or address, and pages it locally. It
17
+ previously fetched page 1 with no `limit` against a server default of 10, so
18
+ cameras 11 and up were unreachable from the settings panel.
19
+
20
+ `useSiteSettings` gains `limit` on `getAllSiteCameras` and a new
21
+ `bulkImportSiteCameras`.
22
+
23
+ - 050712c: Camera setup can start from the recorder instead of a finished address.
24
+
25
+ A CCTV camera's stored address is a relay player page — nothing printed on a camera and nothing in a
26
+ recorder's own screens will tell somebody what it is, so until now it had to be requested from
27
+ whoever runs the video service and pasted in. The form now offers two ways to say where a camera is:
28
+ "From the recorder" (recorder address, optional port, channel number — the three things a person can
29
+ actually read off a recorder, which the server turns into the address it stores) and "I already have
30
+ a link", which is the existing URL field unchanged.
31
+
32
+ Editing an existing camera still opens on the URL field, so nothing about a record that already
33
+ works changes shape. A "Test this camera" button checks the address before saving, server-side: the
34
+ browser never contacts a recorder and never sees a credential.
35
+
36
+ ### Patch Changes
37
+
38
+ - c919902: HID face registration: the photo is no longer shown or held once registration completes.
39
+ The user enrollment, reader roster and access-log screens report enrollment state instead of
40
+ a face thumbnail, none of them fetch the reader's image any more, and the captured image is
41
+ discarded when the save finishes, on success and on failure alike. Enrollment state
42
+ (`facialEnrolled`, `facialEnrolledAt`, `facialData`, `imageTimestamp`) is saved explicitly so
43
+ editing a user cannot un-enroll them. Re-enrolling now takes a fresh capture.
44
+ - 2cdbecb: Say what 0 means in the subscription plan's Max seats field
45
+ - f3d2e68: Search and page the camera picker on the monitoring wall.
46
+
47
+ The picker column rendered one checkbox per camera with no filter, no pager and no count. At a
48
+ 150-camera site the last camera was reachable only by scrolling past the other 149 in a 220 px
49
+ column, and nothing on screen said how many there were — so a supervisor who could not find a camera
50
+ had no way to tell whether it was missing or merely further down.
51
+
52
+ It now shows 25 at a time with a search box and a "26-50 of 150" range. The paging rule lives in
53
+ `utils/camera-wall.ts` as `pickerView` so it is covered by tests rather than only by the template,
54
+ which the playground build does not compile.
55
+
3
56
  ## 4.1.2
4
57
 
5
58
  ### Patch Changes
@@ -330,11 +383,11 @@
330
383
  `utils/console-tier.ts` + `composables/useConsoleTier.ts` mirror the server's
331
384
  own rule from two endpoints the console already calls, unprojected:
332
385
 
333
- GET /api/members/user/:user/app/admin the Seven365 staff membership
334
- GET /api/roles/id/:role that membership's role document
386
+ GET /api/members/user/:user/app/admin the Seven365 staff membership
387
+ GET /api/roles/id/:role that membership's role document
335
388
 
336
- owner = member.type === "admin" && role.type === "admin" && role.default === true
337
- staff = member.type === "admin" && role.type === "admin"
389
+ owner = member.type === "admin" && role.type === "admin" && role.default === true
390
+ staff = member.type === "admin" && role.type === "admin"
338
391
 
339
392
  `role.default` is the marker because it is the only property of a platform
340
393
  staff role no API caller can set - `role.controller.ts` validates create and
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.1.3-staging.257",
5
+ "version": "4.2.0",
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.",