Commit | Line | Data |
---|---|---|
9b057f1e CW |
1 | <legend> |
2 | {{ $ctrl.label || ts('%1 group', {1: $ctrl.conjunctions[$ctrl.op]}) }} | |
3 | <span class="crm-marker" ng-if=":: $ctrl.isRequired"> *</span> | |
4 | </legend> | |
5 | <div class="btn-group btn-group-xs" ng-if=":: $ctrl.hasParent"> | |
6 | <button class="btn btn-danger-outline" ng-click="$ctrl.deleteGroup()" title="{{:: ts('Remove group') }}"> | |
13a3d214 | 7 | <i class="crm-i fa-trash" aria-hidden="true"></i> |
19b53e5b C |
8 | </button> |
9 | </div> | |
9b057f1e CW |
10 | <div class="api4-clause-group-sortable" ng-model="$ctrl.clauses" ui-sortable="$ctrl.sortOptions"> |
11 | <div class="api4-input form-inline clearfix" ng-repeat="(index, clause) in $ctrl.clauses" ng-class="{hiddenElement: index < ($ctrl.skip || 0)}"> | |
12 | <div ng-if="index >= ($ctrl.skip || 0)"> | |
af6f5ac8 CW |
13 | <div class="api4-clause-badge" title="{{:: ts('Drag to reposition') }}"> |
14 | <span class="badge badge-info"> | |
9b057f1e CW |
15 | <span ng-if="index === ($ctrl.skip || 0) && !$ctrl.hasParent">{{ $ctrl.label }}</span> |
16 | <span ng-if="index > ($ctrl.skip || 0) || $ctrl.hasParent">{{ $ctrl.conjunctions[$ctrl.op] }}</span> | |
af6f5ac8 CW |
17 | <i class="crm-i fa-arrows" aria-hidden="true"></i> |
18 | </span> | |
19 | </div> | |
20 | <div ng-if="!$ctrl.conjunctions[clause[0]]" class="api4-input-group"> | |
475029f6 CW |
21 | <input class="collapsible-optgroups form-control" ng-model="clause[0]" crm-ui-select="{data: $ctrl.fields, allowClear: true, placeholder: 'Field'}" ng-change="$ctrl.changeClauseField(clause, index)" /> |
22 | <select class="form-control api4-operator" ng-model="clause[1]" ng-options="o for o in $ctrl.operators" ng-change="$ctrl.changeClauseOperator(clause)" ></select> | |
9b057f1e | 23 | <input class="form-control" ng-model="clause[2]" api4-exp-value="{field: clause[0], op: clause[1], format: $ctrl.format}" /> |
af6f5ac8 | 24 | </div> |
9b057f1e CW |
25 | <fieldset class="clearfix" ng-if="$ctrl.conjunctions[clause[0]]"> |
26 | <crm-api4-clause clauses="clause[1]" format="{{ $ctrl.format }}" op="{{ clause[0] }}" fields="$ctrl.fields" delete-group="$ctrl.deleteRow(index)" ></crm-api4-clause> | |
af6f5ac8 | 27 | </fieldset> |
19b53e5b | 28 | </div> |
19b53e5b C |
29 | </div> |
30 | </div> | |
31 | <div class="api4-input form-inline"> | |
32 | <div class="api4-clause-badge"> | |
9b057f1e | 33 | <div class="btn-group btn-group-xs" title="{{ $ctrl.hasParent ? ts('Add a subgroup of clauses') : ts('Add a group of clauses') }}"> |
19b53e5b | 34 | <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> |
9b057f1e | 35 | {{ $ctrl.conjunctions[$ctrl.op] }} <span class="caret"></span> |
19b53e5b C |
36 | </button> |
37 | <ul class="dropdown-menu api4-add-where-group-menu"> | |
9b057f1e | 38 | <li ng-repeat="(con, label) in $ctrl.conjunctions" ng-show="$ctrl.op !== con"> |
af6f5ac8 | 39 | <a href ng-click="$ctrl.addGroup(con)">{{ label }}</a> |
19b53e5b C |
40 | </li> |
41 | </ul> | |
42 | </div> | |
43 | </div> | |
9b057f1e | 44 | <input class="collapsible-optgroups form-control" ng-model="$ctrl.newClause" ng-change="$ctrl.addClause()" title="Add a single clause" crm-ui-select="{data: $ctrl.fields, placeholder: 'Add clause'}" /> |
6ba6f2bd | 45 | </div> |