+ $details->form_start(l_actions(),array("action"=>"attach-pcu","node_id"=>$node_id));
+ // prepare selectors
+ if (! $site_pcus) {
+ $pcu_update_area = "This site has no PCU - " . href ( l_pcu_add(), "add one here");
+ } else {
+ $pcu_add_link = href (l_pcu_add(),plc_add_icon() . "Add new");
+
+ // first option in pcus
+ if ($pcu_ids)
+ $none_detach = 'Detach';
+ else
+ $none_detach='None';
+ $pcu_selectors = array(array('display'=>$none_detach,'value'=>-1));
+ // one option per site pcu
+ foreach ($site_pcus as $site_pcu) {
+ $selector=array('display'=>$site_pcu['hostname'],'value'=>$site_pcu['pcu_id']);
+ if ($pcu_id == $site_pcu['pcu_id']) $selector['selected']=true;
+ $pcu_selectors []= $selector;
+ }
+ $pcu_chooser = $details->form()->select_html('pcu_id',$pcu_selectors);
+
+ function port_selector ($i,$port) {
+ $selector = array ('display'=>'port ' . $i, 'value'=>$i);
+ if ($i == $port) $selector['selected'] = true;
+ return $selector;
+ }
+ $port_selectors = array () ;
+ $available_ports =range(1,8);
+ foreach ($available_ports as $available_port)
+ $port_selectors []= port_selector ($available_port,$port);
+ $port_chooser = $details->form()->select_html('port',$port_selectors);
+
+ $pcu_attach_button =
+ $details->form()->submit_html('attach_pcu',"Attach PCU");
+
+ $pcu_update_area = $pcu_add_link . "<br>Or, select existing " . $pcu_chooser . " " . $port_chooser . " " . $pcu_attach_button;
+ }
+
+ if ($pcu_string)
+ $pcu_value_area=plc_vertical_table(array($pcu_string,$pcu_update_area));
+ else
+ $pcu_value_area=$pcu_update_area;
+
+ $details->th_td("PCU",$pcu_value_area);
+ $details->form_end();
+ }
+
+//////////////////// Reboot Node
+if ( $display_reboot_button )
+{
+ if ( ! empty($_SESSION['messages']) ) {
+ $msg = $_SESSION['messages']['status'][0];
+ } else {
+ $msg = "";
+ }
+ $body="Hello,
+
+This message is a template from the 'Report a problem' link on the node details page.
+
+I've experienced a problem rebooting $hostname with the pcu_id $pcu_id;
+
+ http://".PLC_WWW_HOST."/db/sites/pcu.php?id=$pcu_id
+ http://".PLC_WWW_HOST."/db/nodes/node.php?id=$node_id\n\n";
+
+ if ( $msg != "" ) {
+ $body .= "The last time I tried, it returned:\n $msg\n\n";
+ }
+ $body .= "And, this is what I've tried, which leads me to believe that there is a bug on your side:";
+
+ $url=rawurlencode($body);
+ $email = "<font style='font-size: smaller'>><a href=\"mailto:".PLC_MAIL_SUPPORT_ADDRESS."?Subject=Reporting a problem rebooting $hostname&Body=$url\">Report a problem</a></font>";
+
+ // NOTE: not sure how to make the buttons display side-by-side...
+ $reboot = $details->form_start_html(l_actions(),array("action"=>"reboot-node-with-pcu",
+ "node_id"=>$node_id, "hostname"=>$hostname, "test"=>FALSE));
+ $reboot .= $email . $details->form->submit_html("submit","Reboot Node");
+ $reboot .= $details->form_end_html();
+
+ $reboot .= $details->form_start_html(l_actions(),array("action"=>"reboot-node-with-pcu",
+ "node_id"=>$node_id, "hostname"=>$hostname, "test"=>TRUE));
+ $reboot .= $details->form->submit_html("submit","Test PCU");
+ $reboot .= $details->form_end_html();
+
+ $details->tr($reboot, "right");
+
+}
+$details->space();
+
+//////////////////// type & version
+$details->th_td("Version",$version);
+// let's use plc_objects
+$Node = new Node($node);
+$details->th_td("Date created",$Node->dateCreated());
+$details->th_td("Last update",$Node->lastUpdated());
+$details->th_td("Last contact",$Node->lastContact());
+
+// boot area
+$details->space ();
+$stale_text = $Node->stale() ? ("... (more than " . Node::stale_text() . " ago)") : "" ;
+$details->th_td ("Observed Boot state", $run_level . $stale_text);
+if ( ! ($local_peer && $privileges)) {
+ // just display it
+ $boot_value=$boot_state;