view.on('destroy', view.store.stopUpdate);
},
- onLoad: function(store, records, success) {
- var vm = this.getViewModel();
- if (!success || !records || !records[0].data) {
+ onLoad: function(store, records, success, operation) {
+ let vm = this.getViewModel();
+
+ let data = records?.[0]?.data;
+ if (!success || !data || !data.nodelist?.length) {
+ let error = operation.getError();
+ if (error) {
+ let msg = Proxmox.Utils.getResponseErrorMessage(error);
+ if (error.status !== 424 && !msg.match(/node is not in a cluster/i)) {
+ // an actual error, not just the "not in a cluster one", so show it!
+ Proxmox.Utils.setErrorMask(this.getView(), msg);
+ }
+ }
vm.set('totem', {});
vm.set('isInCluster', false);
vm.set('nodelist', []);
});
return;
}
- var data = records[0].data;
vm.set('totem', data.totem);
vm.set('isInCluster', !!data.totem.cluster_name);
vm.set('nodelist', data.nodelist);
- var nodeinfo = Ext.Array.findBy(data.nodelist, function(el) {
- return el.name === data.preferred_node;
- });
+ let nodeinfo = data.nodelist.find(el => el.name === data.preferred_node);
let links = {};
let ring_addr = [];
},
onCreate: function() {
- var view = this.getView();
+ let view = this.getView();
view.store.stopUpdate();
- var win = Ext.create('PVE.ClusterCreateWindow', {
+ Ext.create('PVE.ClusterCreateWindow', {
autoShow: true,
listeners: {
destroy: function() {
},
onClusterInfo: function() {
- var vm = this.getViewModel();
- var win = Ext.create('PVE.ClusterInfoWindow', {
+ let vm = this.getViewModel();
+ Ext.create('PVE.ClusterInfoWindow', {
+ autoShow: true,
joinInfo: {
ipAddress: vm.get('preferred_node.addr'),
fingerprint: vm.get('preferred_node.fp'),
totem: vm.get('totem'),
},
});
- win.show();
},
onJoin: function() {
- var view = this.getView();
+ let view = this.getView();
view.store.stopUpdate();
- var win = Ext.create('PVE.ClusterJoinNodeWindow', {
+ Ext.create('PVE.ClusterJoinNodeWindow', {
autoShow: true,
listeners: {
destroy: function() {
rstore: view.rstore,
sorters: {
property: 'nodeid',
- order: 'DESC',
+ direction: 'ASC',
},
}));
Proxmox.Utils.monStoreErrors(view, view.rstore);
},
onLoad: function(store, records, success) {
- var view = this.getView();
- var vm = this.getViewModel();
+ let view = this.getView();
+ let vm = this.getViewModel();
if (!success || !records || !records.length) {
vm.set('nodecount', 0);
vm.set('nodecount', records.length);
// show/hide columns according to used links
- var linkIndex = view.columns.length;
- var columns = Ext.each(view.columns, (col, i) => {
+ let linkIndex = view.columns.length;
+ Ext.each(view.columns, (col, i) => {
if (col.linkNumber !== undefined) {
col.setHidden(true);
-
- // save offset at which link columns start, so we
- // can address them directly below
+ // save offset at which link columns start, so we can address them directly below
if (i < linkIndex) {
linkIndex = i;
}
if (linknum > 7) {
return;
}
- view.columns[linkIndex+linknum].setHidden(false);
+ view.columns[linkIndex + linknum].setHidden(false);
},
);
},