rendered paste body#extends cobbler.webui.master
#block body
<script language="javascript">
function show_interface(name,state)
{
## this likely does not work in MSIE, patches accepted
## from those forced to endure it
obj = document.getElementById("interface-panel-" + name);
obj.style.visibility = 'visible';
obj.style.display = 'block';
## FIXME: do something with "block" ?
obj = document.getElementById("interface-toggle-" + name);
obj.style.visibility = 'hidden';
obj.style.display = 'none';
}
#if $system
function disablename(value)
{
document.getElementById("name").disabled=value;
if (value) {
document.getElementById("name").value = "$system.name";
}
}
#else
function get_random_mac()
{
xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "$base_url/random_mac", true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var mac_field = document.getElementById("mac")
var result = xmlHttp.responseText;
if (result.charAt(2) == ':' && result.charAt(5) == ':') {
mac_field.value = result;
}
}
};
xmlHttp.send(null);
}
#end if
</script>
<form method="post" action="$base_url/system_save">
<fieldset id="cform">
#if $system
<input type="hidden" name="new_or_edit" value="edit"/>
<input type="hidden" name="oldname" value="$system.name"/>
#else
<input type="hidden" name="new_or_edit" value="new"/>
#end if
<legend>Edit a System</legend>
<table border=0>
<tr>
<td>
<label for="name">System Name</label>
</td>
<td>
#if $system
<input type="text" size="128" style="width: 150px;" name="name" id="name" disabled="true"
#else
<input type="text" size="128" style="width: 150px;" name="name" id="name"
#end if
#if $system
value="$system.name"
#end if
/>
<p class="context-tip">Example: vanhalen</p>
</td>
</tr>
#if $system
<tr>
<td>
<label for="mode">Edit Mode</label>
</td>
<td>
<input type="radio" name="editmode" value="edit" checked onclick="javascript:disablename(true)">Edit
<input type="radio" name="editmode" value="rename" onclick="javascript:disablename(false)">Rename + Edit
<input type="radio" name="editmode" value="copy" onclick="javascript:disablename(false)">Copy + Edit
<p class="context-tip">How do you want to modify this object?</p>
</td>
</tr>
#end if
<tr>
<td>
<label for="profile">Profile</label>
</td>
<td>
<select name="profile" id="profile">
#for $profile in $profiles:
<option name="$profile.name"
#if $system and $system.profile == $profile.name
selected="1"
#end if
>$profile.name</option>
#end for
</select>
<p class="context-tip">What profile should be installed on this system?</p>
</td>
</tr>
#set $all_interfaces = [ "intf0", "intf1", "intf2", "intf3", "intf4", "intf5", "intf6", "intf7" ]
#if $system
#set $interfaces = $system.interfaces.keys()
#set $defined_interfaces = []
#for $potential in $all_interfaces
#if $potential in $interfaces
#set $rc = $defined_interfaces.append($potential)
#end if
#end for
#else
#set $interfaces = [ "intf0", "intf1", "intf2", "intf3", "intf4", "intf5", "intf6", "intf7" ]
#set $defined_interfaces = [ "intf0" ]
#end if
## ====================================== start of looping through interfaces
#for $interface in $all_interfaces
## ----------------------------------
## calculate some initial CSS visibility
## ----------------------------------
#if $interface in $defined_interfaces
#set $toggler_visibility = "hidden !important"
#set $toggler_display = "none !important"
#set $panel_visibility = "visible !important"
#set $panel_display = "block !important"
#else
#set $toggler_visibility = "visible !important"
#set $toggler_display = "block !important"
#set $panel_visibility = "hidden !important"
#set $panel_display = "none !important"
#end if
## ----------------------------------
## load up initial variable values
## ----------------------------------
#if $system and $interface in $defined_interfaces
#set $macaddress = $system.interfaces[$interface]["mac_address"]
#set $ipaddress = $system.interfaces[$interface]["ip_address"]
#set $hostname = $system.interfaces[$interface]["hostname"]
#set $dhcptag = $system.interfaces[$interface]["dhcp_tag"]
#set $virtbridge = $system.interfaces[$interface]["virt_bridge"]
#set $subnet = $system.interfaces[$interface]["subnet"]
#set $gateway = $system.interfaces[$interface]["gateway"]
#else
#set $macaddress = ""
#set $ipaddress = ""
#set $hostname = ""
#set $dhcptag = ""
#set $virtbridge = ""
#set $subnet = ""
#set $gateway = ""
#end if
## ----------------------------------------
## render the toggle link to hide the interfaces not yet defined
## ----------------------------------------
<tr>
<td>
<label>Interface ($interface)
</td>
<td>
<hr width="95%">
</td>
</tr>
<div id="interface-toggle-$interface" style="visibility:$toggler_visibility; display:$toggler_display;">
<tr>
<td>
<label>Expand</label>
</td>
<td>
<A href="javascript:void('')" onclick="show_interface('$interface');">Click to expand $interface</A>
</td>
</tr>
</div>
## ----------------------------------------
## now show all of the interface fields which may or may not
## be hidden but are always there
## ----------------------------------------
<div id="interface-panel-$interface" style="visibility:$panel_visibility; display:$panel_display">
<tr>
<td>
<label for="mac-$interface">MAC</label>
</td>
<td>
<input type="text" size="64" style="width: 150px;" name="mac-$interface" id="mac-$interface"
value="$macaddress"
/>
#if not $system
<a href="javascript: get_random_mac()" style="font-size: 0.8em;">random</a>
#end if
<p class="context-tip">Example: AA:BB:CC:DD:EE:FF</p>
</td>
</tr>
<tr>
<td>
<label for="ip-$interface">IP</label>
</td>
<td>
<input type="text" size="64" style="width: 150px;" name="ip-$interface" id="ip-$interface"
value="$ipaddress"
/>
<p class="context-tip">Optional. Example: 192.168.10.15</p>
</td>
</tr>
<tr>
<td>
<label for="hostname-$interface">Hostname</label>
</td>
<td>
<input type="text" size="255" style="width: 150px;" name="hostname-$interface" id="hostname-$interface"
value="$hostname"
/>
<p class="context-tip">Optional. Example: vanhalen.example.org</p>
</td>
</tr>
<tr>
<td>
<label for="dhcptag-$interface">DHCP Tag</label>
</td>
<td>
<input type="text" size="128" style="width: 150px;" name="dhcptag-$interface" id="dhcptag-$interface"
value="$dhcptag"
/>
<p class="context-tip">Selects alternative subnets, see manpage or leave blank</p>
</td>
</tr>
## FIXME: add virt_bridge editing (like above)
## FIXME: add subnet editing (like above)
## FIXME: add gateway editing (like above)
## FIXME: make the save function understand the new fieldname-$interface variables
## only enable an interface for saving if one of it's fields is non-empty
## FIXME: delete checkboxes and accompanying API method. No delete for intf0.
</div>
#end for
## ====================================== end of looping through interfaces
## now we're back to doing regular fields
## FIXME: should all of these be moved up before the interface section?
## FIXME: make entire interface block seperately collapseable?
<tr>
<td>
<label for="kopts">Kernel Options</label>
</td>
<td>
<input type="text" size="255" style="width: 150px;" name="kopts" id="kopts"
#if $system
value="$system.kernel_options"
#end if
/>
<p class="context-tip">Example: noipv6 magic=foo</p>
</td>
</tr>
<tr>
<td>
<label for="ksmeta">Kickstart Metadata</label>
</td>
<td>
<input type="text" size="255" style="width: 150px;" name="ksmeta" id="ksmeta"
#if $system
value="$system.ks_meta"
#end if
/>
<p class="context-tip">Example: dog=fido gnome=yes</p>
</td>
</tr>
<tr>
<td>
<label for="netboot">Netboot Enabled</label>
</td>
<td>
<input type="checkbox" name="netboot" id="netboot"
#if not $system or $system.netboot_enabled is True
checked="True"
#end if
>
<p class="context-tip">Deselect to keep this system from PXE booting</p>
</td>
</tr>
#if $system
<tr>
<td>
<label for="delete">Delete</label>
</td>
<td>
<input type="checkbox" name="delete1" value="delete1">Yes
<input type="checkbox" name="delete2" value="delete2">Really
<p class="context-tip">Check both buttons and click save to delete this object</p>
</td>
</tr>
#end if
<tr>
<td>
</td>
<td>
<input type="submit" name="submit" value="Save"/>
<input type="reset" name="reset" value="Reset"/>
</td>
</tr>
</fieldset>
</form>
#end block body