Browse Source

Default Settings: Added bulk delete, did away with need for default_setting_delete.php.

Nate Jones 11 năm trước cách đây
mục cha
commit
527355095f

+ 5 - 0
core/default_settings/app_languages.php

@@ -213,6 +213,11 @@
 		$text['message-copy_failed']['pt-pt'] = "Nenhuma configuração marcada ou domínio inválido";
 		$text['message-copy_failed']['fr-fr'] = "Pas de paramètres enregistrés ou domaine non valide";
 
+		$text['message-delete_failed']['en-us'] = "No Settings Checked";
+		$text['message-delete_failed']['es-cl'] = "No hay ajustes facturado";
+		$text['message-delete_failed']['pt-pt'] = "Nenhuma configuração marcada";
+		$text['message-delete_failed']['fr-fr'] = "Pas de paramètres enregistrés";
+
 		$text['message-required']['en-us'] = "Please provide: ";
 		$text['message-required']['es-cl'] = "Por favor indique: ";
 		$text['message-required']['pt-pt'] = "Por favor indique: ";

+ 0 - 60
core/default_settings/default_setting_delete.php

@@ -1,60 +0,0 @@
-<?php
-/*
- FusionPBX
- Version: MPL 1.1
-
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
-
- The Original Code is FusionPBX
-
- The Initial Developer of the Original Code is
- Mark J Crane <[email protected]>
- Portions created by the Initial Developer are Copyright (C) 2008-2012
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- Mark J Crane <[email protected]>
-*/
-require_once "root.php";
-require_once "resources/require.php";
-require_once "resources/check_auth.php";
-if (permission_exists('default_setting_delete')) {
-	//access granted
-}
-else {
-	echo "access denied";
-	exit;
-}
-
-//add multi-lingual support
-	require_once "app_languages.php";
-	foreach($text as $key => $value) {
-		$text[$key] = $value[$_SESSION['domain']['language']['code']];
-	}
-
-if (count($_GET)>0) {
-	$id = check_str($_GET["id"]);
-}
-
-if (strlen($id)>0) {
-	//delete default_setting
-	$sql = "delete from v_default_settings ";
-	$sql .= "where default_setting_uuid = '$id' ";
-	$prep_statement = $db->prepare(check_sql($sql));
-	$prep_statement->execute();
-	unset($sql);
-}
-
-$_SESSION["message"] = $text['message-delete'];
-header("Location: default_settings.php");
-return;
-
-?>

+ 150 - 113
core/default_settings/default_settings.php

@@ -41,126 +41,157 @@ else {
 	}
 
 //get posted values, if any
-if (sizeof($_POST) > 0) {
-
-	$target_domain_uuid = check_str($_POST["target_domain_uuid"]);
-	$default_setting_uuids = $_POST["default_setting_uuids"];
-
-	if ($target_domain_uuid != '' && sizeof($default_setting_uuids) > 0) {
-
-		$settings_copied = 0;
-
-		foreach ($default_setting_uuids as $default_setting_uuid) {
-
-			// get default setting from db
-			$sql = "select * from v_default_settings ";
-			$sql .= "where default_setting_uuid = '".$default_setting_uuid."' ";
-			$prep_statement = $db->prepare(check_sql($sql));
-			$prep_statement->execute();
-			$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
-			foreach ($result as &$row) {
-				$default_setting_category = $row["default_setting_category"];
-				$default_setting_subcategory = $row["default_setting_subcategory"];
-				$default_setting_name = $row["default_setting_name"];
-				$default_setting_value = $row["default_setting_value"];
-				$default_setting_order = $row["default_setting_order"];
-				$default_setting_enabled = $row["default_setting_enabled"];
-				$default_setting_description = $row["default_setting_description"];
-				break; //limit to 1 row
-			}
-			unset ($prep_statement);
-
-			// check if exists
-			$sql = "select domain_setting_uuid from v_domain_settings ";
-			$sql .= "where domain_uuid = '".$target_domain_uuid."' ";
-			$sql .= "and domain_setting_category = '".$default_setting_category."' ";
-			$sql .= "and domain_setting_subcategory = '".$default_setting_subcategory."' ";
-			$sql .= "and domain_setting_name = '".$default_setting_name."' ";
-			$sql .= "and domain_setting_name <> 'array' ";
-			$prep_statement = $db->prepare(check_sql($sql));
-			$prep_statement->execute();
-			$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
-			if (sizeof($result) > 0) {
+if (sizeof($_REQUEST) > 0) {
+
+	$action = check_str($_REQUEST["action"]);
+	$default_setting_uuids = $_REQUEST["id"];
+
+	if ($action == 'copy' && permission_exists('domain_setting_add')) {
+
+		$target_domain_uuid = check_str($_POST["target_domain_uuid"]);
+
+		if ($target_domain_uuid != '' && sizeof($default_setting_uuids) > 0) {
+
+			$settings_copied = 0;
+
+			foreach ($default_setting_uuids as $default_setting_uuid) {
+
+				// get default setting from db
+				$sql = "select * from v_default_settings ";
+				$sql .= "where default_setting_uuid = '".$default_setting_uuid."' ";
+				$prep_statement = $db->prepare(check_sql($sql));
+				$prep_statement->execute();
+				$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
 				foreach ($result as &$row) {
-					$target_domain_setting_uuid = $row["domain_setting_uuid"];
-					break;
+					$default_setting_category = $row["default_setting_category"];
+					$default_setting_subcategory = $row["default_setting_subcategory"];
+					$default_setting_name = $row["default_setting_name"];
+					$default_setting_value = $row["default_setting_value"];
+					$default_setting_order = $row["default_setting_order"];
+					$default_setting_enabled = $row["default_setting_enabled"];
+					$default_setting_description = $row["default_setting_description"];
+					break; //limit to 1 row
 				}
-				$action = "update";
-			}
-			else {
-				$action = "add";
-			}
-			unset ($prep_statement);
-
-			// fix null
-			$default_setting_order = ($default_setting_order != '') ? $default_setting_order : 'null';
-
-			if ($action == "add" && permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) {
-
-				// insert for target domain
-				$sql = "insert into v_domain_settings ";
-				$sql .= "(";
-				$sql .= "domain_uuid, ";
-				$sql .= "domain_setting_uuid, ";
-				$sql .= "domain_setting_category, ";
-				$sql .= "domain_setting_subcategory, ";
-				$sql .= "domain_setting_name, ";
-				$sql .= "domain_setting_value, ";
-				$sql .= "domain_setting_order, ";
-				$sql .= "domain_setting_enabled, ";
-				$sql .= "domain_setting_description ";
-				$sql .= ")";
-				$sql .= "values ";
-				$sql .= "(";
-				$sql .= "'".$target_domain_uuid."', ";
-				$sql .= "'".uuid()."', ";
-				$sql .= "'".$default_setting_category."', ";
-				$sql .= "'".$default_setting_subcategory."', ";
-				$sql .= "'".$default_setting_name."', ";
-				$sql .= "'".$default_setting_value."', ";
-				$sql .= " ".$default_setting_order." , ";
-				$sql .= "'".$default_setting_enabled."', ";
-				$sql .= "'".$default_setting_description."' ";
-				$sql .= ")";
-				$db->exec(check_sql($sql));
-				unset($sql);
+				unset ($prep_statement);
 
-				$settings_copied++;
+				// check if exists
+				$sql = "select domain_setting_uuid from v_domain_settings ";
+				$sql .= "where domain_uuid = '".$target_domain_uuid."' ";
+				$sql .= "and domain_setting_category = '".$default_setting_category."' ";
+				$sql .= "and domain_setting_subcategory = '".$default_setting_subcategory."' ";
+				$sql .= "and domain_setting_name = '".$default_setting_name."' ";
+				$sql .= "and domain_setting_name <> 'array' ";
+				$prep_statement = $db->prepare(check_sql($sql));
+				$prep_statement->execute();
+				$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+				if (sizeof($result) > 0) {
+					foreach ($result as &$row) {
+						$target_domain_setting_uuid = $row["domain_setting_uuid"];
+						break;
+					}
+					$action = "update";
+				}
+				else {
+					$action = "add";
+				}
+				unset ($prep_statement);
+
+				// fix null
+				$default_setting_order = ($default_setting_order != '') ? $default_setting_order : 'null';
+
+				if ($action == "add" && permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) {
+
+					// insert for target domain
+					$sql = "insert into v_domain_settings ";
+					$sql .= "(";
+					$sql .= "domain_uuid, ";
+					$sql .= "domain_setting_uuid, ";
+					$sql .= "domain_setting_category, ";
+					$sql .= "domain_setting_subcategory, ";
+					$sql .= "domain_setting_name, ";
+					$sql .= "domain_setting_value, ";
+					$sql .= "domain_setting_order, ";
+					$sql .= "domain_setting_enabled, ";
+					$sql .= "domain_setting_description ";
+					$sql .= ")";
+					$sql .= "values ";
+					$sql .= "(";
+					$sql .= "'".$target_domain_uuid."', ";
+					$sql .= "'".uuid()."', ";
+					$sql .= "'".$default_setting_category."', ";
+					$sql .= "'".$default_setting_subcategory."', ";
+					$sql .= "'".$default_setting_name."', ";
+					$sql .= "'".$default_setting_value."', ";
+					$sql .= " ".$default_setting_order." , ";
+					$sql .= "'".$default_setting_enabled."', ";
+					$sql .= "'".$default_setting_description."' ";
+					$sql .= ")";
+					$db->exec(check_sql($sql));
+					unset($sql);
+
+					$settings_copied++;
+
+				} // add
+
+				if ($action == "update" && permission_exists('domain_setting_edit')) {
+
+					$sql = "update v_domain_settings set ";
+					$sql .= "domain_setting_category = '".$default_setting_category."', ";
+					$sql .= "domain_setting_subcategory = '".$default_setting_subcategory."', ";
+					$sql .= "domain_setting_name = '".$default_setting_name."', ";
+					$sql .= "domain_setting_value = '".$default_setting_value."', ";
+					$sql .= "domain_setting_order = ".$default_setting_order.", ";
+					$sql .= "domain_setting_enabled = '".$default_setting_enabled."', ";
+					$sql .= "domain_setting_description = '".$default_setting_description."' ";
+					$sql .= "where domain_uuid = '".$target_domain_uuid."' ";
+					$sql .= "and domain_setting_uuid = '".$target_domain_setting_uuid."' ";
+					$db->exec(check_sql($sql));
+					unset($sql);
+
+					$settings_copied++;
+
+				} // update
+
+			} // foreach
+
+			// set message
+			$_SESSION["message"] = $text['message-copy'].": ".$settings_copied;
 
-			} // add
+		}
+		else {
+			// set message
+			$_SESSION["message"] = $text['message-copy_failed'];
+		}
 
-			if ($action == "update" && permission_exists('domain_setting_edit')) {
+		header("Location: default_settings.php");
+		exit;
 
-				$sql = "update v_domain_settings set ";
-				$sql .= "domain_setting_category = '".$default_setting_category."', ";
-				$sql .= "domain_setting_subcategory = '".$default_setting_subcategory."', ";
-				$sql .= "domain_setting_name = '".$default_setting_name."', ";
-				$sql .= "domain_setting_value = '".$default_setting_value."', ";
-				$sql .= "domain_setting_order = ".$default_setting_order.", ";
-				$sql .= "domain_setting_enabled = '".$default_setting_enabled."', ";
-				$sql .= "domain_setting_description = '".$default_setting_description."' ";
-				$sql .= "where domain_uuid = '".$target_domain_uuid."' ";
-				$sql .= "and domain_setting_uuid = '".$target_domain_setting_uuid."' ";
-				$db->exec(check_sql($sql));
-				unset($sql);
+	}
 
-				$settings_copied++;
+	if ($action == 'delete' && permission_exists('default_setting_delete')) {
 
-			} // update
+		if (sizeof($default_setting_uuids) > 0) {
+			foreach ($default_setting_uuids as $default_setting_uuid) {
+				//delete default_setting(s)
+				$sql = "delete from v_default_settings ";
+				$sql .= "where default_setting_uuid = '".$default_setting_uuid."' ";
+				$prep_statement = $db->prepare(check_sql($sql));
+				$prep_statement->execute();
+				unset($sql);
+			}
 
-		} // foreach
+			// set message
+			$_SESSION["message"] = $text['message-delete'].": ".sizeof($default_setting_uuids);
+		}
+		else {
+			// set message
+			$_SESSION["message"] = $text['message-delete_failed'];
+		}
 
-		// set message
-		$_SESSION["message"] = $text['message-copy'].": ".$settings_copied;
+		header("Location: default_settings.php");
+		exit;
 
 	}
-	else {
-		// set message
-		$_SESSION["message"] = $text['message-copy_failed'];
-	}
-
-	header("Location: default_settings.php");
-	exit;
 
 } // post
 
@@ -180,6 +211,7 @@ if (permission_exists("domain_select") && permission_exists("domain_setting_add"
 	echo "<script language='javascript' type='text/javascript'>";
 	echo "	var fade_speed = 400;";
 	echo "	function show_domains() {";
+	echo "		document.getElementById('action').value = 'copy';";
 	echo "		$('#button_copy').fadeOut(fade_speed, function() {";
 	echo "			$('#button_back').fadeIn(fade_speed);";
 	echo "			$('#target_domain_uuid').fadeIn(fade_speed);";
@@ -187,6 +219,7 @@ if (permission_exists("domain_select") && permission_exists("domain_setting_add"
 	echo "		});";
 	echo "	}";
 	echo "	function hide_domains() {";
+	echo "		document.getElementById('action').value = '';";
 	echo "		$('#button_back').fadeOut(fade_speed);";
 	echo "		$('#target_domain_uuid').fadeOut(fade_speed);";
 	echo "		$('#button_paste').fadeOut(fade_speed, function() {";
@@ -198,7 +231,8 @@ if (permission_exists("domain_select") && permission_exists("domain_setting_add"
 }
 
 //show the content
-	echo "<form name='form_copy' id='form_copy' method='post' action=''>";
+	echo "<form name='frm' id='frm' method='post' action=''>";
+	echo "<input type='hidden' name='action' id='action' value=''>";
 
 	echo "<div align='center'>";
 	echo "<table width='100%' border='0' cellpadding='0' cellspacing='2'>\n";
@@ -219,7 +253,7 @@ if (permission_exists("domain_select") && permission_exists("domain_setting_add"
 			echo "		<option value='".$domain["domain_uuid"]."'>".$domain["domain_name"]."</option>\n";
 		}
 		echo "		</select>\n";
-		echo "		<input type='button' class='btn' id='button_paste' style='display: none;' alt='".$text['button-paste']."' value='".$text['button-paste']."' onclick='document.forms.form_copy.submit();'>";
+		echo "		<input type='button' class='btn' id='button_paste' style='display: none;' alt='".$text['button-paste']."' value='".$text['button-paste']."' onclick='document.forms.frm.submit();'>";
 	}
 	else {
 		echo "		&nbsp;";
@@ -311,7 +345,10 @@ if (permission_exists("domain_select") && permission_exists("domain_setting_add"
 				echo "<th>".$text['label-description']."</th>";
 				echo "<td class='list_control_icons'>";
 				if (permission_exists('default_setting_add')) {
-					echo "<a href='default_setting_edit.php' alt='".$text['button-add']."'>$v_link_label_add</a>";
+					echo "<a href='default_setting_edit.php' alt='".$text['button-add']."'>".$v_link_label_add."</a>";
+				}
+				if (permission_exists('default_setting_delete')) {
+					echo "<a href='javascript:void(0);' onclick=\"if (confirm('".$text['confirm-delete']."')) { document.getElementById('action').value = 'delete'; document.forms.frm.submit(); }\" alt='".$text['button-delete']."'>".$v_link_label_delete."</a>";
 				}
 				echo "</td>\n";
 				echo "</tr>\n";
@@ -321,7 +358,7 @@ if (permission_exists("domain_select") && permission_exists("domain_setting_add"
 			$tr_link = (permission_exists('default_setting_edit')) ? "href='default_setting_edit.php?id=".$row['default_setting_uuid']."'" : null;
 			echo "<tr ".$tr_link.">\n";
 			if (permission_exists("domain_select") && permission_exists("domain_setting_add") && count($_SESSION['domains']) > 1) {
-				echo "	<td valign='top' class='".$row_style[$c]." tr_link_void' style='text-align: center; padding: 3px 0px 0px 0px;'><input type='checkbox' name='default_setting_uuids[]' id='checkbox_".$row['default_setting_uuid']."' value='".$row['default_setting_uuid']."'></td>\n";
+				echo "	<td valign='top' class='".$row_style[$c]." tr_link_void' style='text-align: center; padding: 3px 0px 0px 0px;'><input type='checkbox' name='id[]' id='checkbox_".$row['default_setting_uuid']."' value='".$row['default_setting_uuid']."'></td>\n";
 				$subcat_ids[strtolower($row['default_setting_category'])][] = 'checkbox_'.$row['default_setting_uuid'];
 			}
 			echo "	<td valign='top' class='".$row_style[$c]."'>";
@@ -364,7 +401,7 @@ if (permission_exists("domain_select") && permission_exists("domain_setting_add"
 				echo "<a href='default_setting_edit.php?id=".$row['default_setting_uuid']."' alt='".$text['button-edit']."'>$v_link_label_edit</a>";
 			}
 			if (permission_exists('default_setting_delete')) {
-				echo "<a href='default_setting_delete.php?id=".$row['default_setting_uuid']."' alt='".$text['button-delete']."' onclick=\"return confirm('".$text['confirm-delete']."')\">$v_link_label_delete</a>";
+				echo "<a href='default_settings.php?id[]=".$row['default_setting_uuid']."&action=delete' alt='".$text['button-delete']."' onclick=\"return confirm('".$text['confirm-delete']."')\">$v_link_label_delete</a>";
 			}
 			echo "	</td>\n";
 			echo "</tr>\n";