Free cookie consent management tool by TermsFeed Policy Generator

source: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/User/Groups.cshtml @ 13754

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

#2582 User management done, start resource calendar

File size: 18.7 KB
Line 
1@using HeuristicLab.Clients.Hive.WebJobManager.ViewModels.User;
2@using HeuristicLab.Clients.Access;
3@model UserViewModel
4
5<div>
6
7    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("User"))
8
9    <ul class="nav nav-pills nav-justified">
10        <li role="presentation"
11            class="">
12            <a asp-controller="User"
13               asp-action="Index">
14                <i class="fa fa-user"></i> Users
15            </a>
16        </li>
17        <li role="presentation"
18            class="active">
19            <a asp-controller="User"
20               asp-action="Groups">
21                <i class="fa fa-group"></i> Groups
22            </a>
23        </li>
24        <li role="presentation"
25            class="">
26            <a asp-controller="User"
27               asp-action="Roles">
28                <i class="fa fa-gavel"></i> Roles
29            </a>
30        </li>
31    </ul>
32    <div class="row"
33         style="text-align:center">
34        @Model.message
35    </div>
36    <div class="row"
37         style="padding:10px; margin-right:0px!important">
38        <div class="col-sm-4">
39            <div class="btn-group-vertical btn-block">
40                <a class="btn btn-info btn-lg btn-block disabled"
41                   style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
42                            text-shadow:2px 2px black;">
43                    <i class="fa fa-group"></i> @Model.ugroups.Count Group@(Model.ugroups.Count != 1 ? "s" : "")
44                </a>
45                <a class="btn btn-success btn-block
46                       @(Model.SelectedGroup.Id == Guid.Empty ? "active" : "")
47                       "
48                   asp-controller="User"
49                   asp-action="SelectGroup"
50                   asp-route-id="@Guid.Empty"
51                   onclick="showGroup()"
52                   style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
53                            text-shadow:2px 2px black;">
54                    <i class="fa fa-plus-circle"></i> Add new group
55                </a>
56                @foreach (var group in Model.ugroups)
57                {
58                    <a class="btn  btn-default @( group.Id == Model.SelectedGroup.Id ? "active" : "" )"
59                       style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);"
60                       asp-controller="User"
61                       asp-action="SelectGroup"
62                       asp-route-id="@group.Id"
63                       onclick="showGroup()">
64                        @group.Name
65                    </a>
66                }
67            </div>
68        </div>
69        <p style="display:none"
70           id="saver"
71           class="text-center">
72            <br /><br /><br /><br /><br /><br /><br />
73            <i class="fa fa-save fa-spin fa-5x" id="spinner">
74            </i>
75        </p>
76        <p style="display:none"
77           id="group"
78           class="text-center">
79            <br /><br /><br /><br /><br /><br /><br />
80            <i class="fa fa-group fa-spin fa-5x" id="spinner">
81            </i>
82        </p>
83        <p style="display:none"
84           id="deleter"
85           class="text-center">
86            <br /><br /><br /><br /><br /><br /><br />
87            <i class="fa fa-trash-o fa-spin fa-5x" id="spinner">
88            </i>
89        </p>
90
91        <div class="col-sm-8"
92             id="content"
93             style="padding:5px; padding-left:10px;">
94            @if (Model.SelectedGroup != null)
95            {
96                <div class="panel panel-default"
97                     style="border-width:2px!important;padding:17px;
98                        box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);">
99                    <div class="row">
100                        <h2 style="padding-left:20px">
101                            @if (Model.SelectedGroup.Id != Guid.Empty)
102                            {
103                                <i class="fa fa-group"></i> @Model.SelectedGroup.Name
104                            }
105                            else
106                            {
107                                <i class='fa fa-plus-circle'></i> @("Add new group")
108
109                            }
110                        </h2>
111                        <form class="form-horizontal"
112                              method="post"
113                              asp-action="saveGroup"
114                              asp-controller="User" enctype="multipart/form-data">
115                            <div class="form-group">
116                                <label for="inpgroupname"
117                                       class="col-sm-3 control-label">
118                                    Group name
119                                </label>
120                                <div class="col-sm-8">
121                                    <input type="text"
122                                           class="form-control"
123                                           id="inpgroupname"
124                                           name="inpgroupname"
125                                           placeholder="Group name"
126                                           onkeydown="triggerSave()"
127                                           value="@Model.SelectedGroup.Name">
128                                </div>
129                            </div>
130
131
132                            @if (Model.SelectedGroup.Id != Guid.Empty)
133                            {
134                                <div class="form-group">
135                                    <label class="col-sm-3 control-label">
136                                        Group id
137                                    </label>
138                                    <label class="col-sm-8 control-label" style="text-align:left">
139                                        @Model.SelectedGroup.Id
140                                    </label>
141                                    <input type="text"
142                                           style="display:none"
143                                           id="u"
144                                           name="u"
145                                           value="@Model.SelectedGroup.Id" />
146                                </div>
147                                <div class="form-group">
148                                    <label class="col-sm-3 control-label">
149                                        Members
150                                    </label>
151                                    <div class="col-sm-8 control-label" >
152
153                                        @foreach (var member in Model.SelectedGroupMembers)
154                                        {
155                                            <div class="row">
156                                                <p class="col-sm-10" style="text-align:left">
157
158                                                    @if (member is User)
159                                                    {
160                                                        var umember = (User)member;
161                                                        <i class="fa fa-user"></i> @(umember.UserName + "(" + umember.FullName + ")")
162
163
164                                                    }
165                                                    else if (member is UserGroup)
166                                                    {
167                                                        var gmember = (UserGroup)member;
168                                                        <i class="fa fa-group"></i> @(gmember.Name)
169
170                                                    }
171
172                                                </p>
173                                                <p class="col-sm-2">
174                                                    <a class="btn btn-danger"
175                                                       asp-controller="User"
176                                                       asp-action="deleteMember"
177                                                       asp-route-g="@Model.SelectedGroup.Id"
178                                                       asp-route-m="@member.Id"
179                                                       onclick="showDeleter()">
180                                                        <i class="fa fa-trash-o"></i>
181                                                    </a>
182                                                </p>
183                                            </div>
184                                        }
185                                        @if (Model.SelectedGroupMembers.Count == 0)
186                                        {
187                                            <p style="text-align:left">This group currently has no members</p>
188
189                                        }
190                                    </div>
191                                </div>
192                            }
193                            <div class="row" style="margin-left:10px;margin-right:10px;margin-top:-10px">
194                                <a class="btn btn-primary"
195                                   data-toggle="collapse"
196                                   href="#addmembers"
197                                   aria-expanded="false"
198                                   aria-controls="addmembers"
199                                   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);
200                            text-shadow:2px 2px black;">
201                                    Add members
202                                </a>
203                                <div class="collapse"
204                                     id="addmembers">
205                                    <div class="panel panel-primary col-sm-6" style="padding:0px">
206                                        <div class="panel-heading">
207                                            <p>
208                                                <i class="fa fa-user"></i> Users
209                                                <button class="btn btn-sm btn-default"
210                                                        type="button"
211                                                        onclick="selectAll('userstoadd'); triggerSave()">
212                                                    Select all
213                                                </button>
214                                                <button class="btn btn-sm btn-default"
215                                                        type="button"
216                                                        onclick="deselectAll('userstoadd'); triggerSave()">
217                                                    Deselect all
218                                                </button>
219                                            </p>
220                                        </div>
221                                        <div class="panel-body">
222                                            @foreach (var user in Model.users)
223                                            {
224                                                <div class="checkbox">
225                                                    <label>
226                                                        <input type="checkbox"
227                                                               name="userstoadd"
228                                                               @(Model.SelectedGroupMembers.Contains(user) ? "checked disabled" : "")
229                                                               value="@user.Id"
230                                                               onclick="triggerSave()">
231                                                        @user.UserName (@user.FullName)
232                                                    </label>
233                                                </div>
234
235                                            }
236                                        </div>
237                                    </div>
238                                    <div class="panel panel-primary col-sm-6" style="padding:0px">
239                                        <div class="panel-heading">
240                                            <p>
241                                                <i class="fa fa-group"></i> Groups
242
243                                                <button class="btn btn-sm btn-default"
244                                                        type="button"
245                                                        onclick="selectAll('groupstoadd'); triggerSave()">
246                                                    Select all
247                                                </button>
248                                                <button class="btn btn-sm btn-default"
249                                                        type="button"
250                                                        onclick="deselectAll('groupstoadd'); triggerSave()">
251                                                    Deselect all
252                                                </button>
253                                            </p>
254                                        </div>
255                                        <div class="panel-body">
256                                            @foreach (var group in Model.ugroups)
257                                            {
258                                                <div class="checkbox">
259                                                    <label>
260                                                        <input type="checkbox"
261                                                               name="groupstoadd"
262                                                               @(Model.SelectedGroupMembers.Contains(group) ||
263                                                                    Model.SelectedGroup.Id == group.Id ? "checked disabled" : "")
264                                                               value="@group.Id"
265                                                               onclick="triggerSave()">
266                                                        @group.Name @( Model.SelectedGroup.Id == group.Id ? "(selected group)" : "")
267                                                    </label>
268                                                </div>
269
270                                            }
271                                        </div>
272                                    </div>
273                                </div>
274                            </div>
275                            @if (Model.SelectedGroup.Id == Guid.Empty)
276                            {//New goup
277                                <div class="form-group">
278                                    <div class="col-sm-offset-3 col-sm-9">
279                                        <button type="submit"
280                                                id="inpsaver"
281                                                disabled
282                                                class="btn btn-default"
283                                                onclick="showSaver()">
284                                            <i class="fa fa-plus-circle"></i> Add group
285                                        </button>
286                                    </div>
287                                </div>
288
289
290                            }
291                            else
292                            {//Changing an existing group
293
294                                <div class="form-group">
295                                    <div class="col-sm-offset-3 col-sm-3">
296                                        <button type="submit"
297                                                id="inpsaver"
298                                                disabled
299                                                class="btn btn-default"
300                                                onclick="showSaver()">
301                                            <i class="fa fa-save"></i> Save changes
302                                        </button>
303                                    </div>
304                                    <div class="col-sm-5">
305                                        <a class="btn btn-danger pull-right"
306                                           asp-controller="User"
307                                           asp-action="deleteGroup"
308                                           asp-route-id="@Model.SelectedGroup.Id"
309                                           onclick="showDeleter()">
310                                            <i class="fa fa-trash-o"></i> Delete group
311                                        </a>
312                                    </div>
313                                </div>
314
315
316
317                            }
318                            <script type="text/javascript">
319                                function triggerSave() {
320                                    if ($("#inpgroupname").val() != "") {
321                                        document.getElementById("inpsaver").className = "btn btn-lg btn-success";
322                                        document.getElementById("inpsaver").disabled = false;
323                                    }
324                                    else {
325                                        document.getElementById("inpsaver").className = "btn btn-default";
326                                        document.getElementById("inpsaver").disabled = true;
327
328                                    }
329
330                                }
331                            </script>
332                        </form>
333
334                    </div>
335                </div>
336
337            }
338        </div>
339    </div>
340    <script type="text/javascript">
341        function showSaver() {
342            document.getElementById("content").style.display = "none";
343            document.getElementById("saver").style.display = "";
344
345        }
346        function showGroup() {
347            document.getElementById("content").style.display = "none";
348            document.getElementById("group").style.display = "";
349
350        }
351        function showDeleter() {
352            document.getElementById("content").style.display = "none";
353            document.getElementById("deleter").style.display = "";
354        }
355        function selectAll(name) {
356            checkboxes = document.getElementsByName(name);
357            for (var i = 0, n = checkboxes.length; i < n; i++) {
358                checkboxes[i].checked = true;
359            }
360        }
361        function deselectAll(name) {
362            checkboxes = document.getElementsByName(name);
363            for (var i = 0, n = checkboxes.length; i < n; i++) {
364                if (checkboxes[i].disabled == false)
365                    checkboxes[i].checked = false;
366            }
367        }
368    </script>
369</div>
Note: See TracBrowser for help on using the repository browser.