diff --git a/app/fax/app_config.php b/app/fax/app_config.php index 83fe88019d..838ecf936f 100644 --- a/app/fax/app_config.php +++ b/app/fax/app_config.php @@ -146,6 +146,13 @@ $apps[$x]['permissions'][$y]['name'] = 'fax_file_delete'; $apps[$x]['permissions'][$y]['groups'][] = 'superadmin'; $apps[$x]['permissions'][$y]['groups'][] = 'admin'; + $y++; + $apps[$x]['permissions'][$y]['name'] = 'fax_active_view'; + $apps[$x]['permissions'][$y]['groups'][] = 'superadmin'; + $apps[$x]['permissions'][$y]['groups'][] = 'admin'; + $y++; + $apps[$x]['permissions'][$y]['name'] = 'fax_active_all'; + $apps[$x]['permissions'][$y]['groups'][] = 'superadmin'; //schema details $y = 0; //table array index diff --git a/app/fax/app_languages.php b/app/fax/app_languages.php index 5ab3463d98..3531c78fec 100644 --- a/app/fax/app_languages.php +++ b/app/fax/app_languages.php @@ -330,6 +330,17 @@ $text['label-log']['de-at'] = "Log"; $text['label-log']['ro'] = "Log"; $text['label-log']['he'] = ""; +$text['label-active']['en-us'] = "Active"; +$text['label-active']['es-cl'] = ""; +$text['label-active']['pt-pt'] = ""; +$text['label-active']['fr-fr'] = ""; +$text['label-active']['pt-br'] = ""; +$text['label-active']['pl'] = ""; +$text['label-active']['sv-se'] = ""; +$text['label-active']['de-at'] = ""; +$text['label-active']['ro'] = ""; +$text['label-active']['he'] = ""; + $text['label-location']['en-us'] = "Location"; $text['label-location']['es-cl'] = "Localización"; $text['label-location']['pt-pt'] = "Localização"; @@ -2068,4 +2079,38 @@ $text['button-add']['de-at'] = "Hinzufügen"; $text['button-add']['ro'] = "Adaugă"; $text['button-add']['he'] = "הוספה"; +$text['button-show_all']['en-us'] = "Show All"; +$text['button-show_all']['es-cl'] = "Mostrar Todos"; +$text['button-show_all']['pt-pt'] = "Mostrar Todos"; +$text['button-show_all']['fr-fr'] = "Montrer Tout"; +$text['button-show_all']['pt-br'] = "Mostrar Todos"; +$text['button-show_all']['pl'] = "Pokaż Wszystkie"; +$text['button-show_all']['uk'] = "Показати всі"; +$text['button-show_all']['de-at'] = "Alle anzeigen"; +$text['button-show_all']['he'] = ""; + +$text['fax-active_title']['en-us'] = "Fax queue"; + +$text['fax-active_description']['en-us'] = "Current status of fax queue"; + +$text['fax-active_title_fax_server']['en-us'] = "Fax"; + +$text['fax-active_title_enabled']['en-us'] = "Enabled"; + +$text['fax-active_title_status']['en-us'] = "Status"; + +$text['fax-active_title_next_time']['en-us'] = "Next time"; + +$text['fax-active_title_files']['en-us'] = "Files"; + +$text['fax-active_title_uri']['en-us'] = "URI"; + +$text['fax-active_status_wait']['en-us'] = "Wait"; + +$text['fax-active_status_execute']['en-us'] = "Execute"; + +$text['fax-active_status_success']['en-us'] = "Success"; + +$text['fax-active_status_fail']['en-us'] = "Fail"; + ?> \ No newline at end of file diff --git a/app/fax/fax.php b/app/fax/fax.php index 81af0c8441..5fb50ed436 100644 --- a/app/fax/fax.php +++ b/app/fax/fax.php @@ -170,6 +170,9 @@ else { if (permission_exists('fax_log_view')) { echo " ".$text['label-log'].""; } + if (permission_exists('fax_active_view')) { + echo " ".$text['label-active'].""; + } echo " \n"; echo " ".$row['fax_description']." \n"; echo " "; diff --git a/app/fax/fax_active.php b/app/fax/fax_active.php new file mode 100644 index 0000000000..4729e91ab8 --- /dev/null +++ b/app/fax/fax_active.php @@ -0,0 +1,136 @@ + + Portions created by the Initial Developer are Copyright (C) 2008-2012 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ +include "root.php"; +require_once "resources/require.php"; +require_once "resources/check_auth.php"; +if (permission_exists('fax_active_view')) { + //access granted +} +else { + echo "access denied"; + exit; +} + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//get the HTTP values and set as variables + $show = trim($_REQUEST["show"]); + if ($show != "all") { $show = ''; } + +// + $fax_uuid = false; + if(isset($_REQUEST['id'])) { + $fax_uuid = check_str($_REQUEST["id"]); + } + +//show the header + $document['title'] = $text['title']; + require_once "resources/header.php"; + +//ajax for refresh + ?> + +\n"; +echo "\n"; +echo "


"; + +require_once "resources/footer.php"; + +/* +// deprecated functions for this page + + function get_park_cmd(uuid, context) { + cmd = \"uuid_transfer \"+uuid+\" -bleg *6000 xml \"+context; + return escape(cmd); + } + + function get_record_cmd(uuid, prefix, name) { + cmd = \"uuid_record \"+uuid+\" start ".$_SESSION['switch']['recordings']['dir']."/".$_SESSION['domain_name']."/archive/".date("Y")."/".date("M")."/".date("d")."/\"+uuid+\".wav\"; + return escape(cmd); + } +*/ +?> \ No newline at end of file diff --git a/app/fax/fax_active_exec.php b/app/fax/fax_active_exec.php new file mode 100644 index 0000000000..24b38ac2d0 --- /dev/null +++ b/app/fax/fax_active_exec.php @@ -0,0 +1,74 @@ +0) { + $cmd = trim(check_str($_GET['cmd'])); + $fax_uuid = trim(check_str($_GET['id'])); + } + +//authorized commands + if ($cmd == 'delete') { + //authorized; + } else { + //not found. this command is not authorized + echo "access denied"; + exit; + } + +//Command + if ($cmd == 'delete') { + if($fax_uuid){ + $sql = <<exec($sql); + // if($result === false){ + // var_dump($db->errorInfo()); + // } + } + } +?> \ No newline at end of file diff --git a/app/fax/fax_active_inc.php b/app/fax/fax_active_inc.php new file mode 100644 index 0000000000..9e13e1cc6a --- /dev/null +++ b/app/fax/fax_active_inc.php @@ -0,0 +1,222 @@ + + Portions created by the Initial Developer are Copyright (C) 2008-2012 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ +include "root.php"; +require_once "resources/require.php"; +require_once "resources/check_auth.php"; +if (permission_exists('fax_active_view')) { + //access granted +} +else { + echo "access denied"; + exit; +} + +if ((!permission_exists('fax_active_all')) && ($show == 'all')) { + echo "access denied"; + exit; +} + +$fax_uuid = false; +if(isset($_REQUEST['id'])) { + $fax_uuid = check_str($_REQUEST["id"]); +} + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//get the HTTP values and set as variables + $show = trim($_REQUEST["show"]); + if ($show != "all") { $show = ''; } + +//include theme config for button images + include_once("themes/".$_SESSION['domain']['template']['name']."/config.php"); + +$where = 'where (1 = 1)'; + +if($show !== 'all'){ + $where .= 'and (t3.domain_name = \'' . check_str($_SESSION['domain_name']) . '\')'; +} +else if($fax_uuid){ + if(!permission_exists('fax_active_all')){ + $where .= 'and (t3.domain_name = \'' . check_str($_SESSION['domain_name']) . '\')'; + } + $where .= 'and (t1.fax_uuid =\'' . check_str($fax_uuid) . '\')'; +} + + $sql = <<prepare(check_sql($sql)); + if ($prep_statement) { + if($prep_statement->execute()) { + $result = $prep_statement->fetchAll(PDO::FETCH_ASSOC); + } + } + unset($prep_statement, $sql, $where); + +//if the connnection is available then run it and return the results + if ($result === false) { + var_dump($db->errorInfo()); + $msg = "
".$text['message-fail']."
"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
".$text['label-message']."
$msg
\n"; + echo "
\n"; + } + else { + //define js function call var + $onhover_pause_refresh = " onmouseover='refresh_stop();' onmouseout='refresh_start();'"; + + //show buttons + echo ""; + echo " "; + echo " "; + echo " "; + echo " "; + echo "
"; + echo " \"".$text['label-refresh_pause']."\""; + echo " "; + if (permission_exists('fax_active_all')) { + if ($show == "all") { + echo " \n"; + } + else { + echo " \n"; + } + } + echo "
"; + + // show title + echo "".$text['fax-active_title'].""; + echo "

\n"; + echo $text['fax-active_description']."\n"; + echo "

\n"; + + //set the alternating color for each row + $c = 0; + $row_style["0"] = "row_style0"; + $row_style["1"] = "row_style1"; + + //show the results + echo "
\n"; + + //show headers + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + foreach ($result as &$row) { + $fax_uri = $row['uri']; + $domain_name = $row['domain_name']; + $task_enabled = ($row['interrupted'] == 'true') ? 'Disable': 'Enable'; + $task_status = $text['fax-active_status_wait']; + $task_next_time = $row['next_time']; + + if($row['status'] > 0){ + if($row['status'] <= 3){ + $task_status = $text['fax-active_status_execute']; + } + else if($row['status'] == 10){ + $task_status = $text['fax-active_status_success']; + } + else{ + $task_status = $text['fax-active_status_fail']; + } + } + + $fax_server = $row['fax_server_name']; + if ($show == 'all') { + $fax_server .= '@' . $domain_name; + } + + $task_files = ''; + if(!empty($row['fax_file'])){ + $task_files .= ' ' . basename($row['fax_file']); + } + if(!empty($row['wav_file'])){ + $task_files .= '
 ' . basename($row['wav_file']); + } else if(!empty($row['greeting'])){ + $task_files .= '
 ' . basename($row['greeting']); + } + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + $c = ($c) ? 0 : 1; + } + + echo "\n"; + echo "\n"; + echo "
" . $text['fax-active_title_fax_server'] . "" . $text['fax-active_title_enabled'] . "" . $text['fax-active_title_status'] . "" . $text['fax-active_title_next_time'] . "" . $text['fax-active_title_files'] . "" . $text['fax-active_title_uri'] . "
" . $fax_server . " " . $task_enabled . " " . $task_status . " " . $task_next_time . " " . $task_files . " " . $fax_uri . " ".$v_link_label_delete."
\n"; + } +?> \ No newline at end of file diff --git a/app/fax/fax_send.php b/app/fax/fax_send.php index b016ba0bfd..35b17e5a2b 100644 --- a/app/fax/fax_send.php +++ b/app/fax/fax_send.php @@ -706,6 +706,7 @@ function fax_split_dtmf(&$fax_number, &$fax_dtmf){ foreach ($fax_numbers as $fax_number) { $dial_string = $common_dial_string; + fax_split_dtmf($fax_number, $fax_dtmf); //prepare the fax command @@ -767,7 +768,12 @@ function fax_split_dtmf(&$fax_number, &$fax_dtmf){ if (!$included) { //redirect the browser $_SESSION["message"] = $response; - header("Location: fax_files.php?id=".$fax_uuid."&box=sent"); + if (permission_exists('fax_active_view')) { + header("Location: fax_active.php?id=".$fax_uuid); + } + else { + header("Location: fax_files.php?id=".$fax_uuid."&box=sent"); + } exit; } diff --git a/app/fax/resources/images/refresh_active.gif b/app/fax/resources/images/refresh_active.gif new file mode 100644 index 0000000000..305457831c Binary files /dev/null and b/app/fax/resources/images/refresh_active.gif differ diff --git a/app/fax/resources/images/refresh_paused.png b/app/fax/resources/images/refresh_paused.png new file mode 100644 index 0000000000..38937ec1f2 Binary files /dev/null and b/app/fax/resources/images/refresh_paused.png differ