margin: 30px;
}
-/* internal toggles */
+/* toggles for the nodes sections */
div#toggle-container-my-slice-persons-current,
div#toggle-container-my-slice-nodes-current {
background: #f0f0f0;
background: #f0e0e0;
}
-/* the container for the scheduler area */
+/* the scheduler area */
div#toggle-container-my-slice-nodes-reserve {
background: #def;
}
+/* where the graphics go */
div#leases_area {
- padding: 25px;
+ padding: 10px 25px;
}
-/* don't display the scheduler data table */
+/* don't display the scheduler data table - not quite sure this works */
table#leases_data {
display: none;
}
+
+/* the various controls for the scheduler */
+/* upper section, with selection mode */
+#leases_modes { padding: 10px; text-align: center; color: #333; }
+
+#leases_buttons { padding: 10px; }
+#leases_clear { position: relative; left: 30%;}
+#leases_submit { position: relative; left: 60%; }
+
}
}
}
+
+ /* initialize mode buttons */
+ this.init_mode = function (default_mode, node_button, timeslot_button) {
+ this.node_button=node_button;
+ this.timeslot_button=timeslot_button;
+ var scheduler=this;
+ /* xxx set callbacks on buttons */
+ node_button.onclick = function () { scheduler.set_mode('node'); }
+ timeslot_button.onclick = function () { scheduler.set_mode('timeslot'); }
+ this.set_mode(default_mode);
+ }
+
+ /* expecting mode to be either 'node' or 'timeslot' */
+ this.set_mode = function (mode) {
+ this.mode=mode;
+ var active_button = (mode=='node') ? this.node_button : this.timeslot_button;
+ active_button.checked='checked';
+ }
} // Scheduler
// find out all the currently free leases that overlap this one
click_free: function (event) {
var scheduler = this.scheduler;
- for (var i=0, len=scheduler.leases.length; i<len; ++i) {
- scan=scheduler.leases[i];
- // overlap ?
- if (scan.from_time<=this.from_time && scan.until_time>=this.until_time) {
- if (scan.current == "free") lease_methods.init_mine(scan,lease_methods.click_free);
- // the other ones just remain as they are
+ if (scheduler.mode=='node') {
+ lease_methods.init_mine(this,lease_methods.click_free);
+ } else {
+ for (var i=0, len=scheduler.leases.length; i<len; ++i) {
+ scan=scheduler.leases[i];
+ // overlap ?
+ if (scan.from_time<=this.from_time && scan.until_time>=this.until_time)
+ if (scan.current == "free") lease_methods.init_mine(scan,lease_methods.click_free);
}
}
},
},
click_mine: function (event) {
+ var scheduler = this.scheduler;
// this lease was originally free but is now marked for booking
// we free just this lease
- if (this.initial=="free")
- lease_methods.init_free(this, lease_methods.click_mine);
- // this lease if ours, same for now
- else
+ if (scheduler.mode=='node') {
lease_methods.init_free(this, lease_methods.click_mine);
+ } else {
+ for (var i=0, len=scheduler.leases.length; i<len; ++i) {
+ scan=scheduler.leases[i];
+ // overlap ?
+ if (scan.from_time<=this.from_time && scan.until_time>=this.until_time) {
+ if (scan.current == "mine") lease_methods.init_free(scan,lease_methods.click_mine);
+ }
+ // the other ones just remain as they are
+ }
+ }
},
var clear=$$("button#leases_clear")[0];
clear.onclick = function () { scheduler.clear(); }
+ var node_button=$$("input#leases_mode_node")[0];
+ var timeslot_button=$$("input#leases_mode_timeslot")[0];
+ scheduler.init_mode ('timeslot',node_button,timeslot_button);
+
}
Event.observe(window, 'load', init_scheduler);
}
echo "</tr>";
}
-
echo "</tbody></table>\n";
- echo "<div id='leases_area'></div>";
- echo "<div id='leases_control'>";
- echo "<button id='leases_submit' type='button'>Submit</button>";
- echo "<button id='leases_clear' type='button'>Clear</button>";
- echo "</div>";
-
+
+ // the general layout for the scheduler
+ echo <<< EOF
+<div id='leases_modes'><form>
+ <span id='leases_selection_mode'> Selection mode:
+ <input id='leases_mode_node' type='radio' name='mode' value="node" />Node
+ <input id='leases_mode_timeslot' type='radio' name='mode' value="timeslot" checked />Timeslot
+ </span>
+</form></div>
+
+<div id='leases_area'></div>
+
+<div id='leases_buttons'>
+ <button id='leases_clear' type='submit'>Clear</button>
+ <button id='leases_submit' type='submit'>Submit</button>
+</div>
+EOF;
+
$toggle_nodes->end();
}
$toggle->end();