From reebalazs at codespeak.net Sat Oct 7 09:59:29 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Sat, 7 Oct 2006 09:59:29 +0200 (CEST) Subject: [Kukit-checkins] r32978 - kukit/azax/trunk/plugins/effects/browser Message-ID: <20061007075929.879D110068@code0.codespeak.net> Author: reebalazs Date: Sat Oct 7 09:59:20 2006 New Revision: 32978 Modified: kukit/azax/trunk/plugins/effects/browser/plugin.js Log: Field update registry to make the "richfield validation bug" go away - Implement Field update handlers registry. Kupu now works this way. - Suffer with Kupu, IE problem. Kupu transforms the DOM generated by AT, and is thus non-reentrant. I needed to add code to compensate this. This causes a problem if we init kupu both from global startup and from kss load event. - Resolving clash between the global $ variables of MochiKit and prototype in a terrible way. This is important for effects to work (and since the spinner uses it, this is critical.) Modified: kukit/azax/trunk/plugins/effects/browser/plugin.js ============================================================================== --- kukit/azax/trunk/plugins/effects/browser/plugin.js (original) +++ kukit/azax/trunk/plugins/effects/browser/plugin.js Sat Oct 7 09:59:20 2006 @@ -13,18 +13,37 @@ oper.completeParms([], {'type': 'fade'}, 'scriptaculous effect'); var node = oper.node; if (oper.parms.type == 'fade') { - Effect.Fade(node); + new Effect.Fade(node); } else if (oper.parms.type == 'appear') { - Effect.Appear(node); + new Effect.Appear(node); } else if (oper.parms.type == 'puff') { - Effect.Puff(node); + new Effect.Puff(node); } else if (oper.parms.type == 'blinddown') { - Effect.BlindDown(node); + new Effect.BlindDown(node); } else if (oper.parms.type == 'blindup') { - Effect.BlindUp(node); + new Effect.BlindUp(node); } }); kukit.cr.commandRegistry.registerFromAction('effect', kukit.cr.makeSelectorCommand); + // This is terrible. We needed to copy this part + // from prototype. Notice that I put this.$ = + // in the beginning. Without that the function + // declarations in IE won't overwrite each others, + // and one of them (first or last occurence) comes + // in. Now, we have a contradicting $ declaration + // in Mochikit, causing the problem. + + this.$ = function $() { + var results = [], element; + for (var i = 0; i < arguments.length; i++) { + element = arguments[i]; + if (typeof element == 'string') + element = document.getElementById(element); + results.push(Element.extend(element)); + } + return results.length < 2 ? results[0] : results; + }; + } From reebalazs at codespeak.net Sat Oct 7 09:59:39 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Sat, 7 Oct 2006 09:59:39 +0200 (CEST) Subject: [Kukit-checkins] r32979 - kukit/kukit.js/trunk/kukit Message-ID: <20061007075939.7138C10060@code0.codespeak.net> Author: reebalazs Date: Sat Oct 7 09:59:34 2006 New Revision: 32979 Modified: kukit/kukit.js/trunk/kukit/forms.js Log: Field update registry to make the "richfield validation bug" go away - Implement Field update handlers registry. Kupu now works this way. - Suffer with Kupu, IE problem. Kupu transforms the DOM generated by AT, and is thus non-reentrant. I needed to add code to compensate this. This causes a problem if we init kupu both from global startup and from kss load event. - Resolving clash between the global $ variables of MochiKit and prototype in a terrible way. This is important for effects to work (and since the spinner uses it, this is critical.) Modified: kukit/kukit.js/trunk/kukit/forms.js ============================================================================== --- kukit/kukit.js/trunk/kukit/forms.js (original) +++ kukit/kukit.js/trunk/kukit/forms.js Sat Oct 7 09:59:34 2006 @@ -109,6 +109,10 @@ kukit.fo.getValueOfFormElement = function(element) { // Returns the value of the form element / or null + // First: update the field in case an editor is lurking + // in the background + kukit.fo.fieldUpdateRegistry.doUpdate(element); + // Collect the data if (element.selectedIndex != undefined) { if (element.selectedIndex < 0) { value=""; @@ -213,3 +217,37 @@ return kukit.fo.getAllFormVars(form); }; +/* With editors, there are two main points of handling: + + 1. we need to load them after injected dynamically + 2. we need to prepare the form before we want to use the form variables + + Every editor has to register the field on their custody. + The update handler will be called automatically, when a form + value is about to be fetched. +*/ + +kukit.fo.FieldUpdateRegistry = function() { + this.editors = {}; +}; + +kukit.fo.FieldUpdateRegistry.prototype.register = function(node, editor) { + var hash = kukit.rd.hashnode(node); + if (typeof(this.editors[hash]) != 'undefined') { + throw 'Double registration of editor update on node.'; + } + this.editors[hash] = editor; + //kukit.logDebug('Registered '+node.name + ' hash=' + hash); +}; + +kukit.fo.FieldUpdateRegistry.prototype.doUpdate = function(node) { + var hash = kukit.rd.hashnode(node); + var editor = this.editors[hash]; + if (typeof(editor) != 'undefined') { + editor.doUpdate(node); + //kukit.logDebug('Updated '+node.name + ' hash=' + hash); + } +}; + +kukit.fo.fieldUpdateRegistry = new kukit.fo.FieldUpdateRegistry(); + From reebalazs at codespeak.net Sat Oct 7 10:50:52 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Sat, 7 Oct 2006 10:50:52 +0200 (CEST) Subject: [Kukit-checkins] r32980 - kukit/azaxdemo/trunk/browser Message-ID: <20061007085052.7533810068@code0.codespeak.net> Author: reebalazs Date: Sat Oct 7 10:50:49 2006 New Revision: 32980 Modified: kukit/azaxdemo/trunk/browser/azax_effects.pt kukit/azaxdemo/trunk/browser/azax_xpath.pt kukit/azaxdemo/trunk/browser/header_macros.pt Log: Fix script inclusion order for effects Modified: kukit/azaxdemo/trunk/browser/azax_effects.pt ============================================================================== --- kukit/azaxdemo/trunk/browser/azax_effects.pt (original) +++ kukit/azaxdemo/trunk/browser/azax_effects.pt Sat Oct 7 10:50:49 2006 @@ -2,8 +2,7 @@ - - + + + + +

All demos

+

Start logging pane

+

View KSS resource

+

HTML insertions (a.k.a. Change tags II.)

+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+

The playground:

+

KSS for a life.

+ + Added: kukit/azaxdemo/branch/zope2.8/browser/preventdefault.kss ============================================================================== --- (empty file) +++ kukit/azaxdemo/branch/zope2.8/browser/preventdefault.kss Sun Oct 15 20:49:54 2006 @@ -0,0 +1,41 @@ + +a#follow:click { + evt-click-preventdefault: true; + action-client: log; +} + +/* preventdefault is explicit on this.*/ +input#text:keydown { + evt-keydown-preventdefault: true; + evt-keydown-keyCodes: 13; + action-client: log; +} + + +input#submit:click { + evt-click-preventdefault: true; + action-client: log; +} + +/* Second row, allowbubbling combined: */ + +div#follow-wrapper:click { + evt-click-preventdefault: true; + evt-click-allowbubbling: true; + action-client: log; +} + +/* preventdefault is explicit on this.*/ +div#text-wrapper:keydown { + evt-keydown-preventdefault: true; + evt-keydown-allowbubbling: true; + evt-keydown-keyCodes: 13; + action-client: log; +} + +div#submit-wrapper:click { + evt-click-preventdefault: true; + evt-click-allowbubbling: true; + action-client: log; +} + Added: kukit/azaxdemo/branch/zope2.8/browser/preventdefault.pt ============================================================================== --- (empty file) +++ kukit/azaxdemo/branch/zope2.8/browser/preventdefault.pt Sun Oct 15 20:49:54 2006 @@ -0,0 +1,44 @@ + + + + + + + +

All demos

+

Start logging pane

+

View KSS resource

+ +

Preventdefault Demo

+

+ This is for testing the work of preventdefault to test a specific + workaround against a Safari bug. Specifically, none of the above + controls should cause a page reload. +

+
+

Do not follow

+ + + +

The same with allowbubbling combined:

+ +
+ +
+
+ +
+
+ +
+
+ + Modified: kukit/azaxdemo/branch/zope2.8/configure.zcml ============================================================================== --- kukit/azaxdemo/branch/zope2.8/configure.zcml (original) +++ kukit/azaxdemo/branch/zope2.8/configure.zcml Sun Oct 15 20:49:54 2006 @@ -364,5 +364,72 @@ permission="zope2.View" /> + + + + + + + + + + + + + + + + + + + + + From reebalazs at codespeak.net Mon Oct 16 15:41:42 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Mon, 16 Oct 2006 15:41:42 +0200 (CEST) Subject: [Kukit-checkins] r33332 - kukit/kukit.js/trunk/kukit Message-ID: <20061016134142.9F59F10125@code0.codespeak.net> Author: reebalazs Date: Mon Oct 16 15:41:41 2006 New Revision: 33332 Modified: kukit/kukit.js/trunk/kukit/plugin.js kukit/kukit.js/trunk/kukit/resourcedata.js Log: Improve logging a little Modified: kukit/kukit.js/trunk/kukit/plugin.js ============================================================================== --- kukit/kukit.js/trunk/kukit/plugin.js (original) +++ kukit/kukit.js/trunk/kukit/plugin.js Mon Oct 16 15:41:41 2006 @@ -237,7 +237,7 @@ // node._kukitmark contains the binding phase. var phase = oper.node._kukitmark; if (phase == 1 && ! oper.parms.initial) { - kukit.logDebug('EventRule #' + oper.eventrule.getNr() + ' mergeid ' + oper.eventrule.kss_selector.mergeid + 'event ignored, oninitial=false.'); + kukit.logDebug('EventRule #' + oper.eventrule.getNr() + ' mergeid ' + oper.eventrule.kss_selector.mergeid + ' event ignored, oninitial=false.'); return; } if (phase == 2 && ! oper.parms.insert) { Modified: kukit/kukit.js/trunk/kukit/resourcedata.js ============================================================================== --- kukit/kukit.js/trunk/kukit/resourcedata.js (original) +++ kukit/kukit.js/trunk/kukit/resourcedata.js Mon Oct 16 15:41:41 2006 @@ -285,7 +285,13 @@ this.nr = kukit.rd.EventRuleNr; this.mergednr = null; kukit.rd.EventRuleNr = this.nr + 1; - kukit.logDebug("EventRule #" + this.nr + ": " + kss_selector.css); + var namestr; + if (kss_selector.namespace) { + namestr = kss_selector.namespace + '-' + kss_selector.name; + } else { + namestr = kss_selector.name; + } + kukit.logDebug("EventRule #" + this.getNr() + ": " + kss_selector.css + ' EVENT=' + namestr); this.kss_selector = kss_selector; this.parms = parms; this.actions = actions; From reebalazs at codespeak.net Mon Oct 16 16:14:33 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Mon, 16 Oct 2006 16:14:33 +0200 (CEST) Subject: [Kukit-checkins] r33336 - in kukit/kukit.js/trunk: . doc Message-ID: <20061016141433.01B3F10131@code0.codespeak.net> Author: reebalazs Date: Mon Oct 16 16:14:31 2006 New Revision: 33336 Modified: kukit/kukit.js/trunk/README.txt kukit/kukit.js/trunk/doc/LICENSE.txt kukit/kukit.js/trunk/doc/TODO.txt Log: License cleanup Modified: kukit/kukit.js/trunk/README.txt ============================================================================== --- kukit/kukit.js/trunk/README.txt (original) +++ kukit/kukit.js/trunk/README.txt Mon Oct 16 16:14:31 2006 @@ -14,6 +14,5 @@ License ------- -Unless otherwise stated, kukit is released under the kukit License. See -doc/LICENSE.txt for the license text. It's just a BSD License (without the -advertisement clause) with the name kukit in it. +Unless otherwise stated, kukit is released under the GNU GPL version 2 +license. See doc/LICENSE.txt for the license text. Modified: kukit/kukit.js/trunk/doc/LICENSE.txt ============================================================================== --- kukit/kukit.js/trunk/doc/LICENSE.txt (original) +++ kukit/kukit.js/trunk/doc/LICENSE.txt Mon Oct 16 16:14:31 2006 @@ -1,31 +1,339 @@ -Copyright (c) 2005, kukit Contributors -All rights reserved. + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * Neither the name of kukit nor the names of its contributors may - be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. Modified: kukit/kukit.js/trunk/doc/TODO.txt ============================================================================== --- kukit/kukit.js/trunk/doc/TODO.txt (original) +++ kukit/kukit.js/trunk/doc/TODO.txt Mon Oct 16 16:14:31 2006 @@ -1,21 +0,0 @@ -* add logging where needed in js client -* add exception raising for fatal errors -* add and fix test cases -* add an 'kukitevent name="load"' handler which is called when everything is setup -* remove wrong error when no commands -* add event registry -* add command registry -* tests for command parsing -* rename the commands to better match the DOM API -* add parameter passing for events -* remove timer when the element to which it is attached is removed -* fix replacing of self closing tags, currenly it's at least breaking in firefox -* add a parameter to server responses to allow preventing of updating rules on new nodes -* If there are more timer events in one page, it does not work (look at the kukitportlets - demo, and comment out the part in the .azax. You can see that any of the timers work - but not both of them). -* fix event propagation/bubbling problem -* complain in log when kukit stylesheet is not well formed - -* add removeAttribute command -* clean some of the commands added before xpath support From reebalazs at codespeak.net Mon Oct 16 18:16:07 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Mon, 16 Oct 2006 18:16:07 +0200 (CEST) Subject: [Kukit-checkins] r33342 - in kukit/azax/trunk: . plugins/core plugins/effects Message-ID: <20061016161607.F02771010B@code0.codespeak.net> Author: reebalazs Date: Mon Oct 16 18:16:05 2006 New Revision: 33342 Modified: kukit/azax/trunk/__init__.py kukit/azax/trunk/plugins/core/__init__.py kukit/azax/trunk/plugins/core/commands.py kukit/azax/trunk/plugins/effects/__init__.py kukit/azax/trunk/plugins/effects/commands.py Log: Allow access to new adapter command lookup mechanism from restricted code Modified: kukit/azax/trunk/__init__.py ============================================================================== --- kukit/azax/trunk/__init__.py (original) +++ kukit/azax/trunk/__init__.py Mon Oct 16 18:16:05 2006 @@ -40,6 +40,8 @@ allow_class(AzaxCommand) allow_class(AzaxParam) allow_class(AzaxUnicodeError) + # + allow_class(AzaxBaseView) # alias myself to global namespace, in case I am in Products # this allows to run on Zope2, while configuration can Modified: kukit/azax/trunk/plugins/core/__init__.py ============================================================================== --- kukit/azax/trunk/plugins/core/__init__.py (original) +++ kukit/azax/trunk/plugins/core/__init__.py Mon Oct 16 18:16:05 2006 @@ -2,3 +2,11 @@ Module init ''' +try: + import Products.Five +except ImportError: + pass +else: + # Allow to build commands from restricted code + from AccessControl import allow_module + allow_module('Products.azax.plugins.core.interfaces') Modified: kukit/azax/trunk/plugins/core/commands.py ============================================================================== --- kukit/azax/trunk/plugins/core/commands.py (original) +++ kukit/azax/trunk/plugins/core/commands.py Mon Oct 16 18:16:05 2006 @@ -14,7 +14,8 @@ class KSSCoreCommands(AzaxViewAdapter): - + __allow_access_to_unprotected_subobjects__ = 1 + def getSelector(self, type, selector): 'Get a selector of a given type' return Selector(type, selector) Modified: kukit/azax/trunk/plugins/effects/__init__.py ============================================================================== --- kukit/azax/trunk/plugins/effects/__init__.py (original) +++ kukit/azax/trunk/plugins/effects/__init__.py Mon Oct 16 18:16:05 2006 @@ -2,3 +2,11 @@ Module init ''' +try: + import Products.Five +except ImportError: + pass +else: + # Allow to build commands from restricted code + from AccessControl import allow_module + allow_module('Products.azax.plugins.effects.interfaces') Modified: kukit/azax/trunk/plugins/effects/commands.py ============================================================================== --- kukit/azax/trunk/plugins/effects/commands.py (original) +++ kukit/azax/trunk/plugins/effects/commands.py Mon Oct 16 18:16:05 2006 @@ -8,6 +8,7 @@ class ScriptaculousEffectsCommands(AzaxViewAdapter): + __allow_access_to_unprotected_subobjects__ = 1 def effect(self, selector, type): """ see interfaces.py """ From reebalazs at codespeak.net Mon Oct 16 18:17:51 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Mon, 16 Oct 2006 18:17:51 +0200 (CEST) Subject: [Kukit-checkins] r33343 - in kukit/azax/branch/zope2.8: . plugins/core plugins/effects Message-ID: <20061016161751.E96F31010B@code0.codespeak.net> Author: reebalazs Date: Mon Oct 16 18:17:47 2006 New Revision: 33343 Modified: kukit/azax/branch/zope2.8/__init__.py kukit/azax/branch/zope2.8/plugins/core/__init__.py kukit/azax/branch/zope2.8/plugins/core/commands.py kukit/azax/branch/zope2.8/plugins/effects/__init__.py kukit/azax/branch/zope2.8/plugins/effects/commands.py Log: Merge from trunk Modified: kukit/azax/branch/zope2.8/__init__.py ============================================================================== --- kukit/azax/branch/zope2.8/__init__.py (original) +++ kukit/azax/branch/zope2.8/__init__.py Mon Oct 16 18:17:47 2006 @@ -40,6 +40,8 @@ allow_class(AzaxCommand) allow_class(AzaxParam) allow_class(AzaxUnicodeError) + # + allow_class(AzaxBaseView) # alias myself to global namespace, in case I am in Products # this allows to run on Zope2, while configuration can Modified: kukit/azax/branch/zope2.8/plugins/core/__init__.py ============================================================================== --- kukit/azax/branch/zope2.8/plugins/core/__init__.py (original) +++ kukit/azax/branch/zope2.8/plugins/core/__init__.py Mon Oct 16 18:17:47 2006 @@ -2,3 +2,11 @@ Module init ''' +try: + import Products.Five +except ImportError: + pass +else: + # Allow to build commands from restricted code + from AccessControl import allow_module + allow_module('Products.azax.plugins.core.interfaces') Modified: kukit/azax/branch/zope2.8/plugins/core/commands.py ============================================================================== --- kukit/azax/branch/zope2.8/plugins/core/commands.py (original) +++ kukit/azax/branch/zope2.8/plugins/core/commands.py Mon Oct 16 18:17:47 2006 @@ -14,7 +14,8 @@ class KSSCoreCommands(AzaxViewAdapter): - + __allow_access_to_unprotected_subobjects__ = 1 + def getSelector(self, type, selector): 'Get a selector of a given type' return Selector(type, selector) Modified: kukit/azax/branch/zope2.8/plugins/effects/__init__.py ============================================================================== --- kukit/azax/branch/zope2.8/plugins/effects/__init__.py (original) +++ kukit/azax/branch/zope2.8/plugins/effects/__init__.py Mon Oct 16 18:17:47 2006 @@ -2,3 +2,11 @@ Module init ''' +try: + import Products.Five +except ImportError: + pass +else: + # Allow to build commands from restricted code + from AccessControl import allow_module + allow_module('Products.azax.plugins.effects.interfaces') Modified: kukit/azax/branch/zope2.8/plugins/effects/commands.py ============================================================================== --- kukit/azax/branch/zope2.8/plugins/effects/commands.py (original) +++ kukit/azax/branch/zope2.8/plugins/effects/commands.py Mon Oct 16 18:17:47 2006 @@ -8,6 +8,7 @@ class ScriptaculousEffectsCommands(AzaxViewAdapter): + __allow_access_to_unprotected_subobjects__ = 1 def effect(self, selector, type): """ see interfaces.py """ From reebalazs at codespeak.net Thu Oct 19 11:38:04 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Thu, 19 Oct 2006 11:38:04 +0200 (CEST) Subject: [Kukit-checkins] r33444 - in kukit/azax/branch: 1.0 zope2.8 Message-ID: <20061019093804.77FCB10036@code0.codespeak.net> Author: reebalazs Date: Thu Oct 19 11:38:01 2006 New Revision: 33444 Added: kukit/azax/branch/1.0/ - copied from r33443, kukit/azax/branch/zope2.8/ Removed: kukit/azax/branch/zope2.8/ Log: Rename zope2.8 branch to 1.0 From reebalazs at codespeak.net Thu Oct 19 11:38:31 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Thu, 19 Oct 2006 11:38:31 +0200 (CEST) Subject: [Kukit-checkins] r33445 - in kukit/azaxdemo/branch: 1.0 zope2.8 Message-ID: <20061019093831.C63D410036@code0.codespeak.net> Author: reebalazs Date: Thu Oct 19 11:38:29 2006 New Revision: 33445 Added: kukit/azaxdemo/branch/1.0/ - copied from r33444, kukit/azaxdemo/branch/zope2.8/ Removed: kukit/azaxdemo/branch/zope2.8/ Log: Rename zope2.8 branch to 1.0 From reebalazs at codespeak.net Mon Oct 23 16:15:34 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Mon, 23 Oct 2006 16:15:34 +0200 (CEST) Subject: [Kukit-checkins] r33565 - kukit/azax/branch/1.1 Message-ID: <20061023141534.ACFB610070@code0.codespeak.net> Author: reebalazs Date: Mon Oct 23 16:15:28 2006 New Revision: 33565 Added: kukit/azax/branch/1.1/ - copied from r33564, kukit/azax/trunk/ Log: branch off for release From reebalazs at codespeak.net Mon Oct 23 16:15:51 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Mon, 23 Oct 2006 16:15:51 +0200 (CEST) Subject: [Kukit-checkins] r33566 - kukit/azaxdemo/branch/1.1 Message-ID: <20061023141551.545F710070@code0.codespeak.net> Author: reebalazs Date: Mon Oct 23 16:15:47 2006 New Revision: 33566 Added: kukit/azaxdemo/branch/1.1/ - copied from r33565, kukit/azaxdemo/trunk/ Log: branch off for release From gotcha at codespeak.net Mon Oct 23 16:21:33 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:21:33 +0200 (CEST) Subject: [Kukit-checkins] r33569 - kukit/azax/branch/historical Message-ID: <20061023142133.CE55510070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:21:32 2006 New Revision: 33569 Added: kukit/azax/branch/historical/ Log: history From gotcha at codespeak.net Mon Oct 23 16:22:15 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:22:15 +0200 (CEST) Subject: [Kukit-checkins] r33570 - in kukit/azax/branch: historical/kss1 kss1 Message-ID: <20061023142215.2022510053@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:22:13 2006 New Revision: 33570 Added: kukit/azax/branch/historical/kss1/ - copied from r33569, kukit/azax/branch/kss1/ Removed: kukit/azax/branch/kss1/ Log: history From gotcha at codespeak.net Mon Oct 23 16:22:32 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:22:32 +0200 (CEST) Subject: [Kukit-checkins] r33571 - in kukit/azax/branch: historical/kss2 kss2 Message-ID: <20061023142232.1405A10053@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:22:30 2006 New Revision: 33571 Added: kukit/azax/branch/historical/kss2/ - copied from r33570, kukit/azax/branch/kss2/ Removed: kukit/azax/branch/kss2/ Log: history From gotcha at codespeak.net Mon Oct 23 16:23:01 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:23:01 +0200 (CEST) Subject: [Kukit-checkins] r33572 - in kukit/azax/branch: historical/snowsprint snowsprint Message-ID: <20061023142301.CA70410063@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:23:00 2006 New Revision: 33572 Added: kukit/azax/branch/historical/snowsprint/ - copied from r33571, kukit/azax/branch/snowsprint/ Removed: kukit/azax/branch/snowsprint/ Log: history From gotcha at codespeak.net Mon Oct 23 16:23:31 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:23:31 +0200 (CEST) Subject: [Kukit-checkins] r33573 - in kukit/azax/branch: gotcha-namespaces historical/gotcha-namespaces Message-ID: <20061023142331.9FA2C10063@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:23:30 2006 New Revision: 33573 Added: kukit/azax/branch/historical/gotcha-namespaces/ - copied from r33572, kukit/azax/branch/gotcha-namespaces/ Removed: kukit/azax/branch/gotcha-namespaces/ Log: history From gotcha at codespeak.net Mon Oct 23 16:24:57 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:24:57 +0200 (CEST) Subject: [Kukit-checkins] r33574 - kukit/kukit.js/branch/historical Message-ID: <20061023142457.38BD910063@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:24:56 2006 New Revision: 33574 Added: kukit/kukit.js/branch/historical/ Log: history From gotcha at codespeak.net Mon Oct 23 16:25:36 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:25:36 +0200 (CEST) Subject: [Kukit-checkins] r33575 - in kukit/kukit.js/branch: historical/snowsprint snowsprint Message-ID: <20061023142536.6232810063@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:25:35 2006 New Revision: 33575 Added: kukit/kukit.js/branch/historical/snowsprint/ - copied from r33574, kukit/kukit.js/branch/snowsprint/ Removed: kukit/kukit.js/branch/snowsprint/ Log: history From gotcha at codespeak.net Mon Oct 23 16:26:14 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:26:14 +0200 (CEST) Subject: [Kukit-checkins] r33576 - in kukit/kukit.js/branch: historical/kss1 kss1 Message-ID: <20061023142614.64C2C10063@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:26:13 2006 New Revision: 33576 Added: kukit/kukit.js/branch/historical/kss1/ - copied from r33575, kukit/kukit.js/branch/kss1/ Removed: kukit/kukit.js/branch/kss1/ Log: history From gotcha at codespeak.net Mon Oct 23 16:26:30 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:26:30 +0200 (CEST) Subject: [Kukit-checkins] r33577 - in kukit/kukit.js/branch: historical/kss2 kss2 Message-ID: <20061023142630.9CD6810063@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:26:29 2006 New Revision: 33577 Added: kukit/kukit.js/branch/historical/kss2/ - copied from r33576, kukit/kukit.js/branch/kss2/ Removed: kukit/kukit.js/branch/kss2/ Log: history From gotcha at codespeak.net Mon Oct 23 16:33:59 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:33:59 +0200 (CEST) Subject: [Kukit-checkins] r33579 - in kukit/kukit.js/branch: fschulze-enhancements historical/fschulze-enhancements Message-ID: <20061023143359.92FD010070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:33:58 2006 New Revision: 33579 Added: kukit/kukit.js/branch/historical/fschulze-enhancements/ - copied from r33578, kukit/kukit.js/branch/fschulze-enhancements/ Removed: kukit/kukit.js/branch/fschulze-enhancements/ Log: history From gotcha at codespeak.net Mon Oct 23 16:34:29 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:34:29 +0200 (CEST) Subject: [Kukit-checkins] r33580 - in kukit/kukit.js/branch: gotcha-refactor historical/gotcha-refactor Message-ID: <20061023143429.D020310070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:34:28 2006 New Revision: 33580 Added: kukit/kukit.js/branch/historical/gotcha-refactor/ - copied from r33579, kukit/kukit.js/branch/gotcha-refactor/ Removed: kukit/kukit.js/branch/gotcha-refactor/ Log: history From gotcha at codespeak.net Mon Oct 23 16:36:18 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:36:18 +0200 (CEST) Subject: [Kukit-checkins] r33581 - kukit/azaxdemo/branch/historical Message-ID: <20061023143618.13FA310070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:36:17 2006 New Revision: 33581 Added: kukit/azaxdemo/branch/historical/ Log: history From gotcha at codespeak.net Mon Oct 23 16:36:48 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:36:48 +0200 (CEST) Subject: [Kukit-checkins] r33582 - in kukit/azaxdemo/branch: gotcha-namespaces historical/gotcha-namespaces Message-ID: <20061023143648.ED83310070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:36:47 2006 New Revision: 33582 Added: kukit/azaxdemo/branch/historical/gotcha-namespaces/ - copied from r33581, kukit/azaxdemo/branch/gotcha-namespaces/ Removed: kukit/azaxdemo/branch/gotcha-namespaces/ Log: history From gotcha at codespeak.net Mon Oct 23 16:37:21 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:37:21 +0200 (CEST) Subject: [Kukit-checkins] r33583 - in kukit/azaxdemo/branch: historical/snowsprint snowsprint Message-ID: <20061023143721.B1EB110071@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:37:20 2006 New Revision: 33583 Added: kukit/azaxdemo/branch/historical/snowsprint/ - copied from r33582, kukit/azaxdemo/branch/snowsprint/ Removed: kukit/azaxdemo/branch/snowsprint/ Log: history From gotcha at codespeak.net Mon Oct 23 16:39:32 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:39:32 +0200 (CEST) Subject: [Kukit-checkins] r33584 - in kukit/azaxdemo/branch: historical/kss1 kss1 Message-ID: <20061023143932.C1B4C10071@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:39:31 2006 New Revision: 33584 Added: kukit/azaxdemo/branch/historical/kss1/ - copied from r33583, kukit/azaxdemo/branch/kss1/ Removed: kukit/azaxdemo/branch/kss1/ Log: history From gotcha at codespeak.net Mon Oct 23 16:39:47 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:39:47 +0200 (CEST) Subject: [Kukit-checkins] r33586 - in kukit/azaxdemo/branch: historical/kss2 kss2 Message-ID: <20061023143947.9B57510079@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:39:46 2006 New Revision: 33586 Added: kukit/azaxdemo/branch/historical/kss2/ - copied from r33585, kukit/azaxdemo/branch/kss2/ Removed: kukit/azaxdemo/branch/kss2/ Log: history From gotcha at codespeak.net Mon Oct 23 16:43:48 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:43:48 +0200 (CEST) Subject: [Kukit-checkins] r33587 - kukit/azax/branch/historical/kss1 Message-ID: <20061023144348.5D61C10071@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:43:47 2006 New Revision: 33587 Modified: kukit/azax/branch/historical/kss1/ (props changed) kukit/azax/branch/historical/kss1/EXTERNALS.TXT Log: history Modified: kukit/azax/branch/historical/kss1/EXTERNALS.TXT ============================================================================== --- kukit/azax/branch/historical/kss1/EXTERNALS.TXT (original) +++ kukit/azax/branch/historical/kss1/EXTERNALS.TXT Mon Oct 23 16:43:47 2006 @@ -5,4 +5,4 @@ # You can update your working dir by: # svn propset svn:externals -F EXTERNALS.TXT . # -kukit http://codespeak.net/svn/kukit/kukit.js/branch/kss1 +kukit http://codespeak.net/svn/kukit/kukit.js/branch/historical/kss1 From gotcha at codespeak.net Mon Oct 23 16:45:27 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 16:45:27 +0200 (CEST) Subject: [Kukit-checkins] r33589 - kukit/azax/branch/historical/snowsprint Message-ID: <20061023144527.2CC7110072@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 16:45:25 2006 New Revision: 33589 Modified: kukit/azax/branch/historical/snowsprint/ (props changed) kukit/azax/branch/historical/snowsprint/EXTERNALS.TXT Log: hiatory Modified: kukit/azax/branch/historical/snowsprint/EXTERNALS.TXT ============================================================================== --- kukit/azax/branch/historical/snowsprint/EXTERNALS.TXT (original) +++ kukit/azax/branch/historical/snowsprint/EXTERNALS.TXT Mon Oct 23 16:45:25 2006 @@ -4,5 +4,5 @@ # # created by: svn propset svn:externals -F EXTERNALS.TXT . # -kukit http://codespeak.net/svn/kukit/kukit.js/branch/snowsprint +kukit http://codespeak.net/svn/kukit/kukit.js/branch/historical/snowsprint From gotcha at codespeak.net Mon Oct 23 17:09:20 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:09:20 +0200 (CEST) Subject: [Kukit-checkins] r33590 - kukit/azax/branch/historical/kss2 Message-ID: <20061023150920.BEDC910071@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:09:19 2006 New Revision: 33590 Modified: kukit/azax/branch/historical/kss2/ (props changed) kukit/azax/branch/historical/kss2/EXTERNALS.TXT Log: history Modified: kukit/azax/branch/historical/kss2/EXTERNALS.TXT ============================================================================== --- kukit/azax/branch/historical/kss2/EXTERNALS.TXT (original) +++ kukit/azax/branch/historical/kss2/EXTERNALS.TXT Mon Oct 23 17:09:19 2006 @@ -5,4 +5,4 @@ # You can update your working dir by: # svn propset svn:externals -F EXTERNALS.TXT . # -kukit http://codespeak.net/svn/kukit/kukit.js/trunk +kukit http://codespeak.net/svn/kukit/kukit.js/branch/historical/kss2 From gotcha at codespeak.net Mon Oct 23 17:13:22 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:13:22 +0200 (CEST) Subject: [Kukit-checkins] r33591 - kukit/azax/branch/1.0 Message-ID: <20061023151322.939E210070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:13:21 2006 New Revision: 33591 Added: kukit/azax/branch/1.0/version.txt Log: prepare for release Added: kukit/azax/branch/1.0/version.txt ============================================================================== --- (empty file) +++ kukit/azax/branch/1.0/version.txt Mon Oct 23 17:13:21 2006 @@ -0,0 +1 @@ +azax 1.0 From gotcha at codespeak.net Mon Oct 23 17:13:54 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:13:54 +0200 (CEST) Subject: [Kukit-checkins] r33592 - kukit/azax/branch/1.1 Message-ID: <20061023151354.8E97710070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:13:53 2006 New Revision: 33592 Added: kukit/azax/branch/1.1/version.txt Log: prepare for release Added: kukit/azax/branch/1.1/version.txt ============================================================================== --- (empty file) +++ kukit/azax/branch/1.1/version.txt Mon Oct 23 17:13:53 2006 @@ -0,0 +1 @@ +azax 1.1 From gotcha at codespeak.net Mon Oct 23 17:15:14 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:15:14 +0200 (CEST) Subject: [Kukit-checkins] r33593 - kukit/azax/trunk Message-ID: <20061023151514.41E9F10070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:15:11 2006 New Revision: 33593 Added: kukit/azax/trunk/version.txt Log: prepare for release Added: kukit/azax/trunk/version.txt ============================================================================== --- (empty file) +++ kukit/azax/trunk/version.txt Mon Oct 23 17:15:11 2006 @@ -0,0 +1 @@ +azax after 1.1 unreleased From gotcha at codespeak.net Mon Oct 23 17:16:19 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:16:19 +0200 (CEST) Subject: [Kukit-checkins] r33594 - kukit/azaxdemo/branch/1.0 Message-ID: <20061023151619.7206410070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:16:12 2006 New Revision: 33594 Added: kukit/azaxdemo/branch/1.0/version.txt Log: prepare for release Added: kukit/azaxdemo/branch/1.0/version.txt ============================================================================== --- (empty file) +++ kukit/azaxdemo/branch/1.0/version.txt Mon Oct 23 17:16:12 2006 @@ -0,0 +1 @@ +azaxdemo 1.0 From gotcha at codespeak.net Mon Oct 23 17:16:42 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:16:42 +0200 (CEST) Subject: [Kukit-checkins] r33595 - kukit/azaxdemo/branch/1.1 Message-ID: <20061023151642.5382D10070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:16:41 2006 New Revision: 33595 Added: kukit/azaxdemo/branch/1.1/version.txt Log: prepare for release Added: kukit/azaxdemo/branch/1.1/version.txt ============================================================================== --- (empty file) +++ kukit/azaxdemo/branch/1.1/version.txt Mon Oct 23 17:16:41 2006 @@ -0,0 +1 @@ +azaxdemo 1.1 From gotcha at codespeak.net Mon Oct 23 17:17:27 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:17:27 +0200 (CEST) Subject: [Kukit-checkins] r33596 - kukit/azaxdemo/trunk Message-ID: <20061023151727.474F010070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:17:26 2006 New Revision: 33596 Added: kukit/azaxdemo/trunk/version.txt Log: prepare for release Added: kukit/azaxdemo/trunk/version.txt ============================================================================== --- (empty file) +++ kukit/azaxdemo/trunk/version.txt Mon Oct 23 17:17:26 2006 @@ -0,0 +1 @@ +azaxdemo after 1.1 unreleased From reebalazs at codespeak.net Mon Oct 23 17:20:57 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Mon, 23 Oct 2006 17:20:57 +0200 (CEST) Subject: [Kukit-checkins] r33597 - kukit/kukit.js/branch/1.0 Message-ID: <20061023152057.DF7E510070@code0.codespeak.net> Author: reebalazs Date: Mon Oct 23 17:20:52 2006 New Revision: 33597 Added: kukit/kukit.js/branch/1.0/ - copied from r33596, kukit/kukit.js/trunk/ Log: Branch off kukit.js for release From reebalazs at codespeak.net Mon Oct 23 17:24:12 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Mon, 23 Oct 2006 17:24:12 +0200 (CEST) Subject: [Kukit-checkins] r33598 - kukit/kukit.js/trunk Message-ID: <20061023152412.D004B10071@code0.codespeak.net> Author: reebalazs Date: Mon Oct 23 17:24:10 2006 New Revision: 33598 Added: kukit/kukit.js/trunk/version.txt Log: Add version.txt Added: kukit/kukit.js/trunk/version.txt ============================================================================== --- (empty file) +++ kukit/kukit.js/trunk/version.txt Mon Oct 23 17:24:10 2006 @@ -0,0 +1 @@ +1.0-after unreleased From reebalazs at codespeak.net Mon Oct 23 17:24:58 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Mon, 23 Oct 2006 17:24:58 +0200 (CEST) Subject: [Kukit-checkins] r33599 - kukit/kukit.js/branch/1.0 Message-ID: <20061023152458.B05E610071@code0.codespeak.net> Author: reebalazs Date: Mon Oct 23 17:24:56 2006 New Revision: 33599 Added: kukit/kukit.js/branch/1.0/version.txt Log: Add version.txt Added: kukit/kukit.js/branch/1.0/version.txt ============================================================================== --- (empty file) +++ kukit/kukit.js/branch/1.0/version.txt Mon Oct 23 17:24:56 2006 @@ -0,0 +1 @@ +1.0 From gotcha at codespeak.net Mon Oct 23 17:27:04 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:27:04 +0200 (CEST) Subject: [Kukit-checkins] r33600 - kukit/azax/branch/1.0 Message-ID: <20061023152704.86F0A10070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:27:03 2006 New Revision: 33600 Modified: kukit/azax/branch/1.0/ (props changed) kukit/azax/branch/1.0/EXTERNALS.TXT Log: prepare for release Modified: kukit/azax/branch/1.0/EXTERNALS.TXT ============================================================================== --- kukit/azax/branch/1.0/EXTERNALS.TXT (original) +++ kukit/azax/branch/1.0/EXTERNALS.TXT Mon Oct 23 17:27:03 2006 @@ -5,4 +5,4 @@ # You can update your working dir by: # svn propset svn:externals -F EXTERNALS.TXT . # -kukit http://codespeak.net/svn/kukit/kukit.js/trunk +kukit http://codespeak.net/svn/kukit/kukit.js/branch/1.0 From gotcha at codespeak.net Mon Oct 23 17:28:25 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:28:25 +0200 (CEST) Subject: [Kukit-checkins] r33601 - kukit/azax/branch/1.1 Message-ID: <20061023152825.B55BD10070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:28:24 2006 New Revision: 33601 Modified: kukit/azax/branch/1.1/ (props changed) kukit/azax/branch/1.1/EXTERNALS.TXT Log: prepare for release Modified: kukit/azax/branch/1.1/EXTERNALS.TXT ============================================================================== --- kukit/azax/branch/1.1/EXTERNALS.TXT (original) +++ kukit/azax/branch/1.1/EXTERNALS.TXT Mon Oct 23 17:28:24 2006 @@ -5,5 +5,5 @@ # You can update your working dir by: # svn propset svn:externals -F EXTERNALS.TXT . # -kukit http://codespeak.net/svn/kukit/kukit.js/trunk +kukit http://codespeak.net/svn/kukit/kukit.js/branch/1.0 configfeature http://codespeak.net/svn/z3/jsonserver/branch/merge/configfeature From gotcha at codespeak.net Mon Oct 23 17:29:03 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:29:03 +0200 (CEST) Subject: [Kukit-checkins] r33602 - kukit/azax/branch/1.1 Message-ID: <20061023152903.9CA2B10070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:29:02 2006 New Revision: 33602 Modified: kukit/azax/branch/1.1/version.txt Log: prepare for release Modified: kukit/azax/branch/1.1/version.txt ============================================================================== --- kukit/azax/branch/1.1/version.txt (original) +++ kukit/azax/branch/1.1/version.txt Mon Oct 23 17:29:02 2006 @@ -1 +1 @@ -azax 1.1 +1.1 From gotcha at codespeak.net Mon Oct 23 17:29:30 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:29:30 +0200 (CEST) Subject: [Kukit-checkins] r33603 - kukit/azax/branch/1.0 Message-ID: <20061023152930.55F8310070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:29:29 2006 New Revision: 33603 Modified: kukit/azax/branch/1.0/version.txt Log: prepare for release Modified: kukit/azax/branch/1.0/version.txt ============================================================================== --- kukit/azax/branch/1.0/version.txt (original) +++ kukit/azax/branch/1.0/version.txt Mon Oct 23 17:29:29 2006 @@ -1 +1 @@ -azax 1.0 +1.0 From gotcha at codespeak.net Mon Oct 23 17:30:03 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:30:03 +0200 (CEST) Subject: [Kukit-checkins] r33604 - kukit/azax/trunk Message-ID: <20061023153003.66FE310070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:30:02 2006 New Revision: 33604 Modified: kukit/azax/trunk/version.txt Log: prepare for release Modified: kukit/azax/trunk/version.txt ============================================================================== --- kukit/azax/trunk/version.txt (original) +++ kukit/azax/trunk/version.txt Mon Oct 23 17:30:02 2006 @@ -1 +1 @@ -azax after 1.1 unreleased +1.1-after unreleased From gotcha at codespeak.net Mon Oct 23 17:30:40 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:30:40 +0200 (CEST) Subject: [Kukit-checkins] r33606 - kukit/azaxdemo/trunk Message-ID: <20061023153040.7842710074@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:30:39 2006 New Revision: 33606 Modified: kukit/azaxdemo/trunk/version.txt Log: prepare for release Modified: kukit/azaxdemo/trunk/version.txt ============================================================================== --- kukit/azaxdemo/trunk/version.txt (original) +++ kukit/azaxdemo/trunk/version.txt Mon Oct 23 17:30:39 2006 @@ -1 +1 @@ -azaxdemo after 1.1 unreleased +1.1-after unreleased From gotcha at codespeak.net Mon Oct 23 17:31:05 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:31:05 +0200 (CEST) Subject: [Kukit-checkins] r33607 - kukit/azaxdemo/branch/1.0 Message-ID: <20061023153105.88C6210070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:31:04 2006 New Revision: 33607 Modified: kukit/azaxdemo/branch/1.0/version.txt Log: prepare for release Modified: kukit/azaxdemo/branch/1.0/version.txt ============================================================================== --- kukit/azaxdemo/branch/1.0/version.txt (original) +++ kukit/azaxdemo/branch/1.0/version.txt Mon Oct 23 17:31:04 2006 @@ -1 +1 @@ -azaxdemo 1.0 +1.0 From gotcha at codespeak.net Mon Oct 23 17:31:35 2006 From: gotcha at codespeak.net (gotcha at codespeak.net) Date: Mon, 23 Oct 2006 17:31:35 +0200 (CEST) Subject: [Kukit-checkins] r33608 - kukit/azaxdemo/branch/1.1 Message-ID: <20061023153135.8BBDC10070@code0.codespeak.net> Author: gotcha Date: Mon Oct 23 17:31:34 2006 New Revision: 33608 Modified: kukit/azaxdemo/branch/1.1/version.txt Log: prepare for release Modified: kukit/azaxdemo/branch/1.1/version.txt ============================================================================== --- kukit/azaxdemo/branch/1.1/version.txt (original) +++ kukit/azaxdemo/branch/1.1/version.txt Mon Oct 23 17:31:34 2006 @@ -1 +1 @@ -azaxdemo 1.1 +1.1 From reebalazs at codespeak.net Tue Oct 24 18:42:57 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Tue, 24 Oct 2006 18:42:57 +0200 (CEST) Subject: [Kukit-checkins] r33666 - kukit/kukit.js/tag/1.0.alpha1 Message-ID: <20061024164257.33E631005A@code0.codespeak.net> Author: reebalazs Date: Tue Oct 24 18:42:52 2006 New Revision: 33666 Added: kukit/kukit.js/tag/1.0.alpha1/ - copied from r33665, kukit/kukit.js/branch/1.0/ Log: Tag release From reebalazs at codespeak.net Tue Oct 24 18:43:56 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Tue, 24 Oct 2006 18:43:56 +0200 (CEST) Subject: [Kukit-checkins] r33667 - kukit/azax/tag/1.0.alpha1 Message-ID: <20061024164356.402FC1005A@code0.codespeak.net> Author: reebalazs Date: Tue Oct 24 18:43:52 2006 New Revision: 33667 Added: kukit/azax/tag/1.0.alpha1/ - copied from r33666, kukit/azax/branch/1.0/ Log: Tag release From reebalazs at codespeak.net Tue Oct 24 18:44:15 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Tue, 24 Oct 2006 18:44:15 +0200 (CEST) Subject: [Kukit-checkins] r33668 - kukit/azax/tag/1.1.alpha1 Message-ID: <20061024164415.81F9C1005A@code0.codespeak.net> Author: reebalazs Date: Tue Oct 24 18:44:11 2006 New Revision: 33668 Added: kukit/azax/tag/1.1.alpha1/ - copied from r33667, kukit/azax/branch/1.1/ Log: Tag release From reebalazs at codespeak.net Tue Oct 24 18:47:31 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Tue, 24 Oct 2006 18:47:31 +0200 (CEST) Subject: [Kukit-checkins] r33670 - in kukit/azax/tag: 1.0.alpha1 1.1.alpha1 Message-ID: <20061024164731.F25601005A@code0.codespeak.net> Author: reebalazs Date: Tue Oct 24 18:47:28 2006 New Revision: 33670 Modified: kukit/azax/tag/1.0.alpha1/ (props changed) kukit/azax/tag/1.0.alpha1/EXTERNALS.TXT kukit/azax/tag/1.1.alpha1/ (props changed) kukit/azax/tag/1.1.alpha1/EXTERNALS.TXT Log: Tag release Modified: kukit/azax/tag/1.0.alpha1/EXTERNALS.TXT ============================================================================== --- kukit/azax/tag/1.0.alpha1/EXTERNALS.TXT (original) +++ kukit/azax/tag/1.0.alpha1/EXTERNALS.TXT Tue Oct 24 18:47:28 2006 @@ -5,4 +5,4 @@ # You can update your working dir by: # svn propset svn:externals -F EXTERNALS.TXT . # -kukit http://codespeak.net/svn/kukit/kukit.js/branch/1.0 +kukit http://codespeak.net/svn/kukit/kukit.js/tag/1.0.alpha1 Modified: kukit/azax/tag/1.1.alpha1/EXTERNALS.TXT ============================================================================== --- kukit/azax/tag/1.1.alpha1/EXTERNALS.TXT (original) +++ kukit/azax/tag/1.1.alpha1/EXTERNALS.TXT Tue Oct 24 18:47:28 2006 @@ -5,5 +5,5 @@ # You can update your working dir by: # svn propset svn:externals -F EXTERNALS.TXT . # -kukit http://codespeak.net/svn/kukit/kukit.js/branch/1.0 +kukit http://codespeak.net/svn/kukit/kukit.js/tag/1.0.alpha1 configfeature http://codespeak.net/svn/z3/jsonserver/branch/merge/configfeature From reebalazs at codespeak.net Tue Oct 24 18:49:49 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Tue, 24 Oct 2006 18:49:49 +0200 (CEST) Subject: [Kukit-checkins] r33671 - kukit/azaxdemo/tag/1.0.alpha1 Message-ID: <20061024164949.951171005A@code0.codespeak.net> Author: reebalazs Date: Tue Oct 24 18:49:46 2006 New Revision: 33671 Added: kukit/azaxdemo/tag/1.0.alpha1/ - copied from r33670, kukit/azaxdemo/branch/1.0/ Log: Tag release From reebalazs at codespeak.net Tue Oct 24 18:50:04 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Tue, 24 Oct 2006 18:50:04 +0200 (CEST) Subject: [Kukit-checkins] r33672 - kukit/azaxdemo/tag/1.1.alpha1 Message-ID: <20061024165004.1858E10068@code0.codespeak.net> Author: reebalazs Date: Tue Oct 24 18:50:00 2006 New Revision: 33672 Added: kukit/azaxdemo/tag/1.1.alpha1/ - copied from r33671, kukit/azaxdemo/branch/1.1/ Log: Tag release From reebalazs at codespeak.net Tue Oct 24 19:23:50 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Tue, 24 Oct 2006 19:23:50 +0200 (CEST) Subject: [Kukit-checkins] r33673 - kukit/kukit.js/tag/1.0.alpha1 Message-ID: <20061024172350.BD08010063@code0.codespeak.net> Author: reebalazs Date: Tue Oct 24 19:23:45 2006 New Revision: 33673 Modified: kukit/kukit.js/tag/1.0.alpha1/version.txt Log: change versions in relese Modified: kukit/kukit.js/tag/1.0.alpha1/version.txt ============================================================================== --- kukit/kukit.js/tag/1.0.alpha1/version.txt (original) +++ kukit/kukit.js/tag/1.0.alpha1/version.txt Tue Oct 24 19:23:45 2006 @@ -1 +1 @@ -1.0 +1.0.alpha1 From reebalazs at codespeak.net Tue Oct 24 19:24:25 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Tue, 24 Oct 2006 19:24:25 +0200 (CEST) Subject: [Kukit-checkins] r33674 - in kukit/azax/tag: 1.0.alpha1 1.1.alpha1 Message-ID: <20061024172425.37F7810063@code0.codespeak.net> Author: reebalazs Date: Tue Oct 24 19:24:20 2006 New Revision: 33674 Modified: kukit/azax/tag/1.0.alpha1/version.txt kukit/azax/tag/1.1.alpha1/version.txt Log: change versions in relese Modified: kukit/azax/tag/1.0.alpha1/version.txt ============================================================================== --- kukit/azax/tag/1.0.alpha1/version.txt (original) +++ kukit/azax/tag/1.0.alpha1/version.txt Tue Oct 24 19:24:20 2006 @@ -1 +1 @@ -1.0 +1.0.alpha1 Modified: kukit/azax/tag/1.1.alpha1/version.txt ============================================================================== --- kukit/azax/tag/1.1.alpha1/version.txt (original) +++ kukit/azax/tag/1.1.alpha1/version.txt Tue Oct 24 19:24:20 2006 @@ -1 +1 @@ -1.1 +1.1.alpha1 From reebalazs at codespeak.net Tue Oct 24 19:31:26 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Tue, 24 Oct 2006 19:31:26 +0200 (CEST) Subject: [Kukit-checkins] r33678 - kukit/azaxdemo/tag/1.0.alpha1 Message-ID: <20061024173126.1163510063@code0.codespeak.net> Author: reebalazs Date: Tue Oct 24 19:31:23 2006 New Revision: 33678 Modified: kukit/azaxdemo/tag/1.0.alpha1/version.txt Log: Change version Modified: kukit/azaxdemo/tag/1.0.alpha1/version.txt ============================================================================== --- kukit/azaxdemo/tag/1.0.alpha1/version.txt (original) +++ kukit/azaxdemo/tag/1.0.alpha1/version.txt Tue Oct 24 19:31:23 2006 @@ -1 +1 @@ -1.0 +1.0.alpha1 From reebalazs at codespeak.net Tue Oct 24 19:40:28 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Tue, 24 Oct 2006 19:40:28 +0200 (CEST) Subject: [Kukit-checkins] r33680 - kukit/azaxdemo/tag/1.1.alpha1 Message-ID: <20061024174028.9A8FD10034@code0.codespeak.net> Author: reebalazs Date: Tue Oct 24 19:40:25 2006 New Revision: 33680 Modified: kukit/azaxdemo/tag/1.1.alpha1/version.txt Log: Change version Modified: kukit/azaxdemo/tag/1.1.alpha1/version.txt ============================================================================== --- kukit/azaxdemo/tag/1.1.alpha1/version.txt (original) +++ kukit/azaxdemo/tag/1.1.alpha1/version.txt Tue Oct 24 19:40:25 2006 @@ -1 +1 @@ -1.1 +1.1.alpha1 From jvloothuis at codespeak.net Sun Oct 29 01:39:31 2006 From: jvloothuis at codespeak.net (jvloothuis at codespeak.net) Date: Sun, 29 Oct 2006 01:39:31 +0200 (CEST) Subject: [Kukit-checkins] r33842 - in kukit/azax/trunk: . tests Message-ID: <20061028233931.792FB10078@code0.codespeak.net> Author: jvloothuis Date: Sun Oct 29 01:39:16 2006 New Revision: 33842 Modified: kukit/azax/trunk/commands.py kukit/azax/trunk/configure.zcml kukit/azax/trunk/interfaces.py kukit/azax/trunk/tests/configure-unittest.zcml Log: Changed adapter lookup of command view renderer Modified: kukit/azax/trunk/commands.py ============================================================================== --- kukit/azax/trunk/commands.py (original) +++ kukit/azax/trunk/commands.py Sun Oct 29 01:39:16 2006 @@ -27,7 +27,7 @@ from zope.interface import implements from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile -from interfaces import IAzaxCommands, IAzaxCommand, IAzaxParam +from interfaces import IAzaxCommands, IAzaxCommand, IAzaxParam, IAzaxCommandView import pluginregistry from unicode_quirks import force_unicode from zope.interface import Interface @@ -46,7 +46,7 @@ def render(self, request): '''All methods must use this to return their command set ''' - adapter = zope.component.getMultiAdapter((self, request), Interface, 'render') + adapter = zope.component.getMultiAdapter((self, request), IAzaxCommandView) return adapter.render() Modified: kukit/azax/trunk/configure.zcml ============================================================================== --- kukit/azax/trunk/configure.zcml (original) +++ kukit/azax/trunk/configure.zcml Sun Oct 29 01:39:16 2006 @@ -1,5 +1,6 @@ @@ -35,13 +36,26 @@ /> + - + + + + + + + + Modified: kukit/azax/trunk/interfaces.py ============================================================================== --- kukit/azax/trunk/interfaces.py (original) +++ kukit/azax/trunk/interfaces.py Sun Oct 29 01:39:16 2006 @@ -81,6 +81,13 @@ def getParams(self): '' +class IAzaxCommandView(Interface): + 'View of a command set' + + def render(): + 'This renders the command set' + + class IAzaxParam(Interface): 'An Azax parameter' Modified: kukit/azax/trunk/tests/configure-unittest.zcml ============================================================================== --- kukit/azax/trunk/tests/configure-unittest.zcml (original) +++ kukit/azax/trunk/tests/configure-unittest.zcml Sun Oct 29 01:39:16 2006 @@ -12,9 +12,8 @@ @@ -24,9 +23,8 @@ From jvloothuis at codespeak.net Sun Oct 29 04:09:57 2006 From: jvloothuis at codespeak.net (jvloothuis at codespeak.net) Date: Sun, 29 Oct 2006 04:09:57 +0100 (CET) Subject: [Kukit-checkins] r33843 - in kukit/azax/trunk: . plugins/core tests Message-ID: <20061029030957.9D6E910076@code0.codespeak.net> Author: jvloothuis Date: Sun Oct 29 04:09:50 2006 New Revision: 33843 Modified: kukit/azax/trunk/azaxview.py kukit/azax/trunk/commands.py kukit/azax/trunk/interfaces.py kukit/azax/trunk/plugins/core/commands.py kukit/azax/trunk/tests/commandinspector.py kukit/azax/trunk/tests/test_azaxview.py Log: Added event type and example on how to hook up extra events to the publishing process Modified: kukit/azax/trunk/azaxview.py ============================================================================== --- kukit/azax/trunk/azaxview.py (original) +++ kukit/azax/trunk/azaxview.py Sun Oct 29 04:09:50 2006 @@ -36,12 +36,14 @@ except ImportError: from zope.app.publisher.browser import BrowserView -from zope.interface import implements +from zope.interface import implements, Interface from zope.app import zapi from interfaces import IAzaxView from commands import AzaxCommands +from zope import component + class AzaxBaseView(BrowserView): """ Base azax view @@ -76,7 +78,6 @@ def getCommands(self): return self.commands - class AzaxViewAdapter: implements(IAzaxView) Modified: kukit/azax/trunk/commands.py ============================================================================== --- kukit/azax/trunk/commands.py (original) +++ kukit/azax/trunk/commands.py Sun Oct 29 04:09:50 2006 @@ -162,6 +162,7 @@ The render method does actual marshalling of the commands to be sent to the client. ''' + implements(IAzaxCommandView) def __init__(self, context, request): self.context = context Modified: kukit/azax/trunk/interfaces.py ============================================================================== --- kukit/azax/trunk/interfaces.py (original) +++ kukit/azax/trunk/interfaces.py Sun Oct 29 04:09:50 2006 @@ -18,7 +18,8 @@ # 02111-1307, USA. # -from zope.interface import Interface +from zope.interface import Interface, Attribute +from zope.lifecycleevent.interfaces import IObjectModifiedEvent class IAzaxCommands(Interface): 'Azax commands' @@ -104,3 +105,9 @@ #XXX document all interface def render(): '' + +class IAzaxObjectModifiedEvent(IObjectModifiedEvent): + 'Used to notify of object modification during an Ajax call' + + view = Attribute(u"The Azax view") + Modified: kukit/azax/trunk/plugins/core/commands.py ============================================================================== --- kukit/azax/trunk/plugins/core/commands.py (original) +++ kukit/azax/trunk/plugins/core/commands.py Sun Oct 29 04:09:50 2006 @@ -6,15 +6,20 @@ from azax.azaxview import AzaxViewAdapter from azax.deprecated import deprecated from azax.parsers import XmlParser, HtmlParser + from azax.plugins.core.interfaces import IKSSCoreCommands except ImportError: from Products.azax.selectors import Selector, CssSelector, HtmlIdSelector from Products.azax.azaxview import AzaxViewAdapter from Products.azax.deprecated import deprecated from Products.azax.parsers import XmlParser, HtmlParser + from Products.azax.plugins.core.interfaces import IKSSCoreCommands + +from zope.interface import implements class KSSCoreCommands(AzaxViewAdapter): __allow_access_to_unprotected_subobjects__ = 1 + implements(IKSSCoreCommands) def getSelector(self, type, selector): 'Get a selector of a given type' Modified: kukit/azax/trunk/tests/commandinspector.py ============================================================================== --- kukit/azax/trunk/tests/commandinspector.py (original) +++ kukit/azax/trunk/tests/commandinspector.py Sun Oct 29 04:09:50 2006 @@ -19,6 +19,7 @@ from zope.interface import Interface, implements from zope.app import zapi +from Products.azax.interfaces import IAzaxCommandView class CommandInspectorView(object): '''Inspector view of a command. @@ -28,6 +29,7 @@ Look at the tests to see what checks this makes possible. ''' + implements(IAzaxCommandView) def __init__(self, context, request): self.context = context Modified: kukit/azax/trunk/tests/test_azaxview.py ============================================================================== --- kukit/azax/trunk/tests/test_azaxview.py (original) +++ kukit/azax/trunk/tests/test_azaxview.py Sun Oct 29 04:09:50 2006 @@ -138,4 +138,5 @@ suites.append(unittest.makeSuite(TestAzaxView)) suites.append(unittest.makeSuite(FTestAzaxView)) suites.append(doctest.DocTestSuite('Products.azax.azaxview')) + suites.append(doctest.DocFileSuite('azaxview.txt')) return unittest.TestSuite(suites) From jvloothuis at codespeak.net Sun Oct 29 07:05:07 2006 From: jvloothuis at codespeak.net (jvloothuis at codespeak.net) Date: Sun, 29 Oct 2006 07:05:07 +0100 (CET) Subject: [Kukit-checkins] r33844 - kukit/azax/trunk Message-ID: <20061029060507.259C310082@code0.codespeak.net> Author: jvloothuis Date: Sun Oct 29 07:05:02 2006 New Revision: 33844 Modified: kukit/azax/trunk/azaxview.py kukit/azax/trunk/interfaces.py Log: Made adding different types of events for even nicer by using an extra handle method on the view. This also requires the handlers to be multi adapters Modified: kukit/azax/trunk/azaxview.py ============================================================================== --- kukit/azax/trunk/azaxview.py (original) +++ kukit/azax/trunk/azaxview.py Sun Oct 29 07:05:02 2006 @@ -36,6 +36,8 @@ except ImportError: from zope.app.publisher.browser import BrowserView +from interfaces import IAzaxEvent + from zope.interface import implements, Interface from zope.app import zapi @@ -43,6 +45,7 @@ from commands import AzaxCommands from zope import component +from events import AzaxEvent class AzaxBaseView(BrowserView): """ Base azax view @@ -78,8 +81,16 @@ def getCommands(self): return self.commands + def handle(self, *args): + handle = component.handle + for event in args: # first fire all normal stuff + handle(event) + + for event in args: # now do the azax bits + handle(AzaxEvent(self), event) + + class AzaxViewAdapter: - implements(IAzaxView) def __init__(self, view): Modified: kukit/azax/trunk/interfaces.py ============================================================================== --- kukit/azax/trunk/interfaces.py (original) +++ kukit/azax/trunk/interfaces.py Sun Oct 29 07:05:02 2006 @@ -106,8 +106,10 @@ def render(): '' -class IAzaxObjectModifiedEvent(IObjectModifiedEvent): - 'Used to notify of object modification during an Ajax call' +class IAzaxEvent(Interface): + """Used to notify of events during an Ajax call + + This will normally be accompanied by another event.""" view = Attribute(u"The Azax view") From jvloothuis at codespeak.net Sun Oct 29 07:16:27 2006 From: jvloothuis at codespeak.net (jvloothuis at codespeak.net) Date: Sun, 29 Oct 2006 07:16:27 +0100 (CET) Subject: [Kukit-checkins] r33845 - kukit/azax/trunk/tests Message-ID: <20061029061627.68D4310087@code0.codespeak.net> Author: jvloothuis Date: Sun Oct 29 07:16:22 2006 New Revision: 33845 Modified: kukit/azax/trunk/tests/test_azaxview.py Log: Moved some setup code for the azaxview doctest to a different setup function Modified: kukit/azax/trunk/tests/test_azaxview.py ============================================================================== --- kukit/azax/trunk/tests/test_azaxview.py (original) +++ kukit/azax/trunk/tests/test_azaxview.py Sun Oct 29 07:16:22 2006 @@ -25,6 +25,31 @@ from base import AzaxViewTestCase,FakeContent, TestRequest, DebugTestRequest from Products.azax import AzaxUnicodeError from Products.azax.plugins.core.interfaces import IKSSCoreCommands +from zope.testing.cleanup import CleanUp as PlacelessSetup +from Products.azax.events import AzaxEvent +from Products.azax.interfaces import IAzaxView +from Products.azax.interfaces import IAzaxCommands, IAzaxEvent +from Products.azax.pluginregistry.action import Action +from Products.azax.pluginregistry.plugin import registerPlugin +from Products.azax.plugins.core.commands import KSSCoreCommands +from Products.azax.tests.base import IDebugRequest +from Products.azax.tests.commandinspector import CommandInspectorView +from zope import component + +def setUpDoctTest(test=None): + PlacelessSetup().setUp() + commandview = component.adapter( + IAzaxCommands, IDebugRequest)(CommandInspectorView) + component.provideAdapter(commandview) + + registerPlugin(Action, 'replaceInnerHTML', None, 'selector', + 'html', [], None) + commands = component.adapter(IAzaxView)(KSSCoreCommands) + component.provideAdapter(commands, provides=IKSSCoreCommands) + +def tearDownDoctTest(test=None): + PlacelessSetup().tearDown() + class TestAzaxView(AzaxViewTestCase): @@ -138,5 +163,7 @@ suites.append(unittest.makeSuite(TestAzaxView)) suites.append(unittest.makeSuite(FTestAzaxView)) suites.append(doctest.DocTestSuite('Products.azax.azaxview')) - suites.append(doctest.DocFileSuite('azaxview.txt')) + suites.append(doctest.DocFileSuite('azaxview.txt', + setUp=setUpDoctTest, + tearDown=tearDownDoctTest)) return unittest.TestSuite(suites) From reebalazs at codespeak.net Sun Oct 29 17:42:27 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Sun, 29 Oct 2006 17:42:27 +0100 (CET) Subject: [Kukit-checkins] r33847 - in kukit/azax/trunk: . pluginregistry plugins/core plugins/effects tests Message-ID: <20061029164227.0B79010097@code0.codespeak.net> Author: reebalazs Date: Sun Oct 29 17:42:09 2006 New Revision: 33847 Added: kukit/azax/trunk/pluginregistry/commandset.py Modified: kukit/azax/trunk/azaxview.py kukit/azax/trunk/commands.py kukit/azax/trunk/pluginregistry/__init__.py kukit/azax/trunk/pluginregistry/action.py kukit/azax/trunk/pluginregistry/command.py kukit/azax/trunk/pluginregistry/configure.py kukit/azax/trunk/pluginregistry/configure.zcml kukit/azax/trunk/pluginregistry/directives.py kukit/azax/trunk/pluginregistry/event_type.py kukit/azax/trunk/pluginregistry/interfaces.py kukit/azax/trunk/pluginregistry/meta.zcml kukit/azax/trunk/pluginregistry/plugin.py kukit/azax/trunk/pluginregistry/registry.py kukit/azax/trunk/pluginregistry/selector_type.py kukit/azax/trunk/plugins/core/configure.zcml kukit/azax/trunk/plugins/effects/configure.zcml kukit/azax/trunk/tests/test_azaxview.py Log: Zope refactoring and command set lookup by name instead of interface Modified: kukit/azax/trunk/azaxview.py ============================================================================== --- kukit/azax/trunk/azaxview.py (original) +++ kukit/azax/trunk/azaxview.py Sun Oct 29 17:42:09 2006 @@ -39,10 +39,10 @@ from interfaces import IAzaxEvent from zope.interface import implements, Interface -from zope.app import zapi - from interfaces import IAzaxView from commands import AzaxCommands +import zope.component as capi +from pluginregistry.commandset import getRegisteredCommandSet from zope import component from events import AzaxEvent @@ -85,10 +85,13 @@ handle = component.handle for event in args: # first fire all normal stuff handle(event) - for event in args: # now do the azax bits handle(AzaxEvent(self), event) + def getCommandSet(self, name): + commandset = getRegisteredCommandSet(name) + # return the adapted view + return commandset.provides(self) class AzaxViewAdapter: implements(IAzaxView) Modified: kukit/azax/trunk/commands.py ============================================================================== --- kukit/azax/trunk/commands.py (original) +++ kukit/azax/trunk/commands.py Sun Oct 29 17:42:09 2006 @@ -28,12 +28,13 @@ from zope.interface import implements from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile from interfaces import IAzaxCommands, IAzaxCommand, IAzaxParam, IAzaxCommandView -import pluginregistry from unicode_quirks import force_unicode from zope.interface import Interface import zope.component from parsers import XmlParser, HtmlParser - +from pluginregistry import checkRegisteredCommand_old +from pluginregistry import checkRegisteredCommand, checkRegisteredSelector, \ + AzaxPluginError class AzaxCommands(list): implements(IAzaxCommands) @@ -49,7 +50,6 @@ adapter = zope.component.getMultiAdapter((self, request), IAzaxCommandView) return adapter.render() - class AzaxParam: implements(IAzaxParam) @@ -71,22 +71,26 @@ implements(IAzaxCommand) def __init__(self, command_name, selector=None, **kw): - if pluginregistry.Command.isRegistered(command_name): + try: + checkRegisteredCommand_old(command_name) + except AzaxPluginError: + # we expect this is not registered as command, anyway + # so check it as an action. + checkRegisteredCommand(command_name) + else: # ok. XXX this will be deprecated # All registerCommand commands are obsolete, by default import warnings, textwrap warnings.warn(textwrap.dedent('''\ The usage of the kss command "%s" is deprecated''' % (command_name, )), DeprecationWarning, 2) - else: - pluginregistry.Action.checkRegisteredCommand(command_name) if selector is not None: if isinstance(selector, basestring): # the default selector - given just as a string self.selector = selector self.selectorType = '' else: - pluginregistry.SelectorType.checkRegistered(selector.type) + checkRegisteredSelector(selector.type) self.selector = selector.value self.selectorType = selector.type else: Modified: kukit/azax/trunk/pluginregistry/__init__.py ============================================================================== --- kukit/azax/trunk/pluginregistry/__init__.py (original) +++ kukit/azax/trunk/pluginregistry/__init__.py Sun Oct 29 17:42:09 2006 @@ -2,9 +2,8 @@ Module init ''' -from registry import AzaxPluginError -from plugin import registerPlugin -from command import Command +from plugin import AzaxPluginError +from command import Command, checkRegisteredCommand_old from event_type import EventType -from action import Action -from selector_type import SelectorType +from action import Action, checkRegisteredCommand +from selector_type import SelectorType, checkRegisteredSelector Modified: kukit/azax/trunk/pluginregistry/action.py ============================================================================== --- kukit/azax/trunk/pluginregistry/action.py (original) +++ kukit/azax/trunk/pluginregistry/action.py Sun Oct 29 17:42:09 2006 @@ -1,31 +1,36 @@ -from plugin import Plugin -from registry import AzaxPluginError +from plugin import AzaxPlugin, AzaxPluginError +from interfaces import IAction +from zope.interface import implements +import zope.component as capi + +def checkRegisteredCommand(name): + 'Check if it is a registered command.' + try: + command = capi.getUtility(IAction, name) + except capi.ComponentLookupError: + raise AzaxPluginError, '"%s" is not a registered kss command' % (name, ) + # check if the action has a valid command factory + if command.command_factory == 'none': + raise AzaxPluginError, '"%s" kss command has missing command_factory' % (name, ) + # issue deprecation warning, if necessary + command.check_deprecation() -class Action(Plugin): +class Action(AzaxPlugin): '''The action plugin ''' - plugintype = 'action' + implements(IAction) def __init__(self, name, jsfile, command_factory, params_mandatory, params_optional, deprecated): - Plugin.__init__(self, name, jsfile) + AzaxPlugin.__init__(self, name, jsfile) self.command_factory = command_factory self.params_mandatory = params_mandatory self.params_optional = params_optional self.deprecated = deprecated - def checkRegisteredCommand(cls, name): - command = cls.getRegistered(name) - # check if the action has a valid command factory - if command.command_factory == 'none': - raise AzaxPluginError, '"%s" is not a registered kss command (or missing command_factory?)' % (name, ) - # issue deprecation warning, if necessary - command.check_deprecation() - checkRegisteredCommand = classmethod(checkRegisteredCommand) - def check_deprecation(self): if self.deprecated: import warnings, textwrap Modified: kukit/azax/trunk/pluginregistry/command.py ============================================================================== --- kukit/azax/trunk/pluginregistry/command.py (original) +++ kukit/azax/trunk/pluginregistry/command.py Sun Oct 29 17:42:09 2006 @@ -1,13 +1,23 @@ -from plugin import Plugin +from plugin import AzaxPlugin +from interfaces import ICommand +from plugin import AzaxPluginError +import zope.component as capi +from zope.interface import implements + +def checkRegisteredCommand_old(name): + 'Check if it is a registered command.' + try: + command = capi.getUtility(ICommand, name) + except capi.ComponentLookupError: + raise AzaxPluginError, '"%s" is not a registered kss command' % (name, ) -class Command(Plugin): +class Command(AzaxPlugin): '''The command plugin ''' - plugintype = 'command' + implements(ICommand) def __init__(self, name, jsfile): - Plugin.__init__(self, name, jsfile) - + AzaxPlugin.__init__(self, name, jsfile) Added: kukit/azax/trunk/pluginregistry/commandset.py ============================================================================== --- (empty file) +++ kukit/azax/trunk/pluginregistry/commandset.py Sun Oct 29 17:42:09 2006 @@ -0,0 +1,27 @@ + +from plugin import AzaxPlugin +from interfaces import ICommandSet +from zope.interface import implements +import zope.component as capi + +def getRegisteredCommandSet(name): + 'Get the command set' + try: + commandset = capi.getUtility(ICommandSet, name) + except capi.ComponentLookupError: + raise AzaxPluginError, '"%s" is not a registered kss command set' % (name, ) + return commandset + +class CommandSet(object): + '''The command set plugin + + registers the command adapter interface + (like IKssCoreCommands), this makes possible + to look them up by name instead of by interface + ''' + + implements(ICommandSet) + + def __init__(self, name, provides): + self.name = name + self.provides = provides Modified: kukit/azax/trunk/pluginregistry/configure.py ============================================================================== --- kukit/azax/trunk/pluginregistry/configure.py (original) +++ kukit/azax/trunk/pluginregistry/configure.py Sun Oct 29 17:42:09 2006 @@ -1,9 +1,12 @@ import os.path +from interfaces import ICommand, IEventType, ISelectorType, IAction, \ + ICommandSet from command import Command from event_type import EventType from action import Action from selector_type import SelectorType +from commandset import CommandSet from plugin import registerPlugin #class AzaxConfigurationError(Exception): @@ -30,7 +33,7 @@ _context.action( discriminator = ('registerAzaxCommand', name, jsfile), callable = registerPlugin, - args = (Command, name, jsfile), + args = (Command, ICommand, name, jsfile), ) def registerEventType(_context, name, jsfile=None): @@ -43,7 +46,7 @@ _context.action( discriminator = ('registerAzaxEventType', name, jsfile), callable = registerPlugin, - args = (EventType, name, jsfile), + args = (EventType, IEventType, name, jsfile), ) def registerAction(_context, name, jsfile=None, command_factory='none', @@ -57,7 +60,7 @@ _context.action( discriminator = ('registerAzaxAction', name, jsfile), callable = registerPlugin, - args = (Action, name, jsfile, command_factory, params_mandatory, params_optional, deprecated), + args = (Action, IAction, name, jsfile, command_factory, params_mandatory, params_optional, deprecated), ) def registerSelectorType(_context, name, jsfile=None): @@ -70,5 +73,14 @@ _context.action( discriminator = ('registerAzaxSelectorType', name, jsfile), callable = registerPlugin, - args = (SelectorType, name, jsfile), + args = (SelectorType, ISelectorType, name, jsfile), + ) + +def registerCommandSet(_context, name, provides): + 'Directive that registers a command set' + + _context.action( + discriminator = ('registerAzaxSelectorType', name), + callable = registerPlugin, + args = (CommandSet, ICommandSet, name, provides), ) Modified: kukit/azax/trunk/pluginregistry/configure.zcml ============================================================================== --- kukit/azax/trunk/pluginregistry/configure.zcml (original) +++ kukit/azax/trunk/pluginregistry/configure.zcml Sun Oct 29 17:42:09 2006 @@ -7,4 +7,12 @@ + + + + Modified: kukit/azax/trunk/pluginregistry/directives.py ============================================================================== --- kukit/azax/trunk/pluginregistry/directives.py (original) +++ kukit/azax/trunk/pluginregistry/directives.py Sun Oct 29 17:42:09 2006 @@ -1,6 +1,7 @@ from zope.interface import Interface from zope.schema import TextLine, Choice -from zope.configuration.fields import Path, Tokens, PythonIdentifier +from zope.configuration.fields import Path, Tokens, PythonIdentifier, \ + GlobalInterface # XXX this will go away class IRegisterCommandDirective(Interface): @@ -89,3 +90,18 @@ description=u"The path of the javascript file that defines the plugin", required=False, ) + +class IRegisterCommandSetDirective(Interface): + 'Register an AZAX command set' + + name = TextLine( + title=u"Name", + description=u"The name of the command set component.", + required=True, + ) + + provides = GlobalInterface( + title=u"Provides", + description=u"The interface that does the adaptation on the view for this set", + required=True, + ) Modified: kukit/azax/trunk/pluginregistry/event_type.py ============================================================================== --- kukit/azax/trunk/pluginregistry/event_type.py (original) +++ kukit/azax/trunk/pluginregistry/event_type.py Sun Oct 29 17:42:09 2006 @@ -1,13 +1,15 @@ -from plugin import Plugin +from plugin import AzaxPlugin +from interfaces import IEventType +from zope.interface import implements -class EventType(Plugin): +class EventType(AzaxPlugin): '''The event type plugin ''' - plugintype = 'event_type' + implements(IEventType) def __init__(self, name, jsfile): - Plugin.__init__(self, name, jsfile) + AzaxPlugin.__init__(self, name, jsfile) Modified: kukit/azax/trunk/pluginregistry/interfaces.py ============================================================================== --- kukit/azax/trunk/pluginregistry/interfaces.py (original) +++ kukit/azax/trunk/pluginregistry/interfaces.py Sun Oct 29 17:42:09 2006 @@ -1,7 +1,22 @@ from zope.interface import Interface -class IAzaxPluginRegistry(Interface): - '''Utility of registration - - This allows components to register additional AZAX plugins. +class IAzaxPlugin(Interface): + '''Base for azax plugins + + this represents an entity implemented in a javascript file ''' + +class ICommand(IAzaxPlugin): + '''Command plugin''' + +class IAction(IAzaxPlugin): + '''Action plugin''' + +class IEventType(IAzaxPlugin): + '''Event type plugin''' + +class ISelectorType(IAzaxPlugin): + '''Selector type plugin''' + +class ICommandSet(Interface): + '''Command set plugin''' Modified: kukit/azax/trunk/pluginregistry/meta.zcml ============================================================================== --- kukit/azax/trunk/pluginregistry/meta.zcml (original) +++ kukit/azax/trunk/pluginregistry/meta.zcml Sun Oct 29 17:42:09 2006 @@ -31,6 +31,12 @@ handler=".configure.registerSelectorType" /> + + Modified: kukit/azax/trunk/pluginregistry/plugin.py ============================================================================== --- kukit/azax/trunk/pluginregistry/plugin.py (original) +++ kukit/azax/trunk/pluginregistry/plugin.py Sun Oct 29 17:42:09 2006 @@ -1,36 +1,29 @@ -from registry import getRegistry - -def registerPlugin(cls, *arg, **kw): +from interfaces import IAzaxPlugin +import zope.component as capi +from zope.interface import implements + +class AzaxPluginError(Exception): + pass + +def registerPlugin(cls, interface, name, *arg, **kw): 'Convenience method to help registration' - plugin = cls(*arg, **kw) - plugin.register() - -class Plugin(object): + plugin = cls(name, *arg, **kw) + # check if it's registered: do not allow registration for the second name + try: + capi.getUtility(interface, name=name) + except capi.ComponentLookupError: + pass + else: + raise AzaxPluginError, 'Duplicate registration attempt for plugin "%s" of type %s' % (plugin.name, interface) + # provide the utility. + capi.provideUtility(plugin, interface, name=name) + +class AzaxPlugin(object): 'The base plugin class' - plugintype = None # need to overwrite this with the plugin type + implements(IAzaxPlugin) def __init__(self, name, jsfile): self.name = name self.jsfile = jsfile - - def register(self): - '''The registration method - ''' - getRegistry().register(self) - - def isRegistered(cls, name): - 'Tells if name is a registered plugin for the pluginclass' - return getRegistry().isRegistered(cls.plugintype, name) - isRegistered = classmethod(isRegistered) - - def getRegistered(cls, name): - 'Gets the regustered plugin and raise error if not registered' - return getRegistry().getRegistered(cls.plugintype, name) - getRegistered = classmethod(getRegistered) - - def checkRegistered(cls, name): - 'Check if name is a registered plugin and raise error otherwise' - cls.getRegistered(name) - checkRegistered = classmethod(checkRegistered) Modified: kukit/azax/trunk/pluginregistry/registry.py ============================================================================== --- kukit/azax/trunk/pluginregistry/registry.py (original) +++ kukit/azax/trunk/pluginregistry/registry.py Sun Oct 29 17:42:09 2006 @@ -1,83 +1,26 @@ import zope.component as capi -from interfaces import IAzaxPluginRegistry +from interfaces import IAzaxPlugin from zope.interface import implements # concatresource is an embedded product import _concatresource from concatresource.interfaces import IConcatResourceAddon from json import getJsonAddonFiles +import zope.component as capi -def getRegistry(context=None): - 'Convenience method to get or create the registry.' - try: - registry = capi.getUtility(IAzaxPluginRegistry) - except capi.ComponentLookupError: - # Register the global utility, also register it for concatresources - registry = AzaxPluginRegistry() - capi.provideUtility(registry, IAzaxPluginRegistry) - capi.provideUtility(registry, IConcatResourceAddon, name='kukit.js') - return registry - -class AzaxPluginError(Exception): - pass - -class JsFile(object): - - def __init__(self, name): - self.name = name - self.content = [] - -class AzaxPluginRegistry(object): - implements(IAzaxPluginRegistry, IConcatResourceAddon) - - def __init__(self): - self.jsfiles = {} - self.plugins = {} - - def register(self, plugin): - 'Register a plugin' - # register the plugin - if self.isRegistered(plugin.plugintype, plugin.name): - raise AzaxPluginError, 'Duplicate registration attempt for plugin "%s" of type "%s"' % (plugin.name, plugin.plugintype) - plugins_for_class = self.plugins[plugin.plugintype] - plugins_for_class[plugin.name] = plugin - # register jsfile - if plugin.jsfile is not None: - try: - r = self.jsfiles[plugin.jsfile] - except KeyError: - r = self.jsfiles[plugin.jsfile] = JsFile(plugin.jsfile) - r.content.append((plugin.plugintype, plugin.name)) - - def isRegistered(self, plugintype, name): - 'Tells if name is a registered plugin for the plugintype' - try: - self.getRegistered(plugintype, name) - except AzaxPluginError: - return False - else: - return True +class AzaxConcatResourceAddon(object): + implements(IConcatResourceAddon) - def getRegistered(self, plugintype, name): - 'Get the registered plugin and raise error otherwise' - try: - plugins_for_class = self.plugins[plugintype] - except KeyError: - plugins_for_class = self.plugins[plugintype] = {} - try: - plugin = plugins_for_class[name] - except KeyError: - raise AzaxPluginError, '"%s" is not a registered plugin for plugin type "%s"' % (name, plugintype) - return plugin - - def checkRegistered(self, plugintype, name): - 'Check if name is a registered plugin and raise error otherwise' - self.getRegistered(plugintype, name) - def getAddonFiles(self): try: files = self._addon_files except AttributeError: # Lazy setup of addon files self._addon_files = files = getJsonAddonFiles() - files.extend(self.jsfiles.keys()) + # Lookup all utilities and add up the files from it + plugins = capi.getAllUtilitiesRegisteredFor(IAzaxPlugin) + for plugin in plugins: + if plugin.jsfile and plugin.jsfile not in files: + files.append(plugin.jsfile) return files + +azaxConcatResourceAddon = AzaxConcatResourceAddon() Modified: kukit/azax/trunk/pluginregistry/selector_type.py ============================================================================== --- kukit/azax/trunk/pluginregistry/selector_type.py (original) +++ kukit/azax/trunk/pluginregistry/selector_type.py Sun Oct 29 17:42:09 2006 @@ -1,12 +1,22 @@ -from plugin import Plugin +from plugin import AzaxPlugin +from interfaces import ISelectorType +import zope.component as capi +from zope.interface import implements -class SelectorType(Plugin): +def checkRegisteredSelector(name): + 'Check if it is a registered selector.' + try: + command = capi.getUtility(ISelectorType, name) + except capi.ComponentLookupError: + raise AzaxPluginError, '"%s" is not a registered kss selector' % (name, ) + +class SelectorType(AzaxPlugin): '''The selectortype plugin ''' - plugintype = 'selectortype' + implements(ISelectorType) def __init__(self, name, jsfile): - Plugin.__init__(self, name, jsfile) + AzaxPlugin.__init__(self, name, jsfile) Modified: kukit/azax/trunk/plugins/core/configure.zcml ============================================================================== --- kukit/azax/trunk/plugins/core/configure.zcml (original) +++ kukit/azax/trunk/plugins/core/configure.zcml Sun Oct 29 17:42:09 2006 @@ -39,6 +39,11 @@ jsfile="browser/my_plugins.js" /> + + --> + + + Modified: kukit/azax/trunk/plugins/effects/configure.zcml ============================================================================== --- kukit/azax/trunk/plugins/effects/configure.zcml (original) +++ kukit/azax/trunk/plugins/effects/configure.zcml Sun Oct 29 17:42:09 2006 @@ -65,4 +65,11 @@ params_mandatory="type" /> + + + + Modified: kukit/azax/trunk/tests/test_azaxview.py ============================================================================== --- kukit/azax/trunk/tests/test_azaxview.py (original) +++ kukit/azax/trunk/tests/test_azaxview.py Sun Oct 29 17:42:09 2006 @@ -158,6 +158,19 @@ ''' self.assertCommandsEqual(result, awaited) + def test_setCommandSet(self): + view = self.view + cs = view.getCommandSet('core') + cs.replaceInnerHTML('div.class', 'new content') + result = view.render() + awaited = u'''\ + + new content + +''' + self.assertCommandsEqual(result, awaited) + def test_suite(): suites = [] suites.append(unittest.makeSuite(TestAzaxView)) From jvloothuis at codespeak.net Sun Oct 29 18:36:06 2006 From: jvloothuis at codespeak.net (jvloothuis at codespeak.net) Date: Sun, 29 Oct 2006 18:36:06 +0100 (CET) Subject: [Kukit-checkins] r33849 - kukit/azax/trunk Message-ID: <20061029173606.E926210097@code0.codespeak.net> Author: jvloothuis Date: Sun Oct 29 18:36:04 2006 New Revision: 33849 Added: kukit/azax/trunk/azaxview.txt Log: Added missing doctest file Added: kukit/azax/trunk/azaxview.txt ============================================================================== --- (empty file) +++ kukit/azax/trunk/azaxview.txt Sun Oct 29 18:36:04 2006 @@ -0,0 +1,4 @@ +Testing bla sdffadsfa + + >>> True + False From jvloothuis at codespeak.net Sun Oct 29 18:42:53 2006 From: jvloothuis at codespeak.net (jvloothuis at codespeak.net) Date: Sun, 29 Oct 2006 18:42:53 +0100 (CET) Subject: [Kukit-checkins] r33850 - kukit/azax/trunk/tests Message-ID: <20061029174253.D506210097@code0.codespeak.net> Author: jvloothuis Date: Sun Oct 29 18:42:51 2006 New Revision: 33850 Modified: kukit/azax/trunk/tests/test_azaxview.py Log: Fixed the registration of the plugin that failed due to some refactoring Modified: kukit/azax/trunk/tests/test_azaxview.py ============================================================================== --- kukit/azax/trunk/tests/test_azaxview.py (original) +++ kukit/azax/trunk/tests/test_azaxview.py Sun Oct 29 18:42:51 2006 @@ -28,6 +28,7 @@ from zope.testing.cleanup import CleanUp as PlacelessSetup from Products.azax.events import AzaxEvent from Products.azax.interfaces import IAzaxView +from Products.azax.pluginregistry.interfaces import IAction from Products.azax.interfaces import IAzaxCommands, IAzaxEvent from Products.azax.pluginregistry.action import Action from Products.azax.pluginregistry.plugin import registerPlugin @@ -42,7 +43,7 @@ IAzaxCommands, IDebugRequest)(CommandInspectorView) component.provideAdapter(commandview) - registerPlugin(Action, 'replaceInnerHTML', None, 'selector', + registerPlugin(Action, IAction, 'replaceInnerHTML', None, 'selector', 'html', [], None) commands = component.adapter(IAzaxView)(KSSCoreCommands) component.provideAdapter(commands, provides=IKSSCoreCommands) From jvloothuis at codespeak.net Sun Oct 29 18:44:25 2006 From: jvloothuis at codespeak.net (jvloothuis at codespeak.net) Date: Sun, 29 Oct 2006 18:44:25 +0100 (CET) Subject: [Kukit-checkins] r33851 - in kukit/azax/trunk: . tests Message-ID: <20061029174425.058C610097@code0.codespeak.net> Author: jvloothuis Date: Sun Oct 29 18:44:21 2006 New Revision: 33851 Added: kukit/azax/trunk/events.py kukit/azax/trunk/tests/azaxview.txt Log: Added missing files Added: kukit/azax/trunk/events.py ============================================================================== --- (empty file) +++ kukit/azax/trunk/events.py Sun Oct 29 18:44:21 2006 @@ -0,0 +1,8 @@ +from interfaces import IAzaxEvent +from zope.interface import implements + +class AzaxEvent(object): + implements(IAzaxEvent) + + def __init__(self, view): + self.view = view Added: kukit/azax/trunk/tests/azaxview.txt ============================================================================== --- (empty file) +++ kukit/azax/trunk/tests/azaxview.txt Sun Oct 29 18:44:21 2006 @@ -0,0 +1,50 @@ +===================== +Azax views and events +===================== + +When we make a change using Ajax calls we would like to update the browser +page. This can be done by sending browser commands. Some part of the page may +need to be update based on modifications. + +We don't want to handle all these modifications in our own code. An example of +such a modification change would be changing the title. This should also update +the navigation portlet. + +To make this work azax views do something special. We will explain this by +creating an example. The following will setup our enviroment and show that +normal operation works. + + >>> from Products.azax.azaxview import AzaxBaseView + >>> from Products.azax.interfaces import IAzaxEvent + >>> from Products.azax.plugins.core.interfaces import IKSSCoreCommands + >>> from Products.azax.tests.base import DebugTestRequest + >>> from zope import component + >>> from zope.lifecycleevent import ObjectModifiedEvent + >>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent + + >>> class SampleView(AzaxBaseView): + ... def add_page(self, title): + ... # normally you would change the zope database here + ... self.handle(ObjectModifiedEvent(title)) + ... return self.render() + + >>> request = DebugTestRequest() + >>> view = SampleView(None, request) + >>> view.add_page("some title") + [] + +Now that we have shown that this will not generate any Azax commands we will +register a handler. This handler will catch the object event and add some Azax +commands. + + >>> @component.adapter(IAzaxEvent, IObjectModifiedEvent) + ... def stuff_happend(azax_event, orig_event): + ... IKSSCoreCommands(azax_event.view).replaceInnerHTML( + ... 'div.class', orig_event.object) + >>> component.provideHandler(stuff_happend) + +When we call the renderer now it should have some more data in it. + + >>> view.add_page("some title")[0]['params']['html'] + u'some title' + From jvloothuis at codespeak.net Sun Oct 29 18:59:54 2006 From: jvloothuis at codespeak.net (jvloothuis at codespeak.net) Date: Sun, 29 Oct 2006 18:59:54 +0100 (CET) Subject: [Kukit-checkins] r33852 - kukit/azax/trunk/tests Message-ID: <20061029175954.2837B1009B@code0.codespeak.net> Author: jvloothuis Date: Sun Oct 29 18:59:50 2006 New Revision: 33852 Modified: kukit/azax/trunk/tests/azaxview.txt Log: Fixed encoding Modified: kukit/azax/trunk/tests/azaxview.txt ============================================================================== --- kukit/azax/trunk/tests/azaxview.txt (original) +++ kukit/azax/trunk/tests/azaxview.txt Sun Oct 29 18:59:50 2006 @@ -1,50 +1,52 @@ -===================== -Azax views and events -===================== - -When we make a change using Ajax calls we would like to update the browser -page. This can be done by sending browser commands. Some part of the page may -need to be update based on modifications. - -We don't want to handle all these modifications in our own code. An example of -such a modification change would be changing the title. This should also update -the navigation portlet. - -To make this work azax views do something special. We will explain this by -creating an example. The following will setup our enviroment and show that -normal operation works. - - >>> from Products.azax.azaxview import AzaxBaseView - >>> from Products.azax.interfaces import IAzaxEvent - >>> from Products.azax.plugins.core.interfaces import IKSSCoreCommands - >>> from Products.azax.tests.base import DebugTestRequest - >>> from zope import component - >>> from zope.lifecycleevent import ObjectModifiedEvent - >>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent - - >>> class SampleView(AzaxBaseView): - ... def add_page(self, title): - ... # normally you would change the zope database here - ... self.handle(ObjectModifiedEvent(title)) - ... return self.render() - - >>> request = DebugTestRequest() - >>> view = SampleView(None, request) - >>> view.add_page("some title") - [] - -Now that we have shown that this will not generate any Azax commands we will -register a handler. This handler will catch the object event and add some Azax -commands. - - >>> @component.adapter(IAzaxEvent, IObjectModifiedEvent) - ... def stuff_happend(azax_event, orig_event): - ... IKSSCoreCommands(azax_event.view).replaceInnerHTML( - ... 'div.class', orig_event.object) - >>> component.provideHandler(stuff_happend) - -When we call the renderer now it should have some more data in it. - - >>> view.add_page("some title")[0]['params']['html'] - u'some title' - +===================== +Azax views and events +===================== + +When we make a change using Ajax calls we would like to update the browser +page. This can be done by sending browser commands. Some part of the page may +need to be update based on modifications. + +We don't want to handle all these modifications in our own code. An example of +such a modification change would be changing the title. This should also update +the navigation portlet. + +To make this work azax views do something special. We will explain this by +creating an example. The following will setup our enviroment and show that +normal operation works. + + >>> from Products.azax.azaxview import AzaxBaseView + >>> from Products.azax.interfaces import IAzaxEvent + >>> from Products.azax.plugins.core.interfaces import IKSSCoreCommands + >>> from Products.azax.tests.base import DebugTestRequest + >>> from zope import component + >>> from zope.lifecycleevent import ObjectModifiedEvent + >>> from zope.lifecycleevent.interfaces import IObjectModifiedEvent + +Now we will write our custom. + + >>> class SampleView(AzaxBaseView): + ... def add_page(self, title): + ... # normally you would change the zope database here + ... self.handle(ObjectModifiedEvent(title)) + ... return self.render() + + >>> request = DebugTestRequest() + >>> view = SampleView(None, request) + >>> view.add_page("some title") + [] + +Now that we have shown that this will not generate any Azax commands we will +register a handler. This handler will catch the object event and add some Azax +commands. + + >>> @component.adapter(IAzaxEvent, IObjectModifiedEvent) + ... def stuff_happend(azax_event, orig_event): + ... IKSSCoreCommands(azax_event.view).replaceInnerHTML( + ... 'div.class', orig_event.object) + >>> component.provideHandler(stuff_happend) + +When we call the renderer now it should have some more data in it. + + >>> view.add_page("some title")[0]['params']['html'] + u'some title' + From reebalazs at codespeak.net Sun Oct 29 19:29:25 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Sun, 29 Oct 2006 19:29:25 +0100 (CET) Subject: [Kukit-checkins] r33854 - in kukit/azax/trunk: pluginregistry tests Message-ID: <20061029182925.89F3E100A3@code0.codespeak.net> Author: reebalazs Date: Sun Oct 29 19:29:19 2006 New Revision: 33854 Modified: kukit/azax/trunk/pluginregistry/commandset.py kukit/azax/trunk/tests/azaxview.txt kukit/azax/trunk/tests/test_azaxview.py Log: fix tests Modified: kukit/azax/trunk/pluginregistry/commandset.py ============================================================================== --- kukit/azax/trunk/pluginregistry/commandset.py (original) +++ kukit/azax/trunk/pluginregistry/commandset.py Sun Oct 29 19:29:19 2006 @@ -1,5 +1,5 @@ -from plugin import AzaxPlugin +from plugin import AzaxPlugin, AzaxPluginError from interfaces import ICommandSet from zope.interface import implements import zope.component as capi Modified: kukit/azax/trunk/tests/azaxview.txt ============================================================================== --- kukit/azax/trunk/tests/azaxview.txt (original) +++ kukit/azax/trunk/tests/azaxview.txt Sun Oct 29 19:29:19 2006 @@ -16,7 +16,6 @@ >>> from Products.azax.azaxview import AzaxBaseView >>> from Products.azax.interfaces import IAzaxEvent - >>> from Products.azax.plugins.core.interfaces import IKSSCoreCommands >>> from Products.azax.tests.base import DebugTestRequest >>> from zope import component >>> from zope.lifecycleevent import ObjectModifiedEvent @@ -41,7 +40,7 @@ >>> @component.adapter(IAzaxEvent, IObjectModifiedEvent) ... def stuff_happend(azax_event, orig_event): - ... IKSSCoreCommands(azax_event.view).replaceInnerHTML( + ... azax_event.view.getCommandSet('core').replaceInnerHTML( ... 'div.class', orig_event.object) >>> component.provideHandler(stuff_happend) Modified: kukit/azax/trunk/tests/test_azaxview.py ============================================================================== --- kukit/azax/trunk/tests/test_azaxview.py (original) +++ kukit/azax/trunk/tests/test_azaxview.py Sun Oct 29 19:29:19 2006 @@ -28,10 +28,11 @@ from zope.testing.cleanup import CleanUp as PlacelessSetup from Products.azax.events import AzaxEvent from Products.azax.interfaces import IAzaxView -from Products.azax.pluginregistry.interfaces import IAction +from Products.azax.pluginregistry.interfaces import IAction, ICommandSet from Products.azax.interfaces import IAzaxCommands, IAzaxEvent from Products.azax.pluginregistry.action import Action from Products.azax.pluginregistry.plugin import registerPlugin +from Products.azax.pluginregistry.commandset import CommandSet from Products.azax.plugins.core.commands import KSSCoreCommands from Products.azax.tests.base import IDebugRequest from Products.azax.tests.commandinspector import CommandInspectorView @@ -48,6 +49,8 @@ commands = component.adapter(IAzaxView)(KSSCoreCommands) component.provideAdapter(commands, provides=IKSSCoreCommands) + registerPlugin(CommandSet, ICommandSet, 'core', IKSSCoreCommands) + def tearDownDoctTest(test=None): PlacelessSetup().tearDown() @@ -74,7 +77,7 @@ def _checkSetHtmlResult(self, content, content2=None): view = self.view - IKSSCoreCommands(view).replaceInnerHTML('div.class', content) + view.getCommandSet('core').replaceInnerHTML('div.class', content) commands = view.getCommands() self.assertEqual(len(commands), 1) command = commands[0] @@ -149,7 +152,7 @@ def test_replaceInnerHTML(self): view = self.view - IKSSCoreCommands(view).replaceInnerHTML('div.class', 'new content') + view.getCommandSet('core').replaceInnerHTML('div.class', 'new content') result = view.render() awaited = u'''\ Author: gotcha Date: Sun Oct 29 20:03:00 2006 New Revision: 33858 Modified: kukit/kukit.js/trunk/kukit/plugin.js kukit/kukit.js/trunk/utils/kss.vim Log: improve color syntax, fix keycodes param Modified: kukit/kukit.js/trunk/kukit/plugin.js ============================================================================== --- kukit/kukit.js/trunk/kukit/plugin.js (original) +++ kukit/kukit.js/trunk/kukit/plugin.js Sun Oct 29 20:03:00 2006 @@ -133,24 +133,24 @@ }; kukit.pl.NativeEventBinder.prototype.__bind_key__ = function(name, func_to_bind, oper) { - oper.completeParms([], {'preventdefault': 'true', 'allowbubbling': '', 'keyCodes': ''}, 'native key event binding'); - oper.evalList('keyCodes', 'native key event binding'); + oper.completeParms([], {'preventdefault': 'true', 'allowbubbling': '', 'keycodes': ''}, 'native key event binding'); + oper.evalList('keycodes', 'native key event binding'); oper.evalBool('preventdefault', 'native key event binding'); oper.evalBool('allowbubbling', 'native key event binding'); var allowbubbling = oper.parms.allowbubbling; var preventdefault = oper.parms.preventdefault; var node = oper.node; // Convert keyCode to dict - var keyCodes = {}; - for (var i=0; i Author: gotcha Date: Sun Oct 29 20:04:26 2006 New Revision: 33859 Modified: kukit/azaxdemo/trunk/browser/azax_demo.pt kukit/azaxdemo/trunk/browser/azax_instant_edit.kss kukit/azaxdemo/trunk/browser/preventdefault.kss Log: fix documentation, fix keycodes param Modified: kukit/azaxdemo/trunk/browser/azax_demo.pt ============================================================================== --- kukit/azaxdemo/trunk/browser/azax_demo.pt (original) +++ kukit/azaxdemo/trunk/browser/azax_demo.pt Sun Oct 29 20:04:26 2006 @@ -90,30 +90,28 @@ For instance, let's look at the moveToDivContent response.

-<selectors>
-  <selector>
-    <value>div#copy</value>
-    <commands>
-      <command>
-	<name>copyChildrenTo</name>
-	<data name="html_id">demo</data>
-      </command>
-      <command>
-	<name>clearChildren</name>
-	<data name="none"/>
-      </command>
-    </commands>
-  </selector>
-</selectors>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:kukit="http://www.kukit.org/commands/1.0"><body>
+<kukit:commands>
+<kukit:command selector="div#copy" name="copyChildNodesTo"
+               selectorType="">
+    <kukit:param name="html_id">demo</kukit:param>
+</kukit:command>
+<kukit:command selector="div#copy" name="clearChildNodes"
+               selectorType="">
+</kukit:command>
+</kukit:commands>
+</body></html>
    

The XML specifies two commands to apply to the div#copy node :

- copyChildrenTo copies the children of the DOM node to the node with id demo. + copyChildNodesTo copies the children of the DOM node to the node with id demo.

- clearChildren removes the children of the DOM node. + clearChildNodes removes the children of the DOM node.

Modified: kukit/azaxdemo/trunk/browser/azax_instant_edit.kss ============================================================================== --- kukit/azaxdemo/trunk/browser/azax_instant_edit.kss (original) +++ kukit/azaxdemo/trunk/browser/azax_instant_edit.kss Sun Oct 29 20:04:26 2006 @@ -5,7 +5,7 @@ div#text:keydown { evt-keydown-allowbubbling: true; -evt-keydown-keyCodes: 13; +evt-keydown-keycodes: 13; action-client:log; action-server: saveText; saveText-value:currentFormVar(value); Modified: kukit/azaxdemo/trunk/browser/preventdefault.kss ============================================================================== --- kukit/azaxdemo/trunk/browser/preventdefault.kss (original) +++ kukit/azaxdemo/trunk/browser/preventdefault.kss Sun Oct 29 20:04:26 2006 @@ -7,7 +7,7 @@ /* preventdefault is explicit on this.*/ input#text:keydown { evt-keydown-preventdefault: true; - evt-keydown-keyCodes: 13; + evt-keydown-keycodes: 13; action-client: log; } @@ -29,7 +29,7 @@ div#text-wrapper:keydown { evt-keydown-preventdefault: true; evt-keydown-allowbubbling: true; - evt-keydown-keyCodes: 13; + evt-keydown-keycodes: 13; action-client: log; } From reebalazs at codespeak.net Sun Oct 29 20:07:41 2006 From: reebalazs at codespeak.net (reebalazs at codespeak.net) Date: Sun, 29 Oct 2006 20:07:41 +0100 (CET) Subject: [Kukit-checkins] r33860 - kukit/azaxdemo/trunk Message-ID: <20061029190741.989DA100A0@code0.codespeak.net> Author: reebalazs Date: Sun Oct 29 20:07:39 2006 New Revision: 33860 Modified: kukit/azaxdemo/trunk/azaxview.py Log: Using commandsets Modified: kukit/azaxdemo/trunk/azaxview.py ============================================================================== --- kukit/azaxdemo/trunk/azaxview.py (original) +++ kukit/azaxdemo/trunk/azaxview.py Sun Oct 29 20:07:39 2006 @@ -21,12 +21,8 @@ try: from azax import AzaxBaseView, force_unicode - from azax.plugins.core.interfaces import IKSSCoreCommands - from azax.plugins.effects.interfaces import IScriptaculousEffectsCommands except ImportError: from Products.azax import AzaxBaseView, force_unicode - from Products.azax.plugins.core.interfaces import IKSSCoreCommands - from Products.azax.plugins.effects.interfaces import IScriptaculousEffectsCommands import datetime, time @@ -38,29 +34,29 @@ def clearDivContent(self): """ clear div content """ - IKSSCoreCommands(self).clearChildNodes('div#demo') + self.getCommandSet('core').clearChildNodes('div#demo') return self.render() def copyFromDivContent(self): """ copy div content """ - IKSSCoreCommands(self).copyChildNodesFrom('div#copy', 'demo') + self.getCommandSet('core').copyChildNodesFrom('div#copy', 'demo') return self.render() def copyToDivContent(self): """ copy div content """ - IKSSCoreCommands(self).copyChildNodesTo('div#copy', 'demo') + self.getCommandSet('core').copyChildNodesTo('div#copy', 'demo') return self.render() def moveToDivContent(self): """ copy div content """ - IKSSCoreCommands(self).copyChildNodesTo('div#copy', 'demo') - IKSSCoreCommands(self).clearChildNodes('div#copy') + self.getCommandSet('core').copyChildNodesTo('div#copy', 'demo') + self.getCommandSet('core').clearChildNodes('div#copy') return self.render() def getDivContent(self): """ returns div content """ - IKSSCoreCommands(self).replaceInnerHTML('div#demo', '

it worked

') - IKSSCoreCommands(self).replaceInnerHTML('div#demo', '

it worked again

') + self.getCommandSet('core').replaceInnerHTML('div#demo', '

it worked

') + self.getCommandSet('core').replaceInnerHTML('div#demo', '

it worked again

') return self.render() def getCorrespondingSelect(self, value): @@ -78,24 +74,24 @@ result = ['') - IKSSCoreCommands(self).replaceHTML('select#second', ' '.join(result)) + self.getCommandSet('core').replaceHTML('select#second', ' '.join(result)) return self.render() def getAutoupdateMarkup(self): """ returns the current time """ - IKSSCoreCommands(self).replaceInnerHTML('div#update-wrapper', '
') + self.getCommandSet('core').replaceInnerHTML('div#update-wrapper', '
') return self.render() def getCurrentTime(self): """ returns the current time """ - IKSSCoreCommands(self).replaceInnerHTML('div#update-area', "

%s

" % str(datetime.datetime.now())) + self.getCommandSet('core').replaceInnerHTML('div#update-area', "

%s

" % str(datetime.datetime.now())) return self.render() def getInputField(self, value): 'Inserts the value as entered into an input field' # We need to make unicode. But on Z2 we receive utf-8, on Z3 unicode value = force_unicode(value, 'utf') - IKSSCoreCommands(self).replaceInnerHTML('div#text', + self.getCommandSet('core').replaceInnerHTML('div#text', '
' \ '' ) @@ -105,34 +101,34 @@ 'Inserts the value to display it on the page' # We need to make unicode. But on Z2 we receive utf-8, on Z3 unicode value = force_unicode(value, 'utf') - IKSSCoreCommands(self).replaceInnerHTML('div#text', value+'') + self.getCommandSet('core').replaceInnerHTML('div#text', value+'') return self.render() def expandSubTree(self, value, xvalue): 'Expands given subtree' - IKSSCoreCommands(self).replaceInnerHTML('#text', 'works, expand %s (xhtml attr: %s)' % (value, xvalue)) + self.getCommandSet('core').replaceInnerHTML('#text', 'works, expand %s (xhtml attr: %s)' % (value, xvalue)) return self.render() def collapseSubTree(self, value, xvalue): 'Collapses given subtree' - IKSSCoreCommands(self).replaceInnerHTML('#text', 'works, collapse %s (xhtml attr: %s)' % (value, xvalue)) + self.getCommandSet('core').replaceInnerHTML('#text', 'works, collapse %s (xhtml attr: %s)' % (value, xvalue)) return self.render() def cancelSubmitSave(self, text_save): # We need to make unicode. But on Z2 we receive utf-8, on Z3 unicode text_save = force_unicode(text_save, 'utf') - IKSSCoreCommands(self).replaceInnerHTML('div#async', 'Async saved %s' % text_save) + self.getCommandSet('core').replaceInnerHTML('div#async', 'Async saved %s' % text_save) return self.render() def removeNodeXpath(self): # XXX the xpath selector is now moved out of the core, see suppl, product "azaxslt" sel = self.getSelector('xpath', "//P[@id='xpath']/following-sibling::*[position()=1]") - IKSSCoreCommands(self).deleteNode(sel) + self.getCommandSet('core').deleteNode(sel) return self.render() def clickedButton(self, id): 'Show status of the button clicked' - IKSSCoreCommands(self).replaceInnerHTML('#update-status', "

Button %s clicked. %s

" % (id, datetime.datetime.now())) + self.getCommandSet('core').replaceInnerHTML('#update-status', "

Button %s clicked. %s

" % (id, datetime.datetime.now())) return self.render() def updateSlaveSelector(self, masterid, value): @@ -149,7 +145,7 @@ result.extend(['' % item for item in mapping[value]]) result.append('') # XXX See above remark why we need to replace the outer select. - IKSSCoreCommands(self).replaceHTML('select#%s' % slaveid, ' '.join(result)) + self.getCommandSet('core').replaceHTML('select#%s' % slaveid, ' '.join(result)) return self.render() def formSubmitSave(self, data): @@ -159,11 +155,11 @@ result.append('') # We need to make unicode. But on Z2 we receive utf-8, on Z3 unicode retval = force_unicode(''.join(result), 'utf') - IKSSCoreCommands(self).replaceInnerHTML('div#async', retval) + self.getCommandSet('core').replaceInnerHTML('div#async', retval) return self.render() def reset(self): - IScriptaculousEffectsCommands(self).effect('.effects', 'appear') + self.getCommandSet('effects').effect('.effects', 'appear') return self.render() def errTest(self, id, act): @@ -184,30 +180,30 @@ # self.replaceInnerHTML('#update-status', u'Timeout response, button %s clicked. %s' % (id, datetime.datetime.now())) else: # act = noerror: standard response. - IKSSCoreCommands(self).replaceInnerHTML('#update-status', u'Normal response, button %s clicked. %s' % (id, datetime.datetime.now())) + self.getCommandSet('core').replaceInnerHTML('#update-status', u'Normal response, button %s clicked. %s' % (id, datetime.datetime.now())) return self.render() def htmlReplace(self): """html replace""" - IKSSCoreCommands(self).replaceHTML('div#frame', '

KSS for a life.

') + self.getCommandSet('core').replaceHTML('div#frame', '

KSS for a life.

') return self.render() def htmlInsertBefore(self): """html insert""" - IKSSCoreCommands(self).insertHTMLBefore('#core', '
KSS for a life. %s
' % (str(datetime.datetime.now()), )) + self.getCommandSet('core').insertHTMLBefore('#core', '
KSS for a life. %s
' % (str(datetime.datetime.now()), )) return self.render() def htmlInsertAfter(self): """html insert""" - IKSSCoreCommands(self).insertHTMLAfter('#core', '
KSS for a life. %s
' % (str(datetime.datetime.now()), )) + self.getCommandSet('core').insertHTMLAfter('#core', '
KSS for a life. %s
' % (str(datetime.datetime.now()), )) return self.render() def htmlInsertAsFirstChild(self): """html insert""" - IKSSCoreCommands(self).insertHTMLAsFirstChild('div#frame', '
KSS for a life. %s
' % (str(datetime.datetime.now()), )) + self.getCommandSet('core').insertHTMLAsFirstChild('div#frame', '
KSS for a life. %s
' % (str(datetime.datetime.now()), )) return self.render() def htmlInsertAsLastChild(self): """html insert""" - IKSSCoreCommands(self).insertHTMLAsLastChild('div#frame', '
KSS for a life. %s
' % (str(datetime.datetime.now()), )) + self.getCommandSet('core').insertHTMLAsLastChild('div#frame', '
KSS for a life. %s
' % (str(datetime.datetime.now()), )) return self.render() From jvloothuis at codespeak.net Mon Oct 30 00:13:42 2006 From: jvloothuis at codespeak.net (jvloothuis at codespeak.net) Date: Mon, 30 Oct 2006 00:13:42 +0100 (CET) Subject: [Kukit-checkins] r33863 - kukit/azax/trunk Message-ID: <20061029231342.8313E10091@code0.codespeak.net> Author: jvloothuis Date: Mon Oct 30 00:13:38 2006 New Revision: 33863 Modified: kukit/azax/trunk/azaxview.py Log: Changed to use zope.event for normal event passing Modified: kukit/azax/trunk/azaxview.py ============================================================================== --- kukit/azax/trunk/azaxview.py (original) +++ kukit/azax/trunk/azaxview.py Mon Oct 30 00:13:38 2006 @@ -45,6 +45,7 @@ from pluginregistry.commandset import getRegisteredCommandSet from zope import component +import zope.event from events import AzaxEvent class AzaxBaseView(BrowserView): @@ -82,11 +83,10 @@ return self.commands def handle(self, *args): - handle = component.handle for event in args: # first fire all normal stuff - handle(event) + zope.event.notify(event) for event in args: # now do the azax bits - handle(AzaxEvent(self), event) + component.handle(AzaxEvent(self), event) def getCommandSet(self, name): commandset = getRegisteredCommandSet(name)