From bf41aa54efa864bfe1e96d4cde0d37eeea31a2cf Mon Sep 17 00:00:00 2001 From: Ioannis Igoumenos Date: Wed, 13 Mar 2024 17:06:40 +0200 Subject: [PATCH] Added loader. Fixed duplicates. --- app/src/Controller/ApiV2Controller.php | 5 +- app/src/Controller/StandardController.php | 5 ++ app/src/Model/Table/PeopleTable.php | 5 +- .../autocomplete/cm-autocomplete-people.js | 1 + .../comanage/components/common/mini-loader.js | 46 +++++++++++++++++++ 5 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 app/webroot/js/comanage/components/common/mini-loader.js diff --git a/app/src/Controller/ApiV2Controller.php b/app/src/Controller/ApiV2Controller.php index a0cf9460a..2f6b4ea91 100644 --- a/app/src/Controller/ApiV2Controller.php +++ b/app/src/Controller/ApiV2Controller.php @@ -313,7 +313,10 @@ public function index() { // Construct the Query $query = $this->getIndexQuery($pickerMode); - // This magically makes REST calls paginated... can use eg direction=, + if(method_exists($table, 'findIndexed')) { + $query = $table->findIndexed($query); + } + // This magically makes REST calls paginated... can use eg direction=, // sort=, limit=, page= $this->set($this->tableName, $this->paginate($query)); diff --git a/app/src/Controller/StandardController.php b/app/src/Controller/StandardController.php index acd27de48..0c4349b08 100644 --- a/app/src/Controller/StandardController.php +++ b/app/src/Controller/StandardController.php @@ -570,6 +570,11 @@ public function index() { $tableName = $table->getTable(); // Construct the Query $query = $this->getIndexQuery(); + + if(method_exists($table, 'findIndexed')) { + $query = $table->findIndexed($query); + } + // Fetch the data and paginate $resultSet = $this->paginate($query); diff --git a/app/src/Model/Table/PeopleTable.php b/app/src/Model/Table/PeopleTable.php index 64d337900..6d13c9aba 100644 --- a/app/src/Model/Table/PeopleTable.php +++ b/app/src/Model/Table/PeopleTable.php @@ -289,12 +289,11 @@ public function beforeDelete(\Cake\Event\Event $event, $entity, \ArrayObject $op * Customized finder for the Index Population View * * @param Query $query Cake ORM Query - * @param array $options Cake ORM Query options * - * @return CakeORMQuery Cake ORM Query + * @return Query Cake ORM Query * @since COmanage Registry v5.0.0 */ - public function findIndexed(Query $query, array $options): Query { + public function findIndexed(Query $query): Query { return $query->select([ 'People.id', 'PrimaryName.given', diff --git a/app/webroot/js/comanage/components/autocomplete/cm-autocomplete-people.js b/app/webroot/js/comanage/components/autocomplete/cm-autocomplete-people.js index 1bedc614a..8c0c81f8b 100644 --- a/app/webroot/js/comanage/components/autocomplete/cm-autocomplete-people.js +++ b/app/webroot/js/comanage/components/autocomplete/cm-autocomplete-people.js @@ -166,6 +166,7 @@ export default { :minLength="this.options.minLength" :placeholder="this.txt['autocomplete.people.placeholder']" :delay="500" + loadingIcon=null forceSelection @item-select="setPerson">