From duncan at codespeak.net Tue May 1 11:15:07 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 1 May 2007 11:15:07 +0200 (CEST) Subject: [kupu-checkins] r42518 - kupu/trunk/kupu/doc Message-ID: <20070501091507.89B998075@code0.codespeak.net> Author: duncan Date: Tue May 1 11:15:07 2007 New Revision: 42518 Modified: kupu/trunk/kupu/doc/CHANGES.txt Log: Updated changes.txt Modified: kupu/trunk/kupu/doc/CHANGES.txt ============================================================================== --- kupu/trunk/kupu/doc/CHANGES.txt (original) +++ kupu/trunk/kupu/doc/CHANGES.txt Tue May 1 11:15:07 2007 @@ -2,6 +2,16 @@ Kupu changes ============ +- 1.4 Beta 6 + + - Removed the getToolByName deprecation workround since + getToolByName is now officially undeprecated again. + + - Removed most of the illegally nested forms produced by the xsl. + I hope this will stop IE6 crashing. The image upload form is still + there as it is going to take more major surgery to get rid of that + one. + - 1.4 Beta 5 - Adjusted some more Plone tests to work on Plone 3.0. From duncan at codespeak.net Tue May 1 17:38:18 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 1 May 2007 17:38:18 +0200 (CEST) Subject: [kupu-checkins] r42542 - in kupu/branch/duncan-flash: common common/kupudrawers plone/kupu_plone_layer/plonekupuimages Message-ID: <20070501153818.0A3A08076@code0.codespeak.net> Author: duncan Date: Tue May 1 17:38:18 2007 New Revision: 42542 Added: kupu/branch/duncan-flash/plone/kupu_plone_layer/plonekupuimages/flash-placeholder.png (contents, props changed) Modified: kupu/branch/duncan-flash/common/kupubasetools.js kupu/branch/duncan-flash/common/kupudrawers.js kupu/branch/duncan-flash/common/kupudrawers/drawer.xsl Log: Still work in progress, but basically working if anyone wants to try out Flash in kupu. Modified: kupu/branch/duncan-flash/common/kupubasetools.js ============================================================================== --- kupu/branch/duncan-flash/common/kupubasetools.js (original) +++ kupu/branch/duncan-flash/common/kupubasetools.js Tue May 1 17:38:18 2007 @@ -1254,6 +1254,18 @@ imageWindow.focus(); }; + this.newNode = function(name, obj) { + var ed = this.editor; + var currobj = ed.getNearestParentOfType(ed.getSelectedNode(), name); + if (currobj) { + var p = currobj.parentNode; + p.insertBefore(obj, currobj); + p.removeChild(currobj); + return obj; + } else { + return ed.insertNodeAtSelection(obj, 1); + } + } this.createImage = function(url, alttext, imgclass) { /* create an image */ var img = this.editor.getInnerDocument().createElement('img'); @@ -1266,16 +1278,20 @@ if (imgclass) { img.className = imgclass; }; - img = this.editor.insertNodeAtSelection(img, 1); + this.newNode('IMG', img); this.editor.logMessage(_('Image inserted')); return img; }; - this.createObject = function(url, type, alttext, className, width, height) { + this.create_flash = function(url, alttext, className, width, height) { var ed = this.editor; var obj = ed.newElement('object', - {src:url, alt:alttext, className:className, width:width, height:height, type:type} - [ed.newElement('param', {name:'movie', value:url})]); + {src:url, alt:alttext, className:className, width:width, height:height, type:'application/x-shockwave-flash', + 'data':url}, + [ed.newElement('param', {name:'movie', value:url}), + ed.newElement('img', {src:'plonekupuimages/flash-placeholder.png',width:width,height:height})]); + this.newNode('OBJECT', obj); + this.editor.logMessage(_('Flash inserted')); } this.setImageClass = function(imgclass) { Modified: kupu/branch/duncan-flash/common/kupudrawers.js ============================================================================== --- kupu/branch/duncan-flash/common/kupudrawers.js (original) +++ kupu/branch/duncan-flash/common/kupudrawers.js Tue May 1 17:38:18 2007 @@ -1265,17 +1265,20 @@ } this.createContent = function() { - var currnode = this.editor.getSelectedNode(); - var currimg = this.editor.getNearestParentOfType(currnode, 'IMG'); - this.selectedSrc = currimg?currimg.src:null; + var ed = this.editor; + var currnode = ed.getSelectedNode(); + var currimg = ed.getNearestParentOfType(currnode, 'OBJECT') || ed.getNearestParentOfType(currnode, 'IMG'); + this.selectedSrc = currimg.data||currimg.src||null; this.options = {}; if (currimg) { + ed.getSelection().selectNodeContents(currimg); var className = currimg.className; var align = /\bimage-(left|right|inline)\b/.exec(className); if (align && align.length > 1) { this.options['image-align'] = align[1]; }; this.options['image-caption'] = /\bcaptioned\b/.test(className); + this.options['image-class'] = className.replace(/\b(image-(left|right|inline)|captioned)\b/g,'').strip(); } ImageLibraryDrawer.prototype.createContent.call(this); }; @@ -1354,8 +1357,18 @@ if (caption && caption.length>0 && caption[0].checked) { imgclass += " captioned"; }; - - this.tool.createImage(uri, alt, imgclass); + var classnames = document.getElementById('kupu-image-class'); + if (classnames && classnames.selectedIndex >= 0) { + imgclass += " "+classnames.options[classnames.selectedIndex].value; + } + var media = document.getElementById('kupu-media').value; + var width = document.getElementById('kupu-width').value; + var height = document.getElementById('kupu-height').value; + if (this.tool['create_'+media]) { + this.tool['create_'+media](uri, alt, imgclass, width, height); + } else { + this.tool.createImage(uri, alt, imgclass); + } this.drawertool.closeDrawer(); }; }; Modified: kupu/branch/duncan-flash/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/branch/duncan-flash/common/kupudrawers/drawer.xsl (original) +++ kupu/branch/duncan-flash/common/kupudrawers/drawer.xsl Tue May 1 17:38:18 2007 @@ -51,6 +51,7 @@ yes inline true + @@ -301,6 +302,9 @@
+ + + @@ -327,25 +331,32 @@
-
- - - checked - - document.getElementById('image_alt_div').style.display = +
+ + + checked + + document.getElementById('image_alt_div').style.display = this.checked?'none':''; - - -
+ + +
+ style="margin-top: 1em;">Image size:  + +
+   + +
display:none; @@ -357,6 +368,13 @@
+ + + Added: kupu/branch/duncan-flash/plone/kupu_plone_layer/plonekupuimages/flash-placeholder.png ============================================================================== Binary file. No diff available. From duncan at codespeak.net Fri May 4 10:53:31 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 4 May 2007 10:53:31 +0200 (CEST) Subject: [kupu-checkins] r42662 - kupu/branch/duncan-flash/plone/kupu_plone_layer Message-ID: <20070504085331.2F69E8062@code0.codespeak.net> Author: duncan Date: Fri May 4 10:53:29 2007 New Revision: 42662 Modified: kupu/branch/duncan-flash/plone/kupu_plone_layer/kupuplone.css.dtml Log: Workround to make it possible to edit flash with Firefox. Modified: kupu/branch/duncan-flash/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/branch/duncan-flash/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/branch/duncan-flash/plone/kupu_plone_layer/kupuplone.css.dtml Fri May 4 10:53:29 2007 @@ -291,5 +291,12 @@ .kupu-progresstext { text-align:center;position:absolute;top:0;width:100%; } +/* Firefox makes Flash objects completely invisible. +We need to force it to display something otherwise you cannot edit existing Flash. */ +object.image-inline { + display: block; + background-image: url(plonekupuimages/flash-placeholder.png); + border: 2px green solid; +} /* */ From duncan at codespeak.net Mon May 14 12:15:38 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Mon, 14 May 2007 12:15:38 +0200 (CEST) Subject: [kupu-checkins] r43355 - in kupu/trunk/kupu: common common/kupudrawers doc plone plone/kupu_plone_layer plone/kupu_plone_layer/plonekupuimages Message-ID: <20070514101538.9C4A7807A@code0.codespeak.net> Author: duncan Date: Mon May 14 12:15:37 2007 New Revision: 43355 Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/flash-placeholder.png - copied unchanged from r42662, kupu/branch/duncan-flash/plone/kupu_plone_layer/plonekupuimages/flash-placeholder.png Modified: kupu/trunk/kupu/common/kupubasetools.js kupu/trunk/kupu/common/kupudrawers.js kupu/trunk/kupu/common/kupudrawers/drawer.xsl kupu/trunk/kupu/common/kupuhelpers.js kupu/trunk/kupu/doc/CHANGES.txt kupu/trunk/kupu/doc/LIBRARIES.txt kupu/trunk/kupu/doc/PLONE2.txt kupu/trunk/kupu/plone/kupu_plone_layer/kupucollection.xml.pt kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml kupu/trunk/kupu/plone/librarytool.py kupu/trunk/kupu/plone/plonedrawers.py kupu/trunk/kupu/plone/plonelibrarytool.py kupu/trunk/kupu/plone/resource_types.pt Log: Added experimental support for Flash objects. Media objects (flash + img) now have a customisable list of class names. Modified: kupu/trunk/kupu/common/kupubasetools.js ============================================================================== --- kupu/trunk/kupu/common/kupubasetools.js (original) +++ kupu/trunk/kupu/common/kupubasetools.js Mon May 14 12:15:37 2007 @@ -1254,6 +1254,18 @@ imageWindow.focus(); }; + this.newNode = function(name, obj) { + var ed = this.editor; + var currobj = ed.getNearestParentOfType(ed.getSelectedNode(), name); + if (currobj) { + var p = currobj.parentNode; + p.insertBefore(obj, currobj); + p.removeChild(currobj); + return obj; + } else { + return ed.insertNodeAtSelection(obj, 1); + } + } this.createImage = function(url, alttext, imgclass) { /* create an image */ var img = this.editor.getInnerDocument().createElement('img'); @@ -1266,11 +1278,21 @@ if (imgclass) { img.className = imgclass; }; - img = this.editor.insertNodeAtSelection(img, 1); + this.newNode('IMG', img); this.editor.logMessage(_('Image inserted')); return img; }; + this.create_flash = function(url, alttext, className, width, height) { + var ed = this.editor; + var obj = ed.newElement('object', + {src:url, alt:alttext, className:className, width:width, height:height, type:'application/x-shockwave-flash', + 'data':url}, + [ed.newElement('param', {name:'movie', value:url})]); + this.newNode('OBJECT', obj); + this.editor.logMessage(_('Flash inserted')); + } + this.setImageClass = function(imgclass) { /* set the class of the selected image */ var currnode = this.editor.getSelectedNode(); Modified: kupu/trunk/kupu/common/kupudrawers.js ============================================================================== --- kupu/trunk/kupu/common/kupudrawers.js (original) +++ kupu/trunk/kupu/common/kupudrawers.js Mon May 14 12:15:37 2007 @@ -1265,17 +1265,20 @@ } this.createContent = function() { - var currnode = this.editor.getSelectedNode(); - var currimg = this.editor.getNearestParentOfType(currnode, 'IMG'); - this.selectedSrc = currimg?currimg.src:null; + var ed = this.editor; + var currnode = ed.getSelectedNode(); + var currimg = ed.getNearestParentOfType(currnode, 'OBJECT') || ed.getNearestParentOfType(currnode, 'IMG'); + this.selectedSrc = currimg.data||currimg.src||null; this.options = {}; if (currimg) { + ed.getSelection().selectNodeContents(currimg); var className = currimg.className; var align = /\bimage-(left|right|inline)\b/.exec(className); if (align && align.length > 1) { this.options['image-align'] = align[1]; }; this.options['image-caption'] = /\bcaptioned\b/.test(className); + this.options['image-class'] = className.replace(/\b(image-(left|right|inline)|captioned)\b/g,'').strip(); } ImageLibraryDrawer.prototype.createContent.call(this); }; @@ -1354,8 +1357,18 @@ if (caption && caption.length>0 && caption[0].checked) { imgclass += " captioned"; }; - - this.tool.createImage(uri, alt, imgclass); + var classnames = document.getElementById('kupu-image-class'); + if (classnames && classnames.selectedIndex >= 0) { + imgclass += " "+classnames.options[classnames.selectedIndex].value; + } + var media = document.getElementById('kupu-media').value; + var width = document.getElementById('kupu-width').value; + var height = document.getElementById('kupu-height').value; + if (this.tool['create_'+media]) { + this.tool['create_'+media](uri, alt, imgclass, width, height); + } else { + this.tool.createImage(uri, alt, imgclass); + } this.drawertool.closeDrawer(); }; }; Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Mon May 14 12:15:37 2007 @@ -51,6 +51,7 @@ yes inline true + @@ -286,14 +287,18 @@ If a 'preview' tag is available then that one is used, otherwise 'uri'. --> - - - - - - - - + + + + + + + + + + + @@ -301,6 +306,9 @@
+ + + if(event.keyCode==13)return false; @@ -329,29 +337,46 @@ This is a browser-imposed limitation.
+ -
- - if(event.keyCode==13)return false; - - checked - - document.getElementById('image_alt_div').style.display = - this.checked?'none':''; - - -
+ + + +
+ + if(event.keyCode==13)return false; + + checked + + document.getElementById('image_alt_div').style.display = + this.checked?'none':''; + + +
+
+
+
+ style="margin-top: 1em;">Image size:  +
+
+ +
+   + +
- + display:none; @@ -362,6 +387,13 @@
+ + + Modified: kupu/trunk/kupu/common/kupuhelpers.js ============================================================================== --- kupu/trunk/kupu/common/kupuhelpers.js (original) +++ kupu/trunk/kupu/common/kupuhelpers.js Mon May 14 12:15:37 2007 @@ -1011,7 +1011,7 @@ // to just before the element instead of inside it, and since IE doesn't reserve // an index for the element itself as well the way to get it inside the element is // by moving the start one pos and then moving it back (yuck!) - var range = this.selection.createRange().duplicate(); + var range = doc.body.createTextRange(); range.moveToElementText(node); range.moveStart('character', 1); range.moveStart('character', -1); Modified: kupu/trunk/kupu/doc/CHANGES.txt ============================================================================== --- kupu/trunk/kupu/doc/CHANGES.txt (original) +++ kupu/trunk/kupu/doc/CHANGES.txt Mon May 14 12:15:37 2007 @@ -2,6 +2,12 @@ Kupu changes ============ +- Recent + + - Added in some support for inserting Flash content. + + - Media objects may now have a list of classes (specific to the portal type). + - 1.4 Beta 6 - Removed the getToolByName deprecation workround since Modified: kupu/trunk/kupu/doc/LIBRARIES.txt ============================================================================== --- kupu/trunk/kupu/doc/LIBRARIES.txt (original) +++ kupu/trunk/kupu/doc/LIBRARIES.txt Mon May 14 12:15:37 2007 @@ -120,7 +120,10 @@ & element label { text }? & ## Icon to use in resource pane - element icon { xsd:anyURI }?) + element icon { xsd:anyURI }? + & + ## Type of media to insert in document + element media { text }?) ## A list of collections and resources with an optional upload button at the end. collectionItems = @@ -405,13 +408,18 @@ - Go to the kupu configlet/resource types tab. Scroll to the bottom of the page. - - Under 'preview URLs' select the type 'Image' and under URL enter: + - Under 'preview URLs' select the type 'Image' and under preview enter: string:${object_url}/image_thumb - Hit the 'Save' button. +Flash support +------------- + +See PLONE2.txt + Futures ------- Modified: kupu/trunk/kupu/doc/PLONE2.txt ============================================================================== --- kupu/trunk/kupu/doc/PLONE2.txt (original) +++ kupu/trunk/kupu/doc/PLONE2.txt Mon May 14 12:15:37 2007 @@ -339,6 +339,15 @@ Defaults to 'image'. N.B. This is a literal string, not a tal expression. + classes + An optional list of class names to be allowed for this media + type. The class names will be applied in addition to + left/inline/right and captioned class names. + + type + This controls whether kupu inserts an img tag or an object + tag. Only images and flash objects are supported at this time. + documentation tab ================= @@ -645,6 +654,45 @@ clear: both; } +Flash +----- +Kupu has some support for embedding Flash objects using the +ATFlashMovie content type, but requires some configuration. Other +Flash content types may also work but have not been tested. + + 1. Install ATFlashMovie. + + 2. Got to the resource types tab of the configlet. + + 3. Under the resource ``mediaobject`` add Flash Movie to the + selection and save. + + 4. In the action urls table at the bottom of the page, add a new + entry for the type Flash Movie. The preview may be left blank + (kupu does not currently support previewing Flash), or you could + select a generic 'Flash' image. For 'normal image' you should + enter ``string:${object_url}/download``. Leave fieldname blank + and in the 'type' field select 'Flash'. + +Flash movies should now appear in the image drawer and be insertable +into the document. Using IE the Flash movie will appear in the +document and may be edited or moved as desired. Firefox will not play +the movie while you are editing, so a 'flash placeholder' image is +displayed instead: you cannot select it in Firefox so if you need to +delete a Flash movie you will need to include the image in a slightly +larger selection (e.g. spaces before and after) and delete that. + +Known problems +============== +When selecting a flash object in IE you need to be sure to get a +selection only with sizing handles (by clicking exactly on the edge). +If the selection box also shows cross-hatched then you have clicked +inside the Flash object and kupu will not be able to determine the +current selection. + +In IE the Flash object sometimes appears over the top of the drawer. +Workaround: close the drawer and try again. + References from HTML text ------------------------- Kupu can be made to store archetypes references for any HTML field. Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupucollection.xml.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupucollection.xml.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupucollection.xml.pt Mon May 14 12:15:37 2007 @@ -37,6 +37,9 @@ tal:content="info/url">URI icon + mime type + size Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml Mon May 14 12:15:37 2007 @@ -291,5 +291,12 @@ .kupu-progresstext { text-align:center;position:absolute;top:0;width:100%; } +/* Firefox makes Flash objects completely invisible. +We need to force it to display something otherwise you cannot edit existing Flash. */ +.kupu-html object.image-inline { + display: block; + background-image: url(plonekupuimages/flash-placeholder.png); + border: 2px green solid; +} /* */ Modified: kupu/trunk/kupu/plone/librarytool.py ============================================================================== --- kupu/trunk/kupu/plone/librarytool.py (original) +++ kupu/trunk/kupu/plone/librarytool.py Mon May 14 12:15:37 2007 @@ -256,12 +256,17 @@ if normal: normal = Expression(normal) scalefield = a.get('scalefield', 'image') + classes = a.get('classes', '').split('\n') + mediatype = a.get('mediatype', 'image') if not portal_type: continue action_map[portal_type] = { 'expression': Expression(preview), 'normal': normal, - 'scalefield': scalefield, } + 'scalefield': scalefield, + 'classes': classes, + 'mediatype': mediatype, + } self._preview_actions = action_map def deleteResourceTypes(self, resource_types): Modified: kupu/trunk/kupu/plone/plonedrawers.py ============================================================================== --- kupu/trunk/kupu/plone/plonedrawers.py (original) +++ kupu/trunk/kupu/plone/plonedrawers.py Mon May 14 12:15:37 2007 @@ -207,7 +207,28 @@ if type is None: return None return "%s/%s" % (self.base, type.getIcon()) - + + def media(self, portal_type): + """Get the media type to be included in the xml. + Since 'image' is the default we can omit it.""" + media = self.tool.getMediaForType(portal_type) + if media=='image': + return None + return media + + def classes(self, portal_type): + stored = self.tool.getClassesForType(portal_type) + classes = [] + for c in stored: + c = c.strip() + if not c: + continue + if '|' in c: + title, classname = c.split('|', 1) + classes.append({'title': title, 'classname': classname}) + else: + classes.append({'title': c, 'classname': c}) + return classes def sizes(self, obj): """Returns size, width, height""" @@ -312,6 +333,8 @@ normal = url sizes = self.get_image_sizes(obj, portal_type, url) + media = self.media(portal_type) + classes = self.classes(portal_type) icon = self.icon(portal_type) size, width, height = self.sizes(obj) @@ -338,6 +361,8 @@ 'height': height, 'preview': preview, 'sizes': sizes, + 'media': media, + 'classes': classes, 'title': title, 'description': description, 'linkable': linkable, @@ -389,6 +414,8 @@ normal = url sizes = self.get_image_sizes(brain, portal_type, url) + media = self.media(portal_type) + classes = self.classes(portal_type) icon = self.icon(portal_type) size, width, height = self.sizes(brain) @@ -414,6 +441,8 @@ 'height': height, 'preview': preview, 'sizes': sizes, + 'media': media, + 'classes': classes, 'title': title, 'description': description, 'linkable': linkable, Modified: kupu/trunk/kupu/plone/plonelibrarytool.py ============================================================================== --- kupu/trunk/kupu/plone/plonelibrarytool.py (original) +++ kupu/trunk/kupu/plone/plonelibrarytool.py Mon May 14 12:15:37 2007 @@ -682,6 +682,17 @@ value = action_map.get(portal_type, {}).get('scalefield', 'image') return value + security.declareProtected(permissions.ManageLibraries, "getClassesForType") + def getClassesForType(self, portal_type): + action_map = getattr(self, '_preview_actions', {}) + return action_map.get(portal_type, {}).get('classes', ()) + + security.declareProtected(permissions.ManageLibraries, "getMediaForType") + def getMediaForType(self, portal_type): + action_map = getattr(self, '_preview_actions', {}) + value = action_map.get(portal_type, {}).get('mediatype', 'image') + return value + security.declareProtected(permissions.ManageLibraries, "set_html_exclusions") def set_html_exclusions(self, exclusions): """Set the html_exclusions. Modified: kupu/trunk/kupu/plone/resource_types.pt ============================================================================== --- kupu/trunk/kupu/plone/resource_types.pt (original) +++ kupu/trunk/kupu/plone/resource_types.pt Mon May 14 12:15:37 2007 @@ -1,249 +1,285 @@ - - - -
-

Kupu Resource Types

-
-

While libraries provide abstract locations for objects of any type, -Kupu distinguishes objects by resource type. For example, a user might -request a library showing objects to link to or a library showing -objects to be inserted into a document. The abstract location -(library) might be the same, but the former library would contain -documents, the latter images.

- -

This management screen allows you to define resource types using a -list of portal types. A special resource type, collection, -identifies portal types that are to be treated as collections. -The resource type containsanchors is used to list types which -may contain HTML anchors.

- -

Also on this screen are urls -for each type which can be previewed as an image. The expression may -use object_url and portal_type, but should -not attempt to access the object directly. The resulting URL should -ideally return an image no larger than 128 pixels square.

- -
-Map resource types - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Map resource types
 
use this entry to add a new resource -
- - - Resource - -
Portal Types - -
New types - -
 
specify a resource type to be used for reference fields with an empty list of allowed types -
Default resource - -
  - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Action URLs
TypeURL
- - - - typepreview - -
Normal mage - -
fieldname - -
- - - - preview - -
Normal Image - -
fieldname - -
  - - - Preview is an expression to use for the preview image in the drawer [default is no preview]. - Normal image is an expression to use for the normal view of a mediaobject [string:$object_url]. - Fieldname is the name of the field to use for scaled variants of the mediaobject [image]. - -
- -
-
-
- +lang="en" +metal:use-macro="here/kupu_config/macros/master" +i18n:domain="kupuconfig"> + + +
+

Kupu Resource Types

+
+

While libraries provide abstract locations for objects of any type, + Kupu distinguishes objects by resource type. For example, a user might + request a library showing objects to link to or a library showing + objects to be inserted into a document. The abstract location + (library) might be the same, but the former library would contain + documents, the latter images.

+

This management screen allows you to define resource types using a + list of portal types. A special resource type, collection, + identifies portal types that are to be treated as collections. + The resource type containsanchors is used to list types which + may contain HTML anchors.

+ +

Also on this screen are urls + for each type which can be previewed as an image. The expression may + use object_url and portal_type, but should + not attempt to access the object directly. The resulting URL should + ideally return an image no larger than 128 pixels square.

+ +
+ Map resource types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Map resource types
 
use this entry to add a new resource +
+ + + Resource + +
Portal Types + +
New types + +
 
specify a resource type to be used for reference fields with an empty list of allowed types +
Default resource + +
  + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Action URLs
TypeURL
+ + + + typepreview + +
Normal image + +
fieldname + +
classes + +
type + +
  + + +
+ Preview is an expression to use for the preview image in the drawer [default is no preview]. + Normal image is an expression to use for the normal view of a mediaobject [string:$object_url]. + Fieldname is the name of the field to use for scaled variants of the mediaobject [image]. + Classes is a list of classnames which may be selected when inserting the object as media. + Type controls whether kupu inserts an img tag or an object tag to embed flash. + +
+ +
+
+
+ - - From duncan at codespeak.net Mon May 14 12:20:54 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Mon, 14 May 2007 12:20:54 +0200 (CEST) Subject: [kupu-checkins] r43356 - kupu/trunk/kupu/doc Message-ID: <20070514102054.81D71807A@code0.codespeak.net> Author: duncan Date: Mon May 14 12:20:54 2007 New Revision: 43356 Modified: kupu/trunk/kupu/doc/PLONE2.txt Log: Update documentation. Modified: kupu/trunk/kupu/doc/PLONE2.txt ============================================================================== --- kupu/trunk/kupu/doc/PLONE2.txt (original) +++ kupu/trunk/kupu/doc/PLONE2.txt Mon May 14 12:20:54 2007 @@ -668,11 +668,10 @@ selection and save. 4. In the action urls table at the bottom of the page, add a new - entry for the type Flash Movie. The preview may be left blank - (kupu does not currently support previewing Flash), or you could - select a generic 'Flash' image. For 'normal image' you should - enter ``string:${object_url}/download``. Leave fieldname blank - and in the 'type' field select 'Flash'. + entry for the type Flash Movie. The preview may be left blank or be + the same as the 'normal' image. For 'normal image' you should enter + ``string:${object_url}/download``. Leave fieldname blank and in the + 'type' field select 'Flash'. Flash movies should now appear in the image drawer and be insertable into the document. Using IE the Flash movie will appear in the From duncan at codespeak.net Mon May 14 12:44:45 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Mon, 14 May 2007 12:44:45 +0200 (CEST) Subject: [kupu-checkins] r43357 - in kupu/trunk/kupu/plone: . kupu_plone_layer Message-ID: <20070514104445.302AC807A@code0.codespeak.net> Author: duncan Date: Mon May 14 12:44:44 2007 New Revision: 43357 Modified: kupu/trunk/kupu/plone/exportimport.py kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py kupu/trunk/kupu/plone/librarytool.py kupu/trunk/kupu/plone/z3interfaces.py Log: GS support for image classes. Modified: kupu/trunk/kupu/plone/exportimport.py ============================================================================== --- kupu/trunk/kupu/plone/exportimport.py (original) +++ kupu/trunk/kupu/plone/exportimport.py Mon May 14 12:44:44 2007 @@ -171,10 +171,15 @@ previewaction = kupu.getPreviewForType(portal_type) normalaction = kupu.getNormalViewForType(portal_type) scalefield = kupu.getScaleFieldForType(portal_type) + classes = kupu.getClassesForType(portal_type) + mediatype = kupu.getMediaForType(portal_type) res.append(dict(portal_type=portal_type, previewaction=previewaction, normalaction=normalaction, - scalefield=scalefield)) + scalefield=scalefield, + classes=classes, + mediatype=mediatype, + )) return res security.declarePrivate('_getExportTemplate') @@ -247,7 +252,10 @@ 'preview': { KEY:'expression', DEFAULT: ''}, 'normal': { DEFAULT: ''}, 'scalefield': { DEFAULT: 'image' }, + 'previewclass': { KEY: 'classes', DEFAULT: ()}, + 'mediatype': { DEFAULT: ''}, }, + 'previewclass': { '#text': {KEY:None}, }, 'generatepreviews': {}, 'globaltoolbar': { '#text': { KEY:None }, }, 'toolbar': Modified: kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py Mon May 14 12:44:44 2007 @@ -101,6 +101,8 @@ 'expression': PREVIEW_EXPR % image, 'normal': None, 'scalefield': image.split('_',1)[0], + 'classes': '', + 'mediatype': 'image', } for (type, image) in tool.getPreviewable() ] # e.g. PREVIEW=[{'portal_type': 'Image', Modified: kupu/trunk/kupu/plone/librarytool.py ============================================================================== --- kupu/trunk/kupu/plone/librarytool.py (original) +++ kupu/trunk/kupu/plone/librarytool.py Mon May 14 12:44:44 2007 @@ -256,7 +256,10 @@ if normal: normal = Expression(normal) scalefield = a.get('scalefield', 'image') - classes = a.get('classes', '').split('\n') + classes = a.get('classes', '') + if isinstance(classes, basestring): + classes = classes.split('\n') + classes = tuple(classes) mediatype = a.get('mediatype', 'image') if not portal_type: continue Modified: kupu/trunk/kupu/plone/z3interfaces.py ============================================================================== --- kupu/trunk/kupu/plone/z3interfaces.py (original) +++ kupu/trunk/kupu/plone/z3interfaces.py Mon May 14 12:44:44 2007 @@ -83,15 +83,20 @@ def getCookedLibraries(context): """Return a list of libraries with our own parameters included""" - def getPreviewForType(self, portal_type): + def getPreviewForType(portal_type): """Get the preview url for a specific type""" - def getNormalViewForType(self, portal_type): + def getNormalViewForType(portal_type): """Get the normal view url for a specific type""" - def getScaleFieldForType(self, portal_type): + def getScaleFieldForType(portal_type): """Get the name of the field containing a scalable image""" + def getClassesForType(portal_type): + """Get a sequence of classes that may be applied""" + + def getMediaForType(portal_type): + """Gets the media type image/flash""" def configure_kupu( linkbyuid, table_classnames, html_exclusions, style_whitelist, class_blacklist, From duncan at codespeak.net Mon May 14 15:58:47 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Mon, 14 May 2007 15:58:47 +0200 (CEST) Subject: [kupu-checkins] r43369 - kupu/trunk/kupu/plone Message-ID: <20070514135847.428F28084@code0.codespeak.net> Author: duncan Date: Mon May 14 15:58:46 2007 New Revision: 43369 Modified: kupu/trunk/kupu/plone/html2captioned.py Log: Output transform fixes up Flash uid urls. Modified: kupu/trunk/kupu/plone/html2captioned.py ============================================================================== --- kupu/trunk/kupu/plone/html2captioned.py (original) +++ kupu/trunk/kupu/plone/html2captioned.py Mon May 14 15:58:46 2007 @@ -62,7 +62,7 @@ ''' -UID_PATTERN = re.compile('(?P<(?:a|img)\\s[^>]*(?:src|href)\s*=\s*")(?P[^"]*resolveuid/(?P[^/"#? ]*))', re.DOTALL | re.IGNORECASE) +UID_PATTERN = re.compile('(?P<(?:a|img|object|param)\\s[^>]*(?:src|href|data|value)\s*=\s*")(?P[^"]*resolveuid/(?P[^/"#? ]*))', re.DOTALL | re.IGNORECASE) class HTMLToCaptioned: """Transform which adds captions to images embedded in HTML""" From duncan at codespeak.net Tue May 15 12:10:59 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 15 May 2007 12:10:59 +0200 (CEST) Subject: [kupu-checkins] r43402 - kupu/trunk/kupu/common Message-ID: <20070515101059.EC248808F@code0.codespeak.net> Author: duncan Date: Tue May 15 12:10:58 2007 New Revision: 43402 Modified: kupu/trunk/kupu/common/kupubasetools.js Log: Danny asked "Can you please add the 'kupu-fulleditor-zoomed' class to the body inside the iframe when it's in zoomed mode? I cannot create a css rule to adjust margins and sizes otherwise." Modified: kupu/trunk/kupu/common/kupubasetools.js ============================================================================== --- kupu/trunk/kupu/common/kupubasetools.js (original) +++ kupu/trunk/kupu/common/kupubasetools.js Tue May 15 12:10:58 2007 @@ -1265,7 +1265,7 @@ } else { return ed.insertNodeAtSelection(obj, 1); } - } + }; this.createImage = function(url, alttext, imgclass) { /* create an image */ var img = this.editor.getInnerDocument().createElement('img'); @@ -1291,7 +1291,7 @@ [ed.newElement('param', {name:'movie', value:url})]); this.newNode('OBJECT', obj); this.editor.logMessage(_('Flash inserted')); - } + }; this.setImageClass = function(imgclass) { /* set the class of the selected image */ @@ -2821,17 +2821,20 @@ var body = document.body; var html = document.getElementsByTagName('html')[0]; + var doc = editor.getInnerDocument(); if (zoom) { html.style.overflow = 'hidden'; window.scrollTo(0, 0); editor.setClass(zoomClass); body.className += ' '+zoomClass; + doc.body.className += ' '+zoomClass; this.onresize(); } else { html.style.overflow = ''; var fulleditor = iframe.parentNode; fulleditor.style.width = ''; body.className = body.className.replace(/ *kupu-fulleditor-zoomed/, ''); + doc.body.className = doc.body.className.replace(/ *kupu-fulleditor-zoomed/, ''); editor.clearClass(zoomClass); iframe.style.width = ''; @@ -2844,7 +2847,6 @@ sourceArea.style.height = ''; }; } - var doc = editor.getInnerDocument(); // Mozilla needs this. Yes, really! doc.designMode=doc.designMode; From duncan at codespeak.net Tue May 15 13:41:46 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 15 May 2007 13:41:46 +0200 (CEST) Subject: [kupu-checkins] r43404 - in kupu/trunk/kupu/plone: . kupu_plone_layer profiles/default Message-ID: <20070515114146.219A18092@code0.codespeak.net> Author: duncan Date: Tue May 15 13:41:45 2007 New Revision: 43404 Modified: kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py kupu/trunk/kupu/plone/plonelibrarytool.py kupu/trunk/kupu/plone/profiles/default/kupu.xml Log: Make the 'current folder' icon use the correct icon for the type of the 'folder'. Modified: kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py Tue May 15 13:41:45 2007 @@ -68,7 +68,7 @@ title="string:Current folder", uri="string:${folder_url}", src="string:${folder_url}/kupucollection.xml", - icon="string:${portal_url}/folder_icon.gif"), + icon="string:${folder/getIcon}"), dict(id="myitems", title="string:My recent items", uri="string:${portal_url}/kupumyitems.xml", Modified: kupu/trunk/kupu/plone/plonelibrarytool.py ============================================================================== --- kupu/trunk/kupu/plone/plonelibrarytool.py (original) +++ kupu/trunk/kupu/plone/plonelibrarytool.py Tue May 15 13:41:45 2007 @@ -59,7 +59,7 @@ title="string:Current folder", uri="string:${folder_url}", src="string:${folder_url}/kupucollection.xml", - icon="string:${portal_url}/folder_icon.gif"), + icon="string:${folder/getIcon}"), dict(id="myitems", title="string:My recent items", uri="string:${portal_url}/kupumyitems.xml", Modified: kupu/trunk/kupu/plone/profiles/default/kupu.xml ============================================================================== --- kupu/trunk/kupu/plone/profiles/default/kupu.xml (original) +++ kupu/trunk/kupu/plone/profiles/default/kupu.xml Tue May 15 13:41:45 2007 @@ -32,7 +32,7 @@ Author: duncan Date: Tue May 15 15:54:35 2007 New Revision: 43406 Modified: kupu/trunk/kupu/common/kupudrawers.js kupu/trunk/kupu/common/kupudrawers/drawer.xsl kupu/trunk/kupu/common/kupudrawerstyles.css kupu/trunk/kupu/plone/kupu_plone_layer/kupulibraries.xml.pt kupu/trunk/kupu/plone/kupu_plone_layer/kupumyitems.xml.pt kupu/trunk/kupu/plone/kupu_plone_layer/kupurecentitems.xml.pt kupu/trunk/kupu/plone/kupu_plone_layer/kupusearch.xml.pt kupu/trunk/kupu/plone/kupu_plone_layer/kupuselection.xml.pt Log: Changes to image drawer styling for a neater effect (I hope). Removed explicit styling and shuffled labels round a bit. 'Breadcrumbs' on search results changes to 'Locate'. Modified: kupu/trunk/kupu/common/kupudrawers.js ============================================================================== --- kupu/trunk/kupu/common/kupudrawers.js (original) +++ kupu/trunk/kupu/common/kupudrawers.js Tue May 15 15:54:35 2007 @@ -722,7 +722,7 @@ var divs = librariespanel.getElementsByTagName('div'); for (var i = 0; i < divs.length; i++) { var div = divs[i]; - div.className = div.className.replace(/ *selected/,''); + div.className = div.className.replace(/[ -]*selected/,''); } /* Deselect the currently active collection or library */ var selected; Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Tue May 15 15:54:35 2007 @@ -181,7 +181,7 @@ - +
@@ -309,33 +309,30 @@ - - - if(event.keyCode==13)return false; - + + + + if(event.keyCode==13)return false; + checked - - - - - if(event.keyCode==13)return false; - - checked - - - - - if(event.keyCode==13)return false; - - checked - - - -
- You have to select left/right alignment first, then - move the image up or down in the document afterwards. - This is a browser-imposed limitation. -
+
+ + + + if(event.keyCode==13)return false; + + checked + + + + + if(event.keyCode==13)return false; + + checked + + + + @@ -343,7 +340,9 @@
- + + if(event.keyCode==13)return false; checked @@ -351,16 +350,15 @@ document.getElementById('image_alt_div').style.display = this.checked?'none':''; -
-   - @@ -368,8 +366,9 @@
-   -
@@ -379,8 +378,10 @@ test="$usecaptions='yes' and $image-caption='true'"> display:none;
- - + + if(event.keyCode==13)return false;
Modified: kupu/trunk/kupu/common/kupudrawerstyles.css ============================================================================== --- kupu/trunk/kupu/common/kupudrawerstyles.css (original) +++ kupu/trunk/kupu/common/kupudrawerstyles.css Tue May 15 15:54:35 2007 @@ -64,7 +64,7 @@ .kupu-alt-row label { display: block; } - +#image_alt { width:17em; } div.kupu-linkdrawer-addlink td { border: 0; } @@ -190,10 +190,25 @@ vertical-align: text-bottom; white-space: nowrap; } +.kupu-libsource, .kupu-libsource-selected { margin-left: 20px; } +.library-icon-library { + margin-left: -20px; +} div.kupu-upload { text-align: right; font-style: italic; } +label.kupu-detail-label { + float:left;clear:left; + width:7em; + text-align:right; + margin: 0.2em; +} +.kupu-detail { + float:left; + margin: 0.2em; +} + /*div.kupu-libsource-selected { background-repeat: no-repeat; }*/ @@ -273,6 +288,7 @@ .kupu-drawer label { font-weight: bold; + vertical-align:middle; } #kupu-breadcrumbs { text-align: left; clear:left; @@ -297,4 +313,4 @@ background: transparent url(kupuimages/treeCollapsed.gif) 4px 6px no-repeat; padding: 1px 0px 1px 16px; font-style: italic; -} \ No newline at end of file +} Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupulibraries.xml.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupulibraries.xml.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupulibraries.xml.pt Tue May 15 15:54:35 2007 @@ -6,6 +6,7 @@ @@ -13,12 +14,14 @@ getToolByName nocall:modules/Products.CMFCore.utils/getToolByName; kupu_tool python:getToolByName(context, 'kupu_library_tool'); libraries python:kupu_tool.getCookedLibraries(context); - "> + pss modules/Products/PythonScripts/standard; +"> URI - Title + Title Source Icon Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupumyitems.xml.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupumyitems.xml.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupumyitems.xml.pt Tue May 15 15:54:35 2007 @@ -20,7 +20,7 @@ - Breadcrumbs + Locate Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupurecentitems.xml.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupurecentitems.xml.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupurecentitems.xml.pt Tue May 15 15:54:35 2007 @@ -20,7 +20,7 @@ - Breadcrumbs + Locate Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupusearch.xml.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupusearch.xml.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupusearch.xml.pt Tue May 15 15:54:35 2007 @@ -19,7 +19,7 @@ - Breadcrumbs + Locate Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuselection.xml.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuselection.xml.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuselection.xml.pt Tue May 15 15:54:35 2007 @@ -23,7 +23,7 @@ tal:define="url context/portal_url; resource_type request/resource_type | string:mediaobject;" tal:attributes="href string:${context/portal_url}/kupulocate.xml?resource_type=${resource_type}&src=$$src$$"> - Breadcrumbs + Locate From duncan at codespeak.net Tue May 15 15:55:16 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 15 May 2007 15:55:16 +0200 (CEST) Subject: [kupu-checkins] r43407 - in kupu/trunk/kupu: common tests Message-ID: <20070515135516.7E9DF8084@code0.codespeak.net> Author: duncan Date: Tue May 15 15:55:16 2007 New Revision: 43407 Modified: kupu/trunk/kupu/common/kupucontentfilters.js kupu/trunk/kupu/tests/test_xhtml.js Log: Improved filtering code:

tags can no longer contain tables, captioned images, or other things which make the html go horribly wrong. Modified: kupu/trunk/kupu/common/kupucontentfilters.js ============================================================================== --- kupu/trunk/kupu/common/kupucontentfilters.js (original) +++ kupu/trunk/kupu/common/kupucontentfilters.js Tue May 15 15:55:16 2007 @@ -312,7 +312,7 @@ this.misc = ['noscript'].concat(this.misc_inline); this.inline = ['a'].concat(this.special, this.fontstyle, this.phrase, this.inline_forms); - this.Inline = ['#PCDATA'].concat(this.inline, this.misc_inline); + this.Inline = ['#text'].concat(this.inline, this.misc_inline); this.heading = ['h1','h2','h3','h4','h5','h6']; this.lists = ['ul','ol','dl','menu','dir']; @@ -320,7 +320,7 @@ this.block = ['p','div','isindex','fieldset','table'].concat( this.heading, this.lists, this.blocktext); - this.Flow = ['#PCDATA','form'].concat(this.block, this.inline, this.misc); + this.Flow = ['#text','form'].concat(this.block, this.inline, this.misc); }(this); this._commonsetting = function(self, names, value) { @@ -415,7 +415,7 @@ 'base', 'meta', 'link', 'hr', 'param', 'img', 'area', 'input', 'br', 'basefont', 'isindex', 'col'], []); - setStates(['title','style','script','option','textarea'], ['#PCDATA']); + setStates(['title','style','script','option','textarea'], ['#text']); setStates([ 'noscript', 'iframe', 'noframes', 'body', 'div', 'li', 'dd', 'blockquote', 'center', 'ins', 'del', 'td', 'th'], el.Flow); @@ -430,12 +430,12 @@ setStates(['dl'], ['dt','dd']); setStates(['pre'], validation._exclude(el.Inline, "img|object|embed|applet|big|small|sub|sup|font|basefont")); setStates(['a'], validation._exclude(el.Inline, "a")); - setStates(['applet', 'object','embed'], ['#PCDATA', 'param','form'].concat(el.block, el.inline, el.misc)); + setStates(['applet', 'object','embed'], ['#text', 'param','form'].concat(el.block, el.inline, el.misc)); setStates(['map'], ['form', 'area'].concat(el.block, el.misc)); setStates(['form'], validation._exclude(el.Flow, ['form'])); setStates(['select'], ['optgroup','option']); setStates(['optgroup'], ['option']); - setStates(['fieldset'], ['#PCDATA','legend','form'].concat(el.block,el.inline,el.misc)); + setStates(['fieldset'], ['#text','legend','form'].concat(el.block,el.inline,el.misc)); setStates(['button'], validation._exclude(el.Flow, ['a','form','iframe'].concat(el.inline_forms))); setStates(['table'], ['caption','col','colgroup','thead','tfoot','tbody','tr']); setStates(['thead', 'tfoot', 'tbody'], ['tr']); @@ -542,26 +542,6 @@ }; }(this, editor); - // Node filtering. May modify html node or xhtml parentNode. - // Return true to continue processing html node, false to skip it. - this.nodefilters = new function(editor) { - // Strip
at end of paragraph. - // Top level
: enclose preceding text (if any) in

and - // drop the
- this['br'] = function(node, parentNode) { - if (parentNode.tagName=='body') { - var p = parentNode.ownerDocument.createElement('p'); - if (parentNode.lastChild && parentNode.lastChild.nodeType==3) { - p.appendChild(parentNode.lastChild); - } - parentNode.appendChild(p); - return false; - } - if (!node.nextSibling && /p|div/i.test(parentNode.nodeName)) return false; - return true; - }; - } - // Exclude unwanted tags. this.excludeTags(['center']); @@ -610,9 +590,101 @@ if (filter) filter(name, htmlnode, xhtmlnode); } }; + this._xmlCopyAttr = function(srcnode, target) { + var valid = this.tagAttributes[srcnode.nodeName]; + for (var i = 0; i < valid.length; i++) { + var val = srcnode.getAttribute(valid[i]); + if (val) { + target.setAttribute(valid[i], val); + } + }; + } + + this._convertToSarissaNode = function(ownerdoc, htmlnode) { + var root = this._convertNodes(ownerdoc, htmlnode, null, new this.Set(['html'])); + this._cleanupBr(ownerdoc, root); + this._cleanupParas(ownerdoc, root); + return root; + }; + + // Clean up a paragraph. Any direct child which is not allowed in + // the paragraph is moved to the parent. This may involved + // splitting the paragraph, or if it is at the beginning or end it + // may simply mean moving it out of the paragraph. + this._cleanupPara = function(ownerdoc, para) { + var permitted = this.States.p; + var nodes = [[]]; + var idx = 0; + for (var child = para.firstChild; child; child = child.nextSibling) { + var nn = child.nodeName.toLowerCase(); + if (permitted[nn] && (nn != 'img' || !(/\bcaptioned\b/i.test(child.getAttribute('class'))))) { + nodes[idx].push(child); + } else { + if (nodes[idx].length) { + nodes.push(child); + } else { + nodes[idx] = child; + } + nodes.push([]); + idx = nodes.length-1; + } + } + if (!nodes[idx].length) { + nodes.splice(idx,1); + }; + if (nodes.length > 0 && nodes[0] instanceof Array && !nodes[0].length) { + nodes.splice(0,1); + } + if (nodes.length==0 || (nodes.length==1 && nodes[0] instanceof Array)) { + return; /* No change */ + } + /* Need to cleanup this paragraph */ + var parentnode = para.parentNode; + for (var idx = 0; idx < nodes.length; idx++) { + var n = nodes[idx]; + if (n instanceof Array) { + var newp = ownerdoc.createElement('p'); + this._xmlCopyAttr(para, newp); + var ln = n.length-1; + if (/br/i.test(n[ln].nodeName)) { + n.splice(ln,1); + } + for (var j = 0; j < n.length; j++) { + newp.appendChild(n[j]); + } + n = newp; + } + parentnode.insertBefore(n,para); + } + parentnode.removeChild(para); + }; - this._convertToSarissaNode = function(ownerdoc, htmlnode, xhtmlparent) { - return this._convertNodes(ownerdoc, htmlnode, xhtmlparent, new this.Set(['html'])); + this._cleanupParas = function(ownerdoc, root) { + var paras = root.getElementsByTagName('p'); + for (var i = 0; i < paras.length; i++) { + this._cleanupPara(ownerdoc, paras[i]); + } + }; + /* Cleanup br tags: br at top level is replaced by a paragraph, + * br at end of p|div is dropped. + */ + this._cleanupBr = function(ownerdoc, root) { + var breaks = root.getElementsByTagName('br'); + for (var i = 0; i < breaks.length; i++) { + var node = breaks[i]; + var parentNode = node.parentNode; + if (parentNode.tagName=='body') { + var p = ownerdoc.createElement('p'); + var prev = node.previousSibling; + if (prev && prev.nodeType==3) { + p.appendChild(prev); + } + parentNode.insertBefore(p,node); + parentNode.removeChild(node); + } else if (!node.nextSibling && (/p|div/i.test(parentNode.nodeName))) { + parentNode.removeChild(node); + } + } }; this._convertNodes = function(ownerdoc, htmlnode, xhtmlparent, permitted) { @@ -620,12 +692,6 @@ var nodename = this._getTagName(htmlnode); var nostructure = !this.filterstructure; - var filter = this.nodefilters[nodename]; - if (filter) { - if (!filter(htmlnode, xhtmlparent)) { - return; - } - } // TODO: This permits valid tags anywhere. it should use the state // table in xhtmlvalid to only permit tags where the XHTML DTD // says they are valid. @@ -646,7 +712,7 @@ if (kids.length == 0) { if (htmlnode.text && htmlnode.text != "" && - (nostructure || permittedChildren['#PCDATA'])) { + (nostructure || permittedChildren['#text'])) { var text = htmlnode.text; var tnode = ownerdoc.createTextNode(text); parentnode.appendChild(tnode); @@ -669,11 +735,11 @@ parentnode.appendChild(newkid); }; } else if (kid.nodeType == 3) { - if (nostructure || permittedChildren['#PCDATA']) { + if (nostructure || permittedChildren['#text']) { parentnode.appendChild(ownerdoc.createTextNode(kid.nodeValue)); } } else if (kid.nodeType == 4) { - if (nostructure || permittedChildren['#PCDATA']) { + if (nostructure || permittedChildren['#text']) { parentnode.appendChild(ownerdoc.createCDATASection(kid.nodeValue)); } } Modified: kupu/trunk/kupu/tests/test_xhtml.js ============================================================================== --- kupu/trunk/kupu/tests/test_xhtml.js (original) +++ kupu/trunk/kupu/tests/test_xhtml.js Tue May 15 15:55:16 2007 @@ -256,8 +256,45 @@ ''; this.editor.xhtmlvalid.filterstructure = true; this.conversionTest(data, data); + } + + // Some tests to ensure that we don't put anything in a

tag + // which isn't allowed in a

tag. + // Can't test with

x

as Firefox DOM fixes that + // for us (but not as we want it fixed) so we use something FF doesn't already fix. + this.testPcleanup = function() { + var data = '

oops

'; + var expected = '
oops
'; + this.conversionTest(data, expected); + }; + + this.testPcleanup2 = function() { + var data = '

some text
oops
more text

'; + var expected = '

some text

oops

more text

'; + this.conversionTest(data, expected); + }; + + this.testPWithCaptionedImg = function() { + // Captioned images are converted to block tags so they must + // not be inside a paragraph. + var data = '

some text
xyzzyblah

'; + var expected = '

some text

xyzzy

blah

'; + this.conversionTest(data, expected); + // If there is no surrounding text we don't want empty paras. + var data = '

xyzzy

'; + var expected = 'xyzzy'; + this.conversionTest(data, expected); + // But ordinary images are fine. + var data = '

some text
xyzzyblah

'; + var expected = '

some text
xyzzyblah

'; + this.conversionTest(data, expected); }; + // Firefox is broken wrt to
tags and newlines inside
.
+    // It thinks that 
\n is two newlines but in fact the HTML spec + // says it should ignore any whitespace following a
. + this.testBrInsidePre = function() { + } this.tearDown = function() { this.body.innerHTML = ''; }; From duncan at codespeak.net Tue May 15 16:15:42 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 15 May 2007 16:15:42 +0200 (CEST) Subject: [kupu-checkins] r43408 - kupu/trunk/kupu/common/kupudrawers Message-ID: <20070515141542.6B1B08084@code0.codespeak.net> Author: duncan Date: Tue May 15 16:15:42 2007 New Revision: 43408 Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl Log: Description should be inside

tags. Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Tue May 15 16:15:42 2007 @@ -252,7 +252,8 @@

- +

 
@@ -276,7 +277,8 @@
- +

From duncan at codespeak.net Tue May 15 17:10:55 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Tue, 15 May 2007 17:10:55 +0200 (CEST) Subject: [kupu-checkins] r43413 - in kupu/trunk/kupu/common: . kupudrawers Message-ID: <20070515151055.38A598084@code0.codespeak.net> Author: duncan Date: Tue May 15 17:10:54 2007 New Revision: 43413 Modified: kupu/trunk/kupu/common/kupudrawers.js kupu/trunk/kupu/common/kupudrawers/drawer.xsl kupu/trunk/kupu/common/kupudrawerstyles.css Log: Fixup race condition on loading preview. Moved preview image under the title Fixed up styles for IE Modified: kupu/trunk/kupu/common/kupudrawers.js ============================================================================== --- kupu/trunk/kupu/common/kupudrawers.js (original) +++ kupu/trunk/kupu/common/kupudrawers.js Tue May 15 17:10:54 2007 @@ -692,7 +692,10 @@ if (!this.focussed) { this.focusElement(); } - + var el = targetnode.getElementsByTagName('img')[0]; + if (el) { + kupuFixImage(el); + } // Mark drawer as having a selection or not var el = this.element; el.className = el.className.replace(' kupu-has-selection', ''); Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Tue May 15 17:10:54 2007 @@ -244,12 +244,12 @@
-
- -

+
+ +

+

+ +

@@ -272,9 +275,6 @@ )
-

- -

  + for="image-size-selector">Size: Modified: kupu/trunk/kupu/common/kupudrawerstyles.css ============================================================================== --- kupu/trunk/kupu/common/kupudrawerstyles.css (original) +++ kupu/trunk/kupu/common/kupudrawerstyles.css Tue May 15 17:10:54 2007 @@ -97,6 +97,7 @@ clear: none; height: auto; line-height: 1.1em; } +.kupu-description-row p { height: auto !IMPORTANT; } h1.kupu-title-row { font-size: 136%; } From hannosch at codespeak.net Wed May 16 05:53:50 2007 From: hannosch at codespeak.net (hannosch at codespeak.net) Date: Wed, 16 May 2007 05:53:50 +0200 (CEST) Subject: [kupu-checkins] r43425 - kupu/trunk/kupu/common Message-ID: <20070516035350.133D98084@code0.codespeak.net> Author: hannosch Date: Wed May 16 05:53:49 2007 New Revision: 43425 Modified: kupu/trunk/kupu/common/fulldoc.html Log: Make ZChecker happy and add missing summary attribute to a table. Modified: kupu/trunk/kupu/common/fulldoc.html ============================================================================== --- kupu/trunk/kupu/common/fulldoc.html (original) +++ kupu/trunk/kupu/common/fulldoc.html Wed May 16 05:53:49 2007 @@ -51,7 +51,8 @@ us a chance to test table editing in Kupu:

Comparing Data- and Document-Centric

- +
From duncan at codespeak.net Wed May 16 11:29:38 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Wed, 16 May 2007 11:29:38 +0200 (CEST) Subject: [kupu-checkins] r43427 - kupu/trunk/kupu/plone Message-ID: <20070516092938.2AE14808D@code0.codespeak.net> Author: duncan Date: Wed May 16 11:29:37 2007 New Revision: 43427 Modified: kupu/trunk/kupu/plone/plonedrawers.py Log: Protect against corrupted catalog Modified: kupu/trunk/kupu/plone/plonedrawers.py ============================================================================== --- kupu/trunk/kupu/plone/plonedrawers.py (original) +++ kupu/trunk/kupu/plone/plonedrawers.py Wed May 16 11:29:37 2007 @@ -234,9 +234,9 @@ """Returns size, width, height""" if not self.showimagesize: return None, None, None - if not callable(obj.getId): - obj = obj.getObject() # Must be a brain try: + if not callable(obj.getId): + obj = obj.getObject() # Must be a brain size = self.tool.getObjSize(obj) except: size = None From duncan at codespeak.net Wed May 16 14:29:32 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Wed, 16 May 2007 14:29:32 +0200 (CEST) Subject: [kupu-checkins] r43429 - kupu/trunk/kupu/common/kupudrawers Message-ID: <20070516122932.47D9A808F@code0.codespeak.net> Author: duncan Date: Wed May 16 14:29:29 2007 New Revision: 43429 Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl Log: Removed some spurious
tags. Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Wed May 16 14:29:29 2007 @@ -304,91 +304,79 @@ - -
- -
- - - - - - - if(event.keyCode==13)return false; - - checked - - - - - if(event.keyCode==13)return false; - - checked - - - - - if(event.keyCode==13)return false; - - checked - - - - -
- - - - - -
- - - if(event.keyCode==13)return false; - - checked - - document.getElementById('image_alt_div').style.display = - this.checked?'none':''; - -
-
-
+ +
+ + + + + + + if(event.keyCode==13)return false; + + checked - -
- - -
+ + + + if(event.keyCode==13)return false; + + checked - -
- - -
+ + + + if(event.keyCode==13)return false; + + checked -
- - display:none; - - - - if(event.keyCode==13)return false; - -
- -
+ + + + + + + + + + if(event.keyCode==13)return false; + + checked + + document.getElementById('image_alt_div').style.display = + this.checked?'none':''; + + + + + + + + + + + + +
+ + display:none; + + + + if(event.keyCode==13)return false; + +
+
-
+
+ Upload image here... +
{../title} Modified: kupu/trunk/kupu/common/kupudrawerstyles.css ============================================================================== --- kupu/trunk/kupu/common/kupudrawerstyles.css (original) +++ kupu/trunk/kupu/common/kupudrawerstyles.css Wed May 16 14:44:48 2007 @@ -185,7 +185,7 @@ } div.kupu-libsource, div.kupu-libsource-selected, -div.kupu-resource, div.kupu-collection, div.kupu-upload { +div.kupu-resource, div.kupu-collection { cursor: pointer; margin-bottom: 2px; vertical-align: text-bottom; @@ -195,8 +195,8 @@ .library-icon-library { margin-left: -20px; } -div.kupu-upload { - text-align: right; font-style: italic; +.kupu-upload { + margin-top: 1em; float:right; } label.kupu-detail-label { From duncan at codespeak.net Wed May 16 15:41:54 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Wed, 16 May 2007 15:41:54 +0200 (CEST) Subject: [kupu-checkins] r43434 - in kupu/trunk/kupu/common: . kupudrawers Message-ID: <20070516134154.1F3198092@code0.codespeak.net> Author: duncan Date: Wed May 16 15:41:53 2007 New Revision: 43434 Modified: kupu/trunk/kupu/common/kupudrawers.js kupu/trunk/kupu/common/kupudrawers/drawer.xsl kupu/trunk/kupu/common/kupudrawerstyles.css Log: Upload button moved to the bottom of the panel. selected-item class is now applied to the containing div instead of the span. Modified: kupu/trunk/kupu/common/kupudrawers.js ============================================================================== --- kupu/trunk/kupu/common/kupudrawers.js (original) +++ kupu/trunk/kupu/common/kupudrawers.js Wed May 16 15:41:53 2007 @@ -1003,7 +1003,8 @@ if (item) { var spans = item.getElementsByTagName('span'); for (var j = 0; j < spans.length; j++) { - spans[j].className = spans[j].className.replace(' selected-item', ''); + var p = spans[j].parentNode; + p.className = p.className.replace(/(\s+|^)selected-item/, ''); } } } @@ -1070,8 +1071,9 @@ var span = item.getElementsByTagName('span'); if (span.length > 0) { span = span[0]; - span.className += ' selected-item'; - var inp = span.parentNode.getElementsByTagName('input'); + var p = span.parentNode; + p.className += ' selected-item'; + var inp = p.getElementsByTagName('input'); if (inp) inp[0].checked = check; } Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Wed May 16 15:41:53 2007 @@ -119,6 +119,8 @@ + Modified: kupu/trunk/kupu/common/kupudrawers.js ============================================================================== --- kupu/trunk/kupu/common/kupudrawers.js (original) +++ kupu/trunk/kupu/common/kupudrawers.js Thu May 17 15:27:37 2007 @@ -1142,7 +1142,7 @@ this.updateDisplay(this.drawerid); var newseldiv = getFromSelector(time); - newseldiv.className = 'selected'; + newseldiv.className = 'kupu-libsource-selected'; }; this.selectCurrent = function() { @@ -1352,7 +1352,7 @@ var uri = selnode.selectSingleNode('uri/text()').nodeValue; } uri = uri.strip(); // needs kupuhelpers.js - var alt = getFromSelector('image_alt'); + var alt = getFromSelector('image-alt'); alt = alt?alt.value:undefined; var radios = document.getElementsByName('image-align'); Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Thu May 17 15:27:37 2007 @@ -185,7 +185,9 @@ - + + + @@ -295,7 +297,7 @@ If a 'preview' tag is available then that one is used, otherwise 'uri'. --> - + - + @@ -325,7 +327,8 @@ - + + @@ -335,7 +338,7 @@ - + if(event.keyCode==13)return false; @@ -364,7 +367,7 @@ + for="image-caption" i18n:translate="imagedrawer_caption_label">Caption if(event.keyCode==13)return false; @@ -379,7 +382,7 @@ + for="image-size-selector">Size @@ -397,19 +400,19 @@ - + @@ -536,4 +539,21 @@ + + + + + +
+ + + + + +
+ + + +
+
Modified: kupu/trunk/kupu/common/kupudrawerstyles.css ============================================================================== --- kupu/trunk/kupu/common/kupudrawerstyles.css (original) +++ kupu/trunk/kupu/common/kupudrawerstyles.css Thu May 17 15:27:37 2007 @@ -206,6 +206,11 @@ clear:left; width:75px; text-align:right; margin-right: 5px; } +#image-caption, #image-align-left { margin-left: 0; } +#image-align-left, #image-align-right, #image-align-inline, #image-caption { + border: none; +} + /*div.kupu-libsource-selected { background-repeat: no-repeat; }*/ @@ -284,8 +289,9 @@ /* Anchor drawer */ .kupu-drawer label { - font-weight: bold; - vertical-align:middle; + font-weight: normal; + vertical-align:middle; + margin-right: 5px; } #kupu-breadcrumbs { text-align: left; clear:left; Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupulibraries.xml.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupulibraries.xml.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupulibraries.xml.pt Thu May 17 15:27:37 2007 @@ -21,7 +21,7 @@ tal:attributes="id library/id;selected library/selected;"> URI Title + tal:content="structure python:pss.html_quote(title)">Title Source Icon Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupusearch.xml.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupusearch.xml.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupusearch.xml.pt Thu May 17 15:27:37 2007 @@ -8,11 +8,12 @@ xmlns:metal="http://xml.zope.org/namespaces/metal" xmlns:i18n="http://xml.zope.org/namespaces/i18n" i18n_domain="plone" - tal:define="kupu context/kupu_library_tool;"> + tal:define="kupu context/kupu_library_tool;searchlib python:kupu.getSingleLibrary(context,'_search')"> URI - icon + icon Search Results + tal:define="tpl searchlib/title|string:Search '$$';txt request/SearchableText;" + tal:content="python:tpl.replace('$',txt,1)">Search Results Search results. Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuselection.xml.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuselection.xml.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuselection.xml.pt Thu May 17 15:27:37 2007 @@ -11,10 +11,13 @@ xmlns:metal="http://xml.zope.org/namespaces/metal" xmlns:i18n="http://xml.zope.org/namespaces/i18n" i18n_domain="plone" - > + tal:define="kupu context/kupu_library_tool; + objects kupu/getCurrentObject; + object python:objects and objects[0] or context; + lib python:kupu.getSingleLibrary(object,'_selection')"> URI - icon - Selected + icon + Selected Current selection. Source Modified: kupu/trunk/kupu/plone/libraries.pt ============================================================================== --- kupu/trunk/kupu/plone/libraries.pt (original) +++ kupu/trunk/kupu/plone/libraries.pt Thu May 17 15:27:37 2007 @@ -9,11 +9,18 @@

Kupu Libraries

-

In the below form, you may manage the list of drawer libraries for +

In the form below, you may manage the list of drawer libraries for the Kupu editor. Each property of a library is dynamically expanded at execution time using TALES expressions. That way it is possible, to support libraries like Current folder or My folder very easily.

+

Libraries with ids that begin with an underscore will not display in the initial library list. + _search will be used to set the icon and title for search results. + The first $ character in the title will be replaced by the search string. + _selection will be used to set the icon and title for the current selection. +

+

The title string may contain html <br> tags to put a line break in the title (not the xhtml <br/> form), + but otherwise tags are not interpreted.

Modified: kupu/trunk/kupu/plone/plonedrawers.py ============================================================================== --- kupu/trunk/kupu/plone/plonedrawers.py (original) +++ kupu/trunk/kupu/plone/plonedrawers.py Thu May 17 15:27:37 2007 @@ -593,8 +593,9 @@ crumbs.append({'Title':title, 'absolute_url':url}) return crumbs - - def _getCurrentObject(self, portal=None): + + security.declareProtected('View','getCurrentObject') + def getCurrentObject(self, portal=None): '''Returns object information for a selected object''' request = self.REQUEST if portal is None: @@ -645,7 +646,7 @@ """Find the parent of the object specified in the src string. If multiple objects and they don't have the same parent, or if no suitable object returns None, otherwise returns the parent.""" - objects = self._getCurrentObject() + objects = self.getCurrentObject() parent = None for obj in objects: if parent is not None and parent is not obj.aq_parent: @@ -656,7 +657,7 @@ security.declarePublic("getCurrentSelection") def getCurrentSelection(self, portal=None): '''Returns object information for a selected object''' - objects = self._getCurrentObject(portal) + objects = self.getCurrentObject(portal) return self.infoForBrains(objects, self.getResourceType(), portal) security.declarePublic("getMyItems") Modified: kupu/trunk/kupu/plone/plonelibrarytool.py ============================================================================== --- kupu/trunk/kupu/plone/plonelibrarytool.py (original) +++ kupu/trunk/kupu/plone/plonelibrarytool.py Thu May 17 15:27:37 2007 @@ -451,8 +451,9 @@ security.declareProtected('View', "getCookedLibraries") def getCookedLibraries(self, context): - """Return a list of libraries with our own parameters included""" - libraries = self.getLibraries(context) + """Return a list of libraries with our own parameters included. + The library with id 'search' is excluded from this list.""" + libraries = [l for l in self.getLibraries(context) if not l['id'].startswith('_')] default_library = getattr(self, '_default_library', '') for l in libraries: @@ -460,6 +461,17 @@ l['selected'] = l['id']==default_library or None return libraries + security.declareProtected('View', "getSingleLibrary") + def getSingleLibrary(self, context, id): + """Return the library with id=search or None""" + libraries = [l for l in self.getLibraries(context) if l['id']==id] + + for l in libraries: + l['src'] = self.kupuUrl(l['src']) + if libraries: + return libraries[0] + return None + # ZMI views manage_options = (SimpleItem.manage_options[1:] + ( dict(label='Config', action='kupu_config'), From duncan at codespeak.net Thu May 17 16:01:33 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Thu, 17 May 2007 16:01:33 +0200 (CEST) Subject: [kupu-checkins] r43456 - in kupu/trunk/kupu: . common common/kupudrawers common/kupuimages plone/kupu_plone_layer/plonekupuimages Message-ID: <20070517140133.469AB8078@code0.codespeak.net> Author: duncan Date: Thu May 17 16:01:30 2007 New Revision: 43456 Added: kupu/trunk/kupu/common/kupuimages/anchor.png.metadata kupu/trunk/kupu/common/kupuimages/background-color.png.metadata kupu/trunk/kupu/common/kupuimages/bold.gif.metadata kupu/trunk/kupu/common/kupuimages/bold.png.metadata kupu/trunk/kupu/common/kupuimages/bookmark.png.metadata kupu/trunk/kupu/common/kupuimages/buttons.png.metadata kupu/trunk/kupu/common/kupuimages/caret.png.metadata kupu/trunk/kupu/common/kupuimages/closed.png.metadata kupu/trunk/kupu/common/kupuimages/copy.png.metadata kupu/trunk/kupu/common/kupuimages/create-new.png.metadata kupu/trunk/kupu/common/kupuimages/cut.png.metadata kupu/trunk/kupu/common/kupuimages/definitionlist.png.metadata kupu/trunk/kupu/common/kupuimages/document.png.metadata kupu/trunk/kupu/common/kupuimages/exit.gif.metadata kupu/trunk/kupu/common/kupuimages/exthyperlink.png.metadata kupu/trunk/kupu/common/kupuimages/folder.png.metadata kupu/trunk/kupu/common/kupuimages/fonts.png.metadata kupu/trunk/kupu/common/kupuimages/format.png.metadata kupu/trunk/kupu/common/kupuimages/hr.png.metadata kupu/trunk/kupu/common/kupuimages/image.png.metadata kupu/trunk/kupu/common/kupuimages/indent.gif.metadata kupu/trunk/kupu/common/kupuimages/indent.png.metadata kupu/trunk/kupu/common/kupuimages/inthyperlink.png.metadata kupu/trunk/kupu/common/kupuimages/italic.gif.metadata kupu/trunk/kupu/common/kupuimages/italic.png.metadata kupu/trunk/kupu/common/kupuimages/justify-center.png.metadata kupu/trunk/kupu/common/kupuimages/justify-full.png.metadata kupu/trunk/kupu/common/kupuimages/justify-left.png.metadata kupu/trunk/kupu/common/kupuimages/justify-right.png.metadata kupu/trunk/kupu/common/kupuimages/kupu_icon.gif.metadata kupu/trunk/kupu/common/kupuimages/kupulibrary.png.metadata kupu/trunk/kupu/common/kupuimages/kupusearch_icon.gif.metadata kupu/trunk/kupu/common/kupuimages/larger-text.png.metadata kupu/trunk/kupu/common/kupuimages/link.png.metadata kupu/trunk/kupu/common/kupuimages/opened.png.metadata kupu/trunk/kupu/common/kupuimages/ordered-list.png.metadata kupu/trunk/kupu/common/kupuimages/outdent.png.metadata kupu/trunk/kupu/common/kupuimages/paste.png.metadata kupu/trunk/kupu/common/kupuimages/redo-disabled.png.metadata kupu/trunk/kupu/common/kupuimages/redo.png.metadata kupu/trunk/kupu/common/kupuimages/remove.png.metadata kupu/trunk/kupu/common/kupuimages/save.png.metadata kupu/trunk/kupu/common/kupuimages/size.png.metadata kupu/trunk/kupu/common/kupuimages/smaller-text.png.metadata kupu/trunk/kupu/common/kupuimages/space.gif.metadata kupu/trunk/kupu/common/kupuimages/strikethrough.png.metadata kupu/trunk/kupu/common/kupuimages/subscript.png.metadata kupu/trunk/kupu/common/kupuimages/superscript.png.metadata kupu/trunk/kupu/common/kupuimages/table.png.metadata kupu/trunk/kupu/common/kupuimages/text-check.png.metadata kupu/trunk/kupu/common/kupuimages/text-color.png.metadata kupu/trunk/kupu/common/kupuimages/toolbarbg_blue.png.metadata kupu/trunk/kupu/common/kupuimages/toolbarbg_green.png.metadata kupu/trunk/kupu/common/kupuimages/toolbarbg_purple.png.metadata kupu/trunk/kupu/common/kupuimages/toolbarbg_wood.png.metadata kupu/trunk/kupu/common/kupuimages/treeCollapsed.gif.metadata kupu/trunk/kupu/common/kupuimages/underline.gif.metadata kupu/trunk/kupu/common/kupuimages/underline.png.metadata kupu/trunk/kupu/common/kupuimages/undo-disabled.png.metadata kupu/trunk/kupu/common/kupuimages/undo.png.metadata kupu/trunk/kupu/common/kupuimages/unlink.png.metadata kupu/trunk/kupu/common/kupuimages/unordered-list.png.metadata kupu/trunk/kupu/common/kupuimages/view-source.png.metadata kupu/trunk/kupu/common/kupuimages/zoom-in.gif.metadata kupu/trunk/kupu/common/kupuimages/zoom-out.gif.metadata kupu/trunk/kupu/lint.record kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/anchor.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/bgcolor.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/bold.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/center.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/definitionlist.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/delete_icon.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/flash-placeholder.png.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/hr.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/hyperlink.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/image.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/indent.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/italic.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/left_just.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/link_icon.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/list.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/numbered_list.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/outdent.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/redo.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/right_just.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/space.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/strikethrough.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/subscript.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/superscript.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/table.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/textcolor.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/tools.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/underline.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/undo.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/unformat.gif.metadata kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/view-source.gif.metadata Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl kupu/trunk/kupu/common/kupudrawerstyles.css Log: I'm not sure why kupu's toolbar images have never had cache metadata but it seems like a good idea. Removed the css reference from the xsl: it isn't needed (since the output is never displayed) and it forces Firefox to retrieve the css every time there's a transform (maybe only when debugging, but even so). Reduced the label spacing else IE6 line wraps. Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Thu May 17 16:01:30 2007 @@ -72,9 +72,6 @@ <xsl:value-of select="$i18n_drawertitle"/> - - kupudrawerstyles.css - Modified: kupu/trunk/kupu/common/kupudrawerstyles.css ============================================================================== --- kupu/trunk/kupu/common/kupudrawerstyles.css (original) +++ kupu/trunk/kupu/common/kupudrawerstyles.css Thu May 17 16:01:30 2007 @@ -291,7 +291,7 @@ .kupu-drawer label { font-weight: normal; vertical-align:middle; - margin-right: 5px; + margin-right: 2px; } #kupu-breadcrumbs { text-align: left; clear:left; Added: kupu/trunk/kupu/common/kupuimages/anchor.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/anchor.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/background-color.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/background-color.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/bold.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/bold.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/bold.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/bold.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/bookmark.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/bookmark.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/buttons.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/buttons.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/caret.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/caret.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/closed.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/closed.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/copy.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/copy.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/create-new.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/create-new.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/cut.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/cut.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/definitionlist.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/definitionlist.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/document.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/document.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/exit.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/exit.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/exthyperlink.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/exthyperlink.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/folder.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/folder.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/fonts.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/fonts.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/format.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/format.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/hr.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/hr.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/image.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/image.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/indent.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/indent.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/indent.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/indent.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/inthyperlink.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/inthyperlink.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/italic.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/italic.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/italic.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/italic.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/justify-center.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/justify-center.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/justify-full.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/justify-full.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/justify-left.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/justify-left.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/justify-right.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/justify-right.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/kupu_icon.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/kupu_icon.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/kupulibrary.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/kupulibrary.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/kupusearch_icon.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/kupusearch_icon.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/larger-text.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/larger-text.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/link.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/link.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/opened.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/opened.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/ordered-list.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/ordered-list.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/outdent.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/outdent.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/paste.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/paste.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/redo-disabled.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/redo-disabled.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/redo.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/redo.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/remove.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/remove.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/save.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/save.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/size.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/size.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/smaller-text.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/smaller-text.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/space.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/space.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/strikethrough.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/strikethrough.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/subscript.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/subscript.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/superscript.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/superscript.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/table.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/table.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/text-check.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/text-check.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/text-color.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/text-color.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/toolbarbg_blue.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/toolbarbg_blue.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/toolbarbg_green.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/toolbarbg_green.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/toolbarbg_purple.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/toolbarbg_purple.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/toolbarbg_wood.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/toolbarbg_wood.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/treeCollapsed.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/treeCollapsed.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/underline.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/underline.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/underline.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/underline.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/undo-disabled.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/undo-disabled.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/undo.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/undo.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/unlink.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/unlink.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/unordered-list.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/unordered-list.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/view-source.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/view-source.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/zoom-in.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/zoom-in.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/common/kupuimages/zoom-out.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/common/kupuimages/zoom-out.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/lint.record ============================================================================== --- (empty file) +++ kupu/trunk/kupu/lint.record Thu May 17 16:01:30 2007 @@ -0,0 +1,119 @@ +(dp1 +S'c:\\oxfam\\trunk\\products\\kupu\\common\\kupubasetools.js' +p2 +F1179223880.015625 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupucontextmenu.js' +p3 +F1174560406.6875 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupucontentfilters.js' +p4 +F1179224613.703125 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinit_genericelements.js' +p5 +F1174560406.53125 +sS'c:\\oxfam\\trunk\\products\\kupu\\plone\\kupu_plone_layer\\kupuploneeditor.js' +p6 +F1174560398.6875 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupudrawers.js' +p7 +F1179137758.890625 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupusourceedit.js' +p8 +F1174560406.375 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kuputoolcollapser.js' +p9 +F1174560406.765625 +sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupueditor.js' +p10 +F1179137094.125 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinit_multi.js' +p11 +F1174560406.4375 +sS'c:\\oxfam\\trunk\\products\\kupu\\plone\\kupu_plone_layer\\kupuploneui.js' +p12 +F1174560398.609375 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuspellchecker.js' +p13 +F1174560406.625 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinit_form.js' +p14 +F1174560406.453125 +sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupubeforeunload.js' +p15 +F1174560406.359375 +sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupuhelpers.js' +p16 +F1179137758.921875 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuhelpers.js' +p17 +F1179137758.921875 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinspector.js' +p18 +F1174560406.65625 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupusaveonpart.js' +p19 +F1174560406.765625 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupunoi18n.js' +p20 +F1174560406.703125 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupustart_form.js' +p21 +F1174560406.75 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupucnftable.js' +p22 +F1174560406.734375 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupu_kjax.js' +p23 +F1174560406.546875 +sS'c:\\oxfam\\trunk\\products\\kupu\\plone\\kupu_plone_layer\\kupusaveonpart.js' +p24 +F1174560398.671875 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinit.js' +p25 +F1174560406.328125 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupumultieditor.js' +p26 +F1174560406.578125 +sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupucleanupexpressions.js' +p27 +F1174560406.5 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinit_experimental.js' +p28 +F1174560406.4375 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\sarissa_ieemu_xpath.js' +p29 +F1174560406.484375 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupueditor.js' +p30 +F1179137094.125 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuloggers.js' +p31 +F1174560406.3125 +sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupucnftable.js' +p32 +F1174560406.734375 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupubeforeunload.js' +p33 +F1174560406.359375 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupustart_multi.js' +p34 +F1174560406.671875 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\sarissa.js' +p35 +F1174560406.5625 +sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupudrawers.js' +p36 +F1179137758.890625 +sS'c:\\oxfam\\trunk\\products\\kupu\\plone\\kupu_plone_layer\\kupuploneinit.js' +p37 +F1174560398.5625 +sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupucontextmenu.js' +p38 +F1174560406.6875 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupustart.js' +p39 +F1174560406.5625 +sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupucleanupexpressions.js' +p40 +F1174560406.5 +s. \ No newline at end of file Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/anchor.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/anchor.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/bgcolor.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/bgcolor.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/bold.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/bold.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/center.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/center.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/definitionlist.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/definitionlist.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/delete_icon.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/delete_icon.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/flash-placeholder.png.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/flash-placeholder.png.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/hr.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/hr.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/hyperlink.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/hyperlink.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/image.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/image.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/indent.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/indent.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/italic.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/italic.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/left_just.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/left_just.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/link_icon.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/link_icon.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/list.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/list.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/numbered_list.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/numbered_list.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/outdent.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/outdent.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/redo.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/redo.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/right_just.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/right_just.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/space.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/space.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/strikethrough.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/strikethrough.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/subscript.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/subscript.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/superscript.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/superscript.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/table.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/table.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/textcolor.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/textcolor.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/tools.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/tools.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/underline.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/underline.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/undo.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/undo.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/unformat.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/unformat.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/view-source.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/view-source.gif.metadata Thu May 17 16:01:30 2007 @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache From duncan at codespeak.net Thu May 17 16:02:26 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Thu, 17 May 2007 16:02:26 +0200 (CEST) Subject: [kupu-checkins] r43457 - kupu/trunk/kupu Message-ID: <20070517140226.736DA8078@code0.codespeak.net> Author: duncan Date: Thu May 17 16:02:26 2007 New Revision: 43457 Removed: kupu/trunk/kupu/lint.record Log: Added one file too many Deleted: /kupu/trunk/kupu/lint.record ============================================================================== --- /kupu/trunk/kupu/lint.record Thu May 17 16:02:26 2007 +++ (empty file) @@ -1,119 +0,0 @@ -(dp1 -S'c:\\oxfam\\trunk\\products\\kupu\\common\\kupubasetools.js' -p2 -F1179223880.015625 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupucontextmenu.js' -p3 -F1174560406.6875 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupucontentfilters.js' -p4 -F1179224613.703125 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinit_genericelements.js' -p5 -F1174560406.53125 -sS'c:\\oxfam\\trunk\\products\\kupu\\plone\\kupu_plone_layer\\kupuploneeditor.js' -p6 -F1174560398.6875 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupudrawers.js' -p7 -F1179137758.890625 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupusourceedit.js' -p8 -F1174560406.375 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kuputoolcollapser.js' -p9 -F1174560406.765625 -sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupueditor.js' -p10 -F1179137094.125 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinit_multi.js' -p11 -F1174560406.4375 -sS'c:\\oxfam\\trunk\\products\\kupu\\plone\\kupu_plone_layer\\kupuploneui.js' -p12 -F1174560398.609375 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuspellchecker.js' -p13 -F1174560406.625 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinit_form.js' -p14 -F1174560406.453125 -sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupubeforeunload.js' -p15 -F1174560406.359375 -sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupuhelpers.js' -p16 -F1179137758.921875 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuhelpers.js' -p17 -F1179137758.921875 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinspector.js' -p18 -F1174560406.65625 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupusaveonpart.js' -p19 -F1174560406.765625 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupunoi18n.js' -p20 -F1174560406.703125 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupustart_form.js' -p21 -F1174560406.75 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupucnftable.js' -p22 -F1174560406.734375 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupu_kjax.js' -p23 -F1174560406.546875 -sS'c:\\oxfam\\trunk\\products\\kupu\\plone\\kupu_plone_layer\\kupusaveonpart.js' -p24 -F1174560398.671875 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinit.js' -p25 -F1174560406.328125 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupumultieditor.js' -p26 -F1174560406.578125 -sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupucleanupexpressions.js' -p27 -F1174560406.5 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuinit_experimental.js' -p28 -F1174560406.4375 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\sarissa_ieemu_xpath.js' -p29 -F1174560406.484375 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupueditor.js' -p30 -F1179137094.125 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupuloggers.js' -p31 -F1174560406.3125 -sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupucnftable.js' -p32 -F1174560406.734375 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupubeforeunload.js' -p33 -F1174560406.359375 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupustart_multi.js' -p34 -F1174560406.671875 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\sarissa.js' -p35 -F1174560406.5625 -sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupudrawers.js' -p36 -F1179137758.890625 -sS'c:\\oxfam\\trunk\\products\\kupu\\plone\\kupu_plone_layer\\kupuploneinit.js' -p37 -F1174560398.5625 -sS'C:\\oxfam\\trunk\\Products\\kupu\\common\\kupucontextmenu.js' -p38 -F1174560406.6875 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupustart.js' -p39 -F1174560406.5625 -sS'c:\\oxfam\\trunk\\products\\kupu\\common\\kupucleanupexpressions.js' -p40 -F1174560406.5 -s. \ No newline at end of file From duncan at codespeak.net Fri May 18 15:02:43 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 18 May 2007 15:02:43 +0200 (CEST) Subject: [kupu-checkins] r43479 - in kupu/trunk/kupu: common plone plone/kupu_plone_layer plone/kupu_references Message-ID: <20070518130243.89C388074@code0.codespeak.net> Author: duncan Date: Fri May 18 15:02:42 2007 New Revision: 43479 Modified: kupu/trunk/kupu/common/kupubasetools.js kupu/trunk/kupu/common/kupusourceedit.js kupu/trunk/kupu/plone/body.kupu kupu/trunk/kupu/plone/kupu_plone_layer/kupu_wysiwyg_support.html kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js kupu/trunk/kupu/plone/kupu_references/referencebrowser.pt Log: Removed tabindex code from all toolbar buttons. Added tabindex to iframe, added event handler for tab which tabs to next available tabindex (unless zoomed). Modified: kupu/trunk/kupu/common/kupubasetools.js ============================================================================== --- kupu/trunk/kupu/common/kupubasetools.js (original) +++ kupu/trunk/kupu/common/kupubasetools.js Fri May 18 15:02:42 2007 @@ -76,12 +76,6 @@ this._selectSelectItem = function(select, item) { this.editor.logMessage(_('Deprecation warning: KupuTool._selectSelectItem')); }; - this._fixTabIndex = function(element) { - var tabIndex = this.editor.getDocument().getEditable().tabIndex-1; - if (tabIndex && !element.tabIndex) { - element.tabIndex = tabIndex; - } - }; } function KupuToolBox() { @@ -146,7 +140,6 @@ KupuButton.prototype.initialize = function(editor) { this.editor = editor; if (!this.button) return; - this._fixTabIndex(this.button); addEventHandler(this.button, 'click', this.execCommand, this); }; @@ -272,7 +265,6 @@ this.cleanStyles(); this.enableOptions(false); if (this.tsselect) { - this._fixTabIndex(this.tsselect); this._selectevent = addEventHandler(this.tsselect, 'change', this.setTextStyleHandler, this); } }; @@ -2223,20 +2215,16 @@ /* attach event handlers */ this.editor = editor; if (this.addulbutton) { - this._fixTabIndex(this.addulbutton); addEventHandler(this.addulbutton, "click", this.addUnorderedList, this); } if (this.addolbutton) { - this._fixTabIndex(this.addolbutton); addEventHandler(this.addolbutton, "click", this.addOrderedList, this); } if (this.ulselect) { - this._fixTabIndex(this.ulselect); addEventHandler(this.ulselect, "change", this.setUnorderedListStyle, this); this.ulselect.style.display = "none"; } if (this.olselect) { - this._fixTabIndex(this.olselect); addEventHandler(this.olselect, "change", this.setOrderedListStyle, this); this.olselect.style.display = "none"; } @@ -2420,7 +2408,6 @@ /* initialize the tool */ this.editor = editor; if (!this.dlbutton) return; - this._fixTabIndex(this.dlbutton); addEventHandler(this.dlbutton, 'click', this.createDefinitionList, this); addEventHandler(editor.getInnerDocument(), 'keyup', this._keyDownHandler, this); addEventHandler(editor.getInnerDocument(), 'keypress', this._keyPressHandler, this); @@ -2727,7 +2714,6 @@ this.pressed = false; if (!this.button) return; this.baseinitialize(editor); - this.button.tabIndex = this.editor.document.editable.tabIndex; addEventHandler(window, "resize", this.onresize, this); addEventHandler(window, "scroll", this.onscroll, this); Modified: kupu/trunk/kupu/common/kupusourceedit.js ============================================================================== --- kupu/trunk/kupu/common/kupusourceedit.js (original) +++ kupu/trunk/kupu/common/kupusourceedit.js Fri May 18 15:02:42 2007 @@ -39,7 +39,6 @@ /* attach the event handlers */ this.editor = editor; if (!this.sourceButton) return; - this._fixTabIndex(this.sourceButton); addEventHandler(this.sourceButton, "click", this.switchSourceEdit, this); this.editor.logMessage(_('Source edit tool initialized')); }; Modified: kupu/trunk/kupu/plone/body.kupu ============================================================================== --- kupu/trunk/kupu/plone/body.kupu (original) +++ kupu/trunk/kupu/plone/body.kupu Fri May 18 15:02:42 2007 @@ -11,12 +11,13 @@
- Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js Fri May 18 15:02:42 2007 @@ -34,7 +34,6 @@ // now we can create the controller var kupu = (window.kupu = new KupuEditor(doc, conf, l)); - kupu.setHTMLBody(initialtext); // now we can create a UI object which we can use from the UI @@ -283,6 +282,35 @@ }; addEventHandler(textarea.form, 'submit', prepareForm, textarea); + function tabHandler(event) { + event = event||window.event; + if (event.keyCode!=9) { return; } + if (!/kupu-fulleditor-zoomed/.test(document.body.className)) { + var form = textarea.form; + var els = form.elements; + var target, targindex; + var mytabindex = iframe.tabIndex; + for (var i = 0; i < els.length; i++) { + var el = els[i]; + if (el.tabIndex && el.tabIndex > mytabindex && !el.disabled && el.offsetWidth && el.offsetHeight) { + if (!targindex || el.tabIndex < targindex) { + target = el; + targindex = el.tabIndex; + } + } + } + if (target) { + window.focus(); + target.focus(); + } + } + if (event.preventDefault) { event.preventDefault(); event.stopPropagation();} + event.returnValue = false; + return false; + } + var inner = kupu.getInnerDocument(); + kupu._addEventHandler(inner.documentElement, "keydown", tabHandler); + kupu.initialize(); return kupu; }; @@ -290,3 +318,8 @@ // modify LinkDrawer so links don't have a target LinkDrawer.prototype.target = ''; LinkLibraryDrawer.prototype.target = ''; +if (!window.console) { + window.console = new function() { + this.log = function() {}; + }; +} Modified: kupu/trunk/kupu/plone/kupu_references/referencebrowser.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_references/referencebrowser.pt (original) +++ kupu/trunk/kupu/plone/kupu_references/referencebrowser.pt Fri May 18 15:02:42 2007 @@ -151,8 +151,10 @@ class="searchButton" value="Browse..." onClick="" + tabindex="" i18n:attributes="value label_browse;" - tal:attributes="onClick string:referencebrowser_draweropen(event,$rFieldName,$rLabel,$multiVal,'$resource_type');;;" /> + tal:attributes="onClick string:referencebrowser_draweropen(event,$rFieldName,$rLabel,$multiVal,'$resource_type');;; + tabindex tabindex/next|nothing" /> Author: duncan Date: Fri May 18 15:36:35 2007 New Revision: 43481 Modified: kupu/trunk/kupu/common/kupucontentfilters.js kupu/trunk/kupu/doc/CHANGES.txt kupu/trunk/kupu/tests/test_xhtml.js Log: Strip only one trailing
tag. Stop unit tests from opening the Firefox error console 3 times every time they run. Modified: kupu/trunk/kupu/common/kupucontentfilters.js ============================================================================== --- kupu/trunk/kupu/common/kupucontentfilters.js (original) +++ kupu/trunk/kupu/common/kupucontentfilters.js Fri May 18 15:36:35 2007 @@ -681,7 +681,7 @@ } parentNode.insertBefore(p,node); parentNode.removeChild(node); - } else if (!node.nextSibling && (/p|div/i.test(parentNode.nodeName))) { + } else if (!node.nextSibling && (/p|div/i.test(parentNode.nodeName) && !(node.previousSibling&&node.previousSibling.nodeName=='br'))) { parentNode.removeChild(node); } } Modified: kupu/trunk/kupu/doc/CHANGES.txt ============================================================================== --- kupu/trunk/kupu/doc/CHANGES.txt (original) +++ kupu/trunk/kupu/doc/CHANGES.txt Fri May 18 15:36:35 2007 @@ -8,6 +8,18 @@ - Media objects may now have a list of classes (specific to the portal type). + - Image drawer layout has been tidied up. + + - Removed the tabindex from all the toolbar buttons and added it to + the iframe: this means you can tab into kupu from above without + dying of old age as you try to get past the toolbar. Added a + handler for the tab key so that pressing tab will take you to the + next tabstop in the form. + + - Only single trailing
tags are stripped from p and div tags: multiple +
tags are left unchanged (so those people who insist on using + the to generate whitespace still can). + - 1.4 Beta 6 - Removed the getToolByName deprecation workround since Modified: kupu/trunk/kupu/tests/test_xhtml.js ============================================================================== --- kupu/trunk/kupu/tests/test_xhtml.js (original) +++ kupu/trunk/kupu/tests/test_xhtml.js Fri May 18 15:36:35 2007 @@ -64,6 +64,7 @@ } return false; } + this.testExclude = function() { // Check that the exclude functions work as expected. var validator = new XhtmlValidation(this.editor); @@ -129,6 +130,13 @@ var expected = '

This is a test
with more text

'; this.conversionTest(data, expected); }; + this.testRemoveTrailingBr3 = function() { + // If someone is trying to do spacing by inserting extra breaks + // we shouldn't remove any of them. + var data = '

This is a test

with more text

'; + var expected = '

This is a test

with more text

'; + this.conversionTest(data, expected); + }; this.testFixTopLevelBr = function() { var data = '

alpha

beta

gamma

'; var expected = '

alpha

beta

gamma

'; @@ -277,16 +285,16 @@ this.testPWithCaptionedImg = function() { // Captioned images are converted to block tags so they must // not be inside a paragraph. - var data = '

some text
xyzzyblah

'; - var expected = '

some text

xyzzy

blah

'; + var data = '

some text
xyzzyblah

'; + var expected = '

some text

xyzzy

blah

'; this.conversionTest(data, expected); // If there is no surrounding text we don't want empty paras. - var data = '

xyzzy

'; - var expected = 'xyzzy'; + var data = '

xyzzy

'; + var expected = 'xyzzy'; this.conversionTest(data, expected); // But ordinary images are fine. - var data = '

some text
xyzzyblah

'; - var expected = '

some text
xyzzyblah

'; + var data = '

some text
xyzzyblah

'; + var expected = '

some text
xyzzyblah

'; this.conversionTest(data, expected); }; From duncan at codespeak.net Fri May 18 15:47:41 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 18 May 2007 15:47:41 +0200 (CEST) Subject: [kupu-checkins] r43482 - in kupu/trunk/kupu: doc plone plone/kupu_plone_layer Message-ID: <20070518134741.C3D048074@code0.codespeak.net> Author: duncan Date: Fri May 18 15:47:41 2007 New Revision: 43482 Modified: kupu/trunk/kupu/doc/CHANGES.txt kupu/trunk/kupu/plone/body.kupu kupu/trunk/kupu/plone/kupu_plone_layer/kupu_wysiwyg_support.html Log: Plone ticket 5420: "Edit with kupu" broken for fields on custom fieldset https://dev.plone.org/plone/ticket/5420 Modified: kupu/trunk/kupu/doc/CHANGES.txt ============================================================================== --- kupu/trunk/kupu/doc/CHANGES.txt (original) +++ kupu/trunk/kupu/doc/CHANGES.txt Fri May 18 15:47:41 2007 @@ -20,6 +20,8 @@
tags are left unchanged (so those people who insist on using the to generate whitespace still can). + - Plone tickets: 5420 + - 1.4 Beta 6 - Removed the getToolByName deprecation workround since Modified: kupu/trunk/kupu/plone/body.kupu ============================================================================== --- kupu/trunk/kupu/plone/body.kupu (original) +++ kupu/trunk/kupu/plone/body.kupu Fri May 18 15:47:41 2007 @@ -69,7 +69,8 @@ tal:attributes="style python:test(floated, 'float:left;;', '');" > Edit without visual editor @@ -86,7 +87,8 @@ Edit with visual editor Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupu_wysiwyg_support.html ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupu_wysiwyg_support.html (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupu_wysiwyg_support.html Fri May 18 15:47:41 2007 @@ -21,7 +21,7 @@ - + @@ -447,7 +447,7 @@
-
+ @@ -471,7 +471,7 @@ From duncan at codespeak.net Fri May 18 17:12:15 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 18 May 2007 17:12:15 +0200 (CEST) Subject: [kupu-checkins] r43492 - in kupu/trunk/kupu: . common plone/kupu_plone_layer tests Message-ID: <20070518151215.7CA408077@code0.codespeak.net> Author: duncan Date: Fri May 18 17:12:15 2007 New Revision: 43492 Modified: kupu/trunk/kupu/common/kupucontentfilters.js kupu/trunk/kupu/common/kupueditor.js kupu/trunk/kupu/jslint.opts kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js kupu/trunk/kupu/tests/test_xhtml.js Log: Cleanup code could miss
and

tags: removingChild has a side effect of removing a node from a getElementsByTagName result set, so we need to iterate over the

and
tags in reverse order. Fix for Plone issue #6056 Extra line breaks added in pre tags (not strictly a kupu bug but we now remove
tags from any pre content on saving and therefore avoid triggering the htmlTidy bug). Modified: kupu/trunk/kupu/common/kupucontentfilters.js ============================================================================== --- kupu/trunk/kupu/common/kupucontentfilters.js (original) +++ kupu/trunk/kupu/common/kupucontentfilters.js Fri May 18 17:12:15 2007 @@ -598,7 +598,7 @@ target.setAttribute(valid[i], val); } }; - } + }; this._convertToSarissaNode = function(ownerdoc, htmlnode) { var root = this._convertNodes(ownerdoc, htmlnode, null, new this.Set(['html'])); @@ -661,7 +661,7 @@ this._cleanupParas = function(ownerdoc, root) { var paras = root.getElementsByTagName('p'); - for (var i = 0; i < paras.length; i++) { + for (var i = paras.length-1; i >= 0; i--) { this._cleanupPara(ownerdoc, paras[i]); } }; @@ -670,7 +670,8 @@ */ this._cleanupBr = function(ownerdoc, root) { var breaks = root.getElementsByTagName('br'); - for (var i = 0; i < breaks.length; i++) { + // Iterate backwards: removeChild removes node from breaks. + for (var i = breaks.length-1; i >= 0; i--) { var node = breaks[i]; var parentNode = node.parentNode; if (parentNode.tagName=='body') { @@ -681,7 +682,7 @@ } parentNode.insertBefore(p,node); parentNode.removeChild(node); - } else if (!node.nextSibling && (/p|div/i.test(parentNode.nodeName) && !(node.previousSibling&&node.previousSibling.nodeName=='br'))) { + } else if (!node.nextSibling && (/(p|div)\b/i.test(parentNode.nodeName) && !(node.previousSibling&&node.previousSibling.nodeName=='br'))) { parentNode.removeChild(node); } } @@ -748,5 +749,3 @@ return xhtmlnode; }; } - - Modified: kupu/trunk/kupu/common/kupueditor.js ============================================================================== --- kupu/trunk/kupu/common/kupueditor.js (original) +++ kupu/trunk/kupu/common/kupueditor.js Fri May 18 17:12:15 2007 @@ -654,7 +654,7 @@ return '<'+close+tag+'>'; }); }; - text = text.replace(/

()<\/p>/,'$1'); + text = text.replace(/

()<\/p>/g,'$1'); bodies[bodies.length-1].innerHTML = text; }; @@ -769,6 +769,9 @@ /\s*(<(p|div|h.|ul|ol|dl|menu|dir|pre|blockquote|address|center|table|thead|tbody|tfoot|tr|th|td))\b/ig, '\n$1'); data = data.replace( /\s*(<\/(p|div|h.|ul|ol|dl|menu|dir|pre|blockquote|address|center|table|thead|tbody|tfoot|tr|th|td)>)\s*/ig, '$1\n'); + data = data.replace(/\((?:.|\n)*?)\<\/pre\>/gm, function(s) { + return s.replace(/]*>/gi,'\n'); + }); return data.strip(); }; this.escapeEntities = function(xml) { Modified: kupu/trunk/kupu/jslint.opts ============================================================================== --- kupu/trunk/kupu/jslint.opts (original) +++ kupu/trunk/kupu/jslint.opts Fri May 18 17:12:15 2007 @@ -4,7 +4,7 @@ --extern ColorchooserTool,ContextFixer,ContextMenu,ContextMenuElement --extern DefinitionListTool,DrawerTool,extern,getBaseTagClass,getFromSelector --extern IESelection,ImageLibraryDrawer,ImageTool,ImageToolBox,initKupu,kupu ---extern KupuButton,kupuButtonDisable,kupuButtonEnable,KupuDocument,KupuEditor +--extern KupuButton,kupuButtonDisable,kupuButtonEnable,KupuDocument,KupuEditor,kupuFixImage --extern KupuInspector,KupuRemoveElementButton,KupuSpellChecker,KupuStateButton --extern KupuUI,KupuZoomTool,LinkDrawer,LinkLibraryDrawer,LinkTool,LinkToolBox --extern ListTool,loadDictFromXML,MozillaSelection,newDocumentElement Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js Fri May 18 17:12:15 2007 @@ -285,7 +285,7 @@ function tabHandler(event) { event = event||window.event; if (event.keyCode!=9) { return; } - if (!/kupu-fulleditor-zoomed/.test(document.body.className)) { + if (!(/kupu-fulleditor-zoomed/.test(document.body.className))) { var form = textarea.form; var els = form.elements; var target, targindex; Modified: kupu/trunk/kupu/tests/test_xhtml.js ============================================================================== --- kupu/trunk/kupu/tests/test_xhtml.js (original) +++ kupu/trunk/kupu/tests/test_xhtml.js Fri May 18 17:12:15 2007 @@ -147,7 +147,11 @@ var expected = '

alpha

gamma

'; this.conversionTest(data, expected); }; - + this.testMultipleNakedBr = function() { + var data = '

alpha





gamma

'; + var expected = '

alpha

gamma

'; + this.conversionTest(data, expected); + }; this.testXmlAttrs = function() { var data = '
This is a test
'; var expected1 = '
This is a test
'; From duncan at codespeak.net Fri May 18 17:37:57 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 18 May 2007 17:37:57 +0200 (CEST) Subject: [kupu-checkins] r43493 - in kupu/trunk/kupu: . doc plone/kupu_plone_layer Message-ID: <20070518153757.43BF58077@code0.codespeak.net> Author: duncan Date: Fri May 18 17:37:56 2007 New Revision: 43493 Modified: kupu/trunk/kupu/ (props changed) kupu/trunk/kupu/doc/CHANGES.txt kupu/trunk/kupu/plone/kupu_plone_layer/resolveuid.py Log: resolveuid now generates a proper 404 error for unrecognised uids. If no uid is specified it now throws an unauthorised error (Plone issue 6103). Modified: kupu/trunk/kupu/doc/CHANGES.txt ============================================================================== --- kupu/trunk/kupu/doc/CHANGES.txt (original) +++ kupu/trunk/kupu/doc/CHANGES.txt Fri May 18 17:37:56 2007 @@ -20,7 +20,7 @@
tags are left unchanged (so those people who insist on using the to generate whitespace still can). - - Plone tickets: 5420 + - Plone tickets: 5420, 6056, 6103 - 1.4 Beta 6 Modified: kupu/trunk/kupu/plone/kupu_plone_layer/resolveuid.py ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/resolveuid.py (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/resolveuid.py Fri May 18 17:37:56 2007 @@ -9,11 +9,16 @@ # (reference_url is supposed to do the same thing, but is broken) from Products.CMFCore.utils import getToolByName from Products.PythonScripts.standard import html_quote +from AccessControl import Unauthorized request = context.REQUEST response = request.RESPONSE -uuid = traverse_subpath.pop(0) +try: + uuid = traverse_subpath.pop(0) +except: + raise Unauthorized, context + reference_tool = getToolByName(context, 'reference_catalog') obj = reference_tool.lookupObject(uuid) if not obj: @@ -21,8 +26,7 @@ if hook: obj = hook(uuid) if not obj: - return context.standard_error_message(error_type=404, - error_message='''The link you followed appears to be broken''') + return response.notFoundError('''The link you followed appears to be broken''') if traverse_subpath: traverse_subpath.insert(0, obj.absolute_url()) From duncan at codespeak.net Mon May 21 10:22:58 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Mon, 21 May 2007 10:22:58 +0200 (CEST) Subject: [kupu-checkins] r43521 - kupu/trunk/kupu/plone Message-ID: <20070521082258.9A1BD807E@code0.codespeak.net> Author: duncan Date: Mon May 21 10:22:57 2007 New Revision: 43521 Modified: kupu/trunk/kupu/plone/html2captioned.py Log: Scaled images picked up size of original image in captioning code. Modified: kupu/trunk/kupu/plone/html2captioned.py ============================================================================== --- kupu/trunk/kupu/plone/html2captioned.py (original) +++ kupu/trunk/kupu/plone/html2captioned.py Mon May 21 10:22:57 2007 @@ -141,7 +141,7 @@ if hasattr(aq_base(subtarget), 'getWidth'): width = subtarget.getWidth() elif hasattr(aq_base(subtarget), 'width'): - width = subtarget.getWidth() + width = subtarget.width if not width: try: width = target.getWidth() From duncan at codespeak.net Mon May 21 12:28:05 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Mon, 21 May 2007 12:28:05 +0200 (CEST) Subject: [kupu-checkins] r43522 - in kupu/trunk/kupu/plone: kupu_plone_layer profiles/default Message-ID: <20070521102805.3BFA68082@code0.codespeak.net> Author: duncan Date: Mon May 21 12:28:03 2007 New Revision: 43522 Modified: kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py kupu/trunk/kupu/plone/profiles/default/kupu.xml Log: Fix for Plone ticket #6598: Default linkables in Kupu: folder is not, plone site is not, ATRelativePathCriterion is Modified: kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/sample-kupu-customisation-policy.py Mon May 21 12:28:03 2007 @@ -13,11 +13,38 @@ # preferred kupu configuration. from Products.CMFCore.utils import getToolByName +LINKABLE_BLACKLIST = ( + 'ATBooleanCriterion', + 'ATCurrentAuthorCriterion', + 'ATDateCriteria', + 'ATDateRangeCriterion', + 'ATListCriterion', + 'ATPathCriterion', + 'ATPortalTypeCriterion', + 'ATReferenceCriterion', + 'ATRelativePathCriterion', + 'ATSelectionCriterion', + 'ATSimpleIntCriterion', + 'ATSimpleStringCriterion', + 'ATSortCriterion', + 'ChangeSet', + 'CMF Document', + 'CMF Event', + 'CMF Favorite', + 'CMF File', + 'CMF Image', + 'CMF Link', + 'CMF News Item', + 'Discussion Item', + 'Favorite', + 'Link', + 'TempFolder', +) RESOURCES = dict( - linkable = ('Document', 'Image', 'File', 'News Item', 'Event', 'Folder', 'Large Plone Folder'), - mediaobject = ('Image',), - collection = ('Plone Site', 'Folder', 'Large Plone Folder'), - containsanchors = ('Document', 'News Item', 'Event'), + linkable = ('blacklist', LINKABLE_BLACKLIST), + mediaobject = ('whitelist', ('Image',)), + collection = ('whitelist', ('Plone Site', 'Folder', 'Large Plone Folder')), + containsanchors = ('whitelist', ('Document', 'News Item', 'Event')), ) EXCLUDED_HTML = [ @@ -126,8 +153,8 @@ tool.deleteResourceTypes([ t.name for t in types]) print "add resources" -for k,v in RESOURCES.items(): - tool.addResourceType(k, typefilter(v)) +for k,(mode,types) in RESOURCES.items(): + tool.addResourceType(k, typefilter(types), mode=mode) mappings = tool.zmi_get_resourcetypes() for t in mappings: Modified: kupu/trunk/kupu/plone/profiles/default/kupu.xml ============================================================================== --- kupu/trunk/kupu/plone/profiles/default/kupu.xml (original) +++ kupu/trunk/kupu/plone/profiles/default/kupu.xml Mon May 21 12:28:03 2007 @@ -83,7 +83,6 @@ Image Large Plone Folder Link - Plone Site TempFolder Topic @@ -96,10 +95,12 @@ ATPathCriterion ATPortalTypeCriterion ATReferenceCriterion + ATRelativePathCriterion ATSelectionCriterion ATSimpleIntCriterion ATSimpleStringCriterion ATSortCriterion + ChangeSet CMF Document CMF Event CMF Favorite @@ -109,7 +110,6 @@ CMF News Item Discussion Item Favorite - Folder Link Plone Site TempFolder From duncan at codespeak.net Mon May 21 13:06:27 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Mon, 21 May 2007 13:06:27 +0200 (CEST) Subject: [kupu-checkins] r43524 - in kupu/trunk/kupu: common plone plone/kupu_plone_layer Message-ID: <20070521110627.78769808F@code0.codespeak.net> Author: duncan Date: Mon May 21 13:06:27 2007 New Revision: 43524 Modified: kupu/trunk/kupu/common/kupu_kjax.js kupu/trunk/kupu/plone/kupu_config.pt kupu/trunk/kupu/plone/kupu_plone_layer/kupu_migration.xml.pt kupu/trunk/kupu/plone/zmi_links.pt Log: Fix kupu's Links tab so it works in Plone 3. Modified: kupu/trunk/kupu/common/kupu_kjax.js ============================================================================== --- kupu/trunk/kupu/common/kupu_kjax.js (original) +++ kupu/trunk/kupu/common/kupu_kjax.js Mon May 21 13:06:27 2007 @@ -13,7 +13,7 @@ (function(p){ p._loadXML = function(uri, callback, body, reload, extra) { function _sarissaCallback() { - /* callback for Sarissa + /* callback for Sarissa when the callback is called because the data's ready it will get the responseXML DOM and call user_callback with the DOM as the first argument and the uri loaded @@ -21,9 +21,9 @@ note that this method should be called in the context of an xmlhttp object - */ + */ if (xmlhttp.readyState == 4) { - this.xmlhttp = null; + self.xmlhttp = null; if (xmlhttp.status && xmlhttp.status != 200) { var errmessage = 'Error '+xmlhttp.status+' loading '+(uri||'XML'); alert(errmessage); Modified: kupu/trunk/kupu/plone/kupu_config.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_config.pt (original) +++ kupu/trunk/kupu/plone/kupu_config.pt Mon May 21 13:06:27 2007 @@ -18,6 +18,8 @@
+ +
Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupu_migration.xml.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupu_migration.xml.pt (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupu_migration.xml.pt Mon May 21 13:06:27 2007 @@ -12,15 +12,17 @@ xmlns:kj="http://kupu.oscom.org/namespaces/kjax" tal:define="pss modules/Products/PythonScripts/standard; + getToolByName nocall:modules/Products.CMFCore.utils/getToolByName; + kupu python:getToolByName(context, 'kupu_library_tool'); wantform not:request/form.submitted|request/button|nothing; - uri string:${context/absolute_url_path}/${template/getId}"> + uri string:${kupu/absolute_url_path}/${template/getId}">
Type (Field name) -
+
You may restrict the search to specific folders.
-
+
Info @@ -82,11 +84,11 @@
- +
- +
[]
 
@@ -186,10 +188,17 @@
- + -
+
+ + + kupu- + + selected-item + + drawertool.current_drawer.selectCollection(this); @@ -229,9 +238,6 @@ - - drawer-item-title selected-item - ... Modified: kupu/trunk/kupu/common/kupudrawerstyles.css ============================================================================== --- kupu/trunk/kupu/common/kupudrawerstyles.css (original) +++ kupu/trunk/kupu/common/kupudrawerstyles.css Wed May 16 15:41:53 2007 @@ -195,9 +195,6 @@ .library-icon-library { margin-left: -20px; } -.kupu-upload { - margin-top: 1em; float:right; -} label.kupu-detail-label { float:left;clear:left; @@ -240,7 +237,7 @@ padding-top: 2px; } -span.drawer-item-title.selected-item { +.selected-item span.drawer-item-title { background-color:#C0C0C0; } From duncan at codespeak.net Wed May 16 17:18:24 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Wed, 16 May 2007 17:18:24 +0200 (CEST) Subject: [kupu-checkins] r43435 - in kupu/trunk/kupu: common common/kupudrawers plone/kupu_plone_layer Message-ID: <20070516151824.8F7F88092@code0.codespeak.net> Author: duncan Date: Wed May 16 17:18:23 2007 New Revision: 43435 Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl kupu/trunk/kupu/common/kupudrawerstyles.css kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml Log: More style changes Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Wed May 16 17:18:23 2007 @@ -85,8 +85,7 @@ Search + class="kupu-searchbox-input nofocus"> if(event.keyCode==13)return false; if(event.keyCode == 13){drawertool.current_drawer.search();return false;} @@ -116,6 +115,9 @@
+ + overflow overflow-with-button +
@@ -226,8 +228,7 @@ @@ -272,8 +273,7 @@
-
- +
( by Modified: kupu/trunk/kupu/common/kupudrawerstyles.css ============================================================================== --- kupu/trunk/kupu/common/kupudrawerstyles.css (original) +++ kupu/trunk/kupu/common/kupudrawerstyles.css Wed May 16 17:18:23 2007 @@ -109,10 +109,6 @@ width: 640px; /* Mozilla bug */ } -div.kupu-drawer button { - margin-right: 0.3em; -} - div.kupu-panels { width: 100%; background-color: ButtonFace; @@ -137,7 +133,7 @@ } td.panel { - height: 260px; + height: 260px; padding:0; margin:0; } td#kupu-librariespanel { @@ -148,7 +144,7 @@ div#kupu-librariesitems { width: 105px; white-space: nowrap; - height: 100%; + height: 260px; } td#kupu-resourcespanel { @@ -159,11 +155,13 @@ div#kupu-resourceitems { white-space: nowrap; width: 200px; - height: 100%; +} +div#kupu-resourceitems.overflow-with-button { + height:236px; } div#kupu-properties { - height: 100%; + height: 260px; } div#kupu-librariesitems, div#kupu-resourceitems, div#kupu-properties { @@ -172,7 +170,7 @@ .overflow { overflow: auto; - height: 100%; + height: 260px; } div.response, div.collection { Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml Wed May 16 17:18:23 2007 @@ -223,11 +223,6 @@ font-size: 100%; } -div.kupu-drawer table td button, -div.kupu-drawer table td td { - font-size: 100%; -} - div.kupuoverride { margin-left: 0.75em; } From duncan at codespeak.net Wed May 16 17:33:25 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Wed, 16 May 2007 17:33:25 +0200 (CEST) Subject: [kupu-checkins] r43436 - in kupu/trunk/kupu/common: . kupudrawers Message-ID: <20070516153325.3EBEE8092@code0.codespeak.net> Author: duncan Date: Wed May 16 17:33:24 2007 New Revision: 43436 Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl kupu/trunk/kupu/common/kupudrawerstyles.css Log: Tweaked class Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Wed May 16 17:33:24 2007 @@ -114,10 +114,10 @@
+ + panel upload-allowed +
- - overflow overflow-with-button -
Modified: kupu/trunk/kupu/common/kupudrawerstyles.css ============================================================================== --- kupu/trunk/kupu/common/kupudrawerstyles.css (original) +++ kupu/trunk/kupu/common/kupudrawerstyles.css Wed May 16 17:33:24 2007 @@ -156,7 +156,7 @@ white-space: nowrap; width: 200px; } -div#kupu-resourceitems.overflow-with-button { +.upload-allowed div#kupu-resourceitems { height:236px; } From duncan at codespeak.net Thu May 17 10:39:30 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Thu, 17 May 2007 10:39:30 +0200 (CEST) Subject: [kupu-checkins] r43448 - in kupu/trunk/kupu/common: . kupudrawers Message-ID: <20070517083930.9286F8082@code0.codespeak.net> Author: duncan Date: Thu May 17 10:39:30 2007 New Revision: 43448 Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl kupu/trunk/kupu/common/kupudrawerstyles.css kupu/trunk/kupu/common/kupuhelpers.js Log: Tidied up html/css for image form again: now it lays out correctly in IE6. Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Thu May 17 10:39:30 2007 @@ -315,7 +315,7 @@ - + if(event.keyCode==13)return false; @@ -343,45 +343,53 @@ - - - if(event.keyCode==13)return false; - - checked - - document.getElementById('image_alt_div').style.display = - this.checked?'none':''; - + + + if(event.keyCode==13)return false; + + checked + + toggleAltFieldVisibility(this); + + - - + + + - - + + + -
+ + display:none; - - - if(event.keyCode==13)return false; - -
+ if(event.keyCode==13)return false; + Modified: kupu/trunk/kupu/common/kupudrawerstyles.css ============================================================================== --- kupu/trunk/kupu/common/kupudrawerstyles.css (original) +++ kupu/trunk/kupu/common/kupudrawerstyles.css Thu May 17 10:39:30 2007 @@ -64,7 +64,7 @@ .kupu-alt-row label { display: block; } -#image_alt { width:17em; } + div.kupu-linkdrawer-addlink td { border: 0; } @@ -194,17 +194,18 @@ margin-left: -20px; } -label.kupu-detail-label { - float:left;clear:left; - width:7em; - text-align:right; - margin: 0.2em; +.kupu-image-fields { + width: 270px; margin:0; padding:0; } .kupu-detail { float:left; - margin: 0.2em; + width: 185px; + margin: 2px 0; padding: 0; +} +label.kupu-detail { + clear:left; width:75px; text-align:right; + margin-right: 5px; } - /*div.kupu-libsource-selected { background-repeat: no-repeat; }*/ Modified: kupu/trunk/kupu/common/kupuhelpers.js ============================================================================== --- kupu/trunk/kupu/common/kupuhelpers.js (original) +++ kupu/trunk/kupu/common/kupuhelpers.js Thu May 17 10:39:30 2007 @@ -1508,3 +1508,12 @@ image.height = height; image.width = width; } +function toggleAltFieldVisibility(me) { + var label = document.getElementById('image-alt-label'); + var vis = me.checked?'none':''; + if (label) { + label.style.display = vis; + var fld = document.getElementById(label.htmlFor); + if(fld) { fld.style.display = vis; } + } +} \ No newline at end of file From hannosch at codespeak.net Thu May 17 11:41:02 2007 From: hannosch at codespeak.net (hannosch at codespeak.net) Date: Thu, 17 May 2007 11:41:02 +0200 (CEST) Subject: [kupu-checkins] r43450 - kupu/trunk/kupu/plone/kupu_references Message-ID: <20070517094102.C27EA8090@code0.codespeak.net> Author: hannosch Date: Thu May 17 11:41:01 2007 New Revision: 43450 Modified: kupu/trunk/kupu/plone/kupu_references/referencebrowser.pt Log: Even more ZChecker happyness. Modified: kupu/trunk/kupu/plone/kupu_references/referencebrowser.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_references/referencebrowser.pt (original) +++ kupu/trunk/kupu/plone/kupu_references/referencebrowser.pt Thu May 17 11:41:01 2007 @@ -29,9 +29,9 @@ tal:define="kupu context/kupu_library_tool; base python:kupu.getBaseUrl(here); uid context/UID|nothing; - lib_prefix string:${base}/kupulibraries.xml?instance=$uid&resource_type=; - search_prefix string:${portal_url}/kupusearch.xml?instance=$uid&resource_type=; - select_prefix string:${portal_url}/kupuselection.xml?instance=$uid&resource_type=; + lib_prefix string:${base}/kupulibraries.xml?instance=$uid&resource_type=; + search_prefix string:${portal_url}/kupusearch.xml?instance=$uid&resource_type=; + select_prefix string:${portal_url}/kupuselection.xml?instance=$uid&resource_type=; xsl_uri string:${portal_url}/kupudrawers/drawer.xsl;" tal:content="string:krb_initdrawer('$xsl_uri','$lib_prefix','$search_prefix','$select_prefix');"> From duncan at codespeak.net Thu May 17 12:03:54 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Thu, 17 May 2007 12:03:54 +0200 (CEST) Subject: [kupu-checkins] r43451 - in kupu/trunk/kupu/common: . kupudrawers Message-ID: <20070517100354.83CEC8082@code0.codespeak.net> Author: duncan Date: Thu May 17 12:03:53 2007 New Revision: 43451 Modified: kupu/trunk/kupu/common/kupudrawers.js kupu/trunk/kupu/common/kupudrawers/drawer.xsl kupu/trunk/kupu/common/kupuhelpers.js Log: upload-allowed class now gets copied to html
in Firefox as well as IE. Image preview size is calculated in the xml (if we have the original sizes available, otherwise it will fall back to the javascript version). This eliminates the horrible flicker as the preview pane layout changes. Image fixing code no longer gets applied to the 'home' icon (making it disappear in FF). Modified: kupu/trunk/kupu/common/kupudrawers.js ============================================================================== --- kupu/trunk/kupu/common/kupudrawers.js (original) +++ kupu/trunk/kupu/common/kupudrawers.js Thu May 17 12:03:53 2007 @@ -688,12 +688,16 @@ var targetnode = document.getElementById(id); if (!sourcenode || !targetnode) return; + var cls = sourcenode.getAttribute('class'); + if (cls) { + targetnode.className = cls; + } Sarissa.copyChildNodes(sourcenode, targetnode); if (!this.focussed) { this.focusElement(); } - var el = targetnode.getElementsByTagName('img')[0]; - if (el) { + var el = document.getElementById('kupu-preview-image'); + if (el && el.width=='1') { kupuFixImage(el); } // Mark drawer as having a selection or not Modified: kupu/trunk/kupu/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/trunk/kupu/common/kupudrawers/drawer.xsl (original) +++ kupu/trunk/kupu/common/kupudrawers/drawer.xsl Thu May 17 12:03:53 2007 @@ -304,7 +304,27 @@ - + + + + + + 128 + + + + + + 128 + + + + 1 + 1 + kupuFixImage(this); + + + Modified: kupu/trunk/kupu/common/kupuhelpers.js ============================================================================== --- kupu/trunk/kupu/common/kupuhelpers.js (original) +++ kupu/trunk/kupu/common/kupuhelpers.js Thu May 17 12:03:53 2007 @@ -1505,9 +1505,12 @@ width = 128; }; }; - image.height = height; - image.width = width; + if (width&&height) { + image.height = height; + image.width = width; + } } + function toggleAltFieldVisibility(me) { var label = document.getElementById('image-alt-label'); var vis = me.checked?'none':''; From duncan at codespeak.net Thu May 17 15:27:38 2007 From: duncan at codespeak.net (duncan at codespeak.net) Date: Thu, 17 May 2007 15:27:38 +0200 (CEST) Subject: [kupu-checkins] r43454 - in kupu/trunk/kupu: apache-lenya/lenya/drawers common common/kupudrawers plone plone/kupu_plone_layer Message-ID: <20070517132738.197268078@code0.codespeak.net> Author: duncan Date: Thu May 17 15:27:37 2007 New Revision: 43454 Modified: kupu/trunk/kupu/apache-lenya/lenya/drawers/imagedrawer.xsl kupu/trunk/kupu/common/kupudrawers.js kupu/trunk/kupu/common/kupudrawers/drawer.xsl kupu/trunk/kupu/common/kupudrawerstyles.css kupu/trunk/kupu/plone/kupu_plone_layer/kupulibraries.xml.pt kupu/trunk/kupu/plone/kupu_plone_layer/kupusearch.xml.pt kupu/trunk/kupu/plone/kupu_plone_layer/kupuselection.xml.pt kupu/trunk/kupu/plone/libraries.pt kupu/trunk/kupu/plone/plonedrawers.py kupu/trunk/kupu/plone/plonelibrarytool.py Log: Fixed wrong class on search library. Search icon is now customisable, also the icon for the current selection. Fixed preview image for link drawer. Labels are no longer bold. 'Text equivalent' caption for the alt attribute, and the field is now a textarea so it is less like staring through a letterbox. Modified: kupu/trunk/kupu/apache-lenya/lenya/drawers/imagedrawer.xsl ============================================================================== --- kupu/trunk/kupu/apache-lenya/lenya/drawers/imagedrawer.xsl (original) +++ kupu/trunk/kupu/apache-lenya/lenya/drawers/imagedrawer.xsl Thu May 17 15:27:37 2007 @@ -42,7 +42,7 @@
ALT-text
- +
@@ -240,20 +244,12 @@

Anchors

-
- - - - +
- - - - -
Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupu_wysiwyg_support.html ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupu_wysiwyg_support.html (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupu_wysiwyg_support.html Tue May 22 15:03:41 2007 @@ -21,7 +21,7 @@ - + @@ -227,6 +227,10 @@

External Link