Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 82 additions & 1 deletion src/components/specific/files/files-manager/FilesManager.vue
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
:initialSearchText="searchText"
@update:searchText="searchText = $event"
@upload-files="uploadFiles"
@open-naming-template="openNamingTemplateManager"
/>
<div class="files-manager__content">
<transition name="slide-fade-left">
Expand Down Expand Up @@ -90,6 +91,7 @@
@manage-access="openAccessManager"
@open-tag-manager="openTagManager"
@open-versioning-manager="openVersioningManager"
@open-naming-template="openNamingTemplateManager"
@open-visa-manager="openVisaManager"
@remove-model="removeModel"
@row-drop="({ event, data }) => uploadFiles(event, data)"
Expand Down Expand Up @@ -143,6 +145,24 @@
:folder="folderToManage"
@close="closeSidePanel"
/>
<NamingTemplate
v-else-if="showNamingTemplateManager"
:cloudPk="currentSpace.id"
:projectPk="project.id"
:currentFolder="folderToManage"
@close="closeNamingTemplateManager"
@file-uploaded="$emit('upload-files', $event)"
/>
<!-- <NamingRulesList
v-else-if="showNamingTemplateManager"
:rules="rules"
:currentFolder="currentFolder"
:projectPk="projectPk"
@assignment-saved="onAssignmentSaved"
@create="panelMode = 'create'"
@edit="startEditRule"
@close="closeNamingTemplateManager"
/> -->
<VisaMain
v-else-if="showVisaManager"
:project="project"
Expand Down Expand Up @@ -230,9 +250,14 @@ import SubscriptionModal from "../../subscriptions/subscription-modal/Subscripti
import TagsMain from "../../tags/tags-main/TagsMain.vue";
import VersioningMain from "../../versioning/versioning-main/VersioningMain.vue";
import VisaMain from "../../visa/visa-main/VisaMain.vue";

import NamingTemplate from "./files-naming-template/NamingTemplate.vue";
import NamingRulesList from "./files-naming-template/NamingRulesList.vue";
import VisasDeleteModal from "./visas-delete-modal/VisasDeleteModal.vue";
import VisasTable from "../visas-table/VisasTable.vue";

import { useNamingConventionStore } from "./files-naming-template/namingConventionStore.js";

export default {
components: {
AllFilesTable,
Expand All @@ -250,6 +275,8 @@ export default {
VisaMain,
VisasTable,
VisasDeleteModal,
NamingTemplate,
NamingRulesList,
},
props: {
spaceSubInfo: {
Expand All @@ -273,6 +300,23 @@ export default {
const { currentSpace } = useSpaces();
const { openModal, closeModal } = useAppModal();

const cloudPk = props.project.cloud.id;
const projectPk = props.project.id;
const panelMode = ref("list"); // 'list' | 'create' | 'edit'

const store = useNamingConventionStore();
const { rules } = store;
store.fetchRules(cloudPk.value, projectPk.value);

function startEditRule(rule) {
editingRule.value = rule;
panelMode.value = "edit";
}

function onAssignmentSaved(rule) {
console.log("Assignment saved:", rule);
}

const { spaceProjects } = useProjects();
const { gedFilesTab, gedTargetFolder } = useSession();

Expand Down Expand Up @@ -301,7 +345,7 @@ export default {
if (selectedFileTab.value.id === "folders") {
// WARNING displayedRows is name from DS, may change
const folderFiles = filesTable.value.filesTable.displayedRows.map((row) => row.data);
documentList = folderFiles.filter(f => !isFolder(f));
documentList = folderFiles.filter((f) => !isFolder(f));
}
if (selectedFileTab.value.id === "files") {
documentList = filesTable.value.displayedListFiles;
Expand Down Expand Up @@ -498,11 +542,13 @@ export default {
const showVersioningManager = ref(false);
const showVisaManager = ref(false);
const showTagManager = ref(false);
const showNamingTemplateManager = ref(false);
const managers = {
visa: showVisaManager,
versioning: showVersioningManager,
access: showAccessManager,
tag: showTagManager,
namingTemplate: showNamingTemplateManager,
};
const setManagerVisibility = (manager, value) => {
Object.values(managers).forEach((ref) => (ref.value = false));
Expand Down Expand Up @@ -567,6 +613,33 @@ export default {
}, 100);
};

const openNamingTemplateManager = (folder) => {
folderToManage.value = folder;
setManagerVisibility("namingTemplate", true);
console.log("Opening naming template manager for folder:", folder);
console.log(folderToManage.value);
openSidePanel();
stopCurrentFilesWatcher = watch(
() => currentFiles.value,
(files) => {
const newFolder = files.find((file) => file.id === folder.id);
if (newFolder) {
folderToManage.value = newFolder;
} else {
closeNamingTemplateManager();
}
},
);
};
const closeNamingTemplateManager = () => {
stopCurrentFilesWatcher();
closeSidePanel();
setTimeout(() => {
showNamingTemplateManager.value = false;
folderToManage.value = null;
}, 100);
};

const openTagManager = (file) => {
openSidePanel();
if (file.file_name) {
Expand All @@ -575,6 +648,7 @@ export default {
showAccessManager.value = false;
showVisaManager.value = false;
showVersioningManager.value = false;
showNamingTemplateManager.value = false;
}
};
const closeTagManager = () => {
Expand Down Expand Up @@ -806,7 +880,10 @@ export default {
searchText,
selectedFileTab,
selection,
rules,
projectPk,
showAccessManager,
showNamingTemplateManager,
showDeleteModal,
showTagManager,
showVersioningManager,
Expand All @@ -816,6 +893,7 @@ export default {
closeAccessManager,
closeDeleteModal,
closeSidePanel,
closeNamingTemplateManager,
closeTagManager,
closeVersioningManager,
closeVisaManager,
Expand All @@ -829,6 +907,8 @@ export default {
goVisasView,
isFullTotal,
moveFiles,
onAssignmentSaved,
startEditRule,
onFileSelected,
openAccessManager,
openFileDeleteModal,
Expand All @@ -838,6 +918,7 @@ export default {
onTabChange,
openTagManager,
openVersioningManager,
openNamingTemplateManager,
openVisaManager,
removeModel,
removeModels,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
</template>
</BIMDataDropdownMenu>
</template>

<FolderCreationButton
data-guide="btn-new-folder"
class="files-manager__actions__btn-new-folder"
Expand All @@ -42,7 +43,7 @@
$t(
`ProjectOverview.uploadDisableMessage.${
isFullTotal(spaceSubInfo) ? 'size' : 'permission'
}`
}`,
)
"
>
Expand Down Expand Up @@ -157,19 +158,15 @@ export default {
required: true,
},
},
emits: ["open-subscription-modal", "update:searchText", "upload-files"],
emits: ["open-subscription-modal", "update:searchText", "upload-files", "open-naming-template"],
setup(props, { emit }) {
const { t } = useI18n();
const { isUserOrga, isProjectAdmin, isProjectGuest, hasAdminPerm } = useUser();
const { openModal } = useAppModal();

const shouldSubscribe = inject("shouldSubscribe");


const {
downloadFiles: download,
projectFileStructure,
} = useFiles();
const { downloadFiles: download, projectFileStructure } = useFiles();

const downloadFiles = async (files) => {
await download(props.project, files);
Expand All @@ -188,7 +185,14 @@ export default {
{
name: t("FilesManager.gedDownload"),
action: () => downloadFiles([projectFileStructure.value]),
}
},
{
name: t("FilesManager.namingConvention"),
action: () => {
emit("open-naming-template", props.currentFolder);
dropdown.value.displayed = false;
},
},
);
}

Expand Down Expand Up @@ -228,17 +232,17 @@ export default {
const isLargeLayout = computed(
() =>
(isProjectAdmin(props.project) && !isXXXL.value) ||
(!isProjectAdmin(props.project) && !isMidXXL.value)
(!isProjectAdmin(props.project) && !isMidXXL.value),
);
const isMediumLayout = computed(
() =>
(isProjectAdmin(props.project) && !isXL.value && isXXXL.value) ||
(!isProjectAdmin(props.project) && !isMD.value && isMidXXL.value)
(!isProjectAdmin(props.project) && !isMD.value && isMidXXL.value),
);

const searchText = ref(props.initialSearchText || '');
const searchText = ref(props.initialSearchText || "");
watch(searchText, (newValue) => {
emit('update:searchText', newValue);
emit("update:searchText", newValue);
});

return {
Expand Down
Loading
Loading