add rename dialog, run in local folder

This commit is contained in:
j 2018-05-10 14:30:11 +01:00
parent 842b28a2b0
commit 9f56cff77b
2 changed files with 131 additions and 2 deletions

View file

@ -1,4 +1,4 @@
#!/usr/bin/python3
#!/usr/bin/env python3
import os
import sys
@ -16,7 +16,13 @@ def get_extension(api, oshash):
if __name__ == '__main__':
if len(sys.argv) > 1:
target = sys.argv[1]
else:
target = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'Films')
if not target.endswith('/'):
target += '/'
site = 'pandora.cinemusespace.com'
api = ox.api.signin('https://%s/api/' % site)

View file

@ -0,0 +1,123 @@
pandora.ui.renameKeywordDialog = function() {
var dialogHeight = 100,
dialogWidth = 512 + 16,
formWidth = getFormWidth(),
$button,
$content = Ox.Element(),
old,
value,
$input = [
Ox.Input({
label: Ox._('From'),
labelWidth: 96,
width: 512
}).css({
margin: '8px'
}).bindEvent({
change: function(data) {
$button.options({disabled: !data.value && !value});
old = data.value;
}
}).appendTo($content),
Ox.Input({
label: Ox._('To'),
labelWidth: 96,
width: 512
}).css({
margin: '8px'
}).bindEvent({
change: function(data) {
$button.options({disabled: !data.value && !old});
value = data.value;
}
}).appendTo($content)
],
that = Ox.Dialog({
buttons: [
Ox.Button({
id: 'cancel',
title: Ox._('Cancel')
})
.bindEvent({
click: function() {
that.close();
}
}),
$button = Ox.Button({
disabled: true,
id: 'update',
title: Ox._('Rename Keyword')
})
.bindEvent({
click: renameKeyword
})
],
closeButton: true,
content: $content,
height: dialogHeight,
removeOnClose: true,
title: Ox._('Change Keyword'),
width: dialogWidth
})
.bindEvent({
resize: setSize
});
function getFormWidth() {
return dialogWidth - 32 - Ox.UI.SCROLLBAR_SIZE;
}
function setSize(data) {
dialogHeight = data.height;
dialogWidth = data.width;
formWidth = getFormWidth();
$input.forEach(function($element) {
$element.options({width: formWidth});
});
}
function renameAnnotation(layer, old, value, callback) {
pandora.api.findAnnotations({
'query': {
'conditions': [{
'key': 'value',
'value': old,
'operator': '=='
},
{
'key': 'layer',
'value': layer,
'operator': '=='
}],
'operator': '&'
},
'keys': ['id', 'in', 'out', 'value', 'user', 'created'],
'range': [0, 500000]
}, function(result) {
console.log('got annots', result.data.items);
Ox.serialForEach(result.data.items, function(annotation, index, array, next) {
pandora.api.editAnnotation({
id: annotation.id,
value: value
}, function(result) {
next()
})
}, function() {
callback()
})
})
}
function renameKeyword() {
that.options({content: Ox.LoadingScreen().start()});
renameAnnotation('keywords', old, value, function() {
Ox.Request.clearCache();
that.close();
})
}
return that;
};