diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts
index e7514ce..f256e88 100644
--- a/src/i18n/en-ca/index.ts
+++ b/src/i18n/en-ca/index.ts
@@ -224,6 +224,7 @@ export default {
error: {
no_data_found: "no data found",
no_search_results: "no results matching search",
+ generic_error: "An error occured",
},
label: {
search: "search",
@@ -284,6 +285,7 @@ export default {
apply_preset: "auto-fill",
apply_preset_day: "Apply schedule to day",
apply_preset_week: "Apply schedule to week",
+ save_successful: "timesheets saved",
nav_button: {
calendar_date_picker: "Calendar",
current_week: "This week",
@@ -359,6 +361,7 @@ export default {
SHIFT_TYPE_REQUIRED: "Shift type required",
TIMESHEET_NOT_FOUND: "No timesheet found with provided data",
UPDATE_ERROR: "Error while updating data",
+ ERROR_SAVING_SHIFTS: "Timesheet changes were not saved",
},
},
diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts
index 13c402c..8ab3e7c 100644
--- a/src/i18n/fr-ca/index.ts
+++ b/src/i18n/fr-ca/index.ts
@@ -224,6 +224,7 @@ export default {
error: {
no_data_found: 'aucune donnée à afficher',
no_search_results: 'aucun résultat ne correspond à la recherche',
+ generic_error: "Une erreur est survenue",
},
label: {
search: 'recherche',
@@ -284,6 +285,7 @@ export default {
apply_preset: "auto-remplir",
apply_preset_day: "Appliquer horaire pour la journée",
apply_preset_week: "Appliquer horaire pour la semaine",
+ save_successful: "feuilles de temps enregistrées",
nav_button: {
calendar_date_picker: "Calendrier",
current_week: "Semaine actuelle",
@@ -359,6 +361,7 @@ export default {
SHIFT_TYPE_REQUIRED: "Type requis",
TIMESHEET_NOT_FOUND: "Aucune feuille de temps ne correspond au détails fournis",
UPDATE_ERROR: "Une erreur est survenu lors de la mise à jour",
+ ERROR_SAVING_SHIFTS: "les changements aux feuilles de temps n'ont pas été enregistrés",
},
},
diff --git a/src/modules/timesheets/components/timesheet-wrapper.vue b/src/modules/timesheets/components/timesheet-wrapper.vue
index 00318ba..1acb3ba 100644
--- a/src/modules/timesheets/components/timesheet-wrapper.vue
+++ b/src/modules/timesheets/components/timesheet-wrapper.vue
@@ -2,7 +2,6 @@
setup
lang="ts"
>
- /* eslint-disable */
import ShiftList from 'src/modules/timesheets/components/shift-list.vue';
import ShiftListScrollable from 'src/modules/timesheets/components/shift-list-scrollable.vue';
import LoadingOverlay from 'src/modules/shared/components/loading-overlay.vue';
@@ -13,14 +12,15 @@
import ShiftListWeeklyOverview from 'src/modules/timesheets/components/shift-list-weekly-overview.vue';
import ShiftListWeeklyOverviewMobile from 'src/modules/timesheets/components/mobile/shift-list-weekly-overview-mobile.vue';
+ import { useI18n } from 'vue-i18n';
import { computed, onMounted } from 'vue';
import { useShiftApi } from 'src/modules/timesheets/composables/use-shift-api';
import { useTimesheetApi } from 'src/modules/timesheets/composables/use-timesheet-api';
import { useExpensesStore } from 'src/stores/expense-store';
import { useTimesheetStore } from 'src/stores/timesheet-store';
- import { date } from 'quasar';
-
+ import { date, Notify } from 'quasar';
+ const { t } = useI18n();
const expenses_store = useExpensesStore();
const timesheet_store = useTimesheetStore();
const timesheet_api = useTimesheetApi();
@@ -41,13 +41,25 @@
sum + timesheet.weekly_expenses.expenses
+ timesheet.weekly_expenses.on_call
+ timesheet.weekly_expenses.per_diem,
- 0) //initial value
- );
+ 0 //initial value
+ ));
const { mode = 'normal' } = defineProps<{
mode?: 'approval' | 'normal';
}>();
+ const onClickSaveTimesheets = async () => {
+ if (mode === 'normal') {
+ await shift_api.saveShiftChanges();
+ Notify.create({
+ message: t('timesheet.save_successful'),
+ color: 'accent',
+ });
+ } else {
+ await shift_api.saveShiftChanges(timesheet_store.current_pay_period_overview?.email);
+ }
+ }
+
onMounted(async () => {
if (mode === 'normal')
await timesheet_api.getTimesheetsByDate(date.formatDate(new Date(), 'YYYY-MM-DD'));
@@ -97,7 +109,10 @@
v-if="!$q.platform.is.mobile"
class="col-xs-6 col-md-4 col-xl-3 q-pa-md"
>
-