Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Allows press enter in filter filter to navgite to the first matched r…
…esult. And '..' to go back.
  • Loading branch information
supnate committed Mar 1, 2013
1 parent c44c63f commit 695af99
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions pages/folder.djs
Expand Up @@ -36,7 +36,7 @@
<div style="display: inline-block; width: 680px;">
<div style="text-align: right;">
<span id="filterStatus"></span>
<input id="tbFilter" onkeyup="filter(this.value);" placeholder="Filter"/>
<input id="tbFilter" placeholder="Filter"/>
</div>
<div id="gridContainer"><table>
<tr>
Expand Down Expand Up @@ -67,9 +67,28 @@ function clone(arr){ var arr2 = [];each(arr, function(s){arr2.push(s);});return
function stripHtml(s){ return s.replace(/<[^>]*>/g, '');}
function fixEvent(evt){evt = evt||event; if(!evt.target)evt.target = evt.srcElement;return evt;};

$('tbFilter').value= '', $('tbFilter').focus();
var container = $('gridContainer'), grid = container.firstChild, data = [], sortData = {};

$('tbFilter').value= '', $('tbFilter').focus();
$('tbFilter').onkeyup = function(e){
e = e || window.event;
var target = e.target || e.srcElement;
if(e.keyCode == 13){
//press enter
if(!target.value)return;
if(/^\.\./.test(target.value) && document.location.pathname != '/'){
history.back();
return;
}
var a = grid.rows[1].cells[0].firstChild;
if(a && a.href)document.location = a.href;

}else{
filter(target);
}
}


container.onclick = function(e){
e = fixEvent(e);
if(/th/i.test(e.target.tagName)){
Expand Down Expand Up @@ -117,14 +136,15 @@ function sort(col){
}
function filter(){
var s = $('tbFilter').value;
if(/^\.\./.test(s))s = '';
if(!s){
render(data);
$('filterStatus').innerHTML = '';
}else{
var arr = [];
each(data, function(item){
item = clone(item);
var rex = new RegExp('(' + s + ')', 'ig');
var rex = new RegExp('(' + s.replace(/\./g, '\\.') + ')', 'ig');
if(rex.test(stripHtml(item.join(','))))arr.push(item);
each(item, function(c, i){//highlight search key
item[i] = stripHtml(c).replace(rex, '<span class="highlight">$1</span>');
Expand Down

0 comments on commit 695af99

Please sign in to comment.