Extensions - List, Edit, Copy, Delete, Toggle: Maintain list sorting and page state.

This commit is contained in:
fusionate
2025-09-02 12:46:22 -06:00
parent 1c189ed780
commit 108693ef01
3 changed files with 39 additions and 19 deletions

View File

@@ -47,6 +47,11 @@
$language = new text;
$text = $language->get();
//get order and order by, page
$order_by = preg_replace('#[^a-zA-Z0-9_\-]#', '', ($_REQUEST["order_by"] ?? 'extension'));
$order = $_REQUEST["order"] ?? 'asc';
$page = isset($_REQUEST['page']) && is_numeric($_REQUEST['page']) ? $_REQUEST['page'] : 0;
//return the first item if data type = array, returns value if data type = text
function get_first_item($value) {
return is_array($value) ? $value[0] : $value;
@@ -96,7 +101,6 @@
if (!empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) {
$action = "update";
$extension_uuid = $_REQUEST["id"];
$page = $_REQUEST['page'] ?? null;
}
else {
$action = "add";
@@ -114,7 +118,7 @@
if ($total_extensions >= $limit_extensions) {
message::add($text['message-maximum_extensions'].' '.$limit_extensions, 'negative');
header('Location: extensions.php'.(isset($page) && is_numeric($page) ? '?page='.$page : null));
header('Location: extensions.php?'.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null));
exit;
}
}
@@ -320,7 +324,7 @@
$p->delete('extension_user_delete', 'temp');
//redirect
header("Location: extension_edit.php?id=".$extension_uuid);
header("Location: extension_edit.php?id=".$extension_uuid.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null));
exit;
}
@@ -347,7 +351,7 @@
$p->delete('device_line_delete', 'temp');
//redirect
header("Location: extension_edit.php?id=".$extension_uuid);
header("Location: extension_edit.php?id=".$extension_uuid.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null));
exit;
}
}
@@ -890,10 +894,10 @@
message::add($text['message-update']);
}
if ($range > 1) {
header("Location: extensions.php");
header("Location: extensions.php?".(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null));
}
else {
header("Location: extension_edit.php?id=".$extension_uuid.(isset($page) && is_numeric($page) ? '&page='.$page : null));
header("Location: extension_edit.php?id=".$extension_uuid.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null));
}
exit;
}
@@ -1144,13 +1148,13 @@
echo " var new_ext = prompt('".$text['message-extension']."');\n";
echo " if (new_ext != null) {\n";
echo " if (!isNaN(new_ext)) {\n";
echo " document.location.href='extension_copy.php?id=".escape($extension_uuid ?? '')."&ext=' + new_ext".(!empty($page) && is_numeric($page) ? " + '&page=".$page."'" : null).";\n";
echo " document.location.href='extension_copy.php?id=".escape($extension_uuid ?? '')."&ext=' + new_ext + '".(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(!empty($page) && is_numeric($page) ? '&page='.$page : null)."';\n";
echo " }\n";
echo " else {\n";
echo " var new_number_alias = prompt('".$text['message-number_alias']."');\n";
echo " if (new_number_alias != null) {\n";
echo " if (!isNaN(new_number_alias)) {\n";
echo " document.location.href='extension_copy.php?id=".escape($extension_uuid ?? '')."&ext=' + new_ext + '&alias=' + new_number_alias".(!empty($page) && is_numeric($page) ? " + '&page=".$page."'" : null).";\n";
echo " document.location.href='extension_copy.php?id=".escape($extension_uuid ?? '')."&ext=' + new_ext + '&alias=' + new_number_alias + '".(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(!empty($page) && is_numeric($page) ? '&page='.$page : null)."';\n";
echo " }\n";
echo " }\n";
echo " }\n";
@@ -1170,7 +1174,7 @@
}
echo "</div>\n";
echo " <div class='actions'>\n";
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back'),'id'=>'btn_back','link'=>'extensions.php'.(isset($page) && is_numeric($page) ? '?page='.$page : null)]);
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back'),'id'=>'btn_back','link'=>'extensions.php?'.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null)]);
if ($action == 'update') {
$button_margin = 'margin-left: 15px;';
if (permission_exists('xml_cdr_view')) {
@@ -2351,6 +2355,10 @@
echo "</div>\n";
echo "<br><br>";
if (!empty($order_by)) {
echo "<input type='hidden' name='order_by' value='".$order_by."'>\n";
echo "<input type='hidden' name='order' value='".$order."'>\n";
}
if (isset($page) && is_numeric($page)) {
echo "<input type='hidden' name='page' value='".$page."'>\n";
}