<?php
/*
 ----------------------------------------------------------------------
 LICENSE

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License (GPL)
 as published by the Free Software Foundation; either version 2
 of the License, or (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 To read the license please visit http://www.gnu.org/copyleft/gpl.html
 ----------------------------------------------------------------------
*/

/**
 * Change a DOMAIN settings
 * 
 * @copyright AlternC-Team 2000-2017 https://alternc.com/ 
 */

require_once("../class/config.php");
include_once("head.php");

$fields = array (
	"domain"    => array ("request", "string", (empty($domain)?"":$domain) ),
	"sub"       => array ("request", "string", (empty($sub)?"":$sub) ),
);
getFields($fields);

$dom->lock();
if (!$r=$dom->get_domain_all($domain)) {
	$dom->unlock();
	echo $msg->msg_html_all();
	include('foot.php');
	die();
}
$dom->unlock();

if (isset($_GET["msg"])) {
    $msg->raise("INFO","dom",$_GET["msg"]);
}
?>
<h3><i class="fas fa-globe-africa"></i> <?php printf(_("Manage %s"),$domain); ?></h3>
<?php
echo $msg->msg_html_all();
?>
<script type="text/javascript">
function dnson() {
  alert('This function seems unused. If you see this message, please let us know.');
	// enable / disable html components:
	if (document.forms["fdns"].mx.disabled!=null)
		document.forms["fdns"].mx.disabled=false;
	if (document.forms["fdns"].emailon.disabled!=null)
		document.forms["fdns"].emailon.disabled=true;
	if (document.forms["fdns"].emailoff.disabled!=null)
		document.forms["fdns"].emailoff.disabled=true;
}
function dnsoff() {
  alert('This function seems unused. If you see this message, please let us know.');
	// enable / disable html components:
	if (document.forms["fdns"].mx.disabled!=null)
		document.forms["fdns"].mx.disabled=true;
	if (document.forms["fdns"].emailon.disabled!=null)
		document.forms["fdns"].emailon.disabled=false;
	if (document.forms["fdns"].emailoff.disabled!=null)
		document.forms["fdns"].emailoff.disabled=false;
}

function destruction_alert() {
  // We don't ask question if DNS is already NO
  if (<?php echo (int)$r["dns"]; ?>!=1) {
    return true;
  }
  if (document.forms["fdns"].email[1].checked) {
    if ( confirm("<?php __("Are you sure you want to do this? This will DELETE ALL the mailboxes, messages and aliases on this domain ?"); ?>") ) {
      return true;
    } else {
      return false;
    }
  } else {
      return true;
  }
}
</script>

<?php

if ($r['dns_action']=='UPDATE') {?>
  <p class="alert alert-info"><?php __("This domain have some DNS change pending. Please wait."); ?></p>
<?php
} elseif ($r['dns_action']=='DELETE') {?>
  <p class="alert alert-warning"><?php printf(_("You requested deletion of domain %s."), $domain);?></p>
<?php
/*
  // Link hidden as long as the del_domain_cancel function is not complete
  <a href="dom_dodel.php?domain=<?php echo urlencode($domain);?>&del_cancel=true"><?php __("Click here to cancel deletion");?></a>
*/
?>
  <?php
  include_once("foot.php");
  die();
}

if (! empty($r['dns_result']) && $r['dns_result'] != '0') {
  if ($r['dns_result'] == 1) $r['dns_result'] =_("DNS zone is locked, changes will be ignored");
  echo '<p class="alert alert-warning">'; __($r['dns_result']); echo '</p>';
}

?>


<div id="tabsdom">

<ul>
  <li class="edit"><a href="#tabsdom-editsub"><?php __("Edit subdomains");?></a></li>
  <li class="add"><a href="#tabsdom-addsub"><?php __("Add subdomains");?></a></li>
  <li class="settings"><a href="#tabsdom-params"><?php __("Settings");?></a></li>
<?php if ( $r["dns"] ) { ?>
  <li class="view"><a href="#tabsdom-view" onClick="update_dns_content();"><?php __("View");?></a></li> 
<?php } //if gesdns ?>
  <li class="delete"><a href="#tabsdom-delete"><?php __("Delete");?></a></li>
</ul>


<div id="tabsdom-editsub">
<h3><?php __("Main subdomains"); ?></h3>
<?php
$dt=$dom->domains_type_lst();

$problems = $dom->get_problems($domain);
if ( ! empty($problems) ) {
  echo '<p class="alert alert-danger">';
  foreach ($problems as $p) echo $p."</br>";
  echo "</p>";
}

?>
<table class="tlist" id="dom_edit_table">
<thead>
    <tr><th colspan="2"> </th><th><?php __("Subdomain"); ?></th><th><?php __("HTTPS"); ?></th><th><?php __("Type");?></th><th><?php __("Status")?></th><th></th></tr>
</thead>
<?php
$hasadvanced=false;
// this loop expect the table to be sorted with advanced entries AFTER normal ones :
for($i=0;$i<$r["nsub"];$i++) {
if ($r["sub"][$i]["advanced"] && !$hasadvanced) {
 $hasadvanced=true;
?>
</table>
<h3 style="padding: 40px 0 0 0"><?php __("Advanced subdomains"); ?></h3>
<p class="alert alert-warning"><?php __("The following entries are advanced ones, edit them at your own risks."); ?></p>
<table class="tlist" id="dom_edit_table">
<thead>
 <tr><th colspan="2"> </th><th><?php __("Subdomain"); ?></th><th><?php __("HTTPS"); ?></th><th><?php __("Type");?></th><th><?php __("Status")?></th><th></th></tr>
</thead>
<?php

}

$disabled_class=in_array(strtoupper($r['sub'][$i]['enable']),array('DISABLED','DISABLE') )?'sub-disabled':'';
?>
	<tr class="lst" data-fqdn="<?php echo $r["sub"][$i]["fqdn"]; ?>">
    <?php if ( $r['sub'][$i]['web_action'] =='DELETE') { echo "<td colspan='2' />"; } else { ?>
		<td class="center">
    <?php  if (!(!$isinvited && $dt[strtolower($r["sub"][$i]["type"])]["enable"] != "ALL" )) { ?>
      <?php if ( isset($problems[$r["sub"][$i]["fqdn"]])) {  // if this subdomain have problem, can't modify it, only delete it
              __("Forbidden");
            } else { ?>
			<div class="ina edit"><a href="dom_subedit.php?sub_domain_id=<?php echo urlencode($r["sub"][$i]["id"]) ?>"><?php __("Edit"); ?></a></div><?php
            } // isset problems
        } ?>


			</td><td class="center">
    <?php  if (!(!$isinvited && $dt[strtolower($r["sub"][$i]["type"])]["enable"] != "ALL" )) { ?>
			<div class="ina delete"><a href="dom_subdel.php?sub_domain_id=<?php echo urlencode($r["sub"][$i]["id"]) ?>"><?php __("Delete"); ?></a></div>
<?php } ?>
		</td>
    <?php } // end IF ==DELETE ?>
		<td><div class="retour-auto <?php echo $disabled_class; ?>"><a href="http://<?php echo $r["sub"][$i]["fqdn"] ?>" target="_blank"><?php echo $r["sub"][$i]["fqdn"]; ?></a></div></td>
<td>
<?php
if (!$r["sub"][$i]["only_dns"]) {
    switch ($r["sub"][$i]["https"]) {
    case "http":
        __("HTTP only");
        break;
    case "https":
        __("HTTPS only");
        break;
    case "both":
        __("HTTP and HTTPS");
        break;
    default:
        if ($r['sub'][$i]['has_https_option']) {
            __("Unknown");
        }
        else {
            __('Not applicable');
        }
        break;
    }
}
?>
</td>
<td><div class="retour-auto <?php echo $disabled_class; ?>"><?php if ($r['sub'][$i]['type_desc']) { __($r['sub'][$i]['type_desc']); } else { echo __("ERROR, please check your server setup"); } ?>
 <?php 
 //if ($r["sub"][$i]['type'] === 'VHOST') {
 if ( @$dt[$r["sub"][$i]['type']]['target'] === 'DIRECTORY') {
  $iidir=$r["sub"][$i]["dest"];
  if ($iidir=='') $iidir='/';
  echo '<br /><a href="bro_main.php?R='.urlencode($iidir).'">'.htmlspecialchars($iidir).'</a>';
  if ( ! file_exists($bro->convertabsolute($iidir,0))) { echo " <span class=\"alerte\">"._("Directory not found")."</span>"; }
} else {
  if ($r["sub"][$i]['type']) echo "<br />".htmlspecialchars($r["sub"][$i]["dest"]);
}
?></div></td>
		<td><?php 
			if (!(!$isinvited && $dt[strtolower($r["sub"][$i]["type"])]["enable"] != "ALL" )) {
				if ( $r['sub'][$i]['web_action'] !='DELETE') { 
					switch ($r['sub'][$i]['enable']) {
						case 'ENABLED':
							__("Enabled");
							echo "<br/><a href='dom_substatus.php?sub_id=".urlencode($r["sub"][$i]["id"])."&amp;status=disable'>";__("Disable");echo "</a>";
							break;
						case 'ENABLE':
							__("Activation pending");
							break;
						case 'DISABLED':
							__("Disabled");
							echo "<br/><a href='dom_substatus.php?sub_id=".urlencode($r["sub"][$i]["id"])."&amp;status=enable'>";__("Enable");echo "</a>";
							break;
						case 'DISABLE':
							__("Desactivation pending");
							break;
					}
				}
      }?></td>
		<td><?php 
      switch ($r['sub'][$i]['web_action']) {
        case 'UPDATE':
          __("Update pending");
          break;
        case 'DELETE':
          __("Deletion pending");
          break;
        case 'OK':
        default:
          break;
      }?></td>
            
	</tr>
<?php } ?>
</table>
<?php
// Add a class on the sub_domains who have a problem
foreach ($problems as $pr => $lm) { // $problems can be empty but can't be null/false
  echo "<script type='text/javascript'>$(\"tr[data-fqdn='".$pr."']\").addClass('alert-danger-tr');</script>\n";
}
?>

<p>&nbsp;</p>
<hr />
<p>
   <a class="inb ssl" href="dom_sslpref.php?domain=<?php ehe($domain); ?>"><?php __("HTTPS Preferences for this domain");?></a>
</p>


</div> <!-- tabsdom-editsub -->


<div id="tabsdom-addsub">
<h3><?php printf(_("Add a subdomain to %s"),$domain); ?></h3>
<?php
$isedit=false;
require_once('dom_edit.inc.php');
sub_domains_edit($domain);
?>
<br />
<?php $mem->show_help("edit_domain"); ?>
<!-- DNS SETTINGS  -->

</div>
    <?php
if (!$r['noerase']) {
?>

<div id="tabsdom-params">
<h3><?php __("DNS &amp; Email parameters"); ?></h3>
<form action="dom_editdns.php?domain=<?php echo urlencode($r["name"]) ?>" method="post" id="fdns" name="fdns" onSubmit="return destruction_alert();">
 <?php csrf_get(); ?>
<table class="tlist2">
<tr>
  <td><?php __("Manage the DNS on the server ?"); ?></td>
  <td> 
     <input type="radio" id="yesdns" class="inc" name="dns" value="1"<?php cbox($r["dns"]); ?> />&nbsp;<label for="yesdns"><?php __("Yes"); ?></label>
      </td><td><input type="radio" id="nodns" class="inc" name="dns" value="0"<?php cbox(!$r["dns"]); ?> />&nbsp;<label for="nodns"><?php __("No"); ?></label>
  </td>
</tr>
</table>

<?php if ($r["dns"]) { ?>
<table class="tlist2">
<tr>
  <td><?php __("Define TTL for the zone records"); ?>&nbsp;: </td>
  <td> 
     <input type="text" id="ttldns" class="inc" name="ttl" size="6" value="<?php ehe($r["zonettl"]); ?>" /> <?php __("seconds"); ?> <small><i><?php __("Warning: a low TTL can be problematic. It is recommended not to use a lower TTL than 3600 seconds."); ?></i></small>
  </td>
</tr>
</table>
<?php } ?>

<table class="tlist2">
<tr>
  <td>
    <?php __("Manage the Emails Addresses of this domain on the server?"); ?>
  </td>
  <td> 
     <input type="radio" id="yesemail" class="inc" name="email" value="1"<?php cbox($r["mail"]); ?> />&nbsp;<label for="yesemail"><?php __("Yes"); ?></label>
     </td><td><input type="radio" id="noemail" class="inc" name="email" value="0"<?php cbox(!$r["mail"]); ?> />&nbsp;<label for="noemail"><?php __("No"); ?></label>
  </td>
</tr>
</table>
<p class="alert alert-warning">    <?php __("Warning: If you set this to 'no', all your email accounts and aliases on this domain will be immediately deleted."); ?></p>
<input type="submit" class="inb ok" name="submit" value="<?php __("Submit the changes"); ?>" />
	</form>

</div>
																					<?php } else { ?>
<div id="tabsdom-params">  
   <p class="alert alert-info"><?php __("This domain is locked, only a server administrator can unlock it."); ?></p>
</div>
 <?php } ?>

<?php if ( $r["dns"] ) { ?>
<div id="tabsdom-view">
<p>
<?php __("Here is the actual DNS zone running on the AlternC server. If you just made some changes, you have to wait for it."); ?>
</p>

<div>
<pre><span class="petit" id="divdumpdns">
<a target="_blank" href="dom_dnsdump.php?domain=<?php echo urlencode($domain) ?>"><?php __("Click here to view the dump");?></a>
</span>
</pre>
</div>

<p>&nbsp;</p>
<p><a class="inb" href="javascript:force_update_dns_content();"><?php __("Refresh");?></a></p>

</div>
<?php } // if dns ?>
    <?php
if (!$r['noerase']) {
?>

<div id="tabsdom-delete">
  <h3><?php __("Domain removal"); ?></h3>
  <?php printf(_("If you want to destroy the domain %s, click on the button below. Warning: this also deletes all FTP accounts, email, mailing lists associated with the domain and subdomains."),$domain); ?><br />
  <form action="dom_dodel.php?domain=<?php echo urlencode($domain) ?>" method="post">
 <?php csrf_get(); ?>
    <p>
      <input type="submit" class="inb delete" name="detruire" value="<?php printf(_("Delete %s from this server"),$domain); ?>" />
    </p>
  </form>
</div> <!-- tabsdom-delete -->
<?php } else { // noerase 
  ?>
<div id="tabsdom-delete">  
   <p class="alert alert-info"><?php __("This domain is locked, only a server administrator can unlock it."); ?></p>
</div>
    <?php
} ?>

<div id="tabsdom-ssl">  
<div id="sslpref">
     </div>
</div> <!-- tabsdom-ssl -->

</div> <!-- tabsdom -->
<script type="text/javascript">

$(function() {
  $("#tabsdom").tabs();
});

get_dns_content = 1;
function update_dns_content(){
  if ( get_dns_content == 1 ) {
    get_dns_content = 0;

    $.ajax({
      url: "dom_dnsdump.php?domain=<?php echo urlencode($domain)?>",
      }).done(function( html ) {
      $("#divdumpdns").html(html);
    });
  }
}

function update_ssl_content(){
    $.ajax({
      url: "dom_ssl.inc.php?domain=<?php echo urlencode($domain)?>",
      }).done(function( html ) {
      $("#sslpref").html(html);
    });
}

function force_update_dns_content(){
  get_dns_content = 1;
  $("#divdumpdns").html('In progress...');
  update_dns_content();
}

$(document).ready(function() 
    { 
        $("#dom_edit_table").tablesorter(); 
    } 
); 

</script>
<?php include_once("foot.php"); ?>
