Author: jmorliaguet Date: Sun Jan 29 23:53:52 2006 New Revision: 2243 Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/browser.py cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/cpsskins_storage_adapters.pt Log:
- implemented a remote data setter 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 Jan 29 23:53:52 2006 @@ -683,21 +683,30 @@ new CPSSkins.StorageAdapter(), { requestData: function() { - var url = this.model.def.storage.accessors.get; var model = this.model; - options = { + var url = model.def.storage.accessors.get; + new Ajax.Request(url, { onComplete: function(req) { var data = JSON.parse(req.responseText); model.def.data = data; model.notifyObservers(data); } - } - new Ajax.Request(url, options); + }); }, storeData: function(data) { - var url = this.model.def.storage.accessors.set; - /* TODO */ + var model = this.model; + var url = model.def.storage.accessors.set; + new Ajax.Request(url, { + method: "post", + parameters: $H({ + "data": JSON.stringify(data) + }).toQueryString(), + onComplete: function(req) { + model.def.data = data; + model.notifyObservers(data); + } + }); } }); Modified: cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/browser.py ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/browser.py (original) +++ cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/browser.py Sun Jan 29 23:53:52 2006 @@ -1,13 +1,29 @@ +import time + from zope.app.publisher.browser import BrowserView +from zope.app.session.interfaces import ISession from cpsskins import minjson as json class Accessors(BrowserView): + def __init__(self, context, request): + self.context = context + self.request = request + self.session = ISession(self.request)['cpsskins'] + def getData1(self): - return json.write({'content': 'Enter some text'}) + # sleep one second to simulate a delay + time.sleep(1.5) + + # get the data from the session + data = self.session.get('data1', {u'content': u'Enter some text'}) + return json.write(data) def setData1(self, data): - # TODO - pass + # sleep one second to simulate a delay + time.sleep(2) + + # store the data in the session + self.session['data1'] = json.read(data) Modified: cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/cpsskins_storage_adapters.pt ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/cpsskins_storage_adapters.pt (original) +++ cpsskins/branches/jmo-perspectives/ui/framework/tests/zope3/cpsskins_storage_adapters.pt Sun Jan 29 23:53:52 2006 @@ -16,9 +16,23 @@ width: 180px; border: 1px solid gray; background-color: #efc; + font: 1.3em arial; } + input { + margin-bottom: 1em; + border-width: 1px; + border-style: solid; + border-color: #333 #ccc #ccc #333; + width: 175px; + } + + div.content { + border: 1px solid #999; + background-color: #ffc; + padding: 1em; } + </style> <script type="text/javascript"> @@ -57,6 +71,7 @@ var content = Canvas.createNode({ tag: "div", + classes: "content" }); content.appendChild(document.createTextNode(data.content)); @@ -103,7 +118,7 @@ <ins class="model"> {"id": "data-provider", "data": { - "content": "..." + "content": "Loading data ..." }, "storage": { "type": "remote", -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins