[13847] | 1 | @model HeuristicLab.Clients.Hive.WebJobManager.Models.HiveWebUser
|
---|
[13754] | 2 | <div ng-app="wjm" ng-controller="resourceCtrl" data-ng-init="init()">
|
---|
| 3 | <div id="userId" style="display:none">@ViewBag.SessionId</div>
|
---|
[13689] | 4 |
|
---|
[13847] | 5 | @Html.Partial("Navbar", new HeuristicLab.Clients.Hive.WebJobManager.ViewModels.NavbarViewModel("Resource", Model))
|
---|
[13733] | 6 |
|
---|
| 7 |
|
---|
[13782] | 8 |
|
---|
[13754] | 9 | <div class="col-sm-4">
|
---|
[13805] | 10 | <div class="btn-group btn-group-justified" style="padding:3px;margin-bottom:-12px"
|
---|
[13795] | 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"
|
---|
[13754] | 25 | data-tree-id="treeview"
|
---|
| 26 | data-tree-model="tree"
|
---|
| 27 | data-node-id="Id"
|
---|
| 28 | data-node-label="Name"
|
---|
[13758] | 29 | data-node-children="children"
|
---|
| 30 | ng-class="">
|
---|
[13754] | 31 | </div>
|
---|
| 32 | </div>
|
---|
[13782] | 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}}
|
---|
[13795] | 39 | <span ng-if="treeview.currentNode.IsDisposable === undefined"> - Resource group</span>
|
---|
[13782] | 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);
|
---|
[13827] | 43 | text-shadow:2px 2px black;font-weight:bold;margin-bottom:5px;"
|
---|
[13782] | 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>
|
---|
[13795] | 49 | <ul class="nav nav-pills nav-justified">
|
---|
[13805] | 50 | <li role="presentation"
|
---|
| 51 | ng-class="{ 'active': !permissionview && !resaddview }"
|
---|
| 52 | ng-style="{ 'text-decoration': !permissionview && !resaddview ? 'underline' : ''}">
|
---|
[13795] | 53 | <a style="text-shadow:2px 2px black; color:white; font-weight:bold; border: 1px solid white;"
|
---|
| 54 | href=""
|
---|
[13805] | 55 | ng-click="menuchange(0)">
|
---|
[13795] | 56 | Resource info
|
---|
| 57 | </a>
|
---|
| 58 | </li>
|
---|
[13805] | 59 | <li role="presentation"
|
---|
| 60 | ng-class="{ 'active': permissionview }"
|
---|
| 61 | ng-style="{ 'text-decoration': permissionview ? 'underline' : ''}">
|
---|
[13827] | 62 | <a style="text-shadow:2px 2px black; color:white; font-weight:bold; border:1px solid white;"
|
---|
[13795] | 63 | href=""
|
---|
[13805] | 64 | ng-click="menuchange(1)">
|
---|
[13795] | 65 | Permissions
|
---|
| 66 | </a>
|
---|
| 67 | </li>
|
---|
[13805] | 68 | <li ng-if="treeview.currentNode.IsDisposable === undefined"
|
---|
| 69 | role="presentation"
|
---|
| 70 | ng-class="{ 'active': resaddview }"
|
---|
[13827] | 71 | ng-style="{'text-decoration': resaddview ? 'underline' : ''}">
|
---|
[13805] | 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>
|
---|
[13795] | 79 | </ul>
|
---|
[13805] | 80 | <form ng-show="!permissionview && resaddview"
|
---|
[13795] | 81 | method="post"
|
---|
[13805] | 82 | asp-action="addResourcesToGroup"
|
---|
[13795] | 83 | asp-controller="Resource"
|
---|
| 84 | enctype="multipart/form-data"
|
---|
[13805] | 85 | class="row panel-heading">
|
---|
| 86 | <div class="row" style="padding:5px;">
|
---|
| 87 | <h4>Info</h4>
|
---|
| 88 | <p>
|
---|
| 89 | This shows only
|
---|
[13827] | 90 | <span style="text-decoration:underline;">direct members</span>
|
---|
[13805] | 91 | of the group (not members of subgroups).
|
---|
| 92 | </p>
|
---|
[13827] | 93 | <p><span style="color:lightgray;">Gray clients</span> are already subscribed to another group. White are ungrouped.</p>
|
---|
[13805] | 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>
|
---|
[13827] | 100 | <div class="row" style="margin:5px;">
|
---|
[13805] | 101 | <h4>All resources</h4>
|
---|
| 102 | <label class="col-sm-3"
|
---|
| 103 | ng-style="{
|
---|
[13827] | 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"
|
---|
[13805] | 109 | name="addres"
|
---|
| 110 | value="{{client.Id}}"
|
---|
| 111 | ng-model="client.add"> {{client.Name}}
|
---|
| 112 | </label>
|
---|
| 113 | </div>
|
---|
| 114 | </div>
|
---|
[13827] | 115 | <input style="display:none;"
|
---|
[13805] | 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;">
|
---|
[13795] | 135 | <h4>Groups</h4>
|
---|
| 136 | <label class="col-sm-3" ng-repeat="group in permGroups">
|
---|
[13805] | 137 | <input type="checkbox"
|
---|
| 138 | name="permgroups"
|
---|
[13795] | 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">
|
---|
[13805] | 146 | <input type="checkbox"
|
---|
| 147 | name="permusers"
|
---|
[13795] | 148 | value="{{user.Id}}"
|
---|
| 149 | ng-model="user.state"> {{user.UserName}}
|
---|
| 150 | </label>
|
---|
| 151 | </div>
|
---|
[13805] | 152 | <div class="btn btn-success pull-right"
|
---|
[13795] | 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()">
|
---|
[13805] | 156 | <i ng-if="permissionLoader" class="fa fa-spin fa-save"></i>
|
---|
| 157 | Save permission changes
|
---|
| 158 | </div>
|
---|
[13795] | 159 | </form>
|
---|
[13805] | 160 | <form ng-show="!permissionview && !resaddview"
|
---|
[13795] | 161 | method="post"
|
---|
[13782] | 162 | asp-action="deleteClientGroup"
|
---|
| 163 | ng-init="checkDel = false"
|
---|
| 164 | asp-controller="Resource"
|
---|
| 165 | enctype="multipart/form-data"
|
---|
| 166 | class="row panel-heading"
|
---|
[13795] | 167 | style="padding:10px;">
|
---|
[13827] | 168 | <table class="table" style="margin-bottom:0;">
|
---|
[13782] | 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">
|
---|
[13758] | 188 |
|
---|
[13782] | 189 | <td>
|
---|
[13758] | 190 |
|
---|
[13827] | 191 | <input style="display:none;" type="text" id="inpid" name="inpid" value="{{treeview.currentNode.Id}}" />
|
---|
[13782] | 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"
|
---|
[13795] | 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;">
|
---|
[13782] | 201 | <i class="fa fa-trash-o"></i>
|
---|
| 202 | Delete group (irriversible action!)
|
---|
| 203 | </button>
|
---|
[13758] | 204 |
|
---|
[13782] | 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>
|
---|
[13805] | 218 | <td>{{treeview.currentNode.FreeMemory/1024 | number:1}} / {{treeview.currentNode.Memory/1024 | number:1}} GB</td>
|
---|
[13782] | 219 | </tr>
|
---|
| 220 |
|
---|
| 221 | </tbody>
|
---|
| 222 | </table>
|
---|
| 223 | </form>
|
---|
[13805] | 224 | <form method="post" ng-show="!permissionview && !resaddview"
|
---|
[13782] | 225 | asp-action="changeParent"
|
---|
| 226 | asp-controller="Resource"
|
---|
| 227 | enctype="multipart/form-data"
|
---|
| 228 | class="row"
|
---|
[13795] | 229 | style="padding:10px;">
|
---|
[13827] | 230 | <input style="display:none;" type="text" id="inpid" name="inpid" value="{{treeview.currentNode.Id}}" />
|
---|
[13782] | 231 |
|
---|
[13827] | 232 | <span style="padding:0;" class="col-sm-4">Change group: </span>
|
---|
[13795] | 233 |
|
---|
| 234 | <select class="form-control col-sm-5"
|
---|
| 235 | style="width:200px"
|
---|
| 236 | id="inpidpar"
|
---|
| 237 | name="inpidpar"
|
---|
[13782] | 238 | ng-model="treeview.currentNode.ParentResourceId">
|
---|
| 239 | <option value="">None</option>
|
---|
[13795] | 240 | <option ng-repeat="group in groups | orderBy:'Name'"
|
---|
[13782] | 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"
|
---|
[13795] | 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;">
|
---|
[13782] | 252 | <i class="fa fa-save"></i>
|
---|
[13805] | 253 | Change group
|
---|
[13782] | 254 | </button>
|
---|
| 255 | </form>
|
---|
[13754] | 256 | </div>
|
---|
| 257 | <div class="panel-body row" style="text-align:center">
|
---|
[13782] | 258 |
|
---|
[13758] | 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"
|
---|
[13827] | 263 | style="font-size:medium;"
|
---|
[13758] | 264 | class="span8 calendar"
|
---|
| 265 | ng-model="currentcal.down"></div>
|
---|
[13782] | 266 | <table ng-if="selectedEventId != -1"
|
---|
| 267 | animate-on-change="selectedEventId"
|
---|
| 268 | class="table">
|
---|
[13758] | 269 | <tr>
|
---|
[13782] | 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>
|
---|
[13758] | 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">
|
---|
[13768] | 290 | All day {{currentcal.down[0][selectedEventId].start | date : 'dd/MM/yy' : 'utc'}}
|
---|
[13758] | 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>
|
---|
[13775] | 299 | <select class="content-select" ng-model="currentcal.down[0][selectedEventId].title" ng-change="setChanged(selectedEventId)">
|
---|
[13758] | 300 | <option value="Unavailable">Unavailable</option>
|
---|
| 301 | <option value="Shutdown">Shutdown command</option>
|
---|
| 302 | </select>
|
---|
| 303 | </td>
|
---|
| 304 | </tr>
|
---|
| 305 | <tr>
|
---|
[13775] | 306 | <td>Recurrence</td>
|
---|
| 307 | <td>
|
---|
| 308 | <input type="checkbox" class="checkbox" ng-model="currentcal.down[0][selectedEventId].rec.recurrence" ng-change="setChanged(selectedEventId)" />
|
---|
[13827] | 309 | <p ng-if="currentcal.down[0][selectedEventId].changed && currentcal.down[0][selectedEventId].rec.recurrence" style="color:darkred; font-weight:bold;">
|
---|
[13775] | 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>
|
---|
[13782] | 319 | <input type="date"
|
---|
| 320 | ng-model="currentcal.down[0][selectedEventId].rec.start"
|
---|
[13775] | 321 | ng-change="checkDateStartEnd()" />
|
---|
| 322 | </td>
|
---|
| 323 | </tr>
|
---|
[13782] | 324 | <tr ng-if="currentcal.down[0][selectedEventId].rec.recurrence">
|
---|
[13775] | 325 | <td>
|
---|
| 326 | End
|
---|
| 327 | </td>
|
---|
| 328 | <td>
|
---|
[13782] | 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'}}" />
|
---|
[13775] | 333 | </td>
|
---|
| 334 | </tr>
|
---|
[13782] | 335 |
|
---|
[13775] | 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>
|
---|
[13782] | 346 |
|
---|
[13775] | 347 | </tr>
|
---|
| 348 | <tr>
|
---|
[13758] | 349 | <td></td>
|
---|
| 350 | <td>
|
---|
[13775] | 351 | <button class="btn btn-info"
|
---|
| 352 | ng-click="pushRecurChanges(currentcal.down[0][selectedEventId].rec.recid)"
|
---|
[13782] | 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' &&
|
---|
[13775] | 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>
|
---|
[13758] | 360 | <button class="btn btn-danger"
|
---|
[13782] | 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;"
|
---|
[13758] | 363 | ng-click="remove(selectedEventId)">
|
---|
| 364 | <i class="fa fa-trash-o"></i>
|
---|
| 365 | Delete
|
---|
| 366 | </button>
|
---|
[13775] | 367 | <button class="btn btn-danger"
|
---|
[13782] | 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;"
|
---|
[13775] | 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>
|
---|
[13758] | 375 | </td>
|
---|
| 376 | </tr>
|
---|
| 377 | </table>
|
---|
| 378 | <table ng-if="selectedEventId === -1" class="table">
|
---|
[13782] | 379 | <tr>
|
---|
| 380 | <th colspan="2"> Select an event to show information</th>
|
---|
[13758] | 381 |
|
---|
[13782] | 382 | </tr>
|
---|
| 383 | <tr>
|
---|
| 384 | <td>Time / Select an event</td>
|
---|
| 385 | </tr>
|
---|
| 386 | <tr>
|
---|
| 387 | <td>Status / Select an event</td>
|
---|
| 388 | </tr>
|
---|
[13758] | 389 | </table>
|
---|
[13782] | 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 |
|
---|
[13754] | 452 | </div>
|
---|
[13758] | 453 |
|
---|
[13754] | 454 | <div class="row panel-footer">
|
---|
[13782] | 455 | <h2>All events </h2><h5>(sorted by changed and start date)</h5>
|
---|
[13795] | 456 | <div class="row" ng-repeat="ev in currentcal.down[0] | orderBy:['!changed','start'] track by $index"
|
---|
| 457 | style="margin-bottom:4px">
|
---|
[13782] | 458 | <div class="btn-group-justified btn-block">
|
---|
[13754] | 459 |
|
---|
[13782] | 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 |
|
---|
[13754] | 492 | </div>
|
---|
| 493 | </div>
|
---|
[13782] | 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"
|
---|
[13795] | 501 | class="col-sm-8 panel panel-primary">
|
---|
[13782] | 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>
|
---|
[13795] | 506 | Add new resource group
|
---|
[13782] | 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 === ''"
|
---|
[13795] | 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;">
|
---|
[13782] | 541 | <i class="fa fa-save"></i>
|
---|
| 542 | Add {{newName}} group
|
---|
| 543 | </button>
|
---|
| 544 | </div>
|
---|
| 545 | <div class="panel-body row">
|
---|
[13795] | 546 | <h3>Choose resources </h3>
|
---|
| 547 | <h5>(This will overwrite the group set for these resources)</h5>
|
---|
[13805] | 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>
|
---|
[13782] | 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>
|
---|
[13795] | 579 | <h4>
|
---|
| 580 | All unassigned resources arrive here. Assign them to a group to remove them from this group.
|
---|
| 581 | </h4>
|
---|
[13782] | 582 |
|
---|
| 583 | </div>
|
---|
| 584 | </div>
|
---|
[13754] | 585 | <script src="~/js/hubs/calendarhubber.js"></script>
|
---|
[13689] | 586 | </div>
|
---|