-/*global Proxmox*/
Ext.define('PBS.ServerAdministration', {
extend: 'Ext.tab.Panel',
alias: 'widget.pbsServerAdministration',
init: function(view) {
var upgradeBtn = view.lookupReference('upgradeBtn');
upgradeBtn.setDisabled(!(Proxmox.UserName && Proxmox.UserName === 'root@pam'));
- }
+ },
},
items: [
{
xtype: 'pbsServerStatus',
- itemId: 'status'
+ itemId: 'status',
},
{
xtype: 'proxmoxNodeServiceView',
'proxmox-backup': true,
'proxmox-backup-proxy': true,
},
- nodename: 'localhost'
+ nodename: 'localhost',
},
{
xtype: 'proxmoxNodeAPT',
text: gettext('Upgrade'),
handler: function() {
Proxmox.Utils.openXtermJsViewer('upgrade', 0, 'localhost');
- }
+ },
},
itemId: 'updates',
- nodename: 'localhost'
+ nodename: 'localhost',
},
{
xtype: 'proxmoxJournalView',
itemId: 'tasks',
title: gettext('Tasks'),
height: 'auto',
- nodename: 'localhost'
- }
- ]
+ nodename: 'localhost',
+ },
+ ],
});
-/*global Blob,Proxmox*/
Ext.define('PBS.SubscriptionKeyEdit', {
extend: 'Proxmox.window.Edit',
xtype: 'textfield',
name: 'key',
value: '',
- fieldLabel: gettext('Subscription Key')
- }
+ fieldLabel: gettext('Subscription Key'),
+ },
});
Ext.define('PBS.Subscription', {
onlineHelp: 'getting_help',
viewConfig: {
- enableTextSelection: true
+ enableTextSelection: true,
},
- initComponent : function() {
+ initComponent: function() {
var me = this;
var reload = function() {
var baseurl = '/nodes/localhost/subscription';
var render_status = function(value) {
-
var message = me.getObjectValue('message');
if (message) {
var rows = {
productname: {
- header: gettext('Type')
+ header: gettext('Type'),
},
key: {
- header: gettext('Subscription Key')
+ header: gettext('Subscription Key'),
},
status: {
header: gettext('Status'),
- renderer: render_status
+ renderer: render_status,
},
message: {
- visible: false
+ visible: false,
},
serverid: {
- header: gettext('Server ID')
+ header: gettext('Server ID'),
},
sockets: {
- header: gettext('Sockets')
+ header: gettext('Sockets'),
},
checktime: {
header: gettext('Last checked'),
- renderer: Proxmox.Utils.render_timestamp
+ renderer: Proxmox.Utils.render_timestamp,
},
nextduedate: {
- header: gettext('Next due date')
- }
+ header: gettext('Next due date'),
+ },
};
Ext.apply(me, {
text: gettext('Upload Subscription Key'),
handler: function() {
var win = Ext.create('PBS.SubscriptionKeyEdit', {
- url: '/api2/extjs/' + baseurl
+ url: '/api2/extjs/' + baseurl,
});
win.show();
win.on('destroy', reload);
- }
+ },
},
{
text: gettext('Check'),
failure: function(response, opts) {
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
},
- callback: reload
+ callback: reload,
});
- }
- }
+ },
+ },
],
- rows: rows
+ rows: rows,
});
me.callParent();
reload();
- }
+ },
});
-/*global Proxmox*/
-
Ext.define('PBS.SystemConfiguration', {
extend: 'Ext.tab.Panel',
xtype: 'pbsSystemConfiguration',
layout: {
type: 'vbox',
align: 'stretch',
- multi: true
+ multi: true,
},
defaults: {
collapsible: true,
animCollapse: false,
- margin: '10 10 0 10'
+ margin: '10 10 0 10',
},
items: [
{
title: gettext('Time'),
xtype: 'proxmoxNodeTimeView',
- nodename: 'localhost'
+ nodename: 'localhost',
},
{
title: gettext('DNS'),
xtype: 'proxmoxNodeDNSView',
- nodename: 'localhost'
+ nodename: 'localhost',
},
{
flex: 1,
xtype: 'proxmoxNodeNetworkView',
showApplyBtn: true,
types: ['bond', 'bridge', 'vlan'],
- nodename: 'localhost'
+ nodename: 'localhost',
},
- ]
-// },
-// {
-// itemId: 'options',
-// title: gettext('Options'),
-// html: "TESWT"
-// xtype: 'pbsSystemOptions'
- }
+ ],
+ },
],
initComponent: function() {
- var me = this;
+ let me = this;
me.callParent();
- var networktime = me.getComponent('network');
+ let networktime = me.getComponent('network');
Ext.Array.forEach(networktime.query(), function(item) {
- item.relayEvents(networktime, [ 'activate', 'deactivate', 'destroy']);
+ item.relayEvents(networktime, ['activate', 'deactivate', 'destroy']);
});
- }
+ },
});
-/*global Proxmox */
Ext.ns('PBS');
console.log("Starting Backup Server GUI");
singleton: true,
updateLoginData: function(data) {
-
Proxmox.Utils.setAuthData(data);
},
render_datastore_worker_id: function(id, what) {
const res = id.match(/^(\S+?)_(\S+?)_(\S+?)(_(.+))?$/);
if (res) {
- let datastore = res[1], type = res[2], id = res[3];
+ let datastore = res[1], backupGroup = `${res[2]}/${res[3]}`;
if (res[4] !== undefined) {
let datetime = Ext.Date.parse(parseInt(res[5], 16), 'U');
let utctime = PBS.Utils.render_datetime_utc(datetime);
- return `Datastore ${datastore} ${what} ${type}/${id}/${utctime}`;
+ return `Datastore ${datastore} ${what} ${backupGroup}/${utctime}`;
} else {
- return `Datastore ${datastore} ${what} ${type}/${id}`;
+ return `Datastore ${datastore} ${what} ${backupGroup}`;
}
}
return `Datastore ${what} ${id}`;
// do whatever you want here
Proxmox.Utils.override_task_descriptions({
- garbage_collection: ['Datastore', gettext('Garbage collect') ],
- sync: ['Datastore', gettext('Remote Sync') ],
- syncjob: [gettext('Sync Job'), gettext('Remote Sync') ],
- prune: (type, id) => {
- return PBS.Utils.render_datastore_worker_id(id, gettext('Prune'));
- },
- verify: (type, id) => {
- return PBS.Utils.render_datastore_worker_id(id, gettext('Verify'));
- },
- backup: (type, id) => {
- return PBS.Utils.render_datastore_worker_id(id, gettext('Backup'));
- },
- reader: (type, id) => {
- return PBS.Utils.render_datastore_worker_id(id, gettext('Read objects'));
- },
+ garbage_collection: ['Datastore', gettext('Garbage collect')],
+ sync: ['Datastore', gettext('Remote Sync')],
+ syncjob: [gettext('Sync Job'), gettext('Remote Sync')],
+ prune: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Prune')),
+ verify: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Verify')),
+ backup: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Backup')),
+ reader: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Read objects')),
});
- }
+ },
});
if (!upid) return;
Ext.create('Proxmox.window.TaskViewer', {
- upid
+ upid,
}).show();
},
text = Proxmox.Utils.unknownText;
break;
case 'error':
- icon = 'times critical';
+ icon = 'times critical';
text = Proxmox.Utils.errorText + ': ' + value;
break;
case 'warning':
icon = 'exclamation warning';
break;
- case 'ok':
+ case 'ok':
icon = 'check good';
text = gettext("OK");
}
}
return last;
});
- }
+ },
},
{
name: 'usage',
} else {
return -1;
}
- }
+ },
},
],
proxy: {
type: 'proxmox',
- url: "/api2/json/status/datastore-usage"
+ url: "/api2/json/status/datastore-usage",
},
idProperty: 'store',
});
let timespan = (estimate - now)/1000;
- if (+estimate <= +now || isNaN(timespan)) {
+ if (Number(estimate) <= Number(now) || isNaN(timespan)) {
return gettext('Never');
}
lineWidth: 0,
chartRangeMin: 0,
chartRangeMax: 1,
- tipTpl: '{y:number("0.00")*100}%'
- }
+ tipTpl: '{y:number("0.00")*100}%',
+ },
},
],
},
},
-})
+});
openTask: function(record) {
let me = this;
- let view = me.getView();
Ext.create('Proxmox.window.TaskViewer', {
upid: record.data.upid,
endtime: record.data.endtime,
model: 'proxmox-tasks',
proxy: {
type: 'memory',
- }
+ },
},
},
dataIndex: 'duration',
renderer: function(value, md, record) {
return Proxmox.Utils.format_duration_human((Date.now() - record.data.starttime)/1000);
- }
+ },
},
{
xtype: 'actioncolumn',
disableSelection: true,
store: {
- data: []
+ data: [],
},
columns: [
renderer: 'render_count',
},
],
- }
+ },
],
});
Ext.define('pbs-file-tree', {
extend: 'Ext.data.Model',
- fields: [ 'filepath', 'text', 'type', 'size',
+ fields: ['filepath', 'text', 'type', 'size',
{
name: 'mtime',
type: 'date',
return `fa fa-${icon}`;
},
- }
+ },
],
idProperty: 'filepath',
});
'backup-type': view['backup-type'],
'backup-time': view['backup-time'],
};
- params['filepath'] = data.filepath;
+ params.filepath = data.filepath;
atag.download = data.text;
- atag.href = me.buildUrl(`/api2/json/admin/datastore/${view.datastore}/pxar-file-download`, params);
+ atag.href = me
+ .buildUrl(`/api2/json/admin/datastore/${view.datastore}/pxar-file-download`, params);
atag.click();
},
fileChanged: function() {
let me = this;
- let view = me.getView();
let tree = me.lookup('tree');
let selection = tree.getSelection();
if (!selection || selection.length < 1) return;
return asize - bsize;
},
- }
+ },
},
{
text: gettext('Modified'),
case 's': return gettext('Socket');
default: return Proxmox.Utils.unknownText;
}
- }
+ },
},
- ]
- }
+ ],
+ },
],
buttons: [
handler: 'downloadFile',
reference: 'downloadBtn',
disabled: true,
- }
+ },
],
});