SearchKit - Make UI less confusing by not allowing joins to be switched
authorColeman Watts <coleman@civicrm.org>
Thu, 21 Jan 2021 15:38:34 +0000 (10:38 -0500)
committerColeman Watts <coleman@civicrm.org>
Thu, 21 Jan 2021 15:38:34 +0000 (10:38 -0500)
Switching a join was confusing and buggy. Best to disable that and only allow them to be deleted

ext/search/ang/crmSearchAdmin/compose/criteria.html
ext/search/ang/crmSearchAdmin/crmSearchAdmin.component.js
ext/search/css/search.css

index 78c75a391a476b1eabf3761365aa40bad4659af4..eefa730caab63b2e69fcc5e2db783f8b32afb4f4 100644 (file)
@@ -4,8 +4,11 @@
       <fieldset ng-repeat="join in $ctrl.savedSearch.api_params.join">
         <div class="form-inline">
           <label for="crm-search-join-{{ $index }}">{{:: ts('With') }}</label>
-          <input id="crm-search-join-{{ $index }}" class="form-control huge" ng-model="join[0]" crm-ui-select="{placeholder: ' ', data: getJoinEntities}" ng-change="changeJoin($index)" />
+          <input id="crm-search-join-{{ $index }}" class="form-control huge" ng-model="join[0]" crm-ui-select="{placeholder: ' ', data: getJoinEntities}" disabled >
           <select class="form-control" ng-model="join[1]" ng-options="o.k as o.v for o in ::joinTypes" ></select>
+          <button class="btn btn-xs btn-danger-outline" ng-click="$ctrl.clearParam('join', $index)" title="{{:: ts('Remove join') }}">
+            <i class="crm-i fa-trash" aria-hidden="true"></i>
+          </button>
         </div>
         <fieldset class="api4-clause-fieldset">
           <crm-search-clause clauses="join" format="json" skip="2 + getJoin(join[0]).conditions.length" op="AND" label="{{ ts('If') }}" fields="fieldsForWhere" ></crm-search-clause>
index ad1580caec5df21fa1f67e15ab0fbe407b1f79f6..353851435ff2b3e1a3f255bfa4f87cb6a1dab10f 100644 (file)
         });
       };
 
-      $scope.changeJoin = function(idx) {
-        if (ctrl.savedSearch.api_params.join[idx][0]) {
-          ctrl.savedSearch.api_params.join[idx].length = 2;
-          loadFieldOptions();
-        } else {
-          ctrl.clearParam('join', idx);
-        }
-      };
-
       $scope.changeGroupBy = function(idx) {
         if (!ctrl.savedSearch.api_params.groupBy[idx]) {
           ctrl.clearParam('groupBy', idx);
index 319fdb140002a744f4e3d5eee995f2dc04e5a06f..d6ac891b3cbcf15a733e7f4db9f2e8d85f2c48a9 100644 (file)
@@ -69,9 +69,6 @@
   right: 0;
   top: 0;
 }
-#bootstrap-theme.crm-search crm-search-clause > .btn-group .btn {
-  border: 0 none;
-}
 
 #bootstrap-theme.crm-search fieldset div.api4-input {
   margin-bottom: 10px;