2
0
Эх сурвалжийг харах

Bulk account settings vm options (#51)

* Update bulk_account_settings_voicemails.php

* Update bulk_account_settings_voicemails_update.php
konradSC 8 жил өмнө
parent
commit
caddff73ae

+ 165 - 22
bulk_account_settings/bulk_account_settings_voicemails.php

@@ -34,7 +34,6 @@
 	require_once "resources/check_auth.php";
 
 //check permissions
-	require_once "resources/check_auth.php";
 	if (permission_exists('bulk_account_settings_voicemails')) {
 		//access granted
 	}
@@ -51,6 +50,7 @@
 	$order_by = check_str($_GET["order_by"]);
 	$order = check_str($_GET["order"]);
 	$option_selected = check_str($_GET["option_selected"]);
+	$option_action = check_str($_GET["option_action"]);
 	
 //handle search term
 	$search = check_str($_GET["search"]);
@@ -66,7 +66,6 @@
 	}
 
 	$domain_uuid = $_SESSION['domain_uuid'];
-	
 
 //get total voicemail count from the database
 	$sql = "select count(*) as num_rows from v_voicemails where domain_uuid = '".$_SESSION['domain_uuid']."' ".$sql_mod." ";
@@ -83,33 +82,56 @@
 
 //prepare to page the results
 	$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
-	$param = "&search=".$search."&option_selected=".$option_selected;
+	$param = "&search=".$search;
 	if (!isset($_GET['page'])) { $_GET['page'] = 0; }
 	$_GET['page'] = check_str($_GET['page']);
 	list($paging_controls_mini, $rows_per_page, $var_3) = paging($total_voicemails, $param, $rows_per_page, true); //top
 	list($paging_controls, $rows_per_page, $var_3) = paging($total_voicemails, $param, $rows_per_page); //bottom
 	$offset = $rows_per_page * $_GET['page'];
 
+//voicemail options
+	if (preg_match ('/option_(.)/',$option_selected)) {
+		preg_match ('/option_(.)/',$option_selected, $matches);
+		$option_number = $matches[1];
+	}
+
 //get all the voicemails from the database
 	$sql = "SELECT \n";
-	$sql .= "voicemail_description, \n";
-	$sql .= "voicemail_id, \n";
-	$sql .= "voicemail_uuid, \n";
-	$sql .= "voicemail_file, \n";
-	$sql .= "voicemail_enabled, \n";	
-	$sql .= "voicemail_local_after_email, \n";
-	$sql .= "voicemail_transcription_enabled \n";
-	$sql .= "FROM v_voicemails \n";
-	$sql .= "WHERE domain_uuid = '$domain_uuid' \n";
+	$sql .= "v.voicemail_description, \n";
+	$sql .= "v.voicemail_id, \n";
+	$sql .= "v.voicemail_uuid, \n";
+	$sql .= "v.voicemail_file, \n";
+	$sql .= "v.voicemail_enabled, \n";	
+	$sql .= "v.voicemail_local_after_email, \n";
+	$sql .= "v.voicemail_transcription_enabled \n";
+	$sql .= "FROM v_voicemails as v \n";
+	$sql .= "WHERE v.domain_uuid = '$domain_uuid' \n";
 	$sql .= $sql_mod; //add search mod from above
 	$sql .= "ORDER BY ".$order_by." ".$order." \n";
 	$sql .= "limit $rows_per_page offset $offset ";
 	$database = new database;
 	$database->select($sql);
 	$directory = $database->result;
-	unset($database,$result);
 
+$sql_view = $sql;
+	unset($database,$result);
 
+//lookup the options
+	$x = 0;
+	foreach ($directory as $key => $row) {
+		$sql = "SELECT voicemail_option_param, voicemail_option_order \n";
+		$sql .= "FROM v_voicemail_options \n";
+		$sql .= "WHERE domain_uuid = '$domain_uuid' \n";
+		$sql .= "and voicemail_uuid = '".$row['voicemail_uuid']."' ";
+		$sql .= "and voicemail_option_digits = '".$option_number."' ";
+		$database = new database;
+		$database->select($sql);
+		$result = $database->result;
+		$directory[$key]['option_db_value'] = $result;		
+		unset($result,$database);
+		$x++;
+	}
+	
 //additional includes
 	require_once "resources/header.php";
 	$document['title'] = $text['title-voicemails_settings'];
@@ -119,6 +141,9 @@
 	$row_style["0"] = "row_style0";
 	$row_style["1"] = "row_style1";
 
+//initialize the destinations object
+	$destination = new destinations;
+
 //show the content
 	echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
 	echo "  <tr>\n";
@@ -161,6 +186,66 @@
 			echo "    <option value='voicemail_transcription_enabled'>".$text['label-voicemail_transcription_enabled']."</option>\n";
 		}
 	}
+	if ($option_selected == "voicemail_option_0") {
+		echo "    <option value='voicemail_option_0' selected='selected'>".$text['label-voicemail_option_0']."</option>\n";
+	}
+	else {
+		echo "    <option value='voicemail_option_0'>".$text['label-voicemail_option_0']."</option>\n";
+	}
+	if ($option_selected == "voicemail_option_1") {
+		echo "    <option value='voicemail_option_1' selected='selected'>".$text['label-voicemail_option_1']."</option>\n";
+	}
+	else {
+		echo "    <option value='voicemail_option_1'>".$text['label-voicemail_option_1']."</option>\n";
+	}
+	if ($option_selected == "voicemail_option_2") {
+		echo "    <option value='voicemail_option_1' selected='selected'>".$text['label-voicemail_option_2']."</option>\n";
+	}
+	else {
+		echo "    <option value='voicemail_option_2'>".$text['label-voicemail_option_2']."</option>\n";
+	}
+	if ($option_selected == "voicemail_option_3") {
+		echo "    <option value='voicemail_option_3' selected='selected'>".$text['label-voicemail_option_3']."</option>\n";
+	}
+	else {
+		echo "    <option value='voicemail_option_3'>".$text['label-voicemail_option_3']."</option>\n";
+	}
+	if ($option_selected == "voicemail_option_4") {
+		echo "    <option value='voicemail_option_4' selected='selected'>".$text['label-voicemail_option_4']."</option>\n";
+	}
+	else {
+		echo "    <option value='voicemail_option_4'>".$text['label-voicemail_option_4']."</option>\n";
+	}
+	if ($option_selected == "voicemail_option_5") {
+		echo "    <option value='voicemail_option_5' selected='selected'>".$text['label-voicemail_option_5']."</option>\n";
+	}
+	else {
+		echo "    <option value='voicemail_option_5'>".$text['label-voicemail_option_5']."</option>\n";
+	}
+	if ($option_selected == "voicemail_option_6") {
+		echo "    <option value='voicemail_option_6' selected='selected'>".$text['label-voicemail_option_6']."</option>\n";
+	}
+	else {
+		echo "    <option value='voicemail_option_6'>".$text['label-voicemail_option_6']."</option>\n";
+	}
+	if ($option_selected == "voicemail_option_7") {
+		echo "    <option value='voicemail_option_7' selected='selected'>".$text['label-voicemail_option_7']."</option>\n";
+	}
+	else {
+		echo "    <option value='voicemail_option_7'>".$text['label-voicemail_option_7']."</option>\n";
+	}
+	if ($option_selected == "voicemail_option_8") {
+		echo "    <option value='voicemail_option_8' selected='selected'>".$text['label-voicemail_option_8']."</option>\n";
+	}
+	else {
+		echo "    <option value='voicemail_option_8'>".$text['label-voicemail_option_8']."</option>\n";
+	}
+	if ($option_selected == "voicemail_option_9") {
+		echo "    <option value='voicemail_option_9' selected='selected'>".$text['label-voicemail_option_9']."</option>\n";
+	}
+	else {
+		echo "    <option value='voicemail_option_9'>".$text['label-voicemail_option_9']."</option>\n";
+	}	
 	echo "    </select>\n";
 	echo "    </form>\n";
 	echo "<br />\n";
@@ -226,6 +311,44 @@
 			echo $text["description-".$option_selected.""]."\n";
 			echo "</td>\n";
 		}
+		//option is voicemail_option
+		if (preg_match ('/option_/',$option_selected)) {
+			echo "<td class='vtable' align='left'>\n";
+			echo "    <select class='formfld' name='option_action' onchange=\"$('.add_option').slideToggle();\">\n";
+			echo "    <option value='add'>".$text['label-add']."</option>\n";
+			echo "    <option value='remove'>".$text['label-remove']."</option>\n";
+			echo "    </select><br>\n";
+			echo "	  ".$text["label-".$option_selected.""]."\n";
+			echo "</td>\n";
+
+			echo "<td class='vtable add_option' align='left' nowrap='nowrap'>\n";
+			echo $destination->select('ivr', 'voicemail_option_param', '');
+			echo "<br>".$text['label-destination']."</td>\n";
+			echo "<td class='vtable add_option' align='left'>\n";
+			echo "	<select name='voicemail_option_order' class='formfld' style='width:55px'>\n";
+			if (strlen(htmlspecialchars($voicemail_option_order))> 0) {
+				echo "	<option selected='yes' value='".htmlspecialchars($voicemail_option_order)."'>".htmlspecialchars($voicemail_option_order)."</option>\n";
+			}
+			$i=0;
+			while($i<=999) {
+				if (strlen($i) == 1) {
+					echo "	<option value='00$i'>00$i</option>\n";
+				}
+				if (strlen($i) == 2) {
+					echo "	<option value='0$i'>0$i</option>\n";
+				}
+				if (strlen($i) == 3) {
+					echo "	<option value='$i'>$i</option>\n";
+				}
+				$i++;
+			}
+			echo "	</select><br>\n";
+			echo "".$text['label-order']."</td>\n";
+			echo "<td class='vtable add_option' align='left'>\n";
+			echo "	<input class='formfld' style='width:100px' type='text' name='voicemail_option_description' maxlength='255' value=\"".$voicemail_option_description."\">\n";
+			echo "<br>".$text['label-description']."</td>\n";
+		}
+		
 		echo "<td align='left'>\n";
 		echo "<input type='button' class='btn' alt='".$text['button-submit']."' onclick=\"if (confirm('".$text['confirm-update']."')) { document.forms.voicemails.submit(); }\" value='".$text['button-submit']."'>\n";
 		echo "</td>\n";
@@ -239,10 +362,15 @@
 		echo "<th style='width: 30px; text-align: center; padding: 0px;'><input type='checkbox' id='chk_all' onchange=\"(this.checked) ? check('all') : check('none');\"></th>";
 	}
 	echo th_order_by('voicemail_id', $text['label-voicemail_id'], $order_by,$order,'','',"option_selected=".$option_selected."&search=".$search."");
-	echo th_order_by('voicemail_id', $text['label-voicemail_file'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search."");
-	echo th_order_by('voicemail_id', $text['label-voicemail_local_after_email'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search."");
-	if($_SESSION['voicemail']['transcribe_enabled']['boolean'] == "true") {
-		echo th_order_by('voicemail_id', $text['label-voicemail_transcription_enabled'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search."");	
+	if (preg_match ('/option_/',$option_selected)) {
+		echo th_order_by('voicemail_id', $text["label-".$option_selected.""], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search."");	
+	}
+	else {
+		echo th_order_by('voicemail_id', $text['label-voicemail_file'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search."");
+		echo th_order_by('voicemail_id', $text['label-voicemail_local_after_email'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search."");
+		if($_SESSION['voicemail']['transcribe_enabled']['boolean'] == "true") {
+			echo th_order_by('voicemail_id', $text['label-voicemail_transcription_enabled'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search."");	
+		}
 	}
 	echo th_order_by('voicemail_id', $text['label-voicemail_enabled'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search."");	
 	echo th_order_by('voicemail_id', $text['label-voicemail_description'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search."");
@@ -262,10 +390,25 @@ if (is_array($directory)) {
 			$ext_ids[] = 'checkbox_'.$row['voicemail_uuid'];
 
 			echo "	<td valign='top' class='".$row_style[$c]."'> ".$row['voicemail_id']."&nbsp;</td>\n";
-			echo "	<td valign='top' class='".$row_style[$c]."'> ".$row['voicemail_file']."&nbsp;</td>\n";
-			echo "	<td valign='top' class='".$row_style[$c]."'> ".$row['voicemail_local_after_email']."&nbsp;</td>\n";
-			if($_SESSION['voicemail']['transcribe_enabled']['boolean'] == "true") {
-				echo "	<td valign='top' class='".$row_style[$c]."'> ".$row['voicemail_transcription_enabled']."&nbsp;</td>\n";			
+			if (preg_match ('/option_/',$option_selected)) {
+				echo "	<td valign='top' class='".$row_style[$c]."'>\n";
+					$x = 0;
+					foreach($row['option_db_value'] as $key => $value) {
+						if ($x > 0) {
+							echo ", ";
+						}
+						echo $value['voicemail_option_param']." (Order: ".$value['voicemail_option_order'].")";
+						$x++;
+					}
+				echo "&nbsp;</td>\n";
+			}				
+
+			else {
+				echo "	<td valign='top' class='".$row_style[$c]."'> ".$row['voicemail_file']."&nbsp;</td>\n";
+				echo "	<td valign='top' class='".$row_style[$c]."'> ".$row['voicemail_local_after_email']."&nbsp;</td>\n";
+				if($_SESSION['voicemail']['transcribe_enabled']['boolean'] == "true") {
+					echo "	<td valign='top' class='".$row_style[$c]."'> ".$row['voicemail_transcription_enabled']."&nbsp;</td>\n";			
+				}
 			}
 			echo "	<td valign='top' class='".$row_style[$c]."'> ".$row['voicemail_enabled']."&nbsp;</td>\n";			
 			echo "	<td valign='top' class='".$row_style[$c]."'> ".$row['voicemail_description']."</td>\n";
@@ -307,4 +450,4 @@ if (is_array($directory)) {
 
 //show the footer
 	require_once "resources/footer.php";
-?>
+?>

+ 80 - 14
bulk_account_settings/bulk_account_settings_voicemails_update.php

@@ -48,9 +48,77 @@
 		$voicemail_uuids = $_REQUEST["id"];
 		$option_selected = $_REQUEST["option_selected"];
 		$new_setting = $_REQUEST["new_setting"];
+		$option_action = $_REQUEST["option_action"];
+		$voicemail_option_param = $_REQUEST["voicemail_option_param"];
+		$voicemail_option_order = (int)$_REQUEST["voicemail_option_order"];
+		$voicemail_option_description = $_REQUEST["voicemail_option_description"];
+
+		//seperate the action and the param
+		$option_array = explode(":", $voicemail_option_param);
+		$voicemail_option_action = array_shift($option_array);
+		$voicemail_option_param = join(':', $option_array);
+		preg_match ('/voicemail_option_(.)/',$option_selected, $matches);
+		$voicemail_option_digits = $matches[1];
+
+					
 		foreach($voicemail_uuids as $voicemail_uuid) {
 			$voicemail_uuid = check_str($voicemail_uuid);
 			if ($voicemail_uuid != '') {
+			//Voicemail Options
+				if (preg_match ('/voicemail_option_/',$option_selected)) {
+					//Add Options
+					if ($option_action == 'add'){
+
+						$sql = "select * from v_voicemail_options ";
+						$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
+						$sql .= "and voicemail_uuid = '".$voicemail_uuid."' ";
+						$sql .= "and voicemail_option_digits = '".$voicemail_option_digits."' ";
+						$sql .= "and voicemail_option_order = '".$voicemail_option_order."' ";
+						$database = new database;
+						$database->select($sql);
+						$voicemails = $database->result;
+						unset ($database);
+						if (is_array($voicemails)) { 
+							foreach ($voicemails as &$row) {
+								$voicemail_option_uuid = $row["voicemail_option_uuid"];
+							}
+							unset ($prep_statement);
+						}
+						if (empty($voicemail_option_uuid)) {
+							$voicemail_option_uuid = uuid();
+						}
+						
+						$i=0;
+						$array["voicemail_options"][$i]["voicemail_option_uuid"] = $voicemail_option_uuid;
+						$array["voicemail_options"][$i]["domain_uuid"] = $_SESSION['domain_uuid'];
+						$array["voicemail_options"][$i]["voicemail_uuid"] = $voicemail_uuid;
+						$array["voicemail_options"][$i]["voicemail_option_digits"] = $voicemail_option_digits;
+						$array["voicemail_options"][$i]["voicemail_option_description"] = $voicemail_option_description;
+						$array["voicemail_options"][$i]["voicemail_option_order"] = (int)$voicemail_option_order;
+						$array["voicemail_options"][$i]["voicemail_option_action"] = trim($voicemail_option_action);
+						$array["voicemail_options"][$i]["voicemail_option_param"] = trim($voicemail_option_param);
+						
+						$database = new database;
+						$database->app_name = 'bulk_account_settings';
+						$database->app_uuid = null;
+						$database->save($array);
+						$message = $database->message;
+						
+						unset($database,$array,$i,$voicemail_option_uuid);	
+
+					} elseif ($option_action == 'remove') {
+					//delete the voicemail option
+						$sql = "delete from v_voicemail_options ";
+						$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
+						$sql .= "and voicemail_uuid = '".$voicemail_uuid."' ";
+						$sql .= "and voicemail_option_digits = '".$voicemail_option_digits."' ";
+						$prep_statement = $db->prepare(check_sql($sql));
+						$prep_statement->execute();
+						unset($prep_statement, $sql);							
+					}
+					
+				} else {
+				//All other Voicemail properties	
 				//get the voicemails array
 					$sql = "select * from v_voicemails ";
 					$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
@@ -61,25 +129,23 @@
 					if (is_array($voicemails)) { 
 						foreach ($voicemails as &$row) {
 							$voicemail = $row["voicemail"];
-							//$user_context = $row["user_context"];
 						}
 						unset ($prep_statement);
 					}
+					
 
-					$array["voicemails"][$i]["domain_uuid"] = $domain_uuid;
-					$array["voicemails"][$i]["voicemail_uuid"] = $voicemail_uuid;
-					$array["voicemails"][$i][$option_selected] = $new_setting;
+						$array["voicemails"][$i]["domain_uuid"] = $domain_uuid;
+						$array["voicemails"][$i]["voicemail_uuid"] = $voicemail_uuid;
+						$array["voicemails"][$i][$option_selected] = $new_setting;
+	
+						$database = new database;
+						$database->app_name = 'bulk_account_settings';
+						$database->app_uuid = null;
+						$database->save($array);
+						$message = $database->message;
 
-					$database = new database;
-					$database->app_name = 'bulk_account_settings';
-					$database->app_uuid = null;
-					$database->save($array);
-					$message = $database->message;
-				
-					//echo "<pre>".print_r($message, true)."<pre>\n";
-					//exit;
-					
-					unset($database,$array,$i);
+						unset($database,$array,$i);
+				}
 			}
 		}
 	}