// Common functions
require_once 'plc_functions.php';
require_once 'plc_peers.php';
-require_once 'plc_minitabs.php';
-require_once 'plc_tables.php';
-require_once 'plc_details.php';
-require_once 'plc_forms.php';
+require_once 'linetabs.php';
+require_once 'table.php';
+require_once 'details.php';
+require_once 'form.php';
+require_once 'toggle.php';
require_once 'plc_objects.php';
// --------------------
$conf_files= $api->GetConfFiles( $conf_file_ids );
// (*) idem for PCUs
// gets pcu and port info key to both is $pcu_id
-if( !empty( $pcu_ids ) )
- $PCUs= $api->GetPCUs( $pcu_ids );
+// turning this off: GetPCUs is not allowed to users, and we don't show PCUs yet anyway
+//if( !empty( $pcu_ids ) )
+// $PCUs= $api->GetPCUs( $pcu_ids );
//////////////////// display node info
// extra privileges to admins, and (pi||tech) on this site
-$privileges = plc_is_admin () || ( plc_in_site($site_id) && ( plc_is_pi() || plc_is_tech()));
+$privileges = (plc_is_admin () && $local_peer) || ( plc_in_site($site_id) && ( plc_is_pi() || plc_is_tech()));
$tabs=array();
// available actions
+$tabs [] = tab_nodes_site($site_id);
+$tabs [] = tab_site($site_id);
+//$tabs [] = tab_nodes();
+
if ( $local_peer && $privileges ) {
+ $tabs["Add Interface"]=array('url'=>l_interface_add($node_id),
+ 'bubble'=>"Define new network interface on $hostname");
$tabs['Delete'] = array ('url'=>l_actions(),
'method'=>'POST',
'values'=>array('action'=>'delete-node','node_id'=>$node_id),
'bubble'=>"Delete node $hostname",
- 'confirm'=>'Are you sure to delete ' . $hostname. ' ?');
- // xxx subject to roles
- $tabs["Add Interface"]=array('url'=>l_interface_add($node_id),
- 'bubble'=>"Declare new network interface on $hostname");
- $tabs["Events"]=array_merge(tabs_events(),
+ 'confirm'=>'Are you sure to delete ' . $hostname);
+ $tabs["Events"]=array_merge(tablook_event(),
array('url'=>l_event("Node","node",$node_id),
'bubble'=>"Events for node $hostname"));
- $tabs["Comon"]=array_merge(tabs_comon(),
+ $tabs["Comon"]=array_merge(tablook_comon(),
array('url'=>l_comon("node_id",$node_id),
'bubble'=>"Comon page about node $hostname"));
}
-$tabs["All nodes"]=l_nodes();
-
-plc_tabs($tabs);
+plekit_linetabs($tabs);
// show gray background on foreign objects : start a <div> with proper class
$peers->block_start ($peer_id);
-$details=new PlcDetails($privileges);
+$toggle = new PlekitToggle ('node',"Details",
+ array('bubble'=>'Display and modify details for that node',
+ 'visible'=>get_arg('show_details',true)));
+$toggle->start();
+
+$details=new PlekitDetails($privileges);
$details->start();
if ( ! $local_peer) {
- $details->line("Peer",$peers->peer_link($peer_id));
+ $details->th_td("Peer",$peers->peer_link($peer_id));
$details->space();
}
$details->form_start(l_actions(),array("action"=>"update-node", "node_id"=>$node_id));
-$details->line("Hostname",$hostname,"hostname");
-$details->line("Model",$model,"model");
-$details->line("",$details->submit_html("submit","Update Node"));
+// xxx can hostname really be changed like this without breaking the rest, bootcd .. ?
+//$details->th_td("Hostname",$hostname,"hostname");
+$details->th_td("Hostname",$hostname);
+$details->th_td("Model",$model,"model");
+$details->tr_submit("submit","Update Node");
$details->form_end();
+if ($privileges) $details->space();
-$details->line("Type",$node_type);
-$details->line("Version",$version);
+$details->th_td("Type",$node_type);
+$details->th_td("Version",$version);
// let's use plc_objects
$Node = new Node($node);
-$details->line("Date created",$Node->dateCreated());
-$details->line("Last contact",$Node->lastContact());
-$details->line("Last update",$Node->lastUpdated());
+$details->th_td("Date created",$Node->dateCreated());
+$details->th_td("Last contact",$Node->lastContact());
+$details->th_td("Last update",$Node->lastUpdated());
// boot area
$details->space ();
$boot_value=$boot_state;
} else {
$boot_value="";
- $boot_form = new PlcForm (l_actions(), array("node_id"=>$node_id,
+ $boot_form = new PlekitForm (l_actions(), array("node_id"=>$node_id,
"action"=>"node-boot-state"));
$boot_value .= $boot_form->start_html();
$states = array( 'boot'=>'Boot', 'safeboot'=>'SafeBoot', 'failboot'=>'FailBoot',
if ($dbname == $boot_state) $selector['selected']=true;
$selectors []= $selector;
}
- $boot_value .= $boot_form->select_html("boot_state",$selectors,NULL,true);
+ $boot_value .= $boot_form->select_html("boot_state",$selectors,array('autosubmit'=>true));
$boot_value .= $boot_form->end_html();
}
-$details->line ("Boot state",$boot_value);
+$details->th_td ("Boot state",$boot_value);
// same here for the download area
if ( $local_peer && $privileges) {
$download_value="";
- $download_form = new PlcForm (l_actions_download(),array("node_id"=>$node_id));
+ $download_form = new PlekitForm (l_actions_download(),array("node_id"=>$node_id));
$download_value .= $download_form->start_html();
$selectors = array(
array("display"=>"-- All in one images --","disabled"=>true),
array("value"=>"download-node-iso","display"=>"Download ISO image for $hostname"),
- array("value"=>"download-node-usb","display"=>"Download USB image for $hostname<"),
+ array("value"=>"download-node-usb","display"=>"Download USB image for $hostname"),
array("display"=>"-- Floppy + generic image --","disabled"=>true),
array("value"=>"download-node-floppy","display"=>"Download Floppy file for $hostname"),
array("value"=>"download-generic-iso","display"=>"Download generic ISO image (requires floppy)"),
array("value"=>"download-generic-usb","display"=>"Download generic USB image (requires floppy)"));
- $download_value .= $download_form->select_html("action",$selectors,"Download mode",true);
+ $download_value .= $download_form->select_html("action",$selectors,
+ array('label'=>"Download mode",'autosubmit'=>true));
$download_value .= $download_form->end_html();
- $details->line ("Download",$download_value);
+ $details->th_td ("Download",$download_value);
}
// site info and all site nodes
$details->space ();
-$details->line("Site",l_site_t($site_id,$site_name));
+$details->th_td("Site",l_site_t($site_id,$site_name));
// build list of node links
$nodes_area=array();
foreach ($site_node_hash as $hash_node_id => $hash_hostname) {
$nodes_area []= l_node_t($hash_node_id,$hash_hostname);
}
-$details->lines ("All site nodes",$nodes_area);
+$details->th_tds ("All site nodes",$nodes_area);
$details->end ();
+$toggle->end();
-$form=new PlcForm (l_actions(), array('node_id'=>$node_id));
+$form=new PlekitForm (l_actions(), array('node_id'=>$node_id));
$form->start();
+//////////////////////////////////////////////////////////// slivers
+{
+ $toggle=new PlekitToggle ('slices',count_english_warning($slices,'sliver'),
+ array('bubble'=>'Review slices running on that node',
+ 'visible'=>get_arg('show_slices',false)));
+ $toggle->start();
+ if ( ! $slices ) {
+ plc_warning ("This node is not associated to any slice");
+ } else {
+ $headers=array();
+ $headers['Peer']="string";
+ $headers['Name']="string";
+ $headers['Sliver']="string";
+ $reasonable_page=10;
+ $table_options = array('notes_area'=>false,"search_width"=>10,'pagesize'=>$reasonable_page);
+ if (count ($slices) <= $reasonable_page) {
+ $table_options['search_area']=false;
+ $table_options['pagesize_area']=false;
+ }
+ $table=new PlekitTable("node_slices",$headers,1,$table_options);
+ $table->start();
+
+ foreach ($slices as $slice) {
+ $table->row_start();
+ $peers->cell ($table,$slice['peer_id']);
+ $table->cell (l_slice_t ($slice['slice_id'],$slice['name']));
+ # xxx l_sliver not implemented yet - what should we show exactly ?
+ $table->cell (l_sliver_t ($node_id,$slice['slice_id'],'view'));
+ $table->row_end();
+ }
+ $table->end();
+ }
+ $toggle->end();
+}
+
//////////////////////////////////////////////////////////// Tags
-// get tags
+// tags section
if ( $local_peer ) {
$tags=$api->GetNodeTags (array('node_id'=>$node_id));
function get_tagname ($tag) { return $tag['tagname'];}
+ // xxx looks like tech-only see an error here,
+ // might be that GetNodeTags is not accessible or something
$tagnames = array_map ("get_tagname",$tags);
$nodegroups_hash=plc_nodegroup_global_hash($api,$tagnames);
- plc_section("Tags");
+ $toggle = new PlekitToggle ('tags',count_english_warning($tags,'tag'),
+ array('bubble'=>'Inspect and set tags on that node',
+ 'visible'=>get_arg('show_tags',false)));
+ $toggle->start();
+
$headers=array("Name"=>"string",
"Value"=>"string",
"Nodegroup"=>"string",
if (plc_is_admin()) $headers[plc_delete_icon()]="none";
$table_options=array("notes_area"=>false,"pagesize_area"=>false,"search_width"=>10);
- $table=new PlcTable("node_tags",$headers,0,$table_options);
+ $table=new PlekitTable("node_tags",$headers,0,$table_options);
$table->start();
if ($tags) foreach ($tags as $tag) {
// does this match a nodegroup ?
$table->row_start();
$table->cell($form->submit_html("delete-node-tags","Remove Tags"),
// use the whole columns and right adjust
- $table->columns(), "right");
+ array('hfill'=>true,'align'=>'right'));
$table->row_end();
// set tag area
// xxx cannot use onchange=submit() - would need to somehow pass action name
function tag_selector ($tag) { return array("display"=>$tag['tagname'],"value"=>$tag['tag_type_id']); }
$selector=array_map("tag_selector",$all_tags);
- $table->cell($form->select_html("tag_type_id",$selector,"Choose"));
- $table->cell($form->text_html("value","",8));
- $table->cell($form->submit_html("set-tag-on-node","Set Tag"),2,"left");
+ $table->cell($form->select_html("tag_type_id",$selector,array('label'=>"Choose")));
+ $table->cell($form->text_html("value","",array('width'=>8)));
+ $table->cell($form->submit_html("set-tag-on-node","Set Tag"),array('columns'=>2,'align'=>'left'));
$table->row_end();
}
$table->end();
- }
+ $toggle->end();
+}
//////////////////////////////////////////////////////////// interfaces
if ( $local_peer ) {
-
- plc_section ("Interfaces");
+ $toggle=new PlekitToggle ('interfaces',count_english_warning($interfaces,'interface'),
+ array('bubble'=>'Inspect and tune interfaces on that node',
+ 'visible'=>get_arg('show_interfaces',false)));
+ $toggle->start();
// display interfaces
if( ! $interfaces ) {
echo '<p>';
if ( $privileges ) $headers[plc_delete_icon()]='string';
$table_options=array('search_area'=>false,"pagesize_area"=>false,'notes_area'=>false);
- $table=new PlcTable("node_interfaces",$headers,2,$table_options);
+ $table=new PlekitTable("node_interfaces",$headers,2,$table_options);
$table->start();
foreach ( $interfaces as $interface ) {
if ($privileges) {
$table->tfoot_start();
$table->row_start();
- $add_button=new PlcFormButton (l_interface_add($node_id),"add_interface","Add interface");
+ $add_button=new PlekitFormButton (l_interface_add($node_id),"add","Add Interface","GET");
// we should have 6 cols, use 3 for the left (new) and the rest for the right (remove)
- $table->cell($add_button->html(), 3,"left");
- $table->cell($form->submit_html("delete-interfaces","Remove Interfaces"), $table->columns()-3,"right");
+ $table->cell($add_button->html(),array('columns'=> 3,'align'=>'left'));
+ $table->cell($form->submit_html("delete-interfaces","Remove Interfaces"),
+ array('columns'=>$table->columns()-3,'align'=>'right'));
$table->row_end();
}
$table->end();
}
- }
-
-//////////////////////////////////////////////////////////// slices
-// display slices
-
-plc_section ("Slices");
-if ( ! $slices ) {
- plc_warning ("This node is not associated to any slice");
- } else {
- $headers=array();
- $headers['Peer']="string";
- $headers['Name']="string";
- $headers['Slivers']="string";
- $reasonable_page=10;
- $table_options = array('notes_area'=>false,"search_width"=>10,'pagesize'=>$reasonable_page);
- if (count ($slices) <= $reasonable_page) {
- $table_options['search_area']=false;
- $table_options['pagesize_area']=false;
- }
- $table=new PlcTable("node_slices",$headers,1,$table_options);
- $table->start();
-
- foreach ($slices as $slice) {
- $table->row_start();
- $table->cell ($peers->shortname($peer_id));
- $table->cell (l_slice_t ($slice['slice_id'],$slice['name']));
- $table->cell (l_sliver_t ($node_id,$slice['slice_id'],'view'));
- $table->row_end();
- }
- $table->end();
+ $toggle->end();
}
$form->end();
////////////////////////////////////////////////////////////
$peers->block_end($peer_id);
+//plekit_linetabs ($tabs,"bottom");
// Print footer
include 'plc_footer.php';