From: Mike S. <ms...@us...> - 2008-04-18 00:08:15
|
Update of /cvsroot/wonder/Wonder/Ajax/Ajax/WebServerResources In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv4418/WebServerResources Modified Files: wonder.js Log Message: Moved most Javascript from AjaxDraggable and AjaxDroppable to wonder.js, added onBeforeDrop binding to AjaxDroppable, and added option to make an AjaxDroppable perform a form submit on drop (submit = true) Index: wonder.js =================================================================== RCS file: /cvsroot/wonder/Wonder/Ajax/Ajax/WebServerResources/wonder.js,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** wonder.js 18 Mar 2008 10:19:55 -0000 1.41 --- wonder.js 18 Apr 2008 00:08:09 -0000 1.42 *************** *** 25,29 **** }, ! pressingAltKey : function(event) { if (document.all) { return window.event.altKey; --- 25,29 ---- }, ! pressingAltKey: function(event) { if (document.all) { return window.event.altKey; *************** *** 40,44 **** }, ! pressingShiftKey : function(event) { if (document.all) { return window.event.shiftKey; --- 40,44 ---- }, ! pressingShiftKey: function(event) { if (document.all) { return window.event.shiftKey; *************** *** 55,59 **** }, ! pressingControlKey : function(event) { if (document.all) { return window.event.ctrlKey; --- 55,59 ---- }, ! pressingControlKey: function(event) { if (document.all) { return window.event.ctrlKey; *************** *** 70,74 **** }, ! pressingMetaKey : function(event) { if (document.all) { return window.event.metaKey; --- 70,74 ---- }, ! pressingMetaKey: function(event) { if (document.all) { return window.event.metaKey; *************** *** 129,145 **** var AjaxInPlace = { ! saveFunctionName : function(id) { return "window." + id + "Save"; }, ! cancelFunctionName : function(id) { return "window." + id + "Cancel"; }, ! editFunctionName : function(id) { return "window." + id + "Edit"; }, ! cleanupEdit : function(id) { var saveFunctionName = this.saveFunctionName(id); var cancelFunctionName = this.cancelFunctionName(id); --- 129,145 ---- var AjaxInPlace = { ! saveFunctionName: function(id) { return "window." + id + "Save"; }, ! cancelFunctionName: function(id) { return "window." + id + "Cancel"; }, ! editFunctionName: function(id) { return "window." + id + "Edit"; }, ! cleanupEdit: function(id) { var saveFunctionName = this.saveFunctionName(id); var cancelFunctionName = this.cancelFunctionName(id); *************** *** 148,152 **** }, ! cleanupView : function(id) { var editFunctionName = this.editFunctionName(id); if (typeof eval(editFunctionName) != 'undefined') { eval(editFunctionName + " = null"); } --- 148,152 ---- }, ! cleanupView: function(id) { var editFunctionName = this.editFunctionName(id); if (typeof eval(editFunctionName) != 'undefined') { eval(editFunctionName + " = null"); } *************** *** 164,168 **** var AjaxUpdateContainer = { ! insertionFunc : function(effectPairName, beforeDuration, afterDuration) { var insertionFunction; --- 164,187 ---- var AjaxUpdateContainer = { ! registerPeriodic: function(id, canStop, stopped, options) { ! var url = $(id).getAttribute('updateUrl'); ! var updater; ! if (!canStop) { ! updater = new Ajax.PeriodicalUpdater(id, url, options); ! } ! else if (stopped) { ! var newOptions = Object.extend({}, options); ! newOptions.stopped = true; ! updater = new Ajax.StoppedPeriodicalUpdater(id, url, options); ! } ! else { ! updater = new Ajax.ActivePeriodicalUpdater(id, url, options); ! } ! ! eval(id + "PeriodicalUpdater = updater;"); ! eval(id + "Stop = function() { " + id + "PeriodicalUpdater.stop() };"); ! }, ! ! insertionFunc: function(effectPairName, beforeDuration, afterDuration) { var insertionFunction; *************** *** 211,215 **** }, ! register : function(id, options) { if (!options) { options = {}; --- 230,234 ---- }, ! register: function(id, options) { if (!options) { options = {}; *************** *** 218,222 **** }, ! update : function(id, options) { var actionUrl = $(id).getAttribute('updateUrl'); actionUrl = actionUrl.addQueryParameters('__updateID='+ id); --- 237,241 ---- }, ! update: function(id, options) { var actionUrl = $(id).getAttribute('updateUrl'); actionUrl = actionUrl.addQueryParameters('__updateID='+ id); *************** *** 227,231 **** var AjaxUpdateLink = { ! updateFunc : function(id, options, elementID) { var updateFunction = function(queryParams) { AjaxUpdateLink.update(id, options, elementID, queryParams); --- 246,250 ---- var AjaxUpdateLink = { ! updateFunc: function(id, options, elementID) { var updateFunction = function(queryParams) { AjaxUpdateLink.update(id, options, elementID, queryParams); *************** *** 234,242 **** }, ! update : function(id, options, elementID, queryParams) { var actionUrl = $(id).getAttribute('updateUrl').sub('[^/]+$', elementID); actionUrl = actionUrl.addQueryParameters(queryParams); actionUrl = actionUrl.addQueryParameters('__updateID='+ id); new Ajax.Updater(id, actionUrl, AjaxOptions.defaultOptions(options)); } }; --- 253,267 ---- }, ! update: function(id, options, elementID, queryParams) { var actionUrl = $(id).getAttribute('updateUrl').sub('[^/]+$', elementID); actionUrl = actionUrl.addQueryParameters(queryParams); actionUrl = actionUrl.addQueryParameters('__updateID='+ id); new Ajax.Updater(id, actionUrl, AjaxOptions.defaultOptions(options)); + }, + + request: function(actionUrl, options, elementID, queryParams) { + var actionUrl = actionUrl.sub('[^/]+$', elementID); + actionUrl = actionUrl.addQueryParameters(queryParams); + new Ajax.Request(actionUrl, AjaxOptions.defaultOptions(options)); } }; *************** *** 257,261 **** var actionUrl = form.action; if (queryParams != null) { ! actionUrl.addQueryParameters(queryParams); } actionUrl = actionUrl.sub('/wo/', '/ajax/', 1); --- 282,286 ---- var actionUrl = form.action; if (queryParams != null) { ! actionUrl = actionUrl.addQueryParameters(queryParams); } actionUrl = actionUrl.sub('/wo/', '/ajax/', 1); *************** *** 366,376 **** var ASB = AjaxSubmitButton; var AjaxPeriodicUpdater = Class.create(); AjaxPeriodicUpdater.prototype = { ! initialize : function(id) { this.id = id; }, ! start : function() { var actionUrl = $(this.id).getAttribute('updateUrl'); actionUrl = actionUrl.addQueryParameters('__updateID='+ id); --- 391,490 ---- var ASB = AjaxSubmitButton; + var AjaxDraggable = { + register: function(draggableContainerID, options) { + var draggableContainerName = 'draggable_' + draggableContainerID; + var draggableContainerType = eval("typeof " + draggableContainerName); + if (draggableContainerType != 'undefined') { + eval(draggableContainerName).destroy(); + } + var draggableContainer = new Draggable(draggableContainerID, options); + eval(draggableContainerName + "=draggableContainer"); + } + }; + var ADG = AjaxDraggable; + + var AjaxDroppable = Class.create({ + contextID: null, + elementID: null, + droppableElementID: null, + draggableKeyName: null, + updateContainerID: null, + actionUrl: null, + submit: null, + form: null, + onbeforedrop: null, + ondrop: null, + options: null, + + initialize: function(contextID, elementID, droppableElementID, draggableKeyName, updateContainerID, actionUrl, form, onbeforedrop, ondrop, options) { + this.contextID = contextID; + this.elementID = elementID; + this.droppableElementID = droppableElementID; + this.draggableKeyName = draggableKeyName; + this.updateContainerID = updateContainerID; + this.actionUrl = actionUrl; + this.form = form; + this.onbeforedrop = onbeforedrop; + this.ondrop = ondrop; + this.options = options; + }, + + dropped: function(element, droppableElement) { + if (droppableElement.id == this.droppableElementID) { + if (this.onbeforedrop) { + this.onbeforedrop(element, droppableElement); + } + + var data = this.draggableKeyName + '=' + element.getAttribute('draggableID'); + + if (this.updateContainerID == null) { + if (this.form) { + ASB.request(this.form, data, this.options); + } + else { + AUL.request(this.actionUrl, this.options, this.contextID + '.' + this.elementID, data); + } + } + else { + if (this.form) { + ASB.update(this.updateContainerID, this.form, data, this.options); + } + else { + AUL.update(this.updateContainerID, this.options, this.contextID + '.' + this.elementID, data); + } + } + + if (this.ondrop) { + this.ondrop(element, droppableElement); + } + } + } + }); + Object.extend(AjaxDroppable, { + register: function(droppableContainerID, options) { + var droppableContainerName = 'droppable_' + droppableContainerID; + var droppableContainerType = eval("typeof " + droppableContainerName); + if (droppableContainerType != 'undefined') { + Droppables.remove(eval(droppableContainerName)); + } + var droppableContainer = $(droppableContainerID); + eval(droppableContainerName + '=droppableContainer'); + Droppables.add(droppableContainer, options); + }, + + droppedFunc: function(contextID, elementID, droppableElementID, draggableKeyName, updateContainerID, actionUrl, form, onbeforedrop, ondrop, options) { + var adp = new AjaxDroppable(contextID, elementID, droppableElementID, draggableKeyName, updateContainerID, actionUrl, form, onbeforedrop, ondrop, options); + return adp.dropped.bind(adp); + } + }); + var ADP = AjaxDroppable; + var AjaxPeriodicUpdater = Class.create(); AjaxPeriodicUpdater.prototype = { ! initialize: function(id) { this.id = id; }, ! start: function() { var actionUrl = $(this.id).getAttribute('updateUrl'); actionUrl = actionUrl.addQueryParameters('__updateID='+ id); *************** *** 378,382 **** }, ! stop : function() { if (this.updater) { this.updater.stop(); --- 492,496 ---- }, ! stop: function() { if (this.updater) { this.updater.stop(); *************** *** 385,388 **** --- 499,503 ---- } }; + Ajax.ActivePeriodicalUpdater = Class.create(Ajax.Base, { initialize: function($super, container, url, options) { |