added fav dir loading (wo. index)...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-05-29 01:57:24 +04:00
parent 92f8c6ea86
commit 96c71629f3
2 changed files with 64 additions and 5 deletions

View File

@ -74,8 +74,8 @@ Roadmap
[_] 21% Gen 3 current todo
[_] 43% High priority
[_] 22% Gen 3 current todo
[_] 45% High priority
[_] BUG: aligning still sometimes gets off...
| ...after rotating a number of images
|
@ -109,7 +109,6 @@ Roadmap
[_] BUG: jumping screen images does not load the adjacent ribbons...
| positioning is OK but ribbons are not fully visible...
[_] ASAP: test on Android...
[_] import fav dirs (wo. index)...
[_] slideshow mode...
[_] single ribbon mode
| should this have up/down navigation?
@ -166,6 +165,7 @@ Roadmap
[_] thresholds and frame size
[_] remove extra and repetitive actions
[_] caching config
[X] import fav dirs (wo. index)...
[X] ASAP: load/view un-cached directories...
[X] ASAP: support relative paths in cache...
[X] ASAP: account for image rotation with screen proportions while positioning

View File

@ -377,11 +377,22 @@ function getBestPreview(gid, size){
* Constructors
*/
// NOTE: this depends on that the base dir contains ALL the images...
function imagesFromUrls(lst){
var res = {}
$.each(lst, function(i, e){
var gid = 'image-' + i
// this is ugly but I'm bored so this pretty...
var ii = i < 10 ? '0000000' + i
: i < 100 ? '000000' + i
: i < 1000 ? '00000' + i
: i < 10000 ? '0000' + i
: i < 100000 ? '000' + i
: i < 1000000 ? '00' + i
: i < 10000000 ? '0' + i
: i
var gid = 'image-' + ii
res[gid] = {
id: gid,
type: 'image',
@ -413,6 +424,53 @@ function dataFromImages(images){
}
// NOTE: this depends on listDir(...)
// NOTE: this assumes that images contain ALL the images...
function ribbonsFromFavDirs(path, images){
path = path == null ? BASE_URL : path
images = images == null ? IMAGES : images
// build a reverse name-gid index for fast access...
var index = {}
var name
for(var gid in images){
name = images[gid].path.split('/').pop()
// XXX we assume that names are unique...
index[name] = gid
}
var ribbons = []
// add the base row...
var base = Object.keys(images)
ribbons.push(base)
var files = listDir(path)
var cur_path = path
while(files.indexOf('fav') >= 0){
cur_path += '/fav'
files = listDir(cur_path)
ribbon = []
// collect the images...
$.each(files, function(i, e){
var _gid = index[e]
var found = /.*\.(jpg|jpeg)$/i.test(e) ? ribbon.push(_gid) : false
// remove the found item from each of the below ribbons...
if(found !== false){
$.each(ribbons, function(i ,e){
e.splice(e.indexOf(_gid), 1)
})
}
})
ribbons.push(ribbon)
}
// remove empty ribbons...
ribbons = $.map(ribbons, function(e){ return e.length > 0 ? [e] : null })
return ribbons.reverse()
}
/**********************************************************************
* Format conversion
@ -1097,8 +1155,9 @@ function loadDir(path, raw_load){
IMAGES = imagesFromUrls(image_paths)
DATA = dataFromImages(IMAGES)
MARKED = []
BASE_URL = orig_path
DATA.ribbons = ribbonsFromFavDirs()
MARKED = []
loadData()
}