$showtypes[] = "cm"; } elseif (!isset($showtype)) { $showtypes[] = "cm"; $showtypes[] = "sa"; $showtypes[] = "ch"; } else { if (!($showtype == "sa" || $showtype == "cm" || $showtype == "ch")) { USERERROR("Improper argument: showtype={$showtype}", 1); } $showtypes[] = $showtype; } # # Standard Testbed Header # PAGEHEADER("Geni Slice List"); if (!($isadmin || STUDLY())) { USERERROR("You do not have permission to view Geni slice list!", 1); } # # Search box for CM only. # if (isset($query) && $query != $defaultsearchstring) { $searchstring = $query; } else { $searchstring = $defaultsearchstring; } echo "<center>"; echo "<table class=stealth>\n"; echo "<tr>"; echo "<td class=stealth>"; echo "<form method='get' action='genislices.php'>";
function Show($short = 0, $sortby = "") { global $TBDBNAME, $TBDOCBASE, $WIKIDOCURL; $pid = $this->pid(); $eid = $this->eid(); $nodecounts = array(); # Node counts, by class. $query_result = DBQueryFatal("select nt.class,count(*) from reserved as r " . "left join nodes as n on n.node_id=r.node_id " . "left join node_types as nt on n.type=nt.type " . "where pid='{$pid}' and eid='{$eid}' group by nt.class"); while ($row = mysql_fetch_array($query_result)) { $class = $row[0]; $count = $row[1]; $nodecounts[$class] = $count; } $query_result = DBQueryFatal("select e.*, s.archive_idx, pl.slicename, " . "round(e.minimum_nodes+.1,0) as min_nodes, " . "round(e.maximum_nodes+.1,0) as max_nodes " . " from experiments as e " . "left join experiment_stats as s on s.exptidx=e.idx " . "left join plab_slices as pl" . " on e.pid = pl.pid and e.eid = pl.eid " . "where e.pid='{$pid}' and e.eid='{$eid}'"); if (($exprow = mysql_fetch_array($query_result)) == 0) { TBERROR("Experiment {$eid} in project {$pid} is gone!\n", 1); } $exp_gid = $exprow["gid"]; $exp_name = $exprow["expt_name"]; $exp_swapped = $exprow["expt_swapped"]; $exp_swapuid = $exprow["expt_swap_uid"]; $exp_end = $exprow["expt_end"]; $exp_created = $exprow["expt_created"]; $exp_head = $exprow["expt_head_uid"]; $exp_swapper = $exprow["swapper_idx"]; $exp_state = $exprow["state"]; $exp_shared = $exprow["shared"]; $exp_path = $exprow["path"]; $batchmode = $exprow["batchmode"]; $canceled = $exprow["canceled"]; $attempts = $exprow["attempts"]; $expt_locked = $exprow["expt_locked"]; $priority = $exprow["priority"]; $swappable = $exprow["swappable"]; $noswap_reason = $exprow["noswap_reason"]; $idleswap = $exprow["idleswap"]; $idleswap_timeout = $exprow["idleswap_timeout"]; $noidleswap_reason = $exprow["noidleswap_reason"]; $autoswap = $exprow["autoswap"]; $autoswap_timeout = $exprow["autoswap_timeout"]; $idle_ignore = $exprow["idle_ignore"]; $savedisk = $exprow["savedisk"]; $swapreqs = $exprow["swap_requests"]; $lastswapreq = $exprow["last_swap_req"]; $minnodes = $exprow["min_nodes"]; $maxnodes = $exprow["max_nodes"]; $virtnodes = $exprow["virtnode_count"]; $syncserver = $exprow["sync_server"]; $mem_usage = $exprow["mem_usage"]; $cpu_usage = $exprow["cpu_usage"]; $exp_slice = $exprow["slicename"]; $linktest_level = $exprow["linktest_level"]; $linktest_pid = $exprow["linktest_pid"]; $usemodelnet = $exprow["usemodelnet"]; $mnet_cores = $exprow["modelnet_cores"]; $mnet_edges = $exprow["modelnet_edges"]; $lockdown = $exprow["lockdown"]; $skipvlans = $exprow["skipvlans"]; $exptidx = $exprow["idx"]; $archive_idx = $exprow["archive_idx"]; $dpdb = $exprow["dpdb"]; $dpdbname = $exprow["dpdbname"]; $dpdbpassword = $exprow["dpdbpassword"]; $uuid = $exprow["eid_uuid"]; $paniced = $exprow["paniced"]; $panic_date = $exprow["panic_date"]; $autoswap_hrs = $autoswap_timeout / 60.0; $idleswap_hrs = $idleswap_timeout / 60.0; $noswap = "({$noswap_reason})"; $noidleswap = "({$noidleswap_reason})"; $autoswap_str = $autoswap_hrs . " hour" . ($autoswap_hrs == 1 ? "" : "s"); $idleswap_str = $idleswap_hrs . " hour" . ($idleswap_hrs == 1 ? "" : "s"); if (!($head_user = User::Lookup($exp_head))) { TBERROR("Error getting object for user {$exp_head}", 1); } $showuser_url = CreateURL("showuser", $head_user); if (!($swapper = User::Lookup($exp_swapper))) { TBERROR("Error getting object for user {$exp_swapper}", 1); } $swapper_uid = $swapper->uid(); $swapper_url = CreateURL("showuser", $swapper); if ($swappable) { $swappable = "Yes"; } else { $swappable = "<b>No</b> {$noswap}"; } if ($idleswap) { $idleswap = "Yes (after {$idleswap_str})"; } else { $idleswap = "<b>No</b> {$noidleswap}"; } if ($autoswap) { $autoswap = "<b>Yes</b> (after {$autoswap_str})"; } else { $autoswap = "No"; } if ($idle_ignore) { $idle_ignore = "<b>Yes</b>"; } else { $idle_ignore = "No"; } if ($savedisk) { $savedisk = "<b>Yes</b>"; } else { $savedisk = "No"; } if ($expt_locked) { $expt_locked = "({$expt_locked})"; } else { $expt_locked = ""; } $query_result = DBQueryFatal("select cause_desc " . "from experiment_stats as s,errors,causes " . "where s.exptidx = {$exptidx} " . "and errors.cause = causes.cause " . "and s.last_error = errors.session"); if ($row = mysql_fetch_array($query_result)) { $err_cause = $row[0]; } else { $err_cause = ''; } # # Generate the table. # echo "<table align=center border=1>\n"; if (!$short) { $thisurl = CreateURL("showexp", $this); echo "<tr>\n <td>Name: </td>\n <td class=left><a href='{$thisurl}'>{$eid}</a></td>\n </tr>\n"; echo "<tr>\n <td>Description: </td>\n <td class=\"left\">{$exp_name}</td>\n </tr>\n"; echo "<tr>\n <td>Project: </td>\n <td class=\"left\">\n <a href='showproject.php3?pid={$pid}'>{$pid}</a></td>\n </tr>\n"; echo "<tr>\n <td>Group: </td>\n <td class=\"left\">\n <a href='showgroup.php3?pid={$pid}&gid={$exp_gid}'>{$exp_gid}</a>\n </td>\n </tr>\n"; if (isset($exp_slice)) { echo "<tr>\n <td>Planetlab Slice: </td>\n <td class=\"left\">{$exp_slice}</td>\n </tr>\n"; } } echo "<tr>\n <td>Creator: </td>\n <td class=\"left\">\n <a href='{$showuser_url}'>{$exp_head}</a></td>\n </tr>\n"; if (!$swapper->SameUser($head_user)) { echo "<tr>\n <td>Swapper: </td>\n <td class=\"left\">\n <a href='{$swapper_url}'>{$swapper_uid}</a></td>\n </tr>\n"; } if (!$short) { $instance = TemplateInstance::LookupByExptidx($exptidx); if (!is_null($instance)) { $guid = $instance->guid(); $vers = $instance->vers(); echo "<tr>\n <td>Template: </td>\n <td class=\"left\">\n <a href='template_show.php?guid={$guid}&version={$vers}'>\n {$guid}/{$vers}</a>"; if ($instance->runidx()) { $runidx = $instance->runidx(); $runid = $instance->GetRunID($runidx); $url = CreateURL("experimentrun_show", $instance, "runidx", $runidx); echo " (Current Run:\n <a href='{$url}'>{$runid}</a>)</td>"; } else { $runidx = $instance->LastRunIdx(); $runid = $instance->GetRunID($runidx); $url = CreateURL("experimentrun_show", $instance, "runidx", $runidx); echo " (Last Run:\n <a href='{$url}'>{$runid}</a>)</td>"; } echo "</tr>\n"; } echo "<tr>\n <td>Created: </td>\n <td class=\"left\">{$exp_created}</td>\n </tr>\n"; if ($exp_swapped) { echo "<tr>\n <td>Last Swap/Modify: </td>\n <td class=\"left\">{$exp_swapped}\n (<a href='{$swapper_url}'>{$swapper_uid}</a>)</td>\n </tr>\n"; } if (ISADMIN()) { echo "<tr>\n <td><a href='{$WIKIDOCURL}/Swapping#swapping'>Swappable:</a></td>\n <td class=\"left\">{$swappable}</td>\n </tr>\n"; } echo "<tr>\n <td><a href='{$WIKIDOCURL}/Swapping#idleswap'>Idle-Swap:</a></td>\n <td class=\"left\">{$idleswap}</td>\n </tr>\n"; echo "<tr>\n <td><a href='{$WIKIDOCURL}/Swapping#autoswap'>Max. Duration:</a></td>\n <td class=\"left\">{$autoswap}</td>\n </tr>\n"; echo "<tr>\n <td><a href='{$WIKIDOCURL}/Swapping#swapstatesave'>Save State:</a></td>\n <td class=\"left\">{$savedisk}</td>\n </tr>\n"; if (ISADMIN()) { echo "<tr>\n <td>Idle Ignore:</td>\n <td class=\"left\">{$idle_ignore}</td>\n </tr>\n"; } echo "<tr>\n <td>Path: </td>\n <td class=left>{$exp_path}</td>\n </tr>\n"; echo "<tr>\n <td>Status: </td>\n <td id=exp_state class=\"left\">{$exp_state} {$expt_locked}</td>\n </tr>\n"; if ($err_cause) { echo "<tr>\n <td>Last Error: </td>\n <td class=\"left\"><a href=\"showlasterror.php3?pid={$pid}&eid={$eid}\">{$err_cause}</a></td>\n </tr>\n"; } if ($paniced) { echo "<tr>\n <td>Paniced on: </td>\n <td class=left>{$panic_date}</td>\n </tr>\n"; } if ($linktest_pid) { $linktest_running = "<b>(Linktest Running)</b>"; } else { $linktest_running = ""; } echo "<tr>\n <td><a href='{$WIKIDOCURL}/linktest'>" . "Linktest Level</a>: </td>\n <td class=\"left\">{$linktest_level} {$linktest_running}</td>\n </tr>\n"; } if (count($nodecounts)) { echo "<tr>\n <td>Reserved Nodes: </td>\n <td class=\"left\">\n"; while (list($class, $count) = each($nodecounts)) { echo "{$count} ({$class}) "; } echo " </td>\n </tr>\n"; } elseif (!$short) { if ($minnodes != "") { echo "<tr>\n <td>Min/Max Nodes: </td>\n <td class=\"left\"><font color=green>\n {$minnodes}/{$maxnodes} (estimates)</font></td>\n </tr>\n"; } else { echo "<tr>\n <td>Minumum Nodes: </td>\n <td class=\"left\"><font color=green>Unknown</font></td>\n </tr>\n"; } if ($virtnodes) { echo "<tr>\n <td>Virtual Nodes: </td>\n <td class=\"left\"><font>\n {$virtnodes}</font></td>\n </tr>\n"; } else { echo "<tr>\n <td>Virtual Nodes: </td>\n <td class=\"left\"><font color=green>Unknown</font></td>\n </tr>\n"; } } if (!$short) { if ($mem_usage || $cpu_usage) { echo "<tr>\n <td>Mem Usage Est: </td>\n <td class=\"left\">{$mem_usage}</td>\n </tr>\n"; echo "<tr>\n <td>CPU Usage Est: </td>\n <td class=\"left\">{$cpu_usage}</td>\n </tr>\n"; } $lastact = $this->LastAct(); $idletime = $this->IdleTime(); $stale = $this->IdleStale(); if ($lastact != -1) { echo "<tr>\n <td>Last Activity: </td>\n <td class=\"left\">{$lastact}</td>\n </tr>\n"; if ($stale) { $str = "(stale)"; } else { $str = ""; } echo "<tr>\n <td>Idle Time: </td>\n <td class=\"left\">{$idletime} hours {$str}</td>\n </tr>\n"; } if (!($swapreqs == "" || $swapreqs == 0)) { echo "<tr>\n <td>Swap Requests: </td>\n <td class=\"left\">{$swapreqs}</td>\n </tr>\n"; echo "<tr>\n <td>Last Swap Req.: </td>\n <td class=\"left\">{$lastswapreq}</td>\n </tr>\n"; } $lockflip = $lockdown ? 0 : 1; $lockval = $lockdown ? "Yes" : "No"; echo "<tr>\n <td>Locked Down:</td>\n <td>{$lockval} (<a href=toggle.php?pid={$pid}&eid={$eid}" . "&type=lockdown&value={$lockflip}>Toggle</a>)\n </td>\n </tr>\n"; if (ISADMIN() || STUDLY() || OPSGUY()) { $thisflip = $skipvlans ? 0 : 1; $flipval = $skipvlans ? "Yes" : "No"; echo "<tr>\n <td>Skip Vlans:</td>\n <td>{$flipval} (<a href=toggle.php?pid={$pid}&eid={$eid}" . "&type=skipvlans&value={$thisflip}>Toggle</a>)\n </td>\n </tr>\n"; } } if ($batchmode) { echo "<tr>\n <td>Batch Mode: </td>\n <td class=\"left\">Yes</td>\n </tr>\n"; echo "<tr>\n <td>Start Attempts: </td>\n <td class=\"left\">{$attempts}</td>\n </tr>\n"; } if ($canceled) { echo "<tr>\n <td>Cancel Flag: </td>\n <td class=\"left\">{$canceled}</td>\n </tr>\n"; } if (!$short) { if (ISADMIN()) { echo "<tr>\n <td>UUID: </td>\n <td class=left>{$uuid}</td>\n </tr>\n"; } if ($usemodelnet) { echo "<tr>\n <td>Use Modelnet: </td>\n <td class=\"left\">Yes</td>\n </tr>\n"; echo "<tr>\n <td>Modelnet Phys Core Nodes: </td>\n <td class=\"left\">{$mnet_cores}</td>\n </tr>\n"; echo "<tr>\n <td>Modelnet Phys Edge Nodes: </td>\n <td class=\"left\">{$mnet_edges}</td>\n </tr>\n"; } if (isset($syncserver)) { echo "<tr>\n <td>Sync Server: </td>\n <td class=\"left\">{$syncserver}</td>\n </tr>\n"; } if ($dpdb && $dpdbname && $dpdbpassword) { echo "<tr>\n <td>DataBase Name: </td>\n <td class=\"left\">{$dpdbname}</td>\n </tr>\n"; echo "<tr>\n <td>DataBase User: </td>\n <td class=\"left\">E{$exptidx}</td>\n </tr>\n"; echo "<tr>\n <td>DataBase Password: </td>\n <td class=\"left\">{$dpdbpassword}</td>\n </tr>\n"; } echo "<tr>\n <td>Index: </td>\n <td class=\"left\">{$exptidx}"; if ($archive_idx) { echo " ({$archive_idx}) "; } echo " </td>\n </tr>\n"; } if (!$short) { if ($this->geniflags()) { $slice = GeniSlice::Lookup("geni-cm", $uuid); if ($slice) { $slice_hrn = $slice->hrn(); $slice_urn = $slice->urn(); if (ISADMIN()) { $url = CreateURL("showslice", "slice_idx", $slice->idx(), "showtype", "cm"); echo "<tr>\n <td>Geni Slice (CM): </td>\n <td class=\"left\">\n <a href='{$url}'>{$slice_urn}</a></td>\n </tr>\n"; } else { echo "<tr>\n <td>Geni Slice (CM): </td>\n <td class=\"left\">{$slice_urn}</td>\n </tr>\n"; } } } else { $slice = GeniSlice::LookupByExperiment("geni-sa", $this); if ($slice) { $slice_hrn = $slice->hrn(); $slice_urn = $slice->urn(); if (ISADMIN()) { $url = CreateURL("showslice", "slice_idx", $slice->idx(), "showtype", "sa"); echo "<tr>\n <td>Geni Slice (SA): </td>\n <td class=\"left\">\n <a href='{$url}'>{$slice_urn}</a></td>\n </tr>\n"; } else { echo "<tr>\n <td>Geni Slice (SA): </td>\n <td class=\"left\">{$slice_urn}</td>\n </tr>\n"; } $slice = GeniSlice::Lookup("geni-cm", $slice_hrn); if ($slice) { if (ISADMIN()) { $url = CreateURL("showslice", "slice_idx", $slice->idx(), "showtype", "cm"); echo "<tr>\n <td>Geni Slice (CM): </td>\n <td class=\"left\">\n <a href='{$url}'>{$slice_urn}</a></td>\n </tr>\n"; } else { echo "<tr>\n <td>Geni Slice (SA): </td>\n <td class=\"left\">{$slice_urn}</td>\n </tr>\n"; } } } } } echo "</table>\n"; }
include "defs.php3"; # # Only known and logged in users can do this. # $this_user = CheckLoginOrDie(); $uid = $this_user->uid(); $isadmin = ISADMIN(); # # Verify page arguments # $optargs = OptionalPageArguments("sortby", PAGEARG_STRING); # # Standard Testbed Header # PAGEHEADER("Emulab Site List"); if (!($isadmin || OPSGUY() || STUDLY())) { USERERROR("Cannot view site list.", 1); } if (!isset($sortby)) { $sortby = "created"; } $sortclause = ""; if ($sortby == "created") { $sortclause = "order by created"; } elseif ($sortby == "urn") { $sortclause = "order by urn"; } elseif ($sortby == "commonname") { $sortclause = "order by commonname"; } elseif ($sortby == "buildinfo") { $sortclause = "order by buildinfo"; } elseif ($sortby == "updated") {
# License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this file. If not, see <http://www.gnu.org/licenses/>. # # }}} # include "defs.php3"; include_once "node_defs.php"; # # Only known and logged in users can do this. # $this_user = CheckLoginOrDie(); $uid = $this_user->uid(); $isadmin = ISADMIN(); if (!$isadmin && !STUDLY()) { USERERROR("You are not allowed to view this page!", 1); } # # Verify page arguments. # $optargs = OptionalPageArguments("type", PAGEARG_STRING); # # Standard Testbed Header # PAGEHEADER("Node Control Center"); $query_result = DBQueryFatal("select n.inception,util.*, " . " UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(n.inception) as age " . " from node_utilization as util " . "left join nodes as n on n.node_id=util.node_id " . "left join node_types as t on t.type=n.type " . "where n.inception is not null and t.class='pc' and " . " role='testnode'" . "order BY priority"); if (mysql_num_rows($query_result) == 0) { echo "<center>Oops, no nodes to show you!</center>"; PAGEFOOTER(); exit;
function SPITFORM($template, $formfields, $parameters, $errors) { global $TBDB_EIDLEN, $EXPOSELINKTEST, $EXPOSESTATESAVE, $TBDOCBASE; global $TBVALIDDIRS_HTML, $linktest_levels; global $WIKIDOCURL; PAGEHEADER("Instantiate an Experiment Template"); echo "<center>\n"; $template->Show(); echo "</center>\n"; echo "<br>\n"; $guid = $template->guid(); $vers = $template->vers(); if ($errors) { echo "<table class=nogrid\n align=center border=0 cellpadding=6 cellspacing=0>\n <tr>\n <th align=center colspan=2>\n <font size=+1 color=red>\n Oops, please fix the following errors! \n </font>\n </td>\n </tr>\n"; while (list($name, $message) = each($errors)) { echo "<tr>\n <td align=right>\n <font color=red>{$name}: </font></td>\n <td align=left>\n <font color=red>{$message}</font></td>\n </tr>\n"; } echo "</table><br>\n"; } else { echo "<blockquote><blockquote><font size=+1>"; echo "Template Instantiation will map your template onto actual " . "testbed hardware. This used to be known as " . "<em>experiment swapin</em> " . "but we decided we like <em>instantiation</em> better."; echo "</font></blockquote></blockquote><br>\n"; } $url = CreateURL("template_swapin", $template); echo "<form action='{$url}' method=post>\n"; echo "<table align=center border=1>\n"; # # Pass along replay info, but no need to display it. # if (isset($formfields["replay_instance_idx"])) { echo "<input type=hidden name=\"formfields[replay_instance_idx]\"\n value='" . $formfields["replay_instance_idx"] . "'>\n"; if (isset($formfields["replay_run_idx"])) { echo "<input type=hidden name=\"formfields[replay_run_idx]\"\n value='" . $formfields["replay_run_idx"] . "'>\n"; } } # # EID: # echo "<tr>\n <td class='pad4'>ID:\n <br><font size='-1'>(alphanumeric, no blanks)</font></td>\n <td class='pad4' class=left>\n <input type=text\n name=\"formfields[eid]\"\n value=\"" . $formfields["eid"] . "\"\n\t size={$TBDB_EIDLEN}\n maxlength={$TBDB_EIDLEN}>\n </td>\n </tr>\n"; # # Swapping # # Add in hidden fields to send swappable and noswap_reason, since # they do not show on the form echo "<input type=hidden name=\"formfields[exp_swappable]\"\n value='{$formfields['exp_swappable']}'>\n"; echo "<input type=hidden name=\"formfields[exp_noswap_reason]\" value='"; echo htmlspecialchars($formfields["exp_noswap_reason"], ENT_QUOTES); echo "'>\n"; if (isset($view['hide_swap'])) { $idlevars = array('exp_idleswap', 'exp_noidleswap_reason', 'exp_idleswap_timeout', 'exp_autoswap', 'exp_autoswap_timeout'); while (list($index, $value) = each($idlevars)) { if (isset($formfields[$value])) { echo "<input type='hidden' name='formfields[{$value}]'\n value='{$formfields[$value]}'>\n"; } } } else { echo "<tr>\n\t\t <td class='pad4'>\n\t\t <a href='{$WIKIDOCURL}/Swapping#swapping'>\n\t\t Swapping:</td>\n\t\t <td>\n\t\t <table cellpadding=0 cellspacing=0 border=0><tr>\n\t\t <td><input type='checkbox'\n\t\t\t name='formfields[exp_idleswap]'\n\t\t\t value='1'"; if ($formfields["exp_idleswap"] == "1") { echo " checked='1'"; } echo "></td>\n\t\t <td><a href='{$WIKIDOCURL}/Swapping#idleswap'>\n\t\t <b>Idle-Swap:</b></a> Swap out this experiment\n\t\t after \n\t\t <input type='text' name='formfields[exp_idleswap_timeout]'\n\t\t\t value='"; echo htmlspecialchars($formfields["exp_idleswap_timeout"], ENT_QUOTES); echo "' size='3'> hours idle.</td>\n\t\t </tr><tr>\n\t\t <td> </td>\n\t\t <td>If not, why not?<br><textarea rows=2 cols=50\n\t\t\t name='formfields[exp_noidleswap_reason]'>"; echo htmlspecialchars($formfields["exp_noidleswap_reason"], ENT_QUOTES); echo "</textarea></td>\n\t\t </tr><tr>\n\t\t <td><input type='checkbox'\n\t\t\t name='formfields[exp_autoswap]'\n\t\t\t value='1' "; if ($formfields["exp_autoswap"] == "1") { echo " checked='1'"; } echo "></td>\n\t\t <td><a href='{$WIKIDOCURL}/Swapping#autoswap'>\n\t\t <b>Max. Duration:</b></a> Swap out after\n\t\t <input type='text' name='formfields[exp_autoswap_timeout]'\n\t\t\t value='"; echo htmlspecialchars($formfields["exp_autoswap_timeout"], ENT_QUOTES); echo "' size='3'> hours, even if not idle.</td>\n\t\t </tr>"; if (STUDLY() || $EXPOSESTATESAVE) { echo "<tr><td>\n\t <input type=checkbox name='formfields[exp_savedisk]'\n\t value='Yep'"; if (isset($formfields["exp_savedisk"]) && strcmp($formfields["exp_savedisk"], "Yep") == 0) { echo " checked='1'"; } echo "></td>\n"; echo "<td><a href='{$WIKIDOCURL}/Swapping#swapstatesave'>\n\t\t <b>State Saving:</b></a> Save disk state on swapout</td>\n\t\t </tr>"; } echo "</table></td></tr>"; } if (count($parameters)) { # # Lets get an array of mouseovers to use in the form. # unset($mouseovers); $template->FormalParameterMouseOvers($mouseovers); # # Table of inputs. # echo "<tr>\n\t\t <td class='pad4'>Formal Parameters:</td>\n\t\t <td>\n \t\t <table cellpadding=0 cellspacing=0 border=0>\n"; while (list($name, $value) = each($parameters)) { if (!isset($value)) { $value = " "; } $mouseover = isset($mouseovers[$name]) ? $mouseovers[$name] : ""; echo "<tr>\n <td class='pad4' {$mouseover}>{$name}</td>\n <td class='pad4' class=left>\n <input type=text\n name=\"parameters[{$name}]\"\n value=\"" . $value . "\"\n\t size=60\n maxlength=1024>\n </td>\n </tr>\n"; } echo "<tr><td> <b>or</b> XML file:\n </td><td></td></tr>\n"; echo "<tr>\n <td class='pad4'>On Server<br>\n <font size='-1'>({$TBVALIDDIRS_HTML})</font></td>\n <td class='pad4'>\n\t <input type=text\n name=\"formfields[parameter_xmlfile]\"\n value=\"" . $formfields["parameter_xmlfile"] . "\"\n\t size=60>\n"; echo "</td></tr>\n"; echo "</table></td></tr>"; } # # Description # echo "<tr>\n <td colspan=2>\n Use this text area for an (optional) description:\n </td>\n </tr>\n <tr>\n <td colspan=2 align=center class=left>\n <textarea name=\"formfields[description]\"\n rows=5 cols=80>" . str_replace("\r", "", $formfields["description"]) . "</textarea>\n </td>\n </tr>\n"; # # Batch Experiment? # echo "<tr>\n\t <td class='pad4' colspan=2>\n\t <input type=checkbox name='formfields[batched]' value='Yep'"; if (isset($formfields["batched"]) && strcmp($formfields["batched"], "Yep") == 0) { echo " checked='1'"; } echo ">\n"; echo "Batch Mode Instantiation \n\t <font size='-1'>(See\n <a href='{$WIKIDOCURL}/Tutorial#BatchMode'>Tutorial</a>\n for more information)</font>\n\t </td>\n\t </tr>\n"; # # Preload? # echo "<tr>\n\t <td class='pad4' colspan=2>\n\t\t <input type=checkbox name='formfields[preload]'\n value='Yep'"; if (isset($formfields["preload"]) && strcmp($formfields["preload"], "Yep") == 0) { echo " checked='1'"; } echo ">\n"; echo "Do Not Swap In</td>\n\t </tr>\n"; # # Run linktest, and level. # if (STUDLY() || $EXPOSELINKTEST) { echo "<tr>\n <td><a href='{$WIKIDOCURL}/linktest'>Linktest</a> Option:</td>\n <td><select name=\"formfields[exp_linktest]\">\n <option value=0>Skip Linktest </option>\n"; for ($i = 1; $i <= TBDB_LINKTEST_MAX; $i++) { $selected = ""; if (strcmp($formfields["exp_linktest"], "{$i}") == 0) { $selected = "selected"; } echo " <option {$selected} value={$i}>Level {$i} - " . $linktest_levels[$i] . "</option>\n"; } echo " </select>"; echo " (<a href='{$WIKIDOCURL}/linktest'><b>What is this?</b></a>)"; echo " </td>\n </tr>\n"; } echo "<tr>\n <td class='pad4' align=center colspan=2>\n <b><input type=submit name=swapin value='Instantiate'></b>\n </td>\n </tr>\n </form>\n </table>\n"; }