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

Reply via email to