Free cookie consent management tool by TermsFeed Policy Generator

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