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,17 +136,28 @@ def getVersion(data):
'current': settings.MINOR_VERSION,
'upgrade': False,
}
if not os.path.exists(os.path.join(settings.updates_path, 'release.json')):
return response
if not os.path.exists(os.path.join(settings.config_path, 'release.json')):
return response
with open(os.path.join(settings.updates_path, 'release.json')) as fd:
release = json.load(fd)
current = settings.release['modules']['openmedialibrary']['version']
response['current'] = current
new = release['modules']['openmedialibrary']['version']
response['new'] = new
response['update'] = current < new
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')):
return response
if not os.path.exists(os.path.join(settings.config_path, 'release.json')):
return response
with open(os.path.join(settings.updates_path, 'release.json')) as fd:
release = json.load(fd)
current = settings.release['modules']['openmedialibrary']['version']
response['current'] = current
new = release['modules']['openmedialibrary']['version']
response['new'] = new
response['update'] = current < new
return response
actions.register(getVersion, cache=False)

View File

@ -36,39 +36,36 @@ oml.ui.appDialog = function() {
.appendTo($logo);
if (id == 'update') {
$content.html('<h1><b>' + title + '</b></h1>');
var $update = Ox.Element()
.css({
paddingTop: '4px',
paddingBottom: '16px'
}).appendTo($content);
oml.api.getVersion(function(response) {
if (response.data.update) {
Ox.Element()
.css({
paddingTop: '4px',
paddingBottom: '16px'
})
.html('A new version of Open Media Library is available')
.appendTo($content);
Ox.Button({
id: 'update',
title: Ox._('Install Now')
}).bindEvent({
click: function() {
this.options({
disabled: true,
title: 'Installing...'
});
oml.api.restart(function(response) {
if (response.status.code == 200) {
setTimeout(reload, 500);
}
});
}
}).appendTo($content);
} else if (response.data.current == 'git') {
Ox.Element()
.html('To update a development version, run ./ctl update')
.appendTo($content);
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({
id: 'update',
title: Ox._('Install Now')
}).bindEvent({
click: function() {
this.options({
disabled: true,
title: 'Installing...'
});
oml.api.restart(function(response) {
if (response.status.code == 200) {
setTimeout(reload, 500);
}
});
}
}).appendTo($content);
}
} else {
Ox.Element()
.html('No updates available')
.appendTo($content);
$update.html('No updates available')
}
});
} else {

View File

@ -10,6 +10,7 @@ oml.ui.mainMenu = function() {
that = Ox.MainMenu({
extras: [
oml.$ui.connectionButton = oml.ui.connectionButton(),
oml.$ui.updateButton = oml.ui.updateButton(),
oml.$ui.notificationsButton = oml.ui.notificationsButton(),
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",
"statusbar.js",
"transfersDialog.js",
"updateBotton.js",
"userButton.js",
"usersDialog.js",
"utils.js",