Browse Source

Merge branch 'hotfix-client-state-onu' into 'master'

Created a new template and routing and adapted loader to return just clients actives

See merge request interlink-sa/flowdat3/vendors/webservice!2
Jean Sumara Leopoldo 5 năm trước cách đây
mục cha
commit
c67b6e09db

+ 2 - 0
.gitignore

@@ -0,0 +1,2 @@
+.idea
+vendor/

+ 25 - 0
Controller/WebserviceController.php

@@ -34,6 +34,31 @@ class WebserviceController extends Controller
         return $response;
     }
 
+    /**
+     * @param Request $request
+     * @return JsonResponse
+     */
+    public function getClientListActiveAction(Request $request)
+    {
+        $query = $request->query->get('q', '');
+
+        $choice_loader = $this->get('webservice.client.choiceloader');
+        $choice_list = $choice_loader->getChoicesListActive($query);
+        $list_values = [];
+
+        foreach ($choice_list as $label => $id) {
+            $list_values[] = [
+                'id' => $id,
+                'text' => $label
+            ];
+        }
+
+        $response = new JsonResponse();
+        $response->setData(['results' => $list_values]);
+
+        return $response;
+    }
+
     /**
      * @param Request $request
      * @return JsonResponse

+ 42 - 0
Form/ChoiceList/Loader/ClientChoiceLoader.php

@@ -180,6 +180,7 @@ class ClientChoiceLoader implements ChoiceLoaderInterface
             }
         }
 
+
         $choices = $this->webservice->getChoices($this->webserviceParameter, $params, true, array(), $limit);
 
         $result = [];
@@ -199,6 +200,47 @@ class ClientChoiceLoader implements ChoiceLoaderInterface
         return $result;
     }
 
+    /**
+     * Get first n choices
+     *
+     * @param string $filter
+     *
+     * @return array
+     */
+    public function getChoicesListActive($filter)
+    {
+        $params = array();
+        $limit = 100;
+
+        if ($filter !== false) {
+            $params['qb-criteria'] = "";
+            $params['orWhere'] = "";
+            $params['externalId'] = urlencode($filter);
+            $params['name'] = urlencode($filter);
+            if ($this->filterTenancy) {
+                $params['tenancyId'] = $this->tenancyService->getTenancyIdCurrent();
+            }
+        }
+
+        $choices = $this->webservice->getChoices('client_active', $params, true, array(), $limit);
+
+        $result = [];
+        $cnt = 0;
+
+        $filter = mb_strtolower($filter);
+        $filter_len = mb_strlen($filter);
+
+        foreach ($choices as $label => $id) {
+            $result[$label] = $id;
+            $cnt++;
+            if ($cnt == $limit) {
+                break;
+            }
+        }
+
+        return $result;
+    }
+
     /**
      * Validate whether a choice exists
      */

+ 4 - 0
Resources/config/routing.yml

@@ -2,6 +2,10 @@ ajax_client_list:
     path:      /ajax_client_list
     defaults:  { _controller: WebserviceBundle:Webservice:getClientList }
 
+ajax_client_list_active:
+    path:      /ajax_client_list_active
+    defaults:  { _controller: WebserviceBundle:Webservice:getClientListActive }
+
 ajax_client_data:
     path:      /ajax_client_data
     defaults:  { _controller: WebserviceBundle:Webservice:getClientData }

+ 1 - 1
Resources/views/Type/remote_client_widget.html.twig

@@ -28,7 +28,7 @@
                     {% endif %}
 
                     {% if ajax_url is not defined %}
-                    {% set ajax_url = 'ajax_client_list' %}
+                    {% set ajax_url = 'ajax_client_list_active' %}
                     {% endif %}
 
                     {% if ajax_url_data is not defined %}