diff --git a/ProcessMaker/Http/Controllers/Api/ProcessController.php b/ProcessMaker/Http/Controllers/Api/ProcessController.php index b55cd6a597..e6000c96bb 100644 --- a/ProcessMaker/Http/Controllers/Api/ProcessController.php +++ b/ProcessMaker/Http/Controllers/Api/ProcessController.php @@ -45,7 +45,7 @@ class ProcessController extends Controller { const CAROUSEL_TYPES = [ 'IMAGE' => 'image', - 'EMBED' => 'embed' + 'EMBED' => 'embed', ]; /** @@ -128,6 +128,7 @@ public function index(Request $request) 'id' => $item['id'], 'events'=> $item['start_events']]; }); + return new ApiCollection($modifiedCollection); } @@ -402,7 +403,7 @@ public function store(Request $request) * @param Process $process * @return ResponseFactory|Response * - * @throws \Throwable + * @throws Throwable * * @OA\Put( * path="/processes/{processId}", @@ -520,7 +521,7 @@ public function update(Request $request, Process $process) public function updateBpmn(Request $request, Process $process) { $request->validate(Process::rules($process)); - + // bpmn validation if ($schemaErrors = $this->validateBpmn($request)) { $warnings = []; @@ -557,7 +558,8 @@ public function updateBpmn(Request $request, Process $process) ], 200); } - private function updateSubprocessElement($parentProcess, $request, $process) { + private function updateSubprocessElement($parentProcess, $request, $process) + { $definitions = $parentProcess->getDefinitions(); $elements = $definitions->getElementsByTagName('callActivity'); foreach ($elements as $element) { @@ -584,7 +586,7 @@ private function updateSubprocessElement($parentProcess, $request, $process) { * @param Process $process * @return ResponseFactory|Response * - * @throws \Throwable + * @throws Throwable * * @OA\Put( * path="/processes/{processId}/draft", @@ -948,7 +950,7 @@ public function startProcesses(Request $request) * @param Process $process * @return ResponseFactory|Response * - * @throws \Throwable + * @throws Throwable * * @OA\Put( * path="/processes/{processId}/restore", @@ -1294,7 +1296,7 @@ public function import_ready($code) * * @return resource * - * @throws \Throwable + * @throws Throwable * * @OA\Post( * path="/processes/{process_id}/import/assignments", @@ -1440,7 +1442,7 @@ public function importAssignments(Process $process, Request $request) * @param Process $process * @param Request $request * - * @return \ProcessMaker\Http\Resources\ProcessRequests + * @return ProcessRequests * * @OA\Post( * path="/process_events/{process_id}", @@ -1778,7 +1780,7 @@ public function deleteMediaImages(Request $request, Process $process) * @param string $uuid * @param string $collectionName * @return bool - */ + */ private function deleteImage(Process $process, $uuid, $collectionName) { // Retrieve the media image by UUID and collection name @@ -1788,6 +1790,7 @@ private function deleteImage(Process $process, $uuid, $collectionName) // If the media image exists, delete it and return true if ($mediaImagen) { $mediaImagen->delete(); + return true; } else { // Otherwise, return false diff --git a/ProcessMaker/Http/Controllers/Auth/LoginController.php b/ProcessMaker/Http/Controllers/Auth/LoginController.php index 4b3d7cf925..61ed085d2b 100644 --- a/ProcessMaker/Http/Controllers/Auth/LoginController.php +++ b/ProcessMaker/Http/Controllers/Auth/LoginController.php @@ -277,11 +277,11 @@ public function loggedOut(Request $request) * Handle a login request to the application. * Overrides the original login action. * - * @param \Illuminate\Http\Request $request - * @param \ProcessMaker\Models\User $user + * @param Request $request + * @param User $user * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\Response|\Illuminate\Http\JsonResponse * - * @throws \Illuminate\Validation\ValidationException + * @throws ValidationException */ public function login(Request $request, User $user) { @@ -340,7 +340,7 @@ public function login(Request $request, User $user) /** * Throws locked error message * - * @throws \Illuminate\Validation\ValidationException + * @throws ValidationException */ protected function throwLockedLoginResponse() { diff --git a/ProcessMaker/Http/Controllers/ProcessController.php b/ProcessMaker/Http/Controllers/ProcessController.php index 9da007d074..74bb1600bd 100644 --- a/ProcessMaker/Http/Controllers/ProcessController.php +++ b/ProcessMaker/Http/Controllers/ProcessController.php @@ -124,7 +124,7 @@ public function edit(Process $process) 'canEditData', 'addons', 'assignedProjects', - 'isDraft' + 'isDraft', ])); } diff --git a/ProcessMaker/Models/ProcessRequest.php b/ProcessMaker/Models/ProcessRequest.php index 5ab2a1f681..accec25261 100644 --- a/ProcessMaker/Models/ProcessRequest.php +++ b/ProcessMaker/Models/ProcessRequest.php @@ -527,10 +527,11 @@ public function summary() $result[] = [ 'key' => $key, 'value' => $value, - 'type' => $type + 'type' => $type, ]; } } + return $result; } diff --git a/resources/js/components/shared/FilterTableBodyMixin.js b/resources/js/components/shared/FilterTableBodyMixin.js index d153cd7fb0..a5ceec47a1 100644 --- a/resources/js/components/shared/FilterTableBodyMixin.js +++ b/resources/js/components/shared/FilterTableBodyMixin.js @@ -34,7 +34,8 @@ export default { this.page = page; this.fetch(); }, - changePerPage(value) { + changePerPage(value, page) { + this.page = page; this.perPage = value; this.fetch(); }, @@ -81,6 +82,6 @@ export default { if (e.target.offsetWidth >= e.target.scrollWidth) { e.preventDefault(); } - } + }, }, }; diff --git a/resources/js/components/shared/PaginationTable.vue b/resources/js/components/shared/PaginationTable.vue index 3c2dd9a5cc..e5581f48be 100644 --- a/resources/js/components/shared/PaginationTable.vue +++ b/resources/js/components/shared/PaginationTable.vue @@ -169,8 +169,7 @@ export default { this.$emit("page-change", page); }, changePerPage(value) { - this.goToPage(this.defaultPage); - this.$emit("per-page-change", value); + this.$emit("per-page-change", value, this.defaultPage); }, redirectPage(value) { this.$emit("page-change", value); @@ -234,7 +233,6 @@ export default { font-weight: 700; } .pagination-total { - margin-left: 10px; padding: 0px 8px 0px 8px; } .pagination-dropup { diff --git a/resources/js/components/shared/UtilsTable.js b/resources/js/components/shared/UtilsTable.js new file mode 100644 index 0000000000..4be0e70a86 --- /dev/null +++ b/resources/js/components/shared/UtilsTable.js @@ -0,0 +1,30 @@ +export const ellipsisSortClick = (categoryColumn, context)=>{ + context.fields.forEach(column => { + if (column.field !== categoryColumn.field) { + column.direction = "none"; + column.filterApplied = false; + } + }); + + if (categoryColumn.direction === "asc") { + categoryColumn.direction = "desc"; + } else if (categoryColumn.direction === "desc") { + categoryColumn.direction = "none"; + categoryColumn.filterApplied = false; + } else { + categoryColumn.direction = "asc"; + categoryColumn.filterApplied = true; + } + + if (categoryColumn.direction !== "none") { + const sortOrder = [ + { + sortField: categoryColumn.sortField || categoryColumn.field, + direction: categoryColumn.direction, + }, + ]; + context.dataManager(sortOrder); + } else { + context.fetch(); + } +} \ No newline at end of file diff --git a/resources/js/components/shared/index.js b/resources/js/components/shared/index.js index 329a35ccdf..ed7ba872c1 100644 --- a/resources/js/components/shared/index.js +++ b/resources/js/components/shared/index.js @@ -54,6 +54,7 @@ import DataLoading from '../../components/common/DataLoading'; import AvatarImage from '../../components/AvatarImage'; import FilterTableBodyMixin from "./FilterTableBodyMixin"; import PaginationTable from "./PaginationTable.vue"; +import { ellipsisSortClick } from "./UtilsTable"; import TaskTooltip from "../../tasks/components/TaskTooltip.vue"; export { @@ -113,5 +114,6 @@ export { AvatarImage, FilterTableBodyMixin, PaginationTable, + ellipsisSortClick, TaskTooltip, }; diff --git a/resources/js/processes-catalogue/components/RequestTab.vue b/resources/js/processes-catalogue/components/RequestTab.vue index 0d5432bdca..07d7041dc1 100644 --- a/resources/js/processes-catalogue/components/RequestTab.vue +++ b/resources/js/processes-catalogue/components/RequestTab.vue @@ -132,7 +132,8 @@ export default { this.page = page; this.queryBuilder(); }, - changePerPage(value) { + changePerPage(value, page) { + this.page = page; this.perPage = value; this.queryBuilder(); }, diff --git a/resources/js/processes-catalogue/components/TaskTab.vue b/resources/js/processes-catalogue/components/TaskTab.vue index 0c67f94fdf..0c4c5ccf95 100644 --- a/resources/js/processes-catalogue/components/TaskTab.vue +++ b/resources/js/processes-catalogue/components/TaskTab.vue @@ -133,7 +133,8 @@ export default { this.page = page; this.queryBuilder(); }, - changePerPage(value) { + changePerPage(value, page) { + this.page = page; this.perPage = value; this.queryBuilder(); }, diff --git a/resources/js/processes/categories/components/CategoriesListing.vue b/resources/js/processes/categories/components/CategoriesListing.vue index 5fdfa97ad9..47200211dc 100644 --- a/resources/js/processes/categories/components/CategoriesListing.vue +++ b/resources/js/processes/categories/components/CategoriesListing.vue @@ -19,7 +19,7 @@
{ - if (column.field !== categoryColumn.field) { - column.direction = "none"; - column.filterApplied = false; - } - }); - - if (categoryColumn.direction === "asc") { - categoryColumn.direction = "desc"; - } else if (categoryColumn.direction === "desc") { - categoryColumn.direction = "none"; - categoryColumn.filterApplied = false; - } else { - categoryColumn.direction = "asc"; - categoryColumn.filterApplied = true; - } - - if (categoryColumn.direction !== "none") { - const sortOrder = [ - { - sortField: categoryColumn.sortField || categoryColumn.field, - direction: categoryColumn.direction, - }, - ]; - this.dataManager(sortOrder); - } else { - this.fetch(); - } + onClickEllipsis(column) { + ellipsisSortClick(column, this); }, } }; diff --git a/resources/js/processes/screens/components/ScreenListing.vue b/resources/js/processes/screens/components/ScreenListing.vue index 8d20fd1e49..611af1f2bc 100644 --- a/resources/js/processes/screens/components/ScreenListing.vue +++ b/resources/js/processes/screens/components/ScreenListing.vue @@ -7,36 +7,84 @@ :empty-desc="$t('')" empty-icon="noData" /> -
- + -