[pve-devel] [PATCH manager v2 21/22] use Proxmox.Utils instead of PVE.Utils

Dominik Csapak d.csapak at proxmox.com
Mon Jan 15 15:18:09 CET 2018


some function are now in Proxmox.Utils instead, so we have to use that

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 www/manager6/Toolkit.js                  |  20 +-
 www/manager6/Utils.js                    | 598 ++-----------------------------
 www/manager6/Workspace.js                |  12 +-
 www/manager6/ceph/Config.js              |   2 +-
 www/manager6/ceph/Crush.js               |   2 +-
 www/manager6/ceph/Monitor.js             |   8 +-
 www/manager6/ceph/OSD.js                 |  12 +-
 www/manager6/ceph/Pool.js                |   2 +-
 www/manager6/ceph/Status.js              |   2 +-
 www/manager6/data/ResourceStore.js       |  12 +-
 www/manager6/dc/ACLView.js               |   4 +-
 www/manager6/dc/AuthEdit.js              |   8 +-
 www/manager6/dc/Backup.js                |   8 +-
 www/manager6/dc/GroupView.js             |   2 +-
 www/manager6/dc/Health.js                |   2 +-
 www/manager6/dc/NodeView.js              |   2 +-
 www/manager6/dc/OptionView.js            |   8 +-
 www/manager6/dc/PoolView.js              |   2 +-
 www/manager6/dc/RoleView.js              |   2 +-
 www/manager6/dc/StorageView.js           |   4 +-
 www/manager6/dc/Support.js               |   2 +-
 www/manager6/dc/Tasks.js                 |   4 +-
 www/manager6/dc/UserView.js              |   4 +-
 www/manager6/form/BridgeSelector.js      |   2 +-
 www/manager6/form/CPUModelSelector.js    |   2 +-
 www/manager6/form/CacheTypeSelector.js   |   2 +-
 www/manager6/form/CompressionSelector.js |   2 +-
 www/manager6/form/FileSelector.js        |   2 +-
 www/manager6/form/GlobalSearchField.js   |   2 +-
 www/manager6/form/GuestIDSelector.js     |   4 +-
 www/manager6/form/LanguageSelector.js    |   2 +-
 www/manager6/form/StorageSelector.js     |   4 +-
 www/manager6/grid/BackupView.js          |   2 +-
 www/manager6/grid/FirewallOptions.js     |   4 +-
 www/manager6/grid/FirewallRules.js       |   4 +-
 www/manager6/grid/ObjectGrid.js          |   2 +-
 www/manager6/grid/PoolMembers.js         |   6 +-
 www/manager6/grid/Replication.js         |   8 +-
 www/manager6/ha/Groups.js                |   4 +-
 www/manager6/ha/ResourceEdit.js          |   2 +-
 www/manager6/ha/Resources.js             |   2 +-
 www/manager6/ha/StatusView.js            |   2 +-
 www/manager6/lxc/CmdMenu.js              |  12 +-
 www/manager6/lxc/Config.js               |   6 +-
 www/manager6/lxc/CreateWizard.js         |   2 +-
 www/manager6/lxc/MPResize.js             |   2 +-
 www/manager6/lxc/Network.js              |  12 +-
 www/manager6/lxc/Options.js              |  14 +-
 www/manager6/lxc/Resources.js            |   8 +-
 www/manager6/lxc/Snapshot.js             |   8 +-
 www/manager6/lxc/SnapshotTree.js         |  16 +-
 www/manager6/node/Config.js              |   2 +-
 www/manager6/node/Disks.js               |  14 +-
 www/manager6/node/StatusView.js          |   2 +-
 www/manager6/node/Subscription.js        |   8 +-
 www/manager6/node/Summary.js             |   4 +-
 www/manager6/panel/GuestStatusView.js    |   2 +-
 www/manager6/panel/InputPanel.js         |   2 +-
 www/manager6/panel/LogView.js            |   6 +-
 www/manager6/panel/NotesView.js          |   2 +-
 www/manager6/panel/StatusView.js         |   2 +-
 www/manager6/qemu/BootOrderEdit.js       |   2 +-
 www/manager6/qemu/Clone.js               |   6 +-
 www/manager6/qemu/CmdMenu.js             |  14 +-
 www/manager6/qemu/Config.js              |  12 +-
 www/manager6/qemu/CreateWizard.js        |   2 +-
 www/manager6/qemu/HDMove.js              |   2 +-
 www/manager6/qemu/HDResize.js            |   2 +-
 www/manager6/qemu/HardwareView.js        |  10 +-
 www/manager6/qemu/MemoryEdit.js          |   2 +-
 www/manager6/qemu/Monitor.js             |   2 +-
 www/manager6/qemu/Options.js             |  18 +-
 www/manager6/qemu/QemuBiosEdit.js        |   2 +-
 www/manager6/qemu/Snapshot.js            |   8 +-
 www/manager6/qemu/SnapshotTree.js        |  16 +-
 www/manager6/qemu/TemplateMenu.js        |   2 +-
 www/manager6/storage/ContentView.js      |  12 +-
 www/manager6/storage/StatusView.js       |   4 +-
 www/manager6/window/Backup.js            |   4 +-
 www/manager6/window/BackupConfig.js      |   2 +-
 www/manager6/window/BulkAction.js        |   2 +-
 www/manager6/window/Edit.js              |  10 +-
 www/manager6/window/Migrate.js           |   2 +-
 www/manager6/window/Restore.js           |   6 +-
 www/manager6/window/SafeDestroy.js       |   8 +-
 www/manager6/window/Settings.js          |   4 +-
 www/manager6/window/TaskViewer.js        |  10 +-
 www/manager6/window/Wizard.js            |   6 +-
 www/mobile/Datacenter.js                 |   4 +-
 www/mobile/NodeSummary.js                |   6 +-
 www/mobile/TaskList.js                   |   2 +-
 www/mobile/TaskViewer.js                 |   4 +-
 www/mobile/Toolkit.js                    |   2 +-
 www/mobile/VMSummaryBase.js              |   6 +-
 www/mobile/Workspace.js                  |   4 +-
 95 files changed, 275 insertions(+), 827 deletions(-)

diff --git a/www/manager6/Toolkit.js b/www/manager6/Toolkit.js
index 56b06686..44c7a83d 100644
--- a/www/manager6/Toolkit.js
+++ b/www/manager6/Toolkit.js
@@ -1,6 +1,6 @@
 // ExtJS related things
 
-PVE.Utils.toolkit = 'extjs';
+Proxmox.Utils.toolkit = 'extjs';
 
  // do not send '_dc' parameter
 Ext.Ajax.disableCaching = false;
@@ -8,13 +8,13 @@ Ext.Ajax.disableCaching = false;
 // custom Vtypes
 Ext.apply(Ext.form.field.VTypes, {
     IPAddress:  function(v) {
-	return PVE.Utils.IP4_match.test(v);
+	return Proxmox.Utils.IP4_match.test(v);
     },
     IPAddressText:  gettext('Example') + ': 192.168.1.1',
     IPAddressMask: /[\d\.]/i,
 
     IPCIDRAddress:  function(v) {
-	var result = PVE.Utils.IP4_cidr_match.exec(v);
+	var result = Proxmox.Utils.IP4_cidr_match.exec(v);
 	// limits according to JSON Schema see
 	// pve-common/src/PVE/JSONSchema.pm
 	return (result !== null && result[1] >= 8 && result[1] <= 32);
@@ -23,13 +23,13 @@ Ext.apply(Ext.form.field.VTypes, {
     IPCIDRAddressMask: /[\d\.\/]/i,
 
     IP6Address:  function(v) {
-        return PVE.Utils.IP6_match.test(v);
+        return Proxmox.Utils.IP6_match.test(v);
     },
     IP6AddressText:  gettext('Example') + ': 2001:DB8::42',
     IP6AddressMask: /[A-Fa-f0-9:]/,
 
     IP6CIDRAddress:  function(v) {
-	var result = PVE.Utils.IP6_cidr_match.exec(v);
+	var result = Proxmox.Utils.IP6_cidr_match.exec(v);
 	// limits according to JSON Schema see
 	// pve-common/src/PVE/JSONSchema.pm
 	return (result !== null && result[1] >= 8 && result[1] <= 120);
@@ -44,7 +44,7 @@ Ext.apply(Ext.form.field.VTypes, {
     IP6PrefixLengthMask:  /[0-9]/,
 
     IP64Address:  function(v) {
-        return PVE.Utils.IP64_match.test(v);
+        return Proxmox.Utils.IP64_match.test(v);
     },
     IP64AddressText:  gettext('Example') + ': 192.168.1.1 2001:DB8::42',
     IP64AddressMask: /[A-Fa-f0-9\.:]/,
@@ -99,7 +99,7 @@ Ext.apply(Ext.form.field.VTypes, {
     HttpProxyText: gettext('Example') + ": http://username:password@host:port/",
 
     DnsName: function(v) {
-	return PVE.Utils.DnsName_match.test(v);
+	return Proxmox.Utils.DnsName_match.test(v);
     },
     DnsNameText: gettext('This is not a valid DNS name'),
 
@@ -117,9 +117,9 @@ Ext.apply(Ext.form.field.VTypes, {
 		continue;
 	    }
 
-	    if (!PVE.Utils.HostPort_match.test(list[i]) &&
-		!PVE.Utils.HostPortBrackets_match.test(list[i]) &&
-		!PVE.Utils.IP6_dotnotation_match.test(list[i])) {
+	    if (!Proxmox.Utils.HostPort_match.test(list[i]) &&
+		!Proxmox.Utils.HostPortBrackets_match.test(list[i]) &&
+		!Proxmox.Utils.IP6_dotnotation_match.test(list[i])) {
 		return false;
 	    }
 	}
diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index 578ba81e..9c63b93d 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -185,24 +185,9 @@ Ext.define('PVE.Utils', { utilities: {
 	return fa.join(', ');
     },
 
-    network_iface_types: {
-	eth: gettext("Network Device"),
-	bridge: 'Linux Bridge',
-	bond: 'Linux Bond',
-	OVSBridge: 'OVS Bridge',
-	OVSBond: 'OVS Bond',
-	OVSPort: 'OVS Port',
-	OVSIntPort: 'OVS IntPort'
-    },
-
-    render_network_iface_type: function(value) {
-	return PVE.Utils.network_iface_types[value] ||
-	    PVE.Utils.unknownText;
-    },
-
     render_qemu_bios: function(value) {
 	if (!value) {
-	    return PVE.Utils.defaultText + ' (SeaBIOS)';
+	    return Proxmox.Utils.defaultText + ' (SeaBIOS)';
 	} else if (value === 'seabios') {
 	    return "SeaBIOS";
 	} else if (value === 'ovmf') {
@@ -214,7 +199,7 @@ Ext.define('PVE.Utils', { utilities: {
 
     render_scsihw: function(value) {
 	if (!value) {
-	    return PVE.Utils.defaultText + ' (LSI 53C895A)';
+	    return Proxmox.Utils.defaultText + ' (LSI 53C895A)';
 	} else if (value === 'lsi') {
 	    return 'LSI 53C895A';
 	} else if (value === 'lsi53c810') {
@@ -285,7 +270,7 @@ Ext.define('PVE.Utils', { utilities: {
 
     render_kvm_language: function (value) {
 	if (!value) {
-	    return PVE.Utils.defaultText;
+	    return Proxmox.Utils.defaultText;
 	}
 	var text = PVE.Utils.kvm_keymaps[value];
 	if (text) {
@@ -305,7 +290,7 @@ Ext.define('PVE.Utils', { utilities: {
 
     render_console_viewer: function(value) {
 	if (!value || value === '__default__') {
-	    return PVE.Utils.defaultText + ' (HTML5)';
+	    return Proxmox.Utils.defaultText + ' (HTML5)';
 	} else if (value === 'vv') {
 	    return  'SPICE (remote-viewer)';
 	} else if (value === 'html5') {
@@ -315,51 +300,9 @@ Ext.define('PVE.Utils', { utilities: {
 	}
     },
 
-    language_map: {
-	zh_CN: 'Chinese',
-	ca: 'Catalan',
-	da: 'Danish',
-	en: 'English',
-	eu: 'Euskera (Basque)',
-	fr: 'French',
-	de: 'German',
-	it: 'Italian',
-	ja: 'Japanese',
-	nb: 'Norwegian (Bokmal)',
-	nn: 'Norwegian (Nynorsk)',
-	fa: 'Persian (Farsi)',
-	pl: 'Polish',
-	pt_BR: 'Portuguese (Brazil)',
-	ru: 'Russian',
-	sl: 'Slovenian',
-	es: 'Spanish',
-	sv: 'Swedish',
-	tr: 'Turkish'
-    },
-
-    render_language: function (value) {
-	if (!value) {
-	    return PVE.Utils.defaultText + ' (English)';
-	}
-	var text = PVE.Utils.language_map[value];
-	if (text) {
-	    return text + ' (' + value + ')';
-	}
-	return value;
-    },
-
-    language_array: function() {
-	var data = [['__default__', PVE.Utils.render_language('')]];
-	Ext.Object.each(PVE.Utils.language_map, function(key, value) {
-	    data.push([key, PVE.Utils.render_language(value)]);
-	});
-
-	return data;
-    },
-
     render_kvm_vga_driver: function (value) {
 	if (!value) {
-	    return PVE.Utils.defaultText;
+	    return Proxmox.Utils.defaultText;
 	}
 	var text = PVE.Utils.kvm_vga_drivers[value];
 	if (text) {
@@ -396,46 +339,6 @@ Ext.define('PVE.Utils', { utilities: {
 	return res;
     },
 
-    authOK: function() {
-	return Ext.util.Cookies.get('PVEAuthCookie');
-    },
-
-    authClear: function() {
-	Ext.util.Cookies.clear("PVEAuthCookie");
-    },
-
-    // fixme: remove - not needed?
-    gridLineHeigh: function() {
-	return 21;
-
-	//if (Ext.isGecko)
-	//return 23;
-	//return 21;
-    },
-
-    extractRequestError: function(result, verbose) {
-	var msg = gettext('Successful');
-
-	if (!result.success) {
-	    msg = gettext("Unknown error");
-	    if (result.message) {
-		msg = result.message;
-		if (result.status) {
-		    msg += ' (' + result.status + ')';
-		}
-	    }
-	    if (verbose && Ext.isObject(result.errors)) {
-		msg += "<br>";
-		Ext.Object.each(result.errors, function(prop, desc) {
-		    msg += "<br><b>" + Ext.htmlEncode(prop) + "</b>: " +
-			Ext.htmlEncode(desc);
-		});
-	    }
-	}
-
-	return msg;
-    },
-
     extractFormActionError: function(action) {
 	var msg;
 	switch (action.failureType) {
@@ -451,299 +354,12 @@ Ext.define('PVE.Utils', { utilities: {
 	    break;
 	case Ext.form.action.Action.LOAD_FAILURE:
 	case Ext.form.action.Action.SERVER_INVALID:
-	    msg = PVE.Utils.extractRequestError(action.result, true);
+	    msg = Proxmox.Utils.extractRequestError(action.result, true);
 	    break;
 	}
 	return msg;
     },
 
-    // Ext.Ajax.request
-    API2Request: function(reqOpts) {
-
-	var newopts = Ext.apply({
-	    waitMsg: gettext('Please wait...')
-	}, reqOpts);
-
-	if (!newopts.url.match(/^\/api2/)) {
-	    newopts.url = '/api2/extjs' + newopts.url;
-	}
-	delete newopts.callback;
-
-	var createWrapper = function(successFn, callbackFn, failureFn) {
-	    Ext.apply(newopts, {
-		success: function(response, options) {
-		    if (options.waitMsgTarget) {
-			if (PVE.Utils.toolkit === 'touch') {
-			    options.waitMsgTarget.setMasked(false);
-			} else {
-			    options.waitMsgTarget.setLoading(false);
-			}
-		    }
-		    var result = Ext.decode(response.responseText);
-		    response.result = result;
-		    if (!result.success) {
-			response.htmlStatus = PVE.Utils.extractRequestError(result, true);
-			Ext.callback(callbackFn, options.scope, [options, false, response]);
-			Ext.callback(failureFn, options.scope, [response, options]);
-			return;
-		    }
-		    Ext.callback(callbackFn, options.scope, [options, true, response]);
-		    Ext.callback(successFn, options.scope, [response, options]);
-		},
-		failure: function(response, options) {
-		    if (options.waitMsgTarget) {
-			if (PVE.Utils.toolkit === 'touch') {
-			    options.waitMsgTarget.setMasked(false);
-			} else {
-			    options.waitMsgTarget.setLoading(false);
-			}
-		    }
-		    response.result = {};
-		    try {
-			response.result = Ext.decode(response.responseText);
-		    } catch(e) {}
-		    var msg = gettext('Connection error') + ' - server offline?';
-		    if (response.aborted) {
-			msg = gettext('Connection error') + ' - aborted.';
-		    } else if (response.timedout) {
-			msg = gettext('Connection error') + ' - Timeout.';
-		    } else if (response.status && response.statusText) {
-			msg = gettext('Connection error') + ' ' + response.status + ': ' + response.statusText;
-		    }
-		    response.htmlStatus = msg;
-		    Ext.callback(callbackFn, options.scope, [options, false, response]);
-		    Ext.callback(failureFn, options.scope, [response, options]);
-		}
-	    });
-	};
-
-	createWrapper(reqOpts.success, reqOpts.callback, reqOpts.failure);
-
-	var target = newopts.waitMsgTarget;
-	if (target) {
-	    if (PVE.Utils.toolkit === 'touch') {
-		target.setMasked({ xtype: 'loadmask', message: newopts.waitMsg} );
-	    } else {
-		// Note: ExtJS bug - this does not work when component is not rendered
-		target.setLoading(newopts.waitMsg);
-	    }
-	}
-	Ext.Ajax.request(newopts);
-    },
-
-    assemble_field_data: function(values, data) {
-        if (Ext.isObject(data)) {
-	    Ext.Object.each(data, function(name, val) {
-		if (values.hasOwnProperty(name)) {
-                    var bucket = values[name];
-                    if (!Ext.isArray(bucket)) {
-                        bucket = values[name] = [bucket];
-                    }
-                    if (Ext.isArray(val)) {
-                        values[name] = bucket.concat(val);
-                    } else {
-                        bucket.push(val);
-                    }
-                } else {
-		    values[name] = val;
-                }
-            });
-	}
-    },
-
-    checked_command: function(orig_cmd) {
-	PVE.Utils.API2Request({
-	    url: '/nodes/localhost/subscription',
-	    method: 'GET',
-	    //waitMsgTarget: me,
-	    failure: function(response, opts) {
-		Ext.Msg.alert(gettext('Error'), response.htmlStatus);
-	    },
-	    success: function(response, opts) {
-		var data = response.result.data;
-
-		if (data.status !== 'Active') {
-		    Ext.Msg.show({
-			title: gettext('No valid subscription'),
-			icon: Ext.Msg.WARNING,
-			msg: PVE.Utils.noSubKeyHtml,
-			buttons: Ext.Msg.OK,
-			callback: function(btn) {
-			    if (btn !== 'ok') {
-				return;
-			    }
-			    orig_cmd();
-			}
-		    });
-		} else {
-		    orig_cmd();
-		}
-	    }
-	});
-    },
-
-    task_desc_table: {
-	diskinit: [ 'Disk', gettext('Initialize Disk with GPT') ],
-	vncproxy: [ 'VM/CT', gettext('Console') ],
-	spiceproxy: [ 'VM/CT', gettext('Console') + ' (Spice)' ],
-	vncshell: [ '', gettext('Shell') ],
-	spiceshell: [ '', gettext('Shell')  + ' (Spice)' ],
-	qmsnapshot: [ 'VM', gettext('Snapshot') ],
-	qmrollback: [ 'VM', gettext('Rollback') ],
-	qmdelsnapshot: [ 'VM', gettext('Delete Snapshot') ],
-	qmcreate: [ 'VM', gettext('Create') ],
-	qmrestore: [ 'VM', gettext('Restore') ],
-	qmdestroy: [ 'VM', gettext('Destroy') ],
-	qmigrate: [ 'VM', gettext('Migrate') ],
-	qmclone: [ 'VM', gettext('Clone') ],
-	qmmove: [ 'VM', gettext('Move disk') ],
-	qmtemplate: [ 'VM', gettext('Convert to template') ],
-	qmstart: [ 'VM', gettext('Start') ],
-	qmstop: [ 'VM', gettext('Stop') ],
-	qmreset: [ 'VM', gettext('Reset') ],
-	qmshutdown: [ 'VM', gettext('Shutdown') ],
-	qmsuspend: [ 'VM', gettext('Suspend') ],
-	qmresume: [ 'VM', gettext('Resume') ],
-	qmconfig: [ 'VM', gettext('Configure') ],
-	vzsnapshot: [ 'CT', gettext('Snapshot') ],
-	vzrollback: [ 'CT', gettext('Rollback') ],
-	vzdelsnapshot: [ 'CT', gettext('Delete Snapshot') ],
-	vzcreate: ['CT', gettext('Create') ],
-	vzrestore: ['CT', gettext('Restore') ],
-	vzdestroy: ['CT', gettext('Destroy') ],
-	vzmigrate: [ 'CT', gettext('Migrate') ],
-	vzclone: [ 'CT', gettext('Clone') ],
-	vztemplate: [ 'CT', gettext('Convert to template') ],
-	vzstart: ['CT', gettext('Start') ],
-	vzstop: ['CT', gettext('Stop') ],
-	vzmount: ['CT', gettext('Mount') ],
-	vzumount: ['CT', gettext('Unmount') ],
-	vzshutdown: ['CT', gettext('Shutdown') ],
-	vzsuspend: [ 'CT', gettext('Suspend') ],
-	vzresume: [ 'CT', gettext('Resume') ],
-	hamigrate: [ 'HA', gettext('Migrate') ],
-	hastart: [ 'HA', gettext('Start') ],
-	hastop: [ 'HA', gettext('Stop') ],
-	srvstart: ['SRV', gettext('Start') ],
-	srvstop: ['SRV', gettext('Stop') ],
-	srvrestart: ['SRV', gettext('Restart') ],
-	srvreload: ['SRV', gettext('Reload') ],
-	cephcreatemon: ['Ceph Monitor', gettext('Create') ],
-	cephdestroymon: ['Ceph Monitor', gettext('Destroy') ],
-	cephcreateosd: ['Ceph OSD', gettext('Create') ],
-	cephdestroyosd: ['Ceph OSD', gettext('Destroy') ],
-	cephcreatepool: ['Ceph Pool', gettext('Create') ],
-	cephdestroypool: ['Ceph Pool', gettext('Destroy') ],
-	imgcopy: ['', gettext('Copy data') ],
-	imgdel: ['', gettext('Erase data') ],
-	download: ['', gettext('Download') ],
-	vzdump: ['', gettext('Backup') ],
-	aptupdate: ['', gettext('Update package database') ],
-	startall: [ '', gettext('Start all VMs and Containers') ],
-	stopall: [ '', gettext('Stop all VMs and Containers') ],
-	migrateall: [ '', gettext('Migrate all VMs and Containers') ]
-    },
-
-    format_task_description: function(type, id) {
-	var farray = PVE.Utils.task_desc_table[type];
-	if (!farray) {
-	    return type;
-	}
-	var prefix = farray[0];
-	var text = farray[1];
-	if (prefix) {
-	    return prefix + ' ' + id + ' - ' + text;
-	}
-	return text;
-    },
-
-    parse_task_upid: function(upid) {
-	var task = {};
-
-	var res = upid.match(/^UPID:(\S+):([0-9A-Fa-f]{8}):([0-9A-Fa-f]{8,9}):([0-9A-Fa-f]{8}):([^:\s]+):([^:\s]*):([^:\s]+):$/);
-	if (!res) {
-	    throw "unable to parse upid '" + upid + "'";
-	}
-	task.node = res[1];
-	task.pid = parseInt(res[2], 16);
-	task.pstart = parseInt(res[3], 16);
-	task.starttime = parseInt(res[4], 16);
-	task.type = res[5];
-	task.id = res[6];
-	task.user = res[7];
-
-	task.desc = PVE.Utils.format_task_description(task.type, task.id);
-
-	return task;
-    },
-
-    format_size: function(size) {
-	/*jslint confusion: true */
-
-	var units = ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi'];
-	var num = 0;
-
-	while (size >= 1024 && ((num++)+1) < units.length) {
-	    size = size / 1024;
-	}
-
-	return size.toFixed((num > 0)?2:0) + " " + units[num] + "B";
-    },
-
-    format_html_bar: function(per, text) {
-
-	return "<div class='pve-bar-wrap'>" + text + "<div class='pve-bar-border'>" +
-	    "<div class='pve-bar-inner' style='width:" + per + "%;'></div>" +
-	    "</div></div>";
-
-    },
-
-    format_cpu_bar: function(per1, per2, text) {
-
-	return "<div class='pve-bar-border'>" +
-	    "<div class='pve-bar-inner' style='width:" + per1 + "%;'></div>" +
-	    "<div class='pve-bar-inner2' style='width:" + per2 + "%;'></div>" +
-	    "<div class='pve-bar-text'>" + text + "</div>" +
-	    "</div>";
-    },
-
-    format_large_bar: function(per, text) {
-
-	if (!text) {
-	    text = per.toFixed(1) + "%";
-	}
-
-	return "<div class='pve-largebar-border'>" +
-	    "<div class='pve-largebar-inner' style='width:" + per + "%;'></div>" +
-	    "<div class='pve-largebar-text'>" + text + "</div>" +
-	    "</div>";
-    },
-
-    format_duration_long: function(ut) {
-
-	var days = Math.floor(ut / 86400);
-	ut -= days*86400;
-	var hours = Math.floor(ut / 3600);
-	ut -= hours*3600;
-	var mins = Math.floor(ut / 60);
-	ut -= mins*60;
-
-	var hours_str = '00' + hours.toString();
-	hours_str = hours_str.substr(hours_str.length - 2);
-	var mins_str = "00" + mins.toString();
-	mins_str = mins_str.substr(mins_str.length - 2);
-	var ut_str = "00" + ut.toString();
-	ut_str = ut_str.substr(ut_str.length - 2);
-
-	if (days) {
-	    var ds = days > 1 ? PVE.Utils.daysText : PVE.Utils.dayText;
-	    return days.toString() + ' ' + ds + ' ' +
-		hours_str + ':' + mins_str + ':' + ut_str;
-	} else {
-	    return hours_str + ':' + mins_str + ':' + ut_str;
-	}
-    },
-
     format_duration_short: function(ut) {
 
 	if (ut < 60) {
@@ -764,43 +380,18 @@ Ext.define('PVE.Utils', { utilities: {
 	return days.toFixed(1) + 'd';
     },
 
-    yesText: gettext('Yes'),
-    noText: gettext('No'),
-    enabledText: gettext('Enabled'),
-    disabledText: gettext('Disabled'),
-    noneText: gettext('none'),
-    errorText: gettext('Error'),
-    unknownText: gettext('Unknown'),
-    defaultText: gettext('Default'),
-    daysText: gettext('days'),
-    dayText: gettext('day'),
-    runningText: gettext('running'),
-    stoppedText: gettext('stopped'),
-    neverText: gettext('never'),
-    totalText: gettext('Total'),
-    usedText: gettext('Used'),
-    directoryText: gettext('Directory'),
     imagesText: gettext('Disk image'),
     backupFileText: gettext('VZDump backup file'),
     vztmplText: gettext('Container template'),
     isoImageText: gettext('ISO image'),
     containersText: gettext('Container'),
-    stateText: gettext('State'),
-    groupText: gettext('Group'),
-
-    format_expire: function(date) {
-	if (!date) {
-	    return PVE.Utils.neverText;
-	}
-	return Ext.Date.format(date, "Y-m-d");
-    },
 
     format_storage_type: function(value, md, record) {
 	if (value === 'rbd' && record) {
 	    value = (record.get('monhost')?'rbd_ext':'pveceph');
 	}
 	if (value === 'dir') {
-	    return PVE.Utils.directoryText;
+	    return Proxmox.Utils.directoryText;
 	} else if (value === 'nfs') {
 	    return 'NFS';
 	} else if (value === 'glusterfs') {
@@ -828,37 +419,18 @@ Ext.define('PVE.Utils', { utilities: {
 	} else if (value === 'drbd') {
 	    return 'DRBD';
 	} else {
-	    return PVE.Utils.unknownText;
+	    return Proxmox.Utils.unknownText;
 	}
     },
 
-    format_boolean_with_default: function(value) {
-	if (Ext.isDefined(value) && value !== '__default__') {
-	    return value ? PVE.Utils.yesText : PVE.Utils.noText;
-	}
-	return PVE.Utils.defaultText;
-    },
-
-    format_boolean: function(value) {
-	return value ? PVE.Utils.yesText : PVE.Utils.noText;
-    },
-
-    format_neg_boolean: function(value) {
-	return !value ? PVE.Utils.yesText : PVE.Utils.noText;
-    },
-
-    format_enabled_toggle: function(value) {
-	return value ? PVE.Utils.enabledText :PVE.Utils.disabledText;
-    },
-
     format_ha: function(value) {
-	var text = PVE.Utils.noneText;
+	var text = Proxmox.Utils.noneText;
 
 	if (value.managed) {
-	    text = value.state || PVE.Utils.noneText;
+	    text = value.state || Proxmox.Utils.noneText;
 
-	    text += ', ' +  PVE.Utils.groupText + ': ';
-	    text += value.group || PVE.Utils.noneText;
+	    text += ', ' +  Proxmox.Utils.groupText + ': ';
+	    text += value.group || Proxmox.Utils.noneText;
 	}
 
 	return text;
@@ -924,7 +496,7 @@ Ext.define('PVE.Utils', { utilities: {
 	    return '';
 	}
 
-	return PVE.Utils.format_size(value);
+	return Proxmox.Utils.format_size(value);
     },
 
     render_bandwidth: function(value) {
@@ -932,12 +504,7 @@ Ext.define('PVE.Utils', { utilities: {
 	    return '';
 	}
 
-	return PVE.Utils.format_size(value) + '/s';
-    },
-
-    render_timestamp: function(value, metaData, record, rowIndex, colIndex, store) {
-	var servertime = new Date(value * 1000);
-	return Ext.Date.format(servertime, 'Y-m-d H:i:s');
+	return Proxmox.Utils.format_size(value) + '/s';
     },
 
     render_timestamp_human_readable: function(value) {
@@ -1065,21 +632,6 @@ Ext.define('PVE.Utils', { utilities: {
 	return fa + value;
     },
 
-    render_uptime: function(value, metaData, record, rowIndex, colIndex, store) {
-
-	var uptime = value;
-
-	if (uptime === undefined) {
-	    return '';
-	}
-
-	if (uptime <= 0) {
-	    return '-';
-	}
-
-	return PVE.Utils.format_duration_long(uptime);
-    },
-
     render_support_level: function(value, metaData, record) {
 	return PVE.Utils.support_level_hash[value] || '-';
     },
@@ -1088,7 +640,7 @@ Ext.define('PVE.Utils', { utilities: {
 	var type = record.data.type;
 	var id = record.data.id;
 
-	return PVE.Utils.format_task_description(type, id);
+	return Proxmox.Utils.format_task_description(type, id);
     },
 
     /* render functions for new status panel */
@@ -1121,20 +673,8 @@ Ext.define('PVE.Utils', { utilities: {
 	return PVE.Utils.render_size_usage(record.used, record.total);
     },
 
-    dialog_title: function(subject, create, isAdd) {
-	if (create) {
-	    if (isAdd) {
-		return gettext('Add') + ': ' + subject;
-	    } else {
-		return gettext('Create') + ': ' + subject;
-	    }
-	} else {
-	    return gettext('Edit') + ': ' + subject;
-	}
-    },
-
     windowHostname: function() {
-	return window.location.hostname.replace(PVE.Utils.IP6_bracket_match,
+	return window.location.hostname.replace(Proxmox.Utils.IP6_bracket_match,
             function(m, addr, offset, original) { return addr; });
     },
 
@@ -1157,7 +697,7 @@ Ext.define('PVE.Utils', { utilities: {
 	if (viewer === 'html5') {
 	    PVE.Utils.openVNCViewer(vmtype, vmid, nodename, vmname);
 	} else if (viewer === 'xtermjs') {
-	    PVE.Utils.openXtermJSviewer(vmtype, vmid, nodename, vmname);
+	    Proxmox.Utils.openXtermJsViewer(vmtype, vmid, nodename, vmname);
 	} else if (viewer === 'vv') {
 	    var url;
 	    var params = { proxy: PVE.Utils.windowHostname() };
@@ -1190,18 +730,6 @@ Ext.define('PVE.Utils', { utilities: {
 	return dv;
     },
 
-    openXtermJSviewer: function(vmtype, vmid, nodename, vmname) {
-	var url = Ext.urlEncode({
-	    console: vmtype, // kvm, lxc, upgrade or shell
-	    xtermjs: 1,
-	    vmid: vmid,
-	    vmname: vmname,
-	    node: nodename
-	});
-	var nw = window.open("?" + url, '_blank', 'toolbar=no,location=no,status=no,menubar=no,resizable=yes,width=800,height=420');
-	nw.focus();
-    },
-
     openVNCViewer: function(vmtype, vmid, nodename, vmname) {
 	var url = Ext.urlEncode({
 	    console: vmtype, // kvm, lxc, upgrade or shell
@@ -1240,7 +768,7 @@ Ext.define('PVE.Utils', { utilities: {
 	    }
 	};
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: url,
 	    params: params,
 	    method: 'POST',
@@ -1260,61 +788,13 @@ Ext.define('PVE.Utils', { utilities: {
 	});
     },
 
-    // comp.setLoading() is buggy in ExtJS 4.0.7, so we
-    // use el.mask() instead
-    setErrorMask: function(comp, msg) {
-	var el = comp.el;
-	if (!el) {
-	    return;
-	}
-	if (!msg) {
-	    el.unmask();
-	} else {
-	    if (msg === true) {
-		el.mask(gettext("Loading..."));
-	    } else {
-		el.mask(msg);
-	    }
-	}
-    },
-
-    monStoreErrors: function(me, store) {
-	me.mon(store, 'beforeload', function(s, operation, eOpts) {
-	    if (!me.loadCount) {
-		me.loadCount = 0; // make sure it is numeric
-		PVE.Utils.setErrorMask(me, true);
-	    }
-	});
-
-	// only works with 'pve' proxy
-	me.mon(store.proxy, 'afterload', function(proxy, request, success) {
-	    me.loadCount++;
-
-	    if (success) {
-		PVE.Utils.setErrorMask(me, false);
-		return;
-	    }
-
-	    var msg;
-	    /*jslint nomen: true */
-	    var operation = request._operation;
-	    var error = operation.getError();
-	    if (error.statusText) {
-		msg = error.statusText + ' (' + error.status + ')';
-	    } else {
-		msg = gettext('Connection error');
-	    }
-	    PVE.Utils.setErrorMask(me, msg);
-	});
-    },
-
     openTreeConsole: function(tree, record, item, index, e) {
 	e.stopEvent();
 	var nodename = record.data.node;
 	var vmid = record.data.vmid;
 	var vmname = record.data.name;
 	if (record.data.type === 'qemu' && !record.data.template) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		url: '/nodes/' + nodename + '/qemu/' + vmid + '/status/current',
 		failure: function(response, opts) {
 		    Ext.Msg.alert('Error', response.htmlStatus);
@@ -1383,7 +863,7 @@ Ext.define('PVE.Utils', { utilities: {
 	}
 
 	menu.showAt(event.getXY());
-    }},
+    },
 
     // helper for deleting field which are set to there default values
     delete_if_default: function(values, fieldname, default_val, create) {
@@ -1398,46 +878,14 @@ Ext.define('PVE.Utils', { utilities: {
 
 	    delete values[fieldname];
 	}
-    },
+    }
+},
 
     singleton: true,
     constructor: function() {
 	var me = this;
 	Ext.apply(me, me.utilities);
-
-	var IPV4_OCTET = "(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])";
-	var IPV4_REGEXP = "(?:(?:" + IPV4_OCTET + "\\.){3}" + IPV4_OCTET + ")";
-	var IPV6_H16 = "(?:[0-9a-fA-F]{1,4})";
-	var IPV6_LS32 = "(?:(?:" + IPV6_H16 + ":" + IPV6_H16 + ")|" + IPV4_REGEXP + ")";
-
-
-	me.IP4_match = new RegExp("^(?:" + IPV4_REGEXP + ")$");
-	me.IP4_cidr_match = new RegExp("^(?:" + IPV4_REGEXP + ")\/([0-9]{1,2})$");
-
-	var IPV6_REGEXP = "(?:" +
-	    "(?:(?:"                                                  + "(?:" + IPV6_H16 + ":){6})" + IPV6_LS32 + ")|" +
-	    "(?:(?:"                                         +   "::" + "(?:" + IPV6_H16 + ":){5})" + IPV6_LS32 + ")|" +
-	    "(?:(?:(?:"                           + IPV6_H16 + ")?::" + "(?:" + IPV6_H16 + ":){4})" + IPV6_LS32 + ")|" +
-	    "(?:(?:(?:(?:" + IPV6_H16 + ":){0,1}" + IPV6_H16 + ")?::" + "(?:" + IPV6_H16 + ":){3})" + IPV6_LS32 + ")|" +
-	    "(?:(?:(?:(?:" + IPV6_H16 + ":){0,2}" + IPV6_H16 + ")?::" + "(?:" + IPV6_H16 + ":){2})" + IPV6_LS32 + ")|" +
-	    "(?:(?:(?:(?:" + IPV6_H16 + ":){0,3}" + IPV6_H16 + ")?::" + "(?:" + IPV6_H16 + ":){1})" + IPV6_LS32 + ")|" +
-	    "(?:(?:(?:(?:" + IPV6_H16 + ":){0,4}" + IPV6_H16 + ")?::" +                         ")" + IPV6_LS32 + ")|" +
-	    "(?:(?:(?:(?:" + IPV6_H16 + ":){0,5}" + IPV6_H16 + ")?::" +                         ")" + IPV6_H16  + ")|" +
-	    "(?:(?:(?:(?:" + IPV6_H16 + ":){0,7}" + IPV6_H16 + ")?::" +                         ")"             + ")"  +
-	    ")";
-
-	me.IP6_match = new RegExp("^(?:" + IPV6_REGEXP + ")$");
-	me.IP6_cidr_match = new RegExp("^(?:" + IPV6_REGEXP + ")\/([0-9]{1,3})$");
-	me.IP6_bracket_match = new RegExp("^\\[(" + IPV6_REGEXP + ")\\]");
-
-	me.IP64_match = new RegExp("^(?:" + IPV6_REGEXP + "|" + IPV4_REGEXP + ")$");
-
-	var DnsName_REGEXP = "(?:(([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)\\.)*([A-Za-z0-9]([A-Za-z0-9\\-]*[A-Za-z0-9])?))";
-	me.DnsName_match = new RegExp("^" + DnsName_REGEXP + "$");
-
-	me.HostPort_match = new RegExp("^(" + IPV4_REGEXP + "|" + DnsName_REGEXP + ")(:\\d+)?$");
-	me.HostPortBrackets_match = new RegExp("^\\[(?:" + IPV6_REGEXP + "|" + IPV4_REGEXP + "|" + DnsName_REGEXP + ")\\](:\\d+)?$");
-	me.IP6_dotnotation_match = new RegExp("^" + IPV6_REGEXP + "(\\.\\d+)?$");
     }
+
 });
 
diff --git a/www/manager6/Workspace.js b/www/manager6/Workspace.js
index fa27fae9..334b9b71 100644
--- a/www/manager6/Workspace.js
+++ b/www/manager6/Workspace.js
@@ -36,7 +36,7 @@ Ext.define('PVE.Workspace', {
     showLogin: function() {
 	var me = this;
 
-	PVE.Utils.authClear();
+	Proxmox.Utils.authClear();
 	PVE.UserName = null;
 	me.loginData = null;
 
@@ -45,7 +45,7 @@ Ext.define('PVE.Workspace', {
 		handler: function(data) {
 		    me.login = null;
 		    me.updateLoginData(data);
-		    PVE.Utils.checked_command(function() {}); // display subscription status
+		    Proxmox.Utils.checked_command(function() {}); // display subscription status
 		}
 	    });
 	}
@@ -67,7 +67,7 @@ Ext.define('PVE.Workspace', {
 
 	me.callParent();
 
-        if (!PVE.Utils.authOK()) {
+        if (!Proxmox.Utils.authOK()) {
 	    me.showLogin();
 	} else { 
 	    if (me.loginData) {
@@ -77,7 +77,7 @@ Ext.define('PVE.Workspace', {
 
 	Ext.TaskManager.start({
 	    run: function() {
-		var ticket = PVE.Utils.authOK();
+		var ticket = Proxmox.Utils.authOK();
 		if (!ticket || !PVE.UserName) {
 		    return;
 		}
@@ -117,7 +117,7 @@ Ext.define('PVE.StdWorkspace', {
 	var cur = lay.getActiveItem();
 
 	if (comp) {
-	    PVE.Utils.setErrorMask(cont, false);
+	    Proxmox.Utils.setErrorMask(cont, false);
 	    comp.border = false;
 	    cont.add(comp);
 	    if (cur !== null && lay.getNext()) {
@@ -148,7 +148,7 @@ Ext.define('PVE.StdWorkspace', {
 	if (loginData) {
 	    PVE.data.ResourceStore.startUpdate();
 
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		url: '/version',
 		method: 'GET',
 		success: function(response) {
diff --git a/www/manager6/ceph/Config.js b/www/manager6/ceph/Config.js
index c4f77869..04124684 100644
--- a/www/manager6/ceph/Config.js
+++ b/www/manager6/ceph/Config.js
@@ -9,7 +9,7 @@ Ext.define('PVE.node.CephConfig', {
     load: function() {
 	var me = this;
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: me.url,
 	    waitMsgTarget: me,
 	    failure: function(response, opts) {
diff --git a/www/manager6/ceph/Crush.js b/www/manager6/ceph/Crush.js
index c546071d..ebd46c83 100644
--- a/www/manager6/ceph/Crush.js
+++ b/www/manager6/ceph/Crush.js
@@ -10,7 +10,7 @@ Ext.define('PVE.node.CephCrushMap', {
     load: function() {
 	var me = this;
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: me.url,
 	    waitMsgTarget: me,
 	    failure: function(response, opts) {
diff --git a/www/manager6/ceph/Monitor.js b/www/manager6/ceph/Monitor.js
index 026d3e59..f23995c8 100644
--- a/www/manager6/ceph/Monitor.js
+++ b/www/manager6/ceph/Monitor.js
@@ -82,7 +82,7 @@ Ext.define('PVE.node.CephMonList', {
 	    sorters: [{ property: 'name'}]
 	});
 
-	PVE.Utils.monStoreErrors(me, rstore);
+	Proxmox.Utils.monStoreErrors(me, rstore);
 
 	var service_cmd = function(cmd) {
 	    var rec = sm.getSelection()[0];
@@ -90,7 +90,7 @@ Ext.define('PVE.node.CephMonList', {
 		Ext.Msg.alert(gettext('Error'), "entry has no host");
 		return;
 	    }
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		url: "/nodes/" + rec.data.host + "/ceph/" + cmd,
 		method: 'POST',
 		params: { service: "mon." + rec.data.name },
@@ -145,7 +145,7 @@ Ext.define('PVE.node.CephMonList', {
 		    return;
 		}
 
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: "/nodes/" + rec.data.host + "/ceph/mon/" +
 			rec.data.name,
 		    method: 'DELETE',
@@ -186,7 +186,7 @@ Ext.define('PVE.node.CephMonList', {
 		    header: gettext('Quorum'),
 		    width: 70,
 		    sortable: false,
-		    renderer: PVE.Utils.format_boolean,
+		    renderer: Proxmox.Utils.format_boolean,
 		    dataIndex: 'quorum'
 		},
 		{
diff --git a/www/manager6/ceph/OSD.js b/www/manager6/ceph/OSD.js
index c029d3a2..af77da3d 100644
--- a/www/manager6/ceph/OSD.js
+++ b/www/manager6/ceph/OSD.js
@@ -19,7 +19,7 @@ Ext.define('PVE.form.CephDiskSelector', {
 		header: gettext('Size'),
 		width: 60,
 		sortable: false,
-		renderer: PVE.Utils.format_size,
+		renderer: Proxmox.Utils.format_size,
 		dataIndex: 'size'
 	    },
 	    {
@@ -351,12 +351,12 @@ Ext.define('PVE.node.CephOsdTree', {
 	var set_button_status; // defined later
 
 	var reload = function() {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
                 url: "/nodes/" + nodename + "/ceph/osd",
 		waitMsgTarget: me,
 		method: 'GET',
 		failure: function(response, opts) {
-		    PVE.Utils.setErrorMask(me, response.htmlStatus);
+		    Proxmox.Utils.setErrorMask(me, response.htmlStatus);
 		},
 		success: function(response, opts) {
 		    sm.deselectAll();
@@ -379,7 +379,7 @@ Ext.define('PVE.node.CephOsdTree', {
 	    if (!(rec && (rec.data.id >= 0) && rec.data.host)) {
 		return;
 	    }
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
                 url: "/nodes/" + rec.data.host + "/ceph/osd/" +
 		    rec.data.id + '/' + cmd,
 		waitMsgTarget: me,
@@ -396,7 +396,7 @@ Ext.define('PVE.node.CephOsdTree', {
 	    if (!(rec && rec.data.name && rec.data.host)) {
 		return;
 	    }
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
                 url: "/nodes/" + rec.data.host + "/ceph/" + cmd,
 		params: { service: rec.data.name },
 		waitMsgTarget: me,
@@ -471,7 +471,7 @@ Ext.define('PVE.node.CephOsdTree', {
 	var noout_btn = new Ext.Button({
 	    text: gettext('Set noout'),
 	    handler: function() {
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: "/nodes/" + nodename + "/ceph/flags/noout",
 		    waitMsgTarget: me,
 		    method: noout ? 'DELETE' : 'POST',
diff --git a/www/manager6/ceph/Pool.js b/www/manager6/ceph/Pool.js
index d1c59b32..956d0d35 100644
--- a/www/manager6/ceph/Pool.js
+++ b/www/manager6/ceph/Pool.js
@@ -164,7 +164,7 @@ Ext.define('PVE.node.CephPoolList', {
 
 	var store = Ext.create('PVE.data.DiffStore', { rstore: rstore });
 
-	PVE.Utils.monStoreErrors(me, rstore);
+	Proxmox.Utils.monStoreErrors(me, rstore);
 
 	var create_btn = new Ext.Button({
 	    text: gettext('Create'),
diff --git a/www/manager6/ceph/Status.js b/www/manager6/ceph/Status.js
index 88e64bde..d52e7311 100644
--- a/www/manager6/ceph/Status.js
+++ b/www/manager6/ceph/Status.js
@@ -289,7 +289,7 @@ Ext.define('PVE.node.CephStatus', {
 	me.version = me.sp.get('ceph-version');
 	me.change_version(me.version);
 
-	PVE.Utils.monStoreErrors(me,me.store);
+	Proxmox.Utils.monStoreErrors(me,me.store);
 	me.mon(me.store, 'load', me.updateAll, me);
 	me.on('destroy', me.store.stopUpdate);
 	me.store.startUpdate();
diff --git a/www/manager6/data/ResourceStore.js b/www/manager6/data/ResourceStore.js
index 03e546c5..789b8095 100644
--- a/www/manager6/data/ResourceStore.js
+++ b/www/manager6/data/ResourceStore.js
@@ -49,7 +49,7 @@ Ext.define('PVE.data.ResourceStore', {
 	    running: {
 		header: gettext('Online'),
 		type: 'boolean',
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		hidden: true,
 		convert: function(value, record) {
 		    var info = record.data;
@@ -166,7 +166,7 @@ Ext.define('PVE.data.ResourceStore', {
 		type: 'integer',
 		hidden: true,
 		sortable: true,
-		renderer: PVE.Utils.format_size,
+		renderer: Proxmox.Utils.format_size,
 		width: 100
 	    },
 	    diskwrite: {
@@ -174,7 +174,7 @@ Ext.define('PVE.data.ResourceStore', {
 		type: 'integer',
 		hidden: true,
 		sortable: true,
-		renderer: PVE.Utils.format_size,
+		renderer: Proxmox.Utils.format_size,
 		width: 100
 	    },
 	    netin: {
@@ -182,7 +182,7 @@ Ext.define('PVE.data.ResourceStore', {
 		type: 'integer',
 		hidden: true,
 		sortable: true,
-		renderer: PVE.Utils.format_size,
+		renderer: Proxmox.Utils.format_size,
 		width: 100
 	    },
 	    netout: {
@@ -190,7 +190,7 @@ Ext.define('PVE.data.ResourceStore', {
 		type: 'integer',
 		hidden: true,
 		sortable: true,
-		renderer: PVE.Utils.format_size,
+		renderer: Proxmox.Utils.format_size,
 		width: 100
 	    },
 	    template: {
@@ -203,7 +203,7 @@ Ext.define('PVE.data.ResourceStore', {
 	    uptime: {
 		header: gettext('Uptime'),
 		type: 'integer',
-		renderer: PVE.Utils.render_uptime,
+		renderer: Proxmox.Utils.render_uptime,
 		sortable: true,
 		width: 110
 	    },
diff --git a/www/manager6/dc/ACLView.js b/www/manager6/dc/ACLView.js
index b011e506..1152b41c 100644
--- a/www/manager6/dc/ACLView.js
+++ b/www/manager6/dc/ACLView.js
@@ -170,7 +170,7 @@ Ext.define('PVE.dc.ACLView', {
 		    throw 'unknown data type';
 		}
 
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/access/acl',
 		    params: params,
 		    method: 'PUT',
@@ -185,7 +185,7 @@ Ext.define('PVE.dc.ACLView', {
 	    }
 	});
 
-	PVE.Utils.monStoreErrors(me, store);
+	Proxmox.Utils.monStoreErrors(me, store);
 
 	Ext.apply(me, {
 	    store: store,
diff --git a/www/manager6/dc/AuthEdit.js b/www/manager6/dc/AuthEdit.js
index ebbb799c..1a3b07c3 100644
--- a/www/manager6/dc/AuthEdit.js
+++ b/www/manager6/dc/AuthEdit.js
@@ -131,7 +131,7 @@ Ext.define('PVE.dc.AuthEdit', {
 	    deleteEmpty: !me.isCreate,
 	    value: '',
             fieldLabel: gettext('TFA'),
-	    comboItems: [ ['__default__', PVE.Utils.noneText], ['oath', 'OATH'], ['yubico', 'Yubico']],
+	    comboItems: [ ['__default__', Proxmox.Utils.noneText], ['oath', 'OATH'], ['yubico', 'Yubico']],
 	    listeners: {
 		change: function(f, value) {
 		    if (!me.rendered) {
@@ -151,7 +151,7 @@ Ext.define('PVE.dc.AuthEdit', {
             name: 'oath_step',
 	    value: '',
 	    minValue: 10,
-	    emptyText: PVE.Utils.defaultText + ' (30)',
+	    emptyText: Proxmox.Utils.defaultText + ' (30)',
 	    submitEmptyText: false,
 	    hidden: true,
             fieldLabel: 'OATH time step'
@@ -163,7 +163,7 @@ Ext.define('PVE.dc.AuthEdit', {
 	    value: '',
 	    minValue: 6,
 	    maxValue: 8,
-	    emptyText: PVE.Utils.defaultText + ' (6)',
+	    emptyText: Proxmox.Utils.defaultText + ' (6)',
 	    submitEmptyText: false,
 	    hidden: true,
             fieldLabel: 'OATH password length'
@@ -201,7 +201,7 @@ Ext.define('PVE.dc.AuthEdit', {
 	    onGetValues: function(values) {
 		if (!values.port) {
 		    if (!me.isCreate) {
-			PVE.Utils.assemble_field_data(values, { 'delete': 'port' });
+			Proxmox.Utils.assemble_field_data(values, { 'delete': 'port' });
 		    }
 		    delete values.port;
 		}
diff --git a/www/manager6/dc/Backup.js b/www/manager6/dc/Backup.js
index c4f68407..90d9fd8b 100644
--- a/www/manager6/dc/Backup.js
+++ b/www/manager6/dc/Backup.js
@@ -93,9 +93,9 @@ Ext.define('PVE.dc.BackupEdit', {
 		    dataIndex: 'uptime',
 		    renderer: function(value) {
 			if (value) {
-			    return PVE.Utils.runningText;
+			    return Proxmox.Utils.runningText;
 			} else {
-			    return PVE.Utils.stoppedText;
+			    return Proxmox.Utils.stoppedText;
 			}
 		    }
 		},
@@ -200,7 +200,7 @@ Ext.define('PVE.dc.BackupEdit', {
 	    onGetValues: function(values) {
 		if (!values.node) {
 		    if (!me.isCreate) {
-			PVE.Utils.assemble_field_data(values, { 'delete': 'node' }); 
+			Proxmox.Utils.assemble_field_data(values, { 'delete': 'node' }); 
 		    }
 		    delete values.node;
 		}
@@ -370,7 +370,7 @@ Ext.define('PVE.dc.BackupView', {
 	    }
 	});
 
-	PVE.Utils.monStoreErrors(me, store);
+	Proxmox.Utils.monStoreErrors(me, store);
 
 	Ext.apply(me, {
 	    store: store,
diff --git a/www/manager6/dc/GroupView.js b/www/manager6/dc/GroupView.js
index 14d62f6c..dc863cc6 100644
--- a/www/manager6/dc/GroupView.js
+++ b/www/manager6/dc/GroupView.js
@@ -65,7 +65,7 @@ Ext.define('PVE.dc.GroupView', {
 	    edit_btn, remove_btn
         ];
 
-	PVE.Utils.monStoreErrors(me, store);
+	Proxmox.Utils.monStoreErrors(me, store);
 
 	Ext.apply(me, {
 	    store: store,
diff --git a/www/manager6/dc/Health.js b/www/manager6/dc/Health.js
index cca31e08..e6b405e5 100644
--- a/www/manager6/dc/Health.js
+++ b/www/manager6/dc/Health.js
@@ -49,7 +49,7 @@ Ext.define('PVE.dc.Health', {
 		cluster.text = gettext("Cluster") + ": ";
 		cluster.text += item.data.name + ", ";
 		cluster.text += gettext("Quorate") + ": ";
-		cluster.text += PVE.Utils.format_boolean(item.data.quorate);
+		cluster.text += Proxmox.Utils.format_boolean(item.data.quorate);
 		if (item.data.quorate != 1) {
 		    cluster.iconCls = PVE.Utils.get_health_icon('critical', true);
 		}
diff --git a/www/manager6/dc/NodeView.js b/www/manager6/dc/NodeView.js
index 1c880be5..81b17b9a 100644
--- a/www/manager6/dc/NodeView.js
+++ b/www/manager6/dc/NodeView.js
@@ -69,7 +69,7 @@ Ext.define('PVE.dc.NodeView', {
 	    sortable: true,
 	    dataIndex: 'uptime',
 	    align: 'right',
-	    renderer: PVE.Utils.render_uptime
+	    renderer: Proxmox.Utils.render_uptime
 	}
     ],
 
diff --git a/www/manager6/dc/OptionView.js b/www/manager6/dc/OptionView.js
index 4e62197f..5da98ecc 100644
--- a/www/manager6/dc/OptionView.js
+++ b/www/manager6/dc/OptionView.js
@@ -10,7 +10,7 @@ Ext.define('PVE.dc.HttpProxyEdit', {
 		xtype: 'proxmoxtextfield',
 		name: 'http_proxy',
 		vtype: 'HttpProxy',
-		emptyText: PVE.Utils.noneText,
+		emptyText: Proxmox.Utils.noneText,
 		deleteEmpty: true,
 		value: '',
 		fieldLabel: gettext('HTTP proxy')
@@ -112,7 +112,7 @@ Ext.define('PVE.dc.MacPrefixEdit', {
 		name: 'mac_prefix',
 		regex: /^[a-f0-9]{2}(?::[a-f0-9]{2}){0,2}:?$/i,
 		regexText: gettext('Example') + ': 02:8f',
-		emptyText: PVE.Utils.noneText,
+		emptyText: Proxmox.Utils.noneText,
 		deleteEmpty: true,
 		value: '',
 		fieldLabel: gettext('MAC address prefix')
@@ -151,7 +151,7 @@ Ext.define('PVE.dc.OptionView', {
 		required: true,
 		renderer: function(value) {
 		    if (!value) {
-			return PVE.Utils.noneText;
+			return Proxmox.Utils.noneText;
 		    }
 		    return value;
 		}
@@ -179,7 +179,7 @@ Ext.define('PVE.dc.OptionView', {
 		required: true,
 		renderer: function(value) {
 		    if (!value) {
-			return PVE.Utils.noneText;
+			return Proxmox.Utils.noneText;
 		    }
 		    return value;
 		}
diff --git a/www/manager6/dc/PoolView.js b/www/manager6/dc/PoolView.js
index 94b53938..205a3e6e 100644
--- a/www/manager6/dc/PoolView.js
+++ b/www/manager6/dc/PoolView.js
@@ -65,7 +65,7 @@ Ext.define('PVE.dc.PoolView', {
 	    edit_btn, remove_btn
         ];
 
-	PVE.Utils.monStoreErrors(me, store);
+	Proxmox.Utils.monStoreErrors(me, store);
 
 	Ext.apply(me, {
 	    store: store,
diff --git a/www/manager6/dc/RoleView.js b/www/manager6/dc/RoleView.js
index 63a599f4..611dfbb6 100644
--- a/www/manager6/dc/RoleView.js
+++ b/www/manager6/dc/RoleView.js
@@ -31,7 +31,7 @@ Ext.define('PVE.dc.RoleView', {
 	    return value.replace(/\,/g, ' ');
 	};
 
-	PVE.Utils.monStoreErrors(me, store);
+	Proxmox.Utils.monStoreErrors(me, store);
 
 	Ext.apply(me, {
 	    store: store,
diff --git a/www/manager6/dc/StorageView.js b/www/manager6/dc/StorageView.js
index d98fda6f..9e0e07e1 100644
--- a/www/manager6/dc/StorageView.js
+++ b/www/manager6/dc/StorageView.js
@@ -246,14 +246,14 @@ Ext.define('PVE.dc.StorageView', {
 		    width: 80,
 		    sortable: true,
 		    dataIndex: 'shared',
-		    renderer: PVE.Utils.format_boolean
+		    renderer: Proxmox.Utils.format_boolean
 		},
 		{
 		    header: gettext('Enabled'),
 		    width: 80,
 		    sortable: true,
 		    dataIndex: 'disable',
-		    renderer: PVE.Utils.format_neg_boolean
+		    renderer: Proxmox.Utils.format_neg_boolean
 		}
 	    ],
 	    listeners: {
diff --git a/www/manager6/dc/Support.js b/www/manager6/dc/Support.js
index 2c80e3e9..3c1fee48 100644
--- a/www/manager6/dc/Support.js
+++ b/www/manager6/dc/Support.js
@@ -51,7 +51,7 @@ Ext.define('PVE.dc.Support', {
         var me = this;
 
 	var reload = function() {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		url: '/nodes/localhost/subscription',
 		method: 'GET',
 		waitMsgTarget: me,
diff --git a/www/manager6/dc/Tasks.js b/www/manager6/dc/Tasks.js
index 0bb4f585..d290573d 100644
--- a/www/manager6/dc/Tasks.js
+++ b/www/manager6/dc/Tasks.js
@@ -107,7 +107,7 @@ Ext.define('PVE.dc.Tasks', {
 		    header: gettext("Description"), 
 		    dataIndex: 'upid', 
 		    flex: 1,		  
-		    renderer: PVE.Utils.render_upid
+		    renderer: Proxmox.Utils.render_upid
 		},
 		{ 
 		    header: gettext("Status"), 
@@ -124,7 +124,7 @@ Ext.define('PVE.dc.Tasks', {
 			    return 'OK';
 			}
 			// metaData.attr = 'style="color:red;"'; 
-			return PVE.Utils.errorText + ': ' + value;
+			return Proxmox.Utils.errorText + ': ' + value;
 		    }
 		}
 	    ],
diff --git a/www/manager6/dc/UserView.js b/www/manager6/dc/UserView.js
index d976d54c..f701d50d 100644
--- a/www/manager6/dc/UserView.js
+++ b/www/manager6/dc/UserView.js
@@ -186,14 +186,14 @@ Ext.define('PVE.dc.UserView', {
 		    header: gettext('Enabled'),
 		    width: 80,
 		    sortable: true,
-		    renderer: PVE.Utils.format_boolean,
+		    renderer: Proxmox.Utils.format_boolean,
 		    dataIndex: 'enable'
 		},
 		{
 		    header: gettext('Expire'),
 		    width: 80,
 		    sortable: true,
-		    renderer: PVE.Utils.format_expire, 
+		    renderer: Proxmox.Utils.format_expire, 
 		    dataIndex: 'expire'
 		},
 		{
diff --git a/www/manager6/form/BridgeSelector.js b/www/manager6/form/BridgeSelector.js
index 2c5ca281..01a51a23 100644
--- a/www/manager6/form/BridgeSelector.js
+++ b/www/manager6/form/BridgeSelector.js
@@ -28,7 +28,7 @@ Ext.define('PVE.form.BridgeSelector', {
 		header: gettext('Active'),
 		width: 60,
 		dataIndex: 'active',
-		renderer: PVE.Utils.format_boolean
+		renderer: Proxmox.Utils.format_boolean
 	    },
 	    {
 		header: gettext('Comment'),
diff --git a/www/manager6/form/CPUModelSelector.js b/www/manager6/form/CPUModelSelector.js
index f29afdc2..041d54ef 100644
--- a/www/manager6/form/CPUModelSelector.js
+++ b/www/manager6/form/CPUModelSelector.js
@@ -2,7 +2,7 @@ Ext.define('PVE.form.CPUModelSelector', {
     extend: 'PVE.form.KVComboBox',
     alias: ['widget.CPUModelSelector'],
     comboItems: [
-	['__default__', PVE.Utils.defaultText + ' (kvm64)'],
+	['__default__', Proxmox.Utils.defaultText + ' (kvm64)'],
 	['486', '486'],
 	['athlon', 'athlon'],
 	['core2duo', 'core2duo'],
diff --git a/www/manager6/form/CacheTypeSelector.js b/www/manager6/form/CacheTypeSelector.js
index 03a4bfa0..e650a616 100644
--- a/www/manager6/form/CacheTypeSelector.js
+++ b/www/manager6/form/CacheTypeSelector.js
@@ -2,7 +2,7 @@ Ext.define('PVE.form.CacheTypeSelector', {
     extend: 'PVE.form.KVComboBox',
     alias: ['widget.CacheTypeSelector'],
     comboItems: [
-	['__default__', PVE.Utils.defaultText + " (" + gettext('No cache') + ")"],
+	['__default__', Proxmox.Utils.defaultText + " (" + gettext('No cache') + ")"],
 	['directsync', 'Direct sync'],
 	['writethrough', 'Write through'],
 	['writeback', 'Write back'],
diff --git a/www/manager6/form/CompressionSelector.js b/www/manager6/form/CompressionSelector.js
index 03669e04..79f8696e 100644
--- a/www/manager6/form/CompressionSelector.js
+++ b/www/manager6/form/CompressionSelector.js
@@ -2,7 +2,7 @@ Ext.define('PVE.form.CompressionSelector', {
     extend: 'PVE.form.KVComboBox',
     alias: ['widget.pveCompressionSelector'],
     comboItems: [
-                ['0', PVE.Utils.noneText],
+                ['0', Proxmox.Utils.noneText],
                 ['lzo', 'LZO (' + gettext('fast') + ')'],
                 ['gzip', 'GZIP (' + gettext('good') + ')']
     ]
diff --git a/www/manager6/form/FileSelector.js b/www/manager6/form/FileSelector.js
index 5f1e3dde..1f054b13 100644
--- a/www/manager6/form/FileSelector.js
+++ b/www/manager6/form/FileSelector.js
@@ -69,7 +69,7 @@ Ext.define('PVE.form.FileSelector', {
 			header: gettext('Size'),
 			width: 100,
 			dataIndex: 'size',
-			renderer: PVE.Utils.format_size
+			renderer: Proxmox.Utils.format_size
 		    }
 		]
 	    }
diff --git a/www/manager6/form/GlobalSearchField.js b/www/manager6/form/GlobalSearchField.js
index b28ce997..a2264d71 100644
--- a/www/manager6/form/GlobalSearchField.js
+++ b/www/manager6/form/GlobalSearchField.js
@@ -22,7 +22,7 @@ Ext.define('PVE.form.GlobalSearchField', {
 	xtype: 'gridpanel',
 	focusOnToFront: false,
 	floating: true,
-	emptyText: PVE.Utils.noneText,
+	emptyText: Proxmox.Utils.noneText,
 	width: 600,
 	height: 400,
 	scrollable: {
diff --git a/www/manager6/form/GuestIDSelector.js b/www/manager6/form/GuestIDSelector.js
index 71ff0dc6..436c57e3 100644
--- a/www/manager6/form/GuestIDSelector.js
+++ b/www/manager6/form/GuestIDSelector.js
@@ -59,7 +59,7 @@ Ext.define('PVE.form.GuestIDSelector', {
 		    if (!Ext.isDefined(me.validateExists)) {
 			return;
 		    }
-		    PVE.Utils.API2Request({
+		    Proxmox.Utils.API2Request({
 			params: { vmid: newValue },
 			url: '/cluster/nextid',
 			method: 'GET',
@@ -79,7 +79,7 @@ Ext.define('PVE.form.GuestIDSelector', {
         me.callParent();
 
 	if (me.loadNextFreeID) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		url: '/cluster/nextid',
 		method: 'GET',
 		success: function(response, opts) {
diff --git a/www/manager6/form/LanguageSelector.js b/www/manager6/form/LanguageSelector.js
index 5e30ee67..98588636 100644
--- a/www/manager6/form/LanguageSelector.js
+++ b/www/manager6/form/LanguageSelector.js
@@ -1,5 +1,5 @@
 Ext.define('PVE.form.LanguageSelector', {
     extend: 'PVE.form.KVComboBox',
     alias: ['widget.pveLanguageSelector'],
-    comboItems: PVE.Utils.language_array()
+    comboItems: Proxmox.Utils.language_array()
 });
diff --git a/www/manager6/form/StorageSelector.js b/www/manager6/form/StorageSelector.js
index bc0e6896..a4b9913a 100644
--- a/www/manager6/form/StorageSelector.js
+++ b/www/manager6/form/StorageSelector.js
@@ -22,13 +22,13 @@ Ext.define('PVE.form.StorageSelector', {
 		header: gettext('Avail'),
 		width: 80,
 		dataIndex: 'avail',
-		renderer: PVE.Utils.format_size
+		renderer: Proxmox.Utils.format_size
 	    },
 	    {
 		header: gettext('Capacity'),
 		width: 80,
 		dataIndex: 'total',
-		renderer: PVE.Utils.format_size
+		renderer: Proxmox.Utils.format_size
 	    }
 	]
     },
diff --git a/www/manager6/grid/BackupView.js b/www/manager6/grid/BackupView.js
index cb7b86c5..8487c87d 100644
--- a/www/manager6/grid/BackupView.js
+++ b/www/manager6/grid/BackupView.js
@@ -216,7 +216,7 @@ Ext.define('PVE.grid.BackupView', {
 		{
 		    header: gettext('Size'),
 		    width: 100,
-		    renderer: PVE.Utils.format_size,
+		    renderer: Proxmox.Utils.format_size,
 		    dataIndex: 'size'
 		}
 	    ]
diff --git a/www/manager6/grid/FirewallOptions.js b/www/manager6/grid/FirewallOptions.js
index 72e0f6d4..1460ca51 100644
--- a/www/manager6/grid/FirewallOptions.js
+++ b/www/manager6/grid/FirewallOptions.js
@@ -30,7 +30,7 @@ Ext.define('PVE.FirewallOptions', {
 		header: text,
 		required: true,
 		defaultValue: defaultValue || 0,
-		renderer: PVE.Utils.format_enabled_toggle,
+		renderer: Proxmox.Utils.format_enabled_toggle,
 		editor: {
 		    xtype: 'pveWindowEdit',
 		    subject: text,
@@ -52,7 +52,7 @@ Ext.define('PVE.FirewallOptions', {
 		header: text,
 		required: true,
 		renderer: function(value) {
-		    return value || PVE.Utils.defaultText;
+		    return value || Proxmox.Utils.defaultText;
 		},
 		editor: {
 		    xtype: 'pveWindowEdit',
diff --git a/www/manager6/grid/FirewallRules.js b/www/manager6/grid/FirewallRules.js
index 47687ee0..5cb002d2 100644
--- a/www/manager6/grid/FirewallRules.js
+++ b/www/manager6/grid/FirewallRules.js
@@ -428,7 +428,7 @@ Ext.define('PVE.FirewallRules', {
 	    return;
 	}
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: me.base_url + "/" + from,
 	    method: 'PUT',
 	    params: { moveto: to },
@@ -455,7 +455,7 @@ Ext.define('PVE.FirewallRules', {
 	delete rule.pos;
 	delete rule.errors;
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: me.base_url + '/' + pos.toString(),
 	    method: 'PUT',
 	    params: rule,
diff --git a/www/manager6/grid/ObjectGrid.js b/www/manager6/grid/ObjectGrid.js
index f4e7e901..b901a584 100644
--- a/www/manager6/grid/ObjectGrid.js
+++ b/www/manager6/grid/ObjectGrid.js
@@ -106,7 +106,7 @@ Ext.define('PVE.grid.ObjectGrid', {
 	    }
 	}));
 
-	PVE.Utils.monStoreErrors(me, rstore);
+	Proxmox.Utils.monStoreErrors(me, rstore);
 
 	Ext.applyIf(me, {
 	    store: store,
diff --git a/www/manager6/grid/PoolMembers.js b/www/manager6/grid/PoolMembers.js
index 337f2c13..6c50fe7b 100644
--- a/www/manager6/grid/PoolMembers.js
+++ b/www/manager6/grid/PoolMembers.js
@@ -69,9 +69,9 @@ Ext.define('PVE.pool.AddVM', {
 		    dataIndex: 'uptime',
 		    renderer: function(value) {
 			if (value) {
-			    return PVE.Utils.runningText;
+			    return Proxmox.Utils.runningText;
 			} else {
-			    return PVE.Utils.stoppedText;
+			    return Proxmox.Utils.stoppedText;
 			}
 		    }
 		},
@@ -188,7 +188,7 @@ Ext.define('PVE.grid.PoolMembers', {
 		    throw "unknown resource type";
 		}
 
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/pools/' + me.pool,
 		    method: 'PUT',
 		    params: params,
diff --git a/www/manager6/grid/Replication.js b/www/manager6/grid/Replication.js
index bae7d7dd..5edcd2fb 100644
--- a/www/manager6/grid/Replication.js
+++ b/www/manager6/grid/Replication.js
@@ -172,7 +172,7 @@ Ext.define('PVE.grid.ReplicaView', {
 	    var me = this.getView();
 	    var controller = this;
 
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		url: "/api2/extjs/nodes/" + me.nodename + "/replication/" + rec.data.id + "/schedule_now",
 		method: 'POST',
 		waitMsgTarget: me,
@@ -375,7 +375,7 @@ Ext.define('PVE.grid.ReplicaView', {
 			    return gettext('syncing');
 			}
 
-			return PVE.Utils.render_timestamp(value);
+			return Proxmox.Utils.render_timestamp(value);
 		    }
 		},
 		{
@@ -400,7 +400,7 @@ Ext.define('PVE.grid.ReplicaView', {
 			    return gettext('pending');
 			}
 
-			return PVE.Utils.render_timestamp(value);
+			return Proxmox.Utils.render_timestamp(value);
 		    }
 		}
 	    );
@@ -469,7 +469,7 @@ Ext.define('PVE.grid.ReplicaView', {
 	    return;
 	}
 
-	PVE.Utils.monStoreErrors(me, me.rstore);
+	Proxmox.Utils.monStoreErrors(me, me.rstore);
 
 	me.on('destroy', me.rstore.stopUpdate);
 	me.rstore.startUpdate();
diff --git a/www/manager6/ha/Groups.js b/www/manager6/ha/Groups.js
index 7d2cd911..1e6fcd74 100644
--- a/www/manager6/ha/Groups.js
+++ b/www/manager6/ha/Groups.js
@@ -80,14 +80,14 @@ Ext.define('PVE.ha.GroupsView', {
 		    header: 'restricted',
 		    width: 100,
 		    sortable: true,
-		    renderer: PVE.Utils.format_boolean,
+		    renderer: Proxmox.Utils.format_boolean,
 		    dataIndex: 'restricted'
 		},
 		{
 		    header: 'nofailback',
 		    width: 100,
 		    sortable: true,
-		    renderer: PVE.Utils.format_boolean,
+		    renderer: Proxmox.Utils.format_boolean,
 		    dataIndex: 'nofailback'
 		},
 		{
diff --git a/www/manager6/ha/ResourceEdit.js b/www/manager6/ha/ResourceEdit.js
index ec029494..6015ffb1 100644
--- a/www/manager6/ha/ResourceEdit.js
+++ b/www/manager6/ha/ResourceEdit.js
@@ -38,7 +38,7 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
 	    hidden: true
 	});
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: '/cluster/config/nodes',
 	    method: 'GET',
 	    failure: function(response) {
diff --git a/www/manager6/ha/Resources.js b/www/manager6/ha/Resources.js
index a6bc76b4..13419bb3 100644
--- a/www/manager6/ha/Resources.js
+++ b/www/manager6/ha/Resources.js
@@ -16,7 +16,7 @@ Ext.define('PVE.ha.ResourcesView', {
 	    throw "no store given";
 	}
 
-	PVE.Utils.monStoreErrors(me, me.rstore);
+	Proxmox.Utils.monStoreErrors(me, me.rstore);
 
 	var store = Ext.create('PVE.data.DiffStore', {
 	    rstore: me.rstore,
diff --git a/www/manager6/ha/StatusView.js b/www/manager6/ha/StatusView.js
index 212207bc..00837a94 100644
--- a/www/manager6/ha/StatusView.js
+++ b/www/manager6/ha/StatusView.js
@@ -18,7 +18,7 @@ Ext.define('PVE.ha.StatusView', {
 	    throw "no rstore given";
 	}
 
-	PVE.Utils.monStoreErrors(me, me.rstore);
+	Proxmox.Utils.monStoreErrors(me, me.rstore);
 
 	var store = Ext.create('PVE.data.DiffStore', {
 	    rstore: me.rstore,
diff --git a/www/manager6/lxc/CmdMenu.js b/www/manager6/lxc/CmdMenu.js
index d2fd0f1f..6ad3ca29 100644
--- a/www/manager6/lxc/CmdMenu.js
+++ b/www/manager6/lxc/CmdMenu.js
@@ -17,7 +17,7 @@ Ext.define('PVE.lxc.CmdMenu', {
 	var vmname = me.pveSelNode.data.name;
 
 	var vm_command = function(cmd, params) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		params: params,
 		url: '/nodes/' + nodename + '/lxc/' + vmid + "/status/" + cmd,
 		method: 'POST',
@@ -63,7 +63,7 @@ Ext.define('PVE.lxc.CmdMenu', {
 //		hidde: suspended,
 //		disabled: stopped || suspended,
 //		handler: function() {
-//		    var msg = PVE.Utils.format_task_description('vzsuspend', vmid);
+//		    var msg = Proxmox.Utils.format_task_description('vzsuspend', vmid);
 //		    Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
 //			if (btn !== 'yes') {
 //			    return;
@@ -86,7 +86,7 @@ Ext.define('PVE.lxc.CmdMenu', {
 		iconCls: 'fa fa-fw fa-power-off',
 		disabled: stopped || suspended,
 		handler: function() {
-		    var msg = PVE.Utils.format_task_description('vzshutdown', vmid);
+		    var msg = Proxmox.Utils.format_task_description('vzshutdown', vmid);
 		    Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
 			if (btn !== 'yes') {
 			    return;
@@ -101,7 +101,7 @@ Ext.define('PVE.lxc.CmdMenu', {
 		iconCls: 'fa fa-fw fa-stop',
 		disabled: stopped,
 		handler: function() {
-		    var msg = PVE.Utils.format_task_description('vzstop', vmid);
+		    var msg = Proxmox.Utils.format_task_description('vzstop', vmid);
 		    Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
 			if (btn !== 'yes') {
 			    return;
@@ -132,13 +132,13 @@ Ext.define('PVE.lxc.CmdMenu', {
 //		text: gettext('Convert to template'),
 //		icon: '/pve2/images/forward.png',
 //		handler: function() {
-//		    var msg = PVE.Utils.format_task_description('vztemplate', vmid);
+//		    var msg = Proxmox.Utils.format_task_description('vztemplate', vmid);
 //		    Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
 //			if (btn !== 'yes') {
 //			    return;
 //			}
 //
-//			PVE.Utils.API2Request({
+//			Proxmox.Utils.API2Request({
 //			     url: '/nodes/' + nodename + '/lxc/' + vmid + '/template',
 //			     method: 'POST',
 //			     failure: function(response, opts) {
diff --git a/www/manager6/lxc/Config.js b/www/manager6/lxc/Config.js
index 51fd332d..761ce906 100644
--- a/www/manager6/lxc/Config.js
+++ b/www/manager6/lxc/Config.js
@@ -31,7 +31,7 @@ Ext.define('PVE.lxc.Config', {
 	});
 
 	var vm_command = function(cmd, params) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		params: params,
 		url: base_url + "/status/" + cmd,
 		waitMsgTarget: me,
@@ -54,7 +54,7 @@ Ext.define('PVE.lxc.Config', {
 	var stopBtn = Ext.create('Ext.menu.Item',{
 	    text: gettext('Stop'),
 	    disabled: !caps.vms['VM.PowerMgmt'],
-	    confirmMsg: PVE.Utils.format_task_description('vzstop', vmid),
+	    confirmMsg: Proxmox.Utils.format_task_description('vzstop', vmid),
 	    dangerous: true,
 	    handler: function() {
 		vm_command("stop");
@@ -65,7 +65,7 @@ Ext.define('PVE.lxc.Config', {
 	var shutdownBtn = Ext.create('PVE.button.Split', {
 	    text: gettext('Shutdown'),
 	    disabled: !caps.vms['VM.PowerMgmt'] || !running,
-	    confirmMsg: PVE.Utils.format_task_description('vzshutdown', vmid),
+	    confirmMsg: Proxmox.Utils.format_task_description('vzshutdown', vmid),
 	    handler: function() {
 		vm_command('shutdown');
 	    },
diff --git a/www/manager6/lxc/CreateWizard.js b/www/manager6/lxc/CreateWizard.js
index 5e85d2fe..38443f09 100644
--- a/www/manager6/lxc/CreateWizard.js
+++ b/www/manager6/lxc/CreateWizard.js
@@ -312,7 +312,7 @@ Ext.define('PVE.lxc.CreateWizard', {
 			    delete kv.password;
 			}
 
-			PVE.Utils.API2Request({
+			Proxmox.Utils.API2Request({
 			    url: '/nodes/' + nodename + '/lxc',
 			    waitMsgTarget: me,
 			    method: 'POST',
diff --git a/www/manager6/lxc/MPResize.js b/www/manager6/lxc/MPResize.js
index bcda4b60..7918e819 100644
--- a/www/manager6/lxc/MPResize.js
+++ b/www/manager6/lxc/MPResize.js
@@ -7,7 +7,7 @@ Ext.define('PVE.window.MPResize', {
 	var me = this;
         var params =  { disk: disk, size: '+' + size + 'G' };
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    params: params,
 	    url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/resize',
 	    waitMsgTarget: me,
diff --git a/www/manager6/lxc/Network.js b/www/manager6/lxc/Network.js
index 15cf914c..80ba9dc6 100644
--- a/www/manager6/lxc/Network.js
+++ b/www/manager6/lxc/Network.js
@@ -339,15 +339,15 @@ Ext.define('PVE.lxc.NetworkView', {
     load: function() {
 	var me = this;
 
-	PVE.Utils.setErrorMask(me, true);
+	Proxmox.Utils.setErrorMask(me, true);
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: me.url,
 	    failure: function(response, opts) {
-		PVE.Utils.setErrorMask(me, gettext('Error') + ': ' + response.htmlStatus);
+		Proxmox.Utils.setErrorMask(me, gettext('Error') + ': ' + response.htmlStatus);
 	    },
 	    success: function(response, opts) {
-		PVE.Utils.setErrorMask(me, false);
+		Proxmox.Utils.setErrorMask(me, false);
 		var result = Ext.decode(response.responseText);
 		var data = result.data || {};
 		me.dataCache = data;
@@ -407,7 +407,7 @@ Ext.define('PVE.lxc.NetworkView', {
 					 "'" + rec.data.id + "'");
 	    },
 	    handler: function(btn, event, rec) {
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: me.url,
 		    waitMsgTarget: me,
 		    method: 'PUT',
@@ -497,7 +497,7 @@ Ext.define('PVE.lxc.NetworkView', {
 		    header: gettext('Firewall'),
 		    width: 80,
 		    dataIndex: 'firewall',
-		    renderer: PVE.Utils.format_boolean
+		    renderer: Proxmox.Utils.format_boolean
 		},
 		{
 		    header: gettext('VLAN Tag'),
diff --git a/www/manager6/lxc/Options.js b/www/manager6/lxc/Options.js
index 46e488b1..c1da432f 100644
--- a/www/manager6/lxc/Options.js
+++ b/www/manager6/lxc/Options.js
@@ -25,7 +25,7 @@ Ext.define('PVE.lxc.Options', {
 	    onboot: {
 		header: gettext('Start at boot'),
 		defaultValue: '',
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		editor: caps.vms['VM.Config.Options'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: gettext('Start at boot'),
@@ -50,16 +50,16 @@ Ext.define('PVE.lxc.Options', {
 	    },
 	    ostype: {
 		header: gettext('OS Type'),
-		defaultValue: PVE.Utils.unknownText
+		defaultValue: Proxmox.Utils.unknownText
 	    },
 	    arch: {
 		header: gettext('Architecture'),
-		defaultValue: PVE.Utils.unknownText
+		defaultValue: Proxmox.Utils.unknownText
 	    },
 	    console: {
 		header: '/dev/console',
 		defaultValue: 1,
-		renderer: PVE.Utils.format_enabled_toggle,
+		renderer: Proxmox.Utils.format_enabled_toggle,
 		editor: caps.vms['VM.Config.Options'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: '/dev/console',
@@ -104,7 +104,7 @@ Ext.define('PVE.lxc.Options', {
 			deleteEmpty: true,
 			value: '__default__',
 			comboItems: [
-			    ['__default__', PVE.Utils.defaultText + " (tty)"],
+			    ['__default__', Proxmox.Utils.defaultText + " (tty)"],
 			    ['tty', "/dev/tty[X]"],
 			    ['console', "/dev/console"],
 			    ['shell', "shell"]
@@ -116,7 +116,7 @@ Ext.define('PVE.lxc.Options', {
 	    protection: {
 		header: gettext('Protection'),
 		defaultValue: false,
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		editor: caps.vms['VM.Config.Options'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: gettext('Protection'),
@@ -132,7 +132,7 @@ Ext.define('PVE.lxc.Options', {
 	    },
 	    unprivileged: {
 		header: gettext('Unprivileged container'),
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		defaultValue: 0
 	    }
 	};
diff --git a/www/manager6/lxc/Resources.js b/www/manager6/lxc/Resources.js
index b430bcd4..40eefe1f 100644
--- a/www/manager6/lxc/Resources.js
+++ b/www/manager6/lxc/Resources.js
@@ -47,7 +47,7 @@ Ext.define('PVE.lxc.RessourceView', {
 		defaultValue: 512,
 		tdCls: 'pve-itype-icon-memory',
 		renderer: function(value) {
-		    return PVE.Utils.format_size(value*1024*1024);
+		    return Proxmox.Utils.format_size(value*1024*1024);
 		}
 	    },
 	    swap: {
@@ -57,7 +57,7 @@ Ext.define('PVE.lxc.RessourceView', {
 		defaultValue: 512,
 		tdCls: 'pve-itype-icon-swap',
 		renderer: function(value) {
-		    return PVE.Utils.format_size(value*1024*1024);
+		    return Proxmox.Utils.format_size(value*1024*1024);
 		}
 	    },
 	    cores: {
@@ -91,7 +91,7 @@ Ext.define('PVE.lxc.RessourceView', {
 	    },
 	    rootfs: {
 		header: gettext('Root Disk'),
-		defaultValue: PVE.Utils.noneText,
+		defaultValue: Proxmox.Utils.noneText,
 		editor: mpeditor,
 		tdCls: 'pve-itype-icon-storage'
 	    },
@@ -170,7 +170,7 @@ Ext.define('PVE.lxc.RessourceView', {
 	};
 
 	var run_remove = function(b, e, rec) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		url: '/api2/extjs/' + baseurl,
 		waitMsgTarget: me,
 		method: 'PUT',
diff --git a/www/manager6/lxc/Snapshot.js b/www/manager6/lxc/Snapshot.js
index f5e1b242..723ea172 100644
--- a/www/manager6/lxc/Snapshot.js
+++ b/www/manager6/lxc/Snapshot.js
@@ -16,7 +16,7 @@ Ext.define('PVE.window.LxcSnapshot', {
 	    params.description = descr;
 	}
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    params: params,
 	    url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + "/snapshot",
 	    waitMsgTarget: me,
@@ -35,7 +35,7 @@ Ext.define('PVE.window.LxcSnapshot', {
 
     update_snapshot: function(snapname, descr) {
 	var me = this;
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    params: { description: descr },
 	    url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + "/snapshot/" +
 		snapname + '/config',
@@ -86,7 +86,7 @@ Ext.define('PVE.window.LxcSnapshot', {
 	    items.push({
 		xtype: 'displayfield',
 		name: 'snaptime',
-		renderer: PVE.Utils.render_timestamp_human_readable,
+		renderer: Proxmox.Utils.render_timestamp_human_readable,
 		fieldLabel: gettext('Timestamp')
 	    });
 	}
@@ -173,7 +173,7 @@ Ext.define('PVE.window.LxcSnapshot', {
 	}
 
 	// else load data
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + "/snapshot/" +
 		me.snapname + '/config',
 	    waitMsgTarget: me,
diff --git a/www/manager6/lxc/SnapshotTree.js b/www/manager6/lxc/SnapshotTree.js
index 6e2c649d..993ce507 100644
--- a/www/manager6/lxc/SnapshotTree.js
+++ b/www/manager6/lxc/SnapshotTree.js
@@ -28,15 +28,15 @@ Ext.define('PVE.lxc.SnapshotTree', {
     reload: function(repeat) {
 	var me = this;
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/snapshot',
 	    method: 'GET',
 	    failure: function(response, opts) {
-		PVE.Utils.setErrorMask(me, response.htmlStatus);
+		Proxmox.Utils.setErrorMask(me, response.htmlStatus);
 		me.load_task.delay(me.load_delay);
 	    },
 	    success: function(response, opts) {
-		PVE.Utils.setErrorMask(me, false);
+		Proxmox.Utils.setErrorMask(me, false);
 		var digest = 'invalid';
 		var idhash = {};
 		var root = { name: '__root', expanded: true, children: [] };
@@ -78,7 +78,7 @@ Ext.define('PVE.lxc.SnapshotTree', {
 	    }
 	});
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/feature',
 	    params: { feature: 'snapshot' },
 	    method: 'GET',
@@ -159,7 +159,7 @@ Ext.define('PVE.lxc.SnapshotTree', {
 	    selModel: sm,
 	    enableFn: valid_snapshot_rollback,
 	    confirmMsg: function(rec) {
-		return PVE.Utils.format_task_description('vzrollback', me.vmid) +
+		return Proxmox.Utils.format_task_description('vzrollback', me.vmid) +
 		    " '" +  rec.data.name + "'";
 	    },
 	    handler: function(btn, event) {
@@ -169,7 +169,7 @@ Ext.define('PVE.lxc.SnapshotTree', {
 		}
 		var snapname = rec.data.name;
 
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/snapshot/' + snapname + '/rollback',
 		    method: 'POST',
 		    waitMsgTarget: me,
@@ -205,7 +205,7 @@ Ext.define('PVE.lxc.SnapshotTree', {
 		}
 		var snapname = rec.data.name;
 
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/snapshot/' + snapname,
 		    method: 'DELETE',
 		    waitMsgTarget: me,
@@ -270,7 +270,7 @@ Ext.define('PVE.lxc.SnapshotTree', {
 //		    width: 50,
 //		    renderer: function(value, metaData, record) {
 //			if (record.data.name !== 'current') {
-//			    return PVE.Utils.format_boolean(value);
+//			    return Proxmox.Utils.format_boolean(value);
 //			}
 //		    }
 //		},
diff --git a/www/manager6/node/Config.js b/www/manager6/node/Config.js
index e0a6cc0b..5e6352ce 100644
--- a/www/manager6/node/Config.js
+++ b/www/manager6/node/Config.js
@@ -20,7 +20,7 @@ Ext.define('PVE.node.Config', {
 	});
 
 	var node_command = function(cmd) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		params: { command: cmd },
 		url: '/nodes/' + nodename + '/status',
 		method: 'POST',
diff --git a/www/manager6/node/Disks.js b/www/manager6/node/Disks.js
index 723b76d1..db28e19d 100644
--- a/www/manager6/node/Disks.js
+++ b/www/manager6/node/Disks.js
@@ -60,7 +60,7 @@ Ext.define('PVE.node.DiskList', {
 		    }
 		}
 
-		return v || PVE.Utils.noText;
+		return v || Proxmox.Utils.noText;
 	    },
 	    dataIndex: 'used'
 	},
@@ -69,7 +69,7 @@ Ext.define('PVE.node.DiskList', {
 	    width: 100,
 	    align: 'right',
 	    sortable: true,
-	    renderer: PVE.Utils.format_size,
+	    renderer: Proxmox.Utils.format_size,
 	    dataIndex: 'size'
 	},
 	{
@@ -78,9 +78,9 @@ Ext.define('PVE.node.DiskList', {
 	    align: 'right',
 	    renderer: function(value) {
 		if (value) {
-		    return PVE.Utils.yesText;
+		    return Proxmox.Utils.yesText;
 		} else {
-		    return PVE.Utils.noText;
+		    return Proxmox.Utils.noText;
 		}
 	    },
 	    dataIndex: 'gpt'
@@ -194,7 +194,7 @@ Ext.define('PVE.node.DiskList', {
 
 	    handler: function() {
 		var rec = sm.getSelection()[0];
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/api2/extjs/nodes/' + nodename + '/disks/initgpt',
 		    waitMsgTarget: me,
 		    method: 'POST',
@@ -214,7 +214,7 @@ Ext.define('PVE.node.DiskList', {
 	});
 
 	me.loadCount = 1; // avoid duplicate loadmask
-	PVE.Utils.monStoreErrors(me, store);
+	Proxmox.Utils.monStoreErrors(me, store);
 
 	Ext.apply(me, {
 	    store: store,
@@ -346,7 +346,7 @@ Ext.define('PVE.DiskSmartWindow', {
 	var grid = me.down('#smarts');
 	var text = me.down('#text');
 
-	PVE.Utils.monStoreErrors(grid, me.store);
+	Proxmox.Utils.monStoreErrors(grid, me.store);
 	me.mon(me.store, 'load', function(s, records, success) {
 	    if (success && records.length > 0) {
 		var rec = records[0];
diff --git a/www/manager6/node/StatusView.js b/www/manager6/node/StatusView.js
index 69932ca1..327ab874 100644
--- a/www/manager6/node/StatusView.js
+++ b/www/manager6/node/StatusView.js
@@ -118,7 +118,7 @@ Ext.define('PVE.node.StatusView', {
 
     updateTitle: function() {
 	var me = this;
-	var uptime = PVE.Utils.render_uptime(me.getRecordValue('uptime'));
+	var uptime = Proxmox.Utils.render_uptime(me.getRecordValue('uptime'));
 	me.setTitle(me.pveSelNode.data.node + ' (' + gettext('Uptime') + ': ' + uptime + ')');
     }
 
diff --git a/www/manager6/node/Subscription.js b/www/manager6/node/Subscription.js
index 0859d85b..fa49f540 100644
--- a/www/manager6/node/Subscription.js
+++ b/www/manager6/node/Subscription.js
@@ -82,7 +82,7 @@ Ext.define('PVE.node.Subscription', {
 	    items: view
 	});
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: '/api2/extjs/nodes/' + me.nodename + '/report',
 	    method: 'GET',
 	    waitMsgTarget: me,
@@ -142,7 +142,7 @@ Ext.define('PVE.node.Subscription', {
 	    },
 	    checktime: {
 		header: gettext('Last checked'),
-		renderer: PVE.Utils.render_timestamp
+		renderer: Proxmox.Utils.render_timestamp
 	    },
 	    nextduedate: {
 		header: gettext('Next due date')
@@ -166,7 +166,7 @@ Ext.define('PVE.node.Subscription', {
 		{
 		    text: gettext('Check'),
 		    handler: function() {
-			PVE.Utils.API2Request({
+			Proxmox.Utils.API2Request({
 			    params: { force: 1 },
 			    url: baseurl,
 			    method: 'POST',
@@ -181,7 +181,7 @@ Ext.define('PVE.node.Subscription', {
 		{
 		    text: gettext('System Report'),
 		    handler: function() {
-			PVE.Utils.checked_command(function (){ me.showReport(); });
+			Proxmox.Utils.checked_command(function (){ me.showReport(); });
 		    }
 		}
 	    ],
diff --git a/www/manager6/node/Summary.js b/www/manager6/node/Summary.js
index 20600dfc..121e59e0 100644
--- a/www/manager6/node/Summary.js
+++ b/www/manager6/node/Summary.js
@@ -32,7 +32,7 @@ Ext.define('PVE.node.Summary', {
 	    items: [ view ] 
 	});
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    waitMsgTarget: me,
 	    url: "/nodes/" + nodename + "/apt/versions",
 	    method: 'GET',
@@ -83,7 +83,7 @@ Ext.define('PVE.node.Summary', {
 	var version_btn = new Ext.Button({
 	    text: gettext('Package versions'),
 	    handler: function(){
-		PVE.Utils.checked_command(function() { me.showVersions(); });
+		Proxmox.Utils.checked_command(function() { me.showVersions(); });
 	    }
 	});
 
diff --git a/www/manager6/panel/GuestStatusView.js b/www/manager6/panel/GuestStatusView.js
index 26415437..a645d6f1 100644
--- a/www/manager6/panel/GuestStatusView.js
+++ b/www/manager6/panel/GuestStatusView.js
@@ -75,7 +75,7 @@ Ext.define('PVE.panel.GuestStatusView', {
 
 	var text = "";
 	if (Number(uptime) > 0) {
-	    text = " (" + gettext('Uptime') + ': ' + PVE.Utils.format_duration_long(uptime)
+	    text = " (" + gettext('Uptime') + ': ' + Proxmox.Utils.format_duration_long(uptime)
 		+ ')';
 	}
 
diff --git a/www/manager6/panel/InputPanel.js b/www/manager6/panel/InputPanel.js
index e5afd9a9..422537c5 100644
--- a/www/manager6/panel/InputPanel.js
+++ b/www/manager6/panel/InputPanel.js
@@ -36,7 +36,7 @@ Ext.define('PVE.panel.InputPanel', {
 
 	Ext.Array.each(me.query('[isFormField]'), function(field) {
             if (!dirtyOnly || field.isDirty()) {
-                PVE.Utils.assemble_field_data(values, field.getSubmitData());
+                Proxmox.Utils.assemble_field_data(values, field.getSubmitData());
 	    }
 	});
 
diff --git a/www/manager6/panel/LogView.js b/www/manager6/panel/LogView.js
index 4be7c50f..2e48a0ee 100644
--- a/www/manager6/panel/LogView.js
+++ b/www/manager6/panel/LogView.js
@@ -85,12 +85,12 @@ Ext.define('PVE.panel.LogView', {
 	    req_params.since = Ext.Date.format(me.since_date, 'Y-m-d');
 	}
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: me.url,
 	    params: req_params,
 	    method: 'GET',
 	    success: function(response) {
-		PVE.Utils.setErrorMask(me, false);
+		Proxmox.Utils.setErrorMask(me, false);
 		var list = response.result.data;
 		var total = response.result.total;
 		var first = 0, last = 0;
@@ -113,7 +113,7 @@ Ext.define('PVE.panel.LogView', {
 	    },
 	    failure: function(response) {
 		var msg = response.htmlStatus;
-		PVE.Utils.setErrorMask(me, msg);
+		Proxmox.Utils.setErrorMask(me, msg);
 	    }
 	});
     },
diff --git a/www/manager6/panel/NotesView.js b/www/manager6/panel/NotesView.js
index 029c8408..a4e78b0a 100644
--- a/www/manager6/panel/NotesView.js
+++ b/www/manager6/panel/NotesView.js
@@ -9,7 +9,7 @@ Ext.define('PVE.panel.NotesView', {
     load: function() {
 	var me = this;
 	
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: me.url,
 	    waitMsgTarget: me,
 	    failure: function(response, opts) {
diff --git a/www/manager6/panel/StatusView.js b/www/manager6/panel/StatusView.js
index 88ae751d..5d4e1ddd 100644
--- a/www/manager6/panel/StatusView.js
+++ b/www/manager6/panel/StatusView.js
@@ -115,7 +115,7 @@ Ext.define('PVE.panel.StatusView', {
 	    throw "no title given";
 	}
 
-	PVE.Utils.monStoreErrors(me, me.rstore);
+	Proxmox.Utils.monStoreErrors(me, me.rstore);
 
 	me.callParent();
 
diff --git a/www/manager6/qemu/BootOrderEdit.js b/www/manager6/qemu/BootOrderEdit.js
index 3dc4e75a..3ee2d0ec 100644
--- a/www/manager6/qemu/BootOrderEdit.js
+++ b/www/manager6/qemu/BootOrderEdit.js
@@ -33,7 +33,7 @@ Ext.define('PVE.qemu.BootOrderPanel', {
 
 	me.list.push(['d', 'CD-ROM']);
 	me.list.push(['n', gettext('Network')]);
-	me.list.push(['__none__', PVE.Utils.noneText]);
+	me.list.push(['__none__', Proxmox.Utils.noneText]);
 
 	me.recomputeList();
 
diff --git a/www/manager6/qemu/Clone.js b/www/manager6/qemu/Clone.js
index 6b9bcdd9..5b3649d5 100644
--- a/www/manager6/qemu/Clone.js
+++ b/www/manager6/qemu/Clone.js
@@ -22,7 +22,7 @@ Ext.define('PVE.window.Clone', {
     statics: {
 	// display a snapshot selector only if needed
 	wrap: function(nodename, vmid, isTemplate) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		url: '/nodes/' + nodename + '/qemu/' + vmid +'/snapshot',
 		failure: function(response, opts) {
 		    Ext.Msg.alert('Error', response.htmlStatus);
@@ -74,7 +74,7 @@ Ext.define('PVE.window.Clone', {
 	    }
 	}
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    params: params,
 	    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/clone',
 	    waitMsgTarget: me,
@@ -110,7 +110,7 @@ Ext.define('PVE.window.Clone', {
 	    params.snapname = snapname;
 	}
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    waitMsgTarget: me,
 	    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/feature',
 	    params: params,
diff --git a/www/manager6/qemu/CmdMenu.js b/www/manager6/qemu/CmdMenu.js
index 74421157..49ea62bc 100644
--- a/www/manager6/qemu/CmdMenu.js
+++ b/www/manager6/qemu/CmdMenu.js
@@ -18,7 +18,7 @@ Ext.define('PVE.qemu.CmdMenu', {
 	var vmname = me.pveSelNode.data.name;
 
 	var vm_command = function(cmd, params) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		params: params,
 		url: '/nodes/' + nodename + '/qemu/' + vmid + "/status/" + cmd,
 		method: 'POST',
@@ -64,7 +64,7 @@ Ext.define('PVE.qemu.CmdMenu', {
 		hidden: suspended,
 		disabled: stopped || suspended,
 		handler: function() {
-		    var msg = PVE.Utils.format_task_description('qmsuspend', vmid);
+		    var msg = Proxmox.Utils.format_task_description('qmsuspend', vmid);
 		    Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
 			if (btn !== 'yes') {
 			    return;
@@ -86,7 +86,7 @@ Ext.define('PVE.qemu.CmdMenu', {
 		iconCls: 'fa fa-fw fa-power-off',
 		disabled: stopped || suspended,
 		handler: function() {
-		    var msg = PVE.Utils.format_task_description('qmshutdown', vmid);
+		    var msg = Proxmox.Utils.format_task_description('qmshutdown', vmid);
 		    Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
 			if (btn !== 'yes') {
 			    return;
@@ -101,7 +101,7 @@ Ext.define('PVE.qemu.CmdMenu', {
 		iconCls: 'fa fa-fw fa-stop',
 		disabled: stopped,
 		handler: function() {
-		    var msg = PVE.Utils.format_task_description('qmstop', vmid);
+		    var msg = Proxmox.Utils.format_task_description('qmstop', vmid);
 		    Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
 			if (btn !== 'yes') {
 			    return;
@@ -141,13 +141,13 @@ Ext.define('PVE.qemu.CmdMenu', {
 		iconCls: 'fa fa-fw fa-file-o',
 		hidden: !caps.vms['VM.Allocate'],
 		handler: function() {
-		    var msg = PVE.Utils.format_task_description('qmtemplate', vmid);
+		    var msg = Proxmox.Utils.format_task_description('qmtemplate', vmid);
 		    Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
 			if (btn !== 'yes') {
 			    return;
 			}
 
-			PVE.Utils.API2Request({
+			Proxmox.Utils.API2Request({
 			     url: '/nodes/' + nodename + '/qemu/' + vmid + '/template',
 			     method: 'POST',
 			     failure: function(response, opts) {
@@ -162,7 +162,7 @@ Ext.define('PVE.qemu.CmdMenu', {
 		text: gettext('Console'),
 		iconCls: 'fa fa-fw fa-terminal',
 		handler: function() {
-		    PVE.Utils.API2Request({
+		    Proxmox.Utils.API2Request({
 			url: '/nodes/' + nodename + '/qemu/' + vmid + '/status/current',
 			failure: function(response, opts) {
 			    Ext.Msg.alert('Error', response.htmlStatus);
diff --git a/www/manager6/qemu/Config.js b/www/manager6/qemu/Config.js
index 0abb19c7..4114b7c0 100644
--- a/www/manager6/qemu/Config.js
+++ b/www/manager6/qemu/Config.js
@@ -31,7 +31,7 @@ Ext.define('PVE.qemu.Config', {
 	});
 
 	var vm_command = function(cmd, params) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		params: params,
 		url: base_url + '/status/' + cmd,
 		waitMsgTarget: me,
@@ -94,9 +94,9 @@ Ext.define('PVE.qemu.Config', {
 		    xtype: 'pveMenuItem',
 		    iconCls: 'fa fa-fw fa-file-o',
 		    hidden: caps.vms['VM.Allocate'] ? false : true,
-		    confirmMsg: PVE.Utils.format_task_description('qmtemplate', vmid),
+		    confirmMsg: Proxmox.Utils.format_task_description('qmtemplate', vmid),
 		    handler: function() {
-			PVE.Utils.API2Request({
+			Proxmox.Utils.API2Request({
 			    url: base_url + '/template',
 			    waitMsgTarget: me,
 			    method: 'POST',
@@ -137,7 +137,7 @@ Ext.define('PVE.qemu.Config', {
 	    text: gettext('Shutdown'),
 	    disabled: !caps.vms['VM.PowerMgmt'] || !running,
 	    hidden: template,
-	    confirmMsg: PVE.Utils.format_task_description('qmshutdown', vmid),
+	    confirmMsg: Proxmox.Utils.format_task_description('qmshutdown', vmid),
 	    handler: function() {
 		vm_command('shutdown');
 	    },
@@ -146,7 +146,7 @@ Ext.define('PVE.qemu.Config', {
 		    text: gettext('Stop'),
 		    disabled: !caps.vms['VM.PowerMgmt'],
 		    dangerous: true,
-		    confirmMsg: PVE.Utils.format_task_description('qmstop', vmid),
+		    confirmMsg: Proxmox.Utils.format_task_description('qmstop', vmid),
 		    handler: function() {
 			vm_command("stop", { timeout: 30 });
 		    },
@@ -154,7 +154,7 @@ Ext.define('PVE.qemu.Config', {
 		},{
 		    text: gettext('Reset'),
 		    disabled: !caps.vms['VM.PowerMgmt'],
-		    confirmMsg: PVE.Utils.format_task_description('qmreset', vmid),
+		    confirmMsg: Proxmox.Utils.format_task_description('qmreset', vmid),
 		    handler: function() {
 			vm_command("reset");
 		    },
diff --git a/www/manager6/qemu/CreateWizard.js b/www/manager6/qemu/CreateWizard.js
index 55bc1d50..cc478f03 100644
--- a/www/manager6/qemu/CreateWizard.js
+++ b/www/manager6/qemu/CreateWizard.js
@@ -167,7 +167,7 @@ Ext.define('PVE.qemu.CreateWizard', {
 			var nodename = kv.nodename;
 			delete kv.nodename;
 
-			PVE.Utils.API2Request({
+			Proxmox.Utils.API2Request({
 			    url: '/nodes/' + nodename + '/qemu',
 			    waitMsgTarget: me,
 			    method: 'POST',
diff --git a/www/manager6/qemu/HDMove.js b/www/manager6/qemu/HDMove.js
index cb50d492..29f1db32 100644
--- a/www/manager6/qemu/HDMove.js
+++ b/www/manager6/qemu/HDMove.js
@@ -17,7 +17,7 @@ Ext.define('PVE.window.HDMove', {
 	    params['delete'] = 1;
 	}
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    params: params,
 	    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/move_disk',
 	    waitMsgTarget: me,
diff --git a/www/manager6/qemu/HDResize.js b/www/manager6/qemu/HDResize.js
index 0e50ff89..5fb3bc95 100644
--- a/www/manager6/qemu/HDResize.js
+++ b/www/manager6/qemu/HDResize.js
@@ -7,7 +7,7 @@ Ext.define('PVE.window.HDResize', {
 	var me = this;
         var params =  { disk: disk, size: '+' + size + 'G' };
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    params: params,
 	    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/resize',
 	    waitMsgTarget: me,
diff --git a/www/manager6/qemu/HardwareView.js b/www/manager6/qemu/HardwareView.js
index 2bbf5283..3e7283bc 100644
--- a/www/manager6/qemu/HardwareView.js
+++ b/www/manager6/qemu/HardwareView.js
@@ -50,11 +50,11 @@ Ext.define('PVE.qemu.HardwareView', {
 		renderer: function(value, metaData, record) {
 		    var balloon =  me.getObjectValue('balloon');
 		    if (balloon) {
-			return PVE.Utils.format_size(balloon*1024*1024) + "/" + 
-			    PVE.Utils.format_size(value*1024*1024);
+			return Proxmox.Utils.format_size(balloon*1024*1024) + "/" + 
+			    Proxmox.Utils.format_size(value*1024*1024);
 
 		    } 
-		    return PVE.Utils.format_size(value*1024*1024);
+		    return Proxmox.Utils.format_size(value*1024*1024);
 		}
 	    },
 	    sockets: {
@@ -418,7 +418,7 @@ Ext.define('PVE.qemu.HardwareView', {
 		return msg;
 	    },
 	    handler: function(b, e, rec) {
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/api2/extjs/' + baseurl,
 		    waitMsgTarget: me,
 		    method: 'PUT',
@@ -459,7 +459,7 @@ Ext.define('PVE.qemu.HardwareView', {
 		var rowdef = me.rows[rec.data.key] || {};
 		var keys = rowdef.multiKey ||  [ rec.data.key ];
 		var revert = keys.join(',');
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/api2/extjs/' + baseurl,
 		    waitMsgTarget: me,
 		    method: 'PUT',
diff --git a/www/manager6/qemu/MemoryEdit.js b/www/manager6/qemu/MemoryEdit.js
index 93b1b717..73e6b04d 100644
--- a/www/manager6/qemu/MemoryEdit.js
+++ b/www/manager6/qemu/MemoryEdit.js
@@ -133,7 +133,7 @@ Ext.define('PVE.qemu.MemoryInputPanel', {
 		labelAlign: 'right',
 		labelWidth: labelWidth,
 		allowBlank: true,
-		emptyText: PVE.Utils.defaultText + ' (1000)',
+		emptyText: Proxmox.Utils.defaultText + ' (1000)',
 		submitEmptyText: false
 	    }
 	];
diff --git a/www/manager6/qemu/Monitor.js b/www/manager6/qemu/Monitor.js
index 8ceb7243..686950ad 100644
--- a/www/manager6/qemu/Monitor.js
+++ b/www/manager6/qemu/Monitor.js
@@ -57,7 +57,7 @@ Ext.define('PVE.qemu.Monitor', {
 	var executeCmd = function(cmd) {
 	    addLine("# " + Ext.htmlEncode(cmd));
 	    refresh();
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		params: { command: cmd },
 		url: '/nodes/' + nodename + '/qemu/' + vmid + "/monitor",
 		method: 'POST',
diff --git a/www/manager6/qemu/Options.js b/www/manager6/qemu/Options.js
index 36a83dda..04663c40 100644
--- a/www/manager6/qemu/Options.js
+++ b/www/manager6/qemu/Options.js
@@ -54,7 +54,7 @@ Ext.define('PVE.qemu.Options', {
 	    onboot: {
 		header: gettext('Start at boot'),
 		defaultValue: '',
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		editor: caps.vms['VM.Config.Options'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: gettext('Start at boot'),
@@ -124,7 +124,7 @@ Ext.define('PVE.qemu.Options', {
 	    tablet: {
 		header: gettext('Use tablet for pointer'),
 		defaultValue: true,
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		editor: caps.vms['VM.Config.HWType'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: gettext('Use tablet for pointer'),
@@ -159,7 +159,7 @@ Ext.define('PVE.qemu.Options', {
 	    acpi: {
 		header: gettext('ACPI support'),
 		defaultValue: true,
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		editor: caps.vms['VM.Config.HWType'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: gettext('ACPI support'),
@@ -189,7 +189,7 @@ Ext.define('PVE.qemu.Options', {
 	    kvm: {
 		header: gettext('KVM hardware virtualization'),
 		defaultValue: true,
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		editor: caps.vms['VM.Config.HWType'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: gettext('KVM hardware virtualization'),
@@ -207,7 +207,7 @@ Ext.define('PVE.qemu.Options', {
 	    freeze: {
 		header: gettext('Freeze CPU at startup'),
 		defaultValue: false,
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		editor: caps.vms['VM.PowerMgmt'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: gettext('Freeze CPU at startup'),
@@ -225,7 +225,7 @@ Ext.define('PVE.qemu.Options', {
 	    localtime: {
 		header: gettext('Use local time for RTC'),
 		defaultValue: false,
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		editor: caps.vms['VM.Config.Options'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: gettext('Use local time for RTC'),
@@ -266,7 +266,7 @@ Ext.define('PVE.qemu.Options', {
 	    agent: {
 		header: gettext('Qemu Agent'),
 		defaultValue: false,
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		editor: caps.vms['VM.Config.Options'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: gettext('Qemu Agent'),
@@ -283,7 +283,7 @@ Ext.define('PVE.qemu.Options', {
 	    protection: {
 		header: gettext('Protection'),
 		defaultValue: false,
-		renderer: PVE.Utils.format_boolean,
+		renderer: Proxmox.Utils.format_boolean,
 		editor: caps.vms['VM.Config.Options'] ? {
 		    xtype: 'pveWindowEdit',
 		    subject: gettext('Protection'),
@@ -358,7 +358,7 @@ Ext.define('PVE.qemu.Options', {
 		var keys = rowdef.multiKey ||  [ rec.data.key ];
 		var revert = keys.join(',');
 
-                PVE.Utils.API2Request({
+                Proxmox.Utils.API2Request({
                     url: '/api2/extjs/' + baseurl,
                     waitMsgTarget: me,
                     method: 'PUT',
diff --git a/www/manager6/qemu/QemuBiosEdit.js b/www/manager6/qemu/QemuBiosEdit.js
index d5abbe35..a85f2124 100644
--- a/www/manager6/qemu/QemuBiosEdit.js
+++ b/www/manager6/qemu/QemuBiosEdit.js
@@ -24,7 +24,7 @@ Ext.define('PVE.qemu.BiosEdit', {
 		listeners: {
 		    'change' : function(field, newValue) {
 			if (newValue == 'ovmf') {
-			    PVE.Utils.API2Request({
+			    Proxmox.Utils.API2Request({
 				url : me.url,
 				method : 'GET',
 				failure : function(response, opts) {
diff --git a/www/manager6/qemu/Snapshot.js b/www/manager6/qemu/Snapshot.js
index bee26eb2..b6ac5d29 100644
--- a/www/manager6/qemu/Snapshot.js
+++ b/www/manager6/qemu/Snapshot.js
@@ -16,7 +16,7 @@ Ext.define('PVE.window.Snapshot', {
 	    params.description = descr;
 	}
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    params: params,
 	    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + "/snapshot",
 	    waitMsgTarget: me,
@@ -35,7 +35,7 @@ Ext.define('PVE.window.Snapshot', {
 
     update_snapshot: function(snapname, descr) {
 	var me = this;
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    params: { description: descr },
 	    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + "/snapshot/" + 
 		snapname + '/config',
@@ -86,7 +86,7 @@ Ext.define('PVE.window.Snapshot', {
 	    items.push({
 		xtype: 'displayfield',
 		name: 'snaptime',
-		renderer: PVE.Utils.render_timestamp_human_readable,
+		renderer: Proxmox.Utils.render_timestamp_human_readable,
 		fieldLabel: gettext('Timestamp')
 	    });
 	} else {
@@ -182,7 +182,7 @@ Ext.define('PVE.window.Snapshot', {
 	}
 
 	// else load data
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + "/snapshot/" + 
 		me.snapname + '/config',
 	    waitMsgTarget: me,
diff --git a/www/manager6/qemu/SnapshotTree.js b/www/manager6/qemu/SnapshotTree.js
index 32f07938..409f60a6 100644
--- a/www/manager6/qemu/SnapshotTree.js
+++ b/www/manager6/qemu/SnapshotTree.js
@@ -26,15 +26,15 @@ Ext.define('PVE.qemu.SnapshotTree', {
     reload: function(repeat) {
         var me = this;
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/snapshot',
 	    method: 'GET',
 	    failure: function(response, opts) {
-		PVE.Utils.setErrorMask(me, response.htmlStatus);
+		Proxmox.Utils.setErrorMask(me, response.htmlStatus);
 		me.load_task.delay(me.load_delay);
 	    },
 	    success: function(response, opts) {
-		PVE.Utils.setErrorMask(me, false);
+		Proxmox.Utils.setErrorMask(me, false);
 		var digest = 'invalid';
 		var idhash = {};
 		var root = { name: '__root', expanded: true, children: [] };
@@ -76,7 +76,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
 	    }
 	});
 
-        PVE.Utils.API2Request({
+        Proxmox.Utils.API2Request({
 	    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/feature',
 	    params: { feature: 'snapshot' },
             method: 'GET',
@@ -157,7 +157,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
 	    selModel: sm,
 	    enableFn: valid_snapshot_rollback,
 	    confirmMsg: function(rec) {
-		return PVE.Utils.format_task_description('qmrollback', me.vmid) +
+		return Proxmox.Utils.format_task_description('qmrollback', me.vmid) +
 		    " '" +  rec.data.name + "'";
 	    },
 	    handler: function(btn, event) {
@@ -167,7 +167,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
 		}
 		var snapname = rec.data.name;
 
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/snapshot/' + snapname + '/rollback',
 		    method: 'POST',
 		    waitMsgTarget: me,
@@ -203,7 +203,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
 		}
 		var snapname = rec.data.name;
 
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/snapshot/' + snapname,
 		    method: 'DELETE',
 		    waitMsgTarget: me,
@@ -268,7 +268,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
 		    width: 50,
 		    renderer: function(value, metaData, record) {
 			if (record.data.name !== 'current') {
-			    return PVE.Utils.format_boolean(value);
+			    return Proxmox.Utils.format_boolean(value);
 			}
 		    }
 		},
diff --git a/www/manager6/qemu/TemplateMenu.js b/www/manager6/qemu/TemplateMenu.js
index 6bcf87e8..bf193afd 100644
--- a/www/manager6/qemu/TemplateMenu.js
+++ b/www/manager6/qemu/TemplateMenu.js
@@ -19,7 +19,7 @@ Ext.define('PVE.qemu.TemplateMenu', {
 	var template = me.pveSelNode.data.template;
 
 	var vm_command = function(cmd, params) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		params: params,
 		url: '/nodes/' + nodename + '/qemu/' + vmid + "/status/" + cmd,
 		method: 'POST',
diff --git a/www/manager6/storage/ContentView.js b/www/manager6/storage/ContentView.js
index 86b1a86d..7811c857 100644
--- a/www/manager6/storage/ContentView.js
+++ b/www/manager6/storage/ContentView.js
@@ -35,7 +35,7 @@ Ext.define('PVE.grid.TemplateSelector', {
 	    store.load();
 	};
 
-	PVE.Utils.monStoreErrors(me, store);
+	Proxmox.Utils.monStoreErrors(me, store);
 
 	Ext.apply(me, {
 	    store: store,
@@ -111,7 +111,7 @@ Ext.define('PVE.storage.TemplateDownload', {
 	    disabled: true,
 	    selModel: sm,
 	    handler: function(button, event, rec) {
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/nodes/' + me.nodename + '/aplinfo',
 		    params: {
 			storage: me.storage,
@@ -223,7 +223,7 @@ Ext.define('PVE.storage.Upload', {
 	var updateProgress = function(per, bytes) {
 	    var text = (per * 100).toFixed(2) + '%';
 	    if (bytes) {
-		text += " (" + PVE.Utils.format_size(bytes) + ')';
+		text += " (" + Proxmox.Utils.format_size(bytes) + ')';
 	    }
 	    pbar.updateProgress(per, text);
 	};
@@ -272,7 +272,7 @@ Ext.define('PVE.storage.Upload', {
 			var msg = gettext('Error') + " " + xhr.status.toString() + ": " + Ext.htmlEncode(xhr.statusText);
 			var result = Ext.decode(xhr.responseText);
 			result.message = msg;
-			var htmlStatus = PVE.Utils.extractRequestError(result, true);
+			var htmlStatus = Proxmox.Utils.extractRequestError(result, true);
 			Ext.Msg.alert(gettext('Error'), htmlStatus, function(btn) {
 			    me.close();
 			});
@@ -371,7 +371,7 @@ Ext.define('PVE.storage.ContentView', {
 	    me.statusStore.load();
 	};
 
-	PVE.Utils.monStoreErrors(me, store);
+	Proxmox.Utils.monStoreErrors(me, store);
 
 	var templateButton = Ext.create('Proxmox.button.Button',{
 	    itemId: 'tmpl-btn',
@@ -511,7 +511,7 @@ Ext.define('PVE.storage.ContentView', {
 		{
 		    header: gettext('Size'),
 		    width: 100,
-		    renderer: PVE.Utils.format_size,
+		    renderer: Proxmox.Utils.format_size,
 		    dataIndex: 'size'
 		}
 	    ],
diff --git a/www/manager6/storage/StatusView.js b/www/manager6/storage/StatusView.js
index a2ef3021..94e807a8 100644
--- a/www/manager6/storage/StatusView.js
+++ b/www/manager6/storage/StatusView.js
@@ -20,14 +20,14 @@ Ext.define('PVE.storage.StatusView', {
 	    title: gettext('Enabled'),
 	    printBar: false,
 	    textField: 'disabled',
-	    renderer: PVE.Utils.format_neg_boolean
+	    renderer: Proxmox.Utils.format_neg_boolean
 	},
 	{
 	    itemId: 'active',
 	    title: gettext('Active'),
 	    printBar: false,
 	    textField: 'active',
-	    renderer: PVE.Utils.format_boolean
+	    renderer: Proxmox.Utils.format_boolean
 	},
 	{
 	    itemId: 'content',
diff --git a/www/manager6/window/Backup.js b/www/manager6/window/Backup.js
index 36ffb143..b85544f5 100644
--- a/www/manager6/window/Backup.js
+++ b/www/manager6/window/Backup.js
@@ -52,7 +52,7 @@ Ext.define('PVE.window.Backup', {
 		    xtype: 'textfield',
 		    fieldLabel: gettext('Send email to'),
 		    name: 'mailto',
-		    emptyText: PVE.Utils.noneText
+		    emptyText: Proxmox.Utils.noneText
 		}
 	    ]
 	});
@@ -79,7 +79,7 @@ Ext.define('PVE.window.Backup', {
 		    params.compress = values.compress;
 		}
 
-		PVE.Utils.API2Request({
+		Proxmox.Utils.API2Request({
 		    url: '/nodes/' + me.nodename + '/vzdump',
 		    params: params,
 		    method: 'POST',
diff --git a/www/manager6/window/BackupConfig.js b/www/manager6/window/BackupConfig.js
index 8b0fd04f..cf0a93fa 100644
--- a/www/manager6/window/BackupConfig.js
+++ b/www/manager6/window/BackupConfig.js
@@ -31,7 +31,7 @@ Ext.define('PVE.window.BackupConfig', {
 
 	me.callParent();
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: "/nodes/" + nodename + "/vzdump/extractconfig",
 	    method: 'GET',
 	    params: {
diff --git a/www/manager6/window/BulkAction.js b/www/manager6/window/BulkAction.js
index f7885cda..41344e3f 100644
--- a/www/manager6/window/BulkAction.js
+++ b/www/manager6/window/BulkAction.js
@@ -18,7 +18,7 @@ Ext.define('PVE.window.BulkAction', {
 
     submit: function(params) {
 	var me = this;
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    params: params,
 	    url: '/nodes/' + me.nodename + '/' + "/" + me.action,
 	    waitMsgTarget: me,
diff --git a/www/manager6/window/Edit.js b/www/manager6/window/Edit.js
index b840dbaa..f8c0fed0 100644
--- a/www/manager6/window/Edit.js
+++ b/www/manager6/window/Edit.js
@@ -51,12 +51,12 @@ Ext.define('PVE.window.Edit', {
 
         form.getFields().each(function(field) {
             if (!field.up('inputpanel') && (!dirtyOnly || field.isDirty())) {
-                PVE.Utils.assemble_field_data(values, field.getSubmitData());
+                Proxmox.Utils.assemble_field_data(values, field.getSubmitData());
             }
         });
 
 	Ext.Array.each(me.query('inputpanel'), function(panel) {
-	    PVE.Utils.assemble_field_data(values, panel.getValues(dirtyOnly));
+	    Proxmox.Utils.assemble_field_data(values, panel.getValues(dirtyOnly));
 	});
 
         return values;
@@ -110,7 +110,7 @@ Ext.define('PVE.window.Edit', {
 	    values = undefined;
 	}
 
-	PVE.Utils.API2Request({
+	Proxmox.Utils.API2Request({
 	    url: url,
 	    waitMsgTarget: me,
 	    method: me.method || (me.backgroundDelay ? 'POST' : 'PUT'),
@@ -185,7 +185,7 @@ Ext.define('PVE.window.Edit', {
 
 	createWrapper(options.success);
 
-	PVE.Utils.API2Request(newopts);
+	Proxmox.Utils.API2Request(newopts);
     },
 
     initComponent : function() {
@@ -268,7 +268,7 @@ Ext.define('PVE.window.Edit', {
 	var twoColumn = items[0].column1 || items[0].column2;
 
 	if (me.subject && !me.title) {
-	    me.title = PVE.Utils.dialog_title(me.subject, me.isCreate, me.isAdd);
+	    me.title = Proxmox.Utils.dialog_title(me.subject, me.isCreate, me.isAdd);
 	}
 
 	if (me.isCreate) {
diff --git a/www/manager6/window/Migrate.js b/www/manager6/window/Migrate.js
index 3b7b6266..c4bcb922 100644
--- a/www/manager6/window/Migrate.js
+++ b/www/manager6/window/Migrate.js
@@ -31,7 +31,7 @@ Ext.define('PVE.window.Migrate', {
 			params[view.liveMode] = 1;
 		    }
 
-		    PVE.Utils.API2Request({
+		    Proxmox.Utils.API2Request({
 			params: params,
 			url: '/nodes/' + view.nodename + '/' + view.vmtype + '/' + view.vmid + '/migrate',
 			waitMsgTarget: view,
diff --git a/www/manager6/window/Restore.js b/www/manager6/window/Restore.js
index d32fae00..1c46a072 100644
--- a/www/manager6/window/Restore.js
+++ b/www/manager6/window/Restore.js
@@ -75,7 +75,7 @@ Ext.define('PVE.window.Restore', {
 	var form = me.formPanel.getForm();
 
 	var doRestore = function(url, params) {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		url: url,
 		params: params,
 		method: 'POST',
@@ -114,11 +114,11 @@ Ext.define('PVE.window.Restore', {
 		    params.ostemplate = me.volid;
 		    params.restore = 1;
 		    if (values.unprivileged) { params.unprivileged = 1; }
-		    msg = PVE.Utils.format_task_description('vzrestore', params.vmid);
+		    msg = Proxmox.Utils.format_task_description('vzrestore', params.vmid);
 		} else if (me.vmtype === 'qemu') {
 		    url = '/nodes/' + me.nodename + '/qemu';
 		    params.archive = me.volid;
-		    msg = PVE.Utils.format_task_description('qmrestore', params.vmid);
+		    msg = Proxmox.Utils.format_task_description('qmrestore', params.vmid);
 		} else {
 		    throw 'unknown VM type';
 		}
diff --git a/www/manager6/window/SafeDestroy.js b/www/manager6/window/SafeDestroy.js
index 451ab046..70654aef 100644
--- a/www/manager6/window/SafeDestroy.js
+++ b/www/manager6/window/SafeDestroy.js
@@ -57,7 +57,7 @@ Ext.define('PVE.window.SafeDestroy', {
            'button[reference=removeButton]': {
 		click: function() {
 		    var view = this.getView();
-		    PVE.Utils.API2Request({
+		    Proxmox.Utils.API2Request({
 			url: view.getUrl() + view.getParams(),
 			method: 'DELETE',
 			waitMsgTarget: view,
@@ -152,11 +152,11 @@ Ext.define('PVE.window.SafeDestroy', {
 	var msg;
 
 	if (item.type === 'VM') {
-	    msg = PVE.Utils.format_task_description('qmdestroy', item.id);
+	    msg = Proxmox.Utils.format_task_description('qmdestroy', item.id);
 	} else if (item.type === 'CT') {
-	    msg = PVE.Utils.format_task_description('vzdestroy', item.id);
+	    msg = Proxmox.Utils.format_task_description('vzdestroy', item.id);
 	} else if (item.type === 'CephPool') {
-	    msg = PVE.Utils.format_task_description('cephdestroypool', item.id);
+	    msg = Proxmox.Utils.format_task_description('cephdestroypool', item.id);
 	} else {
 	    throw "unknown item type specified";
 	}
diff --git a/www/manager6/window/Settings.js b/www/manager6/window/Settings.js
index 953e6604..cac31ccd 100644
--- a/www/manager6/window/Settings.js
+++ b/www/manager6/window/Settings.js
@@ -29,7 +29,7 @@ Ext.define('PVE.window.Settings', {
 		    var me = this;
 		    var sp = Ext.state.Manager.getProvider();
 
-		    var username = sp.get('login-username') || PVE.Utils.noneText;
+		    var username = sp.get('login-username') || Proxmox.Utils.noneText;
 		    me.lookupReference('savedUserName').setValue(username);
 		}
 	    },
@@ -57,7 +57,7 @@ Ext.define('PVE.window.Settings', {
 		    var usernamefield = me.lookupReference('savedUserName');
 		    var sp = Ext.state.Manager.getProvider();
 
-		    usernamefield.setValue(PVE.Utils.noneText);
+		    usernamefield.setValue(Proxmox.Utils.noneText);
 		    sp.clear('login-username');
 		}
 	    },
diff --git a/www/manager6/window/TaskViewer.js b/www/manager6/window/TaskViewer.js
index f7843d7a..2187168e 100644
--- a/www/manager6/window/TaskViewer.js
+++ b/www/manager6/window/TaskViewer.js
@@ -9,7 +9,7 @@ Ext.define('PVE.window.TaskProgress', {
 	    throw "no task specified";
 	}
 
-	var task = PVE.Utils.parse_task_upid(me.upid);
+	var task = Proxmox.Utils.parse_task_upid(me.upid);
 
 	var statstore = Ext.create('PVE.data.ObjectStore', {
             url: "/api2/json/nodes/" + task.node + "/tasks/" + me.upid + "/status",
@@ -47,7 +47,7 @@ Ext.define('PVE.window.TaskProgress', {
 	    }
 	});
 
-	var descr = PVE.Utils.format_task_description(task.type, task.id);
+	var descr = Proxmox.Utils.format_task_description(task.type, task.id);
 
 	Ext.apply(me, {
 	    title: "Task: " + descr,
@@ -93,7 +93,7 @@ Ext.define('PVE.window.TaskViewer', {
 	    throw "no task specified";
 	}
 
-	var task = PVE.Utils.parse_task_upid(me.upid);
+	var task = Proxmox.Utils.parse_task_upid(me.upid);
 
 	var statgrid;
 
@@ -133,7 +133,7 @@ Ext.define('PVE.window.TaskViewer', {
 	    starttime: {
 		header: gettext('Start Time'),
 		required: true, 
-		renderer: PVE.Utils.render_timestamp
+		renderer: Proxmox.Utils.render_timestamp
 	    },
 	    upid: {
 		header: gettext('Unique task ID')
@@ -149,7 +149,7 @@ Ext.define('PVE.window.TaskViewer', {
 	me.on('destroy', statstore.stopUpdate);	
 
 	var stop_task = function() {
-	    PVE.Utils.API2Request({
+	    Proxmox.Utils.API2Request({
 		url: "/nodes/" + task.node + "/tasks/" + me.upid,
 		waitMsgTarget: me,
 		method: 'DELETE',
diff --git a/www/manager6/window/Wizard.js b/www/manager6/window/Wizard.js
index 6b7eeb3e..1903a099 100644
--- a/www/manager6/window/Wizard.js
+++ b/www/manager6/window/Wizard.js
@@ -12,12 +12,12 @@ Ext.define('PVE.window.Wizard', {
 
         form.getFields().each(function(field) {
             if (!field.up('inputpanel') && (!dirtyOnly || field.isDirty())) {
-                PVE.Utils.assemble_field_data(values, field.getSubmitData());
+                Proxmox.Utils.assemble_field_data(values, field.getSubmitData());
             }
         });
 
 	Ext.Array.each(me.query('inputpanel'), function(panel) {
-	    PVE.Utils.assemble_field_data(values, panel.getValues(dirtyOnly));
+	    Proxmox.Utils.assemble_field_data(values, panel.getValues(dirtyOnly));
 	});
 
         return values;
@@ -171,7 +171,7 @@ Ext.define('PVE.window.Wizard', {
 	};
 
 	if (me.subject && !me.title) {
-	    me.title = PVE.Utils.dialog_title(me.subject, true, false);
+	    me.title = Proxmox.Utils.dialog_title(me.subject, true, false);
 	}
 
 	Ext.apply(me, {
diff --git a/www/mobile/Datacenter.js b/www/mobile/Datacenter.js
index 21470f0a..7c27b5d8 100644
--- a/www/mobile/Datacenter.js
+++ b/www/mobile/Datacenter.js
@@ -59,7 +59,7 @@ Ext.define('PVE.Datacenter', {
 		    } 
 		},
 		itemTpl: '{name}' +
-		    '<br><small>Online: {[PVE.Utils.format_boolean(values.online)]}</small>' +
+		    '<br><small>Online: {[Proxmox.Utils.format_boolean(values.online)]}</small>' +
 		    '<br><small>Support: {[PVE.Utils.render_support_level(values.level)]}</small>'
 	    }
 	]	
@@ -100,7 +100,7 @@ Ext.define('PVE.Datacenter', {
 			}
 		    } else if (el.type === "cluster") {
 			me.summary.nodes = el.nodes;
-			me.summary.quorate = PVE.Utils.format_boolean(el.quorate);
+			me.summary.quorate = Proxmox.Utils.format_boolean(el.quorate);
 			me.summary.cluster_name = el.name;
 		    }
 		});
diff --git a/www/mobile/NodeSummary.js b/www/mobile/NodeSummary.js
index 4405b743..4059217b 100644
--- a/www/mobile/NodeSummary.js
+++ b/www/mobile/NodeSummary.js
@@ -11,7 +11,7 @@ Ext.define('PVE.NodeInfo', {
 	    '<tr><td>Version:</td><td>{pveversion}</td></tr>',
 	    '<tr><td>Memory:</td><td>{[this.meminfo(values)]}</td></tr>',
 	    '<tr><td>CPU:</td><td>{[this.cpuinfo(values)]}</td></tr>',
-	    '<tr><td>Uptime:</td><td>{[PVE.Utils.format_duration_long(values.uptime)]}</td></tr>',
+	    '<tr><td>Uptime:</td><td>{[Proxmox.Utils.format_duration_long(values.uptime)]}</td></tr>',
 	    '</table>',
 	    {
 		meminfo: function(values) {
@@ -19,7 +19,7 @@ Ext.define('PVE.NodeInfo', {
 		    if (!d) {
 			return '-';
 		    }
-		    return PVE.Utils.format_size(d.used || 0) + " of " + PVE.Utils.format_size(d.total);
+		    return Proxmox.Utils.format_size(d.used || 0) + " of " + Proxmox.Utils.format_size(d.total);
 		},
 		cpuinfo: function(values) {
 		    if (!values.cpuinfo) {
@@ -84,7 +84,7 @@ Ext.define('PVE.NodeSummary', {
 			    if (!values.uptime) {
 				return '-';
 			    }
-			    return PVE.Utils.format_size(values.mem);
+			    return Proxmox.Utils.format_size(values.mem);
 			},
 			cpuinfo: function(values) {
 			    if (!values.uptime) {
diff --git a/www/mobile/TaskList.js b/www/mobile/TaskList.js
index 3d0f7112..447fbce1 100644
--- a/www/mobile/TaskList.js
+++ b/www/mobile/TaskList.js
@@ -26,7 +26,7 @@ Ext.define('PVE.TaskListBase', {
 		    '<small>node: {node}<br /> Status: {[this.status(values)]}</small>',
 		    {
 			desc: function(values) {
-			    return PVE.Utils.format_task_description(values.type, values.id);
+			    return Proxmox.Utils.format_task_description(values.type, values.id);
 			},
 			status: function(values) {
 			    return Ext.String.ellipsis(values.status, 160);
diff --git a/www/mobile/TaskViewer.js b/www/mobile/TaskViewer.js
index a66f7085..72412780 100644
--- a/www/mobile/TaskViewer.js
+++ b/www/mobile/TaskViewer.js
@@ -92,7 +92,7 @@ Ext.define('PVE.TaskViewer', {
 		kv.push({ key: gettext('Taskstatus'), value: d.status });
 		kv.push({ key: gettext('Node'), value: d.node });
 		kv.push({ key: gettext('User'), value: d.user });
-		kv.push({ key: gettext('Starttime'), value: PVE.Utils.render_timestamp(d.starttime) });
+		kv.push({ key: gettext('Starttime'), value: Proxmox.Utils.render_timestamp(d.starttime) });
 
 		me.setMasked(false);
 		statusCmp.setData(kv);
@@ -117,7 +117,7 @@ Ext.define('PVE.TaskViewer', {
        me.nodename = match[1];
        me.upid = match[2];
 
-       me.taskInfo = PVE.Utils.parse_task_upid(me.upid);
+       me.taskInfo = Proxmox.Utils.parse_task_upid(me.upid);
 
        me.down('titlebar').setTitle(me.taskInfo.desc);
 
diff --git a/www/mobile/Toolkit.js b/www/mobile/Toolkit.js
index 567541d9..fb269010 100644
--- a/www/mobile/Toolkit.js
+++ b/www/mobile/Toolkit.js
@@ -1,6 +1,6 @@
 // Sencha Touch related things
 
-PVE.Utils.toolkit = 'touch',
+Proxmox.Utils.toolkit = 'touch',
 
 Ext.Ajax.setDisableCaching(false);
 
diff --git a/www/mobile/VMSummaryBase.js b/www/mobile/VMSummaryBase.js
index 68c16261..7210d4d9 100644
--- a/www/mobile/VMSummaryBase.js
+++ b/www/mobile/VMSummaryBase.js
@@ -42,7 +42,7 @@ Ext.define('PVE.VMSummaryBase', {
 		    '<tr><td>Status:</td><td>{[this.status(values)]}</td></tr>',
 		    '<tr><td>Memory:</td><td>{[this.meminfo(values)]}</td></tr>',
 		    '<tr><td>CPU:</td><td>{[this.cpuinfo(values)]}</td></tr>',
-		    '<tr><td>Uptime:</td><td>{[PVE.Utils.format_duration_long' +
+		    '<tr><td>Uptime:</td><td>{[Proxmox.Utils.format_duration_long' +
 			'(values.uptime)]}</td></tr>',
 		    '</table>',
 		    {
@@ -50,8 +50,8 @@ Ext.define('PVE.VMSummaryBase', {
 			    if (!Ext.isDefined(values.mem)) {
 				return '-';
 			    }
-			    return PVE.Utils.format_size(values.mem || 0) + " of " +
-				PVE.Utils.format_size(values.maxmem);
+			    return Proxmox.Utils.format_size(values.mem || 0) + " of " +
+				Proxmox.Utils.format_size(values.maxmem);
 			},
 			cpuinfo: function(values) {
 			    if (!Ext.isDefined(values.cpu)) {
diff --git a/www/mobile/Workspace.js b/www/mobile/Workspace.js
index d8e60e3e..f608ced6 100644
--- a/www/mobile/Workspace.js
+++ b/www/mobile/Workspace.js
@@ -118,7 +118,7 @@ Ext.define('PVE.Workspace', { statics: {
     },
 
     showLogin: function() {
-	PVE.Utils.authClear();
+	Proxmox.Utils.authClear();
 	PVE.UserName = null;
 	PVE.Workspace.loginData = null;
 
@@ -147,7 +147,7 @@ Ext.define('PVE.Workspace', { statics: {
 
 	var comp;
 
-	if (!PVE.Utils.authOK()) {
+	if (!Proxmox.Utils.authOK()) {
 	    comp = Ext.create('PVE.Login', {});
 	} else {
 	    Ext.Array.each(PVE.Workspace.pages, function(p, index) {
-- 
2.11.0





More information about the pve-devel mailing list