mirror of
https://git.proxmox.com/git/proxmox-backup
synced 2025-10-04 07:40:18 +00:00
ui: add partition selector form
Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
This commit is contained in:
parent
e8eeee0b52
commit
62963e6452
@ -49,6 +49,7 @@ JSSRC= \
|
||||
form/NamespaceMaxDepth.js \
|
||||
form/CalendarEvent.js \
|
||||
form/PermissionPathSelector.js \
|
||||
form/PartitionSelector.js \
|
||||
form/GroupSelector.js \
|
||||
form/GroupFilter.js \
|
||||
form/VerifyOutdatedAfter.js \
|
||||
|
81
www/form/PartitionSelector.js
Normal file
81
www/form/PartitionSelector.js
Normal file
@ -0,0 +1,81 @@
|
||||
Ext.define('pbs-partition-list', {
|
||||
extend: 'Ext.data.Model',
|
||||
fields: ['name', 'uuid', 'filesystem', 'devpath', 'size', 'model'],
|
||||
proxy: {
|
||||
type: 'proxmox',
|
||||
url: "/api2/json/nodes/localhost/disks/list?skipsmart=1&include-partitions=1",
|
||||
reader: {
|
||||
transform: (rawData) => rawData.data
|
||||
.flatMap(disk => (disk.partitions
|
||||
.map(part => ({ ...part, model: disk.model })) ?? [])
|
||||
.filter(partition => partition.used === 'filesystem')),
|
||||
},
|
||||
},
|
||||
idProperty: 'devpath',
|
||||
|
||||
});
|
||||
|
||||
Ext.define('PBS.form.PartitionSelector', {
|
||||
extend: 'Proxmox.form.ComboGrid',
|
||||
alias: 'widget.pbsPartitionSelector',
|
||||
|
||||
allowBlank: false,
|
||||
autoSelect: false,
|
||||
submitEmpty: false,
|
||||
valueField: 'uuid',
|
||||
displayField: 'devpath',
|
||||
|
||||
store: {
|
||||
model: 'pbs-partition-list',
|
||||
autoLoad: true,
|
||||
sorters: 'devpath',
|
||||
},
|
||||
getSubmitData: function() {
|
||||
let me = this;
|
||||
let data = null;
|
||||
if (!me.disabled && me.submitValue && !me.isFileUpload()) {
|
||||
let val = me.getSubmitValue();
|
||||
if (val !== undefined && val !== null && val !== '') {
|
||||
data = {};
|
||||
data[me.getName()] = val;
|
||||
} else if (me.getDeleteEmpty()) {
|
||||
data = {};
|
||||
data.delete = me.getName();
|
||||
}
|
||||
}
|
||||
return data;
|
||||
},
|
||||
listConfig: {
|
||||
columns: [
|
||||
{
|
||||
header: gettext('Path'),
|
||||
sortable: true,
|
||||
dataIndex: 'devpath',
|
||||
renderer: (v, metaData, rec) => Ext.String.htmlEncode(v),
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
header: gettext('Filesystem'),
|
||||
sortable: true,
|
||||
dataIndex: 'filesystem',
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
header: gettext('Size'),
|
||||
sortable: true,
|
||||
dataIndex: 'size',
|
||||
renderer: Proxmox.Utils.format_size,
|
||||
flex: 1,
|
||||
},
|
||||
{
|
||||
header: gettext('Model'),
|
||||
sortable: true,
|
||||
dataIndex: 'model',
|
||||
flex: 1,
|
||||
},
|
||||
],
|
||||
viewConfig: {
|
||||
emptyText: 'No usable partitions present',
|
||||
},
|
||||
},
|
||||
});
|
Loading…
Reference in New Issue
Block a user