Free cookie consent management tool by TermsFeed Policy Generator

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

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

#2582 More parameter datatypes, splitting fileopening service, approving users, reopen last file, change name tasks and repetitions

File size: 23.7 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                        @if (Model.SelectedUser.Id != Guid.Empty && Model.SelectedUser.IsApproved)
114                        {<div class="row" style="margin-right:20px">
115                            <a class="btn btn-success pull-right disabled"><i class="fa fa-check-square-o "></i> Approved</a>
116                        </div>
117                        }
118                        else if (Model.SelectedUser.Id != Guid.Empty && !Model.SelectedUser.IsApproved)
119                        {<div class="row" style="margin-right:20px">
120                            <a class="btn btn-warning pull-right"
121                               asp-action="approveUser"
122                               asp-controller="User"
123                               asp-route-id="@Model.SelectedUser.Id">
124                                <i class="fa fa-square-o" ></i> Not approved
125                            </a>
126                           
127                        </div>
128                        }
129                        <h2 style="padding-left:20px; margin-top:0">
130                            @if (Model.SelectedUser.Id != Guid.Empty)
131                            {
132                                <i class="fa fa-user "></i> @Model.SelectedUser.UserName
133
134                            }
135                            else
136                            {
137                                <i class="fa fa-user-plus "></i> @("Add new user")
138
139                            }
140                        </h2>
141                       
142                        <form class="form-horizontal"
143                              method="post"
144                              asp-action="saveUser"
145                              asp-controller="User"
146                              enctype="multipart/form-data"
147                              onsubmit="showSaver()">
148                            <div class="form-group" style="@(Model.SelectedUser.Id == Guid.Empty ? "" : "display:none")">
149                                <label for="inpusername"
150                                       class="col-sm-3 control-label">
151                                    Username
152                                </label>
153                                <div class="col-sm-8">
154                                    <input type="text"
155                                           class="form-control"
156                                           id="inpusername"
157                                           name="inpusername"
158                                           placeholder="Username"
159                                           onkeydown="triggerSave()"
160                                           value="@Model.SelectedUser.UserName">
161                                </div>
162                            </div>
163                            <div class="form-group">
164                                <label for="inpfullname"
165                                       class="col-sm-3 control-label">
166                                    Full name
167                                </label>
168                                <div class="col-sm-8">
169                                    <input type="text"
170                                           class="form-control"
171                                           id="inpfullname"
172                                           name="inpfullname"
173                                           placeholder="Full name"
174                                           onkeydown="triggerSave()"
175                                           value="@Model.SelectedUser.FullName">
176                                </div>
177                            </div>
178                            <div class="form-group">
179                                <label for="inpemail"
180                                       class="col-sm-3 control-label">
181                                    Email
182                                </label>
183                                <div class="col-sm-8">
184                                    <input type="email"
185                                           class="form-control"
186                                           id="inpemail"
187                                           name="inpemail"
188                                           placeholder="Email"
189                                           onkeydown="triggerSave()"
190                                           value="@Model.SelectedUser.Email">
191                                </div>
192                            </div>
193                            <input type="text"
194                                   style="display:none"
195                                   id="u"
196                                   name="u"
197                                   value="@Model.SelectedUser.Id" />
198                            @if (Model.SelectedUser.Id != Guid.Empty)
199                            {
200                                <div class="form-group">
201                                    <label class="col-sm-3 control-label">
202                                        User id
203                                    </label>
204                                    <label class="col-sm-8 control-label" style="text-align:left">
205                                        @Model.SelectedUser.Id
206                                    </label>
207
208                                </div>
209                                    <div class="form-group">
210                                        <label class="col-sm-3 control-label">
211                                            User created
212                                        </label>
213                                        <label class="col-sm-8 control-label" style="text-align:left">
214                                            @Model.SelectedUser.CreationDate.AddHours(2).ToString();
215                                        </label>
216                                    </div>
217                                    <div class="form-group">
218                                        <label class="col-sm-3 control-label">
219                                            Last activity
220                                        </label>
221                                        <label class="col-sm-8 control-label" style="text-align:left">
222                                            @Model.SelectedUser.LastActivityDate.AddHours(2).ToString()
223                                        </label>
224                                    </div>
225                                    <div class="form-group">
226                                        <label class="col-sm-3 control-label">
227                                            Password
228                                        </label>
229                                        <div id="inppassreset" class="col-sm-8">
230                                            Last change: @Model.SelectedUser.LastPasswordChangedDate.ToShortDateString()
231                                            <button type="button"
232                                                    onclick="resetPass('@(Model.SelectedUser.Id)')"
233                                                    class="btn btn-default">
234                                                <i class="fa fa-unlock"></i> Reset password
235                                            </button>
236                                        </div>
237                                    </div>
238
239                                    <div class="form-group">
240                                        <label class="col-sm-3 control-label">
241                                            Member of @Model.SelectedUserSubscriptions.Count groups
242                                        </label>
243                                        <div class="col-sm-8 control-label" style="text-align:left">
244                                            @if (Model.SelectedUserSubscriptions.Count > 0)
245                                            {
246                                                @foreach (var g in Model.SelectedUserSubscriptions)
247                                                {
248                                                    <div class="row">
249                                                        <p class="col-sm-10"><i class="fa fa-group"></i> @g.Name</p>
250                                                        <p class="col-sm-2">
251                                                            <a class="btn btn-danger pull-right"
252                                                               asp-controller="User"
253                                                               asp-action="deleteUserGroup"
254                                                               asp-route-id="@Model.SelectedUser.Id"
255                                                               asp-route-group="@g.Id"
256                                                               onclick="showDeleter()">
257                                                                <i class="fa fa-trash-o"></i>
258                                                            </a>
259                                                        </p>
260                                                    </div>
261                                                }
262                                            }
263                                            else
264                                            {
265                                                <p>Not a member of any groups</p>
266                                            }
267                                        </div>
268                                    </div>
269                            }
270
271                            <div class="row" style="margin-left:10px;margin-right:10px;margin-top:-10px">
272                                <a class="btn btn-primary col-sm-3"
273                                   data-toggle="collapse"
274                                   href="#addgroups"
275                                   aria-expanded="false"
276                                   aria-controls="addgroups"
277                                   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);
278                            text-shadow:2px 2px black;">
279                                    @(Model.SelectedUser.Id == Guid.Empty ? "Set groups" : "Add groups")
280                                </a>
281                                <div class="collapse col-sm-12"
282                                     id="addgroups">
283                                    <div class="panel panel-primary" style="padding:0px">
284                                        <div class="panel-heading">
285                                            <p>
286                                                <i class="fa fa-group"></i> Groups
287                                            </p>
288                                        </div>
289                                        <div class="panel-body">
290                                            @foreach (var group in Model.ugroups)
291                                            {
292                                                <div class="checkbox">
293                                                    <label>
294                                                        <input type="checkbox"
295                                                               name="groupstoadd"
296                                                               @(Model.SelectedUserSubscriptions.Contains(group) ? "checked disabled" : "")
297                                                               value="@group.Id"
298                                                               onclick="triggerSave()">
299                                                        @group.Name
300                                                    </label>
301                                                </div>
302
303                                            }
304                                        </div>
305                                    </div>
306                                </div>
307                            </div>
308
309                            @if (Model.SelectedUser.Id != Guid.Empty)
310                            {
311                                <div class="form-group">
312                                    <label class="col-sm-3 control-label">
313                                        @Model.SelectedUserRoles.Count Roles
314                                    </label>
315                                    <div class="col-sm-8 control-label" style="text-align:left">
316                                        @if (Model.SelectedUserRoles.Count > 0)
317                                        {
318                                            @foreach (var r in Model.SelectedUserRoles)
319                                            {
320                                                <div class="row">
321
322                                                    <p class="col-sm-10"><i class="fa fa-gavel"></i> @r.Name</p>
323                                                    <p class="col-sm-2">
324                                                        <a class="btn btn-danger pull-right"
325                                                           asp-controller="User"
326                                                           asp-action="deleteUserRole"
327                                                           asp-route-id="@Model.SelectedUser.Id"
328                                                           asp-route-role="@r.Name"
329                                                           onclick="showDeleter()">
330                                                            <i class="fa fa-trash-o"></i>
331                                                        </a>
332                                                    </p>
333                                                </div>
334                                            }
335                                        }
336                                        else
337                                        {
338                                            <p>User has no roles</p>
339                                        }
340                                    </div>
341                                </div>
342                            }
343                            <div class="row" style="margin-left:10px;margin-right:10px;">
344                                <a class="btn btn-primary col-sm-3"
345                                   data-toggle="collapse"
346                                   href="#addroles"
347                                   aria-expanded="false"
348                                   aria-controls="addroles"
349                                   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);
350                            text-shadow:2px 2px black;">
351                                    @(Model.SelectedUser.Id == Guid.Empty ? "Set roles" : "Add roles")
352                                </a>
353                                <div class="collapse col-sm-12"
354                                     id="addroles">
355                                    <div class="panel panel-primary" style="padding:0px">
356                                        <div class="panel-heading">
357                                            <p>
358                                                <i class="fa fa-gavel"></i> Roles
359                                            </p>
360                                        </div>
361                                        <div class="panel-body">
362                                            @foreach (var role in Model.roles)
363                                            {
364                                                <div class="checkbox">
365                                                    <label>
366                                                        <input type="checkbox"
367                                                               name="rolestoadd"
368                                                               @(Model.SelectedUserRoles.Contains(role) ? "checked disabled" : "")
369                                                               value="@role.Name"
370                                                               onclick="triggerSave()">
371                                                        @role.Name
372                                                    </label>
373                                                </div>
374
375                                            }
376                                        </div>
377                                    </div>
378                                </div>
379                            </div>
380                            <div class="form-group">
381                                <div class="col-sm-offset-3 col-sm-3">
382                                    <button type="submit"
383                                            id="inpsaver"
384                                            disabled
385                                            class="btn btn-default">
386                                        <i class="fa fa-save"></i>
387                                        @(Model.SelectedUser.Id != Guid.Empty ? "Save changes" : "Add user")
388                                    </button>
389                                </div>
390                                @if (Model.SelectedUser.Id != Guid.Empty)
391                                {
392                                    <div class="col-sm-5">
393                                        <a class="btn btn-danger pull-right"
394                                           asp-controller="User"
395                                           asp-action="deleteUser"
396                                           asp-route-id="@Model.SelectedUser.Id"
397                                           onclick="showDeleter()">
398                                            <i class="fa fa-trash-o"></i> Delete user
399                                        </a>
400                                    </div>
401                                }
402                            </div>
403
404
405
406
407                            <script type="text/javascript">
408                                function triggerSave() {
409                                    if ($("#inpfullname").val() != "" &&
410                            $("#inpemail").val() != "") {
411                                        document.getElementById("inpsaver").className = "btn btn-lg btn-success";
412                                        document.getElementById("inpsaver").disabled = false;
413                                    }
414                                    else {
415                                        document.getElementById("inpsaver").className = "btn btn-default";
416                                        document.getElementById("inpsaver").disabled = true;
417
418                                    }
419
420                                }
421                            </script>
422                        </form>
423
424                    </div>
425
426                </div>
427
428
429
430
431
432            </div>
433        }
434    </div>
435
436    <script src="~/js/hubs/userinfohubber.js"></script>
437    <script type="text/javascript">
438        function showSaver() {
439            document.getElementById("content").style.display = "none";
440            document.getElementById("saver").style.display = "";
441
442        }
443        function showUser() {
444            document.getElementById("content").style.display = "none";
445            document.getElementById("user").style.display = "";
446
447        }
448        function showDeleter() {
449            document.getElementById("content").style.display = "none";
450            document.getElementById("deleter").style.display = "";
451        }
452    </script>
453</div>
Note: See TracBrowser for help on using the repository browser.