Merge branch 'main' into 15-calendar-preview

# Conflicts:
#	frontend/src/view/AdditionalModules.vue
#	frontend/src/view/EditCalendarView.vue
This commit is contained in:
masterElmar
2023-11-28 19:16:10 +01:00
27 changed files with 1006 additions and 89 deletions

View File

@@ -7,8 +7,10 @@ import { FilterMatchMode } from "primevue/api";
import { useDialog } from "primevue/usedialog";
import router from "../router";
import { fetchModule } from "../api/fetchModule.ts";
import { useI18n } from "vue-i18n";
const dialog = useDialog();
const { t } = useI18n({ useScope: "global" });
const fetchedModules = async () => {
return await fetchAllModules();
@@ -111,11 +113,19 @@ function selectChange(event : MultiSelectChangeEvent) {
}
function itemsLabel(selectedModules: Module[]): string {
return (selectedModules ? selectedModules.length : 0) != 1 ? t("additionalModules.modules") : t("additionalModules.module");
return (selectedModules ? selectedModules.length : 0) != 1
? t("additionalModules.modules")
: t("additionalModules.module");
}
function itemsLabelWithNumber(selectedModules: Module[]): string {
return selectedModules.length.toString() + " " + itemsLabel(selectedModules) + " " + t("additionalModules.dropDownFooterSelected");
return (
selectedModules.length.toString() +
" " +
itemsLabel(selectedModules) +
" " +
t("additionalModules.dropDownFooterSelected")
);
}
*/
</script>
@@ -228,11 +238,11 @@ function itemsLabelWithNumber(selectedModules: Module[]): string {
:placeholder="$t('additionalModules.dropDown')"
:auto-filter-focus="true"
:show-toggle-all="false"
:selected-items-label="itemsLabelWithNumber(selectedModules)"
@change="selectChange()"
placeholder="Select additional modules"
@change="selectChange($event)"
@selectall-change="onSelectAllChange($event)"
:selectedItemsLabel="itemsLabelWithNumber(selectedModules)"
>
<template #option="slotProps">
<div class="flex justify-content-between w-full">
@@ -243,6 +253,7 @@ function itemsLabelWithNumber(selectedModules: Module[]): string {
</div>
<div class="flex align-items-center justify-content-center ml-2">
<Button
class="small-button"
icon="pi pi-info"
severity="secondary"
rounded
@@ -258,8 +269,10 @@ function itemsLabelWithNumber(selectedModules: Module[]): string {
<template #footer>
<div class="py-2 px-3">
<b>{{ selectedModules ? selectedModules.length : 0 }}</b>
{{ itemsLabel(selectedModules) }}
{{ $t("additionalModules.dropDownFooterSelected") }}
item{{
(selectedModules ? selectedModules.length : 0) > 1 ? "s" : ""
}}
selected.
</div>
</template>
</MultiSelect>
@@ -280,4 +293,10 @@ function itemsLabelWithNumber(selectedModules: Module[]): string {
:deep(.custom-multiselect li) {
height: unset;
}
.small-button.p-button {
width: 2rem;
height: 2rem;
padding: 0;
}
</style>

View File

@@ -46,14 +46,22 @@ function loadCalendar(): void {
moduleStore().removeAllModules();
tokenStore().setToken(token.value);
getCalender(token.value).then((data) => {
data.forEach((module) => {
moduleStore().addModule(module);
});
modules.value = moduleStore().modules;
getCalender(token.value).then((data: Module[]) => {
if (data.length > 0) {
data.forEach((module) => {
moduleStore().addModule(module);
});
modules.value = moduleStore().modules;
router.push("/edit-additional-modules");
} else {
toast.add({
severity: "error",
summary: t("editCalendarView.error"),
detail: t("editCalendarView.noCalendarFound"),
life: 3000,
});
}
});
router.push("/edit-additional-modules");
}
</script>