diff --git a/ui/src/components/charts/DetailModalCard.vue b/ui/src/components/charts/DetailModalCard.vue index 535a2cd87b68a7b7f55cdee6df64c723b96cf2d9..be2f248b2de1b5e53288c838bd41e15c08f5d4db 100644 --- a/ui/src/components/charts/DetailModalCard.vue +++ b/ui/src/components/charts/DetailModalCard.vue @@ -21,11 +21,11 @@ v-show="key !== 'minmax' && key !== 'ranges'" style="margin: 0; cursor: auto" > - <p class="card-header-title column is-1" style="margin-left: 10px" v-if="key!==''"> + <p class="card-header-title column is-1" style="margin-left: 10px" v-if="key !== ''"> {{ key }} </p> <p class="card-header-title column is-1" style="margin-left: 10px" v-else> - {{ $t("validation.modal-synthesis-variable-default") }} + {{ $t("validation.modal-synthesis-variable-default") }} </p> <availiblity-chart class="column is-10" @@ -41,7 +41,8 @@ v-if="Object.values(option).length > 4" style="text-align: center" > - <b-icon class="btnCard" :icon="props.open ? 'chevron-down' : 'chevron-up'"> </b-icon> + <b-icon class="btnCard" :icon="props.open ? 'chevron-down' : 'chevron-up'"> + </b-icon> </a> </div> </template> @@ -88,7 +89,7 @@ export default class DetailModalCard extends Vue { @Prop() applicationName; collapse = true; mounted() { - for(let i = 1; i<=document.getElementsByClassName("btnCard").length-1; i++) { + for (let i = 1; i <= document.getElementsByClassName("btnCard").length - 1; i++) { document.getElementsByClassName("btnCard").item(i).click(); } } diff --git a/ui/src/components/common/AuthorizationTable.vue b/ui/src/components/common/AuthorizationTable.vue index 362f4f31a74f28065ef72402c5372cf10189864f..5e11ad108f6c4af7473594874abcc7afb8b2f648 100644 --- a/ui/src/components/common/AuthorizationTable.vue +++ b/ui/src/components/common/AuthorizationTable.vue @@ -16,18 +16,18 @@ <a v-if=" column.display && - indexColumn == 'label' && + indexColumn === 'label' && (!scope.isLeaf || remainingOption.length) " :class="!scope.isLeaf || remainingOption.length ? 'leaf' : 'folder'" :field="indexColumn" - @click="indexColumn == 'label' && toggle(index)" + @click="indexColumn === 'label' && toggle(index)" >{{ localName(scope) }}</a > <p v-else-if=" column.display && - indexColumn == 'label' && + indexColumn === 'label' && !(!scope.isLeaf || remainingOption.length) " :class="!scope.isLeaf || remainingOption.length ? 'leaf' : 'folder'" @@ -36,7 +36,11 @@ {{ localName(scope) }} </p> - <b-field v-else-if="column.display && indexColumn != 'extraction'" :field="indexColumn"> + <b-field + v-else-if="column.display && indexColumn !== 'extraction'" + :field="indexColumn" + class="column" + > <b-icon :icon=" (statesIcons && statesIcons[indexColumn] && statesIcons[indexColumn][index]) || @@ -48,91 +52,72 @@ /> </b-field> <b-field - v-else-if="column.display && indexColumn == 'extraction'" + v-else-if="column.display && indexColumn === 'extraction'" :field="indexColumn" - class="row" + class="columns " style="margin-top: 6px" > - <div class="columns"> + <div class="column"> <b-icon :icon=" (statesIcons && statesIcons[indexColumn] && statesIcons[indexColumn][index]) || 'square' " - class="column" size="is-medium" type="is-primary" @click.native="selectCheckbox($event, index, indexColumn, scope)" /> - <b-taginput - v-if=" - states && - states[indexColumn] && - states[indexColumn][index] == 1 && - localAuthorizationsTree && - localAuthorizationsTree[indexColumn] && - localAuthorizationsTree[indexColumn][index] - " - v-model="localAuthorizationsTree[indexColumn][index].dataGroups" - :data="dataGroups" - :open-on-focus="true" - :placeholder="$t('dataTypeAuthorizations.data-groups-placeholder')" - :value="dataGroups.id" - autocomplete - class="column" - field="label" - type="is-primary" - @input.capture="selectCheckbox($event, index, indexColumn, scope)" - > - </b-taginput> - <div - v-if=" - states && - states[indexColumn] && - states[indexColumn][index] == 1 && - localAuthorizationsTree && - localAuthorizationsTree[indexColumn] && - localAuthorizationsTree[indexColumn][index] - " - class="column" - > - <b-datepicker - v-model="localAuthorizationsTree[indexColumn][index].from" - :date-parser="parseDate" - :placeholder=" - $t('dataTypesRepository.placeholder-datepicker') + - ' dd-MM-YYYY, dd-MM-YYYY hh, dd-MM-YYYY hh:mm, dd-MM-YYYY hh:mm:ss' - " - editable - icon="calendar" - @remove.capture="() => selectCheckbox($event, index, indexColumn, scope)" - @input.capture="selectCheckbox($event, index, indexColumn, scope, 'from')" + <div class="columns" + v-if=" + states && + states[indexColumn] && + states[indexColumn][index] === 1 && + localAuthorizationsTree && + localAuthorizationsTree[indexColumn] && + localAuthorizationsTree[indexColumn][index] + "> + <b-taginput + v-model="localAuthorizationsTree[indexColumn][index].dataGroups" + :data="dataGroups" + :open-on-focus="true" + :placeholder="$t('dataTypeAuthorizations.data-groups-placeholder')" + :value="dataGroups.id" + autocomplete + class="column" + field="label" + type="is-primary" + @input="selectCheckbox($event, index, indexColumn, scope)" > - </b-datepicker> - </div> - <div - v-if=" - states && - states[indexColumn] && - states[indexColumn][index] == 1 && - localAuthorizationsTree && - localAuthorizationsTree[indexColumn] && - localAuthorizationsTree[indexColumn][index] - " - class="column" - > - <b-datepicker - v-model="localAuthorizationsTree[indexColumn][index].to" - :date-parser="parseDate" - :placeholder=" - $t('dataTypesRepository.placeholder-datepicker') + - ' dd-MM-YYYY, dd-MM-YYYY hh, dd-MM-YYYY hh:mm, dd-MM-YYYY hh:mm:ss' - " - editable - icon="calendar" - @input="selectCheckbox($event, index, indexColumn, scope, 'to')" - > - </b-datepicker> + </b-taginput> + <div class="column"> + <b-datepicker + v-model="localAuthorizationsTree[indexColumn][index].from" + :date-parser="parseDate" + :placeholder=" + $t('dataTypesRepository.placeholder-datepicker') + + ' dd-MM-YYYY, dd-MM-YYYY hh, dd-MM-YYYY hh:mm, dd-MM-YYYY hh:mm:ss' + " + editable + icon="calendar" + @remove.capture="() => selectCheckbox($event, index, indexColumn, scope)" + @input="selectCheckbox($event, index, indexColumn, scope, 'from')" + > + </b-datepicker> + </div> + <div class="column" > + <b-datepicker + v-model="localAuthorizationsTree[indexColumn][index].to" + :date-parser="parseDate" + :placeholder=" + $t('dataTypesRepository.placeholder-datepicker') + + ' dd-MM-YYYY, dd-MM-YYYY hh, dd-MM-YYYY hh:mm, dd-MM-YYYY hh:mm:ss' + " + editable + icon="calendar" + @input="selectCheckbox($event, index, indexColumn, scope, 'to')" + > + </b-datepicker> + </div> </div> </div> </b-field> @@ -204,7 +189,7 @@ export default class AuthorizationTable extends Vue { if (scope) { var requiredAuthorizationForIndex = requiredAuthorization[scope] || ""; requiredAuthorizationForIndex = - requiredAuthorizationForIndex + (requiredAuthorizationForIndex == "" ? "" : ".") + index; + requiredAuthorizationForIndex + (requiredAuthorizationForIndex === "" ? "" : ".") + index; requiredAuthorization[this.authorizationScopes[0].id] = requiredAuthorizationForIndex; } requiredAuthorizationByIndex[index] = requiredAuthorization; @@ -222,7 +207,7 @@ export default class AuthorizationTable extends Vue { this.initStates(); this.initOpen(); this.$children - .filter((child) => child.name == "AuthorizationTable") + .filter((child) => child.name === "AuthorizationTable") .forEach((child) => child.updateAuthorizationTree()); } @@ -269,7 +254,7 @@ export default class AuthorizationTable extends Vue { var states = {}; var statesIcons = {}; for (var index in this.columnsVisible) { - if ("label" == index) { + if ("label" === index) { continue; } states[index] = {}; @@ -315,8 +300,8 @@ export default class AuthorizationTable extends Vue { statesIcons[type][reference] = this.STATES[value]; this.states = states; this.statesIcons = statesIcons; - if (value == -1) return; - if (this.remainingOption.length == 0 && this.authReference[reference].isLeaf) { + if (value === -1) return; + if (this.remainingOption.length === 0 && this.authReference[reference].isLeaf) { return; } if (updateChildren) { @@ -332,7 +317,7 @@ export default class AuthorizationTable extends Vue { } getChildAuthorizationTable() { - return this.$children.filter((child) => child.name == "AuthorizationTable"); + return this.$children.filter((child) => child.name === "AuthorizationTable"); } parseDate(date) { @@ -420,7 +405,7 @@ export default class AuthorizationTable extends Vue { emitAddAuthorization(event, index) { let localAuthorizationsTree = this.localAuthorizationsTree; var isEqual = event.isEqual; - if (isEqual.state == 1) { + if (isEqual.state === 1) { localAuthorizationsTree = localAuthorizationsTree || {}; localAuthorizationsTree[event.indexColumn] = localAuthorizationsTree[event.indexColumn] || {}; localAuthorizationsTree[event.indexColumn][index] = @@ -428,7 +413,7 @@ export default class AuthorizationTable extends Vue { isEqual.auth.requiredAuthorization = this.requiredAuthorizationByindex[index]; localAuthorizationsTree[event.indexColumn][index] = isEqual.auth; isEqual = this.buildState(event.indexColumn, index); - } else if (isEqual.state == -1) { + } else if (isEqual.state === -1) { localAuthorizationsTree = localAuthorizationsTree || {}; localAuthorizationsTree[event.indexColumn] = localAuthorizationsTree[event.indexColumn] || {}; localAuthorizationsTree[event.indexColumn][index] = @@ -500,7 +485,7 @@ export default class AuthorizationTable extends Vue { //cliock sur checkbox this.states[indexColumn] || this.initStates(); var states, state; - if (actualState == 1) { + if (actualState === 1) { //je supprime l'authorization et eventuellement son contenant delete localAuthorizationsTree?.[indexColumn]?.[index]; if ( @@ -530,21 +515,19 @@ export default class AuthorizationTable extends Vue { state = event.length ? 1 : 0; eventType = event.length ? "add-authorization" : "delete-authorization"; localAuthorizationsTree[indexColumn][index].dataGroups = event; - // si indeterminate alors je ne supprime les enfants que } else if (event instanceof Date) { state = event ? 1 : 0; eventType = event ? "add-authorization" : "delete-authorization"; localAuthorizationsTree[indexColumn][index][fromOrTo] = event; } - if (this.EXTRACTION == indexColumn) { + if (this.EXTRACTION === indexColumn) { if (event instanceof Array) { //c'est un datagroup state = event.length ? 1 : 0; eventType = event.length ? "add-authorization" : "delete-authorization"; localAuthorizationsTree[indexColumn][index].dataGroups = event; - - // si indeterminate alors je ne supprime les enfants que + // si indeterminate alors je ne supprime que les enfants } else if (event instanceof Date) { //c'est une date state = event ? 1 : 0; @@ -595,7 +578,7 @@ export default class AuthorizationTable extends Vue { var localAuthorizationsTree = { ...this.localAuthorizationsTree }; if ( !localAuthorizationsTree[indexColumn] || - Object.keys(localAuthorizationsTree[indexColumn]).length == 0 + Object.keys(localAuthorizationsTree[indexColumn]).length === 0 ) { isEqual.equal = true; isEqual.state = 0; @@ -609,9 +592,9 @@ export default class AuthorizationTable extends Vue { if (isEqual.auth) { isEqual.equal = auth && - JSON.stringify(isEqual.auth.dataGroups) == JSON.stringify(auth.dataGroups) && - isEqual.auth.from?.toString() == auth.from?.toString() && - isEqual.auth.to?.toString() == auth.to?.toString(); + JSON.stringify(isEqual.auth.dataGroups) === JSON.stringify(auth.dataGroups) && + isEqual.auth.from?.toString() === auth.from?.toString() && + isEqual.auth.to?.toString() === auth.to?.toString(); } } } @@ -661,7 +644,7 @@ p { ::marker { color: transparent; } -ul.rows { - margin-bottom: 12px; +.column{ + padding: 6px; } </style> diff --git a/ui/src/components/common/CollapsibleTree.vue b/ui/src/components/common/CollapsibleTree.vue index 06a8dc97e87374eb20a2d1666c6915654373a486..23ad4c86c5d30608ed337ca80afd3bb2acf245e8 100644 --- a/ui/src/components/common/CollapsibleTree.vue +++ b/ui/src/components/common/CollapsibleTree.vue @@ -43,7 +43,7 @@ <span class="file-name" v-if="refFile"> {{ refFile.name }} </span> - <span class="file-name" v-else-if="lineCount>0"> + <span class="file-name" v-else-if="lineCount > 0"> {{ $t("validation.count-line") }} {{ lineCount }} </span> <span v-else-if="!option.synthesisMinMax" class="nodata has-text-danger"> @@ -101,8 +101,12 @@ @click="repositoryRedirect(option.label)" type="is-info" > - <span class="file-cta" style=" border-color: transparent; background-color: transparent"> - <b-icon class="file-icon" icon="archive" style="font-size: 0.75rem; color: white"></b-icon> + <span class="file-cta" style="border-color: transparent; background-color: transparent"> + <b-icon + class="file-icon" + icon="archive" + style="font-size: 0.75rem; color: white" + ></b-icon> </span> </b-button> </div> @@ -155,7 +159,7 @@ export default class CollapsibleTree extends Vue { @Prop() radioName; @Prop() repository; @Prop() repositoryRedirect; - @Prop( { default: 0 }) lineCount; + @Prop({ default: 0 }) lineCount; @Prop({ default: null }) applicationTitle; displayChildren = false; diff --git a/ui/src/style/_common.scss b/ui/src/style/_common.scss index bbd81a615ff34206f689920e4c18691ab6b177c0..314c8a55567f3cb636758d8f41d48d039ffebf74 100644 --- a/ui/src/style/_common.scss +++ b/ui/src/style/_common.scss @@ -183,6 +183,9 @@ a.dropdown-item.is-active, .dropdown .dropdown-menu .has-link a.is-active, butto .textarea:not([rows]) { min-height: 4em; } +.icon.has-text-primary.is-medium { + width: 32px; +} // mise en forme modal card synthèse #ranges { diff --git a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue index 211a72fd8a1c3386befffd45bef61e41f2f35454..1f7a40ebfbf0e9b2fad9d81dc1b9518ebb2c0286 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue @@ -16,7 +16,7 @@ </h1> <ValidationObserver ref="observer" v-slot="{ handleSubmit }"> - <ValidationProvider v-slot="{ errors, valid }" name="users" rules="required" vid="users"> + <ValidationProvider v-slot="{ errors, valid }" name="users" rules="required" vid="users" class="columns"> <b-field :label="$t('dataTypeAuthorizations.users')" :message="errors[0]" @@ -24,7 +24,7 @@ 'is-danger': errors && errors.length > 0, 'is-success': valid, }" - class="mb-4" + class="column mb-4" > <b-select v-model="usersToAuthorize" @@ -45,7 +45,7 @@ 'is-danger': errors && errors.length > 0, 'is-success': valid, }" - class="mb-4" + class="column mb-4" > <b-input v-model="name" /> </b-field> @@ -57,6 +57,7 @@ :authorizations-tree="authorizationsTree" :columnsVisible="columnsVisible" :dataGroups="dataGroups" + :authorizations-to-save="authorizationsToSave" :remaining-option="authReferences.slice && authReferences.slice(1, authReferences.length)" :required-authorizations="{}" class="rows" @@ -153,10 +154,10 @@ export default class DataTypeAuthorizationInfoView extends Vue { columnsVisible = { label: { title: "Label", display: true }, //dataGroups: {title: this.$t('dataTypeAuthorizations.data-groups'), display: true}, + extraction: { title: "Extraction", display: true }, admin: { title: "Admin", display: true }, depot: { title: "Dépôt", display: true }, publication: { title: "Publication", display: true }, - extraction: { title: "Extraction", display: true }, }; period = this.periods.FROM_DATE_TO_DATE; startDate = null; @@ -435,7 +436,7 @@ export default class DataTypeAuthorizationInfoView extends Vue { extractAuthorizations(authorizationTree) { var authorizationArray = []; - if (!authorizationTree || Object.keys(authorizationTree).length == 0) { + if (!authorizationTree || Object.keys(authorizationTree).length === 0) { return authorizationArray; } for (const key in authorizationTree) { diff --git a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue index 9001497cd67a4c140b2f9c479fbed3977b9e80d2..1a69cd388d14addb78f865303cf23b85fd827482 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationsView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationsView.vue @@ -16,7 +16,7 @@ <div class="rows"> <div class="row"> <div class="columns"> - <div class="card column is-2"> + <div class="column is-offset-10 is-2"> <b-button icon-left="plus" type="is-primary is-right" @click="addAuthorization"> {{ $t("dataTypeAuthorizations.add-auhtorization") }} </b-button> @@ -25,7 +25,6 @@ </div> <b-table - v-if="authorizations" :data="authorizations" :isFocusable="true" :isHoverable="true" @@ -36,16 +35,6 @@ class="row" height="100%" > - <!--b-table-column - v-slot="props" - :label="$t('dataTypeAuthorizations.user')" - b-table-column - field="user" - sortable - > - {{ props.row.user }} - </b-table-column--> - <b-table-column v-slot="props" :label="$t('dataTypeAuthorizations.name')" @@ -75,12 +64,12 @@ </b-table-column> <b-table-column v-slot="props" :label="$t('dataTypeAuthorizations.actions')" b-table-column> <b-button - icon-left="trash-alt" + icon-left="times-circle" size="is-small" - type="is-danger" + type="is-danger is-light" @click="revoke(props.row.id)" + style="height: 1.5em; background-color: transparent; font-size: 1.45rem" > - {{ $t("dataTypeAuthorizations.revoke") }} </b-button> </b-table-column> </b-table> diff --git a/ui/src/views/datatype/DataTypesManagementView.vue b/ui/src/views/datatype/DataTypesManagementView.vue index e1ae218e18e6902ce5e838ed961ced4b32a66b59..c1a962dd2d9d43c047101920a1d3abbf510b1b09 100644 --- a/ui/src/views/datatype/DataTypesManagementView.vue +++ b/ui/src/views/datatype/DataTypesManagementView.vue @@ -133,10 +133,9 @@ export default class DataTypesManagementView extends Vue { created() { this.subMenuPaths = [ new SubMenuPath( - this.$t("dataTypesManagement.data-types").toLowerCase(), - () => { - }, - () => this.$router.push("/applications") + this.$t("dataTypesManagement.data-types").toLowerCase(), + () => {}, + () => this.$router.push("/applications") ), ]; diff --git a/ui/src/views/references/ReferencesManagementView.vue b/ui/src/views/references/ReferencesManagementView.vue index 3976e60d23d2987ccbb8ebf26c8a9d3422edaf16..b4c0597e2dabb675887989499096741abf116baa 100644 --- a/ui/src/views/references/ReferencesManagementView.vue +++ b/ui/src/views/references/ReferencesManagementView.vue @@ -19,7 +19,7 @@ :onUploadCb="(label, refFile) => uploadReferenceCsv(label, refFile)" :buttons="buttons" :applicationTitle="$t('titles.references-page')" - :lineCount = lineCount(ref) + :lineCount="lineCount(ref)" > </CollapsibleTree> <ReferencesDetailsPanel @@ -119,7 +119,7 @@ export default class ReferencesManagementView extends Vue { } } lineCount(ref) { - for (let i=0; i<=this.application.referenceSynthesis.length-1 ; i++) { + for (let i = 0; i <= this.application.referenceSynthesis.length - 1; i++) { if (this.application.referenceSynthesis[i].referenceType === ref.label) { return this.application.referenceSynthesis[i].lineCount; }