start the GUI
This commit is contained in:
parent
826bb98286
commit
5c7a1b15c8
1
Makefile
1
Makefile
|
@ -20,6 +20,7 @@ deb ${DEB}:
|
|||
rm -rf build
|
||||
# build here to cache results
|
||||
cargo build --release
|
||||
make -C www
|
||||
rsync -a debian Cargo.lock Cargo.toml src www target build
|
||||
cd build; dpkg-buildpackage -b -us -uc
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
target/release/api-test-server /usr/sbin
|
||||
www/images/logo-128.png /usr/share/javascript/proxmox-backup-server/images/
|
||||
www/images/proxmox_logo.png /usr/share/javascript/proxmox-backup-server/images/
|
||||
www/proxmox-backup-gui.js /usr/share/javascript/proxmox-backup-server/js/
|
|
@ -239,7 +239,7 @@ fn get_index() -> BoxFut {
|
|||
<script type="text/javascript">
|
||||
Ext.History.fieldid = 'x-history-field';
|
||||
</script>
|
||||
<script type="text/javascript" src="/js/pbsmanagerlib.js"></script>
|
||||
<script type="text/javascript" src="/js/proxmox-backup-gui.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Fields required for history management -->
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
/*global Proxmox*/
|
||||
Ext.define('PBS.Application', {
|
||||
extend: 'Ext.app.Application',
|
||||
|
||||
name: 'PBS',
|
||||
appProperty: 'app',
|
||||
|
||||
stores: [
|
||||
// 'NavigationStore'
|
||||
],
|
||||
|
||||
layout: 'fit',
|
||||
|
||||
realignWindows: function() {
|
||||
var modalwindows = Ext.ComponentQuery.query('window[modal]');
|
||||
Ext.Array.forEach(modalwindows, function(item) {
|
||||
item.center();
|
||||
});
|
||||
},
|
||||
|
||||
logout: function() {
|
||||
var me = this;
|
||||
//Proxmox.Utils.authClear();
|
||||
//me.changeView('loginview', true);
|
||||
},
|
||||
|
||||
changeView: function(view, skipCheck) {
|
||||
var me = this;
|
||||
//?
|
||||
},
|
||||
|
||||
launch: function() {
|
||||
var me = this;
|
||||
Ext.on('resize', me.realignWindows);
|
||||
|
||||
var provider = new Ext.state.LocalStorageProvider({ prefix: 'ext-pbs-' });
|
||||
Ext.state.Manager.setProvider(provider);
|
||||
|
||||
// fixme: show login window if not loggedin
|
||||
|
||||
me.currentView = Ext.create({
|
||||
xtype: 'mainview'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Ext.application('PBS.Application');
|
|
@ -0,0 +1,14 @@
|
|||
Ext.define('PBS.image.Logo', {
|
||||
extend: 'Ext.Img',
|
||||
xtype: 'proxmoxlogo',
|
||||
|
||||
height: 30,
|
||||
width: 172,
|
||||
src: '/images/proxmox_logo.png',
|
||||
alt: 'Proxmox',
|
||||
autoEl: {
|
||||
tag: 'a',
|
||||
href: 'https://www.proxmox.com',
|
||||
target: '_blank'
|
||||
}
|
||||
});
|
|
@ -0,0 +1,100 @@
|
|||
Ext.define('PBS.MainView', {
|
||||
extend: 'Ext.container.Container',
|
||||
xtype: 'mainview',
|
||||
|
||||
title: 'Proxmox Backup Server',
|
||||
|
||||
controller: {
|
||||
xclass: 'Ext.app.ViewController',
|
||||
routes: {
|
||||
':path:subpath': {
|
||||
action: 'changePath',
|
||||
before: 'beforeChangePath',
|
||||
conditions : {
|
||||
':path' : '(?:([%a-zA-Z0-9\\-\\_\\s,]+))',
|
||||
':subpath' : '(?:(?::)([%a-zA-Z0-9\\-\\_\\s,]+))?'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
beforeChangePath: function(path, subpath, action) {
|
||||
var me = this;
|
||||
|
||||
action.resume();
|
||||
},
|
||||
|
||||
changePath: function(path,subpath) {
|
||||
var me = this;
|
||||
var contentpanel = me.lookupReference('contentpanel');
|
||||
var lastpanel = contentpanel.getLayout().getActiveItem();
|
||||
|
||||
},
|
||||
|
||||
init: function(view) {
|
||||
var me = this;
|
||||
console.log("init");
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
plugins: 'viewport',
|
||||
|
||||
layout: { type: 'border' },
|
||||
|
||||
items: [
|
||||
{
|
||||
region: 'north',
|
||||
xtype: 'container',
|
||||
layout: {
|
||||
type: 'hbox',
|
||||
align: 'middle'
|
||||
},
|
||||
margin: '2 5 2 5',
|
||||
height: 38,
|
||||
items: [
|
||||
{
|
||||
xtype: 'proxmoxlogo'
|
||||
},
|
||||
{
|
||||
//xtype: 'versioninfo'
|
||||
html: "version"
|
||||
},
|
||||
{
|
||||
flex: 1
|
||||
},
|
||||
{
|
||||
baseCls: 'x-plain',
|
||||
reference: 'usernameinfo',
|
||||
padding: '0 5',
|
||||
tpl: Ext.String.format(gettext("You are logged in as {0}"), "'{username}'")
|
||||
},
|
||||
{
|
||||
reference: 'logoutButton',
|
||||
xtype: 'button',
|
||||
iconCls: 'fa fa-sign-out',
|
||||
text: gettext('Logout')
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
xtype: 'panel',
|
||||
scrollable: 'y',
|
||||
border: false,
|
||||
region: 'west',
|
||||
layout: {
|
||||
type: 'vbox',
|
||||
align: 'stretch'
|
||||
},
|
||||
items: [{ html: "test" }]
|
||||
},
|
||||
{
|
||||
xtype: 'panel',
|
||||
layout: { type: 'card' },
|
||||
region: 'center',
|
||||
border: false,
|
||||
reference: 'contentpanel'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
JSSRC= \
|
||||
Logo.js \
|
||||
Application.js \
|
||||
MainView.js
|
||||
|
||||
all: proxmox-backup-gui.js
|
||||
|
||||
proxmox-backup-gui.js: ${JSSRC}
|
||||
cat ${JSSRC} >$@.tmp
|
||||
mv $@.tmp $@
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
find . -name '*~' -exec rm {} ';'
|
||||
rm -r proxmox-backup-gui.js
|
||||
|
Loading…
Reference in New Issue