also check for git updates

This commit is contained in:
j 2014-09-01 14:01:41 +02:00
parent b87eee40d0
commit f5bb5ee877
5 changed files with 96 additions and 41 deletions

View file

@ -136,6 +136,17 @@ def getVersion(data):
'current': settings.MINOR_VERSION, 'current': settings.MINOR_VERSION,
'upgrade': False, 'upgrade': False,
} }
if settings.MINOR_VERSION == 'git':
cmd = ['git', 'rev-parse', '@']
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, close_fds=True)
stdout, stderr = p.communicate()
current = stdout.strip()
cmd = ['git', 'ls-remote', 'origin', '-h', 'refs/heads/master']
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, close_fds=True)
stdout, stderr = p.communicate()
new = stdout.strip()[:40]
response['update'] = current != new
else:
if not os.path.exists(os.path.join(settings.updates_path, 'release.json')): if not os.path.exists(os.path.join(settings.updates_path, 'release.json')):
return response return response
if not os.path.exists(os.path.join(settings.config_path, 'release.json')): if not os.path.exists(os.path.join(settings.config_path, 'release.json')):

View file

@ -36,15 +36,17 @@ oml.ui.appDialog = function() {
.appendTo($logo); .appendTo($logo);
if (id == 'update') { if (id == 'update') {
$content.html('<h1><b>' + title + '</b></h1>'); $content.html('<h1><b>' + title + '</b></h1>');
oml.api.getVersion(function(response) { var $update = Ox.Element()
if (response.data.update) {
Ox.Element()
.css({ .css({
paddingTop: '4px', paddingTop: '4px',
paddingBottom: '16px' paddingBottom: '16px'
}) }).appendTo($content);
.html('A new version of Open Media Library is available') oml.api.getVersion(function(response) {
.appendTo($content); if (response.data.update) {
if (response.data.current == 'git') {
$update.html('A new version of Open Media Library is available in git.<br>To update run: <code>./ctl update</code>');
} else {
$update.html('A new version of Open Media Library is available');
Ox.Button({ Ox.Button({
id: 'update', id: 'update',
title: Ox._('Install Now') title: Ox._('Install Now')
@ -61,14 +63,9 @@ oml.ui.appDialog = function() {
}); });
} }
}).appendTo($content); }).appendTo($content);
} else if (response.data.current == 'git') { }
Ox.Element()
.html('To update a development version, run ./ctl update')
.appendTo($content);
} else { } else {
Ox.Element() $update.html('No updates available')
.html('No updates available')
.appendTo($content);
} }
}); });
} else { } else {

View file

@ -10,6 +10,7 @@ oml.ui.mainMenu = function() {
that = Ox.MainMenu({ that = Ox.MainMenu({
extras: [ extras: [
oml.$ui.connectionButton = oml.ui.connectionButton(), oml.$ui.connectionButton = oml.ui.connectionButton(),
oml.$ui.updateButton = oml.ui.updateButton(),
oml.$ui.notificationsButton = oml.ui.notificationsButton(), oml.$ui.notificationsButton = oml.ui.notificationsButton(),
oml.$ui.loadingIcon = oml.ui.loadingIcon() oml.$ui.loadingIcon = oml.ui.loadingIcon()
], ],

45
static/js/updateBotton.js Normal file
View file

@ -0,0 +1,45 @@
'use strict';
oml.ui.updateButton = function() {
var that = Ox.Element({
tooltip: Ox._('Updates Available')
})
.css({
marginRight: '3px'
}).hide();
function check() {
oml.api.getVersion(function(response) {
if (response.data.update) {
that.show();
} else {
that.hide();
}
});
}
check();
setTimeout(check, 86400000);
Ox.Button({
style: 'symbol',
title: 'upload',
type: 'image'
})
.css({
float: 'left',
borderRadius: 0
})
.bindEvent({
click: function() {
oml.UI.set({
'page': 'app',
'part.app': 'update'
})
}
})
.appendTo(that);
return that;
};

View file

@ -59,6 +59,7 @@
"statusIcon.js", "statusIcon.js",
"statusbar.js", "statusbar.js",
"transfersDialog.js", "transfersDialog.js",
"updateBotton.js",
"userButton.js", "userButton.js",
"usersDialog.js", "usersDialog.js",
"utils.js", "utils.js",