1<div class="row column">
2  <button type="button" ng-class="{'disabled' : roleGroupType === '' }" ng-disabled="roleGroupType === ''"
3    class="btn btn-tertiary" ng-click="addGroupFn(); $parent.newGroup={}">
4    <icon aria-hidden="true" file="icon-plus.svg"></icon>
5    <span>Add role group</span>
6  </button>
7  <button type="button" ng-disabled="roleGroupType === '' || !hasSelectedGroup" class="btn btn-tertiary"
8    ng-click="removeMultipleRoleGroupsFn() ">
9    <icon aria-hidden="true" file="icon-trashcan.svg"></icon>
10    <span>Remove role groups</span>
11  </button>
12</div>
13<div class="ldap__table">
14  <div class="table__row-header row column" ng-class="{'disabled' : !enabled }">
15    <div class="row column">
16      <div class="table__cell-select">
17        <label class="control-check" aria-label="select or deselect all groups">
18          <input type="checkbox" ng-disabled="!enabled || roleGroups.length < 1 " name="events__check"
19            ng-click="toggleAll()" ng-checked="roleGroupIsSelectedChanged()" ng-model="all" />
20          <span class="control__indicator"></span>
21        </label>
22      </div>
23      <div class="table__cell-sort">
24        <div class="column small-2 sort_button_wrapper">
25          <button class="sort-ascending" ng-click="sortBy('RemoteGroup', false)"></button>
26          <button class="sort-descending" ng-click="sortBy('RemoteGroup', true)"></button>
27        </div>
28      </div>
29      <div class="table__cell-ldap-group">
30        Group name
31      </div>
32      <div class="table__cell-sort">
33        <div class="column small-2 sort_button_wrapper">
34          <button class="sort-ascending" ng-click="sortBy('LocalRole', false)"></button>
35          <button class="sort-descending" ng-click="sortBy('LocalRole', true)"></button>
36        </div>
37      </div>
38      <div class="table__cell-ldap-role">
39        Group privilege
40      </div>
41    </div>
42  </div>
43  <div class="empty__logs" ng-if="roleGroups.length < 1 || !enabled">
44    <p ng-if="roleGroups.length < 1 && roleGroupType === 'ad' ||  roleGroupType === 'ldap'">
45      No role groups have been created yet.
46    </p>
47    <p ng-if=" roleGroupType === '' " ng-class="{'disabled' : !enabled }">
48      LDAP authentication must be enabled before creating role groups.
49    </p>
50  </div>
51  <div ng-repeat="group in roleGroups | orderBy:sortPropertyName:reverse track by $index ">
52    <div class="row column table__row-value" ng-if="enabled">
53      <div class="table__cell-select select-header">
54        <label class="control-check" aria-label="select or deselect group">
55          <input type="checkbox" name="events__check" ng-model="group.isSelected"
56            ng-change="roleGroupIsSelectedChanged(); optionToggled()" />
57          <span class="control__indicator"></span>
58        </label>
59      </div>
60      <div class="table__cell-ldap">
61        {{ group.RemoteGroup }}
62      </div>
63      <div class="table__cell-ldap">
64        {{ group.LocalRole }}
65      </div>
66      <div class="table__cell-buttons">
67        <button class="btn btn-tertiary" type="button" aria-label="edit selected role group"
68          ng-click="editGroupFn(group.RemoteGroup, group.LocalRole, $index); newGroup.RemoteGroup = group.RemoteGroup; newGroup.LocalRole = group.LocalRole; selectedGroupIndex = $index">
69          <icon aria-hidden="true" file="icon-edit.svg"></icon>
70        </button>
71        <button class="btn btn-tertiary" type="button" aria-label="delete selected role group"
72          ng-class="{'disabled' : roleGroups.length < 1}"
73          ng-click="removeGroupFn($index); newGroup.RemoteGroup = group.RemoteGroup; newGroup.LocalRole = group.LocalRole; selectedGroupIndex = $index">
74          <icon aria-hidden="true" file="icon-trashcan.svg"></icon>
75        </button>
76      </div>
77    </div>
78  </div>
79</div>
80<section class="modal" aria-hidden="true" role="dialog" ng-class="{'active': addGroup || editGroup}">
81  <h3 class="subhead">{{ addGroup ? "Add new role group" : "Edit group privilege" }}</h3>
82  <div class="modal__content-ldap">
83    <div ng-if="addGroup">
84      <form name="add__group__form" id="add__group__form" novalidate>
85        <div class="small-9">
86          <label for="group_name">Role group name</label>
87          <input type="text" name="group_name" id="group_name" ng-model="newGroup.RemoteGroup" required />
88          <div ng-messages="add__group__form.group_name.$error" class="form-error"
89            ng-class="{'visible' : add__group__form.group_name.$touched}">
90            <p ng-message="required">Field is required</p>
91          </div>
92        </div>
93        <div class="small-9">
94          <label for="group__role">Privilege</label>
95          <select id="group__role" class="select__group-role" name="group__role" ng-model="newGroup.LocalRole" required>
96            <option class="courier-bold" ng-value="">Select an option</option>
97            <option class="courier-bold" ng-repeat="privilege in privileges">{{
98              privilege
99            }}</option>
100          </select>
101          <div ng-messages="add__group__form.group__role.$error" class="form-error"
102            ng-class="{'visible' : add__group__form.group__role.$touched}">
103            <p ng-message="required">Field is required</p>
104          </div>
105        </div>
106      </form>
107      <div class="form-actions">
108        <button type="button" class="btn btn-primary" ng-class="{'disabled' : add__group__form.$invalid}"
109          ng-click="addRoleGroup(); $parent.addGroup=false; $parent.newGroup={}">
110          Save
111        </button>
112        <button type="button" class="btn btn-secondary" ng-click="$parent.addGroup=false; $parent.newGroup={}">
113          Cancel
114        </button>
115      </div>
116    </div>
117    <div ng-if="editGroup">
118      <form name="edit__group__form" id="edit__group__form" novalidate>
119        <label>Role group name</label>
120        <div class="small-9 edit-group-name" ng-model="newGroup.RemoteGroup">
121          {{ newGroup.RemoteGroup }}
122        </div>
123        <div class="small-9">
124          <label for="group__role__edit">Privilege</label>
125          <select id="group__role__edit" name="group__role__edit" ng-model="newGroup.LocalRole" required>
126            <option class="courier-bold" ng-repeat="privilege in privileges">{{
127              privilege
128            }}</option>
129          </select>
130          <div ng-messages="edit__group__form.group__role__edit.$error" class="form-error"
131            ng-class="{'visible' : edit__group__form.group__role__edit.$touched}">
132            <p ng-message="required">Field is required</p>
133          </div>
134        </div>
135      </form>
136      <div class="form-actions">
137        <button type="button" class="btn btn-primary"
138          ng-click="editRoleGroup();$parent.editGroup=false; $parent.newGroup={}">
139          Save
140        </button>
141        <button type="button" class="btn btn-secondary" ng-click="$parent.editGroup=false; $parent.newGroup={}">
142          Cancel
143        </button>
144      </div>
145    </div>
146  </div>
147</section>
148<section class="modal" aria-hidden="true" role="dialog" ng-class="{'active': removeGroup}">
149  <h3 class="subhead">Remove role group</h3>
150  <div class="modal__content-ldap">
151    <p>Are you sure you want to remove "{{ newGroup.RemoteGroup }}"?</p>
152  </div>
153  <div class="form-actions">
154    <button type="button" class="btn btn-primary" ng-click="removeRoleGroup(); $parent.removeGroup=false; newGroup={}">
155      Remove
156    </button>
157    <button type="button" class="btn btn-secondary"
158      ng-click="removeGroup=false; $parent.removeGroup=false; newGroup={}">
159      Cancel
160    </button>
161  </div>
162</section>
163<section class="modal" aria-hidden="true" role="dialog" ng-class="{'active': removeMultipleGroups}">
164  <div class="page-header">
165    <h3>Remove role group</h3>
166  </div>
167  <div class="modal__content-ldap">
168    <p>
169      Are you sure you want to remove
170      <span ng-repeat="groups in roleGroups | filter:{isSelected:true}">{{ $last && !$first ? " and " : $first ? "" : ", "
171        }}{{ "'" + groups.RemoteGroup + "'" }}?</span>
172    </p>
173  </div>
174  <div class="form-actions">
175    <button type="button" class="btn btn-primary"
176      ng-click="removeMultipleRoleGroups();$parent.removeMultipleGroups=false; $parent.newGroup={}">
177      Remove
178    </button>
179    <button type="button" class="btn btn-secondary" ng-click="removeMultipleGroups = false">
180      Cancel
181    </button>
182  </div>
183</section>
184<div class="modal-overlay" tabindex="-1"
185  ng-class="{'active': addGroup || editGroup || removeGroup || removeMultipleGroups}"></div>