From 6b5bf1cb82267239ff6206a4e0a052cc0d71a5b1 Mon Sep 17 00:00:00 2001 From: markjcrane Date: Sun, 17 Jul 2016 15:12:15 -0600 Subject: [PATCH] Add conference controls. --- app/conference_controls/app_config.php | 107 +++++++++ app/conference_controls/app_defaults.php | 131 ++++++++++ app/conference_controls/app_languages.php | 170 +++++++++++++ app/conference_controls/app_menu.php | 19 ++ .../conference_control_delete.php | 49 ++++ .../conference_control_detail_delete.php | 42 ++++ .../conference_control_detail_edit.php | 226 ++++++++++++++++++ .../conference_control_details.php | 159 ++++++++++++ .../conference_control_edit.php | 203 ++++++++++++++++ .../conference_controls.php | 159 ++++++++++++ app/conference_controls/root.php | 90 +++++++ 11 files changed, 1355 insertions(+) create mode 100644 app/conference_controls/app_config.php create mode 100644 app/conference_controls/app_defaults.php create mode 100644 app/conference_controls/app_languages.php create mode 100644 app/conference_controls/app_menu.php create mode 100644 app/conference_controls/conference_control_delete.php create mode 100644 app/conference_controls/conference_control_detail_delete.php create mode 100644 app/conference_controls/conference_control_detail_edit.php create mode 100644 app/conference_controls/conference_control_details.php create mode 100644 app/conference_controls/conference_control_edit.php create mode 100644 app/conference_controls/conference_controls.php create mode 100644 app/conference_controls/root.php diff --git a/app/conference_controls/app_config.php b/app/conference_controls/app_config.php new file mode 100644 index 0000000000..3529565d8c --- /dev/null +++ b/app/conference_controls/app_config.php @@ -0,0 +1,107 @@ + \ No newline at end of file diff --git a/app/conference_controls/app_defaults.php b/app/conference_controls/app_defaults.php new file mode 100644 index 0000000000..9a5680b81e --- /dev/null +++ b/app/conference_controls/app_defaults.php @@ -0,0 +1,131 @@ + + Portions created by the Initial Developer are Copyright (C) 2016 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + + if ($domains_processed == 1) { + + //add the conference controls list to the database + $sql = "select count(*) as num_rows from v_conference_controls; "; + $prep_statement = $db->prepare($sql); + if ($prep_statement) { + $prep_statement->execute(); + $row = $prep_statement->fetch(PDO::FETCH_ASSOC); + if ($row['num_rows'] == 0) { + + //set the directory + $xml_dir = $_SESSION["switch"]["conf"]["dir"].'/autoload_configs'; + $xml_file = $xml_dir."/conference.conf"; + $xml_file_alt = $_SERVER["DOCUMENT_ROOT"].'/'.PROJECT_PATH.'/resources/templates/conf/autoload_configs/conference.conf'; + + //rename the file + if (file_exists($xml_dir.'/conference.conf.xml.noload')) { + rename($xml_dir.'/conference.conf.xml.noload', $xml_dir.'/conference.conf'); + } + + //load the xml and save it into an array + if (file_exists($xml_file)) { + $xml_string = file_get_contents($xml_file); + } + elseif (file_exists($xml_file_alt)) { + $xml_string = file_get_contents(xml_file_alt); + } + $xml_object = simplexml_load_string($xml_string); + $json = json_encode($xml_object); + $conf_array = json_decode($json, true); + + //process the array + foreach ($conf_array['caller-controls']['group'] as $row) { + + //get the data from the array + $control_name = $row['@attributes']['name']; + //echo $profile_name."
\n"; + + //insert the data into the database + $conference_control_uuid = uuid(); + $sql = "insert into v_conference_controls "; + $sql .= "("; + //$sql .= "domain_uuid, "; + $sql .= "conference_control_uuid, "; + $sql .= "control_name, "; + $sql .= "control_enabled "; + $sql .= ") "; + $sql .= "values "; + $sql .= "( "; + //$sql .= "'".$domain_uuid."', "; + $sql .= "'".$conference_control_uuid."', "; + $sql .= "'".check_str($control_name)."', "; + $sql .= "'true' "; + $sql .= ");"; + //echo $sql."\n"; + $db->exec(check_sql($sql)); + unset($sql); + + //insert the profile params + foreach ($row['control'] as $p) { + + //get the name + //print_r($p); + $control_action = $p['@attributes']['action']; + $control_digits = $p['@attributes']['digits']; + $control_data = $p['@attributes']['data']; + $control_enabled = 'true'; + + //add the coference profile params + $conference_control_detail_uuid = uuid(); + $sql = "insert into v_conference_control_details "; + $sql .= "("; + $sql .= "conference_control_uuid, "; + $sql .= "conference_control_detail_uuid, "; + $sql .= "control_digits, "; + $sql .= "control_action, "; + if (strlen($control_data) > 0) { + $sql .= "control_data, "; + } + $sql .= "control_enabled "; + $sql .= ") "; + $sql .= "values "; + $sql .= "( "; + $sql .= "'".$conference_control_uuid."', "; + $sql .= "'".$conference_control_detail_uuid."', "; + $sql .= "'".$control_digits."', "; + $sql .= "'".$control_action."', "; + if (strlen($control_data) > 0) { + $sql .= "'".$control_data."', "; + } + $sql .= "'".$control_enabled."' "; + $sql .= ");"; + //echo $sql."\n"; + $db->exec(check_sql($sql)); + unset($sql); + } + + } + + } //if num_rows + } //if prep_statement + + } + +?> \ No newline at end of file diff --git a/app/conference_controls/app_languages.php b/app/conference_controls/app_languages.php new file mode 100644 index 0000000000..a13fbbaff5 --- /dev/null +++ b/app/conference_controls/app_languages.php @@ -0,0 +1,170 @@ + \ No newline at end of file diff --git a/app/conference_controls/app_menu.php b/app/conference_controls/app_menu.php new file mode 100644 index 0000000000..bf282b7c82 --- /dev/null +++ b/app/conference_controls/app_menu.php @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/app/conference_controls/conference_control_delete.php b/app/conference_controls/conference_control_delete.php new file mode 100644 index 0000000000..89b49b7517 --- /dev/null +++ b/app/conference_controls/conference_control_delete.php @@ -0,0 +1,49 @@ +get(); + +//get the id + if (count($_GET) > 0) { + $id = check_str($_GET["id"]); + } + +//delete the data + if (strlen($id) > 0) { + //delete conference_control_detail + $sql = "delete from v_conference_control_details "; + $sql .= "where conference_control_uuid = '$id' "; + //$sql .= "and domain_uuid = '$domain_uuid' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + unset($sql); + + //delete conference_control + $sql = "delete from v_conference_controls "; + $sql .= "where conference_control_uuid = '$id' "; + //$sql .= "and domain_uuid = '$domain_uuid' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + unset($sql); + } + +//redirect the user + $_SESSION['message'] = $text['message-delete']; + header('Location: conference_controls.php'); + +?> \ No newline at end of file diff --git a/app/conference_controls/conference_control_detail_delete.php b/app/conference_controls/conference_control_detail_delete.php new file mode 100644 index 0000000000..ccd36d3283 --- /dev/null +++ b/app/conference_controls/conference_control_detail_delete.php @@ -0,0 +1,42 @@ +get(); + +//get the id + if (count($_GET) > 0) { + $id = check_str($_GET["id"]); + $conference_control_uuid = check_str($_GET["conference_control_uuid"]); + } + +//delete the data + if (strlen($id) > 0) { + //delete conference_control_detail + $sql = "delete from v_conference_control_details "; + $sql .= "where conference_control_detail_uuid = '$id' "; + //$sql .= "and domain_uuid = '$domain_uuid' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + unset($sql); + } + +//redirect the user + $_SESSION['message'] = $text['message-delete']; + header('Location: conference_control_detail_edit.php?id='.$conference_control_uuid); + +?> \ No newline at end of file diff --git a/app/conference_controls/conference_control_detail_edit.php b/app/conference_controls/conference_control_detail_edit.php new file mode 100644 index 0000000000..b554f6606b --- /dev/null +++ b/app/conference_controls/conference_control_detail_edit.php @@ -0,0 +1,226 @@ +get(); + +//action add or update + if (isset($_REQUEST["id"])) { + $action = "update"; + $conference_control_detail_uuid = check_str($_REQUEST["id"]); + } + else { + $action = "add"; + } + +//set the parent uuid + if (strlen($_GET["conference_control_uuid"]) > 0) { + $conference_control_uuid = check_str($_GET["conference_control_uuid"]); + } + +//get http post variables and set them to php variables + if (count($_POST)>0) { + $control_digits = check_str($_POST["control_digits"]); + $control_action = check_str($_POST["control_action"]); + $control_data = check_str($_POST["control_data"]); + $control_enabled = check_str($_POST["control_enabled"]); + } + +if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { + + //get the uuid + if ($action == "update") { + $conference_control_detail_uuid = check_str($_POST["conference_control_detail_uuid"]); + } + + //check for all required data + $msg = ''; + if (strlen($control_digits) == 0) { $msg .= $text['message-required']." ".$text['label-control_digits']."
\n"; } + if (strlen($control_action) == 0) { $msg .= $text['message-required']." ".$text['label-control_action']."
\n"; } + //if (strlen($control_data) == 0) { $msg .= $text['message-required']." ".$text['label-control_data']."
\n"; } + if (strlen($control_enabled) == 0) { $msg .= $text['message-required']." ".$text['label-control_enabled']."
\n"; } + if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { + require_once "resources/header.php"; + require_once "resources/persist_form_var.php"; + echo "
\n"; + echo "
\n"; + echo $msg."
"; + echo "
\n"; + persistformvar($_POST); + echo "
\n"; + require_once "resources/footer.php"; + return; + } + + //add or update the database + if ($_POST["persistformvar"] != "true") { + if ($action == "add" && permission_exists('conference_control_detail_add')) { + $sql = "insert into v_conference_control_details "; + $sql .= "("; + //$sql .= "domain_uuid, "; + $sql .= "conference_control_detail_uuid, "; + $sql .= "conference_control_uuid, "; + $sql .= "control_digits, "; + $sql .= "control_action, "; + $sql .= "control_data, "; + $sql .= "control_enabled "; + $sql .= ")"; + $sql .= "values "; + $sql .= "("; + //$sql .= "'$domain_uuid', "; + $sql .= "'".uuid()."', "; + $sql .= "'$conference_control_uuid', "; + $sql .= "'$control_digits', "; + $sql .= "'$control_action', "; + $sql .= "'$control_data', "; + $sql .= "'$control_enabled' "; + $sql .= ")"; + $db->exec(check_sql($sql)); + unset($sql); + + $_SESSION["message"] = $text['message-add']; + header('Location: conference_control_edit.php?id='.$conference_control_uuid); + return; + + } //if ($action == "add") + + if ($action == "update" && permission_exists('conference_control_detail_edit')) { + $sql = "update v_conference_control_details set "; + $sql .= "conference_control_uuid = '$conference_control_uuid', "; + $sql .= "control_digits = '$control_digits', "; + $sql .= "control_action = '$control_action', "; + $sql .= "control_data = '$control_data', "; + $sql .= "control_enabled = '$control_enabled' "; + $sql .= "where conference_control_detail_uuid = '$conference_control_detail_uuid'"; + //$sql .= "and domain_uuid = '$domain_uuid' "; + $db->exec(check_sql($sql)); + unset($sql); + + $_SESSION["message"] = $text['message-update']; + header('Location: conference_control_edit.php?id='.$conference_control_uuid); + return; + + } //if ($action == "update") + } //if ($_POST["persistformvar"] != "true") +} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) + +//pre-populate the form + if (count($_GET) > 0 && $_POST["persistformvar"] != "true") { + $conference_control_detail_uuid = check_str($_GET["id"]); + $sql = "select * from v_conference_control_details "; + $sql .= "where conference_control_detail_uuid = '$conference_control_detail_uuid' "; + //$sql .= "and domain_uuid = '$domain_uuid' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + foreach ($result as &$row) { + $control_digits = $row["control_digits"]; + $control_action = $row["control_action"]; + $control_data = $row["control_data"]; + $control_enabled = $row["control_enabled"]; + } + unset ($prep_statement); + } + +//show the header + require_once "resources/header.php"; + +//show the content + 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"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo " \n"; + echo " \n"; + echo " "; + echo "
".$text['title-conference_control_detail']."

\n"; + echo " "; + echo " "; + echo "
\n"; + echo " ".$text['label-control_digits']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-control_digits']."\n"; + echo "
\n"; + echo " ".$text['label-control_action']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-control_action']."\n"; + echo "
\n"; + echo " ".$text['label-control_data']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-control_data']."\n"; + echo "
\n"; + echo " ".$text['label-control_enabled']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-control_enabled']."\n"; + echo "
\n"; + echo " \n"; + if ($action == "update") { + echo " \n"; + } + echo " \n"; + echo "
"; + echo "
"; + echo "

"; + +//include the footer + require_once "resources/footer.php"; + +?> \ No newline at end of file diff --git a/app/conference_controls/conference_control_details.php b/app/conference_controls/conference_control_details.php new file mode 100644 index 0000000000..790ed2978d --- /dev/null +++ b/app/conference_controls/conference_control_details.php @@ -0,0 +1,159 @@ +get(); + +//get variables used to control the order + $order_by = check_str($_GET["order_by"]); + $order = check_str($_GET["order"]); + +//add the search term + $search = check_str($_GET["search"]); + if (strlen($search) > 0) { + $sql_search = "and ("; + $sql_search .= "control_digits like '%".$search."%'"; + $sql_search .= "or control_action like '%".$search."%'"; + $sql_search .= "or control_data like '%".$search."%'"; + $sql_search .= "or control_enabled like '%".$search."%'"; + $sql_search .= ")"; + } +//additional includes + require_once "resources/header.php"; + require_once "resources/paging.php"; + +//prepare to page the results + $sql = "select count(*) as num_rows from v_conference_control_details "; + $sql .= "where conference_control_uuid = '$conference_control_uuid' "; + //$sql .= "and domain_uuid = '$domain_uuid' "; + $sql .= $sql_search; + if (strlen($order_by) > 0) { $sql .= "order by $order_by $order "; } + $prep_statement = $db->prepare($sql); + if ($prep_statement) { + $prep_statement->execute(); + $row = $prep_statement->fetch(PDO::FETCH_ASSOC); + if ($row['num_rows'] > 0) { + $num_rows = $row['num_rows']; + } + else { + $num_rows = '0'; + } + } + +//prepare to page the results + $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; + $param = ""; + $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); + $offset = $rows_per_page * $page; + +//get the list + $sql = "select * from v_conference_control_details "; + $sql .= "where conference_control_uuid = '$conference_control_uuid' "; + //$sql .= "and domain_uuid = '$domain_uuid' "; + $sql .= $sql_search; + if (strlen($order_by) > 0) { $sql .= "order by $order_by $order "; } + $sql .= "limit $rows_per_page offset $offset "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + unset ($prep_statement, $sql); + +//alternate the row style + $c = 0; + $row_style["0"] = "row_style0"; + $row_style["1"] = "row_style1"; + +//show the content + echo "\n"; + echo " \n"; + echo " \n"; + //echo " \n"; + //echo " \n"; + //echo " \n"; + echo " \n"; + echo "
".$text['title-conference_control_details']."
\n"; + //echo " \n"; + //echo " \n"; + //echo "
\n"; + + echo "\n"; + echo "\n"; + echo th_order_by('control_digits', $text['label-control_digits'], $order_by, $order); + echo th_order_by('control_action', $text['label-control_action'], $order_by, $order); + echo th_order_by('control_data', $text['label-control_data'], $order_by, $order); + echo th_order_by('control_enabled', $text['label-control_enabled'], $order_by, $order); + echo "\n"; + echo "\n"; + + if (is_array($result)) { + foreach($result as $row) { + if (permission_exists('conference_control_detail_edit')) { + $tr_link = "href='conference_control_detail_edit.php?conference_control_uuid=".$row['conference_control_uuid']."&id=".$row['conference_control_detail_uuid']."'"; + } + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "\n"; + if ($c==0) { $c=1; } else { $c=0; } + } //end foreach + unset($sql, $result, $row_count); + } //end if results + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
"; + if (permission_exists('conference_control_detail_add')) { + echo "$v_link_label_add"; + } + else { + echo " \n"; + } + echo "
".$row['control_digits']." ".$row['control_action']." ".$row['control_data']." ".$row['control_enabled']." "; + if (permission_exists('conference_control_detail_edit')) { + echo "$v_link_label_edit"; + } + if (permission_exists('conference_control_detail_delete')) { + echo "$v_link_label_delete"; + } + echo "
\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
 $paging_controls"; + if (permission_exists('conference_control_detail_add')) { + echo "$v_link_label_add"; + } + else { + echo " "; + } + echo "
\n"; + echo "
"; + echo "

"; + +//include the footer + require_once "resources/footer.php"; + +?> \ No newline at end of file diff --git a/app/conference_controls/conference_control_edit.php b/app/conference_controls/conference_control_edit.php new file mode 100644 index 0000000000..19651608ba --- /dev/null +++ b/app/conference_controls/conference_control_edit.php @@ -0,0 +1,203 @@ +get(); + +//action add or update + if (isset($_REQUEST["id"])) { + $action = "update"; + $conference_control_uuid = check_str($_REQUEST["id"]); + } + else { + $action = "add"; + } + +//get http post variables and set them to php variables + if (count($_POST)>0) { + $control_name = check_str($_POST["control_name"]); + $control_enabled = check_str($_POST["control_enabled"]); + $control_description = check_str($_POST["control_description"]); + } + +if (count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) { + + $msg = ''; + if ($action == "update") { + $conference_control_uuid = check_str($_POST["conference_control_uuid"]); + } + + //check for all required data + if (strlen($control_name) == 0) { $msg .= $text['message-required']." ".$text['label-control_name']."
\n"; } + if (strlen($control_enabled) == 0) { $msg .= $text['message-required']." ".$text['label-control_enabled']."
\n"; } + //if (strlen($control_description) == 0) { $msg .= $text['message-required']." ".$text['label-control_description']."
\n"; } + if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { + require_once "resources/header.php"; + require_once "resources/persist_form_var.php"; + echo "
\n"; + echo "
\n"; + echo $msg."
"; + echo "
\n"; + persistformvar($_POST); + echo "
\n"; + require_once "resources/footer.php"; + return; + } + + //add or update the database + if ($_POST["persistformvar"] != "true") { + if ($action == "add" && permission_exists('conference_control_add')) { + $sql = "insert into v_conference_controls "; + $sql .= "("; + //$sql .= "domain_uuid, "; + $sql .= "conference_control_uuid, "; + $sql .= "control_name, "; + $sql .= "control_enabled, "; + $sql .= "control_description "; + $sql .= ")"; + $sql .= "values "; + $sql .= "("; + //$sql .= "'$domain_uuid', "; + $sql .= "'".uuid()."', "; + $sql .= "'$control_name', "; + $sql .= "'$control_enabled', "; + $sql .= "'$control_description' "; + $sql .= ")"; + $db->exec(check_sql($sql)); + unset($sql); + + $_SESSION["message"] = $text['message-add']; + header("Location: conference_controls.php"); + return; + + } //if ($action == "add") + + if ($action == "update" && permission_exists('conference_control_edit')) { + $sql = "update v_conference_controls set "; + $sql .= "control_name = '$control_name', "; + $sql .= "control_enabled = '$control_enabled', "; + $sql .= "control_description = '$control_description' "; + $sql .= "where conference_control_uuid = '$conference_control_uuid'"; + //$sql .= "and domain_uuid = '$domain_uuid' "; + $db->exec(check_sql($sql)); + unset($sql); + + $_SESSION["message"] = $text['message-update']; + header("Location: conference_controls.php"); + return; + + } //if ($action == "update") + } //if ($_POST["persistformvar"] != "true") +} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0) + +//pre-populate the form + if (count($_GET) > 0 && $_POST["persistformvar"] != "true") { + $conference_control_uuid = check_str($_GET["id"]); + $sql = "select * from v_conference_controls "; + $sql .= "where conference_control_uuid = '$conference_control_uuid' "; + //$sql .= "and domain_uuid = '$domain_uuid' "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + foreach ($result as &$row) { + $control_name = $row["control_name"]; + $control_enabled = $row["control_enabled"]; + $control_description = $row["control_description"]; + } + unset ($prep_statement); + } + +//show the header + require_once "resources/header.php"; + +//show the content + 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"; + echo "\n"; + echo "\n"; + echo "\n"; + echo " \n"; + echo " \n"; + echo " "; + echo "
".$text['title-conference_control']."

\n"; + echo " "; + echo " "; + echo "
\n"; + echo " ".$text['label-control_name']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-control_name']."\n"; + echo "
\n"; + echo " ".$text['label-control_enabled']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-control_enabled']."\n"; + echo "
\n"; + echo " ".$text['label-control_description']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-control_description']."\n"; + echo "
\n"; + if ($action == "update") { + echo " \n"; + } + echo " \n"; + echo "
"; + echo "
"; + echo "

"; + + if ($action == "update") { + require "conference_control_details.php"; + } + +//include the footer + require_once "resources/footer.php"; + +?> \ No newline at end of file diff --git a/app/conference_controls/conference_controls.php b/app/conference_controls/conference_controls.php new file mode 100644 index 0000000000..24a45e873d --- /dev/null +++ b/app/conference_controls/conference_controls.php @@ -0,0 +1,159 @@ +get(); + +//get variables used to control the order + $order_by = check_str($_GET["order_by"]); + $order = check_str($_GET["order"]); + +//add the search term + $search = check_str($_GET["search"]); + if (strlen($search) > 0) { + $sql_search = "where ("; + $sql_search .= "control_name like '%".$search."%'"; + $sql_search .= "or control_enabled like '%".$search."%'"; + $sql_search .= "or control_description like '%".$search."%'"; + $sql_search .= ")"; + } +//additional includes + require_once "resources/header.php"; + require_once "resources/paging.php"; + +//prepare to page the results + $sql = "select count(*) as num_rows from v_conference_controls "; + //$sql .= "where domain_uuid = '$domain_uuid' "; + $sql .= $sql_search; + if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; } + $prep_statement = $db->prepare($sql); + if ($prep_statement) { + $prep_statement->execute(); + $row = $prep_statement->fetch(PDO::FETCH_ASSOC); + if ($row['num_rows'] > 0) { + $num_rows = $row['num_rows']; + } + else { + $num_rows = '0'; + } + } + +//prepare to page the results + $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; + $param = ""; + $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); + $offset = $rows_per_page * $page; + +//get the list + $sql = "select * from v_conference_controls "; + //$sql .= "where domain_uuid = '$domain_uuid' "; + $sql .= $sql_search; + if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; } + $sql .= "limit $rows_per_page offset $offset "; + $prep_statement = $db->prepare(check_sql($sql)); + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + unset ($prep_statement, $sql); + +//alternate the row style + $c = 0; + $row_style["0"] = "row_style0"; + $row_style["1"] = "row_style1"; + +//show the content + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
".$text['title-conference_controls']."
\n"; + echo " \n"; + echo " \n"; + echo "
\n"; + echo " ".$text['title_description-conference_control']."

\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo th_order_by('control_name', $text['label-control_name'], $order_by, $order); + echo th_order_by('control_enabled', $text['label-control_enabled'], $order_by, $order); + echo th_order_by('control_description', $text['label-control_description'], $order_by, $order); + echo "\n"; + echo "\n"; + + if (is_array($result)) { + foreach($result as $row) { + if (permission_exists('conference_control_edit')) { + $tr_link = "href='conference_control_edit.php?id=".$row['conference_control_uuid']."'"; + } + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "\n"; + if ($c==0) { $c=1; } else { $c=0; } + } //end foreach + unset($sql, $result, $row_count); + } //end if results + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
"; + if (permission_exists('conference_control_add')) { + echo "$v_link_label_add"; + } + else { + echo " \n"; + } + echo "
".$row['control_name']." ".$row['control_enabled']." ".$row['control_description']." "; + if (permission_exists('conference_control_edit')) { + echo "$v_link_label_edit"; + } + if (permission_exists('conference_control_delete')) { + echo "$v_link_label_delete"; + } + echo "
\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
 $paging_controls"; + if (permission_exists('conference_control_add')) { + echo "$v_link_label_add"; + } + else { + echo " "; + } + echo "
\n"; + echo "
"; + echo "

"; + +//include the footer + require_once "resources/footer.php"; + +?> \ No newline at end of file diff --git a/app/conference_controls/root.php b/app/conference_controls/root.php new file mode 100644 index 0000000000..6fdf32f37b --- /dev/null +++ b/app/conference_controls/root.php @@ -0,0 +1,90 @@ + + Portions created by the Initial Developer are Copyright (C) 2008-2012 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +// make sure the PATH_SEPARATOR is defined + umask(2); + if (!defined("PATH_SEPARATOR")) { + if (strpos($_ENV["OS"], "Win") !== false) { + define("PATH_SEPARATOR", ";"); + } else { + define("PATH_SEPARATOR", ":"); + } + } + + if (!isset($output_format)) $output_format = (PHP_SAPI == 'cli') ? 'text' : 'html'; + + // make sure the document_root is set + $_SERVER["SCRIPT_FILENAME"] = str_replace("\\", '/', $_SERVER["SCRIPT_FILENAME"]); + if(PHP_SAPI == 'cli'){ + chdir(pathinfo(realpath($_SERVER["PHP_SELF"]), PATHINFO_DIRNAME)); + $script_full_path = str_replace("\\", '/', getcwd() . '/' . $_SERVER["SCRIPT_FILENAME"]); + $dirs = explode('/', pathinfo($script_full_path, PATHINFO_DIRNAME)); + if (file_exists('/project_root.php')) { + $path = '/'; + } else { + $i = 1; + $path = ''; + while ($i < count($dirs)) { + $path .= '/' . $dirs[$i]; + if (file_exists($path. '/project_root.php')) { + break; + } + $i++; + } + } + $_SERVER["DOCUMENT_ROOT"] = $path; + }else{ + $_SERVER["DOCUMENT_ROOT"] = str_replace($_SERVER["PHP_SELF"], "", $_SERVER["SCRIPT_FILENAME"]); + } + $_SERVER["DOCUMENT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"]); +// try to detect if a project path is being used + if (!defined('PROJECT_PATH')) { + if (is_dir($_SERVER["DOCUMENT_ROOT"]. '/fusionpbx')) { + define('PROJECT_PATH', '/fusionpbx'); + } elseif (file_exists($_SERVER["DOCUMENT_ROOT"]. '/project_root.php')) { + define('PROJECT_PATH', ''); + } else { + $dirs = explode('/', str_replace('\\', '/', pathinfo($_SERVER["PHP_SELF"], PATHINFO_DIRNAME))); + $i = 1; + $path = $_SERVER["DOCUMENT_ROOT"]; + while ($i < count($dirs)) { + $path .= '/' . $dirs[$i]; + if (file_exists($path. '/project_root.php')) { + break; + } + $i++; + } + if(!file_exists($path. '/project_root.php')){ + die("Failed to locate the Project Root by searching for project_root.php please contact support for assistance"); + } + $project_path = str_replace($_SERVER["DOCUMENT_ROOT"], "", $path); + define('PROJECT_PATH', $project_path); + } + $_SERVER["PROJECT_ROOT"] = realpath($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH); + set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["PROJECT_ROOT"]); + } + +?> \ No newline at end of file