diff --git a/app/src/lang/en-US/index.json b/app/src/lang/en-US/index.json
index fad743f221..61f3a55d90 100644
--- a/app/src/lang/en-US/index.json
+++ b/app/src/lang/en-US/index.json
@@ -442,6 +442,8 @@
"zoom": "Zoom",
"download": "Download",
"open": "Open",
+ "or": "or",
+ "replace": "Replace",
"foreground_color": "Foreground Color",
"background_color": "Background Color",
@@ -786,6 +788,7 @@
"create_folder": "Create Folder",
"folder_name": "Folder Name...",
"add_file": "Add File",
+ "replace_file": "Replace File",
"no_results": "No Results",
"no_results_copy": "Adjust or clear search filters to see results.",
diff --git a/app/src/modules/files/components/file-info-sidebar-detail.vue b/app/src/modules/files/components/file-info-sidebar-detail.vue
index 18081a21b1..e58b13f934 100644
--- a/app/src/modules/files/components/file-info-sidebar-detail.vue
+++ b/app/src/modules/files/components/file-info-sidebar-detail.vue
@@ -64,6 +64,15 @@
+
+
{{ $t('file') }}
+
+
+ {{ $t('or') }}
+
+
+
+
{{ $t('folder') }}
diff --git a/app/src/modules/files/components/replace-file.vue b/app/src/modules/files/components/replace-file.vue
new file mode 100644
index 0000000000..bdbf5be2f6
--- /dev/null
+++ b/app/src/modules/files/components/replace-file.vue
@@ -0,0 +1,81 @@
+
+
+
+ {{ $t('replace_file') }}
+
+
+
+
+ {{ $t('done') }}
+
+
+
+
+
+
+
+
diff --git a/app/src/modules/files/routes/item.vue b/app/src/modules/files/routes/item.vue
index 61288d4a08..94de8d95ed 100644
--- a/app/src/modules/files/routes/item.vue
+++ b/app/src/modules/files/routes/item.vue
@@ -156,7 +156,11 @@
-
+
+
+
@@ -194,6 +200,7 @@ import api from '@/api';
import getRootPath from '@/utils/get-root-path';
import FilesNotFound from './not-found.vue';
import useShortcut from '@/composables/use-shortcut';
+import ReplaceFile from '../components/replace-file.vue';
type Values = {
[field: string]: any;
@@ -224,6 +231,7 @@ export default defineComponent({
FileInfoSidebarDetail,
FolderPicker,
FilesNotFound,
+ ReplaceFile,
},
props: {
primaryKey: {
@@ -236,6 +244,7 @@ export default defineComponent({
const { primaryKey } = toRefs(props);
const { breadcrumb } = useBreadcrumb();
const fieldsStore = useFieldsStore();
+ const replaceFileDialogActive = ref(false);
const revisionsDrawerDetail = ref(null);
@@ -335,6 +344,7 @@ export default defineComponent({
fileSrc,
form,
to,
+ replaceFileDialogActive,
};
function changeCacheBuster() {