diff --git a/ui (gen4)/features/metadata.js b/ui (gen4)/features/metadata.js index b86febad..261c0bf1 100755 --- a/ui (gen4)/features/metadata.js +++ b/ui (gen4)/features/metadata.js @@ -151,7 +151,7 @@ var MetadataReaderActions = actions.Actions({ }], // XXX STUB: add support for this to .readMetadata(..) - _readAllMetadata: ['- Image/Read all metadata', + readAllMetadata: ['- Image/Read all metadata', function(){ var that = this // XXX make this a global API... @@ -194,6 +194,19 @@ module.MetadataReader = core.ImageGridFeatures.Feature({ handlers: [ // XXX STUB: need a better strategy to read metadata... + // Approach 1 (target): + // read the metadata on demand e.g. on .showMetadata(..) + // + natural approach + // - not sync + // really complicated to organize... + // + // Approach 2: + // lazy read -- timeout and overwrite on next image + // - hack-ish + // + simple + // + // Approach 3: + // index a dir ['focusImage', function(){ var gid = this.current @@ -299,9 +312,9 @@ var MetadataUIActions = actions.Actions({ var field_order = this.config['metadata-field-order'] || [] var x = field_order.length + 1 - var img = this.images && this.images[image] || null // get image metadata... - var metadata = img && img.metadata || {} + var metadata = this.getMetadata(image) || {} + var img = this.images && this.images[image] || null // helpers... var _cmp = function(a, b){ diff --git a/ui (gen4)/ribbons.js b/ui (gen4)/ribbons.js index 7f306b14..c974e69f 100755 --- a/ui (gen4)/ribbons.js +++ b/ui (gen4)/ribbons.js @@ -203,7 +203,11 @@ module.DOMAdapter = { var RibbonsClassPrototype = { // Generic getters... getElemGID: function(elem){ - return JSON.parse('"' + elem.attr('gid') + '"') + return JSON.parse('"' + + (elem instanceof jQuery ? + elem.attr('gid') + : elem.getAttribute('gid')) + + '"') }, setElemGID: function(elem, gid){ return $(elem) @@ -1505,7 +1509,7 @@ var RibbonsPrototype = { var unload_marks = [] loaded = loaded .filter(function(i, img){ - var g = that.getElemGID($(img)) + var g = that.getElemGID(img) if(gids.indexOf(g) >= 0){ return true } @@ -1513,7 +1517,8 @@ var RibbonsPrototype = { unload_marks = unload_marks.concat(that.getImageMarks(g).toArray()) return false }) - // remove everything in one go... + + // detach/remove everything in one go... $(unloaded) .detach() .removeClass('moving current')