X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetlab%2Fincludes%2Fplc_functions.php;h=d40de74ab558556ecb4fd7c94aa3aedc3f2eb152;hb=9d5da0d9968a075070eb8c5b75d8267d082bec31;hp=3e69f23fddbd1a6023d379ba9011b7809687eff8;hpb=ab7d755720166fb4ce7acaf629463dc7f0a00ffe;p=plewww.git diff --git a/planetlab/includes/plc_functions.php b/planetlab/includes/plc_functions.php index 3e69f23..d40de74 100644 --- a/planetlab/includes/plc_functions.php +++ b/planetlab/includes/plc_functions.php @@ -1,6 +1,7 @@ $numb) { - $text = substr($text, 0, $numb); - $text = $text.$etc; - } - return $text; + if (strlen($text) <= $numb) return $text; + return substr($text, 0, $numb).$etc; } +// ditto but in case the text is too lare, returns a with its 'title' set to the full value +function truncate_and_popup ($text,$numb,$etc = "...") { + if (strlen($text) <= $numb) return $text; + $display=substr($text, 0, $numb).$etc; + return sprintf("%s",$text,$display); +} + // generates <(atom) class=(class)> (text) function html_atom ($atom,$text,$class="") { $html="<$atom"; @@ -401,11 +427,45 @@ function bold_html ($text) { return html_span($text,'bold'); } // shows a php variable verbatim with a heading message function plc_debug ($message,$object) { - print "
" . $message . "
";
+  print "
" . $message . "
";
   print_r ($object);
   print "
"; } +function plc_debug_txt ($message,$txt) { + print "
" . $message . "
";
+  $txt=str_replace(" ","<SPC>",$txt);
+  $txt=str_replace("\t","<TAB>",$txt);
+  $txt=str_replace("\n","<LF>",$txt);
+  $txt=str_replace("\r","<CR>",$txt);
+  print $txt . "<EOF>";
+  print "
"; +} + +$plc_prof_start=0.; +$plc_prof_time=0.; +$plc_prof_counter=0; +function plc_debug_prof_start () { + global $plc_prof_counter, $plc_prof_start, $plc_prof_time; + $plc_prof_counter=0; + plc_debug(strftime("[0] %T (start)") ,"heating up"); + $plc_prof_time=microtime(true); + $plc_prof_start=$plc_prof_time; +} +function plc_debug_prof ($message,$object) { + global $plc_prof_counter, $plc_prof_start, $plc_prof_time; + $plc_prof_counter+=1; + $now=microtime(true); + $timelabel=strftime("%T"); + $prof_message=sprintf("[%d] %s (%2.3f s -- %2.3f s) ",$plc_prof_counter,$timelabel, + ($now-$plc_prof_time),($now-$plc_prof_start)); + plc_debug($prof_message.$message,$object); + $plc_prof_time=$now; +} +function plc_debug_prof_end () { + plc_debug_prof ("end","cooling down"); +} + if (! function_exists ("drupal_set_error")) { function drupal_set_error ($text) { drupal_set_message ("$text"); @@ -450,6 +510,27 @@ function plc_redirect ($url) { exit (); } +//////////////////// the options for an nodetype - suitable for plekit/form +global $builtin_node_types; +$builtin_node_types = array ( "regular" => "Regular/Shared", + "reservable" => "Reservable (requires to get leases)"); +function node_type_display ($api, $node_type) { + global $builtin_node_types; + $val=$builtin_node_types[$node_type]; + if ( ! $val) $val="??undefined??"; + return $val; +} + +function node_type_selectors ($api,$node_type) { + global $builtin_node_types; + foreach ($builtin_node_types as $value=>$display) { + $selector=array('display'=>$display, 'value'=>$value); + if ($value == $node_type) $selector['selected']=true; + $selectors []= $selector; + } + return $selectors; +} + //////////////////// the options for an interface - suitable for plekit/form //>>> GetNetworkMethods() //[u'static', u'dhcp', u'proxy', u'tap', u'ipmi', u'unknown'] @@ -513,4 +594,10 @@ function count_english_warning ($objs, $name) { if (count ($objs) == 0) $x=plc_warning_html($x . ' !!'); return $x; } + +//////////////////// outlining reservable nodes +function reservable_mark () { return "-R-";} +function reservable_legend () { return "reservable nodes are marked with " . reservable_mark (); } + + ?>