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
+1
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-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 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 "<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"; echo " <option value='' selected='selected' disabled='disabled'>".$text['label-domain']."...</option>\n";
foreach ($_SESSION['domains'] as $domain) { foreach ($_SESSION['domains'] as $domain) {
if ($domain['domain_uuid'] == $domain_uuid) { continue; } if ($domain['domain_uuid'] == $domain_uuid) { continue; }
@@ -249,22 +249,28 @@ if (!class_exists('domain_settings')) {
$domain_setting_value = generate_password(); $domain_setting_value = generate_password();
} }
// check if exists //target is different domain, check if exists
$sql = "select domain_setting_uuid from v_domain_settings "; if ($this->domain_uuid_target != $this->domain_uuid) {
$sql .= "where domain_uuid = :domain_uuid "; $sql = "select domain_setting_uuid from v_domain_settings ";
$sql .= "and domain_setting_category = :domain_setting_category "; $sql .= "where domain_uuid = :domain_uuid ";
$sql .= "and domain_setting_subcategory = :domain_setting_subcategory "; $sql .= "and domain_setting_category = :domain_setting_category ";
$sql .= "and domain_setting_name = :domain_setting_name "; $sql .= "and domain_setting_subcategory = :domain_setting_subcategory ";
$sql .= "and domain_setting_name <> 'array' "; $sql .= "and domain_setting_name = :domain_setting_name ";
$parameters['domain_uuid'] = $this->domain_uuid_target; $sql .= "and domain_setting_name <> 'array' ";
$parameters['domain_setting_category'] = $domain_setting_category; $parameters['domain_uuid'] = $this->domain_uuid_target;
$parameters['domain_setting_subcategory'] = $domain_setting_subcategory; $parameters['domain_setting_category'] = $domain_setting_category;
$parameters['domain_setting_name'] = $domain_setting_name; $parameters['domain_setting_subcategory'] = $domain_setting_subcategory;
$database = new database; $parameters['domain_setting_name'] = $domain_setting_name;
$target_domain_setting_uuid = $database->select($sql, $parameters, 'column'); $database = new database;
$target_domain_setting_uuid = $database->select($sql, $parameters, 'column');
$action = is_uuid($target_domain_setting_uuid) ? 'update' : 'add'; $action = is_uuid($target_domain_setting_uuid) ? 'update' : 'add';
unset($sql, $parameters); unset($sql, $parameters);
}
//target is same domain, duplicate
else {
$action = 'add';
}
// fix null // fix null
$domain_setting_order = $domain_setting_order != '' ? $domain_setting_order : null; $domain_setting_order = $domain_setting_order != '' ? $domain_setting_order : null;