@hostlink/nuxt-light 1.54.6 → 1.55.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.
Files changed (219) hide show
  1. package/README.md +120 -120
  2. package/dist/module.json +1 -1
  3. package/dist/runtime/components/L/CustomField/Add.vue +40 -42
  4. package/dist/runtime/components/L/CustomField/List.vue +5 -5
  5. package/dist/runtime/components/L/Database/create-table-dialog.vue +33 -34
  6. package/dist/runtime/components/L/Fieldset.vue +8 -11
  7. package/dist/runtime/components/L/ForgetPasswordDialog.vue +26 -27
  8. package/dist/runtime/components/L/Revision.vue +89 -93
  9. package/dist/runtime/components/L/Storage.vue +7 -7
  10. package/dist/runtime/components/L/System/Setting/authentication.d.vue.ts +1 -5
  11. package/dist/runtime/components/L/System/Setting/authentication.vue +16 -16
  12. package/dist/runtime/components/L/System/Setting/authentication.vue.d.ts +1 -5
  13. package/dist/runtime/components/L/System/Setting/developer.vue +10 -11
  14. package/dist/runtime/components/L/System/Setting/forget-password.vue +9 -9
  15. package/dist/runtime/components/L/System/Setting/general.vue +9 -9
  16. package/dist/runtime/components/L/System/Setting/mail.d.vue.ts +1 -5
  17. package/dist/runtime/components/L/System/Setting/mail.vue +28 -32
  18. package/dist/runtime/components/L/System/Setting/mail.vue.d.ts +1 -5
  19. package/dist/runtime/components/L/System/Setting/modules.d.vue.ts +1 -5
  20. package/dist/runtime/components/L/System/Setting/modules.vue +6 -6
  21. package/dist/runtime/components/L/System/Setting/modules.vue.d.ts +1 -5
  22. package/dist/runtime/components/L/System/Setting/security.d.vue.ts +1 -5
  23. package/dist/runtime/components/L/System/Setting/security.vue +38 -41
  24. package/dist/runtime/components/L/System/Setting/security.vue.d.ts +1 -5
  25. package/dist/runtime/components/L/User/eventlog.vue +5 -5
  26. package/dist/runtime/components/L/User/overview.vue +19 -19
  27. package/dist/runtime/components/L/User/userlog.vue +1 -1
  28. package/dist/runtime/components/L/ValidationInput.vue +14 -14
  29. package/dist/runtime/components/MyTest.vue +3 -3
  30. package/dist/runtime/components/l-action-btn.vue +4 -4
  31. package/dist/runtime/components/l-add-btn.vue +3 -3
  32. package/dist/runtime/components/l-alert.vue +8 -8
  33. package/dist/runtime/components/l-app-main.d.vue.ts +1 -5
  34. package/dist/runtime/components/l-app-main.vue +170 -171
  35. package/dist/runtime/components/l-app-main.vue.d.ts +1 -5
  36. package/dist/runtime/components/l-app.vue +27 -27
  37. package/dist/runtime/components/l-audit-card.vue +8 -8
  38. package/dist/runtime/components/l-back-btn.vue +6 -6
  39. package/dist/runtime/components/l-banner.d.vue.ts +1 -1
  40. package/dist/runtime/components/l-banner.vue +10 -10
  41. package/dist/runtime/components/l-banner.vue.d.ts +1 -1
  42. package/dist/runtime/components/l-bar.vue +3 -3
  43. package/dist/runtime/components/l-btn.vue +4 -4
  44. package/dist/runtime/components/l-card.d.vue.ts +1 -9
  45. package/dist/runtime/components/l-card.vue +31 -31
  46. package/dist/runtime/components/l-card.vue.d.ts +1 -9
  47. package/dist/runtime/components/l-checkbox.vue +3 -3
  48. package/dist/runtime/components/l-col.vue +5 -5
  49. package/dist/runtime/components/l-customizer.d.vue.ts +2 -2
  50. package/dist/runtime/components/l-customizer.vue +95 -96
  51. package/dist/runtime/components/l-customizer.vue.d.ts +2 -2
  52. package/dist/runtime/components/l-date-picker.d.vue.ts +1 -1
  53. package/dist/runtime/components/l-date-picker.vue +17 -17
  54. package/dist/runtime/components/l-date-picker.vue.d.ts +1 -1
  55. package/dist/runtime/components/l-delete-btn.vue +1 -1
  56. package/dist/runtime/components/l-dialog-database-field-add.vue +25 -26
  57. package/dist/runtime/components/l-drag-drop-container.vue +5 -5
  58. package/dist/runtime/components/l-drag-drop-group.vue +1 -1
  59. package/dist/runtime/components/l-drag-drop.vue +6 -6
  60. package/dist/runtime/components/l-edit-btn.vue +2 -2
  61. package/dist/runtime/components/l-editor.d.vue.ts +1 -5
  62. package/dist/runtime/components/l-editor.vue +41 -41
  63. package/dist/runtime/components/l-editor.vue.d.ts +1 -5
  64. package/dist/runtime/components/l-facebook-button.vue +2 -2
  65. package/dist/runtime/components/l-fav-menu.vue +14 -14
  66. package/dist/runtime/components/l-field.vue +3 -3
  67. package/dist/runtime/components/l-file-manager-labels.vue +11 -11
  68. package/dist/runtime/components/l-file-manager-move.vue +67 -67
  69. package/dist/runtime/components/l-file-manager-preview.vue +22 -22
  70. package/dist/runtime/components/l-file-manager.vue +243 -248
  71. package/dist/runtime/components/l-file-upload.d.vue.ts +1 -1
  72. package/dist/runtime/components/l-file-upload.vue +25 -25
  73. package/dist/runtime/components/l-file-upload.vue.d.ts +1 -1
  74. package/dist/runtime/components/l-file.d.vue.ts +1 -5
  75. package/dist/runtime/components/l-file.vue +8 -8
  76. package/dist/runtime/components/l-file.vue.d.ts +1 -5
  77. package/dist/runtime/components/l-form-dialog.vue +27 -27
  78. package/dist/runtime/components/l-form.d.vue.ts +1 -33
  79. package/dist/runtime/components/l-form.vue +11 -11
  80. package/dist/runtime/components/l-form.vue.d.ts +1 -33
  81. package/dist/runtime/components/l-group-select.vue +22 -22
  82. package/dist/runtime/components/l-icon-picker.vue +35 -38
  83. package/dist/runtime/components/l-input-select.vue +4 -4
  84. package/dist/runtime/components/l-input-xlsx.vue +30 -31
  85. package/dist/runtime/components/l-input.d.vue.ts +1 -1
  86. package/dist/runtime/components/l-input.vue +23 -23
  87. package/dist/runtime/components/l-input.vue.d.ts +1 -1
  88. package/dist/runtime/components/l-item.vue +18 -18
  89. package/dist/runtime/components/l-link.vue +3 -3
  90. package/dist/runtime/components/l-list.vue +12 -12
  91. package/dist/runtime/components/l-login.d.vue.ts +1 -5
  92. package/dist/runtime/components/l-login.vue +57 -57
  93. package/dist/runtime/components/l-login.vue.d.ts +1 -5
  94. package/dist/runtime/components/l-menu.vue +33 -34
  95. package/dist/runtime/components/l-microsoft-button.d.vue.ts +1 -11
  96. package/dist/runtime/components/l-microsoft-button.vue +68 -68
  97. package/dist/runtime/components/l-microsoft-button.vue.d.ts +1 -11
  98. package/dist/runtime/components/l-page.vue +21 -21
  99. package/dist/runtime/components/l-repeater.d.vue.ts +36 -0
  100. package/dist/runtime/components/l-repeater.vue +153 -0
  101. package/dist/runtime/components/l-repeater.vue.d.ts +36 -0
  102. package/dist/runtime/components/l-row.vue +5 -5
  103. package/dist/runtime/components/l-save-btn.vue +2 -2
  104. package/dist/runtime/components/l-select.vue +1 -1
  105. package/dist/runtime/components/l-small-box.vue +9 -9
  106. package/dist/runtime/components/l-statistic.vue +9 -9
  107. package/dist/runtime/components/l-tab.vue +10 -10
  108. package/dist/runtime/components/l-table.d.vue.ts +1 -1
  109. package/dist/runtime/components/l-table.vue +176 -190
  110. package/dist/runtime/components/l-table.vue.d.ts +1 -1
  111. package/dist/runtime/components/l-tabs.vue +9 -9
  112. package/dist/runtime/components/l-test2.vue +3 -3
  113. package/dist/runtime/components/l-time-picker.d.vue.ts +1 -1
  114. package/dist/runtime/components/l-time-picker.vue +18 -18
  115. package/dist/runtime/components/l-time-picker.vue.d.ts +1 -1
  116. package/dist/runtime/components/l-view-btn.vue +2 -2
  117. package/dist/runtime/components/user-list.vue +3 -3
  118. package/dist/runtime/composables/mytest.js +2 -2
  119. package/dist/runtime/composables/tc2sc.js +85 -85
  120. package/dist/runtime/formkit/Checkbox.d.vue.ts +0 -1
  121. package/dist/runtime/formkit/Checkbox.vue +6 -6
  122. package/dist/runtime/formkit/Checkbox.vue.d.ts +0 -1
  123. package/dist/runtime/formkit/DatePicker.d.vue.ts +0 -1
  124. package/dist/runtime/formkit/DatePicker.vue +11 -11
  125. package/dist/runtime/formkit/DatePicker.vue.d.ts +0 -1
  126. package/dist/runtime/formkit/Editor.vue +7 -7
  127. package/dist/runtime/formkit/File.d.vue.ts +0 -1
  128. package/dist/runtime/formkit/File.vue +6 -6
  129. package/dist/runtime/formkit/File.vue.d.ts +0 -1
  130. package/dist/runtime/formkit/FilePicker.d.vue.ts +0 -1
  131. package/dist/runtime/formkit/FilePicker.vue +6 -6
  132. package/dist/runtime/formkit/FilePicker.vue.d.ts +0 -1
  133. package/dist/runtime/formkit/FileUpload.d.vue.ts +0 -1
  134. package/dist/runtime/formkit/FileUpload.vue +6 -6
  135. package/dist/runtime/formkit/FileUpload.vue.d.ts +0 -1
  136. package/dist/runtime/formkit/Form.d.vue.ts +1 -3
  137. package/dist/runtime/formkit/Form.vue +15 -13
  138. package/dist/runtime/formkit/Form.vue.d.ts +1 -3
  139. package/dist/runtime/formkit/GroupSelect.d.vue.ts +0 -1
  140. package/dist/runtime/formkit/GroupSelect.vue +7 -7
  141. package/dist/runtime/formkit/GroupSelect.vue.d.ts +0 -1
  142. package/dist/runtime/formkit/Input.d.vue.ts +1 -1
  143. package/dist/runtime/formkit/Input.vue +11 -11
  144. package/dist/runtime/formkit/Input.vue.d.ts +1 -1
  145. package/dist/runtime/formkit/InputSelect.d.vue.ts +1 -1
  146. package/dist/runtime/formkit/InputSelect.vue +7 -7
  147. package/dist/runtime/formkit/InputSelect.vue.d.ts +1 -1
  148. package/dist/runtime/formkit/InputXlsx.vue +4 -4
  149. package/dist/runtime/formkit/OptionGroup.vue +5 -5
  150. package/dist/runtime/formkit/Radio.vue +4 -4
  151. package/dist/runtime/formkit/Repeater.d.vue.ts +1 -1
  152. package/dist/runtime/formkit/Repeater.vue +49 -37
  153. package/dist/runtime/formkit/Repeater.vue.d.ts +1 -1
  154. package/dist/runtime/formkit/Select.d.vue.ts +0 -1
  155. package/dist/runtime/formkit/Select.vue +6 -6
  156. package/dist/runtime/formkit/Select.vue.d.ts +0 -1
  157. package/dist/runtime/formkit/Textarea.d.vue.ts +1 -1
  158. package/dist/runtime/formkit/Textarea.vue +11 -11
  159. package/dist/runtime/formkit/Textarea.vue.d.ts +1 -1
  160. package/dist/runtime/formkit/TimePicker.d.vue.ts +0 -1
  161. package/dist/runtime/formkit/TimePicker.vue +10 -10
  162. package/dist/runtime/formkit/TimePicker.vue.d.ts +0 -1
  163. package/dist/runtime/formkit/Toggle.vue +3 -3
  164. package/dist/runtime/formkit/index.js +1 -1
  165. package/dist/runtime/index.d.ts +39 -39
  166. package/dist/runtime/locales/en.json +9 -9
  167. package/dist/runtime/locales/zh-hk.json +213 -213
  168. package/dist/runtime/pages/CustomField/[custom_field_id]/edit.vue +33 -38
  169. package/dist/runtime/pages/CustomField/index.vue +12 -14
  170. package/dist/runtime/pages/EventLog/_eventlog_id/view.vue +36 -36
  171. package/dist/runtime/pages/EventLog/index.vue +7 -7
  172. package/dist/runtime/pages/FileManager/index.vue +4 -4
  173. package/dist/runtime/pages/MailLog/index.vue +18 -18
  174. package/dist/runtime/pages/Permission/add.vue +13 -13
  175. package/dist/runtime/pages/Permission/all.vue +63 -68
  176. package/dist/runtime/pages/Permission/export.vue +9 -10
  177. package/dist/runtime/pages/Permission/index.vue +4 -4
  178. package/dist/runtime/pages/Role/_name/update-child.vue +4 -4
  179. package/dist/runtime/pages/Role/add.vue +7 -7
  180. package/dist/runtime/pages/Role/add2.vue +30 -30
  181. package/dist/runtime/pages/Role/index.vue +41 -33
  182. package/dist/runtime/pages/System/database/backup.vue +72 -72
  183. package/dist/runtime/pages/System/database/check.vue +72 -72
  184. package/dist/runtime/pages/System/database/event.vue +51 -51
  185. package/dist/runtime/pages/System/database/process.vue +21 -21
  186. package/dist/runtime/pages/System/database/restore.vue +110 -110
  187. package/dist/runtime/pages/System/database/table.vue +67 -69
  188. package/dist/runtime/pages/System/fs.vue +99 -99
  189. package/dist/runtime/pages/System/index.vue +16 -18
  190. package/dist/runtime/pages/System/mailtest.vue +12 -12
  191. package/dist/runtime/pages/System/menu/index.vue +142 -144
  192. package/dist/runtime/pages/System/package.vue +11 -11
  193. package/dist/runtime/pages/System/phpinfo.vue +3 -3
  194. package/dist/runtime/pages/System/setting.vue +28 -30
  195. package/dist/runtime/pages/System/test.vue +12 -12
  196. package/dist/runtime/pages/System/view_as.vue +21 -22
  197. package/dist/runtime/pages/SystemValue/_systemvalue_id/edit.vue +6 -6
  198. package/dist/runtime/pages/SystemValue/add.vue +7 -7
  199. package/dist/runtime/pages/SystemValue/index.vue +4 -4
  200. package/dist/runtime/pages/Translate/index.vue +38 -38
  201. package/dist/runtime/pages/User/_user_id/change-password.vue +17 -18
  202. package/dist/runtime/pages/User/_user_id/edit.vue +28 -28
  203. package/dist/runtime/pages/User/_user_id/update-role.vue +7 -8
  204. package/dist/runtime/pages/User/_user_id/view.vue +27 -30
  205. package/dist/runtime/pages/User/add.vue +35 -35
  206. package/dist/runtime/pages/User/index.vue +11 -11
  207. package/dist/runtime/pages/User/profile.vue +45 -46
  208. package/dist/runtime/pages/User/setting/bio-auth.vue +22 -22
  209. package/dist/runtime/pages/User/setting/favorite.vue +61 -62
  210. package/dist/runtime/pages/User/setting/index.vue +6 -6
  211. package/dist/runtime/pages/User/setting/information.vue +6 -6
  212. package/dist/runtime/pages/User/setting/menu.vue +165 -165
  213. package/dist/runtime/pages/User/setting/open_id.vue +161 -161
  214. package/dist/runtime/pages/User/setting/password.vue +19 -19
  215. package/dist/runtime/pages/User/setting/style.vue +104 -106
  216. package/dist/runtime/pages/User/setting/two-factor-auth.vue +176 -176
  217. package/dist/runtime/pages/User/setting.vue +32 -32
  218. package/dist/runtime/pages/UserLog/index.vue +4 -4
  219. package/package.json +63 -63
@@ -35,22 +35,21 @@ const policies = computed(() => {
35
35
  </script>
36
36
 
37
37
  <template>
38
- <l-page>
39
- <FormKit type="l-form" @submit="onSubmit">
40
- <FormKit type="l-input" name="password" :validation="system.passwordPolicy" label="Password"
41
- input-type="password" show-password></FormKit>
42
-
43
-
44
- </FormKit>
45
-
46
- <q-card flat>
47
- <q-card-section>
48
- <div>{{ $t('Password policy') }}</div>
49
- <ul>
50
- <li v-for="policy in policies" :key="policy">{{ policy }}</li>
51
- </ul>
52
-
53
- </q-card-section>
54
- </q-card>
55
- </l-page>
38
+ <l-page>
39
+ <FormKit type="l-form" @submit="onSubmit">
40
+ <FormKit type="l-input" name="password" :validation="system.passwordPolicy" label="Password"
41
+ input-type="password" show-password></FormKit>
42
+
43
+ </FormKit>
44
+
45
+ <q-card flat>
46
+ <q-card-section>
47
+ <div>{{ $t('Password policy') }}</div>
48
+ <ul>
49
+ <li v-for="policy in policies" :key="policy">{{ policy }}</li>
50
+ </ul>
51
+
52
+ </q-card-section>
53
+ </q-card>
54
+ </l-page>
56
55
  </template>
@@ -33,32 +33,32 @@ const languages = tt.app.languages.map((lang) => {
33
33
  </script>
34
34
 
35
35
  <template>
36
- <l-page>
37
- <FormKit type="l-form" :value="obj" gutter="none">
38
- <l-row class="col col-12">
39
- <l-col md="6">
40
- <FormKit type="l-input" label="Username" name="username" validation="required" />
41
- <FormKit type="l-input" label="First name" name="first_name" validation="required" />
42
- <FormKit type="l-input" label="Last name" name="last_name" />
43
- <FormKit type="l-input" label="Email" name="email" validation="required|email" />
44
- </l-col>
45
-
46
- <l-col md="6">
47
- <FormKit type="l-input" label="Phone" name="phone" />
48
- <FormKit type="l-input" label="Address1" name="addr1" />
49
- <FormKit type="l-input" label="Address2" name="addr2" />
50
- <FormKit type="l-input" label="Address3" name="addr3" />
51
- </l-col>
52
-
53
- <l-col>
54
- <FormKit type="l-date-picker" label="Join date" name="join_date" validation="required" />
55
- <FormKit type="l-date-picker" label="Expiry date" name="expiry_date" />
56
- <FormKit type="l-select" label="Status" name="status" :options="options" validation="required" />
57
- <FormKit type="l-select" label="Language" name="language" :options="languages"
58
- validation="required" />
59
- <FormKit type="l-input" label="Default page" name="default_page" />
60
- </l-col>
61
- </l-row>
62
- </FormKit>
63
- </l-page>
36
+ <l-page>
37
+ <FormKit type="l-form" :value="obj" gutter="none">
38
+ <l-row class="col col-12">
39
+ <l-col md="6">
40
+ <FormKit type="l-input" label="Username" name="username" validation="required" />
41
+ <FormKit type="l-input" label="First name" name="first_name" validation="required" />
42
+ <FormKit type="l-input" label="Last name" name="last_name" />
43
+ <FormKit type="l-input" label="Email" name="email" validation="required|email" />
44
+ </l-col>
45
+
46
+ <l-col md="6">
47
+ <FormKit type="l-input" label="Phone" name="phone" />
48
+ <FormKit type="l-input" label="Address1" name="addr1" />
49
+ <FormKit type="l-input" label="Address2" name="addr2" />
50
+ <FormKit type="l-input" label="Address3" name="addr3" />
51
+ </l-col>
52
+
53
+ <l-col>
54
+ <FormKit type="l-date-picker" label="Join date" name="join_date" validation="required" />
55
+ <FormKit type="l-date-picker" label="Expiry date" name="expiry_date" />
56
+ <FormKit type="l-select" label="Status" name="status" :options="options" validation="required" />
57
+ <FormKit type="l-select" label="Language" name="language" :options="languages"
58
+ validation="required" />
59
+ <FormKit type="l-input" label="Default page" name="default_page" />
60
+ </l-col>
61
+ </l-row>
62
+ </FormKit>
63
+ </l-page>
64
64
  </template>
@@ -33,12 +33,11 @@ const submit = async (data, form) => {
33
33
  </script>
34
34
 
35
35
  <template>
36
- <l-page>
37
- <FormKit type="l-form" @submit="submit" :value="{ roles: obj.roles }">
38
- <FormKit type="l-option-group" :options="roles" name="roles">
39
- </FormKit>
40
- </FormKit>
41
-
42
-
43
- </l-page>
36
+ <l-page>
37
+ <FormKit type="l-form" @submit="submit" :value="{ roles: obj.roles }">
38
+ <FormKit type="l-option-group" :options="roles" name="roles">
39
+ </FormKit>
40
+ </FormKit>
41
+
42
+ </l-page>
44
43
  </template>
@@ -33,34 +33,31 @@ const reset2fa = async () => {
33
33
  </script>
34
34
 
35
35
  <template>
36
- <l-page :edit-btn="obj.canUpdate" v-if="obj">
37
- <template #header>
38
- <l-btn to="change-password" icon="sym_o_key" permission="user.changePassword"
39
- label="Change password"></l-btn>
40
- <l-btn to="update-role" icon="sym_o_people" permission="user.role.add" label="Update role"></l-btn>
41
- <l-btn label="Reset 2FA" icon="sym_o_key" permission="user.reset2fa" @click="reset2fa"></l-btn>
42
-
43
- </template>
44
-
45
- <q-card flat bordered>
46
- <l-tabs inline-label align="justify">
47
- <l-tab name="overview" icon="sym_o_person" :label="$t('Overview')">
48
- <l-user-overview :id="id" />
49
- </l-tab>
50
- <l-tab name="userlog" icon="sym_o_description" :label="$t('User log')"
51
- v-if="$light.isGranted('userlog.list')">
52
- <l-user-userlog :id="id" />
53
- </l-tab>
54
- <l-tab name="eventlog" icon="sym_o_description" :label="$t('Event log')"
55
- v-if="$light.isGranted('eventlog.list')">
56
- <l-user-eventlog :id="id" />
57
- </l-tab>
58
- </l-tabs>
59
-
60
- </q-card>
61
-
62
-
63
-
64
-
65
- </l-page>
36
+ <l-page :edit-btn="obj.canUpdate" v-if="obj">
37
+ <template #header>
38
+ <l-btn to="change-password" icon="sym_o_key" permission="user.changePassword"
39
+ label="Change password"></l-btn>
40
+ <l-btn to="update-role" icon="sym_o_people" permission="user.role.add" label="Update role"></l-btn>
41
+ <l-btn label="Reset 2FA" icon="sym_o_key" permission="user.reset2fa" @click="reset2fa"></l-btn>
42
+
43
+ </template>
44
+
45
+ <q-card flat bordered>
46
+ <l-tabs inline-label align="justify">
47
+ <l-tab name="overview" icon="sym_o_person" :label="$t('Overview')">
48
+ <l-user-overview :id="id" />
49
+ </l-tab>
50
+ <l-tab name="userlog" icon="sym_o_description" :label="$t('User log')"
51
+ v-if="$light.isGranted('userlog.list')">
52
+ <l-user-userlog :id="id" />
53
+ </l-tab>
54
+ <l-tab name="eventlog" icon="sym_o_description" :label="$t('Event log')"
55
+ v-if="$light.isGranted('eventlog.list')">
56
+ <l-user-eventlog :id="id" />
57
+ </l-tab>
58
+ </l-tabs>
59
+
60
+ </q-card>
61
+
62
+ </l-page>
66
63
  </template>
@@ -49,39 +49,39 @@ const languages = app.languages.map((lang) => {
49
49
  </script>
50
50
 
51
51
  <template>
52
- <l-page>
53
-
54
- <FormKit type="l-form" :value="obj">
55
- <l-row class="col">
56
- <l-col md="6">
57
- <FormKit type="l-input" label="Username" name="username" validation="required" />
58
- <FormKit type="l-input" label="Password" name="password" :validation="system.passwordPolicy"
59
- input-type="password" autocomplete="new-password" />
60
- <FormKit type="l-input" label="First name" name="first_name" validation="required" />
61
- <FormKit type="l-input" label="Last name" name="last_name" />
62
- <FormKit type="l-input" label="Email" name="email" validation="required|email" />
63
- </l-col>
64
-
65
- <l-col md="6">
66
- <FormKit type="l-input" label="Phone" name="phone" />
67
- <FormKit type="l-input" label="Address1" name="addr1" />
68
- <FormKit type="l-input" label="Address2" name="addr2" />
69
- <FormKit type="l-input" label="Address3" name="addr3" />
70
- </l-col>
71
-
72
- <l-col>
73
- <FormKit type="l-date-picker" label="Join date" name="join_date" validation="required" />
74
- <FormKit type="l-date-picker" label="Expiry date" name="expiry_date" />
75
- <FormKit type="l-select" label="Status" name="status" :options="options" validation="required" />
76
- <FormKit type="l-select" label="Language" name="language" :options="languages"
77
- validation="required" />
78
- <FormKit type="l-input" label="Default page" name="default_page" />
79
-
80
- <FormKit type="l-option-group" label="Roles" name="roles" :options="roles ?? []" />
81
- </l-col>
82
- </l-row>
83
-
84
- </FormKit>
85
-
86
- </l-page>
52
+ <l-page>
53
+
54
+ <FormKit type="l-form" :value="obj">
55
+ <l-row class="col">
56
+ <l-col md="6">
57
+ <FormKit type="l-input" label="Username" name="username" validation="required" />
58
+ <FormKit type="l-input" label="Password" name="password" :validation="system.passwordPolicy"
59
+ input-type="password" autocomplete="new-password" />
60
+ <FormKit type="l-input" label="First name" name="first_name" validation="required" />
61
+ <FormKit type="l-input" label="Last name" name="last_name" />
62
+ <FormKit type="l-input" label="Email" name="email" validation="required|email" />
63
+ </l-col>
64
+
65
+ <l-col md="6">
66
+ <FormKit type="l-input" label="Phone" name="phone" />
67
+ <FormKit type="l-input" label="Address1" name="addr1" />
68
+ <FormKit type="l-input" label="Address2" name="addr2" />
69
+ <FormKit type="l-input" label="Address3" name="addr3" />
70
+ </l-col>
71
+
72
+ <l-col>
73
+ <FormKit type="l-date-picker" label="Join date" name="join_date" validation="required" />
74
+ <FormKit type="l-date-picker" label="Expiry date" name="expiry_date" />
75
+ <FormKit type="l-select" label="Status" name="status" :options="options" validation="required" />
76
+ <FormKit type="l-select" label="Language" name="language" :options="languages"
77
+ validation="required" />
78
+ <FormKit type="l-input" label="Default page" name="default_page" />
79
+
80
+ <FormKit type="l-option-group" label="Roles" name="roles" :options="roles ?? []" />
81
+ </l-col>
82
+ </l-row>
83
+
84
+ </FormKit>
85
+
86
+ </l-page>
87
87
  </template>
@@ -1,12 +1,12 @@
1
- <template>
2
- <l-page>
3
- <l-tabs route>
4
- <l-tab label="Active" name="active">
5
- <user-list :status="0" name="user-active" />
6
- </l-tab>
7
- <l-tab label="Inactive" name="inactive">
8
- <user-list :status="1" name="user-inactive" />
9
- </l-tab>
10
- </l-tabs>
11
- </l-page>
1
+ <template>
2
+ <l-page>
3
+ <l-tabs route>
4
+ <l-tab label="Active" name="active">
5
+ <user-list :status="0" name="user-active" />
6
+ </l-tab>
7
+ <l-tab label="Inactive" name="inactive">
8
+ <user-list :status="1" name="user-inactive" />
9
+ </l-tab>
10
+ </l-tabs>
11
+ </l-page>
12
12
  </template>
@@ -49,50 +49,49 @@ eventLogCols.forEach((col) => {
49
49
  </script>
50
50
 
51
51
  <template>
52
- <l-page title="User profile" gutter="sm">
53
- <template #header>
54
- <l-btn icon="sym_o_password" to="setting/password" label="Update password" />
55
- <l-btn icon="sym_o_key" to="setting/two-factor-auth" label="Two factor auth" />
56
- </template>
57
-
58
- <l-row>
59
- <l-col md="4">
60
- <l-card>
61
- <q-card-section class="text-h5 text-center">
62
- {{ my.first_name }} {{ my.last_name }}
63
- </q-card-section>
64
-
65
- <q-card-section class="text-center text-center q-pt-none">
66
- <q-chip v-for="role in my.roles" :key="role" :label="role" color="primary"
67
- text-color="white" class="q-ma-xs" />
68
- </q-card-section>
69
-
70
-
71
- <q-separator />
72
- <l-list :bordered="false">
73
- <q-item-label header>{{ $t('Details') }}</q-item-label>
74
- <l-item label="Username">{{ my.username }}</l-item>
75
- <l-item label="First name">{{ my.first_name }}</l-item>
76
- <l-item label="Last name">{{ my.last_name }}</l-item>
77
- <l-item label="Email">{{ my.email }}</l-item>
78
- <l-item label="Phone">{{ my.phone }}</l-item>
79
- <l-item label="Address">{{ my.addr1 }} {{ my.addr2 }} {{ my.addr3 }}</l-item>
80
- <l-item label="Join date">{{ my.join_date }}</l-item>
81
- </l-list>
82
- </l-card>
83
- </l-col>
84
-
85
- <l-col md="8">
86
- <l-tabs>
87
- <l-tab label="User Log" name="user_log">
88
- <l-table :rows="my.userLog.data" searchable :columns="userlogColumns" hide-pagination />
89
- </l-tab>
90
- <l-tab label="Event Log" name="event_log">
91
- <l-table :rows="my.eventLog.data" :columns="eventLogCols" searchable hide-pagination />
92
- </l-tab>
93
- </l-tabs>
94
- </l-col>
95
- </l-row>
96
-
97
- </l-page>
52
+ <l-page title="User profile" gutter="sm">
53
+ <template #header>
54
+ <l-btn icon="sym_o_password" to="setting/password" label="Update password" />
55
+ <l-btn icon="sym_o_key" to="setting/two-factor-auth" label="Two factor auth" />
56
+ </template>
57
+
58
+ <l-row>
59
+ <l-col md="4">
60
+ <l-card>
61
+ <q-card-section class="text-h5 text-center">
62
+ {{ my.first_name }} {{ my.last_name }}
63
+ </q-card-section>
64
+
65
+ <q-card-section class="text-center text-center q-pt-none">
66
+ <q-chip v-for="role in my.roles" :key="role" :label="role" color="primary"
67
+ text-color="white" class="q-ma-xs" />
68
+ </q-card-section>
69
+
70
+ <q-separator />
71
+ <l-list :bordered="false">
72
+ <q-item-label header>{{ $t('Details') }}</q-item-label>
73
+ <l-item label="Username">{{ my.username }}</l-item>
74
+ <l-item label="First name">{{ my.first_name }}</l-item>
75
+ <l-item label="Last name">{{ my.last_name }}</l-item>
76
+ <l-item label="Email">{{ my.email }}</l-item>
77
+ <l-item label="Phone">{{ my.phone }}</l-item>
78
+ <l-item label="Address">{{ my.addr1 }} {{ my.addr2 }} {{ my.addr3 }}</l-item>
79
+ <l-item label="Join date">{{ my.join_date }}</l-item>
80
+ </l-list>
81
+ </l-card>
82
+ </l-col>
83
+
84
+ <l-col md="8">
85
+ <l-tabs>
86
+ <l-tab label="User Log" name="user_log">
87
+ <l-table :rows="my.userLog.data" searchable :columns="userlogColumns" hide-pagination />
88
+ </l-tab>
89
+ <l-tab label="Event Log" name="event_log">
90
+ <l-table :rows="my.eventLog.data" :columns="eventLogCols" searchable hide-pagination />
91
+ </l-tab>
92
+ </l-tabs>
93
+ </l-col>
94
+ </l-row>
95
+
96
+ </l-page>
98
97
  </template>
@@ -71,26 +71,26 @@ const deleteItem = async (uuid) => {
71
71
  </script>
72
72
 
73
73
  <template>
74
- <l-card :bordered="false">
75
- <q-card-section v-if="!data.app.hasBioAuth">
76
- Biometric authentication is not installed, please install web-auth/webauthn-lib on the server.
77
- </q-card-section>
78
-
79
- <template v-else>
80
- <q-toolbar>
81
- <q-toolbar-title>Biometric authentication</q-toolbar-title>
82
- <l-btn label="Register" @click="register" icon="sym_o_add"></l-btn>
83
- </q-toolbar>
84
-
85
- <q-table :rows="data.my.webAuthn" :columns="columns" dense :rows-per-page-options="[0]">
86
- <template #body-cell-action="props">
87
- <q-td :props="props" auto-width>
88
- <q-btn @click="deleteItem(props.row.uuid)" icon="sym_o_delete" round flat dense></q-btn>
89
- </q-td>
90
- </template>
91
- </q-table>
92
-
93
- </template>
94
-
95
- </l-card>
74
+ <l-card :bordered="false">
75
+ <q-card-section v-if="!data.app.hasBioAuth">
76
+ Biometric authentication is not installed, please install web-auth/webauthn-lib on the server.
77
+ </q-card-section>
78
+
79
+ <template v-else>
80
+ <q-toolbar>
81
+ <q-toolbar-title>Biometric authentication</q-toolbar-title>
82
+ <l-btn label="Register" @click="register" icon="sym_o_add"></l-btn>
83
+ </q-toolbar>
84
+
85
+ <q-table :rows="data.my.webAuthn" :columns="columns" dense :rows-per-page-options="[0]">
86
+ <template #body-cell-action="props">
87
+ <q-td :props="props" auto-width>
88
+ <q-btn @click="deleteItem(props.row.uuid)" icon="sym_o_delete" round flat dense></q-btn>
89
+ </q-td>
90
+ </template>
91
+ </q-table>
92
+
93
+ </template>
94
+
95
+ </l-card>
96
96
  </template>
@@ -95,68 +95,67 @@ onMounted(() => {
95
95
  </script>
96
96
 
97
97
  <template>
98
- <div>
99
- <q-table id="myfav-table" :rows="rows" :columns="columns" row-key="my_favorite_id" flat :bordered="false"
100
- :rows-per-page-options="[0]">
101
-
102
- <template #body-cell-label="props">
103
- <q-td :props="props">
104
- {{ props.row.label }}
105
- <q-popup-edit v-model="props.row.label" v-slot="scope" buttons
106
- @save="onSave(props.row.my_favorite_id, { 'label': $event })">
107
- <q-input v-model="scope.value" dense autofocus counter @keyup.enter="scope.set" />
108
- </q-popup-edit>
109
- </q-td>
110
- </template>
111
-
112
-
113
- <template #body-cell-icon="props">
114
- <q-td :props="props" class="text-center" style="width: 80px;">
115
- <!-- Icon -->
116
- <l-icon-picker v-model="props.row.icon" flat round size="sm"
117
- @update:model-value="onSave(props.row.my_favorite_id, { 'icon': $event })" />
118
- </q-td>
119
-
120
- </template>
121
-
122
- <template #body-cell-handler="props">
123
- <q-td :props="props" class="drag-handle" style="cursor: move; width: 40px; text-align: center;">
124
- <q-icon name="drag_handle" />
125
- </q-td>
126
- </template>
127
- <!-- 操作列 -->
128
- <template #body-cell-actions="props">
129
- <q-td :props="props">
130
- <q-btn icon="sym_o_delete" color="negative" flat dense @click="onRemove(props.row.my_favorite_id)"
131
- :disable="saving">
132
- <q-tooltip>Delete item</q-tooltip>
133
- </q-btn>
134
- </q-td>
135
- </template>
136
-
137
- <template #no-data>
138
- <div class="text-center q-pa-md">
139
- <l-icon name="sym_o_favorite_border" size="48px" class="text-grey-5" />
140
- <div class="text-h6 q-mt-sm">No favorites added yet</div>
141
- <div class="text-subtitle2 text-grey-6 q-mt-xs">
142
- You can add frequently used features here for quick access.
143
- </div>
144
- </div>
145
- </template>
146
- </q-table>
147
-
148
- <!-- 更新按鈕 -->
149
- <div v-if="hasChanges" class="q-mt-md text-center">
150
- <q-btn color="primary" icon="save" label="Update Order" @click="updateSequence" :loading="isUpdating"
151
- :disable="isUpdating" />
152
- </div>
153
-
154
- <!-- 狀態提示 -->
155
- <div v-if="isUpdating" class="q-mt-md">
156
- <q-linear-progress indeterminate color="primary" />
157
- <div class="text-center q-mt-sm text-grey-6">Updating order...</div>
158
- </div>
159
- </div>
98
+ <div>
99
+ <q-table id="myfav-table" :rows="rows" :columns="columns" row-key="my_favorite_id" flat :bordered="false"
100
+ :rows-per-page-options="[0]">
101
+
102
+ <template #body-cell-label="props">
103
+ <q-td :props="props">
104
+ {{ props.row.label }}
105
+ <q-popup-edit v-model="props.row.label" v-slot="scope" buttons
106
+ @save="onSave(props.row.my_favorite_id, { 'label': $event })">
107
+ <q-input v-model="scope.value" dense autofocus counter @keyup.enter="scope.set" />
108
+ </q-popup-edit>
109
+ </q-td>
110
+ </template>
111
+
112
+ <template #body-cell-icon="props">
113
+ <q-td :props="props" class="text-center" style="width: 80px;">
114
+ <!-- Icon -->
115
+ <l-icon-picker v-model="props.row.icon" flat round size="sm"
116
+ @update:model-value="onSave(props.row.my_favorite_id, { 'icon': $event })" />
117
+ </q-td>
118
+
119
+ </template>
120
+
121
+ <template #body-cell-handler="props">
122
+ <q-td :props="props" class="drag-handle" style="cursor: move; width: 40px; text-align: center;">
123
+ <q-icon name="drag_handle" />
124
+ </q-td>
125
+ </template>
126
+ <!-- 操作列 -->
127
+ <template #body-cell-actions="props">
128
+ <q-td :props="props">
129
+ <q-btn icon="sym_o_delete" color="negative" flat dense @click="onRemove(props.row.my_favorite_id)"
130
+ :disable="saving">
131
+ <q-tooltip>Delete item</q-tooltip>
132
+ </q-btn>
133
+ </q-td>
134
+ </template>
135
+
136
+ <template #no-data>
137
+ <div class="text-center q-pa-md">
138
+ <l-icon name="sym_o_favorite_border" size="48px" class="text-grey-5" />
139
+ <div class="text-h6 q-mt-sm">No favorites added yet</div>
140
+ <div class="text-subtitle2 text-grey-6 q-mt-xs">
141
+ You can add frequently used features here for quick access.
142
+ </div>
143
+ </div>
144
+ </template>
145
+ </q-table>
146
+
147
+ <!-- 更新按鈕 -->
148
+ <div v-if="hasChanges" class="q-mt-md text-center">
149
+ <q-btn color="primary" icon="save" label="Update Order" @click="updateSequence" :loading="isUpdating"
150
+ :disable="isUpdating" />
151
+ </div>
152
+
153
+ <!-- 狀態提示 -->
154
+ <div v-if="isUpdating" class="q-mt-md">
155
+ <q-linear-progress indeterminate color="primary" />
156
+ <div class="text-center q-mt-sm text-grey-6">Updating order...</div>
157
+ </div>
158
+ </div>
160
159
  </template>
161
160
 
162
161
  <style scoped>
@@ -23,10 +23,10 @@ const onSubmit = async (data, form) => {
23
23
  </script>
24
24
 
25
25
  <template>
26
- <FormKit type="l-form" :value="my" :bordered="false" @submit="onSubmit">
27
- <FormKit type="l-input" label="Username" name="username" readonly></FormKit>
28
- <FormKit type="l-input" label="Email" name="email" validation="required|email"></FormKit>
29
- <FormKit type="l-input" label="First name" name="first_name" validation="required"></FormKit>
30
- <FormKit type="l-input" label="Last name" name="last_name"></FormKit>
31
- </FormKit>
26
+ <FormKit type="l-form" :value="my" :bordered="false" @submit="onSubmit">
27
+ <FormKit type="l-input" label="Username" name="username" readonly></FormKit>
28
+ <FormKit type="l-input" label="Email" name="email" validation="required|email"></FormKit>
29
+ <FormKit type="l-input" label="First name" name="first_name" validation="required"></FormKit>
30
+ <FormKit type="l-input" label="Last name" name="last_name"></FormKit>
31
+ </FormKit>
32
32
  </template>
@@ -25,10 +25,10 @@ const onSubmit = (data, form) => {
25
25
  </script>
26
26
 
27
27
  <template>
28
- <FormKit type="l-form" :value="my" :bordered="false" @submit="onSubmit">
29
- <FormKit type="l-input" label="Phone" name="phone"></FormKit>
30
- <FormKit type="l-input" label="Address1" name="addr1"></FormKit>
31
- <FormKit type="l-input" label="Address2" name="addr2"></FormKit>
32
- <FormKit type="l-input" label="Address3" name="addr3"></FormKit>
33
- </FormKit>
28
+ <FormKit type="l-form" :value="my" :bordered="false" @submit="onSubmit">
29
+ <FormKit type="l-input" label="Phone" name="phone"></FormKit>
30
+ <FormKit type="l-input" label="Address1" name="addr1"></FormKit>
31
+ <FormKit type="l-input" label="Address2" name="addr2"></FormKit>
32
+ <FormKit type="l-input" label="Address3" name="addr3"></FormKit>
33
+ </FormKit>
34
34
  </template>