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

View File

@@ -54,7 +54,7 @@
//get http post variables and set them to php variables
if (is_array($_POST)) {
$message_uuid = $_POST["message_uuid"];
//$user_uuid = $_POST["user_uuid"];
$user_uuid = $_POST["user_uuid"];
$message_type = $_POST["message_type"];
$message_direction = $_POST["message_direction"];
$message_date = $_POST["message_date"];
@@ -75,9 +75,34 @@
$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
$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_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"; }
@@ -161,9 +186,6 @@
unset($sql, $parameters);
}
//show the header
require_once "resources/header.php";
//get the users
$sql = "select user_uuid, username from v_users ";
$sql .= "where domain_uuid = :domain_uuid ";
@@ -174,24 +196,38 @@
$users = $database->select($sql, $parameters, 'all');
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
echo "<form name='frm' id='frm' method='post' action=''>\n";
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
echo "<form name='frm' method='post'>\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 "<td align='left' width='30%' nowrap='nowrap' valign='top'><b>".$text['title-message']."</b><br><br></td>\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 "<td width='30%' class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-username']."\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 " <option value=''></option>\n";
foreach($users as $row) {
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 "</td>\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 $text['description-message_text']."\n";
echo "</td>\n";
@@ -333,17 +369,15 @@
echo "</tr>\n";
}
echo " <tr>\n";
echo " <td colspan='2' align='right'>\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 " </td>\n";
echo " </tr>";
echo "</table>";
echo "</table>\n";
echo "<br /><br />\n";
echo "<input type='hidden' name='message_uuid' value='".escape($message_uuid)."'>\n";
echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
echo "</form>";
echo "<br /><br />";
//include the footer
require_once "resources/footer.php";
?>
?>

View File

@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is
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.
Contributor(s):
@@ -192,10 +192,10 @@
echo " </td>\n";
echo " </tr>\n";
echo " </table>\n";
echo " <center>\n";
echo " <input type='reset' class='btn' style='float: left; margin-top: 15px;' value='".$text['button-clear']."' onclick=\"$('#message_new').reset();\">\n";
echo " <input type='button' class='btn' style='margin-top: 15px;' value='".$text['button-close']."' onclick=\"$('#message_new_layer').fadeOut(200);\">\n";
echo " <input type='submit' class='btn' style='float: right; margin-top: 15px;' value='".$text['button-send']."'>\n";
echo " <center style='margin-top: 15px;'>\n";
echo button::create(['type'=>'reset','label'=>$text['button-clear'],'icon'=>$_SESSION['theme']['button_icon_reset'],'style'=>'float: left;','onclick'=>"$('#message_new').reset();"]);
echo button::create(['type'=>'button','label'=>$text['button-close'],'icon'=>'times','onclick'=>"$('#message_new_layer').fadeOut(200);"]);
echo button::create(['type'=>'submit','label'=>$text['button-send'],'icon'=>'paper-plane','style'=>'float: right;']);
echo " </center>\n";
echo " </span>\n";
echo " </form>\n";
@@ -209,19 +209,16 @@
echo "<div id='message_media_layer' style='display: none;'></div>\n";
//show the content
echo "<table width='100%' border='0'>\n";
echo " <tr>\n";
echo " <td width='50%' align='left' nowrap='nowrap'><b>".$text['title-messages']."</b><br><br></td>\n";
echo " <form method='get' action=''>\n";
echo " <td width='50%' style='vertical-align: top; text-align: right; white-space: nowrap;'>\n";
echo "<div class='action_bar' id='action_bar'>\n";
echo " <div class='heading'><b>".$text['title-messages']."</b></div>\n";
echo " <div class='actions'>\n";
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 " </td>\n";
echo " </form>\n";
echo " </tr>\n";
echo "</table>\n";
echo button::create(['type'=>'button','label'=>$text['label-log'],'icon'=>'list','link'=>'messages_log.php']);
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";

View File

@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is
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.
Contributor(s):
@@ -43,26 +43,26 @@
$language = new text;
$text = $language->get();
//get the action
if (is_array($_POST["messages"])) {
$messages = $_POST["messages"];
foreach($messages as $row) {
if ($row['action'] == 'delete') {
$action = 'delete';
break;
}
}
//get the http post data
if (is_array($_POST['messages'])) {
$action = $_POST['action'];
$search = $_POST['search'];
$messages = $_POST['messages'];
}
//delete the messages
if (permission_exists('message_delete')) {
if ($action == "delete") {
//download
$obj = new messages;
$obj->delete($messages);
//delete message
message::add($text['message-delete']);
//process the http post data by action
if ($action != '' && is_array($messages) && @sizeof($messages) != 0) {
switch ($action) {
case 'delete':
if (permission_exists('message_delete')) {
$obj = new messages;
$obj->delete($messages);
}
break;
}
header('Location: messages_log.php'.($search != '' ? '?search='.urlencode($search) : null));
exit;
}
//get variables used to control the order
@@ -75,11 +75,9 @@
$sql_search = " (";
$sql_search .= "lower(message_type) 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_to) like :search ";
$sql_search .= "or lower(message_text) like :search ";
$sql_search .= "or lower(message_media_type) like :search ";
$sql_search .= ") ";
$parameters['search'] = '%'.$search.'%';
}
@@ -110,9 +108,9 @@
$param .= "&show=all";
}
if (isset($_GET['page'])) {
$page = $_GET['page'];
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page);
$page = is_numeric($_GET['page']) ? $_GET['page'] : 0;
list($paging_controls, $rows_per_page) = 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;
}
@@ -124,10 +122,9 @@
$messages = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
//alternate the row style
$c = 0;
$row_style["0"] = "row_style0";
$row_style["1"] = "row_style1";
//create token
$object = new token;
$token = $object->create($_SERVER['PHP_SELF']);
//include header
$document['title'] = $text['title-message_log'];
@@ -151,112 +148,112 @@
echo "</script>\n";
//show the content
echo "<table width='100%' border='0'>\n";
echo " <tr>\n";
echo " <td width='50%' align='left' nowrap='nowrap'><b>".$text['title-message_log']."</b><br><br></td>\n";
echo " <form method='get' action=''>\n";
echo " <td width='50%' style='vertical-align: top; text-align: right; white-space: nowrap;'>\n";
echo " <a href='messages.php'><input type='button' class='btn' value='".$text['button-back']."'></a>\n";
echo "<div class='action_bar' id='action_bar'>\n";
echo " <div class='heading'><b>".$text['title-message_log']." (".$num_rows.")</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.php']);
if (permission_exists('message_delete') && $messages) {
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 ($_GET['show'] == 'all') {
echo " <input type='hidden' name='show' value='all'>";
echo " <input type='hidden' name='show' value='all'>\n";
}
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='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 "<input type='text' class='txt list-search' name='search' id='search' value=\"".escape($search)."\" placeholder=\"".$text['label-search']."\" onkeydown='list_search_reset();'>";
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 " </tr>\n";
echo "</table>\n";
echo " </div>\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) {
$x = 0;
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";
}
foreach ($messages as $row) {
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 " <td valign='top' class=''>".escape($row['user_uuid'])."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]." tr_link_void' style='align: center; padding: 3px 3px 0px 7px;'>\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 " </td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>";
echo "<tr class='list-row' href='".$list_row_url."'>\n";
if (permission_exists('message_delete')) {
echo " <td class='checkbox'>\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 " <input type='hidden' name='messages[$x][uuid]' value='".escape($row['message_uuid'])."' />\n";
echo " </td>\n";
}
echo " <td>";
switch ($row['message_type']) {
case 'sms': echo $text['label-sms']; break;
case 'mms': echo $text['label-mms']; break;
case 'chat': echo $text['label-chat']; break;
}
echo " </td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>";
echo " <td>";
switch ($row['message_direction']) {
case "inbound": echo $text['label-inbound']; break;
case "outbound": echo $text['label-outbound']; break;
}
echo " </td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".escape($row['message_date'])."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".escape(format_phone($row['message_from']))."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".escape(format_phone($row['message_to']))."&nbsp;</td>\n";
echo " <td valign='top' class='".$row_style[$c]."'>".escape($row['message_text'])."&nbsp;</td>\n";
echo " <td class='list_control_icons'>";
echo " <td>";
$message_date = explode(' ', $row['message_date']);
$message_date = escape($message_date[0])." <span class='hide-sm-dn'>".$message_date[1]."</span>";
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')) {
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>";
else {
echo $message_date;
}
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";
$x++;
$c = $c ? 0 : 1;
}
unset($messages);
}
unset($messages, $row);
echo "<tr>\n";
echo "<td colspan='8' align='left'>\n";
echo " <table width='100%' cellpadding='0' cellspacing='0'>\n";
echo " <tr>\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 "</table>\n";
echo "<br />\n";
echo "<div align='center'>".$paging_controls."</div>\n";
echo "<input type='hidden' name='".$token['name']."' value='".$token['hash']."'>\n";
echo "</form>\n";
echo "<br /><br />";
//include the footer
require_once "resources/footer.php";
?>
?>

View File

@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is
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.
Contributor(s):
@@ -302,9 +302,13 @@
echo "</table>\n";
echo "<table cellpadding='0' cellspacing='0' border='0' width='100%' style='margin-top: 15px;'>\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='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 "</table>\n";
echo "</form>\n";
@@ -343,4 +347,4 @@
}
}
?>
?>

View File

@@ -1,22 +1,60 @@
<?php
/*
FusionPBX
Version: MPL 1.1
/**
* call_recordings class
*
* @method null download
*/
The contents of this file are subject to the Mozilla Public License Version
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
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')) {
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() {
//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
*/
public function __destruct() {
@@ -26,64 +64,62 @@ if (!class_exists('messages')) {
}
/**
* delete messages
* delete records
*/
public function delete($messages) {
if (permission_exists('message_delete')) {
public function delete($records) {
if (permission_exists($this->permission_prefix.'delete')) {
//delete multiple messages
if (is_array($messages)) {
//get the action
foreach($messages as $row) {
if ($row['action'] == 'delete') {
$action = 'delete';
break;
//add multi-lingual support
$language = new text;
$text = $language->get();
//validate the token
$token = new token;
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
if ($action == 'delete') {
$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');
if (is_array($array) && @sizeof($array) != 0) {
//execute delete
$database = new database;
$database->app_name = 'messages';
$database->app_uuid = '4a20815d-042c-47c8-85df-085333e79b87';
$database->delete($array);
unset($array);
//grant temporary permissions
$p = new permissions;
$p->add('message_media_delete', 'temp');
//revoke temporary permissions
$p->delete('message_delete', 'temp');
}
unset($messages);
//execute delete
$database = new database;
$database->app_name = $this->app_name;
$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
/**
* add messages
*/
public function add() {
} //end the add function
} //end the class
} //class
}
/*
$obj = new messages;
$obj->delete();
*/
?>