|
/
Zope
/
gocept svn checkins
/
Archive
/
2008
/
2008-12
/
Re: [gocept svn checkins] SVN: r7240 - in gocept.webmail/trunk/gocept/webmail/browser/resources: . yui/build/datasource
[
SVN: r7234 - in gocept.mochikit/trunk: . ... ]
[
SVN: r7292 - in gocept.infrastructure/testing: . ... ]
Re: [gocept svn checkins] SVN: r7240 - in gocept.webmail/trunk/gocept/webmail/browser/resources: . yui/build/datasource
Thomas Lotze <tl(at)gocept.com> |
2008-12-10 11:59:40 |
[ FULL ]
|
Sebastian Wehrmann <sw(at)gocept.com> schrieb:
[...]
Schreib mal bitte mit dran, wenn das einen Bug erschlägt, und umgekehrt
die Revisionsnummer an den Bug, wenn Du ihn als "fixed" markierst.
Viele Grüße,
Thomas
[...]
|
|
|
SVN: r7246 - in gocept.restmail/trunk/gocept/restmail: . browser testmessages
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-10 15:27:41 |
[ FULL ]
|
Author: sweh
Date: Wed Dec 10 15:27:40 2008
New Revision: 7246
Log:
fix restmail tests (still more to do)
Added:
gocept.restmail/trunk/gocept/restmail/testmessages/24-ascii-with-dos-cr
gocept.restmail/trunk/gocept/restmail/testmessages/25-ascii-quoting
gocept.restmail/trunk/gocept/restmail/testmessages/26-ascii-quoting-whitespaces
Modified:
gocept.restmail/trunk/gocept/restmail/browser/README.txt
gocept.restmail/trunk/gocept/restmail/render.txt
Modified: gocept.restmail/trunk/gocept/restmail/browser/README.txt
==============================================================================
--- gocept.restmail/trunk/gocept/restmail/browser/README.txt (original)
+++ gocept.restmail/trunk/gocept/restmail/browser/README.txt Wed Dec 10
15:27:40 2008
(at)(at) -137,14 +137,16 (at)(at)
>>> pprint.pprint(json_request('http://localhost/profile/ben-example.com/(at)(at)folders'))
[{'children': 0,
'name': 'Bar',
+ 'type': 'inbox',
'url': 'http://localhost/profile/ben-example.com/+Bar'},
{'children': 1,
'name': 'INBOX',
+ 'type': 'inbox',
'url': 'http://localhost/profile/ben-example.com/+INBOX'},
{'children': 0,
'name': 'Testmessages',
- 'url':
- 'http://localhost/profile/ben-example.com/+Testmessages'}]
+ 'type': 'inbox',
+ 'url': 'http://localhost/profile/ben-example.com/+Testmessages'}]
The ``(at)(at)folders`` view can be applied on folders as well:
(at)(at) -152,6 +154,7 (at)(at)
>>> pprint.pprint(json_request('http://localhost/profile/ben-example.com/+INBOX/(at)(at)folders'))
[{'children': 0,
'name': 'Baz',
+ 'type': 'inbox',
'url': 'http://localhost/profile/ben-example.com/+INBOX/+Baz'}]
(at)(at) -408,7 +411,7 (at)(at)
{'url': 'http://localhost/profile/drafts/<GUID>'}
>>> pprint.pprint(json_request(reply['url']+'/(at)(at)data'))
{'account': 'http://localhost/profile/ben-example.com',
- 'body':
'<html>\n<head></head>\n<body>\n<blockquote><pre>Everything
is ok!\n</pre></blockquote>\n</body>\n</html>\n',
+ 'body':
'<html>\n<head></head>\n<body>\n<p>test(at)localhost
wrote:</p>\n\n <br />\n <blockquote><pre>Everything
is ok!\n</pre></blockquote>\n\n</body>\n</html>\n',
'date': '<ISO DATE>',
'subject': 'Re: Mail 1',
'to': 'test(at)localhost'}
(at)(at) -424,6 +427,9 (at)(at)
<html>
<head></head>
<body>
+<p>test(at)localhost wrote:</p>
+<BLANKLINE>
+<br />
<blockquote><pre>Everything is ok!
</pre></blockquote>
</body>
Modified: gocept.restmail/trunk/gocept/restmail/render.txt
==============================================================================
--- gocept.restmail/trunk/gocept/restmail/render.txt (original)
+++ gocept.restmail/trunk/gocept/restmail/render.txt Wed Dec 10 15:27:40 2008
(at)(at) -4,140 +4,114 (at)(at)
XXX: test (non-)multi-part handling
+Rendering a plain text message
+==============================
-Encoding
---------
+Plain text is rendered as HTML, wrapping the original text in a pre element
+[#loadmessages]_[#getmessages]_[#createprofile]_:
+
+>>> print gocept.restmail.interfaces.IRendered(messages[0]).body.body
+<pre>I'm a message with no funny characters.
+</pre>
+
+DOS-style line endings are handled correctly:
+
+>>> print
gocept.restmail.interfaces.IRendered(messages[24]).body.body
+<pre>This is a plain-text message.
+It has two lines.
+</pre>
-We have a number of messages in a mail folder named testmessages:
+Plain-text quoting is interpreted:
->>> print get_html_text(messages[0])
-<html>
-...I'm a message with no funny characters.
+>>> print
gocept.restmail.interfaces.IRendered(messages[22]).body.body
+<pre>Thomas Lotze <tl(at)gocept.com> schrieb:
+</pre>
+<blockquote><pre>Hi.
+</pre></blockquote>
+<pre>
+Ho.
+</pre>
...
+This also works with several levels of quoting and a quoted first line:
+
+>>> print
gocept.restmail.interfaces.IRendered(messages[25]).body.body
+<blockquote><pre>Somebody wrote:
+</pre><blockquote><pre>This is a plain-text message.
+</pre></blockquote></blockquote>
+<pre>
+</pre>
+<blockquote><pre>Right.
+</pre><blockquote><pre>Oh, and there can be whitespace
+between the > and >.
+</pre><blockquote><pre>Or several levels quoted differently.
+</pre></blockquote></blockquote></blockquote>
+
+While whitespace on unquoted lines is exactly preserved, one space immediately
+after the last quote character is removed if present:
+
+>>> print
gocept.restmail.interfaces.IRendered(messages[26]).body.body
+<pre> four leading spaces
+</pre>
+<blockquote><pre>no leading space after quote
+one leading space after quote
+ two leading spaces after quote
+</pre></blockquote>
+
+Encoding
+--------
+
Correctly specified encoding works:
->>> print get_html_text(messages[1])
-<html>
-...I'm a message with some funny characters:
+>>> print gocept.restmail.interfaces.IRendered(messages[1]).body.body
+<pre>I'm a message with some funny characters:
- umlauts äöü
- some japanese spam:
メールのやり取
- a little cyrillic:
Русский
-...
+</pre>
But unspecified encoding defaults to UTF-8, in this case getting it right:
->>> print get_html_text(messages[2])
-<html>
-...I'm a message with some funny characters:
+>>> print gocept.restmail.interfaces.IRendered(messages[2]).body.body
+<pre>I'm a message with some funny characters:
- umlauts äöü
- some japanese spam:
メールのやり取
- a little cyrillic:
Русский
-...
+</pre>
Broken encoding will result in characters being replaced:
->>> print get_html_text(messages[3])
-<html>
-...I'm a message with some funny characters:
+>>> print gocept.restmail.interfaces.IRendered(messages[3]).body.body
+<pre>I'm a message with some funny characters:
- umlauts äö�
- some japanese spam:
メールのやり取
- a little cyrillic:
Русский
-...
-
-
-Rendering a plain text message
-------------------------------
-
-Plain text is rendered as HTML, wrapping the original text in a pre element:
-
->>> from gocept.restmail.draft import quote_text
->>> print quote_text(u"""\
-... This is a plain-text message.
-... """)
-<html>
-<head></head>
-<body>
-<blockquote><pre>This is a plain-text message.
-</pre></blockquote>
-</body>
-</html>
-
-DOS-style line endings are handled correctly:
+</pre>
->>> print quote_text(u"""\
-... This is a plain-text message.\r\n\
-... It has two lines.
-... """)
-<html>
-<head></head>
-<body>
-<blockquote><pre>This is a plain-text message.
-It has two lines.
-</pre></blockquote>
-</body>
-</html>
-Plain-text quoting is interpreted:
->>> print quote_text(u"""\
-... Somebody wrote:
-... > This is a plain-text message.
-...
-... Right.
-... """)
-<html>
-<head></head>
-<body>
-<blockquote><pre>Somebody wrote:
-</pre><blockquote><pre>This is a plain-text message.
-</pre></blockquote><pre>
-Right.
-</pre></blockquote>
-</body>
-</html>
-
-This also works with several levels of quoting and a quoted first line:
-
->>> print quote_text(u"""\
-... >Somebody wrote:
-... >> This is a plain-text message.
-...
-... > Right.
-... > > Oh, and there can be whitespace
-... >> between the > and >.
-... > >> Or several levels quoted differently.
-... """)
-<html>
-<head></head>
-<body>
-<blockquote><blockquote><pre>Somebody wrote:
-</pre><blockquote><pre>This is a plain-text message.
-</pre></blockquote></blockquote><pre>
-</pre><blockquote><pre>Right.
-</pre><blockquote><pre>Oh, and there can be whitespace
-between the > and >.
-</pre><blockquote><pre>Or several levels quoted differently.
-</pre></blockquote></blockquote></blockquote></blockquote>
-</body>
-</html>
-
-While whitespace on unquoted lines is exactly preserved, one space immediately
-after the last quote character is removed if present:
-
->>> print quote_text(u"""\
-... four leading spaces
-... >no leading space after quote
-... > one leading space after quote
-... > two leading spaces after quote
-... """)
-<html>
-<head></head>
-<body>
-<blockquote><pre> four leading spaces
-</pre><blockquote><pre>no leading space after quote
-one leading space after quote
- two leading spaces after quote
-</pre></blockquote></blockquote>
-</body>
-</html>
+.. [#loadmessages]
+ >>> import imaplib
+ >>> import gocept.imapapi.tests
+ >>> import gocept.restmail
+ >>> server = imaplib.IMAP4('localhost', 10143)
+ >>> server.login('test', 'bsdf')
+ ('OK', ['Logged in.'])
+ >>> gocept.imapapi.tests.load_messages(
+ ... gocept.restmail, 'testmessages',
+ ... server, 'testmessages')
+
+.. [#getmessages]
+ >>> from gocept.restmail.imapaccount import IMAPAccount
+ >>> account = IMAPAccount('account', 'localhost', 10143, 'test',
'bsdf')
+ >>> account = account.__of__(app)
+ >>> folder = account.folders('testmessages')[0]
+ >>> messages = folder.messages()
+
+.. [#createprofile]
+ >>> from OFS.ObjectManager import ObjectManager
+ >>> from gocept.restmail.profile import Profile
+ >>> container = ObjectManager()
+ >>> container = container.__of__(app)
+ >>> _ = container._setObject('asdf', Profile('asdf'))
+ >>> profile = container['asdf']
Added: gocept.restmail/trunk/gocept/restmail/testmessages/24-ascii-with-dos-cr
==============================================================================
--- (empty file)
+++ gocept.restmail/trunk/gocept/restmail/testmessages/24-ascii-with-dos-cr Wed
Dec 10 15:27:40 2008
(at)(at) -0,0 +1,6 (at)(at)
+From: me(at)example.org
+To: you(at)example.org
+Subject: something simple
+
+This is a plain-text message.
+It has two lines.
Added: gocept.restmail/trunk/gocept/restmail/testmessages/25-ascii-quoting
==============================================================================
--- (empty file)
+++ gocept.restmail/trunk/gocept/restmail/testmessages/25-ascii-quoting Wed Dec
10 15:27:40 2008
(at)(at) -0,0 +1,11 (at)(at)
+From: me(at)example.org
+To: you(at)example.org
+Subject: multi-level quoting
+
+>Somebody wrote:
+>> This is a plain-text message.
+
+> Right.
+> > Oh, and there can be whitespace
+ >> between the > and >.
+> >> Or several levels quoted differently.
Added:
gocept.restmail/trunk/gocept/restmail/testmessages/26-ascii-quoting-whitespaces
==============================================================================
--- (empty file)
+++
gocept.restmail/trunk/gocept/restmail/testmessages/26-ascii-quoting-whitespaces Wed
Dec 10 15:27:40 2008
(at)(at) -0,0 +1,8 (at)(at)
+From: me(at)example.org
+To: you(at)example.org
+Subject: multi-level quoting with whitespaces
+
+ four leading spaces
+>no leading space after quote
+> one leading space after quote
+> two leading spaces after quote
|
SVN: r7254 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-11 11:17:46 |
[ FULL ]
|
Author: sweh
Date: Thu Dec 11 11:17:45 2008
New Revision: 7254
Log:
reload draft message list (if actually displayed) when saving drafts and
composing new messages
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js
==============================================================================
---
gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js Thu Dec
11 11:17:45 2008
(at)(at) -184,6 +184,7 (at)(at)
var body = draft['body'];
composer.getControl('Body').value = body;
composer.editor.setEditorHTML(body);
+ composer.reload_draft_folder();
});
},
(at)(at) -199,10 +200,19 (at)(at)
return data
},
+ reload_draft_folder: function() {
+ parent_app = window.opener.document.App;
+ if (parent_app.tree.selected_node.list_type == 'drafts') {
+ parent_app.message_list.reload();
+ }
+ },
+
save_draft: function(ev) {
var composer = this;
- document.Connection.post(composer.draft_url+'/(at)(at)save',
composer._prepare_data());
- // XXX Update drafts view if it is opened in the main window.
+ document.Connection.post(composer.draft_url+'/(at)(at)save',
+ composer._prepare_data(),
+ composer.reload_draft_folder()
+ );
},
send_message: function(ev) {
|
SVN: r7255 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-11 11:19:22 |
[ FULL ]
|
Author: sweh
Date: Thu Dec 11 11:19:21 2008
New Revision: 7255
Log:
disable deletion of drafts because it is not implemented yet
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/resources/message.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/message.js Thu Dec 11
11:19:21 2008
(at)(at) -156,7 +156,7 (at)(at)
config.columns = columns;
config.canEdit = true;
config.canReply = false;
- config.canDelete = true;
+ config.canDelete = false; //XXX: needs to be implemented
return config;
};
});
|
SVN: r7256 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-11 11:51:14 |
[ FULL ]
|
Author: sweh
Date: Thu Dec 11 11:51:13 2008
New Revision: 7256
Log:
fox timimg problems with draft message list reload when saving drafts
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js
==============================================================================
---
gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js Thu Dec
11 11:51:13 2008
(at)(at) -203,7 +203,14 (at)(at)
reload_draft_folder: function() {
parent_app = window.opener.document.App;
if (parent_app.tree.selected_node.list_type == 'drafts') {
- parent_app.message_list.reload();
+ window.setTimeout(function() {
+ // YAHOO.util.Connect.asyncRequest does not wait for a
+ // response, so the callback is fired a moment before
+ // the submitted data is saved at the server.
+ // Set a timeout here to give the server its time to save
+ // the submitted data.
+ parent_app.message_list.reload();
+ }, 60);
}
},
|
SVN: r7258 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-11 12:49:07 |
[ FULL ]
|
Author: sweh
Date: Thu Dec 11 12:49:06 2008
New Revision: 7258
Log:
reenable deletion of drafts
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/resources/message.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/message.js Thu Dec 11
12:49:06 2008
(at)(at) -156,7 +156,7 (at)(at)
config.columns = columns;
config.canEdit = true;
config.canReply = false;
- config.canDelete = false; //XXX: needs to be implemented
+ config.canDelete = true;
return config;
};
});
|
SVN: r7259 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-11 13:42:31 |
[ FULL ]
|
Author: sweh
Date: Thu Dec 11 13:42:29 2008
New Revision: 7259
Log:
put composer buttons in menu bar (bug #4591)
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/composer-main.js
gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/composer-main.js
==============================================================================
---
gocept.webmail/trunk/gocept/webmail/browser/resources/composer-main.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/composer-main.js Thu
Dec 11 13:42:29 2008
(at)(at) -15,16 +15,49 (at)(at)
// Setup the static screen layouts
//
app.layout = new YAHOO.widget.Layout({
- units: [{ position: 'center',
- body: 'composer', gutter: '10'}]});
+ units: [
+ { position: 'top', height: 23,
+ body: '' },
+ { position: 'center',
+ body: 'composer'}]});
app.layout.on('render', function() {
app.units.composer = app.layout.getUnitByPosition(
'center').body;
app.composer = new YAHOO.gocept.webmailer.Composer(
draft_url, profile_url);
+ app.units.menu = app.layout.getUnitByPosition('top');
+ app.menu = new YAHOO.gocept.webmailer.ComposerMenu();
});
app.layout.render();
}
});
});
+
+Def(function() {
+
+ YAHOO.gocept.webmailer.ComposerMenu = Class({
+ constructor: function() {
+ var menu = this;
+ menu.menubar = new YAHOO.widget.MenuBar("composer-main-menu");
+ menu.menubar.render(document.App.units.menu.body);
+ menu.addMenuItem('Save', function () {
+ document.App.composer.save_draft();
+ });
+ menu.addMenuItem('Send', function () {
+ document.App.composer.send_message();
+ });
+ menu.menubar.show();
+ },
+
+ addMenuItem: function(label, callback) {
+ new_item = this.menubar.addItem({
+ text: label,
+ onclick: { fn: callback }
+ });
+ this.menubar.render(document.App.units.menu.body);
+ return new_item;
+ }
+
+ });
+});
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js
==============================================================================
---
gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js Thu Dec
11 13:42:29 2008
(at)(at) -46,7 +46,7 (at)(at)
// An HTML "template" for the composers tab content.
// XXX: Internet Explorer doesn't know about raw strings
// find a way to better implement the HTML "template"
- var composer_content = " <div id=\"composeBarWrap\"> <div
id=\"composeBar\"></div> <div id=\"composeAccount\"> <label
for=\"composeFrom\">From:</label> <select id=\"composeFrom\"
name=\"composeFrom\"> </select> </div> <div
id=\"composeAddr\"> <div> <label
for=\"composeTo\">To:</label> <input type=\"text\"
name=\"composeTo\" id=\"composeTo\"/> </div> <div> <label
for=\"composeSubject\">Subject:</label> <input type=\"text\"
name=\"composeSubject\" id=\"composeSubject\"/> </div> </div>
</div> <textarea id=\"composeBody\" name=\"composeBody\" cols=\"100\"
rows=\"20\"></textarea> <input type=\"button\" id=\"composeSave\"
name=\"composeSave\" value=\"Save\"/> <input type=\"button\"
id=\"composeSend\" name=\"composeSend\" value=\"Send\"/> ";
+ var composer_content = " <div id=\"composeBarWrap\"> <div
id=\"composeBar\"></div> <div id=\"composeAccount\"> <label
for=\"composeFrom\">From:</label> <select id=\"composeFrom\"
name=\"composeFrom\"> </select> </div> <div
id=\"composeAddr\"> <div> <label
for=\"composeTo\">To:</label> <input type=\"text\"
name=\"composeTo\" id=\"composeTo\"/> </div> <div> <label
for=\"composeSubject\">Subject:</label> <input type=\"text\"
name=\"composeSubject\" id=\"composeSubject\"/> </div> </div>
</div> <textarea id=\"composeBody\" name=\"composeBody\" cols=\"100\"
rows=\"20\"></textarea>";
var has_content = function(element) {
if (element.nodeType == element.TEXT_NODE) {
return element.nodeValue != "";
(at)(at) -88,13 +88,6 (at)(at)
composer.load_draft();
});
composer.editor.render();
-
- // Wire up the buttons and make sure the context correction makes
- // `this` the composer
- YAHOO.util.Event.addListener(
- composer.getControl('Save'), 'click', composer.save_draft,
composer, true);
- YAHOO.util.Event.addListener(
- composer.getControl('Send'), 'click', composer.send_message,
composer, true);
},
handleEditorKey: function(event) {
|
SVN: r7260 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-11 14:53:25 |
[ FULL ]
|
Author: sweh
Date: Thu Dec 11 14:53:24 2008
New Revision: 7260
Log:
autosave when writing a message (bug #4589)
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js
==============================================================================
---
gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/composer.js Thu Dec
11 14:53:24 2008
(at)(at) -82,6 +82,7 (at)(at)
composer.getControl('Body').id, {
css: '(at)import url(' + editor_style_url + ');'});
composer.editor._defaultToolbar.titlebar = false;
+ composer.editor.autosave_counter = 0;
composer.editor.on('editorKeyPress', composer.handleEditorKey,
composer, true);
composer.editor.on('editorContentLoaded', function() {
// Load content from server.
(at)(at) -98,6 +99,15 (at)(at)
YAHOO.util.Event.stopEvent(event.ev);
};
};
+ this.handleAutoSave();
+ },
+
+ handleAutoSave: function() {
+ this.editor.autosave_counter += 1;
+ if (this.editor.autosave_counter > 10) {
+ this.save_draft(true);
+ this.editor.autosave_counter = 0;
+ }
},
splitBlockQuote: function() {
(at)(at) -207,11 +217,13 (at)(at)
}
},
- save_draft: function(ev) {
+ save_draft: function(autosave) {
var composer = this;
- document.Connection.post(composer.draft_url+'/(at)(at)save',
- composer._prepare_data(),
- composer.reload_draft_folder()
+ document.Connection.post(
+ composer.draft_url+'/(at)(at)save', composer._prepare_data(),
+ function () {
+ if (!autosave) { composer.reload_draft_folder(); }
+ }
);
},
|
SVN: r7270 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-12 14:54:23 |
[ FULL ]
|
Author: sweh
Date: Fri Dec 12 14:54:22 2008
New Revision: 7270
Log:
reset the preview_pane before a new message is loaded (bug #4571)
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/resources/message.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/message.js Fri Dec 12
14:54:22 2008
(at)(at) -34,6 +34,7 (at)(at)
table.subscribe("rowSelectEvent", function(event) {
// XXX Reading the capabilities from the style of the list
// is relatively wrong.
+ document.App.preview_pane.reset();
message = new Object();
message.url = event.record.getData().url;
message.canReply = config.canReply;
|
SVN: r7271 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-12 15:52:57 |
[ FULL ]
|
Author: sweh
Date: Fri Dec 12 15:52:55 2008
New Revision: 7271
Log:
add possibility to view the raw content of a message (bug #4555)
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/resources/message.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/message.js Fri Dec 12
15:52:55 2008
(at)(at) -40,6 +40,7 (at)(at)
message.canReply = config.canReply;
message.canEdit = config.canEdit;
message.canDelete = config.canDelete;
+ message.canBeRaw = config.canBeRaw;
return document.App.preview_pane.load(message);
});
table.subscribe("cellMousedownEvent",table.onEventSelectRow);
(at)(at) -130,6 +131,7 (at)(at)
config.canEdit = false;
config.canReply = true;
config.canDelete = true;
+ config.canBeRaw = true;
return config;
};
});
(at)(at) -158,6 +160,7 (at)(at)
config.canEdit = true;
config.canReply = false;
config.canDelete = true;
+ config.canBeRaw = false;
return config;
};
});
(at)(at) -189,10 +192,14 (at)(at)
});
});
preview_pane.delete_button.cfg.setProperty('disabled', true);
+ preview_pane.raw_button = document.App.menu.addMenuItem('View
raw', function() {
+ document.App.preview_pane.load_raw(message);
+ });
+ preview_pane.raw_button.cfg.setProperty('disabled', true);
},
load: function(message) {
- var preview_pane = this;
+ var preview_pane = document.App.preview_pane;
preview_pane.message = message;
// Load the message content and display it
(at)(at) -201,7 +208,11 (at)(at)
document.App.units.preview_pane.body.innerHTML = (
message_parts['header'] +
message_parts['body'] +
- message_parts['footer'])
+ message_parts['footer']);
+ preview_pane.raw_button.cfg.setProperty('text', 'View raw');
+ document.App.preview_pane.raw_button.cfg.setProperty(
+ 'onclick', {fn: function() {
document.App.preview_pane.load_raw(message); }}
+ );
});
// Activate menu entries depending on the message's capabilities
(at)(at) -214,6 +225,21 (at)(at)
if (message.canDelete) {
preview_pane.delete_button.cfg.setProperty('disabled', false);
};
+ if (message.canBeRaw) {
+ preview_pane.raw_button.cfg.setProperty('disabled', false);
+ };
+ },
+
+ load_raw: function(message) {
+ var preview_pane = document.App.preview_pane;
+ document.Connection.get(message.url+'/(at)(at)raw',
function(result) {
+ var result = YAHOO.lang.JSON.parse(result.responseText);
+ document.App.units.preview_pane.body.innerHTML =
result['raw'];
+ preview_pane.raw_button.cfg.setProperty('text', 'View
normal');
+ document.App.preview_pane.raw_button.cfg.setProperty(
+ 'onclick', {fn: function() {
document.App.preview_pane.load(message); }}
+ );
+ });
},
reset: function() {
(at)(at) -225,6 +251,7 (at)(at)
preview_pane.reply_button.cfg.setProperty('disabled', true);
preview_pane.edit_button.cfg.setProperty('disabled', true);
preview_pane.delete_button.cfg.setProperty('disabled', true);
+ preview_pane.raw_button.cfg.setProperty('disabled', true);
}
});
|
SVN: r7286 - in gocept.webmail/trunk/gocept/webmail/browser/resources: . styles
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-15 16:12:17 |
[ FULL ]
|
Author: sweh
Date: Mon Dec 15 16:12:15 2008
New Revision: 7286
Log:
format rows of message lists according to their flags
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
gocept.webmail/trunk/gocept/webmail/browser/resources/styles/webmail.css
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/resources/message.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/message.js Mon Dec 15
16:12:15 2008
(at)(at) -14,6 +14,29 (at)(at)
},
+ rowFormatter: function(elTr, oRecord) {
+ var flags = oRecord.getData('flags');
+ var seen = false;
+ for (i=0; i<flags.length; i++) {
+ if (flags[i] == '\\Seen') {
+ seen = true;
+ }
+ else if (flags[i] == '\\Recent') {
+ YAHOO.util.Dom.addClass(elTr, 'recent');
+ }
+ else if (flags[i] == '\\Answered') {
+ YAHOO.util.Dom.addClass(elTr, 'answered');
+ }
+ else if (flags[i] == '\\Flagged') {
+ YAHOO.util.Dom.addClass(elTr, 'flagged');
+ }
+ }
+ if (!seen) {
+ YAHOO.util.Dom.addClass(elTr, 'unseen');
+ }
+ return true;
+ },
+
load: function(url, list_type) {
// XXX: This is messy. Creating many datatables that are still
// referenced from the event system will make the memory usage of
(at)(at) -28,7 +51,8 (at)(at)
document.App.units.message_list.body,
config.columns,
config.source,
- {scrollable: true, renderLoopSize: 10, height:"200px"});
+ {scrollable: true, renderLoopSize: 10, height:"200px",
+ formatRow: this.rowFormatter});
table.set("selectionMode", "standard");
table.subscribe("rowClickEvent", table.onEventSelectRow);
table.subscribe("rowSelectEvent", function(event) {
(at)(at) -109,13 +133,14 (at)(at)
// INBOX-style message list
//
Def(function() {
-
+
var columns = [{key:"from", label:"Absender", sortable:true},
{key:"subject", label:"Betreff", sortable:true},
{key:"date", label:"Datum", sortable:true}];
var responseSchema = {resultsList: "",
fields: [{key: "url"},
+ {key: "flags"},
{key: "from"},
{key: "subject"},
{key: "date"}]};
(at)(at) -147,6 +172,7 (at)(at)
var responseSchema = {resultsList: "",
fields: [{key: "url"},
+ {key: "flags"},
{key: "to"},
{key: "subject"},
{key: "date"}]};
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/styles/webmail.css
==============================================================================
---
gocept.webmail/trunk/gocept/webmail/browser/resources/styles/webmail.css (original)
+++
gocept.webmail/trunk/gocept/webmail/browser/resources/styles/webmail.css Mon
Dec 15 16:12:15 2008
(at)(at) -91,3 +91,15 (at)(at)
background-color: darkgreen;
color: white;
}
+
+.yui-dt-data tr.recent,
+.yui-dt-data tr.unseen {
+ font-weight: bold;
+}
+
+.yui-dt-data tr.flagged {
+ color: #CC3333;
+}
+.yui-dt-data tr.answered {
+ font-style: italic;
+}
|
Re: [gocept svn checkins] SVN: r7268 - gocept.imapapi/trunk/gocept/imapapi
Thomas Lotze <tl(at)gocept.com> |
2008-12-15 18:12:37 |
[ FULL ]
|
Sebastian Wehrmann <sw(at)gocept.com> wrote:
[...]
Kann es sein, daß die Fehlermeldung plattformabhängig ist? Auf meinem
Linux-Server bekomme ich:
IMAPServerError: (-2, 'Name or service not known')
Viele Grüße,
Thomas
[...]
|
|
|
SVN: r7289 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-16 09:40:15 |
[ FULL ]
|
Author: sweh
Date: Tue Dec 16 09:40:14 2008
New Revision: 7289
Log:
remove `unseen` css class from table row when displaying it without reloading
the whole table
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/resources/message.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/message.js Tue Dec 16
09:40:14 2008
(at)(at) -65,6 +65,10 (at)(at)
message.canEdit = config.canEdit;
message.canDelete = config.canDelete;
message.canBeRaw = config.canBeRaw;
+ var classnames = event.el.className.split(" ");
+ for (i=0; i<classnames.length; i++)
+ if (classnames[i] == 'unseen')
+ YAHOO.util.Dom.removeClass(event.el, 'unseen');
return document.App.preview_pane.load(message);
});
table.subscribe("cellMousedownEvent",table.onEventSelectRow);
|
Re: [gocept svn checkins] SVN: r7288 - gocept.restmail/trunk
Christian Theune <ct(at)gocept.com> |
2008-12-16 10:59:51 |
[ FULL ]
|
On Tue, 2008-12-16 at 08:13 +0100, Sebastian Wehrmann wrote:[...]
+ remove lxml version requirement
[...]
|
|
|
Re: [gocept svn checkins] SVN: r7268 - gocept.imapapi/trunk/gocept/imapapi
Christian Theune <ct(at)gocept.com> |
2008-12-16 16:02:44 |
[ FULL ]
|
On Mon, 2008-12-15 at 18:12 +0100, Thomas Lotze wrote:[...]
Ja. Das sind Fehlermeldungen, die vom POSIX-Interface generiert werden
und Implementationsdetails haben, die meistens in der libc oder gar im
IP-Stack versteckt sind.
[...]
|
|
|
Re: [gocept svn checkins] SVN: r7295 - gocept.restmail/trunk/gocept/restmail
Christian Theune <ct(at)gocept.com> |
2008-12-17 08:01:04 |
[ FULL ]
|
On Tue, 2008-12-16 at 11:39 +0100, Sebastian Wehrmann wrote:[...]
Teeeeeeeeeeeeeeest!
Der Quoting-Code ist eh schon hart zu verstehen, da brauchts nicht noch
fehlende Testabdeckung. ;)
Theuni
[...]
|
|
|
Re: [gocept svn checkins] SVN: r7296 - gocept.imapapi/trunk/gocept/imapapi
Christian Theune <ct(at)gocept.com> |
2008-12-17 08:02:25 |
[ FULL ]
|
On Tue, 2008-12-16 at 11:40 +0100, Sebastian Wehrmann wrote:[...]
Hmm. Hier sollte eigentlich unsere Parser-Komponente dran. Bei dem
Ausdruck wird mir leicht schlecht.
(at)TL: Hamwir da schon was in petto?
[...]
|
|
|
Re: [gocept svn checkins] SVN: r7295 - gocept.restmail/trunk/gocept/restmail
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-17 08:13:33 |
[ FULL ]
|
Hi,
Am 17.12.2008 um 08:01 schrieb Christian Theune:[...]
Irks. Testumgebung war meine gocept Mailbox - ich liefere einen nach.
VIele Grüße,
--
Sebastian Wehrmann · sw(at)gocept.com
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 12 ·
fax +49 345 1229889 1
Zope and Plone consulting and development
|
| Attachments: | | |
| smime.p7s |
application/pkcs7-signature |
2425 Bytes |
|
Re: [gocept svn checkins] SVN: r7296 - gocept.imapapi/trunk/gocept/imapapi
Thomas Lotze <tl(at)gocept.com> |
2008-12-17 09:38:55 |
[ FULL ]
|
Christian Theune <ct(at)gocept.com> wrote:
[...]
:o)
[...]
Die reine String-Verwursterei ja, das sollte
gocept.imapapi.parser.parse einfach aufgrund der Syntax hinkriegen,
ohne daß wir von Hand splitten müssen. Daß die Atome usw., die da
rausfallen, was mit Flags zu tun haben, muß glaub ich erst noch gebaut
werden, aber das sollte einfach eine weitere Funktion im Stile von
g.i.p.uidvalidity oder so sein, die die Tokenliste nimmt, die parse()
produziert, und dann da mit weniger ekligen Operationen Information
rausholt.
Viele Grüße,
Thomas
[...]
|
|
|
Re: [gocept svn checkins] SVN: r7296 - gocept.imapapi/trunk/gocept/imapapi
Christian Theune <ct(at)gocept.com> |
2008-12-17 09:41:22 |
[ FULL ]
|
On Wed, 2008-12-17 at 09:38 +0100, Thomas Lotze wrote:[...]
basti: dann probier dich dochmal da dran.
[...]
|
|
|
Re: [gocept svn checkins] SVN: r7296 - gocept.imapapi/trunk/gocept/imapapi
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-17 09:44:17 |
[ FULL ]
|
Hi,
Am 17.12.2008 um 09:41 schrieb Christian Theune:
[...][...][...]
jawoll :o)
MfG, Basti
--
Sebastian Wehrmann · sw(at)gocept.com
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 12 ·
fax +49 345 1229889 1
Zope and Plone consulting and development
|
| Attachments: | | |
| smime.p7s |
application/pkcs7-signature |
2425 Bytes |
|
SVN: r7314 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-18 08:18:48 |
[ FULL ]
|
Author: sweh
Date: Thu Dec 18 08:18:47 2008
New Revision: 7314
Log:
add missing ;
do not break message list if no imap flags are available (as it is for drafts
e.g.)
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/resources/message.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/message.js Thu Dec 18
08:18:47 2008
(at)(at) -16,6 +16,8 (at)(at)
rowFormatter: function(elTr, oRecord) {
var flags = oRecord.getData('flags');
+ if (!flags)
+ return true;
var seen = false;
for (i=0; i<flags.length; i++) {
if (flags[i] == '\\Seen') {
(at)(at) -78,12 +80,12 (at)(at)
ddRow.handleMouseDown(event.event);
ddRow.onDragOver = function(ev, id) {
- element = YAHOO.util.Dom.getChildren(id)
+ element = YAHOO.util.Dom.getChildren(id);
YAHOO.util.Dom.addClass(element, 'DDOver');
}
ddRow.onDragOut = function(ev, id) {
- element = YAHOO.util.Dom.getChildren(id)
+ element = YAHOO.util.Dom.getChildren(id);
YAHOO.util.Dom.removeClass(element, 'DDOver');
}
|
SVN: r7316 - gocept.webmail/trunk/gocept/webmail/browser/resources
Sebastian Wehrmann <sw(at)gocept.com> |
2008-12-18 09:24:19 |
[ FULL ]
|
Author: sweh
Date: Thu Dec 18 09:24:18 2008
New Revision: 7316
Log:
enable raw view for drafts
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/resources/message.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/message.js Thu Dec 18
09:24:18 2008
(at)(at) -192,7 +192,7 (at)(at)
config.canEdit = true;
config.canReply = false;
config.canDelete = true;
- config.canBeRaw = false;
+ config.canBeRaw = true;
return config;
};
});
|
Re: [gocept svn checkins] SVN: r7315 - in gocept.restmail/trunk/gocept/restmail: . browser
Christian Theune <ct(at)gocept.com> |
2008-12-18 14:05:32 |
[ FULL ]
|
On Thu, 2008-12-18 at 09:23 +0100, Sebastian Wehrmann wrote:[...]
Teeeeeeeeeeeeeeests.
[...]
|
|
|
Re: [gocept svn checkins] SVN: r7317 - gocept.imapapi/trunk/gocept/imapapi
Christian Theune <ct(at)gocept.com> |
2008-12-18 14:06:59 |
[ FULL ]
|
On Thu, 2008-12-18 at 09:32 +0100, Sebastian Wehrmann wrote:[...]
for atom, value in pdata:
if str(atom) == 'FLAGS':
flags = value
break
else:
return ()
[...]
|
|
|
Re: [gocept svn checkins] SVN: r7319 - gocept.restmail/trunk/gocept/restmail/browser
Christian Theune <ct(at)gocept.com> |
2008-12-18 14:07:42 |
[ FULL ]
|
On Thu, 2008-12-18 at 10:02 +0100, Sebastian Wehrmann wrote:[...]
Ah. Bitte zusammen einchecken. Sonst schrei ich rum. ;)
[...]
|
|
|
Re: [gocept svn checkins] SVN: r7295 - gocept.restmail/trunk/gocept/restmail
Thomas Lotze <tl(at)gocept.com> |
2008-12-21 16:11:48 |
[ FULL ]
|
Christian Theune <ct(at)gocept.com> wrote:
[...]
"hard to understand" heißt im Deutschen "schwer zu verstehen" ;o)
Viele Grüße,
Thomas
[...]
|
|
|
Re: [gocept svn checkins] SVN: r7357 - gocept.imapapi/trunk/gocept/imapapi
Thomas Lotze <tl(at)gocept.com> |
2008-12-22 14:48:16 |
[ FULL ]
|
Sebastian Wehrmann <sw(at)gocept.com> schrieb:
[...]
Vielleicht habt Ihr ja über das API diskutiert, ohne daß ich es
mitbekommen habe, aber sowas finde ich auf den ersten Blick komisch.
Was spricht dagegen, ein offensichtliches API fürs Verschieben
anzubieten und in Code zu formulieren, daß das mit copy und append
bewerkstelligt werden kann?
Viele Grüße,
Thomas
[...]
|
|
|
SVN: r7362 - in gocept.webmail/trunk/gocept/webmail/browser: . resources tests
Christian Theune <ct(at)gocept.com> |
2008-12-22 17:02:47 |
[ FULL ]
|
Author: ctheune
Date: Mon Dec 22 17:02:43 2008
New Revision: 7362
Log:
Start some refactorings to allow our JavaScript code to be
unit-testable. Also started introducing yuitest.
Added:
gocept.webmail/trunk/gocept/webmail/browser/resources/runner.js
gocept.webmail/trunk/gocept/webmail/browser/resources/testutilities.js
gocept.webmail/trunk/gocept/webmail/browser/tests/
gocept.webmail/trunk/gocept/webmail/browser/tests/__init__.py (contents,
props changed)
gocept.webmail/trunk/gocept/webmail/browser/tests/configure.zcml
gocept.webmail/trunk/gocept/webmail/browser/tests/dummy.pt (contents,
props changed)
gocept.webmail/trunk/gocept/webmail/browser/tests/index.pt (contents,
props changed)
Modified:
gocept.webmail/trunk/gocept/webmail/browser/configure.zcml
gocept.webmail/trunk/gocept/webmail/browser/module-loader.pt
gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
gocept.webmail/trunk/gocept/webmail/browser/resources/utilities.js
gocept.webmail/trunk/gocept/webmail/browser/resources/webmailer-main.js
gocept.webmail/trunk/gocept/webmail/browser/resources/webmailer.js
gocept.webmail/trunk/gocept/webmail/browser/webmailer.py
Modified: gocept.webmail/trunk/gocept/webmail/browser/configure.zcml
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/configure.zcml (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/configure.zcml Mon Dec 22
17:02:43 2008
(at)(at) -36,6 +36,7 (at)(at)
name="gocept.webmail"
directory="resources"/>
+ <include package=".tests"/>
</configure>
Modified: gocept.webmail/trunk/gocept/webmail/browser/module-loader.pt
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/module-loader.pt (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/module-loader.pt Mon Dec 22
17:02:43 2008
(at)(at) -23,6 +23,9 (at)(at)
<script type="text/javascript" src="utilities.js"
tal:attributes="src string:$resources/utilities.js">
</script>
+ <script type="text/javascript" src="runner.js"
+ tal:attributes="src string:$resources/runner.js">
+ </script>
<script type="text/javascript" src="main.js"
tal:attributes="src string:$resources/${view/main_file}">
</script>
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/message.js
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/resources/message.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/message.js Mon Dec 22
17:02:43 2008
(at)(at) -1,17 +1,19 (at)(at)
//
// List of messages
-//
+//
Def(function(){
-
+
YAHOO.gocept.webmailer.MessageList = Class({
constructor: function() {
var message_list = this;
- message_list.load('', 'inbox');
+ message_list.load({foldersUrl: '', list_type: 'inbox'});
document.App.units.message_list.on('resize', function(event) {
message_list.adjust_size();
});
+ YAHOO.gocept.webmailer.onFolderSelected.subscribe(
+ function(type, arg){ message_list.load(arg[0]); });
},
rowFormatter: function(elTr, oRecord) {
(at)(at) -39,12 +41,15 (at)(at)
return true;
},
- load: function(url, list_type) {
+ load: function(folder) {
// XXX: This is messy. Creating many datatables that are still
// referenced from the event system will make the memory usage of
// the webmailer go haywire.
var message_list = this;
+ url = folder.url;
+ list_type = folder.list_type;
+
document.App.preview_pane.reset();
config = YAHOO.gocept.webmailer['list-'+list_type](url);
(at)(at) -78,17 +83,17 (at)(at)
var element =
table.getTrEl(YAHOO.util.Event.getTarget(event));
ddRow = new YAHOO.util.DDProxy(element.id);
ddRow.handleMouseDown(event.event);
-
- ddRow.onDragOver = function(ev, id) {
+
+ ddRow.onDragOver = function(ev, id) {
element = YAHOO.util.Dom.getChildren(id);
- YAHOO.util.Dom.addClass(element, 'DDOver');
- }
-
- ddRow.onDragOut = function(ev, id) {
+ YAHOO.util.Dom.addClass(element, 'DDOver');
+ }
+
+ ddRow.onDragOut = function(ev, id) {
element = YAHOO.util.Dom.getChildren(id);
- YAHOO.util.Dom.removeClass(element, 'DDOver');
- }
-
+ YAHOO.util.Dom.removeClass(element, 'DDOver');
+ }
+
ddRow.onDragDrop = function(ev, id) {
var node = document.App.tree.id_to_node[id]
var method = '/(at)(at)move';
(at)(at) -113,9 +118,6 (at)(at)
table.render();
message_list.table = table;
message_list.adjust_size();
-
- // Do not expand the tree node when we load the folder contents.
- return false;
},
reload: function() {
(at)(at) -133,6 +135,7 (at)(at)
table.set('width', target);
}
});
+
});
//
(at)(at) -155,7 +158,7 (at)(at)
if (url) {
url = url + '/(at)(at)messages?';
}
- data_source = document.App.getDataSource(url, responseSchema);
+ data_source = YAHOO.gocept.webmailer.get_data_source(url,
responseSchema);
config = new Object();
config.source = data_source;
config.columns = columns;
(at)(at) -171,7 +174,7 (at)(at)
// Drafts-style message list
//
Def(function() {
-
+
var columns = [{key:"to", label:"Empfänger", sortable:true},
{key:"subject", label:"Betreff", sortable:true},
{key:"date", label:"Datum", sortable:true}];
(at)(at) -200,7 +203,9 (at)(at)
//
// Preview pane
//
+
Def(function(){
+
YAHOO.gocept.webmailer.PreviewPane = Class({
constructor: function() {
var preview_pane = this;
Added: gocept.webmail/trunk/gocept/webmail/browser/resources/runner.js
==============================================================================
--- (empty file)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/runner.js Mon Dec 22
17:02:43 2008
(at)(at) -0,0 +1,61 (at)(at)
+// Application starter code
+
+Def(function() {
+ //
+ // The generic application initialization code.
+ //
+ // This looks up an entry-point class by a well known name
+ // (`YAHOO.gocept.webmailer.App`).
+ //
+ // Depending on the modules that are loaded, those classes are
+ // responsible to initialize the actual application.
+ //
+
+ function generic_init() {
+ document.Connection = new YAHOO.gocept.webmailer.Connection();
+ document.App = new YAHOO.gocept.webmailer.App();
+ // YAHOO.widget.Logger.enableBrowserConsole();
+ };
+
+ var loader = new YAHOO.util.YUILoader({
+ base: yui_base_url+'/',
+ loadOptional: true,
+ filter: 'DEBUG',
+ allowRollup: false,
+ onSuccess: function() {
+ generic_init();
+ },
+ onFailure: function(msg, xhrobj) {
+ var m = "LOAD FAILED: " + msg;
+ // if the failure was from the Connection Manager, the object
+ // returned by that utility will be provided.
+ if (xhrobj) {
+ m += ", " + YAHOO.lang.dump(xhrobj);
+ }
+ alert(m);
+ }
+ });
+
+ var require_modules = new Array(
+ 'reset-fonts-grids', 'logger', 'button', 'container',
+ 'tabview', 'selector', 'resize', 'layout', 'treeview',
+ 'datatable', 'menu', 'editor', 'json', 'dragdrop');
+
+ var app_modules = new Array('connection', 'composer', 'message',
+ 'draft', 'webmailer', 'management');
+
+ for (i=0;i<app_modules.length;i++) {
+ base_name = app_modules[i];
+ module_name = 'webmail-' + base_name;
+
+ loader.addModule({
+ name: module_name,
+ type: 'js',
+ fullpath: app_base_url+'/'+base_name+'.js'});
+
+ require_modules.push(module_name);
+ };
+
+ loader.require(require_modules);
+ loader.insert();
+});
Added: gocept.webmail/trunk/gocept/webmail/browser/resources/testutilities.js
==============================================================================
--- (empty file)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/testutilities.js Mon
Dec 22 17:02:43 2008
(at)(at) -0,0 +1,13 (at)(at)
+// gocept test utility code for the webmailer
+
+// Define our namespace
+YAHOO.namespace('gocept.webmailer');
+
+Assert = YAHOO.util.Assert;
+
+function TestCase(test_case) {
+ Suite = new YAHOO.tool.TestSuite('yuisuite');
+ Suite.add(new YAHOO.tool.TestCase(test_case));
+ YAHOO.tool.TestRunner.add(Suite);
+ YAHOO.tool.TestManager.load();
+};
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/utilities.js
==============================================================================
---
gocept.webmail/trunk/gocept/webmail/browser/resources/utilities.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/utilities.js Mon Dec
22 17:02:43 2008
(at)(at) -46,63 +46,21 (at)(at)
scope();
};
-
Def(function() {
- //
- // The generic application initialization code.
- //
- // This looks up an entry-point class by a well known name
- // (`YAHOO.gocept.webmailer.App`).
- //
- // Depending on the modules that are loaded, those classes are
- // responsible to initialize the actual application.
- //
-
- function generic_init() {
- document.Connection = new YAHOO.gocept.webmailer.Connection();
- document.App = new YAHOO.gocept.webmailer.App();
- // YAHOO.widget.Logger.enableBrowserConsole();
- };
-
- var loader = new YAHOO.util.YUILoader({
- base: yui_base_url+'/',
- loadOptional: true,
- filter: 'DEBUG',
- allowRollup: false,
- onSuccess: function() {
- generic_init();
- },
- onFailure: function(msg, xhrobj) {
- var m = "LOAD FAILED: " + msg;
- // if the failure was from the Connection Manager, the object
- // returned by that utility will be provided.
- if (xhrobj) {
- m += ", " + YAHOO.lang.dump(xhrobj);
- }
- alert(m);
- }
- });
-
- var require_modules = new Array(
- 'reset-fonts-grids', 'logger', 'button', 'container',
- 'tabview', 'selector', 'resize', 'layout', 'treeview',
- 'datatable', 'menu', 'editor', 'json', 'dragdrop');
-
- var app_modules = new Array('connection', 'composer', 'message',
- 'draft', 'webmailer', 'management');
-
- for (i=0;i<app_modules.length;i++) {
- base_name = app_modules[i];
- module_name = 'webmail-' + base_name;
-
- loader.addModule({
- name: module_name,
- type: 'js',
- fullpath: app_base_url+'/'+base_name+'.js'});
-
- require_modules.push(module_name);
- };
-
- loader.require(require_modules);
- loader.insert();
+ YAHOO.gocept.webmailer.get_data_source = function(url, schema) {
+ if (!url) {
+ data_source = new YAHOO.util.LocalDataSource(new Array());
+ data_source.responseType =
YAHOO.util.LocalDataSource.TYPE_JSARRAY;
+ } else {
+ data_source = new YAHOO.util.XHRDataSource(url)
+ data_source.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
+ };
+ data_source.responseSchema = schema;
+ // Workaround for YUI bug # 214964
+ data_source.doBeforeParseData = function (oRequest, oFullResponse,
oCallback) {
+ return {result:oFullResponse};
+ };
+ data_source.responseSchema.resultsList = 'result';
+ return data_source;
+ }
});
Modified:
gocept.webmail/trunk/gocept/webmail/browser/resources/webmailer-main.js
==============================================================================
---
gocept.webmail/trunk/gocept/webmail/browser/resources/webmailer-main.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/webmailer-main.js Mon
Dec 22 17:02:43 2008
(at)(at) -73,26 +73,10 (at)(at)
YAHOO.util.Event.onContentReady("webmailer-main-menu", function ()
{
app.preview_pane = new YAHOO.gocept.webmailer.PreviewPane();
app.message_list = new YAHOO.gocept.webmailer.MessageList();
- app.tree = new YAHOO.gocept.webmailer.Tree();
+ app.tree = new YAHOO.gocept.webmailer.Tree(
+ document.App.units.tree.body);
});
},
- getDataSource: function(url, schema) {
- if (!url) {
- data_source = new YAHOO.util.LocalDataSource(new Array());
- data_source.responseType =
YAHOO.util.LocalDataSource.TYPE_JSARRAY;
- } else {
- data_source = new YAHOO.util.XHRDataSource(url)
- data_source.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
- };
- data_source.responseSchema = schema;
- // Workaround for YUI bug # 214964
- data_source.doBeforeParseData = function (oRequest, oFullResponse,
oCallback) {
- return {result:oFullResponse};
- };
- data_source.responseSchema.resultsList = 'result';
- return data_source;
- }
-
});
});
Modified: gocept.webmail/trunk/gocept/webmail/browser/resources/webmailer.js
==============================================================================
---
gocept.webmail/trunk/gocept/webmail/browser/resources/webmailer.js (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/resources/webmailer.js Mon Dec
22 17:02:43 2008
(at)(at) -1,6 +1,4 (at)(at)
-//
// The main menu
-//
Def(function() {
YAHOO.gocept.webmailer.Menu = Class({
constructor: function() {
(at)(at) -26,6 +24,9 (at)(at)
//
Def(function() {
+ YAHOO.gocept.webmailer.onFolderSelected = new YAHOO.util.CustomEvent(
+ "onFolderSelected");
+
var responseSchema = {
resultsList: "",
fields: [{key: "url"},
(at)(at) -35,10 +36,10 (at)(at)
};
YAHOO.gocept.webmailer.Tree = Class({
- constructor: function() {
+ constructor: function(treebody) {
var tree = this;
tree.id_to_node = new Array();
- tree.treeview = new
YAHOO.widget.TreeView(document.App.units.tree.body);
+ tree.treeview = new YAHOO.widget.TreeView(treebody);
tree.treeview.setDynamicLoad(function(node)
{tree.loadNodeData(node);});
var root = tree.treeview.getRoot();
tree.selected_node = root;
(at)(at) -55,7 +56,7 (at)(at)
tree.loadNodeData(root);
tree.treeview.subscribe('labelClick', function(node) {
tree.selected_node = node;
- return document.App.message_list.load(node.url,
node.list_type);
+ YAHOO.gocept.webmailer.onFolderSelected.fire(node);
});
},
(at)(at) -92,8 +93,8 (at)(at)
var url = node.url + "(at)(at)folders";
};
- document.App.getDataSource(url, responseSchema).sendRequest(
- '', callback);
+ YAHOO.gocept.webmailer.get_data_source(url, responseSchema).
+ sendRequest('', callback);
},
fillFolders: function(node, children) {
(at)(at) -124,5 +125,3 (at)(at)
}
});
});
-
-
Added: gocept.webmail/trunk/gocept/webmail/browser/tests/__init__.py
==============================================================================
--- (empty file)
+++ gocept.webmail/trunk/gocept/webmail/browser/tests/__init__.py Mon Dec 22
17:02:43 2008
(at)(at) -0,0 +1 (at)(at)
+# Make this a Python package
Added: gocept.webmail/trunk/gocept/webmail/browser/tests/configure.zcml
==============================================================================
--- (empty file)
+++ gocept.webmail/trunk/gocept/webmail/browser/tests/configure.zcml Mon Dec 22
17:02:43 2008
(at)(at) -0,0 +1,14 (at)(at)
+<configure xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser">
+
+ <browser:pages
+ permission="zope2.View"
+ class="gocept.webmail.browser.webmailer.Module"
+ for="*">
+ <browser:page name="test-index.html"
+ template="index.pt"/>
+ <browser:page name="dummy.html"
+ template="dummy.pt"/>
+ </browser:pages>
+
+</configure>
Added: gocept.webmail/trunk/gocept/webmail/browser/tests/dummy.pt
==============================================================================
--- (empty file)
+++ gocept.webmail/trunk/gocept/webmail/browser/tests/dummy.pt Mon Dec 22
17:02:43 2008
(at)(at) -0,0 +1,53 (at)(at)
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head
+ tal:define="resources view/resources;
+ yui_base_url string:${resources}/yui/build;
+ profile nocall:context/(at)(at)profile">
+
+ <title>Editor Test Suite</title>
+
+ <script type="text/javascript" tal:content="string:
+ var profile_url = '${profile/absolute_url}';
+ ">
+ </script>
+
+ <link rel="stylesheet" type="text/css" tal:attributes="href
string:${yui_base_url}/reset-fonts-grids/reset-fonts-grids.css"/>
+ <link type="text/css" rel="stylesheet" tal:attributes="href
string:${yui_base_url}/logger/assets/logger.css"/>
+ <link type="text/css" rel="stylesheet" tal:attributes="href
string:${yui_base_url}/yuitest/assets/testlogger.css"/>
+
+ <link rel="stylesheet" type="text/css" tal:attributes="href
string:${yui_base_url}/container/assets/skins/sam/container.css"/>
+ <link rel="stylesheet" type="text/css" tal:attributes="href
string:${yui_base_url}/menu/assets/skins/sam/menu.css"/>
+ <link rel="stylesheet" type="text/css" tal:attributes="href
string:${yui_base_url}/button/assets/skins/sam/button.css"/>
+ <link rel="stylesheet" type="text/css" tal:attributes="href
string:${yui_base_url}/resize/assets/skins/sam/resize.css"/>
+ <link rel="stylesheet" type="text/css" tal:attributes="href
string:${yui_base_url}/editor/assets/skins/sam/editor.css"/>
+
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/utilities/utilities.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/logger/logger-min.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/container/container_core-min.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/menu/menu-min.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/button/button-min.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/resize/resize-min.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/treeview/treeview.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/datasource/datasource.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/yuitest/yuitest.js"></script>
+
+ <script type="text/javascript" tal:attributes="src
string:${resources}/utilities.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${resources}/testutilities.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${resources}/webmailer.js"></script>
+
+ <script type="text/javascript">
+ TestCase({
+ test_tree_init: function() {
+ var tree = new YAHOO.gocept.webmailer.Tree(
+ document.getElementById('treebody'));
+ Assert.areEqual('', tree.selected_node.foldersUrl);
+ }
+ });
+ </script>
+ </head>
+ <body class="yui-skin-sam">
+ <div id="treebody">
+ </div>
+ </body>
+</html>
Added: gocept.webmail/trunk/gocept/webmail/browser/tests/index.pt
==============================================================================
--- (empty file)
+++ gocept.webmail/trunk/gocept/webmail/browser/tests/index.pt Mon Dec 22
17:02:43 2008
(at)(at) -0,0 +1,63 (at)(at)
+<html>
+ <head
+ tal:define="resources view/resources;
+ yui_base_url string:${resources}/yui/build">
+ <title>YUI Library Master Test Page</title>
+ <link type="text/css" rel="stylesheet" tal:attributes="href
string:${yui_base_url}/fonts/fonts.css" />
+ <link type="text/css" rel="stylesheet" tal:attributes="href
string:${yui_base_url}/logger/assets/logger.css" />
+ <link type="text/css" rel="stylesheet" tal:attributes="href
string:${yui_base_url}/yuitest/assets/testlogger.css" />
+
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/yahoo/yahoo.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/dom/dom.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/event/event.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/logger/logger.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/json/json.js"></script>
+ <script type="text/javascript" tal:attributes="src
string:${yui_base_url}/yuitest/yuitest.js"></script>
+
+ <style>
+ #out {
+ }
+ </style>
+
+ </head>
+ <body class="yui-skin-sam">
+ <h1>YUI Library Master Test Page</h1>
+ <script type="text/javascript">
+
+ (function() {
+
+ function log(msg) {
+ var d=document, b=d.getElementById("out"), n=d.createElement("div");
+ if (b) {
+ n.appendChild(d.createTextNode(msg));
+ b.appendChild(n);
+ }
+ }
+
+
+ var TM = YAHOO.tool.TestManager;
+
+ YAHOO.util.Event.onDOMReady(function (){
+
+ YAHOO.tool.TestManager.setPages([
+ "dummy.html",
+ ]);
+
+ TM.subscribe(TM.TEST_MANAGER_COMPLETE_EVENT, function(o) {
+ log("# of pages passed: " + o.passedPages.length);
+ log("# of pages failed: " + o.failedPages.length + ": " +
o.failedPages.join(", "));
+ log("# of tests passed: " + o.passed);
+ log("# of tests failed: " + o.failed);
+ });
+
+ TM.start();
+ });
+
+ })();
+
+ </script>
+
+ <div id="out"></div>
+
+ </body>
+</html>
Modified: gocept.webmail/trunk/gocept/webmail/browser/webmailer.py
==============================================================================
--- gocept.webmail/trunk/gocept/webmail/browser/webmailer.py (original)
+++ gocept.webmail/trunk/gocept/webmail/browser/webmailer.py Mon Dec 22
17:02:43 2008
(at)(at) -27,6 +27,7 (at)(at)
class Module(object):
+ """A module."""
c = zope.tales.engine.Engine.compile
declare = dict()
|
|