diff --git a/src/services/TagService.js b/src/services/TagService.js index 1126c92e94ef3de618abb8ecac3482a6f8220fc7..deaaa608b0bbf52982c9e171ff16fee4d6b9c39b 100644 --- a/src/services/TagService.js +++ b/src/services/TagService.js @@ -30,22 +30,26 @@ export class TagService extends Fetcher { if (data) { return data.tags.some((tag) => { if ( - data.tags.length === 1 && - (tag.tagDefinition === Tag.ORDER_TAG || tag.type === Tag.ORDER_TAG) && - tag.localName !== Tag.HIDDEN_TAG + tag.selected !== false || + tag.localName !== Tag.HIDDEN_TAG || + tag.type !== Tag.HIDDEN_TAG ) { - return true; - } else if ( - data.tags.length === 1 && - (tag.tagDefinition === Tag.NO_TAG || tag.type === Tag.NO_TAG) && - tag.localName !== Tag.HIDDEN_TAG - ) { - return true; - } else { - return selectedTags.some( - (selectedTag) => - selectedTag.tagName === tag.tagName && tag.localName !== Tag.HIDDEN_TAG - ); + if ( + data.tags.length === 1 && + (tag.tagDefinition === Tag.ORDER_TAG || tag.type === Tag.ORDER_TAG) + ) { + return true; + } else if ( + data.tags.length === 1 && + (tag.tagDefinition === Tag.NO_TAG || tag.type === Tag.NO_TAG) + ) { + return true; + } else { + return selectedTags.some( + (selectedTag) => + selectedTag.tagName === tag.tagName + ); + } } }); } @@ -62,7 +66,7 @@ export class TagService extends Fetcher { } return -1; }); - if (!tags?.value?.length) { + if (!tags || !Object.keys(tags || {}).length) { return datas; } return this.orderDatasTobeShownWithTag(tags, datas); @@ -107,17 +111,4 @@ export class TagService extends Fetcher { document.getElementById("tagsCollapse").className = "column"; } } - - filterTags(columnsComponentsToBeShown) { - let paramsSelect = []; - for (let i = 0; i < columnsComponentsToBeShown.length; i++) { - if (columnsComponentsToBeShown[i].variable && columnsComponentsToBeShown[i].component) { - paramsSelect.push({ - variable: columnsComponentsToBeShown[i].variable, - component: columnsComponentsToBeShown[i].component, - }); - } - } - return paramsSelect; - } } diff --git a/src/views/data/DataTableView.vue b/src/views/data/DataTableView.vue index 2eae84f2090325c61afa16476ac0a096787a76f9..cfe0c62420c5116f1f19a7e0fda1778c0425f974 100644 --- a/src/views/data/DataTableView.vue +++ b/src/views/data/DataTableView.vue @@ -11,6 +11,7 @@ </h1> <div id="tagsCollapse" class="column"> <TagsCollapse + v-if="hasTags" :tags="tags" @change:tag="changeTagSelected($event, 'changeTagSelected')" @change:allTags="changeAllValueTags($event)" @@ -201,6 +202,7 @@ import { lineCountSynthesis } from "@/composable/application/synthesis"; import { dataLoader } from "@/composable/data/dataLoader"; import { patternCheckerDateRef } from "@/composable/application/DatePattern"; import DatasPatternLink from "@/components/datas/DatasPatternLink.vue"; +import { Tag } from "@/model/application/Tag"; export default { name: "DataTableView", @@ -243,7 +245,6 @@ export default { const { shallowRefArray: referenceTypeForReferencingColumns } = useArray(); const { reactiveObject: referencesDynamic, doChangeObject: changeReferencesDynamic } = useObject(); - const hasTags = useBoolean(false).refBoolean; const tableHeight = computed(() => { if (rows.value.length < params.limit) { return 66 * (rows.value.length + 1) + "px"; @@ -268,9 +269,16 @@ export default { } }); + const hasTags = useBoolean(false).refBoolean; const changeTags = function (tagsToChange) { _changeTags({ ...tagsToChange }); - hasTags.value = tags && Object.keys(tags || {}).length; + hasTags.value = + tags.value && + Object.keys(tags.value || {}).length !== 0 && + !( + Object.keys(tags.value || {}).length === 1 && + Object.keys(tags.value).includes(Tag.NO_TAG_NAME) + ); }; const totalRows = ref(0); @@ -619,6 +627,7 @@ export default { filters, MANY, ONE, + hasTags, getRefColumnId, lineCountSynthesis, getColumnNameView, diff --git a/src/views/data/DatasManagementView.vue b/src/views/data/DatasManagementView.vue index 83b9037626ad2baeec4b327a173675f8aaa119ea..e71611387a62575ecb80194ec03cad36f65f0fcf 100644 --- a/src/views/data/DatasManagementView.vue +++ b/src/views/data/DatasManagementView.vue @@ -103,6 +103,7 @@ import { buildTags } from "@/composable/application/tags"; import { lineCountSynthesis } from "@/composable/application/synthesis"; import LoadingAnimate from "@/components/common/LoadingAnimate.vue"; import ShowErrors from "@/components/application/ShowErrors.vue"; +import { Tag } from "@/model/application/Tag"; export default { name: "DatasManagementView", @@ -143,7 +144,10 @@ export default { const hasTags = useBoolean(false).refBoolean; const changeTags = function (tagsToChange) { _changeTags({ ...tagsToChange }); - hasTags.value = tags && Object.keys(tags || {}).length; + hasTags.value = + tags && + Object.keys(tags || {}).length !== 0 && + !(Object.keys(tags || {}).length === 1 && Object.keys(tags).includes(Tag.NO_TAG_NAME)); changeDatasToBeShown(services.tagService.toBeShown(tags, datas.value)); };