removed legacy browser code...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2015-05-17 02:30:56 +03:00
parent 2b93aca0ab
commit 9fe814120e

View File

@ -179,240 +179,6 @@ TREE.dir_c.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
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',
BrowserClassPrototype,
BrowserPrototype)
@ -453,13 +210,6 @@ requirejs(['../lib/keyboard', '../object'], function(k, o){
})
$(function(){
/*
var browser = make()
$('.container').first()
.empty()
.append(browser)
showPath(browser, '/', TREE)
*/
$('.container').first().remove()