From ed3c6d7e5bb338a10080d8047be7273214e7cee8 Mon Sep 17 00:00:00 2001 From: CarliPinell Date: Wed, 5 Feb 2025 09:56:01 -0400 Subject: [PATCH 1/8] saving progress --- .../Http/Controllers/TaskController.php | 4 +++- .../Traits/SearchAutocompleteTrait.php | 20 +++++++++++++++++++ .../shared/LaunchpadSettingsModal.vue | 2 +- resources/views/tasks/index.blade.php | 1 + 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/ProcessMaker/Http/Controllers/TaskController.php b/ProcessMaker/Http/Controllers/TaskController.php index 04b14ce302..33158cb0bc 100755 --- a/ProcessMaker/Http/Controllers/TaskController.php +++ b/ProcessMaker/Http/Controllers/TaskController.php @@ -66,7 +66,9 @@ public function index() $currentUser = Auth::user(); - return view('tasks.index', compact('title', 'userFilter', 'defaultColumns', 'taskDraftsEnabled', 'userConfiguration', 'showOldTaskScreen', 'currentUser', 'selectedProcess')); + $defaultSavedSearchId = $this->getDefaultSavedSearchId(); + + return view('tasks.index', compact('title', 'userFilter', 'defaultColumns', 'taskDraftsEnabled', 'userConfiguration', 'showOldTaskScreen', 'currentUser', 'selectedProcess', 'defaultSavedSearchId')); } public function edit(ProcessRequestToken $task, string $preview = '') diff --git a/ProcessMaker/Traits/SearchAutocompleteTrait.php b/ProcessMaker/Traits/SearchAutocompleteTrait.php index a4ec5e197e..5287de137e 100644 --- a/ProcessMaker/Traits/SearchAutocompleteTrait.php +++ b/ProcessMaker/Traits/SearchAutocompleteTrait.php @@ -13,6 +13,7 @@ use ProcessMaker\Models\ProcessRequestToken; use ProcessMaker\Models\User; use ProcessMaker\Package\Projects\Models\ProjectCategory; +use ProcessMaker\Package\SavedSearch\Models\SavedSearch; trait SearchAutocompleteTrait { @@ -259,4 +260,23 @@ private function searchProjectCategories($query) return $request->only(['id', 'name']); }); } + + /** + * Get the ID of the default saved search for tasks. + * + * @return int|null + */ + private function getDefaultSavedSearchId() + { + $id = null; + if (class_exists(SavedSearch::class)) { + $savedSearch = SavedSearch::firstSystemSearchFor( + Auth::user(), + SavedSearch::KEY_TASKS, + ); + $id = $savedSearch->id; + } + + return $id; + } } diff --git a/resources/js/components/shared/LaunchpadSettingsModal.vue b/resources/js/components/shared/LaunchpadSettingsModal.vue index 10dda3e785..ebf103f71e 100755 --- a/resources/js/components/shared/LaunchpadSettingsModal.vue +++ b/resources/js/components/shared/LaunchpadSettingsModal.vue @@ -499,7 +499,7 @@ export default { }, async getMyTasksColumns() { this.myTasks.currentColumns = this.myTasksColumns; - let defaultSavedSearch = window.ProcessMaker.defaultSavedSearch || null; + let defaultSavedSearch = window.ProcessMaker.defaultSavedSearchId || window.Processmaker.defaultSavedSearchId || null; await ProcessMaker.apiClient.get(`saved-searches/${defaultSavedSearch}/columns?include=default`) .then((response) => { if (response.data && response.data.default) { diff --git a/resources/views/tasks/index.blade.php b/resources/views/tasks/index.blade.php index 69a105d883..2ef1077d4d 100644 --- a/resources/views/tasks/index.blade.php +++ b/resources/views/tasks/index.blade.php @@ -160,6 +160,7 @@ window.ProcessMaker.showOldTaskScreen = @json($showOldTaskScreen); window.Processmaker.user = @json($currentUser); window.Processmaker.selectedProcess = @json($selectedProcess); + window.Processmaker.defaultSavedSearchId = @json($defaultSavedSearchId); @@ -548,7 +618,7 @@ label { color: #556271; margin-top: 16px; margin-bottom: 4px; - font-family: 'Open Sans', sans-serif; + font-family: "Open Sans", sans-serif; font-size: 16px; font-weight: 400; line-height: 22px; @@ -557,7 +627,7 @@ label { } .modal-title div { color: #556271; - font-family: 'Open Sans', sans-serif; + font-family: "Open Sans", sans-serif; font-size: 21px; font-weight: 400; line-height: 29px; @@ -577,7 +647,7 @@ label { margin: 0px; width: 90px; height: 40px; - font-family: 'Open Sans', sans-serif; + font-family: "Open Sans", sans-serif; font-size: 16px; font-weight: 600; line-height: 24px; @@ -595,7 +665,7 @@ label { height: 40px; margin: 0px; margin-left: 7px; - font-family: 'Open Sans', sans-serif; + font-family: "Open Sans", sans-serif; font-size: 16px; font-weight: 600; line-height: 24px; @@ -608,7 +678,7 @@ label { .text-info-custom { color: #556271; margin-bottom: 17px; - font-family: 'Open Sans', sans-serif; + font-family: "Open Sans", sans-serif; font-size: 16px; font-weight: 400; line-height: 22px; @@ -624,14 +694,15 @@ label { background: white; border-radius: 4px; border: 1px solid #cdddee; - font-family: 'Open Sans', sans-serif; + font-family: "Open Sans", sans-serif; font-size: 16px; font-weight: 400; line-height: 21.79px; letter-spacing: -0.02em; gap: 6px; } -.modal-dialog, .modal-content { +.modal-dialog, +.modal-content { min-width: 800px; } .options-launchpad { @@ -665,7 +736,7 @@ label { overflow: hidden; text-align: left; text-overflow: ellipsis; - font-family: 'Open Sans', sans-serif; + font-family: "Open Sans", sans-serif; font-size: 16px; font-weight: 400; line-height: 21.79px; @@ -689,7 +760,7 @@ label { .multiselect__input { max-width: 239px; height: 20px; - font-family: 'Open Sans', sans-serif; + font-family: "Open Sans", sans-serif; font-size: 16px; font-weight: 400; line-height: 21.79px; @@ -709,7 +780,7 @@ label { .multiselect__option { color: #556271; padding: 12px; - font-family: 'Open Sans', sans-serif; + font-family: "Open Sans", sans-serif; font-size: 16px; font-weight: 400; line-height: 21.79px;