diff --git a/frontend/package-lock.json b/frontend/package-lock.json index a67afbf..e422ca4 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -7,7 +7,7 @@ "name": "frontend", "hasInstallScript": true, "dependencies": { - "@malio/layer-ui": "^1.4.5", + "@malio/layer-ui": "^1.4.6", "@nuxt/icon": "^2.2.1", "@nuxtjs/i18n": "^10.2.1", "@pinia/nuxt": "^0.11.3", @@ -2222,9 +2222,9 @@ "license": "MIT" }, "node_modules/@malio/layer-ui": { - "version": "1.4.5", - "resolved": "https://gitea.malio.fr/api/packages/MALIO-DEV/npm/%40malio%2Flayer-ui/-/1.4.5/layer-ui-1.4.5.tgz", - "integrity": "sha512-UfVkLJk3WWGoZE1eyei0pY45IUbZRzabJr2X6GNFabHd/8EmuXqwP+LxCl8wEAO4ODrNKsVLJdi0eL3Zekv4Dg==", + "version": "1.4.6", + "resolved": "https://gitea.malio.fr/api/packages/MALIO-DEV/npm/%40malio%2Flayer-ui/-/1.4.6/layer-ui-1.4.6.tgz", + "integrity": "sha512-stHqUAJ8E6a62Ka7QXlE177GhkIsjtmYNa/tNk1TVpbJ099okfLLivrlofEl7CCAqDeMaIepnW4q0vxJT+EFEA==", "dependencies": { "@nuxt/icon": "^2.2.1", "@nuxtjs/tailwindcss": "^6.14.0", diff --git a/frontend/package.json b/frontend/package.json index ce7abf3..f565b5a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,7 +13,7 @@ "dependencies": { "@nuxt/icon": "^2.2.1", "@nuxtjs/i18n": "^10.2.1", - "@malio/layer-ui": "^1.4.5", + "@malio/layer-ui": "^1.4.6", "@pinia/nuxt": "^0.11.3", "nuxt": "^4.3.0", "nuxt-toast": "^1.4.0", diff --git a/frontend/pages/employees/index.vue b/frontend/pages/employees/index.vue index 9f00ddb..861f546 100644 --- a/frontend/pages/employees/index.vue +++ b/frontend/pages/employees/index.vue @@ -84,105 +84,53 @@ - +
-
- - -

- Le prénom est obligatoire. -

-
-
- - -

- Le nom est obligatoire. -

-
-
- - -

- Le site est obligatoire. -

-
+ + +
- - + label="Enregistrer" + :disabled="isSubmitting || !isFormValid" + />
-
+
@@ -492,63 +432,23 @@ const showContractEndDateError = computed( () => !editingEmployee.value && validationTouched.contractEndDate && !isContractEndDateValid.value ) -const baseInputClass = - 'mt-2 w-full rounded-md border px-3 py-2 text-base text-neutral-900 focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-secondary-500/20' -const firstNameFieldClass = computed(() => { - if (showFirstNameError.value) { - return `${baseInputClass} border-red-500` - } - return `${baseInputClass} border-neutral-300` -}) -const lastNameFieldClass = computed(() => { - if (showLastNameError.value) { - return `${baseInputClass} border-red-500` - } - return `${baseInputClass} border-neutral-300` -}) -const siteFieldClass = computed(() => { - const baseSelectClass = - 'mt-2 w-full rounded-md border bg-white px-3 py-2 text-md text-neutral-900' - if (showSiteError.value) { - return `${baseSelectClass} border-red-500` - } - return `${baseSelectClass} border-neutral-300` -}) -const contractFieldClass = computed(() => { - const baseClass = - 'mt-2 w-full rounded-md border bg-white px-3 py-2 text-md text-neutral-900' - if (showContractError.value) { - return `${baseClass} border-red-500` - } - return `${baseClass} border-neutral-300` -}) -const contractNatureFieldClass = computed(() => { - const baseClass = - 'mt-2 w-full rounded-md border bg-white px-3 py-2 text-md text-neutral-900' - if (showContractNatureError.value) { - return `${baseClass} border-red-500` - } - return `${baseClass} border-neutral-300` -}) -const contractStartDateFieldClass = computed(() => { - if (showContractStartDateError.value) { - return `${baseInputClass} border-red-500` - } - return `${baseInputClass} border-neutral-300` -}) -const contractEndDateFieldClass = computed(() => { - if (showContractEndDateError.value) { - return `${baseInputClass} border-red-500` - } - return `${baseInputClass} border-neutral-300` -}) +const dateInputBaseClass = + 'mt-2 h-10 w-full rounded-md border px-3 text-md text-black outline-none focus:border-2 focus:border-m-primary' -const submitButtonClass = computed(() => { - if (isSubmitting.value || !isFormValid.value) { - return 'opacity-50 cursor-not-allowed' - } - return '' -}) +const formSiteOptions = computed(() => + sites.value.map((site) => ({ label: site.name, value: site.id })) +) +const interimAgencyOptions = computed(() => + interimAgencies.value.map((agency) => ({ label: agency.name, value: agency.id })) +) +const contractFormOptions = computed(() => + contracts.value.map((contract) => ({ label: contract.name, value: contract.id })) +) +const contractNatureFormOptions = [ + { label: 'CDI', value: 'CDI' }, + { label: 'CDD', value: 'CDD' }, + { label: 'Intérim', value: 'INTERIM' } +] const loadEmployees = async () => { isLoading.value = true