153 lines
6.2 KiB
Plaintext
153 lines
6.2 KiB
Plaintext
//- TODO: lots of stuff.
|
|
.grid
|
|
.panel.panel-default
|
|
p.page-title
|
|
i.xo-icon-pool
|
|
| {{pool.name_label}}
|
|
.grid
|
|
.panel.panel-default
|
|
.panel-heading.panel-title
|
|
i.fa.fa-cogs(style="color: #e25440;")
|
|
| General
|
|
span.quick-edit(tooltip="Edit General settings", ng-click="poolSettings.$show()")
|
|
i.fa.fa-edit.fa-fw
|
|
.panel-body
|
|
form(editable-form="", name="poolSettings", onbeforesave="savePool($data)")
|
|
dl.dl-horizontal
|
|
dt Name
|
|
dd
|
|
span(editable-text="pool.name_label", e-name="name_label", e-form="poolSettings")
|
|
| {{pool.name_label}}
|
|
dt Description
|
|
dd
|
|
span(editable-text="pool.name_description", e-name="name_description", e-form="poolSettings")
|
|
| {{pool.name_description}}
|
|
dt Master
|
|
dd(ng-repeat="master in [pool.master] | resolve")
|
|
a(ui-sref="hosts_view({id: master.id})")
|
|
| {{master.name_label}}
|
|
dt Tags
|
|
dd
|
|
span(ng-repeat="tag in pool.tags")
|
|
span.label.label-primary {{tag}}
|
|
dt(ng-if="pool.default_SR") Default SR
|
|
dd(ng-if="pool.default_SR", ng-init="default_SR = (pool.default_SR | resolve)")
|
|
a(ui-sref="SRs_view({id: default_SR.id})") {{default_SR.name_label}}
|
|
dt HA
|
|
dd
|
|
| {{pool.HA_enabled}}
|
|
dt UUID
|
|
dd {{pool.UUID}}
|
|
.btn-form(ng-show="poolSettings.$visible")
|
|
p.center
|
|
button.btn.btn-default(type="button", ng-disabled="poolSettings.$waiting", ng-click="poolSettings.$cancel()")
|
|
i.fa.fa-times
|
|
| Cancel
|
|
|
|
|
button.btn.btn-primary(type="submit", ng-disabled="poolSettings.$waiting")
|
|
i.fa.fa-save
|
|
| Save
|
|
.panel.panel-default
|
|
.panel-heading.panel-title
|
|
i.xo-icon-stats(style="color: #e25440;")
|
|
| Stats
|
|
.row
|
|
.col-sm-6.col-lg-4
|
|
p.stat-name Hosts:
|
|
p.center.big-stat {{hosts | count}}
|
|
.col-sm-6.col-lg-4
|
|
p.stat-name Running:
|
|
p.center.big-stat {{runningHosts | count}}
|
|
|
|
//- Action panel
|
|
.grid
|
|
.panel.panel-default
|
|
.panel-heading.panel-title
|
|
i.fa.fa-flash(style="color: #e25440;")
|
|
| Actions
|
|
.panel-body
|
|
.grid-cell.text-center
|
|
.grid
|
|
.grid-cell.btn-group
|
|
button.btn(tooltip="Add SR", type="button", style="width: 90%", disabled)
|
|
i.xo-icon-sr.fa-2x.fa-fw
|
|
.grid-cell.btn-group
|
|
button.btn(tooltip="Add VM", type="button", style="width: 90%", xo-sref="VMs_new({container: pool.id})")
|
|
i.xo-icon-vm.fa-2x.fa-fw
|
|
.grid-cell.btn-group
|
|
button.btn(tooltip="Patch the pool", type="button", style="width: 90%", ng-file-select = "patchPool($files, pool.id)")
|
|
i.fa.fa-file-code-o.fa-2x.fa-fw
|
|
.grid-cell.btn-group
|
|
button.btn(tooltip="Add Host", type="button", style="width: 90%")
|
|
i.xo-icon-host.fa-2x.fa-fw
|
|
.grid-cell.btn-group
|
|
button.btn(tooltip="Disconnect", type="button", style="width: 90%; margin-bottom: 0.5em")
|
|
i.fa.fa-unlink.fa-2x.fa-fw
|
|
|
|
//- Hosts panel
|
|
.grid
|
|
.panel.panel-default
|
|
.panel-heading.panel-title
|
|
i.xo-icon-host(style="color: #e25440;")
|
|
| Hosts
|
|
.panel-body
|
|
table.table.table-hover.table-condensed
|
|
th Name
|
|
th.col-md-4 Description
|
|
th.col-md-6 Memory
|
|
tr(xo-sref="hosts_view({id: host.id})", ng-repeat="host in hosts | map | orderBy:natural('name_label') track by host.id")
|
|
td.oneliner {{host.name_label}}
|
|
td.oneliner {{host.name_description}}
|
|
td
|
|
.progress-condensed
|
|
.progress-bar(role="progressbar", aria-valuemin="0", aria-valuenow="{{host.memory.usage}}", aria-valuemax="{{host.memory.size}}", style="width: {{[host.memory.usage, host.memory.size] | percentage}}")
|
|
|
|
//- Shared SR panel
|
|
.grid
|
|
.panel.panel-default
|
|
.panel-heading.panel-title
|
|
i.xo-icon-sr(style="color: #e25440;")
|
|
| Shared SR
|
|
.panel-body
|
|
table.table.table-hover
|
|
th Name
|
|
th Description
|
|
th Type
|
|
th Size
|
|
th.col-md-4 Physical/Allocated usage
|
|
tr(
|
|
ng-repeat="SR in srs | map | orderBy:natural('name_label') track by SR.id"
|
|
xo-sref="SRs_view({id: SR.id})"
|
|
)
|
|
td.oneliner {{SR.name_label}}
|
|
td.oneliner {{SR.name_description}}
|
|
td {{SR.SR_type}}
|
|
td {{SR.size | bytesToSize}}
|
|
td
|
|
.progress-condensed
|
|
.progress-bar(role="progressbar", aria-valuemin="0", aria-valuenow="{{SR.usage}}", aria-valuemax="{{SR.size}}", style="width: {{[SR.physical_usage, SR.size] | percentage}}", tooltip="Physical usage: {{[SR.physical_usage, SR.size] | percentage}}")
|
|
.progress-bar.progress-bar-info(role="progressbar", aria-valuemin="0", aria-valuenow="{{SR.physical_usage}}", aria-valuemax="{{SR.size}}", style="width: {{[(SR.usage-SR.physical_usage), SR.size] | percentage}}", tooltip="Allocated: {{[(SR.usage), SR.size] | percentage}}")
|
|
|
|
//- Logs panel
|
|
.grid
|
|
.panel.panel-default
|
|
.panel-heading.panel-title
|
|
i.fa.fa-comments(style="color: #e25440;")
|
|
| Logs
|
|
span.quick-edit(ng-if="pool.messages | isNotEmpty", tooltip="Remove all logs", xo-click="deleteAllLog()")
|
|
i.fa.fa-trash-o.fa-fw
|
|
.panel-body
|
|
p.center(ng-if="pool.messages | isEmpty") No recent logs
|
|
table.table.table-hover(ng-if="pool.messages | isNotEmpty")
|
|
th Date
|
|
th Name
|
|
tr(ng-repeat="message in pool.messages | map | orderBy:'-time' | slice:(5*(currentLogPage-1)):(5*currentLogPage) track by message.id")
|
|
td {{message.time*1e3 | date:"medium"}}
|
|
td
|
|
| {{message.name}}
|
|
span.pull-right.btn-group.quick-buttons
|
|
a(xo-click="deleteLog(message.id)")
|
|
i.fa.fa-trash-o.fa-lg(tooltip="Remove this log entry")
|
|
.center(ng-if = '(pool.messages | count) > 5')
|
|
pagination(boundary-links="true", total-items="pool.messages | count", ng-model="$parent.currentLogPage", items-per-page="5", max-size="5", class="pagination-sm", previous-text="<", next-text=">", first-text="<<", last-text=">>")
|