mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-11-01 03:40:09 +00:00
added experimental .order_list to data (find a better name?)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
2ed83bbb4c
commit
12dcb83353
@ -9,6 +9,9 @@ define(function(require){ var module = {}
|
|||||||
console.log('>>> data')
|
console.log('>>> data')
|
||||||
|
|
||||||
|
|
||||||
|
var formats = require('formats')
|
||||||
|
|
||||||
|
|
||||||
module.DATA_VERSION = '3.0'
|
module.DATA_VERSION = '3.0'
|
||||||
|
|
||||||
|
|
||||||
@ -149,6 +152,19 @@ module.DataPrototype = {
|
|||||||
// NOTE: this list may contain gids not loaded at the moment,
|
// NOTE: this list may contain gids not loaded at the moment,
|
||||||
// a common case for this is when data is cropped.
|
// a common case for this is when data is cropped.
|
||||||
//
|
//
|
||||||
|
// .order_list EXPERIMENTAL
|
||||||
|
// Dict of named user defined order lists
|
||||||
|
//
|
||||||
|
// format:
|
||||||
|
// { name: [ gid, .. ], .. }
|
||||||
|
//
|
||||||
|
// reserved order names:
|
||||||
|
// 'last' - stores the last order before cange
|
||||||
|
// 'manual' - stores the last user-defined orderbefore
|
||||||
|
// resort
|
||||||
|
//
|
||||||
|
// NOTE: this attr is optional...
|
||||||
|
//
|
||||||
// .ribbon_order
|
// .ribbon_order
|
||||||
// List of ribbon gids setting the ribbon order.
|
// List of ribbon gids setting the ribbon order.
|
||||||
//
|
//
|
||||||
@ -823,6 +839,23 @@ module.DataPrototype = {
|
|||||||
return this
|
return this
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// XXX should these be here or in a pligin???
|
||||||
|
saveOrderAs: function(name, order){
|
||||||
|
if(this.order_list == null){
|
||||||
|
this.order_list = {}
|
||||||
|
}
|
||||||
|
this.order_list[name] = order != null ? order : this.order.slice()
|
||||||
|
return this
|
||||||
|
},
|
||||||
|
loadOrder: function(name){
|
||||||
|
var order = name.constructor.name == 'Array' ? name : this.order_list[name].slice()
|
||||||
|
if(order == null){
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
this.order = order
|
||||||
|
return this.sortImages()
|
||||||
|
},
|
||||||
|
|
||||||
// Shift image...
|
// Shift image...
|
||||||
//
|
//
|
||||||
// Shift image to target position:
|
// Shift image to target position:
|
||||||
@ -1402,12 +1435,14 @@ module.DataPrototype = {
|
|||||||
// Load data from JSON...
|
// Load data from JSON...
|
||||||
//
|
//
|
||||||
// NOTE: this loads in-place, use .fromJSON(..) to create new data...
|
// NOTE: this loads in-place, use .fromJSON(..) to create new data...
|
||||||
|
// XXX should this process defaults for unset values???
|
||||||
loadJSON: function(data){
|
loadJSON: function(data){
|
||||||
data = typeof(data) == typeof('str') ? JSON.parse(data) : data
|
data = typeof(data) == typeof('str') ? JSON.parse(data) : data
|
||||||
data = formats.updateData(data)
|
data = formats.updateData(data)
|
||||||
this.base = data.base
|
this.base = data.base
|
||||||
this.current = data.current
|
this.current = data.current
|
||||||
this.order = data.order.slice()
|
this.order = data.order.slice()
|
||||||
|
this.order_list = data.order_list != null ? JSON.parse(JSON.stringify(data.order_list)) : null
|
||||||
this.ribbon_order = data.ribbon_order.slice()
|
this.ribbon_order = data.ribbon_order.slice()
|
||||||
this.ribbons = {}
|
this.ribbons = {}
|
||||||
// make ribbons sparse...
|
// make ribbons sparse...
|
||||||
@ -1430,6 +1465,10 @@ module.DataPrototype = {
|
|||||||
ribbon_order: this.ribbon_order.slice(),
|
ribbon_order: this.ribbon_order.slice(),
|
||||||
ribbons: {},
|
ribbons: {},
|
||||||
}
|
}
|
||||||
|
if(this.order_list != null && Object.keys(this.order_list).length > 0){
|
||||||
|
// do a deep copy...
|
||||||
|
res.order_list = JSON.parse(JSON.stringify(this.order_list))
|
||||||
|
}
|
||||||
// compact ribbons...
|
// compact ribbons...
|
||||||
for(var k in this.ribbons){
|
for(var k in this.ribbons){
|
||||||
res.ribbons[k] = this.ribbons[k].compact()
|
res.ribbons[k] = this.ribbons[k].compact()
|
||||||
|
|||||||
@ -71,10 +71,11 @@ function(data, cmp){
|
|||||||
// the Data object...
|
// the Data object...
|
||||||
// NOTE: this uses require('data').Data().newGid(..) for ribbon gid
|
// NOTE: this uses require('data').Data().newGid(..) for ribbon gid
|
||||||
// generation...
|
// generation...
|
||||||
|
// XXX test...
|
||||||
//module.convertDataGen3 =
|
//module.convertDataGen3 =
|
||||||
module.VERSIONS['3.0'] =
|
module.VERSIONS['3.0'] =
|
||||||
function(data){
|
function(data){
|
||||||
data = data.version == null ? module.VERSIONS['2.0'](data) : data
|
data = data.version < '3.0' ? module.VERSIONS['2.0'](data) : data
|
||||||
|
|
||||||
// XXX is this the right way to go???
|
// XXX is this the right way to go???
|
||||||
var that = require('data').Data()
|
var that = require('data').Data()
|
||||||
@ -83,20 +84,41 @@ function(data){
|
|||||||
res.version = '3.0'
|
res.version = '3.0'
|
||||||
res.current = data.current
|
res.current = data.current
|
||||||
res.order = data.order.slice()
|
res.order = data.order.slice()
|
||||||
res.ribbon_order = []
|
res.ribbon_order = data.ribbon_order == null ? [] : data.ribbon_order.slice()
|
||||||
res.ribbons = {}
|
res.ribbons = {}
|
||||||
// generate gids...
|
// generate gids...
|
||||||
data.ribbons.forEach(function(e){
|
// NOTE: this will use the structures stored in data if available,
|
||||||
var gid = that.newGid('R')
|
// otherwise new structures will be generated...
|
||||||
|
// NOTE: we need to do this anyway as we also need to deep-copy the
|
||||||
|
// ribbons...
|
||||||
|
var keys = data.ribbon_order != null
|
||||||
|
? data.ribbon_order
|
||||||
|
: Object.keys(data.ribbons)
|
||||||
|
keys.forEach(function(k){
|
||||||
|
var gid = k*1 == null ? k : that.newGid('R')
|
||||||
res.ribbon_order.push(gid)
|
res.ribbon_order.push(gid)
|
||||||
res.ribbons[gid] = e.slice()
|
res.ribbons[gid] = data.ribbons[k].slice()
|
||||||
})
|
})
|
||||||
// we set the base to the first ribbon...
|
// we set the base to the first ribbon...
|
||||||
res.base = res.ribbon_order[0]
|
res.base = data.base == null ? res.ribbon_order[0] : res.base
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// XXX EXPERIMENTAL...
|
||||||
|
module.VERSIONS['3.1'] =
|
||||||
|
function(data){
|
||||||
|
res = module.VERSIONS['3.0'](data)
|
||||||
|
|
||||||
|
res.version = '3.1'
|
||||||
|
res.order_list = data.order_list != null ? JSON.parse(JSON.stringify(data.order_list)) : null
|
||||||
|
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Get latest updater version...
|
// Get latest updater version...
|
||||||
//
|
//
|
||||||
module.getLatestUpdaterVersion = function(){
|
module.getLatestUpdaterVersion = function(){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user