summaryrefslogtreecommitdiffstats
path: root/webui_templates
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2008-11-18 10:43:36 -0500
committerMichael DeHaan <mdehaan@redhat.com>2008-11-18 10:43:36 -0500
commitd25817aaaeb8fe40c71396173035af65adc1836a (patch)
treece732e1cf954f9c2b6d09da3470004a0c3fbbede /webui_templates
parentf60b05ec68ef1902191f0d7a48375c4d8d474c01 (diff)
downloadcobbler-d25817aaaeb8fe40c71396173035af65adc1836a.tar.gz
cobbler-d25817aaaeb8fe40c71396173035af65adc1836a.tar.xz
cobbler-d25817aaaeb8fe40c71396173035af65adc1836a.zip
PV's patch to the web interface, and also some CLI reordering
Diffstat (limited to 'webui_templates')
-rw-r--r--webui_templates/system_edit.tmpl243
1 files changed, 129 insertions, 114 deletions
diff --git a/webui_templates/system_edit.tmpl b/webui_templates/system_edit.tmpl
index cb8bad10..9f7a4a4e 100644
--- a/webui_templates/system_edit.tmpl
+++ b/webui_templates/system_edit.tmpl
@@ -32,25 +32,33 @@ function get_random_mac()
xmlHttp.send(null);
}
-function bonding_change(value)
+#raw
+function intf_enable_field(field,enabled)
{
- if (value == "master") {
- document.getElementById("bondingmaster").disabled = true
- document.getElementById("bondingopts").disabled = false
- document.getElementById("bondingmaster").value = ""
- } else if (value == "slave") {
- document.getElementById("bondingmaster").disabled = false
- document.getElementById("bondingopts").disabled = true
- document.getElementById("bondingopts").value = ""
+ if (enabled) {
+ document.getElementById(field + "_row").style.display="table-row"
} else {
- document.getElementById("bondingmaster").disabled = true
- document.getElementById("bondingopts").disabled = true
- document.getElementById("bondingmaster").value = ""
- document.getElementById("bondingopts").value = ""
+ document.getElementById(field + "_row").style.display="none"
}
}
-#raw
+function intf_update_visibility()
+{
+ is_slave=document.getElementById("bonding_is_slave").checked
+ is_master=document.getElementById("bonding_is_master").checked
+ is_static=document.getElementById("static_true").checked
+
+ intf_enable_field("static",!is_slave)
+ intf_enable_field("ipaddress",(!is_slave) && is_static)
+ intf_enable_field("subnet",(!is_slave) && is_static)
+ intf_enable_field("gateway",(!is_slave) && is_static)
+ intf_enable_field("hostname",!is_slave)
+ intf_enable_field("dhcptag",!is_slave)
+ intf_enable_field("virtbridge",!is_master)
+ intf_enable_field("bondingopts",is_master)
+ intf_enable_field("bondingmaster",is_slave)
+}
+
function get_selected_interface()
{
return document.getElementById("interfaces").value
@@ -85,15 +93,15 @@ function on_interface_add()
}
interface_table[iname]["macaddress"] = ""
+ interface_table[iname]["bonding"] = ""
+ interface_table[iname]["bondingmaster"] = ""
+ interface_table[iname]["bondingopts"] = ""
interface_table[iname]["ipaddress"] = ""
interface_table[iname]["hostname"] = ""
interface_table[iname]["dhcptag"] = ""
interface_table[iname]["virtbridge"] = ""
interface_table[iname]["subnet"] = ""
interface_table[iname]["gateway"] = ""
- interface_table[iname]["bonding"] = ""
- interface_table[iname]["bondingmaster"] = ""
- interface_table[iname]["bondingopts"] = ""
interface_table[iname]["static"] = false
interface_table[iname]["present"] = "1"
interface_table[iname]["original"] = "0"
@@ -135,6 +143,15 @@ function on_interface_delete()
load_intf()
}
+function get_enabled_field(field,enabled)
+{
+ if (enabled) {
+ return document.getElementById(field).value
+ } else {
+ return ""
+ }
+}
+
function save_intf(which)
{
// this populates the interface widget with the data for the currently selected interface
@@ -147,14 +164,12 @@ function save_intf(which)
itable = interface_table[iname]
}
+ is_slave=document.getElementById("bonding_is_slave").checked
+ is_master=document.getElementById("bonding_is_master").checked
+ is_static=document.getElementById("static_true").checked
+
itable["name"] = iname
itable["macaddress"] = document.getElementById("macaddress").value
- itable["ipaddress"] = document.getElementById("ipaddress").value
- itable["hostname"] = document.getElementById("hostname").value
- itable["dhcptag"] = document.getElementById("dhcptag").value
- itable["virtbridge"] = document.getElementById("virtbridge").value
- itable["subnet"] = document.getElementById("subnet").value
- itable["gateway"] = document.getElementById("gateway").value
var bond = "na"
if (document.getElementById("bonding_is_master").checked == true) {
@@ -162,12 +177,17 @@ function save_intf(which)
} else if (document.getElementById("bonding_is_slave").checked == true) {
bond = "slave"
}
-
itable["bonding"] = bond
-
- itable["bondingmaster"] = document.getElementById("bondingmaster").value
- itable["bondingopts"] = document.getElementById("bondingopts").value
- itable["static"] = document.getElementById("static").checked
+
+ itable["bondingmaster"] = get_enabled_field("bondingmaster",is_slave)
+ itable["bondingopts"] = get_enabled_field("bondingopts",is_master)
+ itable["static"] = document.getElementById("static_true").checked
+ itable["ipaddress"] = get_enabled_field("ipaddress",(!is_slave) && is_static)
+ itable["subnet"] = get_enabled_field("subnet",(!is_slave) && is_static)
+ itable["gateway"] = get_enabled_field("gateway",(!is_slave) && is_static)
+ itable["hostname"] = get_enabled_field("hostname",!is_slave)
+ itable["dhcptag"] = get_enabled_field("dhcptag",!is_slave)
+ itable["virtbridge"] = get_enabled_field("virtbridge",!is_master)
itable["present"] = document.getElementById("present").value
itable["original"] = document.getElementById("original").value
@@ -179,32 +199,30 @@ function load_intf()
// and is called when the user picks a certain interface from the drop-down
intf = get_selected_interface()
document.getElementById("macaddress").value = interface_table[intf]["macaddress"]
+ if (interface_table[intf]["bonding"] == "master") {
+ document.getElementById("bonding_is_master").checked = true
+ } else if (interface_table[intf]["bonding"] == "slave") {
+ document.getElementById("bonding_is_slave").checked = true
+ } else {
+ document.getElementById("bonding_is_na").checked = true
+ }
+ document.getElementById("bondingmaster").value = interface_table[intf]["bondingmaster"]
+ document.getElementById("bondingopts").value = interface_table[intf]["bondingopts"]
+ if (interface_table[intf]["static"]) {
+ document.getElementById("static_true").checked = true
+ } else {
+ document.getElementById("static_false").checked = true
+ }
document.getElementById("ipaddress").value = interface_table[intf]["ipaddress"]
+ document.getElementById("subnet").value = interface_table[intf]["subnet"]
+ document.getElementById("gateway").value = interface_table[intf]["gateway"]
document.getElementById("hostname").value = interface_table[intf]["hostname"]
document.getElementById("dhcptag").value = interface_table[intf]["dhcptag"]
document.getElementById("virtbridge").value = interface_table[intf]["virtbridge"]
- document.getElementById("subnet").value = interface_table[intf]["subnet"]
- document.getElementById("gateway").value = interface_table[intf]["gateway"]
- bond = interface_table[intf]["bonding"]
- document.getElementById("bondingmaster").value = interface_table[intf]["bondingmaster"]
- document.getElementById("bondingopts").value = interface_table[intf]["bondingopts"]
- document.getElementById("static").checked = interface_table[intf]["static"]
document.getElementById("present").value = interface_table[intf]["present"]
document.getElementById("original").value = interface_table[intf]["original"]
-
- if (bond == "master") {
- document.getElementById("bonding_is_master").checked = true
- bonding_change("master")
- } else if (bond == "slave") {
- document.getElementById("bonding_is_slave").checked = true
- bonding_change("slave")
- } else {
- document.getElementById("bonding_is_na").checked = true
- bonding_change("na")
- }
-
-
+ intf_update_visibility()
}
function clear_intf()
@@ -212,20 +230,18 @@ function clear_intf()
// this clears the interface list and populates it with the currently selected interface data
document.getElementById("macaddress").value = ""
+ document.getElementById("bonding_is_na").checked = true
+ document.getElementById("bondingmaster").value = ""
+ document.getElementById("bondingopts").value = ""
+ document.getElementById("static_false").checked = true
document.getElementById("ipaddress").value = ""
+ document.getElementById("subnet").value = ""
+ document.getElementById("gateway").value = ""
document.getElementById("hostname").value = ""
document.getElementById("dhcptag").value = ""
document.getElementById("virtbridge").value = ""
- document.getElementById("subnet").value = ""
- document.getElementById("gateway").value = ""
-
- document.getElementById("bonding_is_na").checked = True
-
- document.getElementById("bondingmaster").value = ""
- document.getElementById("bondingopts").value = ""
document.getElementById("present").value = "1"
document.getElementById("original").value = "0"
- document.getElementById("static").value = false
}
#end raw
@@ -243,37 +259,37 @@ function build_interface_table()
interface_table['$iname'] = new Array()
interface_table['$iname']["macaddress"] = "$system.interfaces[$iname]['mac_address']"
//alert("$iname has a mac:" + interface_table["$iname"]["macaddress"])
- interface_table['$iname']["ipaddress"] = "$system.interfaces[$iname]['ip_address']"
- interface_table['$iname']["hostname"] = "$system.interfaces[$iname]['hostname']"
- interface_table['$iname']["dhcptag"] = "$system.interfaces[$iname]['dhcp_tag']"
- interface_table['$iname']["virtbridge"] = "$system.interfaces[$iname]['virt_bridge']"
- interface_table['$iname']["subnet"] = "$system.interfaces[$iname]['subnet']"
- interface_table['$iname']["gateway"] = "$system.interfaces[$iname]['gateway']"
interface_table['$iname']["bonding"] = "$system.interfaces[$iname]['bonding']"
interface_table['$iname']["bondingmaster"] = "$system.interfaces[$iname]['bonding_master']"
interface_table['$iname']["bondingopts"] = "$system.interfaces[$iname]['bonding_opts']"
- interface_table['$iname']["present"] = "1"
- interface_table['$iname']["original"] = "1"
if ("$system.interfaces[$iname]['static']" != "False") {
interface_table['$iname']["static"] = true
} else {
interface_table['$iname']["static"] = false
}
+ interface_table['$iname']["ipaddress"] = "$system.interfaces[$iname]['ip_address']"
+ interface_table['$iname']["subnet"] = "$system.interfaces[$iname]['subnet']"
+ interface_table['$iname']["gateway"] = "$system.interfaces[$iname]['gateway']"
+ interface_table['$iname']["hostname"] = "$system.interfaces[$iname]['hostname']"
+ interface_table['$iname']["dhcptag"] = "$system.interfaces[$iname]['dhcp_tag']"
+ interface_table['$iname']["virtbridge"] = "$system.interfaces[$iname]['virt_bridge']"
+ interface_table['$iname']["present"] = "1"
+ interface_table['$iname']["original"] = "1"
last = "$iname"
#end for
#else
interface_table["eth0"] = new Array()
interface_table["eth0"]["macaddress"] = ""
- interface_table["eth0"]["ipaddress"] = ""
- interface_table["eth0"]["hostname"] = ""
- interface_table["eth0"]["dhcptag"] = ""
- interface_table["eth0"]["virtbridge"] = ""
- interface_table["eth0"]["subnet"] = ""
- interface_table["eth0"]["gateway"] = ""
interface_table["eth0"]["bonding"] = ""
interface_table["eth0"]["bondingmaster"] = ""
interface_table["eth0"]["bondingopts"] = ""
interface_table["eth0"]["static"] = ""
+ interface_table["eth0"]["ipaddress"] = ""
+ interface_table["eth0"]["subnet"] = ""
+ interface_table["eth0"]["gateway"] = ""
+ interface_table["eth0"]["hostname"] = ""
+ interface_table["eth0"]["dhcptag"] = ""
+ interface_table["eth0"]["virtbridge"] = ""
interface_table["eth0"]["present"] = "1"
interface_table["eth0"]["original"] = "0"
#end if
@@ -744,7 +760,7 @@ function page_onload() {
## be hidden but are always there
## ----------------------------------------
- <tr>
+ <tr id="macaddress_row">
<td class="nicedit">
<label for="macaddress">MAC</label>
</td>
@@ -759,47 +775,60 @@ function page_onload() {
</td>
</tr>
- <tr>
+ <tr id="bonding_row">
<td class="nicedit">
- <label for="ipaddress">IP</label>
+ <label for="bonding">Bonding</label>
</td>
<td class="nicedit">
- <input type="text" size="64" style="width: 150px;" name="ipaddress" id="ipaddress" />
- <p class="context-tip">Example: 192.168.10.15</p>
+ <input type="radio" id="bonding_is_na" name="bonding" value="na" checked onclick="javascript: intf_update_visibility();">No bonding
+ <input type="radio" id="bonding_is_master" name="bonding" value="master" onclick="javascript: intf_update_visibility();">master
+ <input type="radio" id="bonding_is_slave" name="bonding" value="slave" onclick="javascript: intf_update_visibility();">slave
+ <p class="context-tip">Use bonding? If enabled specify bonding mode to use</p>
</td>
</tr>
- <tr>
+ <tr id="bondingmaster_row">
<td class="nicedit">
- <label for="hostname">Hostname</label>
+ <label for="bondingmaster">Bonding master</label>
</td>
<td class="nicedit">
- <input type="text" size="255" style="width: 150px;" name="hostname" id="hostname" />
- <p class="context-tip">Example: vanhalen.example.org</p>
+ <input type="text" size="64" style="width: 150px;" name="bondingmaster" id="bondingmaster" />
+ <p class="context-tip">If bonding is "slave", specify the master interface here.</p>
</td>
</tr>
- <tr>
+ <tr id="bondingopts_row">
<td class="nicedit">
- <label for="dhcptag">DHCP Tag</label>
+ <label for="bondingopts">Bonding options</label>
</td>
<td class="nicedit">
- <input type="text" size="128" style="width: 150px;" name="dhcptag" id="dhcptag" />
- <p class="context-tip">Selects alternative subnets, see manpage or leave blank</p>
+ <input type="text" size="64" style="width: 300px;" name="bondingopts" id="bondingopts" />
+ <p class="context-tip">If bonding is "master", specify the bonding options here.</p>
</td>
</tr>
- <tr>
+ <tr id="static_row">
<td class="nicedit">
- <label for="virtbridge">Virt Bridge</label>
+ <label for="static">IP assignment</label>
</td>
<td class="nicedit">
- <input type="text" size="20" style="width: 150px;" name="virtbridge" id="virtbridge" />
- <p class="context-tip">Example: 'xenbr0' or 'virbr0'. Can be blank if set in profile or settings.</p>
+ <input type="radio" id="static_true" name="static" value="true" checked onclick="javascript: intf_update_visibility();">Static
+ <input type="radio" id="static_false" name="static" value="false" onclick="javascript: intf_update_visibility();">DHCP
+ <p class="context-tip">Is the IP address of the interface statically or by DHCP configured?</p>
</td>
</tr>
- <tr>
+ <tr id="ipaddress_row">
+ <td class="nicedit">
+ <label for="ipaddress">IP</label>
+ </td>
+ <td class="nicedit">
+ <input type="text" size="64" style="width: 150px;" name="ipaddress" id="ipaddress" />
+ <p class="context-tip">Example: 192.168.10.15</p>
+ </td>
+ </tr>
+
+ <tr id="subnet_row">
<td class="nicedit">
<label for="subnet">Subnet</label>
</td>
@@ -809,7 +838,7 @@ function page_onload() {
</td>
</tr>
- <tr>
+ <tr id="gateway_row">
<td class="nicedit">
<label for="gateway">Gateway</label>
</td>
@@ -819,50 +848,36 @@ function page_onload() {
</td>
</tr>
- <tr>
- <td class="nicedit">
- <label for="bonding">Bonding</label>
- </td>
+ <tr id="hostname_row">
<td class="nicedit">
- <input type="radio" id="bonding_is_na" name="bonding" value="na" checked onclick="javascript:bonding_change('na')">N/A
- <input type="radio" id="bonding_is_master" name="bonding" value="master" onclick="javascript:bonding_change('master')">master
- <input type="radio" id="bonding_is_slave" name="bonding" value="slave" onclick="javascript:bonding_change('slave')">slave
-
- <p class="context-tip">Bonding mode if applicable</p>
- </td>
- </tr>
-
- <tr>
- <td class="nicedit">
- <label for="bondingmaster">Bonding master</label>
+ <label for="hostname">Hostname</label>
</td>
<td class="nicedit">
- <input type="text" size="64" style="width: 150px;" name="bondingmaster" id="bondingmaster" />
- <p class="context-tip">If bonding is "slave", specify the master interface here.</p>
+ <input type="text" size="255" style="width: 300px;" name="hostname" id="hostname" />
+ <p class="context-tip">Example: vanhalen.example.org</p>
</td>
</tr>
- <tr>
+ <tr id="dhcptag_row">
<td class="nicedit">
- <label for="bondingopts">Bonding options</label>
+ <label for="dhcptag">DHCP Tag</label>
</td>
<td class="nicedit">
- <input type="text" size="64" style="width: 150px;" name="bondingopts" id="bondingopts" />
- <p class="context-tip">If bonding is "master", specify the bonding options here.</p>
+ <input type="text" size="128" style="width: 150px;" name="dhcptag" id="dhcptag" />
+ <p class="context-tip">Selects alternative subnets, see manpage or leave blank</p>
</td>
</tr>
- <tr>
+ <tr id="virtbridge_row">
<td class="nicedit">
- <label for="static">Static?</label>
+ <label for="virtbridge">Virt Bridge</label>
</td>
<td class="nicedit">
- <input type="checkbox" name="static" id="static">
- <p class="context-tip">Is this interface statically configured?</p>
+ <input type="text" size="20" style="width: 150px;" name="virtbridge" id="virtbridge" />
+ <p class="context-tip">Example: 'xenbr0' or 'virbr0'. Can be blank if set in profile or settings.</p>
</td>
</tr>
-
#if $editable == True
<tr>
<td class="nicedit">