@7365admin1/layer-common 3.2.2-staging.114 → 3.2.2-staging.118

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.
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <v-card width="100%" max-width="800">
3
- <v-toolbar color="white" elevation="0">
3
+ <v-toolbar class="screen-dialog-bar" elevation="0">
4
4
  <v-row no-gutters class="fill-height px-6" align="center">
5
5
  <span class="font-weight-bold text-h5">
6
6
  {{ title }}
@@ -15,8 +15,8 @@
15
15
  <v-row no-gutters>
16
16
  <!-- Route Name -->
17
17
  <v-col cols="12" class="mb-4">
18
- <label class="text-caption text-grey-darken-1 mb-1 d-block">
19
- Route Name <span class="text-red">*</span>
18
+ <label class="text-caption screen-hint mb-1 d-block">
19
+ Route Name <span class="text-error">*</span>
20
20
  </label>
21
21
  <v-text-field
22
22
  v-model="form.name"
@@ -30,8 +30,8 @@
30
30
 
31
31
  <!-- Checkpoints, Tolerance, Repeat Every -->
32
32
  <v-col cols="12" md="4" class="mb-4 pr-md-2">
33
- <label class="text-caption text-grey-darken-1 mb-1 d-block">
34
- Checkpoints <span class="text-red">*</span>
33
+ <label class="text-caption screen-hint mb-1 d-block">
34
+ Checkpoints <span class="text-error">*</span>
35
35
  </label>
36
36
  <v-select
37
37
  v-model="form.checkPointNumber"
@@ -44,8 +44,8 @@
44
44
  </v-col>
45
45
 
46
46
  <v-col cols="12" md="4" class="mb-4 px-md-1">
47
- <label class="text-caption text-grey-darken-1 mb-1 d-block">
48
- Tolerance (mins) <span class="text-red">*</span>
47
+ <label class="text-caption screen-hint mb-1 d-block">
48
+ Tolerance (mins) <span class="text-error">*</span>
49
49
  </label>
50
50
  <v-text-field
51
51
  v-model="form.tolerance"
@@ -57,8 +57,8 @@
57
57
  </v-col>
58
58
 
59
59
  <v-col cols="12" md="4" class="mb-4 pl-md-2">
60
- <label class="text-caption text-grey-darken-1 mb-1 d-block">
61
- Days <span class="text-red">*</span>
60
+ <label class="text-caption screen-hint mb-1 d-block">
61
+ Days <span class="text-error">*</span>
62
62
  </label>
63
63
  <v-select
64
64
  v-model="form.days"
@@ -76,7 +76,7 @@
76
76
  <v-card variant="outlined" class="pa-4" rounded="lg">
77
77
  <div class="d-flex align-center justify-space-between mb-3">
78
78
  <span class="text-h6 font-weight-medium">Start Times</span>
79
- <span class="text-body-2 text-grey-darken-1">Schedule</span>
79
+ <span class="text-body-2 screen-hint">Schedule</span>
80
80
  </div>
81
81
 
82
82
  <!-- Start Time Slots -->
@@ -96,7 +96,6 @@
96
96
  prepend-inner-icon="mdi-clock-outline"
97
97
  hide-details
98
98
  type="time"
99
- bg-color="grey-lighten-4"
100
99
  rounded="lg"
101
100
  @update:model-value="syncEndTimeAt(index)"
102
101
  />
@@ -116,7 +115,6 @@
116
115
  prepend-inner-icon="mdi-clock-outline"
117
116
  hide-details
118
117
  type="time"
119
- bg-color="grey-lighten-2"
120
118
  rounded="lg"
121
119
  readonly
122
120
  />
@@ -160,19 +158,19 @@
160
158
  <v-row no-gutters class="mb-2">
161
159
  <v-col
162
160
  cols="2"
163
- class="text-caption text-grey-darken-1 font-weight-medium"
161
+ class="text-caption screen-hint font-weight-medium"
164
162
  >
165
163
  Checkpoints
166
164
  </v-col>
167
165
  <v-col
168
166
  cols="6"
169
- class="text-caption text-grey-darken-1 font-weight-medium pl-4"
167
+ class="text-caption screen-hint font-weight-medium pl-4"
170
168
  >
171
169
  NFC Tag
172
170
  </v-col>
173
171
  <v-col
174
172
  cols="4"
175
- class="text-caption text-grey-darken-1 font-weight-medium text-right"
173
+ class="text-caption screen-hint font-weight-medium text-right"
176
174
  >
177
175
  Travel time
178
176
  </v-col>
@@ -218,15 +216,15 @@
218
216
  <!-- Summary -->
219
217
  <v-col cols="12">
220
218
  <v-row no-gutters class="mb-2">
221
- <v-col cols="6" class="text-body-2 text-grey-darken-1">
219
+ <v-col cols="6" class="text-body-2 screen-hint">
222
220
  Tolerance Balance:
223
- <span class="font-weight-bold text-grey-darken-3"
221
+ <span class="font-weight-bold"
224
222
  >{{ toleranceBalance }} min</span
225
223
  >
226
224
  </v-col>
227
- <v-col cols="6" class="text-body-2 text-grey-darken-1 text-right">
225
+ <v-col cols="6" class="text-body-2 screen-hint text-right">
228
226
  Total Travel Time:
229
- <span class="font-weight-bold text-grey-darken-3"
227
+ <span class="font-weight-bold"
230
228
  >{{ totalTravelTime }} min</span
231
229
  >
232
230
  </v-col>
@@ -238,7 +236,7 @@
238
236
 
239
237
  <v-divider />
240
238
 
241
- <v-toolbar class="pa-0" density="compact" color="white" elevation="0">
239
+ <v-toolbar class="pa-0 screen-dialog-bar" density="compact" elevation="0">
242
240
  <v-row no-gutters>
243
241
  <v-col cols="6" class="pa-0">
244
242
  <v-btn
@@ -1,7 +1,12 @@
1
1
  <template>
2
2
  <v-row no-gutters>
3
3
  <v-col cols="12">
4
- <v-card width="100%" variant="outlined" border="thin" rounded="lg">
4
+ <!--
5
+ `AppCard` for the outlined card. This mounts inside PM `settings.vue`'s
6
+ "NFC Patrol Settings" expansion panel, which already draws that
7
+ heading - so NO `PageHeader`, or the panel would name itself twice.
8
+ -->
9
+ <AppCard>
5
10
  <v-row no-gutters class="pa-6" align="center">
6
11
  <v-col cols="12" md="7" class="pr-md-8">
7
12
  <div class="text-subtitle-1 font-weight-medium">
@@ -36,10 +41,15 @@
36
41
 
37
42
  <v-row no-gutters class="pa-6 pt-0">
38
43
  <v-col cols="12" class="d-flex justify-end">
44
+ <!--
45
+ Stays a `v-btn`: `AppButton` has no `loading`, and dropping the
46
+ spinner would lose the only signal this save is in flight. The
47
+ design's fill comes from `.screen-btn-primary` instead of
48
+ Vuetify's `color="primary"` - same click, same `loading` gate.
49
+ -->
39
50
  <v-btn
40
51
  text="Save"
41
- color="primary"
42
- class="text-none"
52
+ class="screen-btn-primary"
43
53
  size="large"
44
54
  variant="flat"
45
55
  @click="submit"
@@ -47,7 +57,7 @@
47
57
  />
48
58
  </v-col>
49
59
  </v-row>
50
- </v-card>
60
+ </AppCard>
51
61
  </v-col>
52
62
  <Snackbar v-model="messageSnackbar" :text="message" :color="messageColor" />
53
63
  </v-row>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <v-card width="100%">
3
- <v-toolbar>
3
+ <v-toolbar class="screen-dialog-bar">
4
4
  <v-row no-gutters class="fill-height px-6" align="center">
5
5
  <span class="font-weight-bold text-h5 text-capitalize">
6
6
  {{ title }}
@@ -16,7 +16,7 @@
16
16
  <v-row no-gutters>
17
17
  <v-col cols="12" class="mb-4">
18
18
  <label class="text-subtitle-2 font-weight-medium mb-2">
19
- Name <span class="text-red">*</span>
19
+ Name <span class="text-error">*</span>
20
20
  </label>
21
21
  <v-text-field
22
22
  v-model="form.name"
@@ -30,7 +30,7 @@
30
30
 
31
31
  <v-col cols="12" class="mb-4">
32
32
  <label class="text-subtitle-2 font-weight-medium mb-2">
33
- Tag ID <span class="text-red">*</span>
33
+ Tag ID <span class="text-error">*</span>
34
34
  </label>
35
35
  <v-text-field
36
36
  v-model="form.tagID"
@@ -47,7 +47,7 @@
47
47
  </v-form>
48
48
  </v-card-text>
49
49
 
50
- <v-toolbar class="pa-0" density="compact">
50
+ <v-toolbar class="pa-0 screen-dialog-bar" density="compact">
51
51
  <v-row no-gutters>
52
52
  <v-col cols="6" class="pa-0">
53
53
  <v-btn
@@ -1,53 +1,51 @@
1
1
  <template>
2
2
  <v-row no-gutters>
3
3
  <v-col cols="12">
4
- <v-card width="100%" variant="outlined" border="thin" rounded="lg">
5
- <v-toolbar density="compact" color="grey-lighten-4 pl-2 pr-4">
6
- <template #prepend>
4
+ <!--
5
+ Two `grey-lighten-4` `v-toolbar`s - one above the table for refresh and
6
+ Add, one below it for the page range and the pager - become the ONE
7
+ `CardToolbar` the design draws. The range is the toolbar's own count
8
+ rather than a `text-font gray` caption; the pager keeps its model and
9
+ its `@update:value` emit, and Add keeps opening the same dialog.
10
+
11
+ This component mounts inside PM `settings.vue`'s "NFC Management"
12
+ expansion panel, which already draws that heading - so NO `PageHeader`
13
+ here, or the panel would read its name twice.
14
+ -->
15
+ <AppCard class="table-card">
16
+ <CardToolbar :count="pageRange">
17
+ <template #left>
7
18
  <v-btn fab icon density="comfortable" @click="getNFCTagRefresh()">
8
19
  <v-icon>mdi-refresh</v-icon>
9
20
  </v-btn>
10
21
  </template>
11
22
 
12
- <template #append>
13
- <v-btn
14
- variant="flat"
15
- color="primary"
16
- class="text-none"
17
- @click="dialogAdd = true"
18
- >
19
- Add
20
- </v-btn>
23
+ <template #right>
24
+ <local-pagination
25
+ v-model="page"
26
+ :length="pages"
27
+ @update:value="$emit('update:value', $event)"
28
+ />
29
+ <AppButton @click="dialogAdd = true">Add</AppButton>
21
30
  </template>
22
- </v-toolbar>
23
-
24
- <v-card-text class="pa-0">
25
- <v-data-table
26
- :headers="headers"
27
- :items="items"
28
- fixed-header
29
- hide-default-footer
30
- @click:row="handleRowClick"
31
- style="max-height: 300px"
32
- >
33
- </v-data-table>
34
- </v-card-text>
35
-
36
- <v-toolbar density="compact" color="grey-lighten-4">
37
- <template #append>
38
- <v-row no-gutters justify="end" align="center">
39
- <span class="mr-2 text-caption text-font gray">
40
- {{ pageRange }}
41
- </span>
42
- <local-pagination
43
- v-model="page"
44
- :length="pages"
45
- @update:value="$emit('update:value', $event)"
46
- />
47
- </v-row>
31
+ </CardToolbar>
32
+
33
+ <v-data-table
34
+ :headers="headers"
35
+ :items="items"
36
+ fixed-header
37
+ hide-default-footer
38
+ @click:row="handleRowClick"
39
+ style="max-height: 300px"
40
+ >
41
+ <!-- The status column printed the raw word as plain text. `StatusChip`
42
+ prints the SAME word - it is given the item's own value - and
43
+ only adds the design's tone from the shared map. -->
44
+ <template #item.status="{ item }">
45
+ <StatusChip :status="(item as any).status" />
48
46
  </template>
49
- </v-toolbar>
50
- </v-card>
47
+ </v-data-table>
48
+ </AppCard>
51
49
  </v-col>
52
50
 
53
51
  <!-- Add Dialog -->
@@ -79,7 +77,7 @@
79
77
  <!-- Preview Dialog -->
80
78
  <v-dialog v-model="dialogPreview" persistent width="540">
81
79
  <v-card width="100%">
82
- <v-toolbar>
80
+ <v-toolbar class="screen-dialog-bar">
83
81
  <v-row no-gutters class="fill-height px-6" align="center">
84
82
  <span class="font-weight-bold text-h5 text-capitalize">
85
83
  NFC Tag Details
@@ -110,7 +108,7 @@
110
108
  </v-row>
111
109
  </v-card-text>
112
110
 
113
- <v-toolbar class="pa-0" density="compact">
111
+ <v-toolbar class="pa-0 screen-dialog-bar" density="compact">
114
112
  <v-row no-gutters>
115
113
  <v-col cols="6" class="pa-0">
116
114
  <v-btn
@@ -171,7 +169,7 @@
171
169
  Are you sure you want to delete this NFC Tag?
172
170
  </v-card-text>
173
171
 
174
- <v-toolbar class="pa-0" density="compact">
172
+ <v-toolbar class="pa-0 screen-dialog-bar" density="compact">
175
173
  <v-row no-gutters>
176
174
  <v-col cols="6" class="pa-0">
177
175
  <v-btn
@@ -11,7 +11,6 @@
11
11
  density="comfortable"
12
12
  rounded="lg"
13
13
  hide-details
14
- bg-color="white"
15
14
  @update:model-value="updateFilter('route', $event)"
16
15
  />
17
16
  </v-col>
@@ -30,7 +29,6 @@
30
29
  density="comfortable"
31
30
  rounded="lg"
32
31
  hide-details
33
- bg-color="white"
34
32
  @update:model-value="updateFilter('timeRange', $event)"
35
33
  />
36
34
  </v-col>
@@ -47,7 +45,6 @@
47
45
  density="comfortable"
48
46
  rounded="lg"
49
47
  hide-details
50
- bg-color="white"
51
48
  @update:model-value="updateFilter('date', $event)"
52
49
  />
53
50
  </v-col>
@@ -2,9 +2,11 @@
2
2
  <v-row no-gutters class="pa-8" justify="center">
3
3
  <v-col cols="12" md="10">
4
4
  <v-row no-gutters>
5
- <v-col cols="12" class="text-h5">Notifications</v-col>
5
+ <v-col cols="12">
6
+ <PageHeader title="Notifications" />
7
+ </v-col>
6
8
 
7
- <v-col cols="12" md="8" class="mt-4 font-weight-light">
9
+ <v-col cols="12" md="8" class="screen-hint intro-copy">
8
10
  Choose what you want to hear about, and how. These settings are yours
9
11
  alone and apply everywhere you use iService — on this site and on your
10
12
  phone.
@@ -33,81 +35,69 @@
33
35
  <template v-else>
34
36
  <!-- everything, at once -->
35
37
  <v-col cols="12" class="mt-8">
36
- <v-card
37
- width="100%"
38
- border="grey-darken-3 sm"
39
- variant="outlined"
40
- rounded="lg"
41
- >
38
+ <AppCard>
42
39
  <v-row no-gutters align="center" class="pa-6">
43
40
  <v-col cols="12" sm="8">
44
- <div class="text-h6">Everything</div>
45
- <div class="text-body-2 text-medium-emphasis mt-1">
41
+ <div class="screen-card-title">Everything</div>
42
+ <div class="screen-hint summary-line mt-1">
46
43
  {{ everythingSummary }}
47
44
  </div>
48
45
  </v-col>
49
46
  <v-col cols="12" sm="4" class="d-flex justify-sm-end mt-3 mt-sm-0">
50
- <v-btn
51
- variant="tonal"
52
- rounded="xl"
53
- class="text-none"
47
+ <AppButton
48
+ variant="ghost"
54
49
  :disabled="saving"
55
50
  @click="setAll(!allOn)"
56
51
  >
57
52
  {{ allOn ? "Turn everything off" : "Turn everything on" }}
58
- </v-btn>
53
+ </AppButton>
59
54
  </v-col>
60
55
  </v-row>
61
- </v-card>
56
+ </AppCard>
62
57
  </v-col>
63
58
 
64
59
  <!-- one panel per module, collapsed by default so a person with many
65
60
  modules gets a short list rather than a wall of switches -->
66
61
  <v-col cols="12" class="mt-4">
67
- <v-expansion-panels variant="accordion" multiple>
62
+ <v-expansion-panels variant="accordion" multiple class="screen-accordion">
68
63
  <v-expansion-panel
69
64
  v-for="category in categories"
70
65
  :key="category.key"
71
66
  :value="category.key"
72
67
  elevation="0"
73
- class="border-sm rounded-lg mb-2"
74
68
  >
75
69
  <v-expansion-panel-title>
76
70
  <v-row no-gutters align="center">
77
71
  <v-col cols="12" sm="6">
78
- <span class="text-subtitle-1 font-weight-medium">
79
- {{ category.label }}
80
- </span>
81
- <v-chip
72
+ <span>{{ category.label }}</span>
73
+ <!-- "Safety" is a TAG, not a status word, so it takes
74
+ the handoff's tag chip - "small 7px-radius label" -
75
+ which is the dotless shape, on the `info` tone the
76
+ handoff assigns to "Role & info tags". A leading dot
77
+ here would draw it as a status the screen does not
78
+ have. -->
79
+ <StatusChip
82
80
  v-if="category.safety"
83
- size="x-small"
81
+ tone="info"
82
+ label="Safety"
83
+ :dot="false"
84
84
  class="ml-2"
85
- variant="tonal"
86
- color="info"
87
- >
88
- Safety
89
- </v-chip>
85
+ />
90
86
  </v-col>
91
- <v-col
92
- cols="12"
93
- sm="6"
94
- class="text-body-2 text-medium-emphasis"
95
- >
87
+ <v-col cols="12" sm="6" class="screen-hint summary-line">
96
88
  {{ summaryFor(category) }}
97
89
  </v-col>
98
90
  </v-row>
99
91
  </v-expansion-panel-title>
100
92
 
101
93
  <v-expansion-panel-text>
102
- <div class="text-body-2 text-medium-emphasis mb-4">
94
+ <div class="screen-hint summary-line mb-4">
103
95
  {{ category.description }}
104
96
  </div>
105
97
 
106
- <v-btn
107
- size="small"
108
- variant="outlined"
109
- rounded="xl"
110
- class="text-none mb-4"
98
+ <AppButton
99
+ variant="ghost"
100
+ class="mb-4"
111
101
  :disabled="saving || !switchableIn(category).length"
112
102
  @click="setCategory(category, !categoryAllOn(category))"
113
103
  >
@@ -116,7 +106,7 @@
116
106
  ? "Turn all off for " + category.label
117
107
  : "Turn all on for " + category.label
118
108
  }}
119
- </v-btn>
109
+ </AppButton>
120
110
 
121
111
  <!-- one channel per row: a switch must never sit beside the
122
112
  NEXT channel's label, which is what a three-up grid does -->
@@ -132,8 +122,8 @@
132
122
  :class="{ 'channel-unavailable': !channel.supported }"
133
123
  >
134
124
  <div class="pr-4">
135
- <div class="text-body-1">{{ channel.label }}</div>
136
- <div v-if="!channel.supported" class="text-caption mt-1">
125
+ <div class="channel-label">{{ channel.label }}</div>
126
+ <div v-if="!channel.supported" class="channel-note mt-1">
137
127
  {{ channel.note }}
138
128
  </div>
139
129
  </div>
@@ -162,21 +152,18 @@
162
152
 
163
153
  <!-- switching a safety alert off: say plainly what stops arriving -->
164
154
  <v-dialog v-model="confirmOpen" max-width="460" persistent>
165
- <v-card rounded="lg" class="pa-2">
166
- <v-card-title class="text-h6">{{ confirmText.title }}</v-card-title>
167
- <v-card-text class="text-body-1">{{ confirmText.body }}</v-card-text>
155
+ <v-card class="screen-modal pa-2">
156
+ <v-card-title>{{ confirmText.title }}</v-card-title>
157
+ <v-card-text class="screen-modal__body">
158
+ {{ confirmText.body }}
159
+ </v-card-text>
168
160
  <v-card-actions class="justify-end">
169
- <v-btn variant="text" class="text-none" @click="cancelConfirm">
161
+ <AppButton variant="ghost" @click="cancelConfirm">
170
162
  {{ confirmText.cancel }}
171
- </v-btn>
172
- <v-btn
173
- color="primary"
174
- variant="tonal"
175
- class="text-none"
176
- @click="acceptConfirm"
177
- >
163
+ </AppButton>
164
+ <AppButton @click="acceptConfirm">
178
165
  {{ confirmText.confirm }}
179
- </v-btn>
166
+ </AppButton>
180
167
  </v-card-actions>
181
168
  </v-card>
182
169
  </v-dialog>
@@ -346,6 +333,31 @@ onMounted(load);
346
333
  </script>
347
334
 
348
335
  <style scoped>
336
+ /* The handoff names no type for long-form intro copy or a summary line, so
337
+ both take the design's own secondary sizes rather than Vuetify's `text-h6`
338
+ / `text-body-2` scale. */
339
+ .intro-copy {
340
+ font-size: var(--fs-cell);
341
+ margin-top: 6px;
342
+ }
343
+
344
+ .summary-line {
345
+ font-size: var(--fs-breadcrumb);
346
+ }
347
+
348
+ .channel-label {
349
+ font-family: var(--font-sans);
350
+ font-size: var(--fs-cell);
351
+ font-weight: var(--fw-cell);
352
+ color: var(--text);
353
+ }
354
+
355
+ .channel-note {
356
+ font-family: var(--font-sans);
357
+ font-size: var(--fs-breadcrumb);
358
+ color: var(--text2);
359
+ }
360
+
349
361
  /* Unavailable channels are shown and explained, never hidden.
350
362
  *
351
363
  * They are NOT faded. The disabled switch already says the control cannot be
@@ -1,29 +1,27 @@
1
1
  <template>
2
2
  <v-row no-gutters>
3
- <v-col cols="12" class="mb-2">
4
- <v-row no-gutters style="gap: 8px">
5
- <v-btn
6
- class="text-none"
7
- rounded="pill"
8
- variant="tonal"
9
- size="large"
10
- @click="setOnlineForm()"
11
- v-if="canCreate && canCreateOnlineFormConfiguration"
12
- >
13
- Add Online Form
14
- </v-btn>
15
- </v-row>
3
+ <v-col cols="12">
4
+ <!--
5
+ The screen's name and its one primary action on the same line, which is
6
+ how the design opens every screen. "Configuration" is the app's own nav
7
+ label (Online Forms > Configuration), not invented copy. The page that
8
+ mounts this is a bare mount with no heading of its own.
9
+ -->
10
+ <PageHeader title="Configuration">
11
+ <template #actions>
12
+ <AppButton
13
+ v-if="canCreate && canCreateOnlineFormConfiguration"
14
+ @click="setOnlineForm()"
15
+ >
16
+ Add Online Form
17
+ </AppButton>
18
+ </template>
19
+ </PageHeader>
16
20
  </v-col>
17
21
  <v-col cols="12">
18
- <v-card
19
- width="100%"
20
- variant="outlined"
21
- border="thin"
22
- rounded="lg"
23
- :loading="loading"
24
- >
25
- <v-toolbar density="compact" class="px-3 border-b-sm" color="transparent">
26
- <template #prepend>
22
+ <AppCard class="table-card">
23
+ <CardToolbar :count="pageRange">
24
+ <template #left>
27
25
  <v-btn
28
26
  fab
29
27
  icon
@@ -42,32 +40,25 @@
42
40
  >
43
41
  <v-icon>mdi-sort-alphabetical-ascending</v-icon>
44
42
  </v-btn>
45
- <v-text-field
43
+ <AppField
46
44
  v-model="search"
47
- density="compact"
48
- variant="outlined"
45
+ search
46
+ compact
49
47
  placeholder="Search..."
50
- prepend-inner-icon="mdi-magnify"
51
- clearable
52
- hide-details
53
- style="width: 220px; margin-left: 12px;"
48
+ klass="online-forms-config__search"
54
49
  />
55
50
  </template>
56
51
 
57
- <template #append>
58
- <v-row no-gutters justify="end" align="center">
59
- <span class="mr-2 text-caption text-fontgray">
60
- {{ pageRange }}
61
- </span>
62
- <local-pagination
63
- v-model="page"
64
- :length="pages"
65
- @update:value="getOnlineFormConfigurations"
66
- />
67
- </v-row>
52
+ <template #right>
53
+ <local-pagination
54
+ v-model="page"
55
+ :length="pages"
56
+ @update:value="getOnlineFormConfigurations"
57
+ />
68
58
  </template>
69
- </v-toolbar>
59
+ </CardToolbar>
70
60
  <v-data-table
61
+ :loading="loading"
71
62
  :headers="headers"
72
63
  :items="sortedItems"
73
64
  item-value="_id"
@@ -84,7 +75,7 @@
84
75
  {{ item.status ? item.status.charAt(0).toUpperCase() + item.status.slice(1) : "N/A" }}
85
76
  </template></v-data-table
86
77
  >
87
- </v-card></v-col
78
+ </AppCard></v-col
88
79
  >
89
80
 
90
81
  <!-- Create Dialog -->
@@ -435,3 +426,11 @@ function successUpdate() {
435
426
  }
436
427
 
437
428
  </script>
429
+
430
+ <style scoped>
431
+ /* Same 240px cap the other in-toolbar search fields use, so the field does not
432
+ eat the toolbar's whole left side. */
433
+ .online-forms-config__search {
434
+ max-width: 240px;
435
+ }
436
+ </style>