Free cookie consent management tool by TermsFeed Policy Generator

source: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Index.cshtml @ 13827

Last change on this file since 13827 was 13827, checked in by jlodewyc, 8 years ago

#2582 Parameter changing busy, save file, download file and email on pass reset

File size: 22.5 KB
Line 
1@using HeuristicLab.Clients.Hive.WebJobManager.ViewModels.User;
2@model UserViewModel
3<div id="userId" style="display:none">@ViewBag.SessionId</div>
4<div>
5
6    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("User"))
7
8    <ul class="nav nav-pills nav-justified">
9        <li role="presentation"
10            class="active">
11            <a asp-controller="User"
12               asp-action="Index">
13                <i class="fa fa-user"></i> Users
14            </a>
15        </li>
16        <li role="presentation"
17            class="">
18            <a asp-controller="User"
19               asp-action="Groups">
20                <i class="fa fa-group"></i> Groups
21            </a>
22        </li>
23        <li role="presentation"
24            class="">
25            <a asp-controller="User"
26               asp-action="Roles">
27                <i class="fa fa-gavel"></i> Roles
28            </a>
29        </li>
30    </ul>
31    <div class="row"
32         style="text-align:center">
33        @Model.message
34    </div>
35    <div class="row"
36         style="padding:10px; margin-right:0px!important">
37        @if (Model.users.Count == 0)
38        {
39            <div>
40                <p style="text-align:center">
41                    No users found
42                </p>
43            </div>
44
45        }
46        else
47        {
48            <div class="col-sm-4">
49                <div class="btn-group btn-group-justified btn-block"
50                     role="group" style="margin-bottom:-4px">
51
52                    <a class="btn btn-info btn-lg disabled"
53                       style="width:6%;box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
54                            text-shadow:2px 2px black;">
55                        <i class="fa fa-user"></i> @Model.users.Count User@(Model.users.Count != 1 ? "s" : "")
56                    </a>
57                    <a class="btn btn-success
58                       @(Model.SelectedUser.Id == Guid.Empty ? "active" : "")
59                       "
60                       style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
61                            text-shadow:2px 2px black;"
62                       asp-controller="User"
63                       asp-action="SelectUser"
64                       asp-route-id="@Guid.Empty"
65                       onclick="showUser()">
66                        <i class="fa fa-user-plus"></i>
67                    </a>
68                </div>
69                <div class="btn-group-vertical btn-block">
70                   
71                   
72                    @foreach (var user in Model.users)
73                    {
74                        <a class="btn  btn-default @( user.Id == Model.SelectedUser.Id ? "active" : "" )"
75                           style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);"
76                           asp-controller="User"
77                           asp-action="SelectUser"
78                           asp-route-id="@user.Id"
79                           onclick="showUser()">
80                            @user.UserName (@user.FullName)
81                        </a>
82                    }
83                </div>
84            </div>
85            <p style="display:none"
86               id="saver"
87               class="text-center">
88                <br /><br /><br /><br /><br /><br /><br />
89                <i class="fa fa-save fa-spin fa-5x" id="spinner">
90                </i>
91            </p>
92            <p style="display:none"
93               id="user"
94               class="text-center">
95                <br /><br /><br /><br /><br /><br /><br />
96                <i class="fa fa-user fa-spin fa-5x" id="spinner">
97                </i>
98            </p>
99            <p style="display:none"
100               id="deleter"
101               class="text-center">
102                <br /><br /><br /><br /><br /><br /><br />
103                <i class="fa fa-trash-o fa-spin fa-5x" id="spinner">
104                </i>
105            </p>
106            <div class="col-sm-8"
107                 id="content"
108                 style="padding:5px; padding-left:10px;">
109                <div class="panel panel-default"
110                     style="border-width:2px!important;padding:17px;
111                        box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);">
112                    <div class="row">
113                        <h2 style="padding-left:20px">
114                            @if (Model.SelectedUser.Id != Guid.Empty)
115                            {
116                                <i class="fa fa-user "></i> @Model.SelectedUser.UserName;
117                            }
118                            else
119                            {
120                                <i class="fa fa-user-plus "></i> @("Add new user")
121
122                            }
123                        </h2>
124                        <form class="form-horizontal"
125                              method="post"
126                              asp-action="saveUser"
127                              asp-controller="User"
128                              enctype="multipart/form-data"
129                              onsubmit="showSaver()">
130                            <div class="form-group" style="@(Model.SelectedUser.Id == Guid.Empty ? "" : "display:none")">
131                                <label for="inpusername"
132                                       class="col-sm-3 control-label">
133                                    Username
134                                </label>
135                                <div class="col-sm-8">
136                                    <input type="text"
137                                           class="form-control"
138                                           id="inpusername"
139                                           name="inpusername"
140                                           placeholder="Username"
141                                           onkeydown="triggerSave()"
142                                           value="@Model.SelectedUser.UserName">
143                                </div>
144                            </div>
145                            <div class="form-group">
146                                <label for="inpfullname"
147                                       class="col-sm-3 control-label">
148                                    Full name
149                                </label>
150                                <div class="col-sm-8">
151                                    <input type="text"
152                                           class="form-control"
153                                           id="inpfullname"
154                                           name="inpfullname"
155                                           placeholder="Full name"
156                                           onkeydown="triggerSave()"
157                                           value="@Model.SelectedUser.FullName">
158                                </div>
159                            </div>
160                            <div class="form-group">
161                                <label for="inpemail"
162                                       class="col-sm-3 control-label">
163                                    Email
164                                </label>
165                                <div class="col-sm-8">
166                                    <input type="email"
167                                           class="form-control"
168                                           id="inpemail"
169                                           name="inpemail"
170                                           placeholder="Email"
171                                           onkeydown="triggerSave()"
172                                           value="@Model.SelectedUser.Email">
173                                </div>
174                            </div>
175                            <input type="text"
176                                   style="display:none"
177                                   id="u"
178                                   name="u"
179                                   value="@Model.SelectedUser.Id" />
180                            @if (Model.SelectedUser.Id != Guid.Empty)
181                            {
182                                <div class="form-group">
183                                    <label class="col-sm-3 control-label">
184                                        User id
185                                    </label>
186                                    <label class="col-sm-8 control-label" style="text-align:left">
187                                        @Model.SelectedUser.Id
188                                    </label>
189
190                                </div>
191                                <div class="form-group">
192                                    <label class="col-sm-3 control-label">
193                                        User created
194                                    </label>
195                                    <label class="col-sm-8 control-label" style="text-align:left">
196                                        @Model.SelectedUser.CreationDate.AddHours(2).ToString();
197                                    </label>
198                                </div>
199                                <div class="form-group">
200                                    <label class="col-sm-3 control-label">
201                                        Last activity
202                                    </label>
203                                    <label class="col-sm-8 control-label" style="text-align:left">
204                                        @Model.SelectedUser.LastActivityDate.AddHours(2).ToString()
205                                    </label>
206                                </div>
207                                <div class="form-group">
208                                    <label class="col-sm-3 control-label">
209                                        Password
210                                    </label>
211                                    <div id="inppassreset" class="col-sm-8">
212                                        Last change: @Model.SelectedUser.LastPasswordChangedDate.ToShortDateString()
213                                        <button type="button"
214                                                onclick="resetPass('@(Model.SelectedUser.Id)')"
215                                                class="btn btn-default">
216                                            <i class="fa fa-unlock"></i> Reset password
217                                        </button>
218                                    </div>
219                                </div>
220
221                                <div class="form-group">
222                                    <label class="col-sm-3 control-label">
223                                        Member of @Model.SelectedUserSubscriptions.Count groups
224                                    </label>
225                                    <div class="col-sm-8 control-label" style="text-align:left">
226                                        @if (Model.SelectedUserSubscriptions.Count > 0)
227                                        {
228                                            @foreach (var g in Model.SelectedUserSubscriptions)
229                                            {
230                                                <div class="row">
231                                                    <p class="col-sm-10"><i class="fa fa-group"></i> @g.Name</p>
232                                                    <p class="col-sm-2">
233                                                        <a class="btn btn-danger pull-right"
234                                                           asp-controller="User"
235                                                           asp-action="deleteUserGroup"
236                                                           asp-route-id="@Model.SelectedUser.Id"
237                                                           asp-route-group="@g.Id"
238                                                           onclick="showDeleter()">
239                                                            <i class="fa fa-trash-o"></i>
240                                                        </a>
241                                                    </p>
242                                                </div>
243                                            }
244                                        }
245                                        else
246                                        {
247                                            <p>Not a member of any groups</p>
248                                        }
249                                    </div>
250                                </div>
251                            }
252
253                            <div class="row" style="margin-left:10px;margin-right:10px;margin-top:-10px">
254                                <a class="btn btn-primary col-sm-3"
255                                   data-toggle="collapse"
256                                   href="#addgroups"
257                                   aria-expanded="false"
258                                   aria-controls="addgroups"
259                                   style="margin:10px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
260                            text-shadow:2px 2px black;">
261                                    @(Model.SelectedUser.Id == Guid.Empty ? "Set groups" : "Add groups")
262                                </a>
263                                <div class="collapse col-sm-12"
264                                     id="addgroups">
265                                    <div class="panel panel-primary" style="padding:0px">
266                                        <div class="panel-heading">
267                                            <p>
268                                                <i class="fa fa-group"></i> Groups
269                                            </p>
270                                        </div>
271                                        <div class="panel-body">
272                                            @foreach (var group in Model.ugroups)
273                                            {
274                                                <div class="checkbox">
275                                                    <label>
276                                                        <input type="checkbox"
277                                                               name="groupstoadd"
278                                                               @(Model.SelectedUserSubscriptions.Contains(group) ? "checked disabled" : "")
279                                                               value="@group.Id"
280                                                               onclick="triggerSave()">
281                                                        @group.Name
282                                                    </label>
283                                                </div>
284
285                                            }
286                                        </div>
287                                    </div>
288                                </div>
289                            </div>
290
291                            @if (Model.SelectedUser.Id != Guid.Empty)
292                            {
293                                <div class="form-group">
294                                    <label class="col-sm-3 control-label">
295                                       @Model.SelectedUserRoles.Count Roles
296                                    </label>
297                                    <div class="col-sm-8 control-label" style="text-align:left">
298                                        @if (Model.SelectedUserRoles.Count > 0)
299                                        {
300                                            @foreach (var r in Model.SelectedUserRoles)
301                                            {
302                                                <div class="row">
303
304                                                    <p class="col-sm-10"><i class="fa fa-gavel"></i> @r.Name</p>
305                                                    <p class="col-sm-2">
306                                                        <a class="btn btn-danger pull-right"
307                                                           asp-controller="User"
308                                                           asp-action="deleteUserRole"
309                                                           asp-route-id="@Model.SelectedUser.Id"
310                                                           asp-route-role="@r.Name"
311                                                           onclick="showDeleter()">
312                                                            <i class="fa fa-trash-o"></i>
313                                                        </a>
314                                                    </p>
315                                                </div>
316                                            }
317                                        }
318                                        else
319                                        {
320                                            <p>User has no roles</p>
321                                        }
322                                    </div>
323                                </div>
324                            }
325                            <div class="row" style="margin-left:10px;margin-right:10px;">
326                                <a class="btn btn-primary col-sm-3"
327                                   data-toggle="collapse"
328                                   href="#addroles"
329                                   aria-expanded="false"
330                                   aria-controls="addroles"
331                                   style="margin:10px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
332                            text-shadow:2px 2px black;">
333                                    @(Model.SelectedUser.Id == Guid.Empty ? "Set roles" : "Add roles")
334                                </a>
335                                <div class="collapse col-sm-12"
336                                     id="addroles">
337                                    <div class="panel panel-primary" style="padding:0px">
338                                        <div class="panel-heading">
339                                            <p>
340                                                <i class="fa fa-gavel"></i> Roles
341                                            </p>
342                                        </div>
343                                        <div class="panel-body">
344                                            @foreach (var role in Model.roles)
345                                            {
346                                                <div class="checkbox">
347                                                    <label>
348                                                        <input type="checkbox"
349                                                               name="rolestoadd"
350                                                               @(Model.SelectedUserRoles.Contains(role) ? "checked disabled" : "")
351                                                               value="@role.Name"
352                                                               onclick="triggerSave()">
353                                                        @role.Name
354                                                    </label>
355                                                </div>
356
357                                            }
358                                        </div>
359                                    </div>
360                                </div>
361                            </div>
362                            <div class="form-group">
363                                <div class="col-sm-offset-3 col-sm-3">
364                                    <button type="submit"
365                                            id="inpsaver"
366                                            disabled
367                                            class="btn btn-default">
368                                        <i class="fa fa-save"></i>
369                                        @(Model.SelectedUser.Id != Guid.Empty ? "Save changes" : "Add user")
370                                    </button>
371                                </div>
372                                @if (Model.SelectedUser.Id != Guid.Empty)
373                                {
374                                    <div class="col-sm-5">
375                                        <a class="btn btn-danger pull-right"
376                                           asp-controller="User"
377                                           asp-action="deleteUser"
378                                           asp-route-id="@Model.SelectedUser.Id"
379                                           onclick="showDeleter()">
380                                            <i class="fa fa-trash-o"></i> Delete user
381                                        </a>
382                                    </div>
383                                }
384                            </div>
385
386
387
388
389                            <script type="text/javascript">
390                                function triggerSave() {
391                                    if ($("#inpfullname").val() != "" &&
392                            $("#inpemail").val() != "") {
393                                        document.getElementById("inpsaver").className = "btn btn-lg btn-success";
394                                        document.getElementById("inpsaver").disabled = false;
395                                    }
396                                    else {
397                                        document.getElementById("inpsaver").className = "btn btn-default";
398                                        document.getElementById("inpsaver").disabled = true;
399
400                                    }
401
402                                }
403                            </script>
404                        </form>
405
406                    </div>
407
408                </div>
409
410
411
412
413
414            </div>
415        }
416    </div>
417
418    <script src="~/js/hubs/userinfohubber.js"></script>
419    <script type="text/javascript">
420        function showSaver() {
421            document.getElementById("content").style.display = "none";
422            document.getElementById("saver").style.display = "";
423
424        }
425        function showUser() {
426            document.getElementById("content").style.display = "none";
427            document.getElementById("user").style.display = "";
428
429        }
430        function showDeleter() {
431            document.getElementById("content").style.display = "none";
432            document.getElementById("deleter").style.display = "";
433        }
434    </script>
435</div>
Note: See TracBrowser for help on using the repository browser.