4 // pattern-matching selection not implemented
5 // due to GetSlices bug, see test.php for details
6 // in addition that would not make much sense
9 require_once 'plc_login.php';
11 // Get session and API handles
12 require_once 'plc_session.php';
16 require_once 'plc_drupal.php';
17 include 'plc_header.php';
20 require_once 'plc_functions.php';
21 require_once 'plc_peers.php';
22 require_once 'linetabs.php';
23 require_once 'table.php';
25 // --------------------
26 // recognized URL arguments
27 $peerscope=$_GET['peerscope'];
28 $pattern=$_GET['pattern'];
29 $site_id=intval($_GET['site_id']);
30 $person_id=intval($_GET['person_id']);
35 $tabs []= tab_slices_mysite();
36 if (plc_is_admin()) $tabs []= tab_slices_local();
39 $slice_filter=array();
43 $slice_columns=array('slice_id','name','expires','person_ids','peer_id','node_ids');
44 // server-side filtering - set pattern in $_GET for filtering on hostname
46 $slice_filter['name']=$pattern;
47 $title .= " matching " . $pattern;
49 $slice_filter['name']="*";
52 // server-side selection on peerscope
53 $peerscope=new PeerScope($api,$_GET['peerscope']);
54 $slice_filter=array_merge($slice_filter,$peerscope->filter());
55 $title .= ' - ' . $peerscope->label();
59 $sites=$api->GetSites(array($site_id));
62 $login_base=$site['login_base'];
63 $title .= t_site($site);
64 $tabs []= tab_site($site);
65 $slice_filter['site_id']=array($site_id);
69 $persons=$api->GetPersons(array('person_id'=>$person_id,array('email','person_id','slice_ids')));
71 $title .= t_person($person);
72 $tabs .= tab_person($person);
73 $slice_filter['slice_id']=$person['slice_ids'];
77 $slices=$api->GetSlices($slice_filter,$slice_columns);
81 if ($slices) foreach ($slices as $slice) {
82 $person_ids = array_merge ($person_ids,$slice['person_ids']);
84 $persons=$api->GetPersons($person_ids,array('person_id','email'));
87 if ($persons) foreach ($persons as $person) $person_hash[$person['person_id']]=$person;
89 function email_link_from_hash($person_id) {
91 return l_person_obj($person_hash[$person_id]);
94 // --------------------
95 drupal_set_title($title);
97 plekit_linetabs($tabs);
100 drupal_set_message ('No slice found');
104 $headers = array ("Peer"=>"string",
109 "Exp. d/m/y"=>"date-dmy");
111 # initial sort on hostnames
112 $table=new PlekitTable ("slices",$headers,2,
113 array('search_width'=>20));
116 $peers = new Peers ($api);
118 foreach ($slices as $slice) {
119 $peer_id=$slice['peer_id'];
120 $shortname = $peers->shortname($peer_id);
121 $users=plc_vertical_table (array_map ("email_link_from_hash",$slice['person_ids']));
122 $expires= date( "d/m/Y", $slice['expires'] );
125 $table->cell ($peers->link($peer_id,$shortname));
126 $table->cell (l_slice_obj($slice));
127 $table->cell ($users);
128 $table->cell(count($slice['person_ids']));
129 $table->cell (href(l_nodes_slice($slice['slice_id']),count($slice['node_ids'])));
130 $table->cell ($expires);
136 //plekit_linetabs ($tabs,"bottom");
139 include 'plc_footer.php';