From 9f56cff77b439850000b1e2bc17fee2d7942751f Mon Sep 17 00:00:00 2001 From: j Date: Thu, 10 May 2018 14:30:11 +0100 Subject: [PATCH] add rename dialog, run in local folder --- backup_films.py | 10 ++- static/js/renameKeywordDialog.cms.js | 123 +++++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 static/js/renameKeywordDialog.cms.js diff --git a/backup_films.py b/backup_films.py index dc04fe3..d030992 100755 --- a/backup_films.py +++ b/backup_films.py @@ -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__': - target = sys.argv[1] + 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) diff --git a/static/js/renameKeywordDialog.cms.js b/static/js/renameKeywordDialog.cms.js new file mode 100644 index 0000000..e040cf1 --- /dev/null +++ b/static/js/renameKeywordDialog.cms.js @@ -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; +};