@7365admin1/layer-common 4.97.1-staging.592 → 4.97.1-staging.594

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.
@@ -2,7 +2,7 @@
2
2
  ADD / EDIT AN EXTRA CHECK - four short steps: What, Where, When, Who is told.
3
3
 
4
4
  The last step shows one sentence saying exactly what will be created
5
- ("Adds 1 extra check to 3 areas (24 units) at 08:00 every weekday ... next:
5
+ ("Adds 1 extra check to each of 3 areas (24 units) at 08:00 every weekday ... next:
6
6
  Wed 21 Oct"). The form checks what the server checks (utils/schedule-task.ts)
7
7
  so a schedule that would never run is caught before saving; whatever the
8
8
  server still refuses is shown in its own words.
@@ -85,8 +85,10 @@
85
85
  <v-stepper-window-item :value="2">
86
86
  <div class="st-step">
87
87
  <p class="st-step__help">
88
- Pick the areas to check. Every unit in a picked area gets
89
- one more tick box on the Daily Checklist for this check.
88
+ Pick the areas to check. Each time this check is due, every
89
+ picked area gets exactly one extra round on the Daily
90
+ Checklist (one more tick box per unit) - one round, however
91
+ many normal visits the area has each day.
90
92
  </p>
91
93
  <InputLabel for="selected-areas" title="Areas" required />
92
94
  <v-select
@@ -16,9 +16,11 @@
16
16
  that.
17
17
  </li>
18
18
  <li>
19
- An <strong>extra check</strong> adds one more round of ticks to
20
- that checklist, in the areas you pick, at the time you set - once,
21
- or repeating (every day, weekdays, chosen days, or monthly).
19
+ An <strong>extra check</strong> adds exactly one more round of
20
+ ticks to that checklist each time it is due, in the areas you pick,
21
+ at the time you set - once, or repeating (every day, weekdays,
22
+ chosen days, or monthly). One extra check is one round per area,
23
+ however many normal visits that area has each day.
22
24
  </li>
23
25
  <li>
24
26
  At that time, staff get a phone notification and see the extra
@@ -1911,7 +1911,8 @@ ensureANPRSettings(true).catch(() => {
1911
1911
 
1912
1912
  /*
1913
1913
  * iSecure `useUnregisteredTab`: the Unregistered tab needs BOTH the site's
1914
- * Unregistered switch AND an ANPR camera facing an entrance (entry / both) -
1914
+ * Unregistered switch AND an ANPR camera facing an entrance (entry / both /
1915
+ * visitors) -
1915
1916
  * the same rule the plate notice (VisitorSocketPopUp) already applies.
1916
1917
  */
1917
1918
  const { getAllSiteCameras } = useSiteSettings();
@@ -1927,7 +1928,7 @@ async function loadEntryFacingAnprCamera() {
1927
1928
  ? res.data.items
1928
1929
  : [];
1929
1930
  hasEntryFacingAnprCamera.value = cameras.some(
1930
- (camera: any) => camera?.direction === "entry" || camera?.direction === "both"
1931
+ (camera: any) => ["entry", "both", "visitors"].includes(camera?.direction)
1931
1932
  );
1932
1933
  } catch {
1933
1934
  hasEntryFacingAnprCamera.value = false;
@@ -150,7 +150,7 @@ const { enableUnregistered, ensureANPRSettings } = useANPRSettings(
150
150
  );
151
151
  // The security mobile app's rule (isecure365 `useUnregisteredTab`): the
152
152
  // site's Unregistered switch AND an ANPR camera facing an entrance (entry /
153
- // both). With the switch alone the notice could appear for a site whose
153
+ // both / visitors). With the switch alone the notice could appear for a site whose
154
154
  // cameras never register anyone arriving.
155
155
  const { getAllSiteCameras } = useSiteSettings();
156
156
  const hasEntryFacingAnprCamera = ref(false);
@@ -167,7 +167,7 @@ async function loadEntryFacingAnprCamera(siteId: string) {
167
167
  ? res.data.items
168
168
  : [];
169
169
  hasEntryFacingAnprCamera.value = items.some(
170
- (camera: any) => camera?.direction === "entry" || camera?.direction === "both"
170
+ (camera: any) => ["entry", "both", "visitors"].includes(camera?.direction)
171
171
  );
172
172
  } catch {
173
173
  hasEntryFacingAnprCamera.value = false;
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.97.1-staging.592",
5
+ "version": "4.97.1-staging.594",
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.",
@@ -268,7 +268,8 @@ export function buildSummary(
268
268
  now: Date = new Date(),
269
269
  ): string {
270
270
  const year = sgtParts(now).date.slice(0, 4);
271
- const areas = `${f.areaCount} area${f.areaCount === 1 ? "" : "s"}`;
271
+ // One extra check = exactly one more round per picked area each time it runs (not one per normal visit).
272
+ const areas = f.areaCount === 1 ? "1 area" : `each of ${f.areaCount} areas`;
272
273
  const units = `${unitCount} unit${unitCount === 1 ? "" : "s"}`;
273
274
  const next = nextRunDate(f, now);
274
275
  const nextText = next ? `${DAYS[weekdayOf(next)]} ${fmtDate(next, year)}` : "never";