+/* Thierry Parmentelat -- INRIA */
+
/* need to put some place else in CSS ? */
// space for the nodenames
// the names of the hidden fields that hold the input to this class
// are hard-wired for now
this.parse_html = function () {
- window.console.log('in parse_html');
var table = $$("table#leases_data")[0];
// no reservable nodes - no data
- if ( ! table) {
- window.console.log('no table');
- return false;
- }
+ if ( ! table) return false;
+
// the nodelabels
var data = [], axisx = [], axisy = [];
table.getElementsBySelector("tbody>tr>th").each(function (cell) {
});
// test for at least one entry; other wise this means we haven't retrieved
// the html dta yet
- if (axisy.length <1) {
- window.console.log('no axisy');
- window.console.log('have retrieved html text as'+getInnerText(table));
- return false;
- }
+ if (axisy.length <1) return false;
// the timeslot labels
table.getElementsBySelector("thead>tr>th").each(function (cell) {
});
this.axisx=axisx;
- window.console.log('in parse_html, set axisx to'+axisx.length);
this.axisy=axisy;
this.data=data;
return true;
////////////////////
// draw
this.draw_area = function (canvas_id) {
- window.console.log('in draw_area');
this.total_width = x_nodelabel + this.nb_grains()*this.leases_w;
this.total_height = 2*y_header /* the timelabels */
+ 2*y_sep /* extra space */
this.timebutton_path="M1,0L"+(this.leases_w-1)+",0L"+(this.leases_w/2)+","+y_header+"L1,0";
var axisx=this.axisx;
- window.console.log('in draw_area, retrieved axisx' + axisx.length);
var axisy=this.axisy;
// maintain the list of nodelabels for the 'all nodes' button
if (lease.current=='mine') {
var j=i+1;
while (j<len && lease_methods.compare (lease, until_time, this.leases[j])) {
-// window.console.log('merging index='+i+' initial='+this.leases[i].initial+' current='+this.leases[i].current);
+// window.console.log('merging index='+i+' initial='+lease.initial+' current='+lease.current);
// window.console.log('merged index='+j+' initial='+this.leases[j].initial+' current='+this.leases[j].current);
until_time=this.leases[j].until_time;
++j; ++i;
// re-read settings from the html, ajax-aquire the html text for the leases_data table
// store it in the html tree, parse it, and refresh graphic
this.refresh = function () {
- window.console.log('in refresh');
this.slice_id=getInnerText($$("span#leases_slice_id")[0]).strip();
this.slicename=getInnerText($$("span#leases_slicename")[0]).strip();
this.leases_granularity=getInnerText($$("span#leases_granularity")[0]).strip();
- this.leases_offset=getInnerText($$("span#leases_offset")[0]).strip();
- this.leases_slots=getInnerText($$("span#leases_slots")[0]).strip();
- this.leases_w=parseInt(getInnerText($$("span#leases_w")[0]).strip());
+ this.leases_offset=$("leases_offset_input").value.strip();
+ this.leases_slots=$("leases_slots_input").value.strip();
+ this.leases_w=parseInt($("leases_w_input").value.strip());
document.body.style.cursor = "wait";
var ajax=new Ajax.Request('/planetlab/slices/leases-data.php',
'leases_w':this.leases_w},
onSuccess: function (transport) {
var response = transport.responseText || "no response text";
- window.console.log("received from ajax=[["+response+"]]");
+// window.console.log("received from ajax=[["+response+"]]");
var scheduler=Scheduler.scheduler;
if ( ! scheduler.set_html (response))
alert ("Something wrong .. Could not store ajax result..");
// Grab the data
var scheduler = new Scheduler ();
// parse the table with data, and if not empty, draw the scheduler
- window.console.log('in init_scheduler');
scheduler.refresh();
// attach behaviour to buttons
- var refresh=$$("button#leases_refresh")[0];
- if (refresh) refresh.onclick = function () { scheduler.refresh();}
- var submit=$$("button#leases_submit")[0];
- submit.onclick = function () { scheduler.submit(); }
+ $("leases_submit").onclick = function () { scheduler.submit(); }
+ $("leases_refresh").onclick = function () { scheduler.refresh();}
}
$show_reservable_message = '1';
$show_columns_message = '1';
-
-//$PersonTags=$api->GetPersonTags (array('person_id'=>$plc->person['person_id']));
$PersonTags=$api->GetPersonTags (array('person_id'=>$plc->person['person_id']));
-//print_r($PersonTags);
+//plc_debug('ptags',$PersonTags);
foreach ($PersonTags as $ptag) {
- if ($ptag['tagname'] == 'columnconf')
- {
- $column_configuration = $ptag['value'];
- $conf_tag_id = $ptag['person_tag_id'];
- }
- if ($ptag['tagname'] == 'showconf')
- {
- $show_configuration = $ptag['value'];
- $show_tag_id = $ptag['person_tag_id'];
- }
+ if ($ptag['tagname'] == 'columnconf') {
+ $column_configuration = $ptag['value'];
+ $conf_tag_id = $ptag['person_tag_id'];
+ } else if ($ptag['tagname'] == 'showconf') {
+ $show_configuration = $ptag['value'];
+ $show_tag_id = $ptag['person_tag_id'];
+ }
}
-//print("<br>person column configuration = ".$column_configuration);
-//print("<br>person show configuration = ".$show_configuration);
-
$sliceconf_exists = false;
-if ($column_configuration == "")
-{
- $first_time_configuration = true;
- $column_configuration = $slice_id.";default";
- $sliceconf_exists = true;
-}
-else {
- $slice_conf = explode(";",$column_configuration);
- for ($i=0; $i<count($slice_conf); $i++ ) {
- if ($slice_conf[$i] == $slice_id)
- {
- $i++;
- $slice_column_configuration = $slice_conf[$i];
- $sliceconf_exists = true;
- break;
- }
- else
- {
- $i++;
- $slice_column_configuration = $slice_conf[$i];
- }
- }
+if ($column_configuration == "") {
+ $first_time_configuration = true;
+ $column_configuration = $slice_id.";default";
+ $sliceconf_exists = true;
+} else {
+ $slice_conf = explode(";",$column_configuration);
+ for ($i=0; $i<count($slice_conf); $i++ ) {
+ if ($slice_conf[$i] == $slice_id) {
+ $i++;
+ $slice_column_configuration = $slice_conf[$i];
+ $sliceconf_exists = true;
+ break;
+ } else {
+ $i++;
+ $slice_column_configuration = $slice_conf[$i];
+ }
+ }
}
if ($sliceconf_exists == false)
- $column_configuration = $column_configuration.";".$slice_id.";default";
-
-//print("<br>slice configuration = ".$slice_column_configuration);
-
+ $column_configuration = $column_configuration.";".$slice_id.";default";
if ($slice_column_configuration == "")
- $full_configuration = $default_configuration;
+ $full_configuration = $default_configuration;
else
- $full_configuration = $default_configuration."|".$slice_column_configuration;
+ $full_configuration = $default_configuration."|".$slice_column_configuration;
//instantiate the column configuration class, which prepares the headers array
$visiblecolumns = $ConfigureColumns->node_tags();
$node_columns=array_merge($node_fixed_columns,$visiblecolumns);
-//print_r($node_columns);
$all_nodes=$api->GetNodes(NULL,$node_columns);
$ConfigureColumns->fetch_live_data($all_nodes);
-//print("<br>person show configuration = ".$show_configuration);
-
$show_conf = explode(";",$show_configuration);
foreach ($show_conf as $ss) {
- if ($ss =="reservable")
- $show_reservable_message = '0';
- if ($ss =="columns")
- $show_columns_message = '0';
+ if ($ss =="reservable")
+ $show_reservable_message = '0';
+ else if ($ss =="columns")
+ $show_columns_message = '0';
}
-//print("res:".$show_reservable_message." - cols:".$show_columns_message);
-
$slice_nodes=array();
$potential_nodes=array();
$reservable_nodes=array();
// having reservable nodes in white lists looks a bit off scope for now...
$toggle_nodes=new PlekitToggle('my-slice-nodes-reserve',
"Leases - " . count($reservable_nodes) . " reservable node(s)",
- array('visible'=>$show_reservable_message, 'info_div'=>'note_reservable_div'));
+ array('visible'=>get_arg('show_nodes_resa',false), 'info_div'=>'note_reservable_div'));
$toggle_nodes->start();
if ($show_reservable_message)
-$note_display = "";
+ $note_display = "";
else
-$note_display = "display:none;";
+ $note_display = "display:none;";
////////// show a notice to people having attached a reservable node
if (count($reservable_nodes) && $privileges) {
if ( ! $leases_offset ) $leases_offset=0;
// how many timeslots to show
$leases_slots=$_GET['leases_slots'];
- if ( ! $leases_slots ) $leases_slots = 36;
+ if ( ! $leases_slots ) $leases_slots = 48;
// offset in hours (in the future) from now
$leases_w = $_GET['leases_w'];
- if ( ! $leases_w) $leases_w=20;
+ if ( ! $leases_w) $leases_w=14;
// number of timeslots to display
$granularity=$api->GetLeaseGranularity();
echo "<span class='hidden' id='leases_slicename'>" . $slice['name'] . "</span>";
echo "<span class='hidden' id='leases_slice_id'>" . $slice['slice_id']. "</span>";
echo "<span class='hidden' id='leases_granularity'>" . $granularity . "</span>";
- echo "<span class='hidden' id='leases_offset'>" . $leases_offset . "</span>";
- echo "<span class='hidden' id='leases_slots'>" . $leases_slots . "</span>";
- echo "<span class='hidden' id='leases_w'>" . $leases_w . "</span>";
+ // ditto, and editable - very rough for now
+ echo "<div class='center' id='leases_settings'>";
+ echo "<label id='leases_offset_label' class='leases_label'>start, in hours from now</label>";
+ echo "<input type='text' class='leases_input' id='leases_offset_input' value='$leases_offset' />";
+ echo "<label id='leases_slots_label' class='leases_label'># of timeslots</label>";
+ echo "<input type='text' class='leases_input' id='leases_slots_input' value='$leases_slots' />";
+ echo "<label id='leases_w_label' class='leases_label'>slot width, in pixels</label>";
+ echo "<input type='text' class='leases_input' id='leases_w_input' value='$leases_w' />";
+ echo "</div>";
// leases_data is the name used by leases.js to locate this place
// first population will be triggered by init_scheduler from leases.js
//////////////////// node configuration panel
-
if ($first_time_configuration)
$column_conf_visible = '1';
else
//print ("showing column message = ".$show_columns_message);
if ($show_columns_message == '0')
-$note_display = "display:none;";
+ $note_display = "display:none;";
else
-$note_display = "";
+ $note_display = "";
print <<<EOF
<div id='note_columns_div' style="align:center; background-color:#CAE8EA; padding:4px; width:800px; $note_display">