From d157b5ee9f9367bf6beb0deea5329ce13dca23ba Mon Sep 17 00:00:00 2001 From: Nate Date: Wed, 4 Dec 2019 13:49:02 -0700 Subject: [PATCH] SIP Status: List view updates. --- app/sip_status/app_languages.php | 116 +++++--- app/sip_status/cmd.php | 15 +- app/sip_status/sip_status.php | 445 ++++++++++++++++--------------- resources/classes/cache.php | 3 + themes/default/css.php | 4 + 5 files changed, 321 insertions(+), 262 deletions(-) diff --git a/app/sip_status/app_languages.php b/app/sip_status/app_languages.php index c4d55ec85b..f95f5fce60 100644 --- a/app/sip_status/app_languages.php +++ b/app/sip_status/app_languages.php @@ -61,25 +61,25 @@ $text['title-sofia-status']['ru-ru'] = "sofia статус"; $text['title-sofia-status']['sv-se'] = "sofia status"; $text['title-sofia-status']['uk-ua'] = "sofia status "; -$text['title-sip-status']['en-us'] = "SIP Status"; -$text['title-sip-status']['ar-eg'] = ""; -$text['title-sip-status']['de-at'] = "SIP Status"; //copied from de-de -$text['title-sip-status']['de-ch'] = "SIP Status"; //copied from de-de -$text['title-sip-status']['de-de'] = "SIP Status"; -$text['title-sip-status']['es-cl'] = "SIP Estado"; -$text['title-sip-status']['es-mx'] = "SIP Estado"; //copied from es-cl -$text['title-sip-status']['fr-ca'] = "SIP État"; //copied from fr-fr -$text['title-sip-status']['fr-fr'] = "SIP État"; -$text['title-sip-status']['he-il'] = ""; -$text['title-sip-status']['it-it'] = "Stato SIP"; -$text['title-sip-status']['nl-nl'] = "SIP Status"; -$text['title-sip-status']['pl-pl'] = "Status SIP"; -$text['title-sip-status']['pt-br'] = "Estado SIP"; -$text['title-sip-status']['pt-pt'] = "SIP Estado"; -$text['title-sip-status']['ro-ro'] = ""; -$text['title-sip-status']['ru-ru'] = "SIP Статус"; -$text['title-sip-status']['sv-se'] = "SIP Status"; -$text['title-sip-status']['uk-ua'] = "Стан SIP"; +$text['title-sip_status']['en-us'] = "SIP Status"; +$text['title-sip_status']['ar-eg'] = ""; +$text['title-sip_status']['de-at'] = "SIP Status"; //copied from de-de +$text['title-sip_status']['de-ch'] = "SIP Status"; //copied from de-de +$text['title-sip_status']['de-de'] = "SIP Status"; +$text['title-sip_status']['es-cl'] = "SIP Estado"; +$text['title-sip_status']['es-mx'] = "SIP Estado"; //copied from es-cl +$text['title-sip_status']['fr-ca'] = "SIP État"; //copied from fr-fr +$text['title-sip_status']['fr-fr'] = "SIP État"; +$text['title-sip_status']['he-il'] = ""; +$text['title-sip_status']['it-it'] = "Stato SIP"; +$text['title-sip_status']['nl-nl'] = "SIP Status"; +$text['title-sip_status']['pl-pl'] = "Status SIP"; +$text['title-sip_status']['pt-br'] = "Estado SIP"; +$text['title-sip_status']['pt-pt'] = "SIP Estado"; +$text['title-sip_status']['ro-ro'] = ""; +$text['title-sip_status']['ru-ru'] = "SIP Статус"; +$text['title-sip_status']['sv-se'] = "SIP Status"; +$text['title-sip_status']['uk-ua'] = "Стан SIP"; $text['label-action']['en-us'] = "Action"; $text['label-action']['ar-eg'] = ""; @@ -161,25 +161,65 @@ $text['label-data']['ru-ru'] = "Дата"; $text['label-data']['sv-se'] = "Data"; $text['label-data']['uk-ua'] = "Дані"; -$text['header-sip-status']['en-us'] = "SIP Status"; -$text['header-sip-status']['ar-eg'] = ""; -$text['header-sip-status']['de-at'] = "SIP Status"; //copied from de-de -$text['header-sip-status']['de-ch'] = "SIP Status"; //copied from de-de -$text['header-sip-status']['de-de'] = "SIP Status"; -$text['header-sip-status']['es-cl'] = "SIP Estado"; -$text['header-sip-status']['es-mx'] = "SIP Estado"; //copied from es-cl -$text['header-sip-status']['fr-ca'] = "SIP État"; //copied from fr-fr -$text['header-sip-status']['fr-fr'] = "SIP État"; -$text['header-sip-status']['he-il'] = ""; -$text['header-sip-status']['it-it'] = "Stato SIP"; -$text['header-sip-status']['nl-nl'] = "SIP Status"; -$text['header-sip-status']['pl-pl'] = "Status SIP"; -$text['header-sip-status']['pt-br'] = "SIP Estado"; //copied from pt-pt -$text['header-sip-status']['pt-pt'] = "SIP Estado"; -$text['header-sip-status']['ro-ro'] = ""; -$text['header-sip-status']['ru-ru'] = "Статус SIP"; -$text['header-sip-status']['sv-se'] = "SIP Status"; -$text['header-sip-status']['uk-ua'] = "Стан SIP"; +$text['label-profile']['en-us'] = "Profile"; +$text['label-profile']['ar-eg'] = ""; +$text['label-profile']['de-at'] = "Profile"; //copied from de-de +$text['label-profile']['de-ch'] = "Profile"; //copied from de-de +$text['label-profile']['de-de'] = "Profile"; +$text['label-profile']['es-cl'] = "Perfile"; +$text['label-profile']['es-mx'] = "Perfile"; //copied from es-cl +$text['label-profile']['fr-ca'] = "Profil"; //copied from fr-fr +$text['label-profile']['fr-fr'] = "Profil"; +$text['label-profile']['he-il'] = "פרופילים"; +$text['label-profile']['it-it'] = "Profili"; +$text['label-profile']['nl-nl'] = "Profielen"; +$text['label-profile']['pl-pl'] = "Profile"; +$text['label-profile']['pt-br'] = "Perfi"; //copied from pt-pt +$text['label-profile']['pt-pt'] = "Perfi"; +$text['label-profile']['ro-ro'] = ""; +$text['label-profile']['ru-ru'] = "Профили"; +$text['label-profile']['sv-se'] = "Profiler"; +$text['label-profile']['uk-ua'] = "Профілі"; + +$text['label-gateway']['en-us'] = "Gateway"; +$text['label-gateway']['ar-eg'] = ""; +$text['label-gateway']['de-at'] = "Gateway"; //copied from de-de +$text['label-gateway']['de-ch'] = "Gateway"; //copied from de-de +$text['label-gateway']['de-de'] = "Gateway"; +$text['label-gateway']['es-cl'] = "Pasarela"; +$text['label-gateway']['es-mx'] = "Pasarela"; //copied from es-cl +$text['label-gateway']['fr-ca'] = "Passerelle"; //copied from fr-fr +$text['label-gateway']['fr-fr'] = "Passerelle"; +$text['label-gateway']['he-il'] = ""; +$text['label-gateway']['it-it'] = "Gateway"; +$text['label-gateway']['nl-nl'] = "Gateway"; +$text['label-gateway']['pl-pl'] = "Brama wyjściowa "; +$text['label-gateway']['pt-br'] = "Tronco"; //copied from pt-pt +$text['label-gateway']['pt-pt'] = "Gateway"; +$text['label-gateway']['ro-ro'] = "Portal"; +$text['label-gateway']['ru-ru'] = "Шлюз"; +$text['label-gateway']['sv-se'] = "Gateway"; +$text['label-gateway']['uk-ua'] = "Шлюз"; + +$text['description-sip_status']['en-us'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['ar-eg'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['de-at'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['de-ch'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['de-de'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['es-cl'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['es-mx'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['fr-ca'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['fr-fr'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['he-il'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['it-it'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['nl-nl'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['pl-pl'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['pt-br'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['pt-pt'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['ro-ro'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['ru-ru'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['sv-se'] = "View and manage the status of system profiles and gateways."; +$text['description-sip_status']['uk-ua'] = "View and manage the status of system profiles and gateways."; $text['error-event-socket']['en-us'] = "Connection to Event Socket failed."; $text['error-event-socket']['ar-eg'] = ""; diff --git a/app/sip_status/cmd.php b/app/sip_status/cmd.php index d84e4ae980..5bf547b32d 100644 --- a/app/sip_status/cmd.php +++ b/app/sip_status/cmd.php @@ -39,6 +39,7 @@ } //set the variables + $profile = $_GET['profile']; $command = $_GET['cmd']; //create the event socket connection @@ -47,10 +48,8 @@ //if reloadxml then run reloadacl, reloadxml and rescan the external profile for new gateways if ($command == "api reloadxml") { //reloadxml - if ($command == "api reloadxml") { - message::add(rtrim(event_socket_request($fp, $command)), 'alert'); - unset($command); - } + message::add(rtrim(event_socket_request($fp, $command)), 'alert'); + unset($command); //clear the apply settings reminder $_SESSION["reload_xml"] = false; @@ -64,7 +63,9 @@ //cache flush if ($command == "api cache flush") { $cache = new cache; - $cache->flush(); + $response = $cache->flush(); + + message::add($response, 'alert'); } //reloadacl @@ -75,7 +76,7 @@ //sofia profile if (substr($command, 0, 17) == "api sofia profile") { - message::add(rtrim(event_socket_request($fp, $command)), 'alert'); + message::add(($profile ? ''.$profile.': ' : null).rtrim(event_socket_request($fp, $command)), 'alert', 3000); } //close the connection @@ -85,4 +86,4 @@ //redirect the user header("Location: sip_status.php"); -?> +?> \ No newline at end of file diff --git a/app/sip_status/sip_status.php b/app/sip_status/sip_status.php index 45b1720792..bb1d771feb 100644 --- a/app/sip_status/sip_status.php +++ b/app/sip_status/sip_status.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-2018 + Portions created by the Initial Developer are Copyright (C) 2008-2019 the Initial Developer. All Rights Reserved. Contributor(s): @@ -30,9 +30,11 @@ require_once "resources/check_auth.php"; //check permissions - if (permission_exists('system_status_sofia_status') - || permission_exists('system_status_sofia_status_profile') - || if_group("superadmin")) { + if ( + permission_exists('system_status_sofia_status') || + permission_exists('system_status_sofia_status_profile') || + if_group("superadmin") + ) { //access granted } else { @@ -44,36 +46,11 @@ $language = new text; $text = $language->get(); -//define variables - $c = 0; - $row_style["0"] = "row_style0"; - $row_style["1"] = "row_style1"; - -//show the content - require_once "resources/header.php"; - $document['title'] = $text['title-sip-status']; - - $msg = $_GET["savemsg"]; - if ($_SESSION['event_socket_ip_address'] == "0.0.0.0") { - $socket_ip = '127.0.0.1'; - $fp = event_socket_create($socket_ip, $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); - } else { - $fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); - } +//create event socket + $socket_ip = $_SESSION['event_socket_ip_address'] != '0.0.0.0' ? $_SESSION['event_socket_ip_address'] : '127.0.0.1'; + $fp = event_socket_create($socket_ip, $_SESSION['event_socket_port'], $_SESSION['event_socket_password']); if (!$fp) { - $msg = "
".$text['error-event-socket']."
"; - } - if (strlen($msg) > 0) { - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
".$text['label-message']."
".escape($msg)."
\n"; - echo "
\n"; + message::add($text['error-event-socket'], 'negative', 5000); } //get the gateways @@ -84,12 +61,11 @@ $gateways = $database->select($sql, null, 'all'); unset($sql); +//get the sip profiles if ($fp) { $hostname = trim(event_socket_request($fp, 'api switchname')); } - -//get the sip profiles - $sql = "select sip_profile_name from v_sip_profiles "; + $sql = "select sip_profile_uuid, sip_profile_name from v_sip_profiles "; $sql .= "where sip_profile_enabled = 'true' "; if ($hostname) { $sql .= "and (sip_profile_hostname = :sip_profile_hostname "; @@ -99,208 +75,243 @@ } $sql .= "order by sip_profile_name asc "; $database = new database; - $sip_profiles = $database->select($sql, (is_array($parameters) && @sizeof($parameters) != 0 ? $parameters : null), 'all'); - unset($sql, $parameters); + $rows = $database->select($sql, $parameters, 'all'); + if (is_array($rows) && @sizeof($rows) != 0) { + foreach ($rows as $row) { + $sip_profiles[$row['sip_profile_name']] = $row['sip_profile_uuid']; + } + } + unset($sql, $parameters, $rows, $row); -//sofia status - if ($fp && permission_exists('system_status_sofia_status')) { +//get status + try { $cmd = "api sofia xmlstatus"; $xml_response = trim(event_socket_request($fp, $cmd)); - try { + if ($xml_response) { $xml = new SimpleXMLElement($xml_response); } - catch(Exception $e) { - echo $e->getMessage(); - } + } + catch(Exception $e) { + $message = $e->getMessage(); + message::add($message, 'negative', 5000); + } + try { $cmd = "api sofia xmlstatus gateway"; $xml_response = trim(event_socket_request($fp, $cmd)); - try { + if ($xml_response) { $xml_gateways = new SimpleXMLElement($xml_response); } - catch(Exception $e) { - echo $e->getMessage(); - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo " ".$text['header-sip-status'].""; - echo "

"; - echo "
\n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "
\n"; + } + catch(Exception $e) { + $message = $e->getMessage(); + message::add($message, 'negative', 5000); + } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
".$text['title-sofia-status']."
\n"; +//include the header + $document['title'] = $text['title-sip_status']; + require_once "resources/header.php"; - echo "
"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; +//show the content + echo "
\n"; + echo "
".$text['title-sip_status']."
\n"; + echo "
\n"; + if (permission_exists('system_status_sofia_status')) { + echo button::create(['type'=>'button','label'=>$text['button-flush_cache'],'icon'=>'eraser','collapse'=>'hide-xs','link'=>'cmd.php?cmd=api+cache+flush']); + echo button::create(['type'=>'button','label'=>$text['button-reload_acl'],'icon'=>'shield-alt','collapse'=>'hide-xs','link'=>'cmd.php?cmd=api+reloadacl']); + echo button::create(['type'=>'button','label'=>$text['button-reload_xml'],'icon'=>'code','collapse'=>'hide-xs','link'=>'cmd.php?cmd=api+reloadxml']); + } + echo button::create(['type'=>'button','label'=>$text['button-refresh'],'icon'=>$_SESSION['theme']['button_icon_refresh'],'collapse'=>'hide-xs','style'=>'margin-left: 15px;','link'=>'sip_status.php']); + echo "
\n"; + echo "
\n"; + echo "
\n"; + + echo $text['description-sip_status']."\n"; + echo "

\n"; + + if (permission_exists('system_status_sofia_status')) { + echo "".$text['title-sofia-status']."\n"; + echo "
\n"; + + echo "
"; + echo "
".$text['label-name']."".$text['label-type']."".$text['label-data']."".$text['label-state']."".$text['label-action']."
\n"; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; echo "\n"; - foreach ($xml->profile as $row) { - echo "\n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "\n"; - if ($c==0) { $c=1; } else { $c=0; } - } - foreach ($xml_gateways->gateway as $row) { - $gateway_name = ''; - $gateway_domain_name = ''; - foreach($gateways as $field) { - if ($field["gateway_uuid"] == strtolower($row->name)) { - $gateway_name = $field["gateway"]; - $gateway_domain_name = $field["domain_name"]; - break; + + //profiles + if ($xml->profile) { + foreach ($xml->profile as $row) { + unset($list_row_url); + $profile_name = (string) $row->name; + if (is_uuid($sip_profiles[$profile_name]) && permission_exists('sip_profile_edit')) { + $list_row_url = PROJECT_PATH."/app/sip_profiles/sip_profile_edit.php?id=".$sip_profiles[$profile_name]; + } + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "\n"; } } - echo "\n"; - echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "\n"; + } } - else if ($gateway_domain_name == '') { - echo $gateway_name ? $gateway_name : $row->name; + + //aliases + if ($xml->alias) { + foreach ($xml->alias as $row) { + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "\n"; + } } - else { - echo $gateway_name."@".$gateway_domain_name; - } - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "\n"; - if ($c==0) { $c=1; } else { $c=0; } - } - foreach ($xml->alias as $row) { - //print_r($row); - echo "\n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo "\n"; - if ($c==0) { $c=1; } else { $c=0; } - } + echo "
".$text['label-name']."".$text['label-type']."".$text['label-data']."".$text['label-state']."".$text['label-action']."
".escape($row->name)."".escape($row->type)."".escape($row->data)."".escape($row->state)." 
"; + if ($list_row_url) { + echo "".escape($profile_name).""; + } + else { + echo escape($profile_name); + } + echo " ".($row->type == 'profile' ? $text['label-profile'] : escape($row->type))."".escape($row->data)."".escape($row->state)." 
"; - if ($_SESSION["domain_name"] == $gateway_domain_name) { - echo "".escape($gateway_name)."@".escape($gateway_domain_name).""; + + //gateways + if ($xml_gateways->gateway) { + foreach ($xml_gateways->gateway as $row) { + unset($gateway_name, $gateway_domain_name, $list_row_url); + + if (is_array($gateways) && @sizeof($gateways) != 0) { + foreach($gateways as $field) { + if ($field["gateway_uuid"] == strtolower($row->name)) { + $gateway_name = $field["gateway"]; + $gateway_domain_name = $field["domain_name"]; + break; + } + } + } + if ($_SESSION["domain_name"] == $gateway_domain_name) { + $list_row_url = PROJECT_PATH."/app/gateways/gateway_edit.php?id=".strtolower(escape($row->name)); + } + echo "
"; + if ($_SESSION["domain_name"] == $gateway_domain_name) { + echo "".escape($gateway_name)."@".escape($gateway_domain_name).""; + echo "".escape($gateway_name)."@..."; + } + else if ($gateway_domain_name == '') { + echo $gateway_name ? escape($gateway_name) : $row->name; + } + else { + echo escape($gateway_name."@".$gateway_domain_name); + } + echo " ".$text['label-gateway']."".escape($row->to)."".escape($row->state)."
".escape($row->name)."".escape($row->type)."".escape($row->data)."".escape($row->state)." 
Gateway".escape($row->to)."".escape($row->state)."profile)."+killgw+".escape($row->name)."';\" />".$text['button-stop']."
".escape($row->name)."".escape($row->type)."".escape($row->data)."".escape($row->state)." 
\n"; echo "
\n"; - unset($xml); + unset($gateways, $xml, $xml_gateways); } //sofia status profile - if (permission_exists('system_status_sofia_status_profile')) { - foreach ($sip_profiles as $row) { - $sip_profile_name = $row["sip_profile_name"]; - - if ($fp) { - $cmd = "api sofia xmlstatus profile ".$sip_profile_name.""; - $xml_response = trim(event_socket_request($fp, $cmd)); - if ($xml_response == "Invalid Profile!") { - $xml_response = "Invalid Profile!"; - $profile_state = 'stopped'; - } - else { - $profile_state = 'running'; - } - $xml_response = str_replace("", "", $xml_response); - $xml_response = str_replace("", "", $xml_response); - try { - $xml = new SimpleXMLElement($xml_response); - } - catch(Exception $e) { - echo $e->getMessage(); - exit; - } - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - echo " ".$text['title-sofia-status-profile']." ".escape($sip_profile_name)." \n"; - echo "\n"; - if ($sip_profile_name != "external") { - echo " \n"; - } - echo " \n"; - if ($profile_state == 'stopped') { - echo " \n"; - } - if ($profile_state == 'running') { - echo " \n"; - } - echo " \n"; - echo " \n"; - echo "
\n"; - - echo ""; - unset($xml); + if ($fp && permission_exists('system_status_sofia_status_profile')) { + foreach ($sip_profiles as $sip_profile_name => $sip_profile_uuid) { + $cmd = "api sofia xmlstatus profile ".$sip_profile_name.""; + $xml_response = trim(event_socket_request($fp, $cmd)); + if ($xml_response == "Invalid Profile!") { + $xml_response = "Invalid Profile!"; + $profile_state = 'stopped'; } + else { + $profile_state = 'running'; + } + $xml_response = str_replace("", "", $xml_response); + $xml_response = str_replace("", "", $xml_response); + try { + $xml = new SimpleXMLElement($xml_response); + } + catch(Exception $e) { + echo $e->getMessage(); + exit; + } + + echo "
\n"; + echo " \n"; + echo "
\n"; + if ($sip_profile_name != "external") { + echo button::create(['type'=>'button','label'=>$text['button-flush_registrations'],'icon'=>'eraser','collapse'=>'hide-xs','link'=>'cmd.php?profile='.urlencode($sip_profile_name).'&cmd=api+sofia+profile+'.urlencode($sip_profile_name).'+flush_inbound_reg']); + } + echo button::create(['type'=>'button','label'=>$text['button-registrations'],'icon'=>'phone-alt','collapse'=>'hide-xs','link'=>PROJECT_PATH.'/app/registrations/registrations.php?profile='.urlencode($sip_profile_name)]); + if ($profile_state == 'stopped') { + echo button::create(['type'=>'button','label'=>$text['button-start'],'icon'=>$_SESSION['theme']['button_icon_start'],'collapse'=>'hide-xs','link'=>'cmd.php?profile='.urlencode($sip_profile_name).'&cmd=api+sofia+profile+'.urlencode($sip_profile_name).'+start']); + } + if ($profile_state == 'running') { + echo button::create(['type'=>'button','label'=>$text['button-stop'],'icon'=>$_SESSION['theme']['button_icon_stop'],'collapse'=>'hide-xs','link'=>'cmd.php?profile='.urlencode($sip_profile_name).'&cmd=api+sofia+profile+'.urlencode($sip_profile_name).'+stop']); + } + echo button::create(['type'=>'button','label'=>$text['button-restart'],'icon'=>$_SESSION['theme']['button_icon_reload'],'collapse'=>'hide-xs','link'=>'cmd.php?profile='.urlencode($sip_profile_name).'&cmd=api+sofia+profile+'.urlencode($sip_profile_name).'+restart']); + echo button::create(['type'=>'button','label'=>$text['button-rescan'],'icon'=>$_SESSION['theme']['button_icon_search'],'collapse'=>'hide-xs','link'=>'cmd.php?profile='.urlencode($sip_profile_name).'&cmd=api+sofia+profile+'.urlencode($sip_profile_name).'+rescan']); + echo "
\n"; + echo "
\n"; + echo "
\n"; + + echo ""; + unset($xml); } } @@ -320,4 +331,4 @@ //include the footer require_once "resources/footer.php"; -?> +?> \ No newline at end of file diff --git a/resources/classes/cache.php b/resources/classes/cache.php index 76fbe16cff..84ecf6100b 100644 --- a/resources/classes/cache.php +++ b/resources/classes/cache.php @@ -197,6 +197,9 @@ class cache { //remove the cache recursive_delete($_SESSION['cache']['location']['text']); + + //set message + $result = '+OK cache flushed'; } //return result diff --git a/themes/default/css.php b/themes/default/css.php index 6e6fbd08f5..3ed5b79eee 100644 --- a/themes/default/css.php +++ b/themes/default/css.php @@ -2340,6 +2340,10 @@ $default_login = ($_REQUEST['login'] == 'default') ? true : false; box-shadow: ; } + div.action_bar.sub { + position: static; + } + div.action_bar > div.heading { float: left; }