mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-12-19 01:31:38 +00:00
removed legacy browser code...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
2b93aca0ab
commit
9fe814120e
@ -179,240 +179,6 @@ TREE.dir_c.tree = TREE
|
|||||||
TREE.dir_c.dir_b.tree = TREE
|
TREE.dir_c.dir_b.tree = TREE
|
||||||
|
|
||||||
|
|
||||||
function skipFiles(e, v){
|
|
||||||
return typeof(v) != typeof('str')
|
|
||||||
}
|
|
||||||
|
|
||||||
function make(title){
|
|
||||||
var browser = $('<div>')
|
|
||||||
.addClass('browse')
|
|
||||||
// make thie widget focusable...
|
|
||||||
// NOTE: tabindex 0 means automatic tab indexing and -1 means
|
|
||||||
// focusable bot not tabable...
|
|
||||||
//.attr('tabindex', -1)
|
|
||||||
.attr('tabindex', 0)
|
|
||||||
// focus the widget if something inside is clicked...
|
|
||||||
.click(function(){
|
|
||||||
$(this).focus()
|
|
||||||
})
|
|
||||||
.append($('<div>')
|
|
||||||
.addClass('v-block title')
|
|
||||||
.text(title))
|
|
||||||
.append($('<div>')
|
|
||||||
.addClass('v-block path'))
|
|
||||||
.append($('<div>')
|
|
||||||
.addClass('v-block list'))
|
|
||||||
.append($('<div>')
|
|
||||||
.addClass('v-block info'))
|
|
||||||
.append($('<div>')
|
|
||||||
.addClass('v-block actions'))
|
|
||||||
return browser
|
|
||||||
}
|
|
||||||
|
|
||||||
// low level update...
|
|
||||||
function update(browser, path, list){
|
|
||||||
browser = browser || $('.browse')
|
|
||||||
var p = browser.find('.path').empty()
|
|
||||||
var l = browser.find('.list').empty()
|
|
||||||
|
|
||||||
path.forEach(function(e){
|
|
||||||
p.append($('<div>')
|
|
||||||
.addClass('dir')
|
|
||||||
.click(popDir)
|
|
||||||
.text(e))
|
|
||||||
})
|
|
||||||
list.forEach(function(e){
|
|
||||||
l.append($('<div>')
|
|
||||||
.click(pushDir)
|
|
||||||
.text(e))
|
|
||||||
})
|
|
||||||
return browser
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function showPath(browser, path, tree, skip){
|
|
||||||
// XXX remove for pruduction...
|
|
||||||
skip = skip || skipFiles
|
|
||||||
|
|
||||||
browser = browser || $('.browse')
|
|
||||||
path = path.constructor !== Array ? path.split(/[\\\/]+/g) : path
|
|
||||||
path = path.filter(function(e){ return e != '' })
|
|
||||||
|
|
||||||
var dir = tree
|
|
||||||
path.forEach(function(d){
|
|
||||||
dir = dir[d]
|
|
||||||
})
|
|
||||||
|
|
||||||
// XXX do error checking...
|
|
||||||
|
|
||||||
dir = skip != null
|
|
||||||
// skip files....
|
|
||||||
? Object.keys(dir).filter(function(e){ return skip(e, dir[e]) })
|
|
||||||
: Object.keys(dir)
|
|
||||||
|
|
||||||
update(browser, path, dir)
|
|
||||||
}
|
|
||||||
|
|
||||||
// XXX this will skip incuding the current dir...
|
|
||||||
// ...this might work and might not work...
|
|
||||||
function getPath(browser, to){
|
|
||||||
var skip = false
|
|
||||||
return browser.find('.path .dir')
|
|
||||||
.filter(function(i, e){
|
|
||||||
if(e === to){
|
|
||||||
skip = true
|
|
||||||
}
|
|
||||||
return !skip
|
|
||||||
})
|
|
||||||
.map(function(i, e){ return $(e).text() })
|
|
||||||
.toArray()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function pushDir(){
|
|
||||||
var dir = $(this).text()
|
|
||||||
var browser = $(this).parents('.browse')
|
|
||||||
var path = getPath(browser)
|
|
||||||
path.push(dir)
|
|
||||||
|
|
||||||
showPath(browser, path, TREE)
|
|
||||||
}
|
|
||||||
function popDir(){
|
|
||||||
var dir = $(this).text()
|
|
||||||
var browser = $(this).parents('.browse')
|
|
||||||
var path = getPath(browser, this)
|
|
||||||
|
|
||||||
showPath(browser, path, TREE)
|
|
||||||
|
|
||||||
select('"'+dir+'"')
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// base control actions...
|
|
||||||
// XXX add keywords:
|
|
||||||
// 'first'
|
|
||||||
// 'prev'
|
|
||||||
// 'next'
|
|
||||||
// 'last'
|
|
||||||
// 'none' -- deselect
|
|
||||||
// '!' -- return selected element if it exists...
|
|
||||||
// <number> -- select by sequence number...
|
|
||||||
// <elem> -- select a specific element...
|
|
||||||
function select(elem, browser){
|
|
||||||
browser = browser || $('.browse')
|
|
||||||
var elems = browser.find('.list div')
|
|
||||||
|
|
||||||
if(elems.length == 0){
|
|
||||||
return $()
|
|
||||||
}
|
|
||||||
|
|
||||||
elem = elem || select('!')
|
|
||||||
// if none selected get the first...
|
|
||||||
elem = elem.length == 0 ? 'first' : elem
|
|
||||||
|
|
||||||
// first/last...
|
|
||||||
if(elem == 'first' || elem == 'last'){
|
|
||||||
return select(elems[elem](), browser)
|
|
||||||
|
|
||||||
// prev/next...
|
|
||||||
} else if(elem == 'prev' || elem == 'next'){
|
|
||||||
var to = select('!', browser)[elem]('.list div')
|
|
||||||
if(to.length == 0){
|
|
||||||
return select(elem == 'prev' ? 'last' : 'first', browser)
|
|
||||||
}
|
|
||||||
select('none')
|
|
||||||
return select(to, browser)
|
|
||||||
|
|
||||||
// deselect...
|
|
||||||
} else if(elem == 'none'){
|
|
||||||
return elems
|
|
||||||
.filter('.selected')
|
|
||||||
.removeClass('selected')
|
|
||||||
|
|
||||||
// strict...
|
|
||||||
} else if(elem == '!'){
|
|
||||||
return elems.filter('.selected')
|
|
||||||
|
|
||||||
// number...
|
|
||||||
} else if(typeof(elem) == typeof(123)){
|
|
||||||
return select($(elems[elem]), browser)
|
|
||||||
|
|
||||||
// string...
|
|
||||||
} else if(typeof(elem) == typeof('str') && /^'.*'$|^".*"$/.test(elem.trim())){
|
|
||||||
elem = elem.trim().slice(1, -1)
|
|
||||||
return select(browser.find('.list div').filter(function(i, e){
|
|
||||||
return $(e).text() == elem
|
|
||||||
}))
|
|
||||||
|
|
||||||
// element...
|
|
||||||
} else {
|
|
||||||
select('none', browser)
|
|
||||||
return elem.addClass('selected')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function push(browser){
|
|
||||||
browser = browser || $('.browse')
|
|
||||||
var elem = select('!', browser)
|
|
||||||
|
|
||||||
if(elem.length == 0){
|
|
||||||
return select()
|
|
||||||
}
|
|
||||||
|
|
||||||
var path = getPath(browser)
|
|
||||||
|
|
||||||
path.push(elem.text())
|
|
||||||
|
|
||||||
var res = showPath(browser, path, TREE)
|
|
||||||
|
|
||||||
select(null, browser)
|
|
||||||
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
function pop(browser){
|
|
||||||
browser = browser || $('.browse')
|
|
||||||
var path = getPath(browser)
|
|
||||||
var dir = path.pop()
|
|
||||||
|
|
||||||
var res = showPath(browser, path, TREE)
|
|
||||||
|
|
||||||
select('"'+dir+'"')
|
|
||||||
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
function next(browser){
|
|
||||||
return select('next', browser)
|
|
||||||
}
|
|
||||||
function prev(browser){
|
|
||||||
return select('prev', browser)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// default action...
|
|
||||||
function action(browser){
|
|
||||||
browser = browser || $('.browse')
|
|
||||||
|
|
||||||
var cur = select('!', browser).text()
|
|
||||||
alert('/' + getPath(browser).concat(cur == '' ? [cur] : [cur, '']).join('/'))
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
var KB = {
|
|
||||||
'*':{
|
|
||||||
F5: function(){ window.location.reload() },
|
|
||||||
},
|
|
||||||
//'.browse:focus':{
|
|
||||||
'.browse':{
|
|
||||||
Up: prev,
|
|
||||||
Backspace: 'Up',
|
|
||||||
Down: next,
|
|
||||||
Left: pop,
|
|
||||||
Right: push,
|
|
||||||
|
|
||||||
Enter: action,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//---
|
//---
|
||||||
|
|
||||||
@ -421,15 +187,6 @@ requirejs(['../lib/keyboard', '../object'], function(k, o){
|
|||||||
keyboard = k
|
keyboard = k
|
||||||
object = o
|
object = o
|
||||||
|
|
||||||
// setup base keyboard for devel, in case something breaks...
|
|
||||||
//$(document)
|
|
||||||
$('.browse')
|
|
||||||
.keydown(
|
|
||||||
keyboard.makeKeyboardHandler(
|
|
||||||
KB,
|
|
||||||
function(k){ window.DEBUG && console.log(k) }))
|
|
||||||
|
|
||||||
|
|
||||||
Browser = object.makeConstructor('Browser',
|
Browser = object.makeConstructor('Browser',
|
||||||
BrowserClassPrototype,
|
BrowserClassPrototype,
|
||||||
BrowserPrototype)
|
BrowserPrototype)
|
||||||
@ -453,13 +210,6 @@ requirejs(['../lib/keyboard', '../object'], function(k, o){
|
|||||||
})
|
})
|
||||||
|
|
||||||
$(function(){
|
$(function(){
|
||||||
/*
|
|
||||||
var browser = make()
|
|
||||||
$('.container').first()
|
|
||||||
.empty()
|
|
||||||
.append(browser)
|
|
||||||
showPath(browser, '/', TREE)
|
|
||||||
*/
|
|
||||||
|
|
||||||
$('.container').first().remove()
|
$('.container').first().remove()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user