Support for queries nested in directories, directory search, and sharing search queries
This commit is contained in:
parent
d1a7d5743e
commit
8170ab2855
@ -13,6 +13,20 @@ $.prototype.getCellText = function()
|
||||
return a;
|
||||
};
|
||||
|
||||
String.prototype.includesAll = function(parts)
|
||||
{
|
||||
var parent = this;
|
||||
var parts = parts.split(" ");
|
||||
var contains = true;
|
||||
|
||||
parts.forEach((part, i) => {
|
||||
if (!parent.toLowerCase().includes(part.toLowerCase()))
|
||||
contains = false;
|
||||
});
|
||||
|
||||
return contains;
|
||||
};
|
||||
|
||||
// Trigger downloading a table as CSV:
|
||||
$.prototype.exportCSV = function(options)
|
||||
{
|
||||
|
@ -5,10 +5,23 @@
|
||||
|
||||
$strQueryDir = "files/sql";
|
||||
|
||||
$varFiles = is_dir($strQueryDir)? scandir($strQueryDir) : [];
|
||||
$varFiles = array_diff($varFiles, [".", ".."]);
|
||||
// $varFiles = is_dir($strQueryDir)? scandir($strQueryDir) : [];
|
||||
// $varFiles = array_diff($varFiles, [".", ".."]);
|
||||
|
||||
function removeQueryDir(&$strInput)
|
||||
{
|
||||
global $strQueryDir;
|
||||
$strInput = substr($strInput, strlen($strQueryDir) + 1);
|
||||
}
|
||||
|
||||
$strFind = shell_exec("find files/sql | grep -Ei \"\.sql$\"");
|
||||
$varFiles = explode("\n", $strFind);
|
||||
$varFiles = array_filter($varFiles);
|
||||
|
||||
array_walk($varFiles, "removeQueryDir");
|
||||
|
||||
$strSelection = implode("/", Request::getArgs());
|
||||
|
||||
$strSelection = Request::getArg(0);
|
||||
$varInputs = [[]];
|
||||
$varRows = null;
|
||||
$strError = null;
|
||||
@ -197,9 +210,7 @@
|
||||
<div class="navbar navbar-expand bg-primary navbar-dark d-print-none">
|
||||
<div class="container-fluid justify-content-between">
|
||||
<div class="d-inline-flex align-items-center">
|
||||
<a class="navbar-brand"><?= $strTitle; ?></a>
|
||||
|
||||
<a class="nav-item btn btn-outline-light me-2" onclick="fnShowPage('#page-input');"><i class="fa fa-fw fa-edit"></i> <span class="d-none d-lg-inline">Setup</span></a>
|
||||
<a class="nav-item btn btn-outline-light me-2" onclick="fnShowPage('#page-input');"><i class="fa fa-fw fa-cog"></i> <span class="d-none d-lg-inline">Options</span></a>
|
||||
|
||||
<?php if ($varRows !== null && count($varRows) > 0): ?>
|
||||
<a class="nav-item btn btn-outline-light me-2" onclick="fnShowPage('#page-output');"><i class="fa fa-fw fa-table"></i> <span class="d-none d-lg-inline">Results</span></a>
|
||||
@ -234,6 +245,8 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
|
||||
|
||||
<div class="mb-3">
|
||||
<label>Choose Query</label>
|
||||
<div class="input-group">
|
||||
@ -312,6 +325,9 @@
|
||||
|
||||
<?php if (count($varOptions) > 0): ?>
|
||||
|
||||
<div class="input-group">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-at"></i></span>
|
||||
|
||||
<select class="form-select" name="<?= $strInputName; ?>">
|
||||
<?php foreach ($varOptions as $o): ?>
|
||||
<?php
|
||||
@ -333,6 +349,8 @@
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
|
||||
</div>
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<div class="input-group">
|
||||
@ -373,6 +391,43 @@
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
$varDirectories = [];
|
||||
|
||||
foreach ($varFiles as $f)
|
||||
{
|
||||
preg_match("/^(.*\/)[^\/]/", $f, $varMatches);
|
||||
$strDirectory = $varMatches[1];
|
||||
|
||||
if (strlen($strDirectory) > 0)
|
||||
$varDirectories[$strDirectory] = 1;
|
||||
}
|
||||
|
||||
//Respond::json($varDirectoryKeys);
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="mb-3">
|
||||
<label>Directories</label>
|
||||
<div class="">
|
||||
<?php foreach ($varDirectories as $d => $a): ?>
|
||||
|
||||
<div class="border p-3">
|
||||
<a class="link-underline link-underline-opacity-0" href="/run?q=<?= $d; ?>">
|
||||
<i class="fa fa-fw fa-folder me-2"></i>
|
||||
<?= $d; ?>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -390,7 +445,7 @@
|
||||
<div class="d-none d-print-block">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-12">
|
||||
<h1><?= $strTitle; ?></h1>
|
||||
|
||||
<?php foreach (["description"] as $strClass): ?>
|
||||
@ -398,9 +453,7 @@
|
||||
<p><?= $varOptions[$strClass]; ?></p>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<ul>
|
||||
<?php foreach ($varPosted as $k => $v): ?>
|
||||
<li><?= $k; ?>: <?= $v; ?></li>
|
||||
@ -492,7 +545,7 @@
|
||||
|
||||
var fileName = x.text();
|
||||
|
||||
if (fileName.toLowerCase().includes(q.toLowerCase()))
|
||||
if (fileName.includesAll(q))
|
||||
x.removeClass("d-none");
|
||||
});
|
||||
});
|
||||
@ -539,3 +592,19 @@
|
||||
});
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<?php
|
||||
$strSearchQuery = Request::getParam("q");
|
||||
?>
|
||||
|
||||
<?php if ($strSearchQuery !== null && strlen($strSearchQuery) > 0): ?>
|
||||
<script>
|
||||
$(function() {
|
||||
$("#query-search")
|
||||
.first()
|
||||
.val("<?= $strSearchQuery; ?>")
|
||||
.trigger("input");
|
||||
});
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
|
Loading…
Reference in New Issue
Block a user