diff --git a/src/layouts/components/main-layout-left-drawer.vue b/src/layouts/components/main-layout-left-drawer.vue index 371a57a..498d4cf 100644 --- a/src/layouts/components/main-layout-left-drawer.vue +++ b/src/layouts/components/main-layout-left-drawer.vue @@ -13,7 +13,7 @@ const DRAWER_BUTTONS: { i18n_key: string, icon: string, route: RouteNames, required_module?: UserModuleAccess }[] = [ { i18n_key: 'nav_bar.home', icon: "home", route: RouteNames.DASHBOARD, required_module: ModuleNames.DASHBOARD }, { i18n_key: 'nav_bar.timesheet_approvals', icon: "event_available", route: RouteNames.TIMESHEET_APPROVALS, required_module: ModuleNames.TIMESHEETS_APPROVAL }, - { i18n_key: 'nav_bar.employee_list', icon: "groups", route: RouteNames.EMPLOYEE_LIST }, + { i18n_key: 'nav_bar.employee_list', icon: "groups", route: RouteNames.EMPLOYEE_LIST, required_module: ModuleNames.EMPLOYEE_LIST }, { i18n_key: 'nav_bar.timesheet', icon: "punch_clock", route: RouteNames.TIMESHEET, required_module: ModuleNames.TIMESHEETS }, { i18n_key: 'nav_bar.profile', icon: "account_box", route: RouteNames.PROFILE, required_module: ModuleNames.PERSONAL_PROFILE }, { i18n_key: 'nav_bar.help', icon: "contact_support", route: RouteNames.HELP }, @@ -26,7 +26,6 @@ const is_mini = ref(true); const onClickDrawerPage = (page_name: RouteNames) => { - ui_store.current_page = page_name; is_mini.value = true; router.push({ name: page_name }).catch(error => { @@ -43,7 +42,7 @@ }; onMounted(() => { - if(q.platform.is.mobile) { + if (q.platform.is.mobile) { ui_store.is_left_drawer_open = false; } }) @@ -66,22 +65,26 @@ v-for="button, index in DRAWER_BUTTONS" :key="index" v-show="button.required_module ?? true" - class="row items-center full-width q-py-sm cursor-pointer" - :class="ui_store.current_page === button.route ? ($q.dark.isActive ? 'bg-green-10' : 'bg-green-2') : ''" @click="onClickDrawerPage(button.route)" > - -
- {{ $t(button.i18n_key) }} + + +
+ {{ $t(button.i18n_key) }} +
diff --git a/src/modules/auth/components/login-connection-panel.vue b/src/modules/auth/components/login-connection-panel.vue index 1b68a96..f5b1513 100644 --- a/src/modules/auth/components/login-connection-panel.vue +++ b/src/modules/auth/components/login-connection-panel.vue @@ -1,25 +1,31 @@ - + + \ No newline at end of file diff --git a/src/modules/employee-list/components/employee-list-table.vue b/src/modules/employee-list/components/employee-list-table.vue index d442f1a..b612718 100644 --- a/src/modules/employee-list/components/employee-list-table.vue +++ b/src/modules/employee-list/components/employee-list-table.vue @@ -7,13 +7,18 @@ import { onMounted, ref } from 'vue'; import { date, type QTableColumn } from 'quasar'; import { useUiStore } from 'src/stores/ui-store'; + import { useAuthStore } from 'src/stores/auth-store'; import { useEmployeeStore } from 'src/stores/employee-store'; import { useTimesheetStore } from 'src/stores/timesheet-store'; import { employee_list_columns, type EmployeeProfile, type EmployeeListFilters } from 'src/modules/employee-list/models/employee-profile.models'; + const ui_store = useUiStore(); + const auth_store = useAuthStore(); const employee_store = useEmployeeStore(); const timesheet_store = useTimesheetStore(); - const ui_store = useUiStore(); + + const is_management = auth_store.user?.user_module_access.includes('employee_management') ?? false; + const visible_columns = ref<(keyof EmployeeProfile)[]>(['first_name', 'email', 'job_title', 'last_work_day']); const table_grid_container = ref(null); @@ -88,6 +93,7 @@ @@ -185,7 +192,7 @@ + + diff --git a/src/modules/timesheet-approval/components/overview-list.vue b/src/modules/timesheet-approval/components/overview-list.vue index b593d34..2f2d955 100644 --- a/src/modules/timesheet-approval/components/overview-list.vue +++ b/src/modules/timesheet-approval/components/overview-list.vue @@ -40,14 +40,13 @@ }>(); const is_showing_filters = ref(false); - const search_string = ref(''); const overview_rows = computed(() => timesheet_store.pay_period_overviews.filter(overview => overview)); const overview_filters = ref({ is_showing_inactive: false, is_showing_team_only: false, supervisors: [], - name_search_string: search_string.value, + name_search_string: '', }); const onClickedDetails = async (row: TimesheetApprovalOverview) => { @@ -106,7 +105,7 @@ :no-data-label="$t('shared.error.no_data_found')" :no-results-label="$t('shared.error.no_search_results')" :loading-label="$t('shared.label.loading')" - :style="`max-height: ${maxHeight}px;`" + :style="overview_rows.length > 0 ? `max-height: ${maxHeight - (timesheet_store.is_approval_grid_mode ? 0 : 20)}px;` : ''" @row-click="(_evt, row: TimesheetApprovalOverview) => onClickedDetails(row)" >