From 9d895ccda841805e7635b3b162c075ae29154959 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Wed, 18 Feb 2009 09:25:35 +0000 Subject: [PATCH 1/1] iteration on toggles, ready to spread --- planetlab/css/plc_toggles.css | 18 ++++-- planetlab/icons/toggle-hidden.png | Bin 1611 -> 4356 bytes planetlab/icons/toggle-visible.png | Bin 1499 -> 4328 bytes planetlab/includes/plc_toggles.php | 70 +++++++++++++++++------ planetlab/nodes/node.php | 87 ++++++++++++++--------------- 5 files changed, 108 insertions(+), 67 deletions(-) diff --git a/planetlab/css/plc_toggles.css b/planetlab/css/plc_toggles.css index 7ee452b..4988ee3 100644 --- a/planetlab/css/plc_toggles.css +++ b/planetlab/css/plc_toggles.css @@ -2,17 +2,23 @@ $Id$ */ -h1.plc-toggle-switch, h2.plc-toggle-switch { - text-align:center; +.plc-toggle-trigger { + padding-left: 15px; +/* text-align:center; */ } +/* containers */ +div.plc-toggle-container { + border:2px solid #ccc; +} + +/* the buttons */ img.plc-toggle-visible, img.plc-toggle-hidden { - height: 14px; - padding-right: 20px; + height: 16px; + padding-right: 15px; } +/* what goes on and off */ div.plc-toggle-area { - border-color:#a84444 !important; - border:1px solid #ccc; } diff --git a/planetlab/icons/toggle-hidden.png b/planetlab/icons/toggle-hidden.png index c5cc718bcaaafebd0db9b56b0b79f3eec862e9da..023f22a8d8ffb61841939f0e5b60dc13a70ead9a 100755 GIT binary patch literal 4356 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 JPDHLkV1h;J@%jJ& diff --git a/planetlab/icons/toggle-visible.png b/planetlab/icons/toggle-visible.png index 1332dca34f67db5091dbd2c5ba70c356311d0455..baf6c286923f37e744bf4921a88976c612b4352e 100755 GIT binary patch literal 4328 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 diff --git a/planetlab/includes/plc_toggles.php b/planetlab/includes/plc_toggles.php index 74e9a48..cf247be 100644 --- a/planetlab/includes/plc_toggles.php +++ b/planetlab/includes/plc_toggles.php @@ -12,19 +12,19 @@ drupal_set_html_head(' // This is for creating an area that users can hide and show // It is logically made of 3 parts: // (*) area is what gets hidden and shown -// (*) switch is the area that can be clicked for toggling +// (*) trigger is the area that can be clicked for toggling // (*) image contains a visual indication of the current status // // constructor needs // (*) id: an 'id', used for naming the three parts -// (*) switch: the html text for the switch +// (*) trigger: the html text for the trigger // (*) options: a hash that can define -// - switch-tagname : to be used instead of for wrapping the switch -// - switch-bubble : might not work if switch-tagname is redefined +// - trigger-tagname : to be used instead of for wrapping the trigger +// - trigger-bubble : might not work if trigger-tagname is redefined // - init-hidden : start hidden rather than visible // // methods are as follows -// (*) switch_html (): return the html code for the switch +// (*) trigger_html (): return the html code for the trigger // (*) image_html (): returns the html code for the image // (*) area_start (): because we have too many places where php 'prints' code instead // (*) area_end(): of returning it, we do not expect the code for the area to be passed @@ -34,14 +34,36 @@ class PlcToggle { // mandatory var $id; - function PlcToggle ($id,$switch,$options=NULL) { + function PlcToggle ($id,$trigger,$options=NULL) { $this->id = $id; - $this->switch=$switch; + $this->trigger=$trigger; if ( ! $options ) $options = array(); + if (array_key_exists ('start-visible',$options)) { + $options['start-hidden'] = ! $options['start-visible']; + unset ($options['start-visible']); + } $this->options = $options; } - function id_name ($zonename) { return "toggle-$zonename-$this->id"; } + // the simple, usual way to use it : + // a container that contains the switch and the area in sequence + function start () { print $this->start_html(); } + function start_html () { + $html = ""; + $html .= $this->container_start(); + $html .= $this->trigger_html(); + $html .= $this->area_start_html(); + return $html; + } + + function end () { print $this->end_html(); } + function end_html () { + $html = ""; + $html .= $this->area_end_html(); + $html .= $this->container_end(); + return $html; + } + // create two images that get shown/hidden - could not find a better way to do it function image_html () { @@ -55,21 +77,21 @@ class PlcToggle { return $html; } - // don't define switch as it's a php keyword - function switch_html () { - $switch_id=$this->id_name('switch'); + function trigger () { print $this->trigger_html(); } + function trigger_html () { + $trigger_id=$this->id_name('trigger'); $tagname='span'; - if (array_key_exists ('switch-tagname',$this->options)) $tagname=$this->options['switch-tagname']; - if (array_key_exists ('switch-bubble',$this->options)) $bubble=$this->options['switch-bubble']; + if (array_key_exists ('trigger-tagname',$this->options)) $tagname=$this->options['trigger-tagname']; + if (array_key_exists ('trigger-bubble',$this->options)) $bubble=$this->options['trigger-bubble']; $html="<$tagname"; - $html .= " id=$switch_id"; - $html .= " class=plc-toggle-switch"; + $html .= " id=$trigger_id"; + $html .= " class=plc-toggle-trigger"; if ($bubble) $html .= " title='$bubble'"; $html .= " onclick=\"plc_toggle('$this->id')\""; $html .= ">"; $html .= $this->image_html(); - $html .= $this->switch; + $html .= $this->trigger; $html .= ""; return $html; } @@ -91,6 +113,22 @@ class PlcToggle { return ""; } + /* if desired, you can embed the whole (trigger+area) in another div for visual effects */ + function container_start () { print $this->container_start_html(); } + function container_start_html () { + $html="

id_name('container'); + $html .= " id='$id'"; + $html .= ">"; + return $html; + } + + function container_end () { print $this->container_end_html(); } + function container_end_html () { return "
"; } + + // build id names + function id_name ($zonename) { return "toggle-$zonename-$this->id"; } + } ?> diff --git a/planetlab/nodes/node.php b/planetlab/nodes/node.php index 24ea554..7129187 100644 --- a/planetlab/nodes/node.php +++ b/planetlab/nodes/node.php @@ -218,7 +218,8 @@ $form=new PlcForm (l_actions(), array('node_id'=>$node_id)); $form->start(); //////////////////////////////////////////////////////////// Tags -// get tags +// tags section +$show_tags = (plc_is_admin()); if ( $local_peer ) { $tags=$api->GetNodeTags (array('node_id'=>$node_id)); @@ -226,11 +227,10 @@ if ( $local_peer ) { $tagnames = array_map ("get_tagname",$tags); $nodegroups_hash=plc_nodegroup_global_hash($api,$tagnames); - $toggle = new PlcToggle ('tags',"Tags",array('switch-tagname'=>'h2', - 'switch-bubble'=>'Inspect and set tags on that node', - 'start-hidden'=>true)); - print $toggle->switch_html(); - $toggle->area_start(); + $toggle = new PlcToggle ('tags',"Tags",array('trigger-tagname'=>'h2', + 'trigger-bubble'=>'Inspect and set tags on that node', + 'start-visible'=>$show_tags)); + $toggle->start(); $headers=array("Name"=>"string", "Value"=>"string", @@ -280,18 +280,15 @@ if ( $local_peer ) { } $table->end(); - $toggle->area_end(); - } + $toggle->end(); +} //////////////////////////////////////////////////////////// interfaces if ( $local_peer ) { - - $toggle=new PlcToggle ('interfaces',"Interfaces",array('switch-tagname'=>'h2', - 'switch-bubble'=>'Inspect and tune interfaces on that node', + $toggle=new PlcToggle ('interfaces',"Interfaces",array('trigger-tagname'=>'h2', + 'trigger-bubble'=>'Inspect and tune interfaces on that node', 'start-hidden'=>true)); - - print $toggle->switch_html(); - $toggle->area_start(); + $toggle->start(); // display interfaces if( ! $interfaces ) { echo '

'; @@ -354,44 +351,44 @@ if ( $local_peer ) { } $table->end(); } - $toggle->area_end(); + $toggle->end(); } //////////////////////////////////////////////////////////// slices // display slices -$toggle=new PlcToggle ('slices',"Slices",array('switch-tagname'=>'h2', - 'switch-bubble'=>'Review slices running on that node', - 'start-hidden'=>true)); -print $toggle->switch_html(); - -$toggle->area_start(); -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(); +{ + $toggle=new PlcToggle ('slices',"Slices",array('trigger-tagname'=>'h2', + 'trigger-bubble'=>'Review slices running on that node', + 'start-hidden'=>true)); + $toggle->start(); + 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(); + 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(); } - $table->end(); - } -$toggle->area_end(); + $toggle->end(); +} $form->end(); -- 2.43.0