diff --git a/plemp.rb b/plemp.rb index 6ea328f..1deac51 100644 --- a/plemp.rb +++ b/plemp.rb @@ -126,7 +126,7 @@ module Plemp::Views :type => "text/javascript" end script :type => "text/javascript" do - "BaseUrl = \"#{URL()}\";\nsetup_pu()"; + "init_plemp();" end end body do diff --git a/public/dragreg.js b/public/dragreg.js index f9edecc..83fc88b 100644 --- a/public/dragreg.js +++ b/public/dragreg.js @@ -1,3 +1,9 @@ +// Main function to initialise plemp +function init_plemp(base_url) { + setup_pu(); + document.onkeyup=key_handler; +} + // Creates a Draggable for each div with the given ID. function setup_draggable(id) { drag = new Draggable(id, { scroll: window }); @@ -20,21 +26,34 @@ DragRegObserver.prototype = { onEnd: function (eventName, draggable, event) { if (Draggables.activeDraggable.element == this.element) { elem = draggable.element; - new Ajax.Request(BaseUrl + 'savepos/' + elem.id + + new Ajax.Request(document.baseURI + 'savepos/' + elem.id + '/' + elem.style.top + '/' + elem.style.left); } } } -//// Helper functions +// Global function to handle key presses. +function key_handler(e) { + var key_code = e.keyCode; -function show_add_dialog() { - $('text').clear(); - $('add_dialog').appear({duration: 0.5}); + switch(key_code) { + case 27: + hide_add_dialog(); + break; + } } +//// Helper functions + +// Shows the upload/add dialog. +function show_add_dialog() { + $('text').clear(); + $('add_dialog').appear({duration: 0.25}); +} + +// Hides and clears the upload/add dialog. function hide_add_dialog() { - $('add_dialog').fade({duration: 0.5}); + $('add_dialog').fade({duration: 0.25}); $('add_form').reset(); } @@ -61,7 +80,7 @@ function move_draggable_if_needed(id, left, top) { var pu = null; function setup_pu() { if (!pu) { - pu = new Ajax.PeriodicalUpdater('', BaseUrl + "current/", { + pu = new Ajax.PeriodicalUpdater('', document.baseURI + "current/", { method: 'get', frequency: 5, evalJSON: 'force',