diff --git a/src/assets/circle.png b/src/assets/circle.png new file mode 100644 index 0000000..373aeb7 Binary files /dev/null and b/src/assets/circle.png differ diff --git a/src/assets/links/facturation-transparent.png b/src/assets/links/facturation-transparent.png index 550e260..2db5394 100644 Binary files a/src/assets/links/facturation-transparent.png and b/src/assets/links/facturation-transparent.png differ diff --git a/src/assets/links/hydroQC_icon.png b/src/assets/links/hydroQC_icon.png index 63f77be..2dbf4b3 100644 Binary files a/src/assets/links/hydroQC_icon.png and b/src/assets/links/hydroQC_icon.png differ diff --git a/src/assets/links/intranet_logo.png b/src/assets/links/intranet_logo.png index 4ebcccf..bc9089b 100644 Binary files a/src/assets/links/intranet_logo.png and b/src/assets/links/intranet_logo.png differ diff --git a/src/assets/links/logo_gmail.png b/src/assets/links/logo_gmail.png index 9882513..957abed 100644 Binary files a/src/assets/links/logo_gmail.png and b/src/assets/links/logo_gmail.png differ diff --git a/src/css/app.scss b/src/css/app.scss index f5b3f6e..ae674d8 100644 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -19,8 +19,8 @@ background: #fd4b2d !important; } -.q-table tbody tr:hover { - background: #00ff260c; +.q-table tbody tr:hover > td { + background-color: var(--q-accent2) !important; } body.body--dark { @@ -42,6 +42,14 @@ body.body--dark { backdrop-filter: blur(5px); } +.text-accent2 { + color: #95f0a1B0; +} + +.bg-accent2 { + background-color: #95f0a1B0; +} + .q-btn--push::before { border-bottom: 4px solid rgba(0,0,0, 0.25); } @@ -71,6 +79,16 @@ input[type=number] { } .q-field--dark .q-field__control:hover::before, .q-field--outlined .q-field__control:hover::before { - border-color: var(--q-accent); + border-color: var(--q-accent2); border-width: 2px; +} + +.text-border-white { + text-shadow: 2px 0 #fff, -2px 0 #fff, 0 2px #fff, 0 -2px #fff, + 1px 1px #fff, -1px -1px #fff, 1px -1px #fff, -1px 1px #fff; +} + +.text-border-dark { + text-shadow: 2px 0 var(--q-primary), -2px 0 var(--q-primary), 0 2px var(--q-primary), 0 -2px var(--q-primary), + 1px 1px var(--q-primary), -1px -1px var(--q-primary), 1px -1px var(--q-primary), -1px 1px var(--q-primary); } \ No newline at end of file diff --git a/src/css/quasar.variables.scss b/src/css/quasar.variables.scss index 1b60238..b210fed 100644 --- a/src/css/quasar.variables.scss +++ b/src/css/quasar.variables.scss @@ -15,15 +15,13 @@ $primary : #30303A; $secondary : #DAE0E7; $accent : #0c9a3b; -$accent2 : #0a7d32; -$dark-shadow-color : #000000; +$dark-shadow-color : #000; -$elevation-dark-umbra : rgba($dark-shadow-color, 1); -$elevation-dark-penumbra : rgba($dark-shadow-color, 0.75); -$elevation-dark-ambient : rgba($dark-shadow-color, 0.53); +$elevation-dark-umbra : rgba($dark-shadow-color, .2); +$elevation-dark-penumbra : rgba($dark-shadow-color, .14); +$elevation-dark-ambient : rgba($dark-shadow-color, .12); -$dark-shadow-2 : 2px 3px $elevation-dark-umbra, 2px 3px 6px $elevation-dark-penumbra, 2px 3px 14px $elevation-dark-ambient; $layout-shadow-dark : 0 0 5px 5px rgba($dark-shadow-color, 0.5); $input-text-color : #455A64; diff --git a/src/i18n/en-ca/index.ts b/src/i18n/en-ca/index.ts index c462be4..cc08350 100644 --- a/src/i18n/en-ca/index.ts +++ b/src/i18n/en-ca/index.ts @@ -250,6 +250,7 @@ export default { name: "name", lock: "", unlock: "", + today: "today", }, misc: { or: "or", diff --git a/src/i18n/fr-ca/index.ts b/src/i18n/fr-ca/index.ts index 2509717..3be3cef 100644 --- a/src/i18n/fr-ca/index.ts +++ b/src/i18n/fr-ca/index.ts @@ -250,6 +250,7 @@ export default { name: "nom", lock: "verrouiller", unlock: "déverrouiller", + today: "aujourd'hui", }, misc: { or: "ou", diff --git a/src/layouts/main-layout.vue b/src/layouts/main-layout.vue index 704a258..c0deac0 100644 --- a/src/layouts/main-layout.vue +++ b/src/layouts/main-layout.vue @@ -8,11 +8,12 @@ import ChatbotDrawer from 'src/modules/chatbot/components/chatbot-drawer.vue'; import { onMounted, watch, ref } from 'vue'; + import { setCssVar } from 'quasar'; import { RouterView } from 'vue-router'; import { useUiStore } from 'src/stores/ui-store'; import { useAuthStore } from 'src/stores/auth-store'; - + setCssVar('accent2', '#95f0a1B0'); const ui_store = useUiStore(); const auth_store = useAuthStore(); const userPreferences = ref(ui_store.userPreferences); @@ -46,4 +47,4 @@ - + \ No newline at end of file diff --git a/src/modules/chatbot/components/chatbot-drawer.vue b/src/modules/chatbot/components/chatbot-drawer.vue index a0b5c84..1b397a0 100644 --- a/src/modules/chatbot/components/chatbot-drawer.vue +++ b/src/modules/chatbot/components/chatbot-drawer.vue @@ -12,7 +12,7 @@ const chatbot_store = useChatbotStore(); const text = ref(''); - const is_showing_right_drawer = ref(true); + const isShowingRightDrawer = ref(true); const drawer_width = ref(85); const handleSend = async () => { @@ -28,7 +28,7 @@ - \ No newline at end of file diff --git a/src/modules/dashboard/components/employee/shortcut-card.vue b/src/modules/dashboard/components/employee/shortcut-card.vue index d71b696..11fbd61 100644 --- a/src/modules/dashboard/components/employee/shortcut-card.vue +++ b/src/modules/dashboard/components/employee/shortcut-card.vue @@ -4,7 +4,6 @@ > const { route = "" } = defineProps<{ iconImageSource: string, - bgImageSource: string, name: string, route?: string, }>(); @@ -16,36 +15,21 @@ @@ -54,11 +38,12 @@ scoped lang="css" > -.link-card { - background-blend-mode: multiply; - background-position: bottom right; - background-repeat: no-repeat; +.link-btn { background-color: var(--q-dark); - background-size: contain; + border: 2px solid var(--q-accent); +} + +.link-btn:hover { + background-color: var(--q-accent2); } \ No newline at end of file diff --git a/src/modules/dashboard/components/main-carousel.vue b/src/modules/dashboard/components/main-carousel.vue index 8f3c5b0..5d8e9fc 100644 --- a/src/modules/dashboard/components/main-carousel.vue +++ b/src/modules/dashboard/components/main-carousel.vue @@ -28,28 +28,34 @@ :autoplay="autoplayTimer" control-color="accent" control-type="outline" - class="bg-dark fit rounded-15 shadow-18" + class="bg-dark rounded-15 fit shadow-18" @mouseenter="onCarouselMouseEvent('enter')" @mouseleave="onCarouselMouseEvent('exit')" > -
+
-
+
{{ $t('dashboard.carousel.welcome_title') }}
-
+
{{ $t('dashboard.carousel.welcome_message') }}
@@ -61,19 +67,25 @@ class="q-pa-none cursor-pointer" @click="$router.push(RouteNames.HELP)" > -
+
-
+
{{ $t('dashboard.carousel.help_title') }}
-
+
{{ $t('dashboard.carousel.help_message') }}
diff --git a/src/modules/shared/components/targo-input.vue b/src/modules/shared/components/targo-input.vue index 60c7227..71cad76 100644 --- a/src/modules/shared/components/targo-input.vue +++ b/src/modules/shared/components/targo-input.vue @@ -2,22 +2,43 @@ setup lang="ts" > + import { colors, getCssVar } from 'quasar'; + import { computed } from 'vue'; + const model = defineModel({ required: true }); - const is_date_picker_open = defineModel('isDatePickerOpen', { default: false }); defineProps<{ label?: string | undefined; requiresDatePicker?: boolean | undefined; maxLength?: number; noTopPadding?: boolean; - backgroundColor?: 'bg-secondary' | 'bg-dark'; + backgroundColor?: 'secondary' | 'dark' | 'white' | undefined; + inputTextColor?: string | undefined; appendContent?: string | number; autoFocus?: boolean; + error?: boolean; + dense?: boolean; + readonly?: boolean; + textAlign?: 'left' | 'right'; }>(); defineOptions({ inheritAttrs: false }) + + defineEmits<{ + 'focus': [void]; + 'blur': [void]; + }>(); + + const isDatePickerOpen = defineModel('isDatePickerOpen', { default: false }); + + const bgLightGrey = computed(() => { + const secondary = getCssVar('secondary'); + if (secondary === null) return; + + return colors.lighten(secondary, 50); + }); - +
+ + + + + +
+ +
+ {{ appendContent }} +
+ + +
diff --git a/src/modules/timesheet-approval/components/details-dialog-shift-menu.vue b/src/modules/timesheet-approval/components/details-dialog-shift-menu.vue index 6224ad7..0fdc7cb 100644 --- a/src/modules/timesheet-approval/components/details-dialog-shift-menu.vue +++ b/src/modules/timesheet-approval/components/details-dialog-shift-menu.vue @@ -54,6 +54,26 @@ color="accent" class="col-auto q-px-md" > + +
+ + {{ $t('timesheet.expense.employee_comment') }}: + + {{ shift.comment }} +
+
+ + +
+ + {{ $t('timesheet.expense.employee_comment') }}: + + {{ shift.comment }} +
+
+ - +
{{ $t('timesheet.expense.employee_comment') }} - +
([ 'employee_first_name', @@ -105,10 +105,14 @@ const getListViewTimeCss = (column_name: OverviewColumns, value: number): { classes: string, style: string } => { if (WARNING_COLUMNS.includes(column_name) && value > 0) - return { classes: 'bg-warning text-white text-bold rounded-5', style: '' }; + return { classes: 'bg-warning text-bold text-primary rounded-5', style: '' }; + + if (NEGATIVE_COLUMNS.includes(column_name) && value > 0) { + if ((column_name === 'OVERTIME') && value < 4) + return { classes: 'bg-warning text-bold text-primary rounded-5', style: '' }; - if (NEGATIVE_COLUMNS.includes(column_name) && value > 0) return { classes: 'bg-negative text-white text-bold rounded-5', style: '' }; + } return { classes: '', style: '' } } @@ -117,7 +121,7 @@