return $html;
}
+// ditto
+function plc_my_node_links () {
+ $html = '';
+ if (count (plc_my_site_ids()) == 1) {
+ $html .= leaf( href (l_nodes_site (plc_my_site_id()),"My Site Nodes"));
+ } else {
+ $html .= leaf( href (l_nodes_person (plc_my_person_id()),"All My Sites Nodes"));
+ }
+ return $html;
+}
+
// fake theme to look like menu
function menu_theme ($menu) {
$result = '';
$bullet_item = '';
$bullet_item .= href(l_nodes(),"Nodes");
$bullet_item .= ul_start();
- $bullet_item .= leaf( href (l_nodes_site (plc_my_site_id()),"My Site Nodes"));
+ $bullet_item .= plc_my_node_links();
$bullet_item .= leaf( href (l_register_node(),"Register Node"));
$bullet_item .= ul_end();
$items [] = expanded($bullet_item);
return $plc->person['site_ids'][0];
}
+function plc_my_person () {
+ return $plc->person;
+}
function plc_my_person_id () {
global $plc;
return $plc->person['person_id'];
function l_node_obj($node) { return href(l_node($node['node_id']),$node['hostname']); }
function l_node_add () { return "/db/nodes/node_add.php"; }
function l_nodes_site ($site_id) { return "/db/nodes/index.php?site_id=$site_id"; }
+function l_nodes_person ($person_id) { return "/db/nodes/index.php?person_id=$person_id"; }
function l_nodes_slice ($slice_id) { return "/db/nodes/index.php?slice_id=$slice_id"; }
function l_interface ($interface_id) { return "/db/nodes/interface.php?id=$interface_id"; }
$pattern=$_GET['pattern'];
$site_id=intval($_GET['site_id']);
$slice_id=intval($_GET['slice_id']);
+$person_id=intval($_GET['person_id']);
// --- decoration
$title="Nodes";
return plc_vertical_table($messages,'plc-warning');
}
-
// fetch nodes
$node_columns=array('hostname','node_type','site_id','node_id','boot_state','interface_ids','peer_id', 'arch','slice_ids');
// server-side filtering - set pattern in $_GET for filtering on hostname
$node_filter['node_id'] = $slice['node_ids'];
}
+// person_id is set : this is mostly oriented towards people managing several sites
+if ($person_id) {
+ // avoid doing a useless call to GetPersons if the person_id is already known though $plc,
+ // as this is mostly done for the 'all my sites nodes' link
+ if ($person_id == plc_my_person_id()) {
+ $person=plc_my_person();
+ $site_ids = plc_my_site_ids();
+ } else {
+ // fetch the person's site_ids
+ $persons = $api->GetPersons(array('person_id'=>$person_id),array('person_id','email','site_ids'));
+ $person=$persons[0];
+ $site_ids=$person['site_ids'];
+ }
+ $title .= t_person($person);
+ $node_filter['site_id']=$site_ids;
+ }
+
// go
$nodes=$api->GetNodes($node_filter,$node_columns);