- var data = [], axisx = [], axisy = [];
- var table = $$("table#leases_data")[0];
- // no reservable nodes - no data
- if ( ! table) return;
- // upper-left cell : sliceid & slicename & x_grain
- var slice_attributes = getInnerText(table.getElementsBySelector("thead>tr>td")[0]).split('&');
- var sliceid=slice_attributes[0];
- var slicename=slice_attributes[1];
- var x_grain=slice_attributes[2];
- // the nodelabels
- table.getElementsBySelector("tbody>tr>th").each(function (cell) {
- axisy.push(getInnerText(cell));
- });
- // the timeslot labels
- table.getElementsBySelector("thead>tr>th").each(function (cell) {
- /* [0]: timestamp -- [1]: displayable*/
- axisx.push(getInnerText(cell).split("&"));
- });
- // leases - expect colspan to describe length in grains
- // the text contents is expected to be lease_id & slicename
- table.getElementsBySelector("tbody>tr>td").each(function (cell) {
- var cell_data;
- slice_attributes=getInnerText(cell).split('&');
- // booked leases come with lease id and slice name
- if (slice_attributes.length == 2) {
- // leases is booked : slice_id, slice_name, duration in grains
- cell_data=new Array (slice_attributes[0], slice_attributes[1], cell.colSpan);
- } else {
- cell_data = new Array ('','',cell.colSpan);
- }
- data.push(cell_data);
- });
- var scheduler = new Scheduler (sliceid,slicename, x_grain, axisx, axisy, data);
- table.hide();
- // leases_area is a <div> created by slice.php as a placeholder
- scheduler.init ("leases_area");
-
- var submit=$$("button#leases_submit")[0];
- submit.onclick = function () { scheduler.submit(); }
- var clear=$$("button#leases_clear")[0];
- clear.onclick = function () { scheduler.clear(); }
+ var scheduler = new Scheduler ();
+ // parse the table with data, and if not empty, draw the scheduler
+ scheduler.refresh();
+
+ // attach behaviour to buttons
+ $("leases_submit").onclick = function () { scheduler.submit(); }
+ $("leases_refresh").onclick = function () { scheduler.refresh();}