diff --git a/ui/src/components/charts/ModalCard.vue b/ui/src/components/charts/ModalCard.vue index e785a4d62c953634e7d4784c8fee380d3153f2ba..4122b2ec317367301326bf0cbf91ca9723c9dbf3 100644 --- a/ui/src/components/charts/ModalCard.vue +++ b/ui/src/components/charts/ModalCard.vue @@ -36,13 +36,13 @@ export default { watch( () => props.open, (newVal) => { - this.innerOpen.value = newVal; + innerOpen.value = newVal; } ); watch( - () => this.innerOpen, + () => innerOpen, (newVal) => { - this.closeCb(newVal); + props.closeCb(newVal); } ); return {}; diff --git a/ui/src/components/references/ReferencesLink.vue b/ui/src/components/references/ReferencesLink.vue index e9602b9d78600cd2a13496e1826b38ea08993d61..08ce907fdb7debe1992da4904b4bc95403ea5bdf 100644 --- a/ui/src/components/references/ReferencesLink.vue +++ b/ui/src/components/references/ReferencesLink.vue @@ -5,10 +5,11 @@ {{ columnId ? columnId : value }} <LoadingAnimate v-if="isLoading" :size="'is-small'"></LoadingAnimate> </a> + <p v-else-if="patternCheckerDate">{{ datePatternLang(value, patternCheckerDate) }}</p> <p v-else class="column">{{ value }}</p> <!-- modal de visualisation d'une donnée de référence --> - <b-modal v-model="isCardModalActive" custom-class="referenceDetails" > + <b-modal v-model="isCardModalActive" custom-class="referenceDetails"> <div class="card"> <header class="card-header is-align-content-center"> <p class="card-header-title" field="name" style="font-size: 1.5rem; color: #007f7f"> @@ -75,12 +76,15 @@ import useBoolean from "@/composable/components/boolean"; import useObject from "@/composable/components/object"; import app from "@/main"; import services from "@/composable/services"; +import {datePatternLang} from "../../composable/application/DatePattern"; export default { name: "ReferencesLink", + methods: {datePatternLang}, emits: ["changedRefValues"], components: { LoadingAnimate, ReferencesManyLink, ReferencesDynamicLink }, props: { + patternCheckerDate : String, application: Object, referenceType: String, value: String, diff --git a/ui/src/composable/application/DatePattern.js b/ui/src/composable/application/DatePattern.js new file mode 100644 index 0000000000000000000000000000000000000000..7d25d766af50de347b841821bef17b7749e6f2ad --- /dev/null +++ b/ui/src/composable/application/DatePattern.js @@ -0,0 +1,52 @@ +export function datePatternLang(date, pattern) { + let regex = /[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([Zz]|([/+-])([01]\d|2[0-3]):?([0-5]\d)?)?/i; + let dateExec = new Date(regex.exec(date)[0]); + if (pattern != null) { + let year = dateExec.toLocaleString("default", {year: "numeric"}); + let hour = dateExec.toLocaleString("default", {hour: "2-digit"}); + let minute = dateExec.toLocaleString("default", {minute: "2-digit"}); + let second = dateExec.toLocaleString("default", {second: "2-digit"}); + pattern = pattern.replace("yyyy", year); + pattern = pattern.replace("HH", hour); + pattern = pattern.replace("mm", minute); + pattern = pattern.replace("ss", second); + if (pattern.includes("MM") || pattern.includes("dd")) { + let month = dateExec.toLocaleString("default", {month: "2-digit"}); + pattern = pattern.replace("MM", month); + } else { + let month = dateExec.toLocaleString("default", {month: "numeric"}); + pattern = pattern.replace("M", month); + } + if (pattern.includes("dd")) { + let day = dateExec.toLocaleString("default", {day: "2-digit"}); + pattern = pattern.replace("dd", day); + } else { + let day = dateExec.toLocaleString("default", {day: "numeric"}); + pattern = pattern.replace("d", day); + } + return pattern; + } else { + return new Date(regex.exec(date)[0]).toLocaleDateString(localStorage.getItem("lang")); + } +} + +export function patternCheckerDateRef(application, columnName, refId) { + if (application.configuration.references && Object.keys(application.configuration.references[refId].validations).length !==0) { + let toto = Object.keys(application.configuration.references[refId].validations); + for (const item of toto) { + let columns = application.configuration.references[refId].validations[item]?.columns; + for( const column in columns) { + if(columns[column] === columnName) { + if (application.configuration.references[refId].validations[item].checker + && application.configuration.references[refId].validations[item].checker.params.pattern) { + return application.configuration.references[refId].validations[item].checker.params.pattern; + } + } + } + } + } else if (application.configuration.references && application.configuration.references[refId].columns[columnName].checker + && application.configuration.references && application.configuration.references[refId].columns[columnName].checker.params.pattern) { + return application.configuration.references[refId].columns[columnName].checker.params.pattern; + } + +} \ No newline at end of file diff --git a/ui/src/services/rest/ApplicationService.js b/ui/src/services/rest/ApplicationService.js index f0ccfc5e844778d8680b13e21ceca6877efa5bf9..dcdb82b395523939c33c9ea13b4905a267fc0f8d 100644 --- a/ui/src/services/rest/ApplicationService.js +++ b/ui/src/services/rest/ApplicationService.js @@ -30,7 +30,7 @@ export class ApplicationService extends Fetcher { }); } async changeConfiguration(applicationConfig, comment) { - return this.post("/applications/" + applicationConfig.name + "/configuration", { + return this.post("applications/" + applicationConfig.name + "/configuration", { file: applicationConfig.file, comment: comment, }); diff --git a/ui/src/views/application/ApplicationsView.vue b/ui/src/views/application/ApplicationsView.vue index d1f86bd52d7a8746738d94ac206537299d58bc06..775f5db8182bb9260bf99e2794d049e9f59a5492 100644 --- a/ui/src/views/application/ApplicationsView.vue +++ b/ui/src/views/application/ApplicationsView.vue @@ -137,6 +137,7 @@ import useText from "@/composable/components/text"; import { computed, onMounted, inject } from "vue"; import { useRedirections } from "@/composable/applications/useFunction"; import ApplicationCard from "@/components/application/ApplicationCard.vue"; +import useNumber from "@/composable/components/number"; export default { name: "ApplicationsView", @@ -155,8 +156,8 @@ export default { // show modal and cards const selectedName = useText().refText; // pagination variable - const current = 1; - const perPage = 8; + const { refNumber : current} = useNumber(1); + const perPage = 6; // filtre variable const filterName = useText().refText; const selected = useBoolean().refBoolean; diff --git a/ui/src/views/datatype/DataTypeTableView.vue b/ui/src/views/datatype/DataTypeTableView.vue index c71f994959d53f8c4ce200b7575ab17605d4030a..872eca1658eb38c3e8ccc61e0992a01b3d2b7e22 100644 --- a/ui/src/views/datatype/DataTypeTableView.vue +++ b/ui/src/views/datatype/DataTypeTableView.vue @@ -506,24 +506,23 @@ > <span v-if=" - (row[component.variable][component.component] || - row[component.variable][component.computedComponent]) && + !testMultiplicity(component.variable, component.component) && + row[component.variable][component.component] && component.checker && - component.checker.checkerDescription.pattern && - !testMultiplicity(component.variable, component.component) + component.checker.checkerDescription.params.pattern " > - {{ /.{25}(.*$)/.exec(row[component.variable][component.component])[1] }} + {{ datePatternLang(row[component.variable][component.component], component.format) }} </span> <span v-else-if=" row[component.variable][component.computedComponent] && component.checker && - component.checker.checkerDescription.pattern && + component.checker.checkerDescription.params.pattern && !testMultiplicity(component.variable, component.component) " > - {{ /.{25}(.*$)/.exec(row[component.variable][component.computedComponent])[1] }} + {{ datePatternLang(row[component.variable][component.component], component.format) }} </span> <span v-else> <ReferencesManyLink @@ -631,6 +630,7 @@ import services from "@/composable/services"; import { i18n } from "@/main"; import app from "@/main"; import { buildTagsForVariables } from "@/composable/application/tags"; +import { datePatternLang } from "@/composable/application/DatePattern"; const authorizationDescriptionsModel = new Authorization(); export default { @@ -1368,13 +1368,13 @@ export default { const key = variable + "_" + component; const value = row[variable][component]; let lang = "__display_" + localStorage.getItem("lang"); - if (referenceLineCheckers[key]) { + if (referenceLineCheckers.value[key]) { if ( - referenceLineCheckers[key].referenceValues && - referenceLineCheckers[key].referenceValues.refValues + referenceLineCheckers.value[key].referenceValues && + referenceLineCheckers.value[key].referenceValues.refValues ) { const display = - referenceLineCheckers[key].referenceValues.refValues.evaluationContext.datum[lang]; + referenceLineCheckers.value[key].referenceValues.refValues.evaluationContext.datum[lang]; return display ? display : value; } } @@ -1489,6 +1489,7 @@ export default { addSearch, reInit, updateDate, + datePatternLang, changePage, getReferenceValues, addVariableComponentToSortedList, diff --git a/ui/src/views/references/ReferenceTableView.vue b/ui/src/views/references/ReferenceTableView.vue index de15cdfd46be10f30d319c43bcb8bd70a0c107c8..c5955794c7a05e68cb53cbc9f41cf5ea1c47ca29 100644 --- a/ui/src/views/references/ReferenceTableView.vue +++ b/ui/src/views/references/ReferenceTableView.vue @@ -87,6 +87,7 @@ :loaded-references-by-key="{}" :reference-type="addRefLinkedTo(column.id, column.linkedTo)" :value="props.row[column.id]" + :pattern-checker-date="patternCheckerDateRef(application, column.title, refId)" ></ReferencesLink> <div v-else class="columns"> <a @@ -148,10 +149,11 @@ import { checkMessageErrors } from "@/composable/application/errors"; import { ApplicationResult } from "@/model/ApplicationResult"; import FiltersCollapse from "@/components/common/FiltersCollapse.vue"; import { init } from "@cypress/webpack-dev-server/dist/aut-runner"; +import { patternCheckerDateRef} from "@/composable/application/DatePattern"; export default { name: "ReferenceTableView", - methods: { init }, + methods: {patternCheckerDateRef, init }, props: { applicationName: String, refId: String, @@ -260,7 +262,6 @@ export default { } for (let i = 0; i < application.referenceSynthesis.length; i++) { if (application.referenceSynthesis[i].ReferenceType === props.refId) { - console.log(application.referenceSynthesis[i]); changeTotalRows(application.referenceSynthesis[i].lineCount); } }