[Checkins] SVN: z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/ make
chat demo use special @@ajax view.
Paul Carduner
paulcarduner at gmail.com
Thu Jul 19 00:11:33 EDT 2007
Log message for revision 78136:
make chat demo use special @@ajax view.
Changed:
U z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/browser.py
U z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/chat.js
U z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/configure.zcml
-=-
Modified: z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/browser.py
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/browser.py 2007-07-19 03:31:08 UTC (rev 78135)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/browser.py 2007-07-19 04:11:33 UTC (rev 78136)
@@ -26,7 +26,7 @@
from z3c.form import form, button, field
from z3c.form.interfaces import IWidgets
from z3c.formui import layout
-from z3c.formjs import jsaction, jsevent
+from z3c.formjs import jsaction, jsevent, ajax
from z3c.formjsdemo.chat import chat, interfaces
@@ -78,7 +78,9 @@
message = zope.schema.TextLine(title=u"Message")
nick = zope.schema.TextLine(title=u"Nick")
-class ChatForm(layout.FormLayoutSupport, form.Form):
+class ChatForm(layout.FormLayoutSupport,
+ ajax.AJAXRequestHandler,
+ form.Form):
buttons = button.Buttons(IButtons)
fields = field.Fields(IFields)
@@ -88,7 +90,7 @@
def handleConnect(self, event, selecter):
nickId = self.widgets['nick'].id
messageId = self.widgets['message'].id
- return '''$.get("joinChatRoom", {nick: $("#%s").val()}, function(data){
+ return '''$.get("@@index.html/@@ajax/joinChat", {nick: $("#%s").val()}, function(data){
$("#%s").attr("disabled", "true");
$("#connect").addClass("translucent");
$("#online").removeClass("translucent");
@@ -97,7 +99,7 @@
''' % (nickId, nickId, messageId)
def _send(self, messageId):
- return '''$.get("addMessage", {message: $("#%s").val()},
+ return '''$.get("@@index.html/@@ajax/addMessage", {message: $("#%s").val()},
function(data){
$("#%s").val("");
}
@@ -119,37 +121,27 @@
self.widgets.ignoreContext = True
self.widgets.update()
-
-def renderMessage(nick, message):
- return '<div class="message"><span class="nick">%s:</span>%s</div>' % (
- nick, message)
-
-
-class AddMessageView(object):
-
- nick = SessionProperty('nick')
-
- def __call__(self):
- message = self.request.get('message')
- if message is not None:
- self.context.addMessage(self.nick, message)
- return renderMessage(self.nick, message)
-
-
-class GetMessagesView(object):
-
- def __call__(self):
+ @ajax.handler
+ def getMessages(self):
index = int(self.request.get('index'))
result = ""
for nick, message in self.context.messages[index:]:
- result += renderMessage(nick, message)
+ result += self._renderMessage(nick, message)
return result
+ @ajax.handler
+ def addMessage(self):
+ message = self.request.get('message')
+ if message is not None:
+ self.context.addMessage(self.nick, message)
+ return self._renderMessage(self.nick, message)
-class JoinChatRoomView(object):
+ @ajax.handler
+ def joinChat(self):
+ self.nick = self.request.get('nick', 'anonymous')
+ return "Connected as %s" % self.nick
- nick = SessionProperty('nick')
- def __call__(self):
- self.nick = self.request.get('nick')
- return "Connected as %s" % self.nick
+ def _renderMessage(self, nick, message):
+ return '<div class="message"><span class="nick">%s:</span>%s</div>' % (
+ nick, message)
Modified: z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/chat.js
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/chat.js 2007-07-19 03:31:08 UTC (rev 78135)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/chat.js 2007-07-19 04:11:33 UTC (rev 78136)
@@ -1,6 +1,6 @@
function mainLoop() {
var num = $("div.message").length;
- $.get("getMessages", {index: $("div.message").length},
+ $.get("@@index.html/@@ajax/getMessages", {index: $("div.message").length},
function(data) {
$("#chat-window").append(data);
$("#chat-window").get(0).scrollTop = $("#chat-window").get(0).scrollHeight;
Modified: z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/configure.zcml
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/configure.zcml 2007-07-19 03:31:08 UTC (rev 78135)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/chat/configure.zcml 2007-07-19 04:11:33 UTC (rev 78136)
@@ -36,30 +36,6 @@
layer="z3c.formjsdemo.layer.IDemoBrowserLayer"
/>
- <z3c:pagelet
- name="addMessage"
- for=".interfaces.IChatRoom"
- class=".browser.AddMessageView"
- layer="z3c.formjsdemo.layer.IDemoBrowserLayer"
- permission="zope.Public"
- />
-
- <z3c:pagelet
- name="getMessages"
- for=".interfaces.IChatRoom"
- class=".browser.GetMessagesView"
- layer="z3c.formjsdemo.layer.IDemoBrowserLayer"
- permission="zope.Public"
- />
-
- <z3c:pagelet
- name="joinChatRoom"
- for=".interfaces.IChatRoom"
- class=".browser.JoinChatRoomView"
- layer="z3c.formjsdemo.layer.IDemoBrowserLayer"
- permission="zope.Public"
- />
-
<zrt-resource
name="chat.css"
file="chat.css"
More information about the Checkins
mailing list