# HG changeset patch # User Sverre Rabbelier # Date 1236477848 0 # Node ID c9ecc74496325cb5857e56a3e5684f2b0b442542 # Parent d5f9261d87c7bf92b552b6384c1f1540310515a2 Add a slot allocation script and template Patch by: Sverre Rabbelier, "Mario Ferraro" Reviewed by: Sverre Rabbelier diff -r d5f9261d87c7 -r c9ecc7449632 app/soc/content/js/slot-allocator.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/soc/content/js/slot-allocator.js Sun Mar 08 02:04:08 2009 +0000 @@ -0,0 +1,85 @@ +var current_allocated_slots = 0; +var current_slots = {}; +var tooltip = [ + "
", + "
", + "", + "

Slots

", + "

", + "

", + "

", + "
", + "
", + ].join(''); + +$.postJSON = function (post_url, to_json, callback) { + $.ajax({ + url: post_url, + type: 'POST', + processData: true, + data: {result: JSON.stringify(to_json)}, + contentType: 'application/json', + success: callback, + }); +}; + +function updateFromJSON(data) { + if (data) { + $(data.data).each( + function (intIndex,item) { + $("#id_spin_slot_count_"+item.link_id).val(item.slots); + current_slots[item.link_id] = {slots: item.slots, locked: item.locked, adjustment: item.adjustment}; + $("#id_locked_slot_"+item.link_id).attr("checked",item.locked); + $("#id_spin_adjustment_count_"+item.link_id).val(item.adjustment); + } + ); + updateOverlay(); + } +} + +function retrieveJSON() { + $.getJSON("http://localhost:8080/program/slots/google/gsoc2009?_="+(new Date().getTime()), + updateFromJSON + ); +} + +function reCalculate() { + url = "http://localhost:8080/program/slots/google/gsoc2009?_="+(new Date().getTime()) +   $.postJSON(url, current_slots, updateFromJSON); +} + +function updateOverlay() { + updateCurrentSlots(); + var remaining_slots = MAX_AVAILABLE_SLOTS - current_allocated_slots; + $("#p_assigned_slots").html("Assigned slots: "+current_allocated_slots); + $("#p_remaining_slots").html("Remaining slots: "+remaining_slots); +} + +function updateCurrentSlots() { + current_allocated_slots = 0; + for (var org_id in current_slots) { + current_allocated_slots = current_allocated_slots+new Number(current_slots[org_id].slots); + } +} + +function lockSlots (checkbox) { + var locked = $(checkbox).attr("checked"); + var re = /^id_locked_slot_(\w*)/; + var org_link_id = checkbox.id.match(re)[1]; + current_slots[org_link_id].locked = locked; +} + +function assignSlots (counter) { + var re = /^id_spin_slot_count_(\w*)/; + var org_link_id = counter.id.match(re)[1]; + current_slots[org_link_id].slots = $(counter).val(); + updateCurrentSlots(); + updateOverlay(); +} + +function assignAdjustment (counter) { + var re = /^id_spin_adjustment_count_(\w*)/; + var org_link_id = counter.id.match(re)[1]; + current_slots[org_link_id].adjustment = $(counter).val(); +} + diff -r d5f9261d87c7 -r c9ecc7449632 app/soc/templates/soc/program/allocation/allocation.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/soc/templates/soc/program/allocation/allocation.html Sun Mar 08 02:04:08 2009 +0000 @@ -0,0 +1,23 @@ +{% extends "soc/models/list.html" %} + +{% block scripts %} +{{ block.super }} + + +{% endblock %} + +{% block body %} + + + +{{ block.super }} +{% endblock %}