Project

General

Profile

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

    
4
<table class="table table-sm table-hover col-sm-12 col-md-10 col-lg-8">
5
	<thead class="thead-light">
6
		<tr class="d-flex">
7
			<th class="col-5">User</th>
8
			<th class="col-1 text-center">Enabled</th>
9
			<th class="col-1 text-center">Is admin</th>
10
			<th class="col-3">Countries</th>
11
			<th class="col-2"></th>
12
		</tr>
13
	</thead>
14
	<tbody>
15
		<tr ng-repeat="u in users" class="d-flex">
16
			<th class="col-5" ng-class="{'text-secondary': !u.valid}">{{u.email}}</th>
17
			<td class="col-1 text-center text-success">
18
				<i class="fa fa-check-circle" ng-if="u.valid"></i>
19
			</td>
20
			<td class="col-1 text-center">
21
				<i class="fa fa-check-circle" ng-if="u.role == 'SUPERUSER'"></i>
22
			</td>
23
			<td class="col-3">
24
				<span ng-if="u.role == 'USER'">
25
					<img ng-src="resources/images/flags/{{c}}.gif" title="{{c}}" class="mr-1" ng-repeat="c in u.countries" />
26
					<span class="text-warning" ng-if="u.countries.length == 0"><i class="fa fa-exclamation-triangle"></i> no countries</span>
27
				</span>
28
				<span class="text-muted" ng-if="u.role == 'SUPERUSER'">All countries</span>
29
				<span class="text-warning" ng-if="u.role == 'PENDING'">not configured</span>
30
			</td>
31
			<td class="col-2 text-right">
32
				<a href="mailto:{{u.email}}" class="btn btn-sm  btn-outline-info"><i class="fa fa-at"></i></a>
33
				<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>
34
				<button type="button" class="btn btn-sm  btn-outline-danger" ng-click="deleteUser(u.email)"><i class="fa fa-trash"></i></button>
35
			</td>
36
		</tr>
37
	</tbody>
38
</table>
39

    
40

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

    
100

    
101

    
102

    
(7-7/8)