diff --git a/app/voicemails/resources/classes/voicemail.php b/app/voicemails/resources/classes/voicemail.php index ce0adb456f..b82a39276c 100644 --- a/app/voicemails/resources/classes/voicemail.php +++ b/app/voicemails/resources/classes/voicemail.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2016 + Portions created by the Initial Developer are Copyright (C) 2008-2019 the Initial Developer. All Rights Reserved. Contributor(s): @@ -26,6 +26,10 @@ //define the voicemail class class voicemail { + + /** + * declare public variables + */ public $domain_uuid; public $domain_name; public $voicemail_uuid; @@ -33,16 +37,36 @@ public $voicemail_message_uuid; public $order_by; public $order; - public $app_uuid; + + /** + * declare private variables + */ + private $app_name; + private $app_uuid; + private $permission_prefix; + private $list_page; + private $table; + private $uuid_prefix; + private $toggle_field; + private $toggle_values; public function __construct() { - //set the application specific uuid + + //assign private variables + $this->app_name = 'voicemail'; $this->app_uuid = 'b523c2d2-64cd-46f1-9520-ca4b4098e044'; + $this->permission_prefix = 'voicemail_'; + $this->list_page = 'voicemails.php'; + $this->table = 'voicemails'; + $this->uuid_prefix = 'voicemail_'; + $this->toggle_field = 'voicemail_enabled'; + $this->toggle_values = ['true','false']; //set the domain_uuid if not provided if (strlen($this->domain_uuid) == 0) { $this->domain_uuid = $_SESSION['domain_uuid']; } + } public function __destruct() { @@ -236,70 +260,192 @@ return $result; } - public function voicemail_delete() { + public function voicemail_delete($records) { + if (permission_exists($this->permission_prefix.'delete')) { - //get the voicemail id - $this->get_voicemail_id(); + //add multi-lingual support + $language = new text; + $text = $language->get(); - //check if for valid input - if (!is_uuid($this->voicemail_uuid) || !is_uuid($this->domain_uuid)) { - return false; - } - - //delete voicemail messages - $this->message_delete(); - - //delete voicemail recordings folder (includes greetings) - if (is_numeric($this->voicemail_id)) { - $file_path = $_SESSION['switch']['voicemail']['dir']."/default/".$_SESSION['domain_name']."/".$this->voicemail_id; - foreach (glob($file_path."/*.*") as $file_name) { - unlink($file_name); + //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; } - @rmdir($file_path); - } - //build voicemail destinations delete array - $array['voicemail_destinations'][0]['domain_uuid'] = $this->domain_uuid; - $array['voicemail_destinations'][0]['voicemail_uuid'] = $this->voicemail_uuid; + //delete multiple records + if (is_array($records) && @sizeof($records) != 0) { - //build voicemail greetings delete array - if (is_numeric($this->voicemail_id)) { - $array['voicemail_greetings'][0]['domain_uuid'] = $this->domain_uuid; - $array['voicemail_greetings'][0]['voicemail_id'] = $this->voicemail_id; - } + //filter out unchecked sip profiles + foreach ($records as $x => $record) { + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $uuids[] = "'".$record['uuid']."'"; + } + } - //build voicemail options delete array - $array['voicemail_options'][0]['domain_uuid'] = $this->domain_uuid; - $array['voicemail_options'][0]['voicemail_uuid'] = $this->voicemail_uuid; + //get necessary voicemail details + if (is_array($uuids) && @sizeof($uuids) != 0) { + $sql = "select ".$this->uuid_prefix."uuid as uuid, voicemail_id from v_".$this->table." "; + $sql .= "where ".$this->uuid_prefix."uuid in (".implode(', ', $uuids).") "; + $database = new database; + $rows = $database->select($sql, $parameters, 'all'); + if (is_array($rows) && @sizeof($rows) != 0) { + foreach ($rows as $row) { + $voicemail_ids[$row['uuid']] = $row['voicemail_id']; + } + } + unset($sql, $parameters, $rows, $row); + } - //build voicemail delete array - $array['voicemails'][0]['domain_uuid'] = $this->domain_uuid; - $array['voicemails'][0]['voicemail_uuid'] = $this->voicemail_uuid; + //loop through voicemail ids + if (is_array($voicemail_ids) && @sizeof($voicemail_ids) != 0) { + $x = 0; + foreach ($voicemail_ids as $voicemail_uuid => $voicemail_id) { - //grant temporary permissions - $p = new permissions; - $p->add('voicemail_destination_delete', 'temp'); - if (is_numeric($this->voicemail_id)) { - $p->add('voicemail_greeting_delete', 'temp'); - } - $p->add('voicemail_option_delete', 'temp'); - $p->add('voicemail_delete', 'temp'); + //delete voicemail message recording and greeting files + if (is_numeric($voicemail_id)) { + $file_path = $_SESSION['switch']['voicemail']['dir']."/default/".$_SESSION['domain_name']."/".$voicemail_id; + foreach (glob($file_path."/*.*") as $file_name) { + @unlink($file_name); + } + @rmdir($file_path); + } - //execute delete - $database = new database; - $database->app_name = 'voicemails'; - $database->app_uuid = 'b523c2d2-64cd-46f1-9520-ca4b4098e044'; - $database->delete($array); - unset($array); + //reset message waiting indicator status + $this->voicemail_id = $voicemail_id; + $this->voicemail_uuid = $voicemail_uuid; + $this->domain_uuid = $_SESSION['domain_uuid']; + $this->message_waiting(); - //revoke temporary permissions - $p->delete('voicemail_destination_delete', 'temp'); - if (is_numeric($this->voicemail_id)) { - $p->delete('voicemail_greeting_delete', 'temp'); - } - $p->delete('voicemail_option_delete', 'temp'); - $p->delete('voicemail_delete', 'temp'); + //build the delete array + $array[$this->table][$x]['voicemail_uuid'] = $voicemail_uuid; + $array[$this->table][$x]['domain_uuid'] = $_SESSION['domain_uuid']; + $array['voicemail_options'][$x]['voicemail_uuid'] = $voicemail_uuid; + $array['voicemail_options'][$x]['domain_uuid'] = $_SESSION['domain_uuid'];; + $array['voicemail_messages'][$x]['voicemail_uuid'] = $voicemail_uuid; + $array['voicemail_messages'][$x]['domain_uuid'] = $_SESSION['domain_uuid'];; + $array['voicemail_destinations'][$x]['voicemail_uuid'] = $voicemail_uuid; + $array['voicemail_destinations'][$x]['domain_uuid'] = $_SESSION['domain_uuid'];; + if (is_numeric($voicemail_id)) { + $array['voicemail_greetings'][$x]['voicemail_id'] = $voicemail_id; + $array['voicemail_greetings'][$x]['domain_uuid'] = $_SESSION['domain_uuid'];; + } + } + } + + //delete the checked rows + if (is_array($array) && @sizeof($array) != 0) { + + //grant temporary permissions + $p = new permissions; + $p->add('voicemail_delete', 'temp'); + $p->add('voicemail_option_delete', 'temp'); + $p->add('voicemail_message_delete', 'temp'); + $p->add('voicemail_destination_delete', 'temp'); + $p->add('voicemail_greeting_delete', 'temp'); + + //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('voicemail_delete', 'temp'); + $p->delete('voicemail_option_delete', 'temp'); + $p->delete('voicemail_message_delete', 'temp'); + $p->delete('voicemail_destination_delete', 'temp'); + $p->delete('voicemail_greeting_delete', 'temp'); + + //set message + message::add($text['message-delete']); + } + unset($records, $voicemail_ids); + } + } + } + + public function voicemail_toggle($records) { + if (permission_exists($this->permission_prefix.'edit')) { + + //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; + } + + //toggle the checked records + if (is_array($records) && @sizeof($records) != 0) { + + //filter out unchecked sip profiles + foreach ($records as $x => $record) { + if ($record['checked'] == 'true' && is_uuid($record['uuid'])) { + $uuids[] = "'".$record['uuid']."'"; + } + } + + //get necessary voicemail details + if (is_array($uuids) && @sizeof($uuids) != 0) { + $sql = "select ".$this->uuid_prefix."uuid as uuid, voicemail_id, ".$this->toggle_field." as toggle from v_".$this->table." "; + $sql .= "where (domain_uuid = :domain_uuid or domain_uuid is null) "; + $sql .= "and ".$this->uuid_prefix."uuid in (".implode(', ', $uuids).") "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; + $database = new database; + $rows = $database->select($sql, $parameters, 'all'); + if (is_array($rows) && @sizeof($rows) != 0) { + foreach ($rows as $row) { + $voicemails[$row['uuid']]['state'] = $row['toggle']; + $voicemails[$row['uuid']]['id'] = $row['voicemail_id']; + } + } + unset($sql, $parameters, $rows, $row); + } + + //loop through voicemails + if (is_array($voicemails) && @sizeof($voicemails) != 0) { + $x = 0; + foreach ($voicemails as $voicemail_uuid => $voicemail) { + + //reset message waiting indicator status + $this->voicemail_id = $voicemail['id']; + $this->voicemail_uuid = $voicemail_uuid; + $this->domain_uuid = $_SESSION['domain_uuid']; + $this->message_waiting(); + + //build update array + $array[$this->table][$x][$this->uuid_prefix.'uuid'] = $voicemail_uuid; + $array[$this->table][$x][$this->toggle_field] = $voicemail['state'] == $this->toggle_values[0] ? $this->toggle_values[1] : $this->toggle_values[0]; + $x++; + } + } + + //save the changes + if (is_array($array) && @sizeof($array) != 0) { + + //save the array + $database = new database; + $database->app_name = $this->app_name; + $database->app_uuid = $this->app_uuid; + $database->save($array); + unset($array); + + //set message + message::add($text['message-toggle']); + } + unset($records, $voicemails); + } + + } } public function message_count() { @@ -358,7 +504,7 @@ } } else { - foreach (glob($file_path."/msg_*.*") as $file_name) { + foreach (glob($file_path."/msg_*.*") as $file_name) { unlink($file_name); //remove all recordings } } diff --git a/app/voicemails/voicemail_imports.php b/app/voicemails/voicemail_imports.php index 263122186e..8f82add6bf 100644 --- a/app/voicemails/voicemail_imports.php +++ b/app/voicemails/voicemail_imports.php @@ -55,7 +55,7 @@ } //set the max php execution time - ini_set(max_execution_time,7200); + ini_set('max_execution_time', 7200); //get the http get values and set them as php variables $action = $_POST["action"]; diff --git a/app/voicemails/voicemails.php b/app/voicemails/voicemails.php index 1333a1ce36..3c8ab8f07e 100644 --- a/app/voicemails/voicemails.php +++ b/app/voicemails/voicemails.php @@ -28,6 +28,7 @@ require_once "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; + require_once "resources/paging.php"; //check permissions if (permission_exists('voicemail_view')) { @@ -42,22 +43,35 @@ $language = new text; $text = $language->get(); -//set the variables - $order_by = $_GET["order_by"]; - $order = $_GET["order"]; - $search = $_GET["search"]; - -//set the voicemail id and voicemail uuid arrays - if (isset($_SESSION['user']['extension'])) { - foreach ($_SESSION['user']['extension'] as $index => $row) { - if (strlen($row['number_alias']) > 0) { - $voicemail_ids[$index]['voicemail_id'] = $row['number_alias']; - } - else { - $voicemail_ids[$index]['voicemail_id'] = $row['user']; - } - } +//get the http post data + if (is_array($_POST['voicemails'])) { + $action = $_POST['action']; + $search = $_POST['search']; + $voicemails = $_POST['voicemails']; } + +//process the http post data by action + if ($action != '' && is_array($voicemails) && @sizeof($voicemails) != 0) { + switch ($action) { + case 'toggle': + if (permission_exists('voicemail_edit')) { + $obj = new voicemail; + $obj->voicemail_toggle($voicemails); + } + break; + case 'delete': + if (permission_exists('voicemail_delete')) { + $obj = new voicemail; + $obj->voicemail_delete($voicemails); + } + break; + } + + header('Location: voicemails.php'.($search != '' ? '?search='.urlencode($search) : null)); + exit; + } + +//set the voicemail uuid array if (isset($_SESSION['user']['voicemail'])) { foreach ($_SESSION['user']['voicemail'] as $row) { if (strlen($row['voicemail_uuid']) > 0) { @@ -66,23 +80,26 @@ } } -//additional includes - require_once "resources/header.php"; - require_once "resources/paging.php"; +//get order and order by + $order_by = $_GET["order_by"]; + $order = $_GET["order"]; + +//add the search string + $search = strtolower($_GET["search"]); + if (strlen($search) > 0) { + $sql_search = "and ("; + $sql_search .= " lower(cast(voicemail_id as text)) like :search "; + $sql_search .= " or lower(voicemail_mail_to) like :search "; + $sql_search .= " or lower(voicemail_local_after_email) like :search "; + $sql_search .= " or lower(voicemail_enabled) like :search "; + $sql_search .= " or lower(voicemail_description) like :search "; + $sql_search .= ") "; + $parameters['search'] = '%'.$search.'%'; + } //prepare to page the results - $sql = "select count(*) from v_voicemails "; + $sql = "select count(voicemail_uuid) from v_voicemails "; $sql .= "where domain_uuid = :domain_uuid "; - if (strlen($search) > 0) { - $sql .= "and ("; - $sql .= " lower(cast(voicemail_id as text)) like :search "; - $sql .= " or lower(voicemail_mail_to) like :search "; - $sql .= " or lower(voicemail_local_after_email) like :search "; - $sql .= " or lower(voicemail_enabled) like :search "; - $sql .= " or lower(voicemail_description) like :search "; - $sql .= ") "; - $parameters['search'] = '%'.strtolower($search).'%'; - } if (!permission_exists('voicemail_delete')) { if (is_array($voicemail_uuids) && @sizeof($voicemail_uuids) != 0) { $sql .= "and ("; @@ -99,105 +116,119 @@ $sql .= "and voicemail_uuid is null "; } } + $sql .= $sql_search; $parameters['domain_uuid'] = $domain_uuid; $database = new database; $num_rows = $database->select($sql, $parameters, 'column'); //prepare to page the results $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; - $param = ""; - if ($search != '') { $param .= "&search=".$search; } - $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); + $param = $search ? "&search=".$search : null; + 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; //get the list - $sql = str_replace('count(*)', '*', $sql); + $sql = str_replace('count(voicemail_uuid)', '*', $sql); $sql .= order_by($order_by, $order, 'voicemail_id', 'asc'); $sql .= limit_offset($rows_per_page, $offset); $database = new database; $voicemails = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); +//create token + $object = new token; + $token = $object->create($_SERVER['PHP_SELF']); + +//additional includes + require_once "resources/header.php"; + //show the content - echo "\n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "
"; - echo " ".$text['title-voicemails']." (".$num_rows.")"; - echo "

"; - echo " ".$text['description-voicemail']; - echo "

"; - echo "
\n"; - echo "
\n"; + echo "
\n"; + echo "
".$text['title-voicemails']." (".$num_rows.")
\n"; + echo "
\n"; if (permission_exists('voicemail_import')) { - echo " \n"; + echo button::create(['type'=>'button','label'=>$text['button-import'],'icon'=>$_SESSION['theme']['button_icon_import'],'style'=>'margin-right: 15px;','link'=>'voicemail_imports.php']); } + if (permission_exists('voicemail_add')) { + echo button::create(['type'=>'button','label'=>$text['button-add'],'icon'=>$_SESSION['theme']['button_icon_add'],'link'=>'voicemail_edit.php']); + } + if (permission_exists('voicemail_edit') && $voicemails) { + echo button::create(['type'=>'button','label'=>$text['button-toggle'],'icon'=>$_SESSION['theme']['button_icon_toggle'],'onclick'=>"if (confirm('".$text['confirm-toggle']."')) { list_action_set('toggle'); list_form_submit('form_list'); } else { this.blur(); return false; }"]); + } + if (permission_exists('voicemail_delete') && $voicemails) { + 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 "\n"; + echo ""; + 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'=>'voicemails.php','style'=>($search == '' ? 'display: none;' : null)]); + if ($paging_controls_mini != '') { + echo "".$paging_controls_mini."\n"; + } + echo " \n"; + echo "
\n"; + echo "
\n"; + echo "
\n"; - echo " "; - echo " "; - echo " \n"; - echo "
\n"; + echo $text['description-voicemail']."\n"; + echo "

\n"; - echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; - echo "\n"; - if (permission_exists('voicemail_delete') && $num_rows > 0) { - echo ""; + echo "
\n"; + echo "\n"; + if (permission_exists('voicemail_edit') || permission_exists('voicemail_delete')) { + echo " \n"; } echo th_order_by('voicemail_id', $text['label-voicemail_id'], $order_by, $order); - echo th_order_by('voicemail_mail_to', $text['label-voicemail_mail_to'], $order_by, $order); - echo th_order_by('voicemail_file', $text['label-voicemail_file_attached'], $order_by, $order); - echo th_order_by('voicemail_local_after_email', $text['label-voicemail_local_after_email'], $order_by, $order); - if (isset($_SESSION['voicemail']['transcribe_enabled']['boolean']) && $_SESSION['voicemail']['transcribe_enabled']['boolean'] == 'true') { + echo th_order_by('voicemail_mail_to', $text['label-voicemail_mail_to'], $order_by, $order, null, "class='center hide-sm-dn'"); + echo th_order_by('voicemail_file', $text['label-voicemail_file_attached'], $order_by, $order, null, "class='center hide-md-dn'"); + echo th_order_by('voicemail_local_after_email', $text['label-voicemail_local_after_email'], $order_by, $order, null, "class='center hide-md-dn'"); + if (is_array($_SESSION['voicemail']['transcribe_enabled']) && $_SESSION['voicemail']['transcribe_enabled']['boolean'] == 'true') { echo th_order_by('voicemail_transcription_enabled', $text['label-voicemail_transcribe_enabled'], $order_by, $order); } echo "\n"; - echo th_order_by('voicemail_enabled', $text['label-voicemail_enabled'], $order_by, $order); - echo th_order_by('voicemail_description', $text['label-voicemail_description'], $order_by, $order); - echo "\n"; } - if (permission_exists('voicemail_delete') && $num_rows > 0) { - echo "".$v_link_label_delete.""; - } - echo "\n"; echo "\n"; - $c = 0; - $row_style["0"] = "row_style0"; - $row_style["1"] = "row_style1"; - if (is_array($voicemails) && @sizeof($voicemails) != 0) { + $x = 0; foreach ($voicemails as $row) { - $tr_link = (permission_exists('voicemail_edit')) ? "href='voicemail_edit.php?id=".escape($row['voicemail_uuid'])."'" : null; - echo "\n"; - if (permission_exists('voicemail_delete')) { - echo " "; - $vm_ids[] = 'checkbox_'.$row['voicemail_uuid']; - } - echo " \n"; + if (permission_exists('voicemail_edit') || permission_exists('voicemail_delete')) { + echo " \n"; + } + echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - if (isset($_SESSION['voicemail']['transcribe_enabled']['boolean']) && $_SESSION['voicemail']['transcribe_enabled']['boolean'] == 'true') { - echo " \n"; + + echo " \n"; + echo " \n"; + echo " \n"; + if (is_array($_SESSION['voicemail']['transcribe_enabled']) && $_SESSION['voicemail']['transcribe_enabled']['boolean'] == 'true') { + echo " \n"; } - echo " \n"; - echo " \n"; - echo " \n"; - if (permission_exists('voicemail_edit') || permission_exists('voicemail_delete')) { - echo " \n"; + echo " \n"; + if (permission_exists('voicemail_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { + echo " \n"; } echo "\n"; - $c = ($c) ? 0 : 1; + $x++; } } - unset($voicemails, $row); + unset($voicemails); - if (is_array($voicemails) && @sizeof($voicemails) != 0) { - echo "\n"; - echo " \n"; - echo "\n"; - } - - echo "
\n"; + echo " \n"; + echo " ".$text['label-tools'].""; - if (permission_exists('voicemail_add') || permission_exists('voicemail_edit')) { - echo "".$v_link_label_add.""; + echo th_order_by('voicemail_enabled', $text['label-voicemail_enabled'], $order_by, $order, null, "class='center'"); + echo th_order_by('voicemail_description', $text['label-voicemail_description'], $order_by, $order, null, "class='hide-sm-dn'"); + if (permission_exists('voicemail_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { + echo "  
"; if (permission_exists('voicemail_edit')) { - echo "".escape($row['voicemail_id']).""; + $list_row_url = "voicemail_edit.php?id=".urlencode($row['voicemail_uuid']); + } + echo "
\n"; + echo " \n"; + echo " \n"; + echo " \n"; + if (permission_exists('voicemail_edit')) { + echo " ".escape($row['voicemail_id'])."\n"; } else { - echo escape($row['voicemail_id']); + echo " ".escape($row['voicemail_id']); } echo " ".escape($row['voicemail_mail_to'])." ".(($row['voicemail_file'] == 'attach') ? $text['label-true'] : $text['label-false'])."".ucwords(escape($row['voicemail_local_after_email']))." ".ucwords(escape($row['voicemail_transcription_enabled']))." ".escape($row['voicemail_mail_to'])." ".($row['voicemail_file'] == 'attach' ? $text['label-true'] : $text['label-false'])."".ucwords(escape($row['voicemail_local_after_email']))." ".ucwords(escape($row['voicemail_transcription_enabled']))." \n"; + echo " \n"; if (permission_exists('voicemail_message_view')) { echo " ".$text['label-messages']."  \n"; } @@ -205,67 +236,42 @@ echo " ".$text['label-greetings']."\n"; } echo " ".$text['label-'.$row['voicemail_enabled']]." ".escape($row['voicemail_description'])." "; - if (permission_exists('voicemail_edit')) { - echo "".$v_link_label_edit.""; - } - if (permission_exists('voicemail_delete')) { - echo "".$v_link_label_delete.""; - } + if (permission_exists('voicemail_edit')) { + echo " \n"; + echo $text['label-'.$row['voicemail_enabled']]; + } + echo " ".escape($row['voicemail_description'])." \n"; + echo button::create(['type'=>'button','title'=>$text['button-edit'],'icon'=>$_SESSION['theme']['button_icon_edit'],'link'=>$list_row_url]); echo "
\n"; - if (permission_exists('voicemail_add')) { - echo "".$v_link_label_add.""; - } - if (permission_exists('voicemail_delete')) { - echo "".$v_link_label_delete.""; - } - echo "
"; - echo "
"; - - if (strlen($paging_controls) > 0) { - echo "
".$paging_controls."
\n"; - } - - echo "

".(($num_rows == 0) ? "

" : null); - - // check or uncheck all checkboxes - if (sizeof($vm_ids) > 0) { - echo "\n"; - } + echo "\n"; + echo "
\n"; + echo "
".$paging_controls."
\n"; + echo "\n"; + echo "\n"; if ($num_rows > 0) { // check all checkboxes - key_press('ctrl+a', 'down', 'document', null, null, "check('all');", true); + key_press('ctrl+a', 'down', 'document', null, null, "list_all_check();", true); // delete checked - key_press('delete', 'up', 'document', array('#search'), $text['confirm-delete'], 'document.forms.frm.submit();', true); + key_press('delete', 'up', 'document', array('#search'), $text['confirm-delete'], "if (confirm('".$text['confirm-delete']."')) { list_action_set('delete'); list_form_submit('form_list'); } else { return false; }", true); } //include the footer require_once "resources/footer.php"; -?> +?> \ No newline at end of file