[pve-devel] [PATCH pve-manager] update build infrastucture to be able to develop with Ext6

Emmanuel Kasper e.kasper at proxmox.com
Tue Nov 10 14:36:09 CET 2015


---
 PVE/ExtJSIndex6.pm      | 263 ++++++++++++++++++++++++++++++++++++++++++++++++
 PVE/Makefile            |   2 +-
 PVE/Service/pveproxy.pm |  22 ++--
 defines.mk              |   2 +-
 www/Makefile            |   2 +-
 www/ext6/Makefile       |  40 ++++++++
 www/manager5/Readme.md  |  21 ++--
 7 files changed, 327 insertions(+), 25 deletions(-)
 create mode 100644 PVE/ExtJSIndex6.pm
 create mode 100644 www/ext6/Makefile

diff --git a/PVE/ExtJSIndex6.pm b/PVE/ExtJSIndex6.pm
new file mode 100644
index 0000000..f7449c8
--- /dev/null
+++ b/PVE/ExtJSIndex6.pm
@@ -0,0 +1,263 @@
+package PVE::ExtJSIndex6;
+
+use strict;
+use warnings;
+
+sub get_index {
+    my ($lang, $username, $csrftoken, $console) = @_;
+
+    my $page = <<_EOD;
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Proxmox Virtual Environment</title>
+    <link rel="stylesheet" type="text/css" href="/pve2/ext6/theme-neptune/resources/theme-neptune-all.css" />
+    <link rel="stylesheet" type="text/css" href="/pve2/css/ext-pve.css" />
+_EOD
+
+    my $langfile = "/usr/share/pve-manager/locale/pve-lang-${lang}.js";
+    if (-f $langfile) {
+	$page .= "<script type='text/javascript' src='/pve2/locale/pve-lang-${lang}.js'></script>";
+    } else {
+	$page .= '<script type="text/javascript">function gettext(buf) { return buf; }</script>';
+    }
+
+    $page .= <<_EOD;
+    <script type="text/javascript" src="/pve2/ext6/ext-all-debug.js"></script>
+
+    <script type="text/javascript" src="/pve2/manager6/Utils.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/Toolkit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/Parser.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/StateProvider.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/button/Button.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/button/ConsoleButton.js"></script>
+<!--
+    <script type="text/javascript" src="/pve2/manager6/qemu/SendKeyMenu.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/CmdMenu.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/TemplateMenu.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/lxc/CmdMenu.js"></script>
+-->
+    <script type="text/javascript" src="/pve2/manager6/VNCConsole.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/data/TimezoneStore.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/data/reader/JsonObject.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/data/PVEProxy.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/data/UpdateQueue.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/data/UpdateStore.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/data/DiffStore.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/data/ObjectStore.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/data/ResourceStore.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/VLanField.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/Checkbox.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/TextField.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/RRDTypeSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/ComboGrid.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/KVComboBox.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/Boolean.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/CompressionSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/PoolSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/GroupSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/UserSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/RoleSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/VMIDSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/MemoryField.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/NetworkCardSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/DiskFormatSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/BusTypeSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/ControllerSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/EmailNotificationSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/RealmComboBox.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/BondModeSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/ViewSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/NodeSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/FileSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/StorageSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/BridgeSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/SecurityGroupSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/IPRefSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/IPProtocolSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/CPUModelSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/VNCKeyboardSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/LanguageSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/DisplaySelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/CacheTypeSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/SnapshotSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/ContentTypeSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/HotplugFeatureSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/iScsiProviderSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/DayOfWeekSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/BackupModeSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/ScsiHwSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/form/FirewallPolicySelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/Tasks.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/Log.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/panel/StatusPanel.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/panel/RRDView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/panel/InputPanel.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/window/Edit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/window/LoginWindow.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/window/TaskViewer.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/window/Wizard.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/window/NotesEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/window/Backup.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/window/Restore.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/panel/NotesView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/grid/CheckColumn.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/grid/SelectFeature.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/grid/ObjectGrid.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/grid/PendingObjectGrid.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/grid/ResourceGrid.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/grid/PoolMembers.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/grid/FirewallRules.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/grid/FirewallAliases.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/grid/FirewallOptions.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/tree/ResourceTree.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/panel/IPSet.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/panel/ConfigPanel.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/panel/SubConfigPanel.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/grid/BackupView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/panel/LogView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/panel/Firewall.js"></script>
+<!--
+    <script type="text/javascript" src="/pve2/manager6/ceph/Pool.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ceph/OSD.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ceph/Disks.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ceph/Monitor.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ceph/Crush.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ceph/Status.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ceph/Config.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/DNSEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/DNSView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/TimeView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/TimeEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/StatusView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/Summary.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/ServiceView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/NetworkEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/NetworkView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/Tasks.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/Subscription.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/APT.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/node/Config.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/StatusView.js"></script>
+-->
+    <script type="text/javascript" src="/pve2/manager6/window/Migrate.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/window/MigrateAll.js"></script>
+<!--
+    <script type="text/javascript" src="/pve2/manager6/qemu/Monitor.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/Summary.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/OSTypeEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/ProcessorEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/BootOrderEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/MemoryEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/NetworkEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/Smbios1Edit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/CDEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/HDEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/HDResize.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/HDMove.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/HDThrottle.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/CPUOptions.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/DisplayEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/KeyboardEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/HardwareView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/StartupEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/ScsiHwEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/Options.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/Snapshot.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/Clone.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/SnapshotTree.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/Config.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/qemu/CreateWizard.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/lxc/StatusView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/lxc/Summary.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/lxc/Network.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/lxc/Resources.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/lxc/Options.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/lxc/DNS.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/lxc/Config.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/lxc/CreateWizard.js"></script>
+-->
+    <script type="text/javascript" src="/pve2/manager6/pool/StatusView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/pool/Summary.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/pool/Config.js"></script>
+<!--
+    <script type="text/javascript" src="/pve2/manager6/storage/ContentView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/StatusView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/Summary.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/Browser.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/DirEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/NFSEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/GlusterFsEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/IScsiEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/LVMEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/RBDEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/SheepdogEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/ZFSEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/storage/ZFSPoolEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ha/StatusView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ha/GroupSelector.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ha/ResourceEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ha/Resources.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ha/GroupEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ha/Groups.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ha/Fencing.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/ha/Config.js"></script>
+-->
+    <script type="text/javascript" src="/pve2/manager6/dc/Summary.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/OptionView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/StorageView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/UserEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/UserView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/PoolView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/PoolEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/GroupView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/GroupEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/RoleView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/ACLView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/AuthView.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/AuthEdit.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/Backup.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/Support.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/SecurityGroups.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/dc/Config.js"></script>
+    <script type="text/javascript" src="/pve2/manager6/Workspace.js"></script>
+_EOD
+
+    my $jssrc = <<_EOJS;
+if (typeof(PVE) === 'undefined') PVE = {};
+PVE.UserName = '$username'
+PVE.CSRFPreventionToken = '$csrftoken';
+_EOJS
+
+    my $workspace = defined($console) ?
+	"PVE.ConsoleWorkspace" : "PVE.StdWorkspace";
+
+   $jssrc .= <<_EOJS;
+// we need this (the java applet ignores the zindex)
+Ext.useShims = true;
+Ext.History.fieldid = 'x-history-field';
+Ext.onReady(function() {
+	console.log(Ext.getVersion().version);
+	Ext.create('$workspace');
+});
+_EOJS
+
+    $page .= <<_EOD;
+    <script type="text/javascript">$jssrc</script>
+    
+  </head>
+  <body>
+    <!-- Fields required for history management -->
+    <form id="history-form" class="x-hidden">
+    <input type="hidden" id="x-history-field"/>
+    </form>
+  </body>
+</html>
+_EOD
+   
+    return $page;
+
+}
+
+1;
diff --git a/PVE/Makefile b/PVE/Makefile
index 5472580..4a85901 100644
--- a/PVE/Makefile
+++ b/PVE/Makefile
@@ -7,7 +7,7 @@ PERLSOURCE = 			\
 	API2Tools.pm		\
 	API2Client.pm		\
 	ExtJSIndex.pm		\
-	ExtJSIndex5.pm		\
+	ExtJSIndex6.pm		\
 	TouchIndex.pm		\
 	NoVncIndex.pm		\
 	HTTPServer.pm		\
diff --git a/PVE/Service/pveproxy.pm b/PVE/Service/pveproxy.pm
index 16edad1..5be7488 100755
--- a/PVE/Service/pveproxy.pm
+++ b/PVE/Service/pveproxy.pm
@@ -18,7 +18,7 @@ use PVE::API2::Formatter::HTML;
 use PVE::HTTPServer;
 
 use PVE::ExtJSIndex;
-use PVE::ExtJSIndex5;
+use PVE::ExtJSIndex6;
 use PVE::NoVncIndex;
 use PVE::TouchIndex;
 
@@ -40,7 +40,7 @@ my %daemon_options = (
 
 my $daemon = __PACKAGE__->new('pveproxy', $cmdline, %daemon_options);
 
-my $ext5_dir_exists;
+my $ext6_dir_exists;
 
 sub add_dirs {
     my ($result_hash, $alias, $subdir) = @_;
@@ -72,7 +72,7 @@ sub init {
     my $family = PVE::Tools::get_host_address_family($self->{nodename});
     my $socket = $self->create_reusable_socket(8006, undef, $family);
 
-    $ext5_dir_exists = (-d '/usr/share/pve-manager/ext5');
+    $ext6_dir_exists = (-d '/usr/share/pve-manager/ext6');
 
     my $dirs = {};
 
@@ -80,9 +80,9 @@ sub init {
     add_dirs($dirs, '/pve2/touch/', '/usr/share/pve-manager/touch/');
     add_dirs($dirs, '/pve2/ext4/', '/usr/share/pve-manager/ext4/');
 
-    if ($ext5_dir_exists) { # only add ext5 dirs if it was build
-	add_dirs($dirs, '/pve2/ext5/', '/usr/share/pve-manager/ext5/');
-	add_dirs($dirs, '/pve2/manager5/', '/usr/share/pve-manager/manager5/');
+    if ($ext6_dir_exists) { # only add ext6 dirs if they exist
+	add_dirs($dirs, '/pve2/ext6/', '/usr/share/pve-manager/ext6/');
+	add_dirs($dirs, '/pve2/manager6/', '/usr/share/pve-manager/manager6/');
     }
 
     add_dirs($dirs, '/pve2/images/' => '/usr/share/pve-manager/images/');
@@ -191,9 +191,9 @@ sub get_index {
 	$mobile = $args->{mobile} ? 1 : 0;
     }
 
-    my $ext5;
-    if (defined($args->{ext5})) {
-	$ext5 = $args->{ext5} ? 1 : 0;
+    my $ext6;
+    if (defined($args->{ext6})) {
+	$ext6 = $args->{ext6} ? 1 : 0;
     }
 
     my $page;
@@ -202,8 +202,8 @@ sub get_index {
 	$page = PVE::NoVncIndex::get_index($lang, $username, $token, $args->{console});
     } elsif ($mobile) {
 	$page = PVE::TouchIndex::get_index($lang, $username, $token, $args->{console});
-    } elsif ($ext5 && $ext5_dir_exists) {
-	$page = PVE::ExtJSIndex5::get_index($lang, $username, $token, $args->{console});
+    } elsif ($ext6 && $ext6_dir_exists) {
+	$page = PVE::ExtJSIndex6::get_index($lang, $username, $token, $args->{console});
     } else {
 	$page = PVE::ExtJSIndex::get_index($lang, $username, $token, $args->{console});
     }
diff --git a/defines.mk b/defines.mk
index bea4155..c7c75fa 100644
--- a/defines.mk
+++ b/defines.mk
@@ -20,7 +20,7 @@ WWWROOTDIR=${WWWBASEDIR}/root
 WWWLOCALEDIR=${WWWBASEDIR}/locale
 WWWIMAGEDIR=${WWWBASEDIR}/images
 WWWEXT4DIR=${WWWBASEDIR}/ext4
-WWWEXT5DIR=${WWWBASEDIR}/ext5
+WWWEXT6DIR=${WWWBASEDIR}/ext6
 WWWTOUCHDIR=${WWWBASEDIR}/touch
 WWWCSSDIR=${WWWBASEDIR}/css
 WWWJSDIR=${WWWBASEDIR}/js
diff --git a/www/Makefile b/www/Makefile
index 6f0c8d4..1f265a8 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -1,4 +1,4 @@
-# Note: please add ext5 for extJS 5 development
+# Note: please add ext6 for extJS 6 development
 SUBDIRS = images ext4 css manager bootstrap touch mobile
 
 all: ${SUBDIRS}
diff --git a/www/ext6/Makefile b/www/ext6/Makefile
new file mode 100644
index 0000000..7c09898
--- /dev/null
+++ b/www/ext6/Makefile
@@ -0,0 +1,40 @@
+include ../../defines.mk
+
+EXTJSDIR=ext-6.0.0
+EXTJSSRC=${EXTJSDIR}-gpl.zip
+
+EXTDATA=	\
+	extjs/build/ext-all.js	\
+	extjs/build/ext-all-debug.js
+
+EXT_THEME=	\
+	extjs/build/classic/theme-classic	\
+	extjs/build/classic/theme-neptune	\
+
+${EXTDATA}: ${EXTJSSRC}
+	rm -rf ${EXTJSDIR} extjs
+	unzip -x ${EXTJSSRC}
+	mv ${EXTJSDIR} extjs
+	touch ${EXTDATA}
+
+${EXTJSSRC}:
+	wget http://cdn.sencha.com/ext/gpl/ext-6.0.0-gpl.zip
+
+all: ${EXTDATA}
+
+.PHONY: install
+install: ${EXTDATA}
+	install -d ${WWWEXT6DIR}
+	install -m 0644 ${EXTDATA} ${WWWEXT6DIR}
+	install -d ${WWWEXT6DIR}
+	cp -a extjs/build/classic/locale ${WWWEXT6DIR}
+	cp -a ${EXT_THEME} ${WWWEXT6DIR}
+	chown -R www-data:www-data ${WWWEXT6DIR}
+
+.PHONY: distclean
+distclean: clean
+
+.PHONY: clean
+clean:
+	rm -rf *~ ${EXTJSDIR} extjs
+
diff --git a/www/manager5/Readme.md b/www/manager5/Readme.md
index 87e00c3..1c1ccf9 100644
--- a/www/manager5/Readme.md
+++ b/www/manager5/Readme.md
@@ -1,22 +1,21 @@
-pveproxy with ExtJS 5 developpement mini howto
+pveproxy with ExtJS 6 developpement mini howto
 ==============================================
 
-unpack the ExtJS 5 sources, and copy them to /usr/share/pve-manager/ext5
+unpack the ExtJS 6 sources, and copy them to /usr/share/pve-manager/ext6
 
-    cd www/ext5/
+    cd www/ext6/
     make install
 
-symlink the to our ext5 compatible javascript code
+symlink the ext6 dir in pve-manager to the manager5 directory
 
     cd /usr/share/pve-manager
-    ln -s PATH_TO_YOUR_GIT_REPO/www/manager5
+    ln -s PATH_TO_YOUR_GIT_REPO/www/manager5 #this is not a typo
 
-access the PVE proxy with ExtJS 5
+access the PVE proxy with ExtJS 6
 
-    https://localhost:8006/?ext5=1
+    https://localhost:8006/?ext6=1
 
 
-With the extra parameter **ext5=1**, pve-proxy will call the function **PVE::ExtJSIndex5::get_index()**
-which returns a HTML page, with all javascript files included.
-Provided you included the javascript in **PVE/ExtJSIndex5.pm**, a simple browser refresh is then enough 
-to see your changes.
+With the extra parameter **ext6=1**, pve-proxy will call the function **PVE::ExtJSIndex6::get_index()**
+which returns a HTML page, with all javascript symlinked from your git repository.
+Provided you included the javascript files in **PVE/ExtJSIndex5.pm**, after editing a file in the git repository, a simple refresh is enough to see your changes in the browser.
-- 
2.1.4





More information about the pve-devel mailing list