mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 18:30:09 +00:00
moved tag handling to a separate feature + docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
71bcd1cd0a
commit
be4777d384
@ -64,14 +64,6 @@ var CollectionActions = actions.Actions({
|
|||||||
// 'none' - do not save crop state
|
// 'none' - do not save crop state
|
||||||
'collection-save-crop-state': 'all',
|
'collection-save-crop-state': 'all',
|
||||||
|
|
||||||
// List of tags to be stored in a collection, unique to it...
|
|
||||||
//
|
|
||||||
// NOTE: the rest of the tags are shared between all collections
|
|
||||||
'collection-local-tags': [
|
|
||||||
'bookmark',
|
|
||||||
'selected',
|
|
||||||
],
|
|
||||||
|
|
||||||
// XXX add default collection list to config...
|
// XXX add default collection list to config...
|
||||||
'default-collections': [
|
'default-collections': [
|
||||||
],
|
],
|
||||||
@ -724,12 +716,117 @@ module.Collection = core.ImageGridFeatures.Feature({
|
|||||||
'crop',
|
'crop',
|
||||||
],
|
],
|
||||||
suggested: [
|
suggested: [
|
||||||
|
'collection-tags',
|
||||||
'ui-collections',
|
'ui-collections',
|
||||||
'fs-collections',
|
'fs-collections',
|
||||||
],
|
],
|
||||||
|
|
||||||
actions: CollectionActions,
|
actions: CollectionActions,
|
||||||
|
|
||||||
|
handlers: [
|
||||||
|
// XXX maintain changes...
|
||||||
|
// - collection-level: mark collections as changed...
|
||||||
|
// - in-collection:
|
||||||
|
// - save/restore parent changes when loading/exiting collections
|
||||||
|
// - move collection chnages to collections
|
||||||
|
[[
|
||||||
|
'collect',
|
||||||
|
'joinCollect',
|
||||||
|
'uncollect',
|
||||||
|
|
||||||
|
'saveCollection',
|
||||||
|
|
||||||
|
'removeCollection',
|
||||||
|
],
|
||||||
|
function(){
|
||||||
|
// XXX mark changed collections...
|
||||||
|
// XXX added/removed collection -> mark collection index as changed...
|
||||||
|
}],
|
||||||
|
|
||||||
|
|
||||||
|
['prepareIndexForWrite',
|
||||||
|
function(res, _, full){
|
||||||
|
var changed = full == true
|
||||||
|
|| res.changes === true
|
||||||
|
|| res.changes.collections
|
||||||
|
|
||||||
|
if(changed && res.raw.collections){
|
||||||
|
// select the actual changed collection list...
|
||||||
|
changed = changed === true ?
|
||||||
|
Object.keys(res.raw.collections)
|
||||||
|
: changed
|
||||||
|
|
||||||
|
// collection index...
|
||||||
|
res.index['collection-index'] = Object.keys(this.collections)
|
||||||
|
|
||||||
|
Object.keys(changed)
|
||||||
|
// skip the raw field...
|
||||||
|
.filter(function(k){ return changed.indexOf(k) >= 0 })
|
||||||
|
.forEach(function(k){
|
||||||
|
// XXX use collection gid...
|
||||||
|
res.index['collections/' + k] = res.raw.collections[k]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
['prepareJSONForLoad',
|
||||||
|
function(res, json, base_path){
|
||||||
|
// XXX
|
||||||
|
}],
|
||||||
|
],
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
var CollectionTags =
|
||||||
|
module.CollectionTags = core.ImageGridFeatures.Feature({
|
||||||
|
title: '',
|
||||||
|
doc: core.doc`Collection tag handling
|
||||||
|
=======================
|
||||||
|
|
||||||
|
What this does:
|
||||||
|
- Makes tags global through all collections
|
||||||
|
- Handles local tags per collection
|
||||||
|
|
||||||
|
|
||||||
|
Global tags:
|
||||||
|
------------
|
||||||
|
|
||||||
|
Global tags are shared through all the collections, this helps keep
|
||||||
|
image-specific tags, keywords and meta-information stored in tags
|
||||||
|
global, i.e. connected to specific image and not collection.
|
||||||
|
|
||||||
|
Global tags are stored in .data.tags and cleared out of collections
|
||||||
|
|
||||||
|
|
||||||
|
Collection local tags:
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Local tags are listed in .config['collection-local-tags'], this makes
|
||||||
|
selection, bookmarking and other process related tags local to each
|
||||||
|
collection.
|
||||||
|
|
||||||
|
Collection-local tags are stored in .collections[<title>].local_tags
|
||||||
|
and overwrite the corresponding tags in .data.tags on collection load.
|
||||||
|
|
||||||
|
`,
|
||||||
|
|
||||||
|
tag: 'collection-tags',
|
||||||
|
|
||||||
|
depends: [
|
||||||
|
'collections',
|
||||||
|
],
|
||||||
|
|
||||||
|
config: {
|
||||||
|
// List of tags to be stored in a collection, unique to it...
|
||||||
|
//
|
||||||
|
// NOTE: the rest of the tags are shared between all collections
|
||||||
|
'collection-local-tags': [
|
||||||
|
'bookmark',
|
||||||
|
'selected',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
|
||||||
handlers: [
|
handlers: [
|
||||||
// handle tags...
|
// handle tags...
|
||||||
// XXX should tag handling get moved to a separate feature???
|
// XXX should tag handling get moved to a separate feature???
|
||||||
@ -829,56 +926,6 @@ module.Collection = core.ImageGridFeatures.Feature({
|
|||||||
delete rc[title].data.tags
|
delete rc[title].data.tags
|
||||||
})
|
})
|
||||||
}],
|
}],
|
||||||
|
|
||||||
|
|
||||||
// XXX maintain changes...
|
|
||||||
// - collection-level: mark collections as changed...
|
|
||||||
// - in-collection:
|
|
||||||
// - save/restore parent changes when loading/exiting collections
|
|
||||||
// - move collection chnages to collections
|
|
||||||
[[
|
|
||||||
'collect',
|
|
||||||
'joinCollect',
|
|
||||||
'uncollect',
|
|
||||||
|
|
||||||
'saveCollection',
|
|
||||||
|
|
||||||
'removeCollection',
|
|
||||||
],
|
|
||||||
function(){
|
|
||||||
// XXX mark changed collections...
|
|
||||||
// XXX added/removed collection -> mark collection index as changed...
|
|
||||||
}],
|
|
||||||
|
|
||||||
|
|
||||||
['prepareIndexForWrite',
|
|
||||||
function(res, _, full){
|
|
||||||
var changed = full == true
|
|
||||||
|| res.changes === true
|
|
||||||
|| res.changes.collections
|
|
||||||
|
|
||||||
if(changed && res.raw.collections){
|
|
||||||
// select the actual changed collection list...
|
|
||||||
changed = changed === true ?
|
|
||||||
Object.keys(res.raw.collections)
|
|
||||||
: changed
|
|
||||||
|
|
||||||
// collection index...
|
|
||||||
res.index['collection-index'] = Object.keys(this.collections)
|
|
||||||
|
|
||||||
Object.keys(changed)
|
|
||||||
// skip the raw field...
|
|
||||||
.filter(function(k){ return changed.indexOf(k) >= 0 })
|
|
||||||
.forEach(function(k){
|
|
||||||
// XXX use collection gid...
|
|
||||||
res.index['collections/' + k] = res.raw.collections[k]
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
['prepareJSONForLoad',
|
|
||||||
function(res, json, base_path){
|
|
||||||
// XXX
|
|
||||||
}],
|
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user