Skip to content

Commit d2dd25b

Browse files
committed
finalUpdate
1 parent a25f4ea commit d2dd25b

File tree

4 files changed

+46
-14
lines changed

4 files changed

+46
-14
lines changed

client/src/components/files/operations/FileOperationBase.vue

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,7 @@
101101
v-if="props.status === FileOperationEvents.Progress && props.eventData"
102102
>
103103
<ion-text class="progress-percentage button-small default-state">
104-
{{
105-
(props.eventData as OperationProgressEventData).global.progress
106-
}}%
104+
{{ (props.eventData as OperationProgressEventData).global.progress }}%
107105
</ion-text>
108106
<ms-spinner class="progress-spinner default-state" />
109107
<ion-button
@@ -117,6 +115,21 @@
117115
</ion-button>
118116
</div>
119117

118+
<!-- done -->
119+
<ion-icon
120+
class="folder-icon"
121+
v-if="props.status === FileOperationEvents.Finished && props.operationData.type !== FileOperationDataType.Download"
122+
:icon="folder"
123+
@click="$emit('click', operationData, props.status, eventData)"
124+
@mouseover="isHovered = true"
125+
@mouseleave="isHovered = false"
126+
/>
127+
<ion-icon
128+
class="checkmark-icon"
129+
v-if="props.status === FileOperationEvents.Finished && props.operationData.type === FileOperationDataType.Download"
130+
:icon="checkmarkCircle"
131+
/>
132+
120133
<!-- cancelled -->
121134
<ion-icon
122135
class="cancel-icon"
@@ -162,7 +175,7 @@ import {
162175
OperationProgressEventData,
163176
} from '@/services/fileOperation';
164177
import { IonButton, IonIcon, IonItem, IonText } from '@ionic/vue';
165-
import { alert, chevronDown, warning } from 'ionicons/icons';
178+
import { alert, checkmarkCircle, chevronDown, folder, warning } from 'ionicons/icons';
166179
import { MsImage, MsSpinner } from 'megashark-lib';
167180
import { computed, ref } from 'vue';
168181
@@ -172,8 +185,9 @@ const props = defineProps<{
172185
eventData?: FileOperationEventData;
173186
}>();
174187
175-
const cancelling = ref(false);
188+
const isHovered = ref(false);
176189
const showFileList = ref(false);
190+
const cancelling = ref(false);
177191
178192
const info = computed(() => {
179193
switch (props.operationData.type) {

client/src/components/files/operations/FileOperationDownloadArchive.vue

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,7 @@
7070
v-if="props.status === FileOperationEvents.Progress && props.eventData"
7171
>
7272
<ion-text class="progress-percentage button-small default-state">
73-
{{
74-
(props.eventData as OperationProgressEventData).global.progress
75-
}}%
73+
{{ (props.eventData as OperationProgressEventData).global.progress }}%
7674
</ion-text>
7775
<ms-spinner class="progress-spinner default-state" />
7876
<ion-button
@@ -85,6 +83,13 @@
8583
</ion-button>
8684
</div>
8785

86+
<!-- done -->
87+
<ion-icon
88+
class="checkmark-icon"
89+
v-if="props.status === FileOperationEvents.Finished"
90+
:icon="checkmarkCircle"
91+
/>
92+
8893
<!-- cancelled -->
8994
<ion-icon
9095
class="cancel-icon"
@@ -113,7 +118,7 @@ import {
113118
OperationProgressEventData,
114119
} from '@/services/fileOperation';
115120
import { IonButton, IonIcon, IonItem, IonText } from '@ionic/vue';
116-
import { alert, warning } from 'ionicons/icons';
121+
import { alert, checkmarkCircle, warning } from 'ionicons/icons';
117122
import { MsImage, MsSpinner } from 'megashark-lib';
118123
import { ref } from 'vue';
119124

client/src/components/files/operations/FileOperationImport.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,7 @@
128128
v-if="props.status === FileOperationEvents.Progress && props.eventData"
129129
>
130130
<ion-text class="progress-percentage button-small default-state">
131-
{{
132-
(eventData as OperationProgressEventData).global.progress
133-
}}%
131+
{{ (eventData as OperationProgressEventData).global.progress }}%
134132
</ion-text>
135133
<ms-spinner class="progress-spinner default-state" />
136134
<ion-button

client/src/views/files/FileOperationMenu.vue

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,13 @@
8686
<script setup lang="ts">
8787
import { FileOperationBase, FileOperationDownloadArchive, FileOperationImport } from '@/components/files';
8888
import { navigateTo, Routes } from '@/router';
89-
import { FileOperationData, FileOperationDataType, FileOperationImportData } from '@/services/fileOperation';
89+
import {
90+
FileOperationCopyData,
91+
FileOperationData,
92+
FileOperationDataType,
93+
FileOperationImportData,
94+
FileOperationMoveData,
95+
} from '@/services/fileOperation';
9096
import { FileEventRegistrationCanceller, FileOperationEventData, FileOperationEvents } from '@/services/fileOperation/events';
9197
import { FileOperationManager, FileOperationManagerKey } from '@/services/fileOperation/manager';
9298
import useUploadMenu from '@/services/fileUploadMenu';
@@ -229,7 +235,7 @@ async function onClearClicked(): Promise<void> {
229235
}
230236
231237
async function onOperationClick(
232-
operation: FileOperationData,
238+
operation: FileOperationData | FileOperationImportData | FileOperationCopyData | FileOperationMoveData,
233239
status: FileOperationEvents,
234240
_eventData?: FileOperationEventData,
235241
): Promise<void> {
@@ -245,6 +251,15 @@ async function onOperationClick(
245251
selectFile: op.files.length === 1 ? op.files.at(0)?.name : undefined,
246252
},
247253
});
254+
} else if (operation.type === FileOperationDataType.Move || operation.type === FileOperationDataType.Copy) {
255+
const op = operation as FileOperationMoveData | FileOperationCopyData;
256+
await navigateTo(Routes.Documents, {
257+
query: {
258+
workspaceHandle: operation.workspaceHandle,
259+
documentPath: op.destination,
260+
selectFile: op.sources.length === 1 ? op.sources.at(0)?.name : undefined,
261+
},
262+
});
248263
}
249264
}
250265

0 commit comments

Comments
 (0)