From d7fa7efcbcf92de3251b857c5e92dea63962e766 Mon Sep 17 00:00:00 2001 From: j Date: Tue, 9 Oct 2018 16:32:35 +0200 Subject: [PATCH] add layer option to populate default value for new annotations --- pandora/config.pandora.jsonc | 2 ++ static/js/editor.js | 6 ++++-- static/js/utils.js | 9 +++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/pandora/config.pandora.jsonc b/pandora/config.pandora.jsonc index 1c5cf71ba..fcde8ab9d 100644 --- a/pandora/config.pandora.jsonc +++ b/pandora/config.pandora.jsonc @@ -864,6 +864,8 @@ examples (config.SITENAME.jsonc) that are part of this pan.do/ra distribution. "canPlayClips": If true, clips from this layer will play for users with canPlayClips access "entity": ID of the referenced entity (if type is "entity") + "getDefaults": function in pandora namespace that gets called + to populate defaults for new annotations. i.e. getCurrentFrameAnnotation "hasEvents": If true, the calendar will be populated with matches from this layer "hasPlaces": If true, the map will be populated with matches from this diff --git a/static/js/editor.js b/static/js/editor.js index 190aac97a..00dddae83 100644 --- a/static/js/editor.js +++ b/static/js/editor.js @@ -114,7 +114,8 @@ pandora.ui.editor = function(data) { // async to not capture keyboard input setTimeout(function() { var created = Ox.formatDate(new Date(), '%Y-%m-%dT%H:%M:%SZ'), - type = Ox.getObjectById(pandora.site.layers, data.layer).type; + layer = Ox.getObjectById(pandora.site.layers, data.layer), + type = layer.type; that.addAnnotation(data.layer, Ox.extend( { created: created, @@ -131,7 +132,8 @@ pandora.ui.editor = function(data) { place: {lat: null, lng: null} } : type == 'event' ? { event: {start: '', end: ''} - } : {} + } : {}, + layer.getDefaults ? pandora[layer.getDefaults](data) : {} )); Ox.Request.clearCache(); }); diff --git a/static/js/utils.js b/static/js/utils.js index 30d360cda..60c3db535 100644 --- a/static/js/utils.js +++ b/static/js/utils.js @@ -1274,6 +1274,15 @@ pandora.getClipVideos = function(clip, resolution) { })); }; +pandora.getCurrentFrameAnnotation = function(data) { + var ui = pandora.user.ui, + position = ui.videoPoints[ui.item].position, + resolution = Ox.max(pandora.site.video.resolutions); + return { + value: '\n\n' + }; +}; + (function() { var itemTitles = {}, documentTitles = {}; pandora.getWindowTitle = function(itemData) {