mirror of
https://github.com/tuxis-ie/nsedit.git
synced 2025-06-07 00:47:00 +03:00
Implement record sorting. Closes #83
This commit is contained in:
parent
d103c7b04f
commit
749478c36a
2 changed files with 43 additions and 2 deletions
40
zones.php
40
zones.php
|
@ -70,13 +70,31 @@ function rrtype_compare($a, $b) {
|
|||
}
|
||||
}
|
||||
|
||||
function record_compare($a, $b) {
|
||||
function record_compare_default($a, $b) {
|
||||
if ($cmp = compareName($a['name'], $b['name'])) return $cmp;
|
||||
if ($cmp = rrtype_compare($a['type'], $b['type'])) return $cmp;
|
||||
if ($cmp = strnatcasecmp($a['content'], $b['content'])) return $cmp;
|
||||
return 0;
|
||||
}
|
||||
|
||||
function record_compare_name($a, $b) {
|
||||
return record_compare_default($a, $b);
|
||||
}
|
||||
|
||||
function record_compare_type($a, $b) {
|
||||
if ($cmp = rrtype_compare($a['type'], $b['type'])) return $cmp;
|
||||
if ($cmp = compareName($a['name'], $b['name'])) return $cmp;
|
||||
if ($cmp = strnatcasecmp($a['content'], $b['content'])) return $cmp;
|
||||
return 0;
|
||||
}
|
||||
|
||||
function record_compare_content($a, $b) {
|
||||
if ($cmp = strnatcasecmp($a['content'], $b['content'])) return $cmp;
|
||||
if ($cmp = compareName($a['name'], $b['name'])) return $cmp;
|
||||
if ($cmp = rrtype_compare($a['type'], $b['type'])) return $cmp;
|
||||
return 0;
|
||||
}
|
||||
|
||||
function add_db_zone($zonename, $accountname) {
|
||||
if (valid_user($accountname) === false) {
|
||||
jtable_respond(null, 'error', "$accountname is not a valid username");
|
||||
|
@ -173,7 +191,25 @@ case "listrecords":
|
|||
foreach ($records as &$record) {
|
||||
$record['id'] = json_encode($record);
|
||||
}
|
||||
usort($records, "record_compare");
|
||||
if (isset($_GET['jtSorting'])) {
|
||||
list($scolumn, $sorder) = preg_split("/ /", $_GET['jtSorting']);
|
||||
switch ($scolumn) {
|
||||
case "type":
|
||||
usort($records, "record_compare_type");
|
||||
break;
|
||||
case "content":
|
||||
usort($records, "record_compare_content");
|
||||
break;
|
||||
default:
|
||||
usort($records, "record_compare_name");
|
||||
break;
|
||||
}
|
||||
if ($sorder == "DESC") {
|
||||
$records = array_reverse($records);
|
||||
}
|
||||
} else {
|
||||
usort($records, "record_compare_name");
|
||||
}
|
||||
jtable_respond($records);
|
||||
break;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue