Author: jmorliaguet Date: Sun Mar 19 21:21:34 2006 New Revision: 2670 Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/functional/panels/cpsskins_panels.pt cpsskins/branches/jmo-perspectives/ui/panels/settings.pt Log:
- renamed LocationController as RemoteScriptingController - some refactoring Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js (original) +++ cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js Sun Mar 19 21:21:34 2006 @@ -469,8 +469,8 @@ return new CPSSkins.FormController(node, def); }, - 'location': function(node, def) { - return new CPSSkins.LocationController(node, def); + 'remote scripting': function(node, def) { + return new CPSSkins.RemoteScriptingController(node, def); }, 'focus observer': function(node, def) { @@ -584,8 +584,8 @@ }); -CPSSkins.LocationController = Class.create(); -CPSSkins.LocationController.prototype = Object.extend( +CPSSkins.RemoteScriptingController = Class.create(); +CPSSkins.RemoteScriptingController.prototype = Object.extend( new CPSSkins.Controller(), { setup: function() { @@ -604,12 +604,38 @@ var target = Event.element(e); if (target.tagName.toLowerCase() == 'a') { + var _request = this._request; this.views.entries().each(function(v) { var view = CPSSkins.getViewById(v); - view.request(target.href); + _request(view, target.href); }); + Event.stop(e); } + }, + + _request: function(view, url) { + var options = { + onComplete: function(req) { + var disp = req.getResponseHeader('content-disposition'); + if (disp && disp.match(/^attachment/)) { + window.location = url; + } + var content_type = req.getResponseHeader('content-type'); + if (content_type.match(/^text\/x-json/)) { + var data = JSON.parse(req.responseText); + view.model.writeData(data); + } + view.refresh(); + } + }; + var parts = url.split('?'); + var method = url; + if (parts.length == 2) { + method = parts[0]; + options.parameters = parts[1]; + } + new Ajax.Request(method, options); } }); @@ -1686,10 +1712,6 @@ /* to override: tear down the widget after hiding it */ }, - request: function(url) { - /* to override: request an url */ - }, - /* Private API */ getControllers: function() { return this.def.controllers || [] @@ -1930,31 +1952,6 @@ return '[CPSSkins Panel]'; }, - request: function(url) { - var view = this; - var options = { - onComplete: function(req) { - var disp = req.getResponseHeader('content-disposition'); - if (disp && disp.match(/^attachment/)) { - window.location = url; - } - var content_type = req.getResponseHeader('content-type'); - if (content_type.match(/^text\/x-json/)) { - var data = JSON.parse(req.responseText); - view.model.writeData(data); - } - view.refresh(); - } - }; - var parts = url.split('?'); - var method = url; - if (parts.length == 2) { - method = parts[0]; - options.parameters = parts[1]; - } - new Ajax.Request(method, options); - }, - render: function(data) { var url = data.url; if (!url) { Modified: cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/functional/panels/cpsskins_panels.pt ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/functional/panels/cpsskins_panels.pt (original) +++ cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/functional/panels/cpsskins_panels.pt Sun Mar 19 21:21:34 2006 @@ -28,7 +28,7 @@ </head> <body> - <h1>CPSSkins Panels / IFrames</h1> + <h1>CPSSkins Panels / Remote scripting</h1> <p>The panel shown below has a form controller attached to it. When the user clicks on the "click me!" button a remote call is done to the server which @@ -37,8 +37,8 @@ <p>This makes it possible to perform a form submission with a redirection inside a given area of a page without reloading the entire page. </p> - <p>There is also a "Location controller" which make it possible - to "follow" the links, or get data from the server without reloading the page. + <p>There is also a "Remote Scripting Controller" which converts HTML links + into ajax request to do remote server scripting without reloading the page. </p> <ins class="model"> @@ -72,7 +72,7 @@ {"id": "panel-view", "model": "panel", "perspectives": ["default"], - "controllers": ["show-panel", "form", "location1"], + "controllers": ["show-panel", "form", "request1"], "widget": { "type": "panel" }, @@ -88,7 +88,7 @@ {"id": "panel-view-2", "model": "panel2", "perspectives": ["default"], - "controllers": ["show-panel", "form2", "location2"], + "controllers": ["show-panel", "form2", "request2"], "widget": { "type": "panel" }, @@ -111,14 +111,14 @@ } </ins> <ins class="controller"> - {"id": "location1", - "type": "location" + {"id": "request1", + "type": "remote scripting" } </ins> <ins class="controller"> - {"id": "location2", - "type": "location" + {"id": "request2", + "type": "remote scripting" } </ins> Modified: cpsskins/branches/jmo-perspectives/ui/panels/settings.pt ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/panels/settings.pt (original) +++ cpsskins/branches/jmo-perspectives/ui/panels/settings.pt Sun Mar 19 21:21:34 2006 @@ -29,13 +29,13 @@ }, "model": "settings-section", "perspectives": ["settings"], - "controllers": ["site-designer-perspectives", "settings-location"] + "controllers": ["site-designer-perspectives", "settings-actions"] } </ins> <ins class="controller"> - {"id": "settings-location", - "type": "location" + {"id": "settings-actions", + "type": "remote scripting" }} </ins> -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins