@hostlink/nuxt-light 1.60.5 → 1.61.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 (169) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/components/L/CustomField/Add.d.vue.ts +17 -9
  3. package/dist/runtime/components/L/CustomField/Add.vue.d.ts +17 -9
  4. package/dist/runtime/components/L/CustomField/List.d.vue.ts +5 -1
  5. package/dist/runtime/components/L/CustomField/List.vue.d.ts +5 -1
  6. package/dist/runtime/components/L/Database/create-table-dialog.d.vue.ts +7 -6
  7. package/dist/runtime/components/L/Database/create-table-dialog.vue.d.ts +7 -6
  8. package/dist/runtime/components/L/Fieldset.d.vue.ts +20 -7
  9. package/dist/runtime/components/L/Fieldset.vue.d.ts +20 -7
  10. package/dist/runtime/components/L/Revision.d.vue.ts +19 -9
  11. package/dist/runtime/components/L/Revision.vue.d.ts +19 -9
  12. package/dist/runtime/components/L/Storage.d.vue.ts +11 -7
  13. package/dist/runtime/components/L/Storage.vue.d.ts +11 -7
  14. package/dist/runtime/components/L/System/Setting/authentication.d.vue.ts +11 -1
  15. package/dist/runtime/components/L/System/Setting/authentication.vue.d.ts +11 -1
  16. package/dist/runtime/components/L/System/Setting/developer.d.vue.ts +4 -1
  17. package/dist/runtime/components/L/System/Setting/developer.vue.d.ts +4 -1
  18. package/dist/runtime/components/L/System/Setting/forget-password.d.vue.ts +5 -1
  19. package/dist/runtime/components/L/System/Setting/forget-password.vue.d.ts +5 -1
  20. package/dist/runtime/components/L/System/Setting/general.d.vue.ts +6 -1
  21. package/dist/runtime/components/L/System/Setting/general.vue.d.ts +6 -1
  22. package/dist/runtime/components/L/System/Setting/mail.d.vue.ts +7 -1
  23. package/dist/runtime/components/L/System/Setting/mail.vue.d.ts +7 -1
  24. package/dist/runtime/components/L/System/Setting/modules.d.vue.ts +5 -1
  25. package/dist/runtime/components/L/System/Setting/modules.vue.d.ts +5 -1
  26. package/dist/runtime/components/L/System/Setting/security.d.vue.ts +20 -1
  27. package/dist/runtime/components/L/System/Setting/security.vue +5 -2
  28. package/dist/runtime/components/L/System/Setting/security.vue.d.ts +20 -1
  29. package/dist/runtime/components/L/ValidationInput.d.vue.ts +22 -6
  30. package/dist/runtime/components/L/ValidationInput.vue.d.ts +22 -6
  31. package/dist/runtime/components/MyTest.d.vue.ts +5 -7
  32. package/dist/runtime/components/MyTest.vue.d.ts +5 -7
  33. package/dist/runtime/components/l-add-btn.d.vue.ts +16 -10
  34. package/dist/runtime/components/l-add-btn.vue.d.ts +16 -10
  35. package/dist/runtime/components/l-alert.d.vue.ts +12 -6
  36. package/dist/runtime/components/l-alert.vue.d.ts +12 -6
  37. package/dist/runtime/components/l-app-main.d.vue.ts +10 -6
  38. package/dist/runtime/components/l-app-main.vue.d.ts +10 -6
  39. package/dist/runtime/components/l-banner.d.vue.ts +6 -3
  40. package/dist/runtime/components/l-banner.vue.d.ts +6 -3
  41. package/dist/runtime/components/l-bar.d.vue.ts +4 -1
  42. package/dist/runtime/components/l-bar.vue.d.ts +4 -1
  43. package/dist/runtime/components/l-btn.d.vue.ts +6 -1
  44. package/dist/runtime/components/l-btn.vue.d.ts +6 -1
  45. package/dist/runtime/components/l-card.d.vue.ts +16 -4
  46. package/dist/runtime/components/l-card.vue.d.ts +16 -4
  47. package/dist/runtime/components/l-checkbox.d.vue.ts +3 -1
  48. package/dist/runtime/components/l-checkbox.vue.d.ts +3 -1
  49. package/dist/runtime/components/l-col.d.vue.ts +6 -1
  50. package/dist/runtime/components/l-col.vue.d.ts +6 -1
  51. package/dist/runtime/components/l-customizer.d.vue.ts +68 -16
  52. package/dist/runtime/components/l-customizer.vue.d.ts +68 -16
  53. package/dist/runtime/components/l-date-picker.d.vue.ts +16 -3
  54. package/dist/runtime/components/l-date-picker.vue.d.ts +16 -3
  55. package/dist/runtime/components/l-delete-btn.d.vue.ts +8 -8
  56. package/dist/runtime/components/l-delete-btn.vue.d.ts +8 -8
  57. package/dist/runtime/components/l-dialog-database-field-add.d.vue.ts +7 -6
  58. package/dist/runtime/components/l-dialog-database-field-add.vue.d.ts +7 -6
  59. package/dist/runtime/components/l-drag-drop-container.d.vue.ts +15 -7
  60. package/dist/runtime/components/l-drag-drop-container.vue.d.ts +15 -7
  61. package/dist/runtime/components/l-drag-drop-group.d.vue.ts +9 -2
  62. package/dist/runtime/components/l-drag-drop-group.vue.d.ts +9 -2
  63. package/dist/runtime/components/l-editor.d.vue.ts +11 -1
  64. package/dist/runtime/components/l-editor.vue.d.ts +11 -1
  65. package/dist/runtime/components/l-facebook-button.d.vue.ts +5 -4
  66. package/dist/runtime/components/l-facebook-button.vue.d.ts +5 -4
  67. package/dist/runtime/components/l-fav-menu.d.vue.ts +5 -7
  68. package/dist/runtime/components/l-fav-menu.vue.d.ts +5 -7
  69. package/dist/runtime/components/l-field.d.vue.ts +11 -1
  70. package/dist/runtime/components/l-field.vue.d.ts +11 -1
  71. package/dist/runtime/components/l-file-manager-labels.d.vue.ts +4 -4
  72. package/dist/runtime/components/l-file-manager-labels.vue +12 -10
  73. package/dist/runtime/components/l-file-manager-labels.vue.d.ts +4 -4
  74. package/dist/runtime/components/l-file-manager-move.d.vue.ts +9 -9
  75. package/dist/runtime/components/l-file-manager-move.vue.d.ts +9 -9
  76. package/dist/runtime/components/l-file-manager-preview.d.vue.ts +20 -8
  77. package/dist/runtime/components/l-file-manager-preview.vue +10 -8
  78. package/dist/runtime/components/l-file-manager-preview.vue.d.ts +20 -8
  79. package/dist/runtime/components/l-file-manager.d.vue.ts +45 -13
  80. package/dist/runtime/components/l-file-manager.vue +245 -184
  81. package/dist/runtime/components/l-file-manager.vue.d.ts +45 -13
  82. package/dist/runtime/components/l-file-upload.d.vue.ts +14 -3
  83. package/dist/runtime/components/l-file-upload.vue.d.ts +14 -3
  84. package/dist/runtime/components/l-file.d.vue.ts +13 -1
  85. package/dist/runtime/components/l-file.vue.d.ts +13 -1
  86. package/dist/runtime/components/l-form-dialog.d.vue.ts +57 -14
  87. package/dist/runtime/components/l-form-dialog.vue.d.ts +57 -14
  88. package/dist/runtime/components/l-form.d.vue.ts +33 -1
  89. package/dist/runtime/components/l-form.vue.d.ts +33 -1
  90. package/dist/runtime/components/l-group-select.d.vue.ts +38 -9
  91. package/dist/runtime/components/l-group-select.vue.d.ts +38 -9
  92. package/dist/runtime/components/l-icon-picker.d.vue.ts +6 -0
  93. package/dist/runtime/components/l-icon-picker.vue.d.ts +6 -0
  94. package/dist/runtime/components/l-input-select.d.vue.ts +13 -1
  95. package/dist/runtime/components/l-input-select.vue.d.ts +13 -1
  96. package/dist/runtime/components/l-input.d.vue.ts +12 -2
  97. package/dist/runtime/components/l-input.vue.d.ts +12 -2
  98. package/dist/runtime/components/l-item.d.vue.ts +5 -1
  99. package/dist/runtime/components/l-item.vue.d.ts +5 -1
  100. package/dist/runtime/components/l-link.d.vue.ts +19 -9
  101. package/dist/runtime/components/l-link.vue.d.ts +19 -9
  102. package/dist/runtime/components/l-list.d.vue.ts +5 -1
  103. package/dist/runtime/components/l-list.vue.d.ts +5 -1
  104. package/dist/runtime/components/l-login.d.vue.ts +5 -1
  105. package/dist/runtime/components/l-login.vue.d.ts +5 -1
  106. package/dist/runtime/components/l-menu.d.vue.ts +5 -7
  107. package/dist/runtime/components/l-menu.vue.d.ts +5 -7
  108. package/dist/runtime/components/l-microsoft-button.d.vue.ts +11 -1
  109. package/dist/runtime/components/l-microsoft-button.vue.d.ts +11 -1
  110. package/dist/runtime/components/l-page.d.vue.ts +9 -4
  111. package/dist/runtime/components/l-page.vue.d.ts +9 -4
  112. package/dist/runtime/components/l-repeater.d.vue.ts +75 -18
  113. package/dist/runtime/components/l-repeater.vue.d.ts +75 -18
  114. package/dist/runtime/components/l-row.d.vue.ts +3 -1
  115. package/dist/runtime/components/l-row.vue.d.ts +3 -1
  116. package/dist/runtime/components/l-select.d.vue.ts +17 -1
  117. package/dist/runtime/components/l-select.vue.d.ts +17 -1
  118. package/dist/runtime/components/l-setup-2fa-dialog.d.vue.ts +25 -11
  119. package/dist/runtime/components/l-setup-2fa-dialog.vue.d.ts +25 -11
  120. package/dist/runtime/components/l-small-box.d.vue.ts +6 -1
  121. package/dist/runtime/components/l-small-box.vue.d.ts +6 -1
  122. package/dist/runtime/components/l-statistic.d.vue.ts +14 -8
  123. package/dist/runtime/components/l-statistic.vue.d.ts +14 -8
  124. package/dist/runtime/components/l-table.d.vue.ts +29 -7
  125. package/dist/runtime/components/l-table.vue.d.ts +29 -7
  126. package/dist/runtime/components/l-tabs.d.vue.ts +4 -1
  127. package/dist/runtime/components/l-tabs.vue.d.ts +4 -1
  128. package/dist/runtime/components/l-time-picker.d.vue.ts +8 -3
  129. package/dist/runtime/components/l-time-picker.vue.d.ts +8 -3
  130. package/dist/runtime/components/user-list.d.vue.ts +5 -7
  131. package/dist/runtime/components/user-list.vue.d.ts +5 -7
  132. package/dist/runtime/composables/useLight.d.ts +22 -22
  133. package/dist/runtime/formkit/Checkbox.d.vue.ts +5 -7
  134. package/dist/runtime/formkit/Checkbox.vue.d.ts +5 -7
  135. package/dist/runtime/formkit/DatePicker.d.vue.ts +5 -7
  136. package/dist/runtime/formkit/DatePicker.vue.d.ts +5 -7
  137. package/dist/runtime/formkit/Editor.d.vue.ts +5 -7
  138. package/dist/runtime/formkit/Editor.vue.d.ts +5 -7
  139. package/dist/runtime/formkit/File.d.vue.ts +5 -7
  140. package/dist/runtime/formkit/File.vue.d.ts +5 -7
  141. package/dist/runtime/formkit/FilePicker.d.vue.ts +5 -7
  142. package/dist/runtime/formkit/FilePicker.vue.d.ts +5 -7
  143. package/dist/runtime/formkit/FileUpload.d.vue.ts +5 -7
  144. package/dist/runtime/formkit/FileUpload.vue.d.ts +5 -7
  145. package/dist/runtime/formkit/Form.d.vue.ts +3 -1
  146. package/dist/runtime/formkit/Form.vue.d.ts +3 -1
  147. package/dist/runtime/formkit/GroupSelect.d.vue.ts +5 -7
  148. package/dist/runtime/formkit/GroupSelect.vue.d.ts +5 -7
  149. package/dist/runtime/formkit/Input.d.vue.ts +1 -1
  150. package/dist/runtime/formkit/Input.vue.d.ts +1 -1
  151. package/dist/runtime/formkit/InputSelect.d.vue.ts +1 -1
  152. package/dist/runtime/formkit/InputSelect.vue.d.ts +1 -1
  153. package/dist/runtime/formkit/InputXlsx.d.vue.ts +5 -7
  154. package/dist/runtime/formkit/InputXlsx.vue.d.ts +5 -7
  155. package/dist/runtime/formkit/OptionGroup.d.vue.ts +5 -7
  156. package/dist/runtime/formkit/OptionGroup.vue.d.ts +5 -7
  157. package/dist/runtime/formkit/Radio.d.vue.ts +5 -7
  158. package/dist/runtime/formkit/Radio.vue.d.ts +5 -7
  159. package/dist/runtime/formkit/Repeater.d.vue.ts +5 -7
  160. package/dist/runtime/formkit/Repeater.vue.d.ts +5 -7
  161. package/dist/runtime/formkit/Select.d.vue.ts +5 -7
  162. package/dist/runtime/formkit/Select.vue.d.ts +5 -7
  163. package/dist/runtime/formkit/Textarea.d.vue.ts +1 -1
  164. package/dist/runtime/formkit/Textarea.vue.d.ts +1 -1
  165. package/dist/runtime/formkit/TimePicker.d.vue.ts +5 -7
  166. package/dist/runtime/formkit/TimePicker.vue.d.ts +5 -7
  167. package/dist/runtime/pages/System/fs.vue +7 -4
  168. package/dist/runtime/pages/User/_user_id/change-password.vue +5 -1
  169. package/package.json +3 -3
@@ -1,19 +1,51 @@
1
1
  declare const _default: typeof __VLS_export;
2
2
  export default _default;
3
- declare const __VLS_export: import("vue").DefineComponent<{}, {
4
- $emit: typeof emit;
5
- $props: Partial<typeof props>;
3
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ closeable: BooleanConstructor;
5
+ height: {
6
+ type: StringConstructor;
7
+ default: string;
8
+ };
9
+ defaultAction: {
10
+ default: string;
11
+ type: StringConstructor;
12
+ };
13
+ multiple: {
14
+ default: boolean;
15
+ type: BooleanConstructor;
16
+ };
17
+ base: {
18
+ default: string;
19
+ type: StringConstructor;
20
+ };
21
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
+ input: (...args: any[]) => void;
23
+ close: (...args: any[]) => void;
24
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
25
+ closeable: BooleanConstructor;
26
+ height: {
27
+ type: StringConstructor;
28
+ default: string;
29
+ };
30
+ defaultAction: {
31
+ default: string;
32
+ type: StringConstructor;
33
+ };
34
+ multiple: {
35
+ default: boolean;
36
+ type: BooleanConstructor;
37
+ };
38
+ base: {
39
+ default: string;
40
+ type: StringConstructor;
41
+ };
42
+ }>> & Readonly<{
43
+ onInput?: ((...args: any[]) => any) | undefined;
44
+ onClose?: ((...args: any[]) => any) | undefined;
45
+ }>, {
46
+ base: string;
6
47
  height: string;
7
48
  multiple: boolean;
8
- base: string;
9
49
  closeable: boolean;
10
50
  defaultAction: string;
11
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
12
- declare const emit: (event: "close" | "input", ...args: any[]) => void;
13
- declare const props: {
14
- readonly height: string;
15
- readonly multiple: boolean;
16
- readonly base: string;
17
- readonly closeable: boolean;
18
- readonly defaultAction: string;
19
- };
51
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -441,8 +441,10 @@ watch(selectedNodePath, async () => {
441
441
  await loadItems();
442
442
  });
443
443
  const canPreview = (file) => {
444
- const mime = ["image/jpeg", "image/png", "image/gif"];
445
- return mime.includes(file.mime);
444
+ if (!file.mime) {
445
+ return false;
446
+ }
447
+ return file.mime.startsWith("image/");
446
448
  };
447
449
  const onCheckTotalSize = async (folder) => {
448
450
  const d = $q.dialog({
@@ -464,8 +466,9 @@ const onCheckTotalSize = async (folder) => {
464
466
  }
465
467
  }
466
468
  });
469
+ const size = humanStorageSize(resp.app.drive.folder.totalSize);
467
470
  d.update({
468
- message: humanStorageSize(resp.app.drive.folder.totalSize),
471
+ message: "Total size of folder '" + folder.name + "' is " + size,
469
472
  progress: false
470
473
  });
471
474
  };
@@ -488,14 +491,64 @@ const onDuplicateFile = async (file) => {
488
491
  }
489
492
  await loadItems();
490
493
  };
491
- selectedNodePath.value = drives[0].index.toString();
494
+ const onDrop = (event) => {
495
+ event.preventDefault();
496
+ event.stopPropagation();
497
+ if (selectedNodePath.value == null) {
498
+ $q.notify({
499
+ type: "warning",
500
+ message: "Please select a folder to upload files."
501
+ });
502
+ return;
503
+ }
504
+ const files2 = event.dataTransfer.files;
505
+ console.log("Dropped files:", files2);
506
+ uploadFiles.value = [];
507
+ for (let i = 0; i < files2.length; i++) {
508
+ uploadFiles.value.push(files2[i]);
509
+ }
510
+ showUploadFiles.value = true;
511
+ dragzone.value.style.border = "none";
512
+ };
513
+ const dragzone = ref(null);
514
+ const onDragover = (event) => {
515
+ event.preventDefault();
516
+ event.stopPropagation();
517
+ if (selectedNodePath.value == null) {
518
+ return;
519
+ }
520
+ dragzone.value.style.border = "2px dashed #1976d2";
521
+ };
522
+ const onDragLeave = (event) => {
523
+ event.preventDefault();
524
+ event.stopPropagation();
525
+ if (selectedNodePath.value == null) {
526
+ return;
527
+ }
528
+ dragzone.value.style.border = "none";
529
+ };
530
+ const getFileIcon = (file) => {
531
+ if (file.mime.startsWith("image/")) {
532
+ return "sym_o_image";
533
+ } else if (file.mime === "application/pdf") {
534
+ return "sym_o_picture_as_pdf";
535
+ } else if (file.mime.startsWith("video/")) {
536
+ return "sym_o_videocam";
537
+ } else if (file.mime.startsWith("audio/")) {
538
+ return "sym_o_audiotrack";
539
+ } else if (file.mime === "application/zip" || file.mime === "application/x-rar-compressed") {
540
+ return "sym_o_archive";
541
+ } else {
542
+ return "sym_o_description";
543
+ }
544
+ };
492
545
  </script>
493
546
 
494
547
  <template>
495
548
  <q-layout view="hHh lpR fFf" :class="isDark ? '' : 'bg-white'" container :style="{ 'min-height': height }">
496
549
  <q-header bordered :class="isDark ? '' : 'bg-white text-grey-8'" height-hint="64">
497
550
  <q-toolbar>
498
- <q-btn flat round @click="toggleLeftDrawer" aria-label="Menu" icon="menu" class="q-mr-sm" />
551
+ <q-btn flat round @click="toggleLeftDrawer" aria-label="Menu" icon="sym_o_menu" class="q-mr-sm" />
499
552
 
500
553
  <q-toolbar-title v-if="$q.screen.gt.xs" shrink class="row items-center no-wrap">
501
554
  <span class="q-ml-sm">{{ $t('File Manager') }}</span>
@@ -559,187 +612,195 @@ selectedNodePath.value = drives[0].index.toString();
559
612
  </q-drawer>
560
613
 
561
614
  <q-page-container :style="{ height }">
562
-
563
- <q-dialog v-model="showPreviewImgDialog" full-width full-height auto-close>
564
- <q-card>
565
- <q-card-section>
566
- <q-img :src="previewImg"></q-img>
567
- </q-card-section>
568
- </q-card>
569
- </q-dialog>
570
-
571
- <q-dialog v-model="showUploadFiles" persistent transition-show="scale" transition-hide="scale">
572
- <l-card style="width:300px">
573
- <q-card-section>
574
- <q-file ref="file" v-model="uploadFiles" multiple name="file" label="Files" :color="light.color"></q-file>
575
- </q-card-section>
576
-
577
- <q-card-actions align="right">
578
- <q-btn flat :label="$t('Cancel')" :color="light.color" v-close-popup></q-btn>
579
- <q-btn flat :label="$t('Upload')" :color="light.color" @click="onUploadFiles"></q-btn>
580
- </q-card-actions>
581
- </l-card>
582
- </q-dialog>
583
-
584
- <q-toolbar>
585
- <q-breadcrumbs>
586
- <q-breadcrumbs-el v-for="(b, index) in breadcrumbs" :label="b.label" :key="index"
587
- @click="selectedNodePath = b.path" href="javascript:void(0)"></q-breadcrumbs-el>
588
- </q-breadcrumbs>
589
- <q-space></q-space>
590
-
591
- <q-btn flat round icon="sym_o_drive_file_move" v-if="selected.length > 0">
592
- <l-file-manager-move @selected="moveToFolder($event)" :drive-index="selectedDrive" />
593
- <q-tooltip>
594
- {{ $t('Move to') }}
595
- </q-tooltip>
596
- </q-btn>
597
-
598
- <q-btn flat round icon="sym_o_delete" @click="onDeleteSelected" v-if="selected.length > 0">
599
- <q-tooltip>
600
- {{ $t('Delete') }}
601
- </q-tooltip>
602
- </q-btn>
603
- <q-btn flat round :icon="grid ? 'sym_o_view_list' : 'sym_o_grid_view'" @click="grid = !grid">
604
- <q-tooltip>
605
- {{ grid ? $t('List view') : $t('Grid view') }}
606
- </q-tooltip>
607
- </q-btn>
608
- </q-toolbar>
609
-
610
- <template v-if="grid">
611
- <q-table :title="$t('Folders')" flat grid :columns="columns" :rows="folders" hide-pagination
612
- :pagination="{ rowsPerPage: 0 }">
613
- <template v-slot:item="props">
614
- <div class="q-pa-xs col-xs-12 col-sm-6 col-md-4" @click="onDblclickRow(null, props.row, null)">
615
- <q-card flat bordered>
616
- <q-item>
617
- <q-item-section avatar>
618
- <q-icon name="sym_o_folder" size="sm"></q-icon>
619
- </q-item-section>
620
- <q-item-section>
621
- {{ props.row.name }}
622
- </q-item-section>
623
- <q-item-section avatar>
624
- <q-checkbox v-model="selected" :val="props.row" />
625
- </q-item-section>
626
- </q-item>
627
- </q-card>
628
- </div>
629
- </template>
630
- </q-table>
631
-
632
- <q-table :title="$t('Files')" flat grid :columns="columns" :rows="files" hide-pagination
633
- :pagination="{ rowsPerPage: 0 }">
634
-
635
- <template v-slot:item="props">
636
- <div class="q-pa-xs col-xs-12 col-sm-6 col-md-4" @click="onClickRow(null, props.row, null)">
637
- <q-card flat bordered>
638
- <q-item>
639
- <q-item-section avatar>
640
- <q-icon name="sym_o_description" size="sm"></q-icon>
641
- </q-item-section>
642
- <q-item-section>
643
- <q-item-label lines="1">
615
+ <div @drop="onDrop" @dragover="onDragover" ref="dragzone" @dragleave="onDragLeave" style="height: 100%;">
616
+
617
+ <q-dialog v-model="showPreviewImgDialog" full-width full-height auto-close>
618
+ <q-card>
619
+ <q-card-section>
620
+ <q-img :src="previewImg"></q-img>
621
+ </q-card-section>
622
+ </q-card>
623
+ </q-dialog>
624
+
625
+ <q-dialog v-model="showUploadFiles" persistent transition-show="scale" transition-hide="scale">
626
+ <q-card style="min-width: 400px;">
627
+ <q-toolbar>
628
+ <q-toolbar-title>{{ $t('Upload Files') }}</q-toolbar-title>
629
+ <q-space></q-space>
630
+ <q-btn flat round dense icon="sym_o_close" v-close-popup></q-btn>
631
+ </q-toolbar>
632
+ <q-card-section>
633
+ <q-file ref="file" v-model="uploadFiles" multiple name="file" label="Files" color="primary"></q-file>
634
+ </q-card-section>
635
+
636
+ <q-card-actions align="right">
637
+ <q-btn flat :label="$t('Cancel')" color="primary" v-close-popup></q-btn>
638
+ <q-btn flat :label="$t('Upload')" color="primary" @click="onUploadFiles"></q-btn>
639
+ </q-card-actions>
640
+ </q-card>
641
+ </q-dialog>
642
+
643
+ <q-toolbar>
644
+ <q-breadcrumbs>
645
+ <q-breadcrumbs-el v-for="(b, index) in breadcrumbs" :label="b.label" :key="index"
646
+ @click="selectedNodePath = b.path" href="javascript:void(0)"></q-breadcrumbs-el>
647
+ </q-breadcrumbs>
648
+ <q-space></q-space>
649
+
650
+ <q-btn flat round icon="sym_o_drive_file_move" v-if="selected.length > 0">
651
+ <l-file-manager-move @selected="moveToFolder($event)" :drive-index="selectedDrive" />
652
+ <q-tooltip>
653
+ {{ $t('Move to') }}
654
+ </q-tooltip>
655
+ </q-btn>
656
+
657
+ <q-btn flat round icon="sym_o_delete" @click="onDeleteSelected" v-if="selected.length > 0">
658
+ <q-tooltip>
659
+ {{ $t('Delete') }}
660
+ </q-tooltip>
661
+ </q-btn>
662
+ <q-btn flat round :icon="grid ? 'sym_o_view_list' : 'sym_o_grid_view'" @click="grid = !grid">
663
+ <q-tooltip>
664
+ {{ grid ? $t('List view') : $t('Grid view') }}
665
+ </q-tooltip>
666
+ </q-btn>
667
+ </q-toolbar>
668
+
669
+ <template v-if="grid">
670
+ <q-table :title="$t('Folders')" flat grid :columns="columns" :rows="folders" hide-pagination
671
+ :pagination="{ rowsPerPage: 0 }">
672
+ <template v-slot:item="props">
673
+ <div class="q-pa-xs col-xs-12 col-sm-6 col-md-4" @click="onDblclickRow(null, props.row, null)">
674
+ <q-card flat bordered>
675
+ <q-item>
676
+ <q-item-section avatar>
677
+ <q-icon name="sym_o_folder" size="sm"></q-icon>
678
+ </q-item-section>
679
+ <q-item-section>
644
680
  {{ props.row.name }}
645
- </q-item-label>
646
- </q-item-section>
647
- <q-item-section side>
648
- <q-checkbox v-model="selected" :val="props.row" />
649
- </q-item-section>
650
- </q-item>
651
-
652
- <q-img v-if="canPreview(props.row)" :src="props.row.url"></q-img>
653
-
654
- </q-card>
655
- </div>
656
- </template>
657
- </q-table>
658
- </template>
659
- <template v-else>
660
-
661
- <q-table flat :columns="columns" :rows="items" @row-dblclick="onDblclickRow" @row-click="onClickRow"
662
- :pagination="pagination" row-key="path" selection="multiple" v-model:selected="selected" dense
663
- :loading="loading" :loading-label="$t('Loading...')" :no-data-label="$t('No data available')"
664
- separator="horizontal" :rows-per-page-options="[0]" color="primary">
665
- <template #body-cell-icon="props">
666
- <q-td auto-width>
667
- <q-icon name="sym_o_folder" v-if="props.value == 'folder'" size="sm" />
668
- <q-icon name="sym_o_description" v-else size="sm" />
669
- </q-td>
670
- </template>
671
-
672
- <template #body-cell-action="props">
673
- <q-td auto-width>
674
- <q-btn flat icon="sym_o_more_vert" round dense>
675
- <q-menu>
676
- <q-list>
677
-
678
- <q-item clickable v-close-popup="true" @click="onCheckTotalSize(props.row)"
679
- v-if="props.row.type == 'folder'">
680
- <q-item-section avatar>
681
- <q-icon name="sym_o_info"></q-icon>
682
- </q-item-section>
683
- <q-item-section>{{ $t('Total size') }}</q-item-section>
684
- </q-item>
685
-
686
- <q-item clickable v-close-popup @click="onDeleteRow(props.row)" v-if="canDeleteRow(props.row)">
687
- <q-item-section avatar>
688
- <q-icon name="sym_o_delete"></q-icon>
689
- </q-item-section>
690
- <q-item-section>{{ $t('Delete') }}</q-item-section>
691
- </q-item>
692
-
693
- <q-item v-if="props.row.type == 'file'" clickable v-close-popup @click="onDownloadRow(props.row)">
694
- <q-item-section avatar>
695
- <q-icon name="sym_o_download"></q-icon>
696
- </q-item-section>
697
- <q-item-section>{{ $t('Download') }}</q-item-section>
698
- </q-item>
699
-
700
- <q-item clickable v-close-popup @click="onRenameRow(props.row)" v-if="canRenameRow(props.row)">
701
- <q-item-section avatar>
702
- <q-icon name="sym_o_edit"></q-icon>
703
- </q-item-section>
704
- <q-item-section>{{ $t('Rename') }}</q-item-section>
705
- </q-item>
706
-
707
- <q-item clickable v-close-popup @click="onDuplicateFile(props.row)" v-if="props.row.type == 'file'">
708
- <q-item-section avatar>
709
- <q-icon name="sym_o_content_copy"></q-icon>
710
- </q-item-section>
711
- <q-item-section>{{ $t('Duplicate') }}</q-item-section>
712
- </q-item>
713
-
714
- <q-item clickable v-close-popup @click="onPreview(props.row)" v-if="props.row.canPreview">
715
- <q-item-section avatar>
716
- <q-icon name="sym_o_preview"></q-icon>
717
- </q-item-section>
718
- <q-item-section>{{ $t('Preview') }}</q-item-section>
719
- </q-item>
720
-
721
- <q-item clickable v-close-popup v-if="props.row.mime == 'application/pdf'"
722
- @click="onPreviewPDF(props.row)">
723
- <q-item-section avatar>
724
- <q-icon name="sym_o_preview"></q-icon>
725
- </q-item-section>
726
- <q-item-section>{{ $t('Preview') }}</q-item-section>
727
- </q-item>
728
-
729
- <q-item clickable v-close-popup @click="onClickInfo(props.row)" class="lt-lg">
730
- <q-item-section avatar>
731
- <q-icon name="sym_o_info"></q-icon>
732
- </q-item-section>
733
- <q-item-section>{{ $t('Info') }}</q-item-section>
734
- </q-item>
681
+ </q-item-section>
682
+ <q-item-section avatar>
683
+ <q-checkbox v-model="selected" :val="props.row" />
684
+ </q-item-section>
685
+ </q-item>
686
+ </q-card>
687
+ </div>
688
+ </template>
689
+ </q-table>
690
+
691
+ <q-table :title="$t('Files')" flat grid :columns="columns" :rows="files" hide-pagination
692
+ :pagination="{ rowsPerPage: 0 }">
693
+
694
+ <template v-slot:item="props">
695
+ <div class="q-pa-xs col-xs-12 col-sm-6 col-md-4" @click="onClickRow(null, props.row, null)">
696
+ <q-card flat bordered>
697
+ <q-item>
698
+ <q-item-section avatar>
699
+ <q-icon :name="getFileIcon(props.row)" size="sm"></q-icon>
700
+ </q-item-section>
701
+ <q-item-section>
702
+ <q-item-label lines="1">
703
+ {{ props.row.name }}
704
+ </q-item-label>
705
+ </q-item-section>
706
+ <q-item-section side>
707
+ <q-checkbox v-model="selected" :val="props.row" />
708
+ </q-item-section>
709
+ </q-item>
710
+
711
+ <q-img v-if="canPreview(props.row)" :src="props.row.url"></q-img>
712
+
713
+ </q-card>
714
+ </div>
715
+ </template>
716
+ </q-table>
717
+ </template>
718
+ <template v-else>
719
+
720
+ <q-table flat :columns="columns" :rows="items" @row-dblclick="onDblclickRow" @row-click="onClickRow"
721
+ :pagination="pagination" row-key="path" selection="multiple" v-model:selected="selected" dense
722
+ :loading="loading" :loading-label="$t('Loading...')" :no-data-label="$t('No data available')"
723
+ separator="horizontal" :rows-per-page-options="[0]" color="primary">
724
+ <template #body-cell-icon="props">
725
+ <q-td auto-width>
726
+ <q-icon name="sym_o_folder" v-if="props.value == 'folder'" size="sm" />
727
+ <q-icon :name="getFileIcon(props.row)" v-else size="sm" />
728
+ </q-td>
729
+ </template>
735
730
 
736
- </q-list>
737
- </q-menu>
738
- </q-btn>
739
- </q-td>
740
- </template>
741
- </q-table>
742
- </template>
731
+ <template #body-cell-action="props">
732
+ <q-td auto-width>
733
+ <q-btn flat icon="sym_o_more_vert" round dense>
734
+ <q-menu>
735
+ <q-list>
736
+
737
+ <q-item clickable v-close-popup="true" @click="onCheckTotalSize(props.row)"
738
+ v-if="props.row.type == 'folder'">
739
+ <q-item-section avatar>
740
+ <q-icon name="sym_o_info"></q-icon>
741
+ </q-item-section>
742
+ <q-item-section>{{ $t('Total size') }}</q-item-section>
743
+ </q-item>
744
+
745
+ <q-item clickable v-close-popup @click="onDeleteRow(props.row)" v-if="canDeleteRow(props.row)">
746
+ <q-item-section avatar>
747
+ <q-icon name="sym_o_delete"></q-icon>
748
+ </q-item-section>
749
+ <q-item-section>{{ $t('Delete') }}</q-item-section>
750
+ </q-item>
751
+
752
+ <q-item v-if="props.row.type == 'file'" clickable v-close-popup @click="onDownloadRow(props.row)">
753
+ <q-item-section avatar>
754
+ <q-icon name="sym_o_download"></q-icon>
755
+ </q-item-section>
756
+ <q-item-section>{{ $t('Download') }}</q-item-section>
757
+ </q-item>
758
+
759
+ <q-item clickable v-close-popup @click="onRenameRow(props.row)" v-if="canRenameRow(props.row)">
760
+ <q-item-section avatar>
761
+ <q-icon name="sym_o_edit"></q-icon>
762
+ </q-item-section>
763
+ <q-item-section>{{ $t('Rename') }}</q-item-section>
764
+ </q-item>
765
+
766
+ <q-item clickable v-close-popup @click="onDuplicateFile(props.row)"
767
+ v-if="props.row.type == 'file'">
768
+ <q-item-section avatar>
769
+ <q-icon name="sym_o_content_copy"></q-icon>
770
+ </q-item-section>
771
+ <q-item-section>{{ $t('Duplicate') }}</q-item-section>
772
+ </q-item>
773
+
774
+ <q-item clickable v-close-popup @click="onPreview(props.row)" v-if="canPreview(props.row)">
775
+ <q-item-section avatar>
776
+ <q-icon name="sym_o_preview"></q-icon>
777
+ </q-item-section>
778
+ <q-item-section>{{ $t('Preview') }}</q-item-section>
779
+ </q-item>
780
+
781
+ <q-item clickable v-close-popup v-if="props.row.mime == 'application/pdf'"
782
+ @click="onPreviewPDF(props.row)">
783
+ <q-item-section avatar>
784
+ <q-icon name="sym_o_preview"></q-icon>
785
+ </q-item-section>
786
+ <q-item-section>{{ $t('Preview') }}</q-item-section>
787
+ </q-item>
788
+
789
+ <q-item clickable v-close-popup @click="onClickInfo(props.row)" class="lt-lg">
790
+ <q-item-section avatar>
791
+ <q-icon name="sym_o_info"></q-icon>
792
+ </q-item-section>
793
+ <q-item-section>{{ $t('Info') }}</q-item-section>
794
+ </q-item>
795
+
796
+ </q-list>
797
+ </q-menu>
798
+ </q-btn>
799
+ </q-td>
800
+ </template>
801
+ </q-table>
802
+ </template>
803
+ </div>
743
804
  </q-page-container>
744
805
  </q-layout>
745
806
  </template>
@@ -1,19 +1,51 @@
1
1
  declare const _default: typeof __VLS_export;
2
2
  export default _default;
3
- declare const __VLS_export: import("vue").DefineComponent<{}, {
4
- $emit: typeof emit;
5
- $props: Partial<typeof props>;
3
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
4
+ closeable: BooleanConstructor;
5
+ height: {
6
+ type: StringConstructor;
7
+ default: string;
8
+ };
9
+ defaultAction: {
10
+ default: string;
11
+ type: StringConstructor;
12
+ };
13
+ multiple: {
14
+ default: boolean;
15
+ type: BooleanConstructor;
16
+ };
17
+ base: {
18
+ default: string;
19
+ type: StringConstructor;
20
+ };
21
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
+ input: (...args: any[]) => void;
23
+ close: (...args: any[]) => void;
24
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
25
+ closeable: BooleanConstructor;
26
+ height: {
27
+ type: StringConstructor;
28
+ default: string;
29
+ };
30
+ defaultAction: {
31
+ default: string;
32
+ type: StringConstructor;
33
+ };
34
+ multiple: {
35
+ default: boolean;
36
+ type: BooleanConstructor;
37
+ };
38
+ base: {
39
+ default: string;
40
+ type: StringConstructor;
41
+ };
42
+ }>> & Readonly<{
43
+ onInput?: ((...args: any[]) => any) | undefined;
44
+ onClose?: ((...args: any[]) => any) | undefined;
45
+ }>, {
46
+ base: string;
6
47
  height: string;
7
48
  multiple: boolean;
8
- base: string;
9
49
  closeable: boolean;
10
50
  defaultAction: string;
11
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
12
- declare const emit: (event: "close" | "input", ...args: any[]) => void;
13
- declare const props: {
14
- readonly height: string;
15
- readonly multiple: boolean;
16
- readonly base: string;
17
- readonly closeable: boolean;
18
- readonly defaultAction: string;
19
- };
51
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -17,15 +17,26 @@ type __VLS_ModelProps = {
17
17
  modelValue?: any;
18
18
  };
19
19
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
20
- declare var __VLS_67: any, __VLS_68: any;
20
+ declare var __VLS_63: string, __VLS_64: any;
21
21
  type __VLS_Slots = {} & {
22
- [K in NonNullable<typeof __VLS_67>]?: (props: typeof __VLS_68) => any;
22
+ [K in NonNullable<typeof __VLS_63>]?: (props: typeof __VLS_64) => any;
23
23
  };
24
24
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
25
25
  "update:modelValue": (value: any) => any;
26
26
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
27
27
  "onUpdate:modelValue"?: ((value: any) => any) | undefined;
28
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ }>, {
29
+ path: string;
30
+ rounded: boolean;
31
+ square: boolean;
32
+ dense: boolean;
33
+ outlined: boolean;
34
+ filled: boolean;
35
+ stackLabel: boolean;
36
+ standout: boolean;
37
+ accept: string;
38
+ driveIndex: number;
39
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
40
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
30
41
  declare const _default: typeof __VLS_export;
31
42
  export default _default;