Filter accepts RegExp and primitive search sequences.

This commit is contained in:
Lars Jung 2012-02-21 01:59:19 +01:00
parent 749a87eaf7
commit 84f543aca5
5 changed files with 42 additions and 22 deletions

View file

@ -7,20 +7,23 @@
*/
global $H5AI_CONFIG;
$H5AI_CONFIG = array();
/*
$H5AI_CONFIG = array(
/*
* This configuration assumes that h5ai is installed
* in the webroot directory of the Apache server.
*/
$H5AI_CONFIG["ROOT_ABS_PATH"] = safe_dirname(safe_dirname(__FILE__));
"ROOT_ABS_PATH" => safe_dirname(safe_dirname(__FILE__)),
/*
/*
* Files/folders that should not be listed. Specified
* by the complete filename or by a regular expression.
* http://www.php.net/manual/en/function.preg-match.php
*/
$H5AI_CONFIG["IGNORE"] = array();
$H5AI_CONFIG["IGNORE_PATTERNS"] = array("/^\\./", "/^_h5ai/");
"IGNORE" => array(),
"IGNORE_PATTERNS" => array("/^\\./", "/^_h5ai/")
);
?>

View file

@ -38,6 +38,18 @@
$filter.removeClass('current');
}
},
parseFilterSequence = function (sequence) {
if (sequence.substr(0,3) === 're:') {
return new RegExp(sequence.substr(3));
}
sequence = $.map($.trim(sequence).split(/\s+/), function (part) {
return H5AI.util.reEscape(part);
}).join('|');
return new RegExp(sequence);
},
init = function () {
if (H5AI.core.settings.showFilter) {
@ -63,7 +75,7 @@
val = $input.val();
if (val) {
filter(new RegExp(val));
filter(parseFilterSequence(val));
} else {
filter();
}

View file

@ -100,6 +100,10 @@
return decodeURI(uri);
} catch (err) {}
return uri;
},
reEscape = function (sequence) {
return sequence.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
};
return {
@ -108,7 +112,8 @@
getAbsHref: getAbsHref,
parseSize: parseSize,
formatSize: formatSize,
checkedDecodeUri: checkedDecodeUri
checkedDecodeUri: checkedDecodeUri,
reEscape: reEscape
};
}());

View file

@ -14,11 +14,6 @@ function require_h5ai($lib) {
}
require_h5ai("/php/inc/H5ai.php");
$h5ai = new H5ai();
$options = $h5ai->getOptions();
function fail($code, $msg, $cond = true) {
if ($cond) {
echo "$code: $msg";
@ -36,6 +31,11 @@ function checkKeys($keys) {
}
require_h5ai("/php/inc/H5ai.php");
$h5ai = new H5ai();
$options = $h5ai->getOptions();
list($action) = checkKeys(array("action"));

View file

@ -256,8 +256,8 @@ class H5ai {
public function getHttpCode($absHref) {
return $this->cachedHttpCode($absHref);
// return $this->fetchHttpCode($absHref);
//return $this->cachedHttpCode($absHref);
return $this->fetchHttpCode($absHref);
// return $this->guessHttpCode($absHref);
}