From 463eb0918abbe1f27f13ec2c3c6b3a50d7572367 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sat, 2 Sep 2017 21:15:57 +0300 Subject: [PATCH] fixes and tweaks... Signed-off-by: Alex A. Naanou --- ui (gen4)/features/collections.js | 44 ++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/ui (gen4)/features/collections.js b/ui (gen4)/features/collections.js index 83e408f4..55936826 100755 --- a/ui (gen4)/features/collections.js +++ b/ui (gen4)/features/collections.js @@ -598,15 +598,16 @@ var CollectionActions = actions.Actions({ } Object.keys(c).forEach(function(title){ + var state = collections[title] = { title: title } + // load data... - var d = c[title].data instanceof data.Data ? - c[title].data + var d = c[title].data == null ? + null + : c[title].data instanceof data.Data ? + c[title].data : data.Data.fromJSON(c[title].data) - - var state = collections[title] = { - title: title, - - data: d, + if(d){ + state.data = d } // NOTE: this can be done lazily when loading each collection @@ -691,11 +692,10 @@ var CollectionActions = actions.Actions({ var data = ((mode == 'base' && state.crop_stack) ? (state.crop_stack[0] || state.data) : state.data) - .dumpJSON() - var s = res.collections[title] = { - title: title, - data: data, + var s = res.collections[title] = { title: title } + if(data){ + s.data = data.dumpJSON() } // handle .crop_stack of collection... @@ -997,7 +997,7 @@ module.CollectionTags = core.ImageGridFeatures.Feature({ rc && Object.keys(rc || {}) .forEach(function(title){ - var tags = c[title].local_tags + var tags = c[title].local_tags || {} var rtags = rc[title].local_tags = {} // compact the local tags... @@ -1007,7 +1007,9 @@ module.CollectionTags = core.ImageGridFeatures.Feature({ // no need to save the tags in more than the // root .data... - delete rc[title].data.tags + if(rc[title].data){ + delete rc[title].data.tags + } }) }], ], @@ -1066,6 +1068,22 @@ module.AutoTagCollections = core.ImageGridFeatures.Feature({ ], actions: AutoTagCollectionsActions, + + handlers: [ + ['json', + function(res){ + var c = this.collections || {} + var rc = res.collections || {} + + Object.keys(rc) + .forEach(function(title){ + var q = c[title].tag_query + if(q){ + rc[title].tag_query = q + } + }) + }], + ], })