diff --git a/frontend/src/components/input/DatepickerInline.vue b/frontend/src/components/input/DatepickerInline.vue index de6503833..275294a78 100644 --- a/frontend/src/components/input/DatepickerInline.vue +++ b/frontend/src/components/input/DatepickerInline.vue @@ -4,7 +4,7 @@ class="datepicker__quick-select-date" @click.stop="setDate('today')" > - + {{ $t('input.datepicker.today') }} {{ getWeekdayFromStringInterval('today') }} @@ -14,7 +14,7 @@ class="datepicker__quick-select-date" @click.stop="setDate('tomorrow')" > - + {{ $t('input.datepicker.tomorrow') }} {{ getWeekdayFromStringInterval('tomorrow') }} @@ -24,7 +24,7 @@ class="datepicker__quick-select-date" @click.stop="setDate('nextMonday')" > - + {{ $t('input.datepicker.nextMonday') }} {{ getWeekdayFromStringInterval('nextMonday') }} @@ -35,7 +35,7 @@ class="datepicker__quick-select-date" @click.stop="setDate('thisWeekend')" > - + {{ $t('input.datepicker.thisWeekend') }} {{ getWeekdayFromStringInterval('thisWeekend') }} @@ -45,7 +45,7 @@ class="datepicker__quick-select-date" @click.stop="setDate('laterThisWeek')" > - + {{ $t('input.datepicker.laterThisWeek') }} {{ getWeekdayFromStringInterval('laterThisWeek') }} @@ -55,7 +55,7 @@ class="datepicker__quick-select-date" @click.stop="setDate('nextWeek')" > - + {{ $t('input.datepicker.nextWeek') }} {{ getWeekdayFromStringInterval('nextWeek') }} @@ -77,6 +77,7 @@ import flatPickr from 'vue-flatpickr-component' import 'flatpickr/dist/flatpickr.css' import BaseButton from '@/components/base/BaseButton.vue' +import {PhCalendarBlank, PhSun, PhCoffee, PhMartini, PhHorse, PhFastForward} from '@phosphor-icons/vue' import {formatDate} from '@/helpers/time/formatDate' import {calculateDayInterval} from '@/helpers/time/calculateDayInterval' diff --git a/frontend/src/components/input/Multiselect.vue b/frontend/src/components/input/Multiselect.vue index ec75b2a2c..ce2620b4f 100644 --- a/frontend/src/components/input/Multiselect.vue +++ b/frontend/src/components/input/Multiselect.vue @@ -62,7 +62,7 @@ class="removal-button" @click="resetSelectedValue" > - + @@ -134,6 +134,7 @@ import {closeWhenClickedOutside} from '@/helpers/closeWhenClickedOutside' import BaseButton from '@/components/base/BaseButton.vue' import CustomTransition from '@/components/misc/CustomTransition.vue' +import {PhX} from '@phosphor-icons/vue' const props = withDefaults(defineProps<{ /** The object with the value, updated every time an entry is selected */ diff --git a/frontend/src/components/input/Password.vue b/frontend/src/components/input/Password.vue index 8d7b6461d..833f9ffc9 100644 --- a/frontend/src/components/input/Password.vue +++ b/frontend/src/components/input/Password.vue @@ -20,7 +20,7 @@ :aria-label="passwordFieldType === 'password' ? $t('user.auth.showPassword') : $t('user.auth.hidePassword')" @click="togglePasswordFieldType" > - + {{ $t('reaction.add') }} - + {{ $t('project.openSettingsMenu') }} - + @@ -21,21 +18,27 @@ + + + {{ $t('menu.edit') }} + + + {{ $t('menu.views') }} + + + {{ $t('misc.delete') }} @@ -43,51 +46,65 @@ + + + {{ $t('menu.unarchive') }} + + + {{ $t('menu.edit') }} + + + {{ $t('menu.views') }} + + + {{ $t('menu.setBackground') }} + + + {{ $t('menu.share') }} + + + {{ $t('menu.duplicate') }} + + + {{ $t('menu.archive') }} + + + {{ $t('project.webhooks.title') }} + + + {{ $t('menu.createProject') }} + + + {{ $t('menu.delete') }} @@ -140,6 +163,7 @@ import {useConfigStore} from '@/stores/config' import {useProjectStore} from '@/stores/projects' import {useAuthStore} from '@/stores/auth' import {PERMISSIONS} from '@/constants/permissions' +import {PhDotsThree, PhPen, PhEye, PhTrash, PhArchive, PhImage, PhShareNetwork, PhClipboard, PhLightning, PhStack} from '@phosphor-icons/vue' const props = withDefaults(defineProps<{ project: IProject diff --git a/frontend/src/components/project/partials/FilterPopup.vue b/frontend/src/components/project/partials/FilterPopup.vue index 22bd9173c..78e6a5517 100644 --- a/frontend/src/components/project/partials/FilterPopup.vue +++ b/frontend/src/components/project/partials/FilterPopup.vue @@ -1,10 +1,12 @@ modalOpen = true" > + + + {{ $t('filters.title') }} - + {{ getProjectTitle(project) }} @@ -47,7 +47,7 @@ :class="{'is-favorite': project.isFavorite}" @click.prevent.stop="projectStore.toggleProjectFavorite(project)" > - + @@ -57,6 +57,7 @@ import {computed} from 'vue' import type {IProject} from '@/modelTypes/IProject' import BaseButton from '@/components/base/BaseButton.vue' +import {PhFunnel, PhStar} from '@phosphor-icons/vue' import {useProjectBackground} from '@/composables/useProjectBackground' import {useProjectStore} from '@/stores/projects' diff --git a/frontend/src/components/project/views/ProjectKanban.vue b/frontend/src/components/project/views/ProjectKanban.vue index ae1d65182..51662ef96 100644 --- a/frontend/src/components/project/views/ProjectKanban.vue +++ b/frontend/src/components/project/views/ProjectKanban.vue @@ -50,7 +50,7 @@ class="icon is-small has-text-success mie-2" @click.stop="() => collapseBucket(bucket)" > - + showSetLimitInput = false" > + + + + + {setBucketLimit(bucket.id, true); showSetLimitInput = false}" - /> + > + + + + + + + {{ $t('project.kanban.doneBucket') }} + + + {{ $t('project.kanban.defaultBucket') }} collapseBucket(bucket)" > + + + {{ $t('project.kanban.collapse') }} deleteBucketModal(bucket.id)" > + + + {{ $t('misc.delete') }} @@ -197,11 +212,13 @@ v-tooltip="bucket.limit > 0 && bucket.count >= bucket.limit ? $t('project.kanban.bucketLimitReached') : ''" class="is-fullwidth has-text-centered" :shadow="false" - icon="plus" variant="secondary" :disabled="bucket.limit > 0 && bucket.count >= bucket.limit" @click="toggleShowNewTaskInput(bucket.id)" > + + + {{ bucket.tasks.length === 0 ? $t('project.kanban.addTask') : $t('project.kanban.addAnotherTask') }} @@ -250,9 +267,11 @@ :shadow="false" class="is-transparent is-fullwidth has-text-centered" variant="secondary" - icon="plus" @click="() => showNewBucketInput = true" > + + + {{ $t('project.kanban.addBucket') }} @@ -300,8 +319,10 @@ import {useAuthStore} from '@/stores/auth' import ProjectWrapper from '@/components/project/ProjectWrapper.vue' import FilterPopup from '@/components/project/partials/FilterPopup.vue' import KanbanCard from '@/components/tasks/partials/KanbanCard.vue' +import BaseButton from '@/components/base/BaseButton.vue' import Dropdown from '@/components/misc/Dropdown.vue' import DropdownItem from '@/components/misc/DropdownItem.vue' +import {PhChecks, PhDotsThreeVertical, PhFloppyDisk, PhSquaresFour, PhCaretDoubleUp, PhTrash, PhPlus} from '@phosphor-icons/vue' import { type CollapsedBuckets, diff --git a/frontend/src/components/project/views/ProjectTable.vue b/frontend/src/components/project/views/ProjectTable.vue index 76c641a61..983064e1c 100644 --- a/frontend/src/components/project/views/ProjectTable.vue +++ b/frontend/src/components/project/views/ProjectTable.vue @@ -10,11 +10,13 @@ + + + {{ $t('project.table.columns') }} @@ -316,6 +318,7 @@ import Sort from '@/components/tasks/partials/Sort.vue' import FilterPopup from '@/components/project/partials/FilterPopup.vue' import Pagination from '@/components/misc/Pagination.vue' import Popup from '@/components/misc/Popup.vue' +import {PhSquaresFour} from '@phosphor-icons/vue' import type {SortBy} from '@/composables/useTaskList' import {useTaskList} from '@/composables/useTaskList' diff --git a/frontend/src/components/project/views/ViewEditForm.vue b/frontend/src/components/project/views/ViewEditForm.vue index 40e6c4993..caa966f3c 100644 --- a/frontend/src/components/project/views/ViewEditForm.vue +++ b/frontend/src/components/project/views/ViewEditForm.vue @@ -12,6 +12,7 @@ import XButton from '@/components/input/Button.vue' import FilterInputDocs from '@/components/input/filter/FilterInputDocs.vue' import FilterInput from '@/components/input/filter/FilterInput.vue' import FormField from '@/components/input/FormField.vue' +import {PhTrash, PhPlus} from '@phosphor-icons/vue' const props = withDefaults(defineProps<{ modelValue: IProjectView, @@ -225,7 +226,7 @@ function handleBubbleSave() { class="is-danger" @click.prevent="() => view.bucketConfiguration.splice(index, 1)" > - + view.bucketConfiguration.push({title: '', filter: {filter: ''}})" > + + + {{ $t('project.kanban.addBucket') }} diff --git a/frontend/src/components/tasks/AddTask.vue b/frontend/src/components/tasks/AddTask.vue index 1ce0b1d3c..074b341b8 100644 --- a/frontend/src/components/tasks/AddTask.vue +++ b/frontend/src/components/tasks/AddTask.vue @@ -12,7 +12,7 @@ {{ $t('project.list.addPlaceholder') }} - + + + + {{ $t('project.list.add') }} @@ -78,6 +80,7 @@ import {useTaskStore} from '@/stores/tasks' import {useAutoHeightTextarea} from '@/composables/useAutoHeightTextarea' import TaskService from '@/services/task' import TaskModel from '@/models/task' +import {PhListChecks, PhPlus} from '@phosphor-icons/vue' const props = withDefaults(defineProps<{ defaultPosition?: number, diff --git a/frontend/src/components/tasks/TaskForm.vue b/frontend/src/components/tasks/TaskForm.vue index 99bfc9620..53dcdd298 100644 --- a/frontend/src/components/tasks/TaskForm.vue +++ b/frontend/src/components/tasks/TaskForm.vue @@ -16,9 +16,11 @@ + + + {{ $t('task.new') }} @@ -29,6 +31,7 @@ import {nextTick, ref} from 'vue' import type {ITask} from '@/modelTypes/ITask' import CustomTransition from '@/components/misc/CustomTransition.vue' +import {PhPlus} from '@phosphor-icons/vue' const emit = defineEmits<{ (e: 'createTask', title: string): Promise
{{ $t('reaction.add') }} - + {{ $t('project.openSettingsMenu') }} - + @@ -21,21 +18,27 @@ + + + {{ $t('menu.edit') }} + + + {{ $t('menu.views') }} + + + {{ $t('misc.delete') }} @@ -43,51 +46,65 @@ + + + {{ $t('menu.unarchive') }} + + + {{ $t('menu.edit') }} + + + {{ $t('menu.views') }} + + + {{ $t('menu.setBackground') }} + + + {{ $t('menu.share') }} + + + {{ $t('menu.duplicate') }} + + + {{ $t('menu.archive') }} + + + {{ $t('project.webhooks.title') }} + + + {{ $t('menu.createProject') }} + + + {{ $t('menu.delete') }} @@ -140,6 +163,7 @@ import {useConfigStore} from '@/stores/config' import {useProjectStore} from '@/stores/projects' import {useAuthStore} from '@/stores/auth' import {PERMISSIONS} from '@/constants/permissions' +import {PhDotsThree, PhPen, PhEye, PhTrash, PhArchive, PhImage, PhShareNetwork, PhClipboard, PhLightning, PhStack} from '@phosphor-icons/vue' const props = withDefaults(defineProps<{ project: IProject diff --git a/frontend/src/components/project/partials/FilterPopup.vue b/frontend/src/components/project/partials/FilterPopup.vue index 22bd9173c..78e6a5517 100644 --- a/frontend/src/components/project/partials/FilterPopup.vue +++ b/frontend/src/components/project/partials/FilterPopup.vue @@ -1,10 +1,12 @@ modalOpen = true" > + + + {{ $t('filters.title') }} - +