@hostlink/nuxt-light 1.55.0 → 1.56.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 (218) 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 +245 -250
  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 +3 -3
  100. package/dist/runtime/components/l-repeater.vue +35 -35
  101. package/dist/runtime/components/l-repeater.vue.d.ts +3 -3
  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 +11 -11
  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 +37 -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/index.d.ts +39 -39
  165. package/dist/runtime/locales/en.json +9 -9
  166. package/dist/runtime/locales/zh-hk.json +213 -213
  167. package/dist/runtime/pages/CustomField/[custom_field_id]/edit.vue +33 -38
  168. package/dist/runtime/pages/CustomField/index.vue +12 -14
  169. package/dist/runtime/pages/EventLog/_eventlog_id/view.vue +36 -36
  170. package/dist/runtime/pages/EventLog/index.vue +7 -7
  171. package/dist/runtime/pages/FileManager/index.vue +4 -4
  172. package/dist/runtime/pages/MailLog/index.vue +18 -18
  173. package/dist/runtime/pages/Permission/add.vue +13 -13
  174. package/dist/runtime/pages/Permission/all.vue +63 -63
  175. package/dist/runtime/pages/Permission/export.vue +9 -10
  176. package/dist/runtime/pages/Permission/index.vue +4 -4
  177. package/dist/runtime/pages/Role/_name/update-child.vue +4 -4
  178. package/dist/runtime/pages/Role/add.vue +7 -7
  179. package/dist/runtime/pages/Role/add2.vue +30 -30
  180. package/dist/runtime/pages/Role/index.vue +27 -27
  181. package/dist/runtime/pages/System/database/backup.vue +72 -72
  182. package/dist/runtime/pages/System/database/check.vue +72 -72
  183. package/dist/runtime/pages/System/database/event.vue +51 -51
  184. package/dist/runtime/pages/System/database/process.vue +21 -21
  185. package/dist/runtime/pages/System/database/restore.vue +110 -110
  186. package/dist/runtime/pages/System/database/table.vue +67 -69
  187. package/dist/runtime/pages/System/fs.vue +99 -99
  188. package/dist/runtime/pages/System/index.vue +16 -18
  189. package/dist/runtime/pages/System/mailtest.vue +12 -12
  190. package/dist/runtime/pages/System/menu/index.vue +142 -144
  191. package/dist/runtime/pages/System/package.vue +11 -11
  192. package/dist/runtime/pages/System/phpinfo.vue +3 -3
  193. package/dist/runtime/pages/System/setting.vue +28 -30
  194. package/dist/runtime/pages/System/test.vue +12 -12
  195. package/dist/runtime/pages/System/view_as.vue +21 -22
  196. package/dist/runtime/pages/SystemValue/_systemvalue_id/edit.vue +6 -6
  197. package/dist/runtime/pages/SystemValue/add.vue +7 -7
  198. package/dist/runtime/pages/SystemValue/index.vue +4 -4
  199. package/dist/runtime/pages/Translate/index.vue +38 -38
  200. package/dist/runtime/pages/User/_user_id/change-password.vue +17 -18
  201. package/dist/runtime/pages/User/_user_id/edit.vue +28 -28
  202. package/dist/runtime/pages/User/_user_id/update-role.vue +7 -8
  203. package/dist/runtime/pages/User/_user_id/view.vue +27 -30
  204. package/dist/runtime/pages/User/add.vue +35 -35
  205. package/dist/runtime/pages/User/index.vue +11 -11
  206. package/dist/runtime/pages/User/profile.vue +45 -46
  207. package/dist/runtime/pages/User/setting/bio-auth.vue +22 -22
  208. package/dist/runtime/pages/User/setting/favorite.vue +61 -62
  209. package/dist/runtime/pages/User/setting/index.vue +6 -6
  210. package/dist/runtime/pages/User/setting/information.vue +6 -6
  211. package/dist/runtime/pages/User/setting/menu.vue +165 -165
  212. package/dist/runtime/pages/User/setting/open_id.vue +161 -161
  213. package/dist/runtime/pages/User/setting/password.vue +19 -19
  214. package/dist/runtime/pages/User/setting/style.vue +104 -106
  215. package/dist/runtime/pages/User/setting/two-factor-auth.vue +176 -176
  216. package/dist/runtime/pages/User/setting.vue +32 -32
  217. package/dist/runtime/pages/UserLog/index.vue +4 -4
  218. package/package.json +63 -63
@@ -172,148 +172,146 @@ const menusOnly = computed(() => {
172
172
  </script>
173
173
 
174
174
  <template>
175
- <l-page>
176
- <q-dialog v-model="showMove">
177
- <l-card>
178
- <q-card-section>
179
- <q-tree :nodes="menus" default-expand-all v-model:selected="moveTarget" node-key="uuid"
180
- ref="tree2" />
181
- </q-card-section>
182
-
183
- <q-card-actions align="right">
184
- <q-btn flat label="Cancel" color="primary" v-close-popup />
185
- <q-btn flat label="Move" color="primary" @click="onMoveConfirm" />
186
- <!-- q-btn flat label="Move to root" color="primary" @click="onMoveToRoot" /-->
187
- </q-card-actions>
188
- </l-card>
189
- </q-dialog>
190
-
191
- <l-card>
192
- <q-card-actions class="q-gutter-y-sm">
193
- <l-btn @click="onSave" label="Save" icon="sym_o_save" />
194
- <l-btn @click="onReload" label="Reload" icon="sym_o_refresh" />
195
-
196
- <template v-if="selectedNode">
197
-
198
- <template v-if="selectedNode.type == 'root'">
199
- <l-btn @click="onAddChild(selectedNode)" label="Add" icon="sym_o_add" />
200
- <l-btn @click="onAddHeader(selectedNode)" label="Add Header" icon="sym_o_add" />
201
- <l-btn @click="onAddSeparator(selectedNode)" label="Add Separator" icon="sym_o_add" />
202
- </template>
203
- <template v-else>
204
- <q-btn-dropdown v-bind="$light.getButtonProps({ label: 'Add' })" icon="sym_o_add"
205
- color="primary">
206
- <q-list>
207
- <q-item clickable v-close-popup @click="onAddChild(selectedNode)">
208
- <q-item-section>
209
- <q-item-label>Child</q-item-label>
210
- </q-item-section>
211
- </q-item>
212
- <q-item clickable v-close-popup @click="onAddHeader(selectedNode)">
213
- <q-item-section>
214
- <q-item-label>Header</q-item-label>
215
- </q-item-section>
216
- </q-item>
217
- <q-item clickable v-close-popup @click="onAddSeparator(selectedNode)">
218
- <q-item-section>
219
- <q-item-label>Separator</q-item-label>
220
- </q-item-section>
221
- </q-item>
222
-
223
- </q-list>
224
- </q-btn-dropdown>
225
-
226
- <l-btn @click="onRemove(selectedNode)" label="Remove" icon="sym_o_remove" />
227
-
228
-
229
- <l-btn @click="onMove(selectedNode)" label="Move" icon="sym_o_move" />
230
-
231
- <l-btn @click="onMoveUp(selectedNode)" label="Up" icon="sym_o_arrow_upward" />
232
-
233
- <l-btn @click="onMoveDown(selectedNode)" label="Down" icon="sym_o_arrow_downward" />
234
-
235
-
236
- <q-btn-dropdown v-bind="$light.getButtonProps({ label: 'Add menus' })" icon="sym_o_add"
237
- color="primary">
238
- <q-list>
239
- <q-item clickable v-close-popup @click="onAddChildMenu(selectedNode, 'list')">
240
- <q-item-section>
241
- <q-item-label>List</q-item-label>
242
- </q-item-section>
243
- </q-item>
244
-
245
- <q-item clickable v-close-popup @click="onAddChildMenu(selectedNode, 'add')">
246
- <q-item-section>
247
- <q-item-label>Add</q-item-label>
248
- </q-item-section>
249
- </q-item>
250
-
251
- </q-list>
252
- </q-btn-dropdown>
253
- </template>
254
- </template>
255
- </q-card-actions>
256
- <q-splitter v-model="splitterModel" style="height:680px">
257
- <template #before>
258
-
259
- <q-tree :nodes="menus" default-expand-all v-model:selected="selected" node-key="uuid" ref="tree1" />
260
- </template>
261
-
262
- <template #after v-if="selected">
263
- <q-card-section>
264
- <template v-if="!selectedNode.type">
265
- <div class="q-gutter-md">
266
- <l-input label="Label" v-model="selectedNode.label" />
267
- <l-input label="To" v-model="selectedNode.to" />
268
- <l-input label="Icon" v-model="selectedNode.icon"
269
- hint="example: sym_o_add, fas fa-ambulance, mdi-alert-circle-outline" />
270
- <l-input label="Permission" v-model="selectedNode.permission" />
271
- <l-input label="UUID" v-model="selectedNode.uuid" readonly />
272
- </div>
273
-
274
- <div>
275
- <ul>
276
- <li>
277
- <a href="https://fonts.google.com/icons" target="_blank">Material Icons</a>
278
- </li>
279
- <li>
280
- <a href="https://fontawesome.com/search" target="_blank">Font Awesome</a>
281
- </li>
282
-
283
- <li>
284
- <a href="https://materialdesignicons.com/" target="_blank">Material Design
285
- Icons</a>
286
- </li>
287
- <li>
288
- <a href="https://quasar.dev/vue-components/icon#webfont-usage"
289
- target="_blank">Quasar
290
- Icons</a>
291
- </li>
292
- </ul>
293
-
294
- </div>
295
-
296
- </template>
297
-
298
- <template v-if="selectedNode.type == 'separator'">
299
- <div class="q-gutter-md">
300
- <l-checkbox label="Spaced" v-model="selectedNode.spaced" />
301
-
302
- </div>
303
- </template>
304
-
305
- <template v-if="selectedNode.type == 'header'">
306
- <div class="q-gutter-md">
307
- <l-input label="Label" v-model="selectedNode.label" />
308
- </div>
309
- </template>
310
- </q-card-section>
311
-
312
- </template>
313
-
314
- </q-splitter>
315
-
316
- </l-card>
317
-
318
- </l-page>
175
+ <l-page>
176
+ <q-dialog v-model="showMove">
177
+ <l-card>
178
+ <q-card-section>
179
+ <q-tree :nodes="menus" default-expand-all v-model:selected="moveTarget" node-key="uuid"
180
+ ref="tree2" />
181
+ </q-card-section>
182
+
183
+ <q-card-actions align="right">
184
+ <q-btn flat label="Cancel" color="primary" v-close-popup />
185
+ <q-btn flat label="Move" color="primary" @click="onMoveConfirm" />
186
+ <!-- q-btn flat label="Move to root" color="primary" @click="onMoveToRoot" /-->
187
+ </q-card-actions>
188
+ </l-card>
189
+ </q-dialog>
190
+
191
+ <l-card>
192
+ <q-card-actions class="q-gutter-y-sm">
193
+ <l-btn @click="onSave" label="Save" icon="sym_o_save" />
194
+ <l-btn @click="onReload" label="Reload" icon="sym_o_refresh" />
195
+
196
+ <template v-if="selectedNode">
197
+
198
+ <template v-if="selectedNode.type == 'root'">
199
+ <l-btn @click="onAddChild(selectedNode)" label="Add" icon="sym_o_add" />
200
+ <l-btn @click="onAddHeader(selectedNode)" label="Add Header" icon="sym_o_add" />
201
+ <l-btn @click="onAddSeparator(selectedNode)" label="Add Separator" icon="sym_o_add" />
202
+ </template>
203
+ <template v-else>
204
+ <q-btn-dropdown v-bind="$light.getButtonProps({ label: 'Add' })" icon="sym_o_add"
205
+ color="primary">
206
+ <q-list>
207
+ <q-item clickable v-close-popup @click="onAddChild(selectedNode)">
208
+ <q-item-section>
209
+ <q-item-label>Child</q-item-label>
210
+ </q-item-section>
211
+ </q-item>
212
+ <q-item clickable v-close-popup @click="onAddHeader(selectedNode)">
213
+ <q-item-section>
214
+ <q-item-label>Header</q-item-label>
215
+ </q-item-section>
216
+ </q-item>
217
+ <q-item clickable v-close-popup @click="onAddSeparator(selectedNode)">
218
+ <q-item-section>
219
+ <q-item-label>Separator</q-item-label>
220
+ </q-item-section>
221
+ </q-item>
222
+
223
+ </q-list>
224
+ </q-btn-dropdown>
225
+
226
+ <l-btn @click="onRemove(selectedNode)" label="Remove" icon="sym_o_remove" />
227
+
228
+ <l-btn @click="onMove(selectedNode)" label="Move" icon="sym_o_move" />
229
+
230
+ <l-btn @click="onMoveUp(selectedNode)" label="Up" icon="sym_o_arrow_upward" />
231
+
232
+ <l-btn @click="onMoveDown(selectedNode)" label="Down" icon="sym_o_arrow_downward" />
233
+
234
+ <q-btn-dropdown v-bind="$light.getButtonProps({ label: 'Add menus' })" icon="sym_o_add"
235
+ color="primary">
236
+ <q-list>
237
+ <q-item clickable v-close-popup @click="onAddChildMenu(selectedNode, 'list')">
238
+ <q-item-section>
239
+ <q-item-label>List</q-item-label>
240
+ </q-item-section>
241
+ </q-item>
242
+
243
+ <q-item clickable v-close-popup @click="onAddChildMenu(selectedNode, 'add')">
244
+ <q-item-section>
245
+ <q-item-label>Add</q-item-label>
246
+ </q-item-section>
247
+ </q-item>
248
+
249
+ </q-list>
250
+ </q-btn-dropdown>
251
+ </template>
252
+ </template>
253
+ </q-card-actions>
254
+ <q-splitter v-model="splitterModel" style="height:680px">
255
+ <template #before>
256
+
257
+ <q-tree :nodes="menus" default-expand-all v-model:selected="selected" node-key="uuid" ref="tree1" />
258
+ </template>
259
+
260
+ <template #after v-if="selected">
261
+ <q-card-section>
262
+ <template v-if="!selectedNode.type">
263
+ <div class="q-gutter-md">
264
+ <l-input label="Label" v-model="selectedNode.label" />
265
+ <l-input label="To" v-model="selectedNode.to" />
266
+ <l-input label="Icon" v-model="selectedNode.icon"
267
+ hint="example: sym_o_add, fas fa-ambulance, mdi-alert-circle-outline" />
268
+ <l-input label="Permission" v-model="selectedNode.permission" />
269
+ <l-input label="UUID" v-model="selectedNode.uuid" readonly />
270
+ </div>
271
+
272
+ <div>
273
+ <ul>
274
+ <li>
275
+ <a href="https://fonts.google.com/icons" target="_blank">Material Icons</a>
276
+ </li>
277
+ <li>
278
+ <a href="https://fontawesome.com/search" target="_blank">Font Awesome</a>
279
+ </li>
280
+
281
+ <li>
282
+ <a href="https://materialdesignicons.com/" target="_blank">Material Design
283
+ Icons</a>
284
+ </li>
285
+ <li>
286
+ <a href="https://quasar.dev/vue-components/icon#webfont-usage"
287
+ target="_blank">Quasar
288
+ Icons</a>
289
+ </li>
290
+ </ul>
291
+
292
+ </div>
293
+
294
+ </template>
295
+
296
+ <template v-if="selectedNode.type == 'separator'">
297
+ <div class="q-gutter-md">
298
+ <l-checkbox label="Spaced" v-model="selectedNode.spaced" />
299
+
300
+ </div>
301
+ </template>
302
+
303
+ <template v-if="selectedNode.type == 'header'">
304
+ <div class="q-gutter-md">
305
+ <l-input label="Label" v-model="selectedNode.label" />
306
+ </div>
307
+ </template>
308
+ </q-card-section>
309
+
310
+ </template>
311
+
312
+ </q-splitter>
313
+
314
+ </l-card>
315
+
316
+ </l-page>
319
317
  </template>
@@ -18,15 +18,15 @@ const filtered = computed(() => {
18
18
  </script>
19
19
 
20
20
  <template>
21
- <l-page title="System package">
22
- <q-table dense :rows="filtered" :rows-per-page-options="[0]" hide-pagination flat bordered separator="cell">
23
- <template v-slot:top-right>
24
- <q-input outlined dense debounce="300" v-model="filter" placeholder="Search">
25
- <template v-slot:append>
26
- <q-icon name="sym_o_search" />
27
- </template>
28
- </q-input>
29
- </template>
30
- </q-table>
31
- </l-page>
21
+ <l-page title="System package">
22
+ <q-table dense :rows="filtered" :rows-per-page-options="[0]" hide-pagination flat bordered separator="cell">
23
+ <template v-slot:top-right>
24
+ <q-input outlined dense debounce="300" v-model="filter" placeholder="Search">
25
+ <template v-slot:append>
26
+ <q-icon name="sym_o_search" />
27
+ </template>
28
+ </q-input>
29
+ </template>
30
+ </q-table>
31
+ </l-page>
32
32
  </template>
@@ -8,7 +8,7 @@ const { system } = await q({
8
8
  </script>
9
9
 
10
10
  <template>
11
- <l-page title="PHP info">
12
- <iframe :srcdoc="system.phpInfo" style="height: 700px;" class="full-width no-border"></iframe>
13
- </l-page>
11
+ <l-page title="PHP info">
12
+ <iframe :srcdoc="system.phpInfo" style="height: 700px;" class="full-width no-border"></iframe>
13
+ </l-page>
14
14
  </template>
@@ -39,34 +39,32 @@ const onSubmit = async (d) => {
39
39
  </script>
40
40
 
41
41
  <template>
42
- <l-page>
43
-
44
- <l-card>
45
- <q-splitter unit="px" :model-value="145">
46
- <template #before>
47
- <q-tabs v-model="tab" vertical>
48
- <q-tab name="general" icon="sym_o_info" :label="$t('General')" />
49
- <q-tab name="security" icon="sym_o_security" :label="$t('Security')" />
50
- <q-tab name="Modules" icon="sym_o_apps" :label="$t('Modules')" />
51
- <q-tab name="mail" icon="sym_o_email" :label="$t('Mail')" />
52
- <q-tab name="forget-password" icon="sym_o_lock" :label="$t('Forget password')" />
53
- <q-tab name="authentication" icon="sym_o_passkey" :label="$t('Authentication')" />
54
- <q-tab name="developer" icon="sym_o_code" :label="$t('Developer')" />
55
- </q-tabs>
56
- </template>
57
- <template #after>
58
- <l-system-setting-general v-if="tab == 'general'" v-bind="obj" @submit="onSubmit" />
59
- <l-system-setting-mail v-if="tab == 'mail'" v-bind="obj" @submit="onSubmit" />
60
- <l-system-setting-security v-if="tab == 'security'" v-bind="obj" @submit="onSubmit" />
61
- <l-system-setting-modules v-if="tab == 'Modules'" v-bind="obj" @submit="onSubmit" />
62
- <l-system-setting-developer v-if="tab == 'developer'" v-bind="obj" @submit="onSubmit" />
63
- <l-system-setting-forget-password v-if="tab == 'forget-password'" v-bind="obj" @submit="onSubmit" />
64
- <l-system-setting-authentication v-if="tab == 'authentication'" v-bind="obj" @submit="onSubmit" />
65
-
66
-
67
-
68
- </template>
69
- </q-splitter>
70
- </l-card>
71
- </l-page>
42
+ <l-page>
43
+
44
+ <l-card>
45
+ <q-splitter unit="px" :model-value="145">
46
+ <template #before>
47
+ <q-tabs v-model="tab" vertical>
48
+ <q-tab name="general" icon="sym_o_info" :label="$t('General')" />
49
+ <q-tab name="security" icon="sym_o_security" :label="$t('Security')" />
50
+ <q-tab name="Modules" icon="sym_o_apps" :label="$t('Modules')" />
51
+ <q-tab name="mail" icon="sym_o_email" :label="$t('Mail')" />
52
+ <q-tab name="forget-password" icon="sym_o_lock" :label="$t('Forget password')" />
53
+ <q-tab name="authentication" icon="sym_o_passkey" :label="$t('Authentication')" />
54
+ <q-tab name="developer" icon="sym_o_code" :label="$t('Developer')" />
55
+ </q-tabs>
56
+ </template>
57
+ <template #after>
58
+ <l-system-setting-general v-if="tab == 'general'" v-bind="obj" @submit="onSubmit" />
59
+ <l-system-setting-mail v-if="tab == 'mail'" v-bind="obj" @submit="onSubmit" />
60
+ <l-system-setting-security v-if="tab == 'security'" v-bind="obj" @submit="onSubmit" />
61
+ <l-system-setting-modules v-if="tab == 'Modules'" v-bind="obj" @submit="onSubmit" />
62
+ <l-system-setting-developer v-if="tab == 'developer'" v-bind="obj" @submit="onSubmit" />
63
+ <l-system-setting-forget-password v-if="tab == 'forget-password'" v-bind="obj" @submit="onSubmit" />
64
+ <l-system-setting-authentication v-if="tab == 'authentication'" v-bind="obj" @submit="onSubmit" />
65
+
66
+ </template>
67
+ </q-splitter>
68
+ </l-card>
69
+ </l-page>
72
70
  </template>
@@ -1,13 +1,13 @@
1
- <script setup>
2
-
3
- </script>
4
- <template>
5
- <l-page>
6
-
7
- <l-card title="Test">
8
- <q-card-section>
9
- </q-card-section>
10
- </l-card>
11
-
12
- </l-page>
1
+ <script setup>
2
+
3
+ </script>
4
+ <template>
5
+ <l-page>
6
+
7
+ <l-card title="Test">
8
+ <q-card-section>
9
+ </q-card-section>
10
+ </l-card>
11
+
12
+ </l-page>
13
13
  </template>
@@ -69,26 +69,25 @@ const filtered = computed(() => {
69
69
  </script>
70
70
 
71
71
  <template>
72
- <l-page class="q-gutter-md">
73
- <q-banner>
74
- Use this page to view the system as another user. This is useful for testing permissions.
75
- </q-banner>
76
-
77
-
78
- <q-table flat :columns="columns" :rows="filtered" :rows-per-page-options="[0]" dense bordered="">
79
- <template v-slot:top-right>
80
- <q-input outlined dense debounce="300" v-model="filter" placeholder="Search" clearable>
81
- <template v-slot:append>
82
- <q-icon name="sym_o_search" />
83
- </template>
84
- </q-input>
85
- </template>
86
-
87
- <template #body-cell-view="props">
88
- <q-td :props="props">
89
- <q-btn round circle flat dense @click="onCickView(props.row.user_id)" icon="sym_o_search"></q-btn>
90
- </q-td>
91
- </template>
92
- </q-table>
93
- </l-page>
72
+ <l-page class="q-gutter-md">
73
+ <q-banner>
74
+ Use this page to view the system as another user. This is useful for testing permissions.
75
+ </q-banner>
76
+
77
+ <q-table flat :columns="columns" :rows="filtered" :rows-per-page-options="[0]" dense bordered="">
78
+ <template v-slot:top-right>
79
+ <q-input outlined dense debounce="300" v-model="filter" placeholder="Search" clearable>
80
+ <template v-slot:append>
81
+ <q-icon name="sym_o_search" />
82
+ </template>
83
+ </q-input>
84
+ </template>
85
+
86
+ <template #body-cell-view="props">
87
+ <q-td :props="props">
88
+ <q-btn round circle flat dense @click="onCickView(props.row.user_id)" icon="sym_o_search"></q-btn>
89
+ </q-td>
90
+ </template>
91
+ </q-table>
92
+ </l-page>
94
93
  </template>
@@ -7,10 +7,10 @@ const { data } = await useObject({
7
7
  </script>
8
8
 
9
9
  <template>
10
- <l-page>
11
- <FormKit type="l-form" :value="data">
12
- <FormKit type="l-input" label="Name" name="name" validation="required" />
13
- <FormKit type="l-input" label="Value" name="value" validation="required" input-type="textarea" autogrow/>
14
- </FormKit>
15
- </l-page>
10
+ <l-page>
11
+ <FormKit type="l-form" :value="data">
12
+ <FormKit type="l-input" label="Name" name="name" validation="required" />
13
+ <FormKit type="l-input" label="Value" name="value" validation="required" input-type="textarea" autogrow/>
14
+ </FormKit>
15
+ </l-page>
16
16
  </template>
@@ -1,8 +1,8 @@
1
- <template>
2
- <l-page>
3
- <FormKit type="l-form">
4
- <FormKit type="l-input" label="Name" name="name" validation="required" />
5
- <FormKit type="l-input" label="Value" name="value" validation="required" input-type="textarea" />
6
- </FormKit>
7
- </l-page>
1
+ <template>
2
+ <l-page>
3
+ <FormKit type="l-form">
4
+ <FormKit type="l-input" label="Name" name="name" validation="required" />
5
+ <FormKit type="l-input" label="Value" name="value" validation="required" input-type="textarea" />
6
+ </FormKit>
7
+ </l-page>
8
8
  </template>
@@ -4,8 +4,8 @@ const columns = model("SystemValue").columns(["name", "value"]);
4
4
  </script>
5
5
 
6
6
  <template>
7
- <l-page>
8
- <l-table row-key="systemvalue_id" :columns="columns" @request-data="$event.loadObjects('SystemValue')"
9
- :actions="['edit', 'delete']"></l-table>
10
- </l-page>
7
+ <l-page>
8
+ <l-table row-key="systemvalue_id" :columns="columns" @request-data="$event.loadObjects('SystemValue')"
9
+ :actions="['edit', 'delete']"></l-table>
10
+ </l-page>
11
11
  </template>
@@ -81,42 +81,42 @@ const onDelete = async (name) => {
81
81
  </script>
82
82
 
83
83
  <template>
84
- <l-page>
85
- <l-card>
86
- <q-splitter v-model="splitterModel" style="height:680px">
87
- <template #before>
88
- <q-table :rows="all" flat :rows-per-page-options="[0]" :columns="columns" dense separator="cell"
89
- :bordered="false">
90
- <template #body="props">
91
- <q-tr :props="props">
92
- <q-td key="_delete" auto-width>
93
- <q-btn dense flat round icon="sym_o_delete"
94
- @click="onDelete(props.row.name)"></q-btn>
95
- </q-td>
96
- <q-td key="name">
97
- {{ props.row.name }}
98
- </q-td>
99
- <q-td :key="language.value" v-for="language in app.languages" :props="props">
100
- <div class="text-pre-wrap">{{ props.row[language.value] }}</div>
101
- <q-popup-edit v-model="props.row[language.value]" v-slot="scope" buttons
102
- :title="language.name"
103
- @save="onUpdateTranslate($event, language.value, props.row.name)">
104
- <q-input v-model="scope.value" dense autofocus @keyup.enter="scope.set" />
105
- </q-popup-edit>
106
- </q-td>
107
- </q-tr>
108
- </template>
109
- </q-table>
110
-
111
- </template>
112
- <template #after>
113
- <l-form :bordered="false" @save="onSave">
114
- <l-input label="Name" required v-model.trim="obj.name" clearable></l-input>
115
- <l-input v-for="language in app.languages" :label="language.name" v-model="obj[language.value]"
116
- clearable></l-input>
117
- </l-form>
118
- </template>
119
- </q-splitter>
120
- </l-card>
121
- </l-page>
84
+ <l-page>
85
+ <l-card>
86
+ <q-splitter v-model="splitterModel" style="height:680px">
87
+ <template #before>
88
+ <q-table :rows="all" flat :rows-per-page-options="[0]" :columns="columns" dense separator="cell"
89
+ :bordered="false">
90
+ <template #body="props">
91
+ <q-tr :props="props">
92
+ <q-td key="_delete" auto-width>
93
+ <q-btn dense flat round icon="sym_o_delete"
94
+ @click="onDelete(props.row.name)"></q-btn>
95
+ </q-td>
96
+ <q-td key="name">
97
+ {{ props.row.name }}
98
+ </q-td>
99
+ <q-td :key="language.value" v-for="language in app.languages" :props="props">
100
+ <div class="text-pre-wrap">{{ props.row[language.value] }}</div>
101
+ <q-popup-edit v-model="props.row[language.value]" v-slot="scope" buttons
102
+ :title="language.name"
103
+ @save="onUpdateTranslate($event, language.value, props.row.name)">
104
+ <q-input v-model="scope.value" dense autofocus @keyup.enter="scope.set" />
105
+ </q-popup-edit>
106
+ </q-td>
107
+ </q-tr>
108
+ </template>
109
+ </q-table>
110
+
111
+ </template>
112
+ <template #after>
113
+ <l-form :bordered="false" @save="onSave">
114
+ <l-input label="Name" required v-model.trim="obj.name" clearable></l-input>
115
+ <l-input v-for="language in app.languages" :label="language.name" v-model="obj[language.value]"
116
+ clearable></l-input>
117
+ </l-form>
118
+ </template>
119
+ </q-splitter>
120
+ </l-card>
121
+ </l-page>
122
122
  </template>