Domain Settings: Implement ability to Duplicate settings.

This commit is contained in:
fusionate
2023-04-27 21:04:35 +00:00
parent 3711bf3664
commit 4a67359a78
2 changed files with 22 additions and 15 deletions

View File

@@ -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; }

View File

@@ -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;