瀏覽代碼

Domain Settings: Implement ability to Duplicate settings.

fusionate 2 年之前
父節點
當前提交
737c2f5e7e
共有 2 個文件被更改,包括 22 次插入15 次删除
  1. 1 0
      core/domain_settings/domain_settings.php
  2. 21 15
      core/domain_settings/resources/classes/domain_settings.php

+ 1 - 0
core/domain_settings/domain_settings.php

@@ -177,6 +177,7 @@
 		echo button::create(['type'=>'button','label'=>$text['button-copy'],'id'=>'btn_copy','icon'=>$_SESSION['theme']['button_icon_copy'],'id'=>'btn_copy','onclick'=>'show_domains();']);
 		echo button::create(['type'=>'button','label'=>$text['button-cancel'],'id'=>'btn_copy_cancel','icon'=>$_SESSION['theme']['button_icon_cancel'],'style'=>'display: none;','onclick'=>'hide_domains();']);
 		echo 	"<select class='formfld' style='display: none; width: auto;' id='target_domain' onchange=\"document.getElementById('domain_uuid_target').value = this.options[this.selectedIndex].value;\">\n";
+		echo "		<option value='".$domain_uuid."'>(".$text['label-duplicate'].")</option>\n";
 		echo "		<option value='' selected='selected' disabled='disabled'>".$text['label-domain']."...</option>\n";
 		foreach ($_SESSION['domains'] as $domain) {
 			if ($domain['domain_uuid'] == $domain_uuid) { continue; }

+ 21 - 15
core/domain_settings/resources/classes/domain_settings.php

@@ -249,22 +249,28 @@ if (!class_exists('domain_settings')) {
 												$domain_setting_value = generate_password();
 											}
 
-											// check if exists
-											$sql = "select domain_setting_uuid from v_domain_settings ";
-											$sql .= "where domain_uuid = :domain_uuid ";
-											$sql .= "and domain_setting_category = :domain_setting_category ";
-											$sql .= "and domain_setting_subcategory = :domain_setting_subcategory ";
-											$sql .= "and domain_setting_name = :domain_setting_name ";
-											$sql .= "and domain_setting_name <> 'array' ";
-											$parameters['domain_uuid'] = $this->domain_uuid_target;
-											$parameters['domain_setting_category'] = $domain_setting_category;
-											$parameters['domain_setting_subcategory'] = $domain_setting_subcategory;
-											$parameters['domain_setting_name'] = $domain_setting_name;
-											$database = new database;
-											$target_domain_setting_uuid = $database->select($sql, $parameters, 'column');
+											//target is different domain, check if exists
+											if ($this->domain_uuid_target != $this->domain_uuid) {
+												$sql = "select domain_setting_uuid from v_domain_settings ";
+												$sql .= "where domain_uuid = :domain_uuid ";
+												$sql .= "and domain_setting_category = :domain_setting_category ";
+												$sql .= "and domain_setting_subcategory = :domain_setting_subcategory ";
+												$sql .= "and domain_setting_name = :domain_setting_name ";
+												$sql .= "and domain_setting_name <> 'array' ";
+												$parameters['domain_uuid'] = $this->domain_uuid_target;
+												$parameters['domain_setting_category'] = $domain_setting_category;
+												$parameters['domain_setting_subcategory'] = $domain_setting_subcategory;
+												$parameters['domain_setting_name'] = $domain_setting_name;
+												$database = new database;
+												$target_domain_setting_uuid = $database->select($sql, $parameters, 'column');
 
-											$action = is_uuid($target_domain_setting_uuid) ? 'update' : 'add';
-											unset($sql, $parameters);
+												$action = is_uuid($target_domain_setting_uuid) ? 'update' : 'add';
+												unset($sql, $parameters);
+											}
+											//target is same domain, duplicate
+											else {
+												$action = 'add';
+											}
 
 											// fix null
 											$domain_setting_order = $domain_setting_order != '' ? $domain_setting_order : null;