Author: jmorliaguet Date: Sun Mar 19 19:07:50 2006 New Revision: 2667 Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js cpsskins/branches/jmo-perspectives/ui/screens/sitedesigner/views.py Log:
- added a View.requests(url) method to avoid having to handle redirections. panel.request(url) requests a url but the panel's url is unchanged unless the response explicitly overrides the 'url' variable. 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 19:07:50 2006 @@ -606,7 +606,7 @@ this.views.entries().each(function(v) { var view = CPSSkins.getViewById(v); - view.model.setData({'url': target.href}); + view.request(target.href); }) Event.stop(e); @@ -1684,6 +1684,10 @@ /* 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 || [] @@ -1924,6 +1928,26 @@ 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; + } + 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) { @@ -1945,20 +1969,11 @@ if (url) { var widget = this.widget; var model = this.model; + var view = this; var options = { - onComplete: function(req) { - var disp = req.getResponseHeader('content-disposition'); - if (disp && disp.match(/^attachment/)) { - window.location = url; - } else { - widget.innerHTML = req.responseText; - CPSSkins._parse(widget); - view.attachControllers(); - } - var location = req.getResponseHeader('Location'); - if (location) { - model.setData({'url': location}) - } + onComplete: function() { + CPSSkins._parse(widget); + view.attachControllers(); } }; @@ -1968,7 +1983,7 @@ method = parts[0]; options.parameters = parts[1]; } - new Ajax.Request(method, options); + new Ajax.Updater(widget, method, options); } }, Modified: cpsskins/branches/jmo-perspectives/ui/screens/sitedesigner/views.py ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/screens/sitedesigner/views.py (original) +++ cpsskins/branches/jmo-perspectives/ui/screens/sitedesigner/views.py Sun Mar 19 19:07:50 2006 @@ -59,7 +59,6 @@ resources = getUtility(IResourceManager) resources.customize(name=name, context=self.context) - self.request.response.redirect('@@settings-section.html') def decustomizeSetting(self, name=u''): if not name: @@ -67,7 +66,6 @@ resources = getUtility(IResourceManager) resources.decustomize(name=name, context=self.context) - self.request.response.redirect('@@settings-section.html') def removeSetting(self, name=u''): if not name: @@ -75,7 +73,6 @@ resources = getUtility(IResourceManager) resources.unregister(name=name, context=self.context) - self.request.response.redirect('@@settings-section.html') def exportSetting(self, name=u''): """Export the setting as an XML file. @@ -96,14 +93,12 @@ response.setHeader('content-type', 'text/xml') response.setHeader('Content-disposition', 'attachment; filename=%s' % setting_filename) - response.setHeader('Location', '@@settings-section.html') # export the resource exporter = getMultiAdapter((resource, request), IDataExporter) # remove the xml header used in the resource resource_xml = exporter().replace('<?xml version="1.0"?>', '') - return setting_xml % { 'name': name, 'title': setting.title, @@ -114,4 +109,3 @@ """Reload the setting from the file-system """ reloadSetting(name) - self.request.response.redirect('@@settings-section.html') -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins