Exemplo n.º 1
0
function vps_edit_params()
{
    $sock = new sockets();
    $LXCBridged = $sock->GET_INFO("LXCBridged");
    $LXCInterface = $sock->GET_INFO("LXCInterface");
    if (!is_numeric($LXCBridged)) {
        $LXCBridged = 0;
    }
    $page = CurrentPageName();
    $users = new usersMenus();
    $tpl = new templates();
    $q = new mysql();
    if ($users->AsVirtualBoxManager) {
        $AsVirtualBoxManager = 1;
    } else {
        $AsVirtualBoxManager = 0;
    }
    $sql = "SELECT * FROM lxc_machines WHERE ID={$_GET["ID"]}";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup"));
    $button_text = "{apply}";
    if ($_GET["ID"] == 0) {
        $button_text = "{add}";
    }
    $machine_name = $ligne["machine_name"];
    $hostname = $ligne["hostname"];
    $rootpwd = $ligne["rootpwd"];
    $ChangeMac = $ligne["ChangeMac"];
    if ($ligne["MacAddr"] == null) {
        $mc = new MACAddress();
        $mc->separator = ":";
        $ligne["MacAddr"] = $mc->_generateMAC2();
    }
    $MacAddr = explode(":", $ligne["MacAddr"]);
    $templates = unserialize(base64_decode($sock->getFrameWork("lxc.php?lxc-templates=yes")));
    $UsePhys = $ligne["UsePhys"];
    $PhysNic = $ligne["PhysNic"];
    $uid = $ligne["uid"];
    $net = new networking();
    $interfaces = $net->Local_interfaces(true);
    while (list($iet, $iet2) = each($interfaces)) {
        $sql = "SELECT PhysNic FROM lxc_machines WHERE ID!={$_GET["ID"]} AND PhysNic='{$iet}'";
        if ($iet == $LXCInterface) {
            continue;
        }
        if ($iet == "eth0") {
            continue;
        }
        if ($iet == "br5") {
            continue;
        }
        $lignePhysNic = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup"));
        if ($lignePhysNic["PhysNic"] != null) {
            continue;
        }
        $interfacesR[$iet] = $iet;
    }
    $interfacesR[$PhysNic] = $PhysNic;
    $interfacesR[null] = "{select}";
    $physCardTable = "\n\t\t<tr>\n\t\t\t<td class=legend>{UsePhysCard}:</td>\n\t\t\t<td>" . Field_checkbox("UsePhys", 1, $UsePhys, "ChangeMacCheck()") . "</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td class=legend>{nic}:</td>\n\t\t\t<td>" . Field_array_Hash($interfacesR, "PhysNic", $PhysNic, "style:font-size:14px;padding:3px") . "</td>\n\t\t</tr>\t\t\n\t\t\n\t\t";
    //AA:86:D7:23:0E:51
    $macaddrtable = "\n\t\t<table>\n\t\t<tr>\n\t\t\t<td class=legend>{change_mac_address}:</td>\n\t\t\t<td>" . Field_checkbox("ChangeMac", 1, $ChangeMac, "ChangeMacCheck()") . "</td>\n\t\t</tr>\n\t\t</tr>\n\t\t</table>\n\t\t\t\n\t\t<table style='width:1%'>\n\t\t<tr>\n\t\t<td>\n\t\t\t<td>" . Field_text("MAC1", $MacAddr[0], "font-size:14px;padding:3px;width:26px") . "</td>\n\t\t\t<td style='font-size:14px'>:</td>\n\t\t\t<td>" . Field_text("MAC2", $MacAddr[1], "font-size:14px;padding:3px;width:26px") . "</td>\n\t\t\t<td style='font-size:14px'>:</td>\n\t\t\t<td>" . Field_text("MAC3", $MacAddr[2], "font-size:14px;padding:3px;width:26px") . "</td>\n\t\t\t<td style='font-size:14px'>:</td>\n\t\t\t<td>" . Field_text("MAC4", $MacAddr[3], "font-size:14px;padding:3px;width:26px") . "</td>\n\t\t\t<td style='font-size:14px'>:</td>\n\t\t\t<td>" . Field_text("MAC5", $MacAddr[4], "font-size:14px;padding:3px;width:26px") . "</td>\n\t\t\t<td style='font-size:14px'>:</td>\n\t\t\t<td>" . Field_text("MAC6", $MacAddr[5], "font-size:14px;padding:3px;width:26px") . "</td>\n\t\t\t\n\t\t</tr>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t</table>";
    while (list($filename, $arraytpl) = each($templates)) {
        $TPLR[$filename] = "{$arraytpl["TYPE"]} {$arraytpl["PROC"]} - v{$arraytpl["VERSION"]}";
    }
    $TPLR[null] = "{select}";
    $field_template = Field_array_Hash($TPLR, 'lxc_template', $ligne["template"], "CheckTemplate()", null, 0, "font-size:13px;padding:3px");
    if ($_GET["ID"] == 0) {
        $template = "\n\t\t\t<tr>\n\t\t\t\t<td class=legend>{template}:</td>\n\t\t\t\t<td>{$field_template}</td>\n\t\t\t</tr>";
    }
    $ipaddr = "\n<tr>\n\t<td class=legend>{ipaddr}:</td>\n\t<td>" . Field_text("ipaddr", $ligne["ipaddr"], "font-size:14px;padding:3px;width:120px") . "</td>\n</tr>";
    if ($LXCBridged == 0) {
        $sql = "SELECT nic,ID,ipaddr FROM nics_virtuals WHERE org='LXC-INTERFACES' ORDER BY ID";
        $results = $q->QUERY_SQL($sql, "artica_backup");
        while ($ligne3 = mysql_fetch_array($results, MYSQL_ASSOC)) {
            $sql = "SELECT VirtualInterface FROM lxc_machines WHERE VirtualInterface='{$ligne3["nic"]}:{$ligne3["ID"]}'";
            $ligne2 = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup"));
            if ($ligne["VirtualInterface"] != null) {
                continue;
            }
            $Interfaces["{$ligne3["nic"]}:{$ligne3["ID"]}"] = "{$ligne3["nic"]}:{$ligne3["ID"]} ({$ligne3["ipaddr"]})";
        }
        if (count($Interfaces) > 0) {
            $ipaddr = "<tr>\n\t\t<td class=legend>{ipaddr}:</td>\n\t\t<td colspan=2>" . Field_array_Hash($Interfaces, "VirtualInterface", $ligne["VirtualInterface"], "style:font-size:14px;padding:3px") . "</td>\n\t</tr>";
        } else {
            if (preg_match("#(.+?):(.+)#", $ligne["VirtualInterface"], $re)) {
                $sql = "SELECT nic,ID,ipaddr FROM nics_virtuals WHERE ID='{$re[2]}'";
                $ligne2 = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup"));
            }
            $ipaddr = "<tr>\n\t\t<td class=legend>{ipaddr}:</td>\n\t\t<td colspan=2>" . Field_hidden("VirtualInterface", $ligne["VirtualInterface"]) . "<span style='font-size:14px'>{$ligne["VirtualInterface"]} ({$ligne2["ipaddr"]})</span></td>\n\t\t\n\t</tr>";
        }
    }
    $BrowseUser = "******"javascript:Loadjs('MembersBrowse.php?field-user=lxc-member&OnlyUsers=yes');\" value='{browse}...'>";
    if ($AsVirtualBoxManager == 0) {
        $BrowseUser = "******";
    }
    $html = "\n<div id='lxc_host_{$_GET["ID"]}'>\n<table style='width:100%' class=form>\n{$template}\n<tr>\n\t<td class=legend>{member}:</td>\n\t<td>" . Field_text("lxc-member", $uid, "font-size:14px;padding:3px;width:210px") . "</td>\n\t<td>{$BrowseUser}</td>\n</tr>\n<tr>\n\t<td class=legend>{computer_name}:</td>\n\t<td colspan=2>" . Field_text("machine_name", $machine_name, "font-size:14px;padding:3px;width:210px") . "</td>\n\t\n</tr>\n<tr>\n\t<td class=legend>{hostname}:</td>\n\t<td colspan=2>" . Field_text("hostname", $hostname, "font-size:14px;padding:3px;width:210px") . "</td>\n\t\n</tr>\n{$ipaddr}\n{$physCardTable}\n<tr>\n\t<td class=legend>{ComputerMacAddress}:</td>\n\t<td colspan=2>{$macaddrtable}</td>\n</tr>\n<tr>\n\t<td class=legend>{rootpwd}:</td>\n\t<td colspan=2>" . Field_password("rootpwd", $rootpwd, "font-size:14px;padding:3px;width:210px") . "</td>\n</tr>\n\n\n\n\n<tr>\n\t<td colspan=3 align='right'><hr>" . button($button_text, "SaveVPSServerSingle{$_GET["ID"]}()") . "</td>\n</tR>\n</table>\n\n\n\n<hr>\n<div style='font-size:16px'>{start_options}</div>\n<div class=explain>{lxc_start_options_text}</div>\n<table style='width:100%' class=form>\n<tr>\n\t<td class=legend>{autostart}:</td>\n\t<td>" . Field_checkbox("autostart", 1, $ligne["autostart"]) . "</td>\n\t<td width=1%>" . help_icon("{lxc_autostart_explain}") . "</td>\n</tr>\n<tr>\n\t<td class=legend>{enable_service}:</td>\n\t<td>" . Field_checkbox("enabledvps", 1, $ligne["enabled"]) . "</td>\n\t<td width=1%>&nbsp;</td>\n</tr>\n<tr>\n\t<td colspan=2 align='right'><hr>" . button($button_text, "SaveVPSServerSingle{$_GET["ID"]}()") . "</td>\n</tR>\n</table>\n\n\n<script>\nvar x_SaveVPSServerSingle{$_GET["ID"]}= function (obj) {\n\t\tvar results=trim(obj.responseText);\n\t\tif(results.length>0){alert(results);}\n\t\tvar ID={$_GET["ID"]};\n\t\tif(ID==0){YahooWinHide();}else{RefreshTab('main_config_vps{$_GET["ID"]}');}\n\t\tRefreshTab('main_config_vpssrv');\n\t}\t\t\n\n\n\tfunction SaveVPSServerSingle{$_GET["ID"]}(){\n\t\t\tCheckTemplate();\n\t\t\tvar XHR = new XHRConnection();\t\n\t\t\tvar ID={$_GET["ID"]};\n\t\t\tif(ID==0){\n\t\t\t\tvar tpl=document.getElementById('lxc_template').value;\n\t\t\t\tif(tpl.length==0){return;}\n\t\t\t\tXHR.appendData('template',tpl);\n\t\t\t}\n\t\t\tvar rootpwd=document.getElementById('rootpwd').value;\n\t\t\tXHR.appendData('form-vps-edit','yes');\n\t\t\tXHR.appendData('machine_name',document.getElementById('machine_name').value);\n\t\t\tif(document.getElementById('ipaddr')){\n\t\t\t\tXHR.appendData('ipaddr',document.getElementById('ipaddr').value);\n\t\t\t}\n\t\t\t\n\t\t\tif(document.getElementById('VirtualInterface')){\n\t\t\t\tXHR.appendData('VirtualInterface',document.getElementById('VirtualInterface').value);\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tif(document.getElementById('ChangeMac').checked){XHR.appendData('ChangeMac',1);}else{XHR.appendData('ChangeMac',0);}\n\t\t\tif(document.getElementById('UsePhys').checked){XHR.appendData('UsePhys',1);}else{XHR.appendData('UsePhys',0);}\n\t\t\t\n\t\t\t\n\t\t\tvar mcaddr=document.getElementById('MAC1').value+':'+document.getElementById('MAC2').value+':'+document.getElementById('MAC3').value+':';\n\t\t\tmcaddr=mcaddr+document.getElementById('MAC4').value+':'+document.getElementById('MAC5').value+':'+document.getElementById('MAC6').value\n\t\t\t\n\t\t\tXHR.appendData('MacAddr',mcaddr);\n\t\t\tXHR.appendData('rootpwd',rootpwd);\n\t\t\tXHR.appendData('hostname',document.getElementById('hostname').value);\n\t\t\tXHR.appendData('PhysNic',document.getElementById('PhysNic').value);\n\t\t\tXHR.appendData('member',document.getElementById('lxc-member').value);\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tif(document.getElementById('autostart').checked){XHR.appendData('autostart',1);}else{XHR.appendData('autostart',0);}\n\t\t\tif(document.getElementById('enabledvps').checked){XHR.appendData('enabled',1);}else{XHR.appendData('enabled',0);}\n\t\t\tXHR.appendData('ID','{$_GET["ID"]}');\n\t\t\tdocument.getElementById('lxc_host_{$_GET["ID"]}').innerHTML='<center style=\"width:100%\"><img src=img/wait_verybig.gif></center>';   \n\t\t\tXHR.sendAndLoad('{$page}', 'GET',x_SaveVPSServerSingle{$_GET["ID"]});\t\t\n\t}\n\n\tfunction CheckTemplate(){\n\t\tvar ID={$_GET["ID"]};\n\t\tChangeMacCheck();\n\t\tif(ID>0){CheckTemplateRights();return;}\n\t\tdocument.getElementById('machine_name').disabled=true;\n\t\tif(document.getElementById('ipaddr')){document.getElementById('ipaddr').disabled=true;}\n\t\tif(document.getElementById('VirtualInterface')){document.getElementById('VirtualInterface').disabled=true;}\n\t\tdocument.getElementById('rootpwd').disabled=true;\n\t\tdocument.getElementById('hostname').disabled=true;\n\t\tdocument.getElementById('autostart').disabled=true;\n\t\tdocument.getElementById('enabledvps').disabled=true;\n\t\tvar tpl=document.getElementById('lxc_template').value;\n\t\tif(tpl.length==0){\n\t\t\tCheckTemplateRights();\n\t\t\treturn;\n\t\t}\n\t\tif(document.getElementById('ipaddr')){document.getElementById('ipaddr').disabled=false;}\n\t\tif(document.getElementById('VirtualInterface')){document.getElementById('VirtualInterface').disabled=false;}\n\t\tdocument.getElementById('rootpwd').disabled=false;\n\t\tdocument.getElementById('hostname').disabled=false;\n\t\tdocument.getElementById('autostart').disabled=false;\n\t\tdocument.getElementById('enabledvps').disabled=false;\n\t\tdocument.getElementById('machine_name').disabled=false;\n\t\tdocument.getElementById('lxc_template').disabled=false;\t\n\t\tCheckTemplateRights();\n\t\t\n\t\n\t}\n\t\n\tfunction CheckTemplateRights(){\n\t\tvar AsVirtualBoxManager={$AsVirtualBoxManager};\n\t\tif(document.getElementById('ipaddr')){document.getElementById('ipaddr').disabled=true;}\n\t\tdocument.getElementById('lxc-member').disabled=true;\n\t\tdocument.getElementById('UsePhys').disabled=true;\n\t\tdocument.getElementById('ChangeMac').disabled=true;\n\t\tif(AsVirtualBoxManager==0){return;}\n\t\tif(document.getElementById('ipaddr')){document.getElementById('ipaddr').disabled=false;}\n\t\tdocument.getElementById('lxc-member').disabled=false;\n\t\tdocument.getElementById('UsePhys').disabled=false;\n\t\tdocument.getElementById('ChangeMac').false;\n\t}\n\t\n\t\n\t\tfunction ChangeMacCheck(){\n\t\t\tif(!document.getElementById('UsePhys').checked){\n\t\t\t\tdocument.getElementById('PhysNic').disabled=true;\n\t\t\t}else{\n\t\t\t\tdocument.getElementById('PhysNic').disabled=false;\n\t\t\t}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\tdocument.getElementById('MAC1').disabled=true;\n\t\t\tdocument.getElementById('MAC2').disabled=true;\n\t\t\tdocument.getElementById('MAC3').disabled=true;\n\t\t\tdocument.getElementById('MAC4').disabled=true;\n\t\t\tdocument.getElementById('MAC5').disabled=true;\n\t\t\tdocument.getElementById('MAC6').disabled=true;\n\t\t\tif(!document.getElementById('ChangeMac').checked){return;}\n\t\t\tdocument.getElementById('MAC1').disabled=false;\n\t\t\tdocument.getElementById('MAC2').disabled=false;\n\t\t\tdocument.getElementById('MAC3').disabled=false;\n\t\t\tdocument.getElementById('MAC4').disabled=false;\n\t\t\tdocument.getElementById('MAC5').disabled=false;\n\t\t\tdocument.getElementById('MAC6').disabled=false;\t\t\t\n\t\t\t\n\t\t\n\t\t}\t\n\t\n\tCheckTemplate();\n\n</script>\n\n";
    echo $tpl->_ENGINE_parse_body($html);
}