SearchKit - Expose default display to the UI
[civicrm-core.git] / ext / afform / admin / ang / afAdmin / afAdminList.html
1 <div id="bootstrap-theme" class="afadmin-list">
2 <h1 crm-page-title>{{:: ts('Form Builder') }}</h1>
3
4 <ul class="nav nav-tabs">
5 <li role="presentation" ng-repeat="tab in $ctrl.tabs" ng-class="{active: tab.name === $ctrl.tab}">
6 <a href ng-click="$ctrl.tab = tab.name; $ctrl.searchAfformList = ''"><i class="crm-i {{ tab.icon }}"></i> {{:: tab.plural }}</a>
7 </li>
8 </ul>
9
10 <div class="form-inline">
11 <label for="afform-list-filter">{{:: ts('Filter:') }}</label>
12 <input class="form-control" type="search" id="afform-list-filter" ng-model="$ctrl.searchAfformList" placeholder="&#xf002">
13 <div class="btn-group pull-right" ng-if="types[$ctrl.tab].options !== false">
14 <a ng-if="types[$ctrl.tab].default" href="{{ types[$ctrl.tab].default }}" class="btn btn-primary">
15 {{ ts('New %1', {1: types[$ctrl.tab].label }) }}
16 </a>
17 <button type="button" ng-click="$ctrl.createLinks()" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
18 <span ng-class="{'sr-only': types[$ctrl.tab].default}">{{ ts('New %1', {1: types[$ctrl.tab].label }) }}</span>
19 <span class="caret"></span>
20 </button>
21 <ul class="dropdown-menu">
22 <li ng-class="{disabled: !types[$ctrl.tab].options || !types[$ctrl.tab].options.length}">
23 <input ng-if="types[$ctrl.tab].options && types[$ctrl.tab].options.length" type="search" class="form-control" placeholder="&#xf002" ng-model="searchCreateLinks.label">
24 <a href ng-if="!types[$ctrl.tab].options"><i class="crm-i fa-spinner fa-spin"></i></a>
25 <a href ng-if="types[$ctrl.tab].options && !types[$ctrl.tab].options.length">{{:: ts('None Found') }}</a>
26 </li>
27 <li ng-repeat="link in types[$ctrl.tab].options | filter:searchCreateLinks" class="{{:: link.class }}">
28 <a ng-if=":: link.url" href="{{:: link.url }}">
29 <i class="crm-i {{:: link.icon }}"></i>
30 {{:: link.label }}
31 </a>
32 </li>
33 </ul>
34 </div>
35 </div>
36
37 <table class="table table-striped">
38 <thead>
39 <tr>
40 <th title="{{:: ts('Click to sort') }}" ng-click="$ctrl.sortBy('title')">
41 <i class="crm-i fa-sort disabled" ng-if="$ctrl.sortField !== 'title'"></i>
42 <i class="crm-i fa-sort-{{ $ctrl.sortDir ? 'asc' : 'desc' }}" ng-if="$ctrl.sortField === 'title'"></i>
43 {{:: ts('Title') }}
44 </th>
45 <th title="{{:: ts('Click to sort') }}" ng-click="$ctrl.sortBy('name')">
46 <i class="crm-i fa-sort disabled" ng-if="$ctrl.sortField !== 'name'"></i>
47 <i class="crm-i fa-sort-{{ $ctrl.sortDir ? 'asc' : 'desc' }}" ng-if="$ctrl.sortField === 'name'"></i>
48 {{:: ts('Name') }}
49 </th>
50 <th title="{{:: ts('Click to sort') }}" ng-click="$ctrl.sortBy('server_route')">
51 <i class="crm-i fa-sort disabled" ng-if="$ctrl.sortField !== 'server_route'"></i>
52 <i class="crm-i fa-sort-{{ $ctrl.sortDir ? 'asc' : 'desc' }}" ng-if="$ctrl.sortField === 'server_route'"></i>
53 {{:: ts('Page') }}
54 </th>
55 <th title="{{:: ts('Click to sort') }}" ng-click="$ctrl.sortBy('placement.length')">
56 <i class="crm-i fa-sort disabled" ng-if="$ctrl.sortField !== 'placement.length'"></i>
57 <i class="crm-i fa-sort-{{ $ctrl.sortDir ? 'asc' : 'desc' }}" ng-if="$ctrl.sortField === 'placement.length'"></i>
58 {{:: ts('Placement') }}
59 </th>
60 <th></th>
61 </tr>
62 </thead>
63 <tbody>
64 <tr ng-repeat="afform in $ctrl.afforms[$ctrl.tab] | filter:$ctrl.searchAfformList | orderBy:$ctrl.sortField:$ctrl.sortDir">
65 <td>{{:: afform.title }}</td>
66 <td>
67 <code>{{:: afform.name }}</code>
68 </td>
69 <td>
70 <a ng-if=":: afform.server_route" ng-href="{{:: crmUrl(afform.server_route, null, afform.is_public ? 'front' : 'back') }}" target="_blank">
71 <i class="crm-i fa-external-link"></i>
72 {{:: afform.server_route }}
73 </a>
74 </td>
75 <td>{{:: afform.placement.join(', ') }}</td>
76 <td class="text-right">
77 <a ng-if="afform.type !== 'system'" href="#/edit/{{:: afform.name }}" class="btn btn-xs btn-primary">{{:: ts('Edit') }}</a>
78 <a ng-if="afform.type !== 'system'" href="#/clone/{{:: afform.name }}" class="btn btn-xs btn-secondary">{{:: ts('Clone') }}</a>
79 <a href ng-if="afform.has_local" class="btn btn-xs btn-danger" crm-confirm="{type: afform.has_base ? 'revert' : 'delete', obj: afform}" on-yes="$ctrl.revert(afform)">
80 {{ afform.has_base ? ts('Revert') : ts('Delete') }}
81 </a>
82 </td>
83 </tr>
84 <tr ng-if="!$ctrl.afforms[$ctrl.tab] || $ctrl.afforms[$ctrl.tab].length === 0">
85 <td colspan="9">
86 <p class="messages status no-popup text-center">
87 {{:: ts('None Found')}}
88 </p>
89 </td>
90 </tr>
91 </tbody>
92 </table>
93 </div>