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

View file

@ -38,6 +38,18 @@
$filter.removeClass('current'); $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 () { init = function () {
if (H5AI.core.settings.showFilter) { if (H5AI.core.settings.showFilter) {
@ -63,7 +75,7 @@
val = $input.val(); val = $input.val();
if (val) { if (val) {
filter(new RegExp(val)); filter(parseFilterSequence(val));
} else { } else {
filter(); filter();
} }

View file

@ -100,6 +100,10 @@
return decodeURI(uri); return decodeURI(uri);
} catch (err) {} } catch (err) {}
return uri; return uri;
},
reEscape = function (sequence) {
return sequence.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
}; };
return { return {
@ -108,7 +112,8 @@
getAbsHref: getAbsHref, getAbsHref: getAbsHref,
parseSize: parseSize, parseSize: parseSize,
formatSize: formatSize, 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) { function fail($code, $msg, $cond = true) {
if ($cond) { if ($cond) {
echo "$code: $msg"; 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")); list($action) = checkKeys(array("action"));

View file

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