Mercurial > hg > digilib
changeset 1531:c1a390b47e07
monkey-patch annotator-dl for maps (add fields for editor/viewer)
author | hertzhaft |
---|---|
date | Fri, 16 Sep 2016 12:58:09 +0200 |
parents | 70e1225fe08c |
children | d1294e2c1c28 |
files | webapp/src/main/webapp/jquery/digilib-map.html |
diffstat | 1 files changed, 96 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/digilib-map.html Thu Sep 08 19:54:38 2016 +0200 +++ b/webapp/src/main/webapp/jquery/digilib-map.html Fri Sep 16 12:58:09 2016 +0200 @@ -26,7 +26,7 @@ <script type="text/javascript" src="jquery.digilib.marks.js"></script> <script type="text/javascript" src="jquery.digilib.vector.js"></script> <script type="text/javascript" src="showdown.js"></script> - <script type="text/javascript" src="annotator-dl.js"></script> + <script type="text/javascript" src="map-annotator-dl.js"></script> <script type="text/javascript" src="jquery.digilib.annotator.js"></script> <link rel="stylesheet" type="text/css" href="annotator.min.css" /> @@ -47,42 +47,117 @@ }, }, // are annotations read-only? + // URL of annotation server + 'annotationServerUrl' : 'http://localhost:3000/map', + // are annotations read-only? 'annotationsReadOnly' : false, // URL of annotation server 'annotationServerUrl' : 'http://hertz-test64.biblhertz.it:3000/map', // URL of authentication token server - 'annotationTokenUrl' : 'http://hertz-test64.biblhertz.it:3000/token', + 'annotationTokenUrl' : 'http://localhost:3000/token', // list of Annotator plugins - 'annotatorPlugins' : ['Auth', 'DigilibIntegrator', 'Markdown', 'Store', 'Tags'] - // annotationPageUri - // 'annotationPageUri' : function() { return window.location.href } + 'annotatorPlugins' : ['Auth', 'Markdown', 'DigilibIntegrator', 'Store', 'Tags'] }; - // store additional data (apart from 'rows') from loadAnnotationsFromSearch - var _onLoadAnnotationsFromSearch = function (data) { - if (data == null) { - data = {}; + var _setupEditor = function() { + var e = new Annotator.Editor(); + var _t = Annotator._t; + this.editor = e; + e.hide().on('hide', this.onEditorHide).on('save', this.onEditorSubmit); + e.addField({ + id: 'map_name', + type: 'input', + label: _t('normal name') + '\u2026', + load: function(field, annotation) { + return $(field).find('#map_name').val(annotation.name || ''); + }, + submit: function(field, annotation) { + return annotation.name = $(field).find('#map_name').val(); + } + }); + e.addField({ + id: 'map_nr', + type: 'input', + label: _t('nr') + '\u2026', + load: function(field, annotation) { + return $(field).find('#map_nr').val(annotation.nr || ''); + }, + submit: function(field, annotation) { + return annotation.nr = $(field).find('#map_nr').val(); + } + }); + e.addField({ + id: 'map_legend', + type: 'input', + label: _t('legend') + '\u2026', + load: function(field, annotation) { + return $(field).find('#map_legend').val(annotation.legend || ''); + }, + submit: function(field, annotation) { + return annotation.legend = $(field).find('#map_legend').val(); } - this.annotator.data = data; - console.log('maps: data', data); + }); + e.addField({ + id: 'map_desc', + type: 'textarea', + label: _t('description') + '\u2026', + load: function(field, annotation) { + return $(field).find('#map_desc').val(annotation.desc || ''); + }, + submit: function(field, annotation) { + return annotation.desc = $(field).find('#map_desc').val(); + } + }); + e.addField({ + id: 'map_fmid', + type: 'input', + label: _t('zuccaro (fm) id') + '\u2026', + load: function(field, annotation) { + return $(field).find('#map_fmid').val(annotation.fmid || ''); + }, + submit: function(field, annotation) { + return annotation.fmid = $(field).find('#map_fmid').val(); + } + }); + e.addField({ + id: 'map_layer', + type: 'select', + label: _t('layer') + '\u2026', + load: function(field, annotation) { + return $(field).find('#map_layer').val(annotation.layer || ''); + }, + submit: function(field, annotation) { + return annotation.layer = $(field).find('#map_layer').val(); + } + }); + e.element.appendTo(this.wrapper); + return this; + }; + + var _onLoadAnnotationsFromSearch = function(data) { + if (data == null) { + data = {}; + } + this.element.data('digilib').annotationdata = data; + console.debug("_onloadAnnotationsFromSearch", data); return this._onLoadAnnotations(data.rows || []); }; - // monkey patch the annotator Store plugin - var handleSetup = function (evt) { - console.log('maps: handleSetup'); - this.annotator.plugins.Store._onLoadAnnotationsFromSearch = _onLoadAnnotationsFromSearch; - } - // add zoom area params to loadAnnotationsFromSearch url + var getZoomArea = function (data) { return data.zoomArea.toString(); }; - // monkey patches for annotator_dl.js + var getFn = function (data) { + return data.settings.fn; + }; var hook = function (data) { - data.settings.annotatorPluginSettings.Store.loadFromSearch.za = getZoomArea; - $(data).on('setup', handleSetup); // too late, annotations have already been loaded + var loadParams = data.settings.annotatorPluginSettings.Store.loadFromSearch; + loadParams.za = getZoomArea; + loadParams.fn = getFn; }; + // monkey patch Store plugin + Annotator.prototype._setupEditor = _setupEditor; + Annotator.Plugin.Store.prototype._onLoadAnnotationsFromSearch = _onLoadAnnotationsFromSearch; var $div = $('div#digilib'); $div.digilib(settings, hook); - }); </script>