Project

General

Profile

1
<h4>Users</h4>
2
<br />
3

    
4
<div class="row">
5
	<div class="col-sm-12 col-md-10 col-lg-8">
6
		<input type="text" class="form-control form-control-sm mb-3" ng-model="userFilter.email" placeholder="Filter...">
7
		
8
		<table class="table table-sm table-hover">
9
			<thead class="thead-light">
10
				<tr class="d-flex">
11
					<th class="col-4">User</th>
12
					<th class="col-1 text-center">Enabled</th>
13
					<th class="col-1 text-center">Super Admin</th>
14
					<th class="col-1 text-center">National Admin</th>
15
					<th class="col-3">Countries</th>
16
					<th class="col-2"></th>
17
				</tr>
18
			</thead>
19
			<tbody>
20
				<tr ng-repeat="u in users | filter:userFilter" class="d-flex">
21
					<th class="col-4" ng-class="{'text-secondary': !u.valid}">{{u.email}}</th>
22
					<td class="col-1 text-center text-success">
23
						<i class="fa fa-check-circle" ng-if="u.valid"></i>
24
						<span class="text-warning"    ng-if="u.role == 'PENDING'">not configured</span>
25
						<span class="text-danger"     ng-if="!u.valid && (u.role != 'PENDING')">disabled</span>
26
					</td>
27
					<td class="col-1 text-center">
28
						<i class="fa fa-check-circle" ng-if="u.role == 'ADMIN'"></i>
29
					</td>
30
					<td class="col-1 text-center">
31
						<i class="fa fa-check-circle" ng-if="u.role == 'NATIONAL_ADMIN'"></i>
32
					</td>
33
					<td class="col-3">
34
						<span ng-if="(u.role != 'ADMIN')">
35
							<img ng-src="resources/images/flags/{{c}}.gif" title="{{c}}" class="mr-1" ng-repeat="c in u.countries" />
36
							<span class="text-warning" ng-if="u.countries.length == 0"><i class="fa fa-exclamation-triangle"></i> no countries</span>
37
						</span>
38
						<span class="text-muted" ng-if="u.role == 'ADMIN'">All countries</span>
39
					</td>
40
					<td class="col-2 text-right">
41
						<a href="mailto:{{u.email}}" class="btn btn-sm  btn-outline-info"><i class="fa fa-at"></i></a>
42
						<button type="button" class="btn btn-sm  btn-outline-info" data-toggle="modal" data-target="#editUserModal" ng-click="setCurrentUser(u)"><i class="fa fa-edit"></i></button>
43
						<button type="button" class="btn btn-sm  btn-outline-danger" ng-click="deleteUser(u.email)"><i class="fa fa-trash"></i></button>
44
					</td>
45
				</tr>
46
			</tbody>
47
		</table>
48
	</div>
49
</div>
50

    
51
<div class="modal fade" id="editUserModal" tabindex="-1" role="dialog">
52
	<div class="modal-dialog modal-xl" role="document">
53
		<div class="modal-content">
54
			<div class="modal-header">
55
				<h5 class="modal-title">Edit user</h5>
56
				<button type="button" class="close" data-dismiss="modal">&times;</button>
57
			</div>
58
			<div class="modal-body" style="min-height: 300px; max-height: 500px; overflow-y: auto;">
59
				<form>
60
					<div class="form-group row">
61
						<label class="col-sm-2 col-form-label">Email</label>
62
						<div class="col-sm-10"><a href="mailto:{{currentUser.email}}">{{currentUser.email}}</a></div>
63
					</div>
64
					<div class="form-group row">
65
						<label class="col-sm-2 col-form-label">Enabled</label>
66
						<div class="col-sm-10">
67
							<div class="form-check">
68
								<input class="form-check-input" type="checkbox" ng-model="currentUser.valid" />
69
							</div>
70
						</div>
71
					</div>
72
					<div class="form-group row" ng-if="superAdminMode && currentUser.valid">
73
						<label class="col-sm-2 col-form-label">Role</label>
74
						<div class="col-sm-10">
75
							<div class="form-check form-check-inline">
76
								<input class="form-check-input" type="radio" value="USER" ng-model="currentUser.role">
77
								<label class="form-check-label">USER</label>
78
							</div>
79
							<div class="form-check form-check-inline">
80
								<input class="form-check-input" type="radio" value="NATIONAL_ADMIN" ng-model="currentUser.role">
81
								<label class="form-check-label">NATIONAL ADMIN</label>
82
							</div>
83
							<div class="form-check form-check-inline">
84
								<input class="form-check-input" type="radio" value="ADMIN" ng-model="currentUser.role">
85
								<label class="form-check-label">SUPER ADMIN</label>
86
							</div>
87
						</div>
88
					</div>
89
					
90
					<div class="card mb-3"  ng-if="currentUser.valid && ((currentUser.role == 'USER') || (currentUser.role == 'NATIONAL_ADMIN'))">
91
						<div class="card-header bg-primary text-white py-1">Countries</div>
92
						<div class="card-body">
93
							<div class="form-group row">
94
								<div class="col-xs-6 col-sm-3 col-md-2 col-lg-1" ng-repeat="c in vocabularies.countries">
95
									<div class="form-check form-check-inline">
96
										<input class="form-check-input" type="checkbox" checklist-model="currentUser.countries" checklist-value="c"/>
97
										<label class="form-check-label">{{c}}</label>
98
									</div>
99
								</div>
100
							</div>
101
						</div>
102
					</div>
103
					
104
				</form>
105
			</div>
106
			<div class="modal-footer">
107
				<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
108
				<button type="button" class="btn btn-primary" data-dismiss="modal" ng-click="saveUser(currentUser)">Save changes</button>
109
			</div>
110
		</div>
111
	</div>
112
</div>
113

    
114

    
115

    
116

    
(7-7/7)