Messages: List view and button updates.

This commit is contained in:
Nate
2020-02-05 19:31:40 -07:00
parent b4602d8521
commit 4265a82a78
6 changed files with 940 additions and 952 deletions
File diff suppressed because it is too large Load Diff
+61 -27
View File
@@ -54,7 +54,7 @@
//get http post variables and set them to php variables //get http post variables and set them to php variables
if (is_array($_POST)) { if (is_array($_POST)) {
$message_uuid = $_POST["message_uuid"]; $message_uuid = $_POST["message_uuid"];
//$user_uuid = $_POST["user_uuid"]; $user_uuid = $_POST["user_uuid"];
$message_type = $_POST["message_type"]; $message_type = $_POST["message_type"];
$message_direction = $_POST["message_direction"]; $message_direction = $_POST["message_direction"];
$message_date = $_POST["message_date"]; $message_date = $_POST["message_date"];
@@ -75,9 +75,34 @@
$message_uuid = $_POST["message_uuid"]; $message_uuid = $_POST["message_uuid"];
} }
//process the http post data by submitted action
if ($_POST['action'] != '' && is_uuid($message_uuid)) {
$array[0]['checked'] = 'true';
$array[0]['uuid'] = $message_uuid;
switch ($_POST['action']) {
case 'delete':
if (permission_exists('message_delete')) {
$obj = new messages;
$obj->delete($array);
}
break;
}
header('Location: messages_log.php');
exit;
}
//validate the token
$token = new token;
if (!$token->validate($_SERVER['PHP_SELF'])) {
message::add($text['message-invalid_token'],'negative');
header('Location: messages_log.php');
exit;
}
//check for all required data //check for all required data
$msg = ''; $msg = '';
//if (strlen($user_uuid) == 0) { $msg .= $text['message-required']." ".$text['label-user_uuid']."<br>\n"; }
if (strlen($message_type) == 0) { $msg .= $text['message-required']." ".$text['label-message_type']."<br>\n"; } if (strlen($message_type) == 0) { $msg .= $text['message-required']." ".$text['label-message_type']."<br>\n"; }
if (strlen($message_direction) == 0) { $msg .= $text['message-required']." ".$text['label-message_direction']."<br>\n"; } if (strlen($message_direction) == 0) { $msg .= $text['message-required']." ".$text['label-message_direction']."<br>\n"; }
if (strlen($message_date) == 0) { $msg .= $text['message-required']." ".$text['label-message_date']."<br>\n"; } if (strlen($message_date) == 0) { $msg .= $text['message-required']." ".$text['label-message_date']."<br>\n"; }
@@ -161,9 +186,6 @@
unset($sql, $parameters); unset($sql, $parameters);
} }
//show the header
require_once "resources/header.php";
//get the users //get the users
$sql = "select user_uuid, username from v_users "; $sql = "select user_uuid, username from v_users ";
$sql .= "where domain_uuid = :domain_uuid "; $sql .= "where domain_uuid = :domain_uuid ";
@@ -174,24 +196,38 @@
$users = $database->select($sql, $parameters, 'all'); $users = $database->select($sql, $parameters, 'all');
unset($sql, $parameters); unset($sql, $parameters);
//create token
$object = new token;
$token = $object->create($_SERVER['PHP_SELF']);
//include the header
$document['title'] = $text['title-message'];
require_once "resources/header.php";
//show the content //show the content
echo "<form name='frm' id='frm' method='post' action=''>\n"; echo "<form name='frm' method='post'>\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<div class='action_bar' id='action_bar'>\n";
echo " <div class='heading'><b>".$text['title-message']."</b></div>\n";
echo " <div class='actions'>\n";
echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'style'=>'margin-right: 15px;','link'=>'messages_log.php']);
if ($action == 'update' && permission_exists('message_delete')) {
echo button::create(['type'=>'submit','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'name'=>'action','value'=>'delete','onclick'=>"if (confirm('".$text['confirm-delete']."')) { document.getElementById('frm').submit(); } else { this.blur(); return false; }",'style'=>'margin-right: 15px;']);
}
echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save']]);
echo " </div>\n";
echo " <div style='clear: both;'></div>\n";
echo "</div>\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr>\n"; echo "<tr>\n";
echo "<td align='left' width='30%' nowrap='nowrap' valign='top'><b>".$text['title-message']."</b><br><br></td>\n"; echo "<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo "<td width='70%' align='right' valign='top'>\n";
echo " <input type='button' class='btn' name='' alt='".$text['button-back']."' onclick=\"window.location='messages_log.php'\" value='".$text['button-back']."'>";
echo " <input type='submit' class='btn' value='".$text['button-save']."'>";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-username']."\n"; echo " ".$text['label-username']."\n";
echo "</td>\n"; echo "</td>\n";
echo "<td class='vtable' style='position: relative;' align='left'>\n"; echo "<td width='70%' class='vtable' style='position: relative;' align='left'>\n";
echo " <select class='formfld' name='user_uuid'>\n"; echo " <select class='formfld' name='user_uuid'>\n";
echo " <option value=''></option>\n";
foreach($users as $row) { foreach($users as $row) {
echo " <option value='".escape($row['user_uuid'])."' ".($row['user_uuid'] == $user_uuid ? "selected='selected'" : null).">".escape($row['username'])."</option>\n"; echo " <option value='".escape($row['user_uuid'])."' ".($row['user_uuid'] == $user_uuid ? "selected='selected'" : null).">".escape($row['username'])."</option>\n";
} }
@@ -268,7 +304,7 @@
echo " ".$text['label-message_text']."\n"; echo " ".$text['label-message_text']."\n";
echo "</td>\n"; echo "</td>\n";
echo "<td class='vtable' style='position: relative;' align='left'>\n"; echo "<td class='vtable' style='position: relative;' align='left'>\n";
echo " <input class='formfld' type='text' name='message_text' maxlength='255' value=\"".escape($message_text)."\">\n"; echo " <textarea class='formfld' style='min-width: 40%; height: 100px;' name='message_text'>".escape($message_text)."</textarea>\n";
echo "<br />\n"; echo "<br />\n";
echo $text['description-message_text']."\n"; echo $text['description-message_text']."\n";
echo "</td>\n"; echo "</td>\n";
@@ -333,17 +369,15 @@
echo "</tr>\n"; echo "</tr>\n";
} }
echo " <tr>\n"; echo "</table>\n";
echo " <td colspan='2' align='right'>\n"; echo "<br /><br />\n";
echo " <input type='hidden' name='message_uuid' value='".escape($message_uuid)."'>\n";
echo " <input type='submit' class='btn' value='".$text['button-save']."'>\n"; echo "<input type='hidden' name='message_uuid' value='".escape($message_uuid)."'>\n";
echo " </td>\n"; echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
echo " </tr>";
echo "</table>";
echo "</form>"; echo "</form>";
echo "<br /><br />";
//include the footer //include the footer
require_once "resources/footer.php"; require_once "resources/footer.php";
?> ?>
+13 -16
View File
@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com> Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2016-2019 Portions created by the Initial Developer are Copyright (C) 2016-2020
the Initial Developer. All Rights Reserved. the Initial Developer. All Rights Reserved.
Contributor(s): Contributor(s):
@@ -192,10 +192,10 @@
echo " </td>\n"; echo " </td>\n";
echo " </tr>\n"; echo " </tr>\n";
echo " </table>\n"; echo " </table>\n";
echo " <center>\n"; echo " <center style='margin-top: 15px;'>\n";
echo " <input type='reset' class='btn' style='float: left; margin-top: 15px;' value='".$text['button-clear']."' onclick=\"$('#message_new').reset();\">\n"; echo button::create(['type'=>'reset','label'=>$text['button-clear'],'icon'=>$_SESSION['theme']['button_icon_reset'],'style'=>'float: left;','onclick'=>"$('#message_new').reset();"]);
echo " <input type='button' class='btn' style='margin-top: 15px;' value='".$text['button-close']."' onclick=\"$('#message_new_layer').fadeOut(200);\">\n"; echo button::create(['type'=>'button','label'=>$text['button-close'],'icon'=>'times','onclick'=>"$('#message_new_layer').fadeOut(200);"]);
echo " <input type='submit' class='btn' style='float: right; margin-top: 15px;' value='".$text['button-send']."'>\n"; echo button::create(['type'=>'submit','label'=>$text['button-send'],'icon'=>'paper-plane','style'=>'float: right;']);
echo " </center>\n"; echo " </center>\n";
echo " </span>\n"; echo " </span>\n";
echo " </form>\n"; echo " </form>\n";
@@ -209,19 +209,16 @@
echo "<div id='message_media_layer' style='display: none;'></div>\n"; echo "<div id='message_media_layer' style='display: none;'></div>\n";
//show the content //show the content
echo "<table width='100%' border='0'>\n"; echo "<div class='action_bar' id='action_bar'>\n";
echo " <tr>\n"; echo " <div class='heading'><b>".$text['title-messages']."</b></div>\n";
echo " <td width='50%' align='left' nowrap='nowrap'><b>".$text['title-messages']."</b><br><br></td>\n"; echo " <div class='actions'>\n";
echo " <form method='get' action=''>\n";
echo " <td width='50%' style='vertical-align: top; text-align: right; white-space: nowrap;'>\n";
if (permission_exists('message_add')) { if (permission_exists('message_add')) {
echo " <input type='button' class='btn' name='' alt='".$text['label-new_message']."' onclick=\"$('#message_new_layer').fadeIn(200); unload_thread();\" value='".$text['label-new_message']."'>\n"; echo button::create(['type'=>'button','label'=>$text['label-new_message'],'icon'=>$_SESSION['theme']['button_icon_add'],'onclick'=>"$('#message_new_layer').fadeIn(200); unload_thread();"]);
} }
echo " <a href='messages_log.php'><input type='button' class='btn' alt=\"".$text['label-log']."\" value=\"".$text['label-log']."\"></a>\n"; echo button::create(['type'=>'button','label'=>$text['label-log'],'icon'=>'list','link'=>'messages_log.php']);
echo " </td>\n"; echo " </div>\n";
echo " </form>\n"; echo " <div style='clear: both;'></div>\n";
echo " </tr>\n"; echo "</div>\n";
echo "</table>\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n"; echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo " <tr>\n"; echo " <tr>\n";
+95 -98
View File
@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com> Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2016-2019 Portions created by the Initial Developer are Copyright (C) 2016-2020
the Initial Developer. All Rights Reserved. the Initial Developer. All Rights Reserved.
Contributor(s): Contributor(s):
@@ -43,26 +43,26 @@
$language = new text; $language = new text;
$text = $language->get(); $text = $language->get();
//get the action //get the http post data
if (is_array($_POST["messages"])) { if (is_array($_POST['messages'])) {
$messages = $_POST["messages"]; $action = $_POST['action'];
foreach($messages as $row) { $search = $_POST['search'];
if ($row['action'] == 'delete') { $messages = $_POST['messages'];
$action = 'delete';
break;
}
}
} }
//delete the messages //process the http post data by action
if (permission_exists('message_delete')) { if ($action != '' && is_array($messages) && @sizeof($messages) != 0) {
if ($action == "delete") { switch ($action) {
//download case 'delete':
$obj = new messages; if (permission_exists('message_delete')) {
$obj->delete($messages); $obj = new messages;
//delete message $obj->delete($messages);
message::add($text['message-delete']); }
break;
} }
header('Location: messages_log.php'.($search != '' ? '?search='.urlencode($search) : null));
exit;
} }
//get variables used to control the order //get variables used to control the order
@@ -75,11 +75,9 @@
$sql_search = " ("; $sql_search = " (";
$sql_search .= "lower(message_type) like :search "; $sql_search .= "lower(message_type) like :search ";
$sql_search .= "or lower(message_direction) like :search "; $sql_search .= "or lower(message_direction) like :search ";
$sql_search .= "or lower(message_date) like :search ";
$sql_search .= "or lower(message_from) like :search "; $sql_search .= "or lower(message_from) like :search ";
$sql_search .= "or lower(message_to) like :search "; $sql_search .= "or lower(message_to) like :search ";
$sql_search .= "or lower(message_text) like :search "; $sql_search .= "or lower(message_text) like :search ";
$sql_search .= "or lower(message_media_type) like :search ";
$sql_search .= ") "; $sql_search .= ") ";
$parameters['search'] = '%'.$search.'%'; $parameters['search'] = '%'.$search.'%';
} }
@@ -110,9 +108,9 @@
$param .= "&show=all"; $param .= "&show=all";
} }
if (isset($_GET['page'])) { if (isset($_GET['page'])) {
$page = $_GET['page']; $page = is_numeric($_GET['page']) ? $_GET['page'] : 0;
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; } list($paging_controls, $rows_per_page) = paging($num_rows, $param, $rows_per_page);
list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page); list($paging_controls_mini, $rows_per_page) = paging($num_rows, $param, $rows_per_page, true);
$offset = $rows_per_page * $page; $offset = $rows_per_page * $page;
} }
@@ -124,10 +122,9 @@
$messages = $database->select($sql, $parameters, 'all'); $messages = $database->select($sql, $parameters, 'all');
unset($sql, $parameters); unset($sql, $parameters);
//alternate the row style //create token
$c = 0; $object = new token;
$row_style["0"] = "row_style0"; $token = $object->create($_SERVER['PHP_SELF']);
$row_style["1"] = "row_style1";
//include header //include header
$document['title'] = $text['title-message_log']; $document['title'] = $text['title-message_log'];
@@ -151,112 +148,112 @@
echo "</script>\n"; echo "</script>\n";
//show the content //show the content
echo "<table width='100%' border='0'>\n"; echo "<div class='action_bar' id='action_bar'>\n";
echo " <tr>\n"; echo " <div class='heading'><b>".$text['title-message_log']." (".$num_rows.")</b></div>\n";
echo " <td width='50%' align='left' nowrap='nowrap'><b>".$text['title-message_log']."</b><br><br></td>\n"; echo " <div class='actions'>\n";
echo " <form method='get' action=''>\n"; echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'style'=>'margin-right: 15px;','link'=>'messages.php']);
echo " <td width='50%' style='vertical-align: top; text-align: right; white-space: nowrap;'>\n"; if (permission_exists('message_delete') && $messages) {
echo " <a href='messages.php'><input type='button' class='btn' value='".$text['button-back']."'></a>\n"; echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$_SESSION['theme']['button_icon_delete'],'onclick'=>"if (confirm('".$text['confirm-delete']."')) { list_action_set('delete'); list_form_submit('form_list'); } else { this.blur(); return false; }"]);
}
echo "<form id='form_search' class='inline' method='get'>\n";
if (permission_exists('message_all')) { if (permission_exists('message_all')) {
if ($_GET['show'] == 'all') { if ($_GET['show'] == 'all') {
echo " <input type='hidden' name='show' value='all'>"; echo " <input type='hidden' name='show' value='all'>\n";
} }
else { else {
echo " <input type='button' class='btn' value='".$text['button-show_all']."' onclick=\"window.location='messages_log.php?show=all';\">\n"; echo button::create(['type'=>'button','label'=>$text['button-show_all'],'icon'=>$_SESSION['theme']['button_icon_all'],'link'=>'?show=all']);
} }
} }
if (permission_exists('message_delete')) { echo "<input type='text' class='txt list-search' name='search' id='search' value=\"".escape($search)."\" placeholder=\"".$text['label-search']."\" onkeydown='list_search_reset();'>";
echo " <input type='button' class='btn' value='".$text['button-delete']."' onclick=\"if (confirm('".$text['confirm-delete']."')) { document.getElementById('form_message_log').action = 'message_delete.php'; document.getElementById('form_message_log').submit(); }\">\n"; echo button::create(['label'=>$text['button-search'],'icon'=>$_SESSION['theme']['button_icon_search'],'type'=>'submit','id'=>'btn_search','style'=>($search != '' ? 'display: none;' : null)]);
echo button::create(['label'=>$text['button-reset'],'icon'=>$_SESSION['theme']['button_icon_reset'],'type'=>'button','id'=>'btn_reset','link'=>'messages_log.php','style'=>($search == '' ? 'display: none;' : null)]);
if ($paging_controls_mini != '') {
echo "<span style='margin-left: 15px;'>".$paging_controls_mini."</span>\n";
} }
echo " <input type='text' class='txt' style='width: 150px; margin-left: 15px;' name='search' id='search' value='".escape($search)."'>\n";
echo " <input type='submit' class='btn' name='submit' value='".$text['button-search']."'>\n";
echo " </td>\n";
echo " </form>\n"; echo " </form>\n";
echo " </tr>\n"; echo " </div>\n";
echo "</table>\n"; echo " <div style='clear: both;'></div>\n";
echo "</div>\n";
echo "<form id='form_list' method='post'>\n";
echo "<input type='hidden' id='action' name='action' value=''>\n";
echo "<input type='hidden' name='search' value=\"".escape($search)."\">\n";
echo "<table class='list'>\n";
echo "<tr class='list-header'>\n";
if (permission_exists('message_delete')) {
echo " <th class='checkbox'>\n";
echo " <input type='checkbox' id='checkbox_all' name='checkbox_all' onclick='list_all_toggle();' ".($messages ?: "style='visibility: hidden;'").">\n";
echo " </th>\n";
}
echo th_order_by('message_type', $text['label-message_type'], $order_by, $order);
echo th_order_by('message_direction', $text['label-message_direction'], $order_by, $order);
echo th_order_by('message_date', $text['label-message_date'], $order_by, $order);
echo th_order_by('message_from', $text['label-message_from'], $order_by, $order);
echo th_order_by('message_to', $text['label-message_to'], $order_by, $order);
echo th_order_by('message_text', $text['label-message_text'], $order_by, $order, null, "class='pct-20 hide-xs'");
if (permission_exists('message_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
echo " <td class='action-button'>&nbsp;</td>\n";
}
echo "</tr>\n";
echo "<form id='form_message_log' method='post' action=''>\n";
echo "<table class='tr_hover' width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
if (is_array($messages) && @sizeof($messages) != 0) { if (is_array($messages) && @sizeof($messages) != 0) {
$x = 0; $x = 0;
foreach($messages as $row) { foreach ($messages as $row) {
if ($x == 0) {
echo " <th style='width:30px;'>\n";
echo " <input type='checkbox' name='checkbox_all' id='checkbox_all' value='' onclick=\"checkbox_toggle();\">\n";
echo " </th>\n";
echo th_order_by('message_type', $text['label-message_type'], $order_by, $order);
echo th_order_by('message_direction', $text['label-message_direction'], $order_by, $order);
echo th_order_by('message_date', $text['label-message_date'], $order_by, $order);
echo th_order_by('message_from', $text['label-message_from'], $order_by, $order);
echo th_order_by('message_to', $text['label-message_to'], $order_by, $order);
echo th_order_by('message_text', $text['label-message_text'], $order_by, $order);
echo " <td class='list_control_icons'>";
echo " &nbsp;\n";
echo " </td>\n";
echo "</tr>\n";
}
if (permission_exists('message_edit')) { if (permission_exists('message_edit')) {
$tr_link = "href='message_edit.php?id=".escape($row['message_uuid'])."'"; $list_row_url = "message_edit.php?id=".urlencode($row['message_uuid']);
} }
echo "<tr ".$tr_link.">\n"; echo "<tr class='list-row' href='".$list_row_url."'>\n";
//echo " <td valign='top' class=''>".escape($row['user_uuid'])."&nbsp;</td>\n"; if (permission_exists('message_delete')) {
echo " <td valign='top' class='".$row_style[$c]." tr_link_void' style='align: center; padding: 3px 3px 0px 7px;'>\n"; echo " <td class='checkbox'>\n";
echo " <input type='checkbox' name=\"messages[]\" id='checkbox_".$x."' value='".escape($row['message_uuid'])."' onclick=\"if (!this.checked) { document.getElementById('chk_all_".$x."').checked = false; }\">\n"; echo " <input type='checkbox' name='messages[$x][checked]' id='checkbox_".$x."' value='true' onclick=\"if (!this.checked) { document.getElementById('checkbox_all').checked = false; }\">\n";
echo " </td>\n"; echo " <input type='hidden' name='messages[$x][uuid]' value='".escape($row['message_uuid'])."' />\n";
echo " <td valign='top' class='".$row_style[$c]."'>"; echo " </td>\n";
}
echo " <td>";
switch ($row['message_type']) { switch ($row['message_type']) {
case 'sms': echo $text['label-sms']; break; case 'sms': echo $text['label-sms']; break;
case 'mms': echo $text['label-mms']; break; case 'mms': echo $text['label-mms']; break;
case 'chat': echo $text['label-chat']; break; case 'chat': echo $text['label-chat']; break;
} }
echo " </td>\n"; echo " </td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>"; echo " <td>";
switch ($row['message_direction']) { switch ($row['message_direction']) {
case "inbound": echo $text['label-inbound']; break; case "inbound": echo $text['label-inbound']; break;
case "outbound": echo $text['label-outbound']; break; case "outbound": echo $text['label-outbound']; break;
} }
echo " </td>\n"; echo " </td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".escape($row['message_date'])."&nbsp;</td>\n"; echo " <td>";
echo " <td valign='top' class='".$row_style[$c]."'>".escape(format_phone($row['message_from']))."&nbsp;</td>\n"; $message_date = explode(' ', $row['message_date']);
echo " <td valign='top' class='".$row_style[$c]."'>".escape(format_phone($row['message_to']))."&nbsp;</td>\n"; $message_date = escape($message_date[0])." <span class='hide-sm-dn'>".$message_date[1]."</span>";
echo " <td valign='top' class='".$row_style[$c]."'>".escape($row['message_text'])."&nbsp;</td>\n";
echo " <td class='list_control_icons'>";
if (permission_exists('message_edit')) { if (permission_exists('message_edit')) {
echo "<a href='message_edit.php?id=".escape($row['message_uuid'])."' alt='".$text['button-edit']."'>$v_link_label_edit</a>"; echo "<a href='".$list_row_url."'>".$message_date."</a>";
} }
if (permission_exists('message_delete')) { else {
echo "<a href='message_delete.php?messages[]=".escape($row['message_uuid'])."' alt='".$text['button-delete']."' onclick=\"if (confirm('".$text['confirm-delete']."')) { document.getElementById('form_message_log').submit(); } else { return false; }\">$v_link_label_delete</a>"; echo $message_date;
} }
echo " </td>\n"; echo " </td>\n";
echo " <td>".escape(format_phone($row['message_from']))."&nbsp;</td>\n";
echo " <td>".escape(format_phone($row['message_to']))."&nbsp;</td>\n";
echo " <td class='description overflow hide-xs'>".escape($row['message_text'])."&nbsp;</td>\n";
if (permission_exists('message_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
echo " <td class='action-button'>\n";
echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]);
echo " </td>\n";
}
echo "</tr>\n"; echo "</tr>\n";
$x++; $x++;
$c = $c ? 0 : 1;
} }
unset($messages);
} }
unset($messages, $row);
echo "<tr>\n"; echo "</table>\n";
echo "<td colspan='8' align='left'>\n"; echo "<br />\n";
echo " <table width='100%' cellpadding='0' cellspacing='0'>\n"; echo "<div align='center'>".$paging_controls."</div>\n";
echo " <tr>\n"; echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
echo " <td width='33.3%' nowrap='nowrap'>&nbsp;</td>\n";
echo " <td width='33.3%' align='center' nowrap='nowrap'>$paging_controls</td>\n";
echo " <td class='list_control_icons'>";
echo " &nbsp;";
echo " </td>\n";
echo " </tr>\n";
echo " </table>\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>";
echo "</form>\n"; echo "</form>\n";
echo "<br /><br />";
//include the footer //include the footer
require_once "resources/footer.php"; require_once "resources/footer.php";
?> ?>
+8 -4
View File
@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com> Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2016-2019 Portions created by the Initial Developer are Copyright (C) 2016-2020
the Initial Developer. All Rights Reserved. the Initial Developer. All Rights Reserved.
Contributor(s): Contributor(s):
@@ -302,9 +302,13 @@
echo "</table>\n"; echo "</table>\n";
echo "<table cellpadding='0' cellspacing='0' border='0' width='100%' style='margin-top: 15px;'>\n"; echo "<table cellpadding='0' cellspacing='0' border='0' width='100%' style='margin-top: 15px;'>\n";
echo " <tr>\n"; echo " <tr>\n";
echo " <td align='left' width='50%'><input type='reset' class='btn' value='".$text['button-clear']."' onclick=\"$('#message_text').trigger('focus');\"></td>\n"; echo " <td align='left' width='50%'>";
echo button::create(['label'=>$text['button-clear'],'icon'=>$_SESSION['theme']['button_icon_reset'],'type'=>'reset','onclick'=>"$('#message_text').trigger('focus');"]);
echo " </td>\n";
echo " <td align='center'><span id='thread_refresh_state'><img src='resources/images/refresh_active.gif' style='width: 16px; height: 16px; border: none; cursor: pointer;' onclick=\"refresh_thread_stop('".$number."','".$contact_uuid."');\" alt=\"".$text['label-refresh_pause']."\" title=\"".$text['label-refresh_pause']."\"></span></td>\n"; echo " <td align='center'><span id='thread_refresh_state'><img src='resources/images/refresh_active.gif' style='width: 16px; height: 16px; border: none; cursor: pointer;' onclick=\"refresh_thread_stop('".$number."','".$contact_uuid."');\" alt=\"".$text['label-refresh_pause']."\" title=\"".$text['label-refresh_pause']."\"></span></td>\n";
echo " <td align='right' width='50%'><input type='submit' class='btn' value='".$text['button-send']."' title=\"".$text['label-ctrl_enter']."\"></td>\n"; echo " <td align='right' width='50%'>";
echo button::create(['type'=>'submit','label'=>$text['button-send'],'title'=>$text['label-ctrl_enter'],'icon'=>'paper-plane']);
echo " </td>\n";
echo " </td>\n"; echo " </td>\n";
echo "</table>\n"; echo "</table>\n";
echo "</form>\n"; echo "</form>\n";
@@ -343,4 +347,4 @@
} }
} }
?> ?>
+90 -54
View File
@@ -1,22 +1,60 @@
<?php <?php
/*
FusionPBX
Version: MPL 1.1
/** The contents of this file are subject to the Mozilla Public License Version
* call_recordings class 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* @method null download http://www.mozilla.org/MPL/
*/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is FusionPBX
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2020
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
//define the messages class
if (!class_exists('messages')) { if (!class_exists('messages')) {
class messages { class messages {
/** /**
* Called when the object is created * declare private variables
*/
private $app_name;
private $app_uuid;
private $permission_prefix;
private $list_page;
private $table;
private $uuid_prefix;
/**
* called when the object is created
*/ */
public function __construct() { public function __construct() {
//assign private variables
$this->app_name = 'messages';
$this->app_uuid = '4a20815d-042c-47c8-85df-085333e79b87';
$this->permission_prefix = 'message_';
$this->list_page = 'messages_log.php';
$this->table = 'messages';
$this->uuid_prefix = 'message_';
} }
/** /**
* Called when there are no references to a particular object * called when there are no references to a particular object
* unset the variables used in the class * unset the variables used in the class
*/ */
public function __destruct() { public function __destruct() {
@@ -26,64 +64,62 @@ if (!class_exists('messages')) {
} }
/** /**
* delete messages * delete records
*/ */
public function delete($messages) { public function delete($records) {
if (permission_exists('message_delete')) { if (permission_exists($this->permission_prefix.'delete')) {
//delete multiple messages //add multi-lingual support
if (is_array($messages)) { $language = new text;
//get the action $text = $language->get();
foreach($messages as $row) {
if ($row['action'] == 'delete') { //validate the token
$action = 'delete'; $token = new token;
break; if (!$token->validate($_SERVER['PHP_SELF'])) {
message::add($text['message-invalid_token'],'negative');
header('Location: '.$this->list_page);
exit;
}
//delete multiple records
if (is_array($records) && @sizeof($records) != 0) {
//build the delete array
foreach ($records as $x => $record) {
if ($record['checked'] == 'true' && is_uuid($record['uuid'])) {
$array[$this->table][$x][$this->uuid_prefix.'uuid'] = $record['uuid'];
$array[$this->table][$x]['domain_uuid'] = $_SESSION['domain_uuid'];
$array['message_media'][$x][$this->uuid_prefix.'uuid'] = $record['uuid'];
$array['message_media'][$x]['domain_uuid'] = $_SESSION['domain_uuid'];
} }
} }
//delete the checked rows //delete the checked rows
if ($action == 'delete') { if (is_array($array) && @sizeof($array) != 0) {
$x = 0;
foreach($messages as $row) {
if ($row['action'] == 'delete' or $row['checked'] == 'true') {
//build delete array
$array['messages'][$x]['message_uuid'] = $row['message_uuid'];
$x++;
}
}
if (is_array($array) && @sizeof($array) != 0) {
//grant temporary permissions
$p = new permissions;
$p->add('message_delete', 'temp');
//execute delete //grant temporary permissions
$database = new database; $p = new permissions;
$database->app_name = 'messages'; $p->add('message_media_delete', 'temp');
$database->app_uuid = '4a20815d-042c-47c8-85df-085333e79b87';
$database->delete($array);
unset($array);
//revoke temporary permissions //execute delete
$p->delete('message_delete', 'temp'); $database = new database;
} $database->app_name = $this->app_name;
unset($messages); $database->app_uuid = $this->app_uuid;
$database->delete($array);
unset($array);
//revoke temporary permissions
$p->delete('message_media_delete', 'temp');
//set message
message::add($text['message-delete']);
} }
unset($records);
} }
} }
} //end the delete function } //method
} //class
/**
* add messages
*/
public function add() {
} //end the add function
} //end the class
} }
/*
$obj = new messages;
$obj->delete();
*/
?> ?>