feat: enhanced dataset management and UI improvements
Some checks failed
CI Pipeline / japa-tests (push) Failing after 1m10s

- Submitter/DatasetController.ts: improved validations for time_absolute, time_min, and time_max.
- validators/dataset.ts: enhanced validations for time_absolute, time_min, and time_max.
- Added new favicon.ico for better branding.
- Improved password-meter.vue component with clearer hint messages.
- Updated checkStrength.ts: enhanced checkStrength() method for password strength validation.
- submitter/Dataset/Create.vue: added form controls for time_min, time_max, and/or time_absolute fields.
- submitter/Dataset/Edit.vue: introduced a loading spinner during file upload for better UX.
This commit is contained in:
Kaimbacher 2025-01-08 11:45:03 +01:00
parent f67b736a88
commit d1480b1240
17 changed files with 2682 additions and 1446 deletions

View file

@ -25,11 +25,11 @@ import NotificationBar from '@/Components/NotificationBar.vue';
import LayoutAuthenticated from '@/Layouts/LayoutAuthenticated.vue';
import SectionTitleLineWithButton from '@/Components/SectionTitleLineWithButton.vue';
import { stardust } from '@eidellev/adonis-stardust/client';
import passwordMeter from '@/Components/SimplePasswordMeter/password-meter.vue';
import { computed, Ref } from 'vue';
import { usePage } from '@inertiajs/vue3';
import FormValidationErrors from '@/Components/FormValidationErrors.vue';
import PersonalTotpSettings from '@/Components/PersonalTotpSettings.vue';
import PasswordMeter from '@/Components/SimplePasswordMeter/password-meter.vue';
// import PersonalSettings from '@/Components/PersonalSettings.vue';
// import { MainService } from '@/Stores/main';
// const mainService = MainService();
@ -38,7 +38,7 @@ const emit = defineEmits(['confirm', 'update:confirmation'])
const enabled = ref(false);
const handleScore = (score: number) => {
if (score == 4){
if (score >= 4){
enabled.value = true;
} else {
enabled.value = false;
@ -186,7 +186,7 @@ const flash: Ref<any> = computed(() => {
</FormField>
<BaseDivider />
<FormField label="New password" help="Required. New password"
<!-- <FormField label="New password" help="Required. New password"
:class="{ 'text-red-400': passwordForm.errors.new_password }">
<FormControl v-model="passwordForm.new_password" :icon="mdiFormTextboxPassword" name="new_password"
type="password" required :error="passwordForm.errors.new_password">
@ -194,8 +194,8 @@ const flash: Ref<any> = computed(() => {
{{ passwordForm.errors.new_password }}
</div>
</FormControl>
</FormField>
<password-meter :password="passwordForm.new_password" @score="handleScore" />
</FormField> -->
<PasswordMeter v-model:password="passwordForm.new_password" :errors="passwordForm.errors" @score="handleScore" />
<FormField label="Confirm password" help="Required. New password one more time"