source: branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Views/Resource/Index.cshtml @ 13805

Last change on this file since 13805 was 13805, checked in by jlodewyc, 6 years ago

#2582 Bugfixing, email setup password and code commenting

File size: 29.7 KB
Line 
1
2<div ng-app="wjm" ng-controller="resourceCtrl" data-ng-init="init()">
3    <div id="userId" style="display:none">@ViewBag.SessionId</div>
4
5    @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("Resource"))
6
7
8
9    <div class="col-sm-4">
10        <div class="btn-group btn-group-justified" style="padding:3px;margin-bottom:-12px"
11             role="group">
12            <a class="btn btn-info btn-lg btn-block disabled"
13               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);
14                            text-shadow:2px 2px black;">
15                <i class="fa fa-sitemap"></i> Resource groups
16            </a>
17            <div class="btn btn-block btn-success"
18                 style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
19                            text-shadow:2px 2px black;"
20                 ng-click="clearTreeSelect()"><i class="fa fa-plus-circle"></i></div>
21        </div>
22
23        <div style=""
24             data-angular-treeview="true"
25             data-tree-id="treeview"
26             data-tree-model="tree"
27             data-node-id="Id"
28             data-node-label="Name"
29             data-node-children="children"
30             ng-class="">
31        </div>
32    </div>
33    <div ng-if="treeview.currentNode && treeview.currentNode.Id !== undefined" class="col-sm-8 panel  panel-primary" style="margin-bottom:200px">
34        <div class="row panel-heading"
35             style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
36                            text-shadow:2px 2px black;">
37            <h3>
38                {{treeview.currentNode.Name}}
39                <span ng-if="treeview.currentNode.IsDisposable === undefined"> - Resource group</span>
40                <a ng-if="treeview.currentNode.IsDisposable !== undefined"
41                   class="btn pull-right"
42                   style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
43                            text-shadow:2px 2px black;font-weight:bold;margin-bottom:5px"
44                   ng-class="{ 'btn-success': treeview.currentNode.IsDisposable, 'btn-warning': !treeview.currentNode.IsDisposable }"
45                   ng-click="toggleDisposable()">
46                    <span ng-if="calendarDispose"><i class="fa fa-save fa-spin"></i> </span> {{ treeview.currentNode.IsDisposable | disp}}
47                </a>
48            </h3>
49            <ul class="nav nav-pills nav-justified">
50                <li role="presentation"
51                    ng-class="{ 'active': !permissionview && !resaddview }"
52                    ng-style="{ 'text-decoration': !permissionview && !resaddview ? 'underline' : ''}">
53                    <a style="text-shadow:2px 2px black; color:white; font-weight:bold; border: 1px solid white;"
54                       href=""
55                       ng-click="menuchange(0)">
56                        Resource info
57                    </a>
58                </li>
59                <li role="presentation"
60                    ng-class="{ 'active': permissionview }"
61                    ng-style="{ 'text-decoration': permissionview ? 'underline' : ''}">
62                    <a style="text-shadow:2px 2px black; color:white; font-weight:bold; border: 1px solid white;"
63                       href=""
64                       ng-click="menuchange(1)">
65                        Permissions
66                    </a>
67                </li>
68                <li ng-if="treeview.currentNode.IsDisposable === undefined"
69                    role="presentation"
70                    ng-class="{ 'active': resaddview }"
71                    ng-style="{ 'text-decoration': resaddview ? 'underline' : ''}">
72
73                    <a style="text-shadow:2px 2px black; color:white; font-weight:bold; border: 1px solid white;"
74                       href=""
75                       ng-click="menuchange(2)">
76                        Add resources
77                    </a>
78                </li>
79            </ul>
80            <form ng-show="!permissionview && resaddview"
81                  method="post"
82                  asp-action="addResourcesToGroup"
83                  asp-controller="Resource"
84                  enctype="multipart/form-data"
85                  class="row panel-heading">
86                <div class="row" style="padding:5px;">
87                    <h4>Info</h4>
88                    <p>
89                        This shows only
90                        <span style="text-decoration:underline">direct members</span>
91                        of the group (not members of subgroups).
92                    </p>
93                    <p>Adding a member will overwrite the current group it's a member in (if any)</p>
94                    <p>Removing an existing member will make it revert to Ungrouped.</p>
95                    <a ng-click="refreshAdds()" href=""
96                       class="btn btn-info pull-right"
97                       style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
98                            text-shadow:2px 2px black;">Reset to current members</a>
99                    <div class="row" style="margin:5px">
100                        <h4>All resources</h4>
101                        <label class="col-sm-3"
102                               ng-style="{
103                                   'background-color':client.add === true ? 'green' : '' }"
104                               ng-repeat="client in clients  | orderBy:['!add', 'Name' ]  | filter:searchText">
105                            <input type="checkbox"
106                                   name="addres"
107                                   value="{{client.Id}}"
108                                   ng-model="client.add"> {{client.Name}}
109                        </label>
110                    </div>
111                </div>
112                <input style="display:none"
113                       type="text"
114                       id="groupid"
115                       name="groupid"
116                       value="{{treeview.currentNode.Id}}" />
117
118                <button type="submit"
119                        id="inpsaver"
120                        class="btn btn-success pull-right"
121                        style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
122                            text-shadow:2px 2px black;">
123                    <i class="fa fa-save"></i>
124                    Add resources to group
125                </button>
126            </form>
127            <form ng-show="permissionview && !resaddview"
128                  method="post"
129                  enctype="multipart/form-data"
130                  class="row panel-heading">
131                <div class="row" style="padding:10px;">
132                    <h4>Groups</h4>
133                    <label class="col-sm-3" ng-repeat="group in permGroups">
134                        <input type="checkbox"
135                               name="permgroups"
136                               value="{{group.Id}}"
137                               ng-model="group.state"> {{group.Name}}
138                    </label>
139                </div>
140                <div class="row" style="padding:10px;">
141                    <h4>Users</h4>
142                    <label class="col-sm-3 col-lg-2" ng-repeat="user in permUsers">
143                        <input type="checkbox"
144                               name="permusers"
145                               value="{{user.Id}}"
146                               ng-model="user.state"> {{user.UserName}}
147                    </label>
148                </div>
149                <div class="btn btn-success pull-right"
150                     style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
151                            text-shadow:2px 2px black;"
152                     ng-click="pushPermissions()">
153                    <i ng-if="permissionLoader" class="fa fa-spin fa-save"></i>
154                    Save permission changes
155                </div>
156            </form>
157            <form ng-show="!permissionview && !resaddview"
158                  method="post"
159                  asp-action="deleteClientGroup"
160                  ng-init="checkDel = false"
161                  asp-controller="Resource"
162                  enctype="multipart/form-data"
163                  class="row panel-heading"
164                  style="padding:10px;">
165                <table class="table" style="margin-bottom:0px">
166                    <tbody>
167                        <tr>
168                            <td>Heartbeat</td>
169                            <td>
170                                Every {{treeview.currentNode.HbInterval}} sec
171                                <span ng-if="treeview.currentNode.IsDisposable !== undefined">
172                                    - Last beat {{treeview.currentNode.LastHeartbeat | date:'HH:mm dd/MM/yyyy' }}
173                                </span>
174                            </td>
175                        </tr>
176                        <tr>
177                            <td>Name</td>
178                            <td>{{treeview.currentNode.Name}}</td>
179                        </tr>
180                        <tr>
181                            <td>Id</td>
182                            <td>{{treeview.currentNode.Id}}</td>
183                        </tr>
184                        <tr ng-if="treeview.currentNode.IsDisposable === undefined">
185
186                            <td>
187
188                                <input style="display:none" type="text" id="inpid" name="inpid" value="{{treeview.currentNode.Id}}" />
189                                <input type="checkbox" ng-model="checkDel" /> I want to delete this group
190                            </td>
191                            <td>
192                                <button type="submit"
193                                        id="inpsaver"
194                                        ng-disabled="!checkDel"
195                                        class="btn btn-danger"
196                                        style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
197                            text-shadow:2px 2px black;">
198                                    <i class="fa fa-trash-o"></i>
199                                    Delete group (irriversible action!)
200                                </button>
201
202                            </td>
203
204                        </tr>
205                    </tbody>
206                    <tbody ng-if="treeview.currentNode.IsDisposable !== undefined">
207                        <tr>
208                            <td>Cores (free/total)</td>
209                            <td>{{treeview.currentNode.FreeCores}} / {{treeview.currentNode.Cores}} @@ {{treeview.currentNode.CpuSpeed/1000 | number:1}} GHz</td>
210
211
212                        </tr>
213                        <tr>
214                            <td>Memory (free/total)</td>
215                            <td>{{treeview.currentNode.FreeMemory/1024 | number:1}} / {{treeview.currentNode.Memory/1024 | number:1}} GB</td>
216                        </tr>
217
218                    </tbody>
219                </table>
220            </form>
221            <form method="post" ng-show="!permissionview && !resaddview"
222                  asp-action="changeParent"
223                  asp-controller="Resource"
224                  enctype="multipart/form-data"
225                  class="row"
226                  style="padding:10px;">
227                <input style="display:none" type="text" id="inpid" name="inpid" value="{{treeview.currentNode.Id}}" />
228
229                <span style="padding:0px" class="col-sm-4">Change group: </span>
230
231                <select class="form-control col-sm-5"
232                        style="width:200px"
233                        id="inpidpar"
234                        name="inpidpar"
235                        ng-model="treeview.currentNode.ParentResourceId">
236                    <option value="">None</option>
237                    <option ng-repeat="group in groups | orderBy:'Name'"
238                            value="{{group.Id}}"
239                            ng-if="group.Id !=treeview.currentNode.Id && group.ParentResourceId != treeview.currentNode.Id">
240                        {{group.Name}}
241                    </option>
242
243                </select>
244                <button type="submit"
245                        id="inpsaver"
246                        class="btn btn-warning col-sm-3 pull-right"
247                        style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
248                            text-shadow:2px 2px black;">
249                    <i class="fa fa-save"></i>
250                    Change group
251                </button>
252            </form>
253        </div>
254        <div class="panel-body row" style="text-align:center">
255
256            <i ng-if="currentcal.length  === 0" class="fa fa-cog fa-5x fa-spin"></i>
257            <div ng-if="currentcal.length != 0"
258                 ui-calendar="uiConfig.calendar"
259                 id="resourcecalendar"
260                 style="font-size:medium"
261                 class="span8 calendar"
262                 ng-model="currentcal.down"></div>
263            <table ng-if="selectedEventId != -1"
264                   animate-on-change="selectedEventId"
265                   class="table">
266                <tr>
267                    <th> Selected event</th>
268                    <th>
269                        <div class="btn btn-default"
270                             ng-click="goToDate()"
271                             ng-style="{'background-color':currentcal.down[0][selectedEventId].color }"
272                             style="color:white;box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
273                            text-shadow:2px 2px black;font-weight:bold;">
274                            <i class="fa fa-calendar"></i> Go to date
275                        </div>
276                    </th>
277                </tr>
278                <tr>
279                    <td>Time</td>
280                    <td ng-if="!currentcal.down[0][selectedEventId].allDay">
281                        {{currentcal.down[0][selectedEventId].start | date : 'HH:mm dd/MM/yy' : 'utc'}}
282                        <span ng-if="currentcal.down[0][selectedEventId].end">
283                            to {{currentcal.down[0][selectedEventId].end | date : 'HH:mm dd/MM/yy': 'utc'}}
284                        </span>
285                    </td>
286                    <td ng-if="currentcal.down[0][selectedEventId].allDay">
287                        All day {{currentcal.down[0][selectedEventId].start | date : 'dd/MM/yy' : 'utc'}}
288                        <span ng-if="currentcal.down[0][selectedEventId].end">
289                            to {{currentcal.down[0][selectedEventId].end | date : 'dd/MM/yy': 'utc'}}
290                        </span>
291                    </td>
292                </tr>
293                <tr>
294                    <td>Status</td>
295                    <td>
296                        <select class="content-select" ng-model="currentcal.down[0][selectedEventId].title" ng-change="setChanged(selectedEventId)">
297                            <option value="Unavailable">Unavailable</option>
298                            <option value="Shutdown">Shutdown command</option>
299                        </select>
300                    </td>
301                </tr>
302                <tr>
303                    <td>Recurrence</td>
304                    <td>
305                        <input type="checkbox" class="checkbox" ng-model="currentcal.down[0][selectedEventId].rec.recurrence" ng-change="setChanged(selectedEventId)" />
306                        <p ng-if="currentcal.down[0][selectedEventId].changed && currentcal.down[0][selectedEventId].rec.recurrence" style="color:darkred;font-weight:bold">
307                            The recurrence itself will be made during saving, settings can be changed here.
308                        </p>
309                    </td>
310                </tr>
311                <tr ng-if="currentcal.down[0][selectedEventId].rec.recurrence">
312                    <td>
313                        Start
314                    </td>
315                    <td>
316                        <input type="date"
317                               ng-model="currentcal.down[0][selectedEventId].rec.start"
318                               ng-change="checkDateStartEnd()" />
319                    </td>
320                </tr>
321                <tr ng-if="currentcal.down[0][selectedEventId].rec.recurrence">
322                    <td>
323                        End
324                    </td>
325                    <td>
326                        <input type="date"
327                               ng-model="currentcal.down[0][selectedEventId].rec.end"
328                               ng-change="checkDateStartEnd()"
329                               min="{{currentcal.down[0][selectedEventId].rec.start | date:'yyyy-MM-dd'}}" />
330                    </td>
331                </tr>
332
333                <tr ng-if="currentcal.down[0][selectedEventId].rec.recurrence">
334                    <td colspan="2">
335                        <label class="checkbox-inline"><input type="checkbox" ng-model="currentcal.down[0][selectedEventId].rec.days[1]">Monday</label>
336                        <label class="checkbox-inline"><input type="checkbox" ng-model="currentcal.down[0][selectedEventId].rec.days[2]">Tuesday</label>
337                        <label class="checkbox-inline"><input type="checkbox" ng-model="currentcal.down[0][selectedEventId].rec.days[3]">Wednesday</label>
338                        <label class="checkbox-inline"><input type="checkbox" ng-model="currentcal.down[0][selectedEventId].rec.days[4]">Thursday</label>
339                        <label class="checkbox-inline"><input type="checkbox" ng-model="currentcal.down[0][selectedEventId].rec.days[5]">Friday</label>
340                        <label class="checkbox-inline"><input type="checkbox" ng-model="currentcal.down[0][selectedEventId].rec.days[6]">Saturday</label>
341                        <label class="checkbox-inline"><input type="checkbox" ng-model="currentcal.down[0][selectedEventId].rec.days[0]">Sunday</label>
342                    </td>
343
344                </tr>
345                <tr>
346                    <td></td>
347                    <td>
348                        <button class="btn btn-info"
349                                ng-click="pushRecurChanges(currentcal.down[0][selectedEventId].rec.recid)"
350                                style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
351                            text-shadow:2px 2px black;"
352                                ng-if="currentcal.down[0][selectedEventId].rec.recid != '0' &&
353                                currentcal.down[0][selectedEventId].rec.recid != '00000000-0000-0000-0000-000000000000' &&
354                                currentcal.down[0][selectedEventId].changed">
355                            Push all changes to other recurrencies
356                        </button>
357                        <button class="btn btn-danger"
358                                style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
359                            text-shadow:2px 2px black;"
360                                ng-click="remove(selectedEventId)">
361                            <i class="fa fa-trash-o"></i>
362                            Delete
363                        </button>
364                        <button class="btn btn-danger"
365                                style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
366                            text-shadow:2px 2px black;"
367                                ng-click="deleteAllRecurrences(currentcal.down[0][selectedEventId].rec.recid)"
368                                ng-if="currentcal.down[0][selectedEventId].rec.recid != '0'
369                                        && currentcal.down[0][selectedEventId].rec.recid != '00000000-0000-0000-0000-000000000000'">
370                            Delete all recurrencies
371                        </button>
372                    </td>
373                </tr>
374            </table>
375            <table ng-if="selectedEventId === -1" class="table">
376                <tr>
377                    <th colspan="2"> Select an event to show information</th>
378
379                </tr>
380                <tr>
381                    <td>Time / Select an event</td>
382                </tr>
383                <tr>
384                    <td>Status / Select an event</td>
385                </tr>
386            </table>
387            <div ng-if="calendarSaver">
388                <i class="fa fa-save fa-4x fa-spin"></i>
389            </div>
390            <div ng-if="calendarDeleter">
391                <i class="fa fa-trash-o fa-4x fa-spin"></i>
392            </div>
393            <div class="row">
394                <h3>Current calendar - actions</h3>
395                <div class="btn-group btn-group-justified"
396                     role="group"
397                     style="padding-bottom:20px;">
398
399                    <div ng-if="treeview.currentNode.changes"
400                         class="btn btn-success"
401                         ng-click="saveCurrentCalendar()"
402                         style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
403                            text-shadow:2px 2px black;">
404                        Save current changes
405                    </div>
406                    <div ng-if="treeview.currentNode.changes"
407                         class="btn btn-warning"
408                         ng-click="clearCurrentCalendar()"
409                         style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
410                            text-shadow:2px 2px black;">
411                        Clear current changes
412                    </div>
413                    <div class="btn btn-danger"
414                         ng-click="deleteAllPreviousEvents()"
415                         style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
416                            text-shadow:2px 2px black;">
417                        Delete past events
418                    </div>
419                    <div class="btn btn-danger"
420                         ng-click="deleteAllEvents()"
421                         style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
422                            text-shadow:2px 2px black;">
423                        Delete all events
424                    </div>
425                </div>
426            </div>
427            <div class="row">
428                <h3>All loaded calendars - actions</h3>
429                <div class="btn-group btn-group-justified"
430                     role="group"
431                     style="padding-bottom:20px;">
432
433                    <div class="btn btn-success"
434                         ng-click="saveAllCalendars()"
435                         style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
436                            text-shadow:2px 2px black;">
437                        Save all changes
438                    </div>
439
440                    <div class="btn btn-warning"
441                         ng-click="clearAllCalendars()"
442                         style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
443                            text-shadow:2px 2px black;">
444                        Clear all changes
445                    </div>
446                </div>
447            </div>
448
449        </div>
450
451        <div class="row panel-footer">
452            <h2>All events </h2><h5>(sorted by changed and start date)</h5>
453            <div class="row" ng-repeat="ev in currentcal.down[0] | orderBy:['!changed','start'] track by $index"
454                 style="margin-bottom:4px">
455                <div class="btn-group-justified btn-block">
456
457                    <div class="btn btn-default" ng-style="{'background-color': ev.color}"
458                         ng-click="eventClickBtn(ev._id)"
459                         style="width:6%;color:white;
460                            box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);text-shadow:2px 2px black;">
461                        {{ev.title }}
462                        <span ng-if="!ev.allDay">
463                            from {{ev.start | date : 'HH:mm dd/MM/yy' : 'utc'}}
464                            <span ng-if="ev.end">
465                                to {{ev.end | date : 'HH:mm dd/MM/yy': 'utc'}}
466                            </span>
467                        </span>
468                        <span ng-if="ev.allDay">
469                            all day from {{ev.start | date : 'dd/MM/yy' : 'utc'}}
470                            <span ng-if="ev.end">
471                                to {{ev.end | date : 'dd/MM/yy': 'utc'}}
472                            </span>
473                        </span>
474                        <span ng-if="ev.rec.recurrence">
475                            | recurring event
476                        </span>
477                    </div>
478                    <a id="del"
479                       style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
480                            text-shadow:2px 2px black;"
481                       class='btn btn-group btn-danger'
482                       ng-click="removeList(ev._id)">
483                        <span class='glyphicon glyphicon-trash' aria-hidden='true'></span>
484                    </a>
485                </div>
486
487            </div>
488
489        </div>
490    </div>
491    <div ng-show="treeview.currentNode === undefined"
492         style="margin-bottom:200px">
493        <form method="post"
494              ng-init="newName = ''"
495              asp-action="newClientGroup"
496              asp-controller="Resource"
497              enctype="multipart/form-data"
498              class="col-sm-8 panel panel-primary">
499            <div class="row panel-heading"
500                 style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
501                            text-shadow:2px 2px black;">
502                <h3>
503                    Add new resource group
504                </h3>
505                <table class="table">
506                    <tbody>
507                        <tr>
508                            <td>Heartbeat</td>
509                            <td>
510                                <i class="fa fa-clock-o fa-2x pull-left"></i> <input type="number" class="form-control" style="width:70px" name="inpheart" id="inpheart" value="60" placeholder="60" />
511
512
513                            </td>
514                        </tr>
515                        <tr>
516                            <td>Name</td>
517                            <td><input type="text" class="form-control" id="inpname" name="inpname" ng-model="newName" placeholder="Group name" /></td>
518                        </tr>
519                        <tr>
520                            <td>Assign parent group</td>
521                            <td>
522                                <select class="form-control" id="inpparent" name="inpparent">
523                                    <option value="">None</option>
524                                    <option ng-repeat="group in groups | orderBy:'Name'" value="{{group.Id}}">{{group.Name}}</option>
525
526                                </select>
527                            </td>
528                        </tr>
529                    </tbody>
530
531                </table>
532                <button type="submit"
533                        id="inpsaver"
534                        ng-disabled="newName === ''"
535                        class="btn btn-success"
536                        style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
537                            text-shadow:2px 2px black;font-weight:bold;">
538                    <i class="fa fa-save"></i>
539                    Add {{newName}} group
540                </button>
541            </div>
542            <div class="panel-body row">
543                <h3>Choose resources </h3>
544                <h5>(This will overwrite the group set for these resources)</h5>
545                <label>Search: <input ng-init="searchText = ''" ng-model="searchText"></label>
546                <div class="row">
547                    <div style="margin:0px"
548                         ng-repeat="client in clients  | orderBy:['Name']  | filter:searchText" class="checkbox col-md-6 col-lg-4">
549
550                        <label ng-style="{
551                                   'background-color':client.checked === true ? 'green' : '',
552                                    'color':client.checked === true ? 'white' : ''  }"
553                               style="border-radius:5px">
554                            <input type="checkbox"
555                                   name="clientstoadd"
556                                   ng-model="client.checked"
557                                   value="{{client.Id}}" />
558                            <i class="fa fa-desktop" aria-hidden="true"></i> {{client.Name | limitTo : 7}} - {{client.Cores}}x {{client.CpuSpeed/1000 |  number:1}} GHz - {{client.Memory / 1024 | number:1}} GB
559                        </label>
560
561                    </div>
562                </div>
563            </div>
564        </form>
565    </div>
566
567    <div ng-if="treeview.currentNode !== undefined && treeview.currentNode.Id === undefined"
568         class="col-sm-8 panel  panel-primary"
569         style="margin-bottom:200px">
570        <div class="row panel-heading"
571             style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
572                            text-shadow:2px 2px black;">
573            <h2>
574                Ungrouped
575            </h2>
576            <h4>
577                All unassigned resources arrive here. Assign them to a group to remove them from this group.
578            </h4>
579
580        </div>
581    </div>
582    <script src="~/js/hubs/calendarhubber.js"></script>
583</div>
Note: See TracBrowser for help on using the repository browser.