From duncan at codespeak.net Fri May 12 09:53:45 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 09:53:47 2006 Subject: [kupu-checkins] r27108 - kupu/trunk/kupu/plone Message-ID: <20060512075345.3D04710097@code0.codespeak.net> Author: duncan Date: Fri May 12 09:53:44 2006 New Revision: 27108 Modified: kupu/trunk/kupu/plone/plonelibrarytool.py Log: Plone ticket #5441: remove references to sanity check. Modified: kupu/trunk/kupu/plone/plonelibrarytool.py ============================================================================== --- kupu/trunk/kupu/plone/plonelibrarytool.py (original) +++ kupu/trunk/kupu/plone/plonelibrarytool.py Fri May 12 09:53:44 2006 @@ -338,7 +338,6 @@ dict(label='Libraries', action='zmi_libraries'), dict(label='Resource types', action='zmi_resource_types'), dict(label='Documentation', action='zmi_docs'), - dict(label='Status', action='sanity_check'), )) @@ -364,10 +363,6 @@ zmi_docs = PageTemplateFile("zmi_docs.pt", globals()) zmi_docs.title = 'kupu configuration documentation' - security.declareProtected(permissions.ManageLibraries, "sanity_check") - sanity_check = PageTemplateFile("sanity_check.pt", globals()) - sanity_check.title = 'kupu status' - security.declareProtected(permissions.ManageLibraries, "kupu_config") kupu_config = PageTemplateFile("kupu_config.pt", globals()) kupu_config.title = 'kupu configuration' From duncan at codespeak.net Fri May 12 09:55:33 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 09:55:34 2006 Subject: [kupu-checkins] r27109 - kupu/trunk/kupu/plone Message-ID: <20060512075533.27D651009D@code0.codespeak.net> Author: duncan Date: Fri May 12 09:55:32 2006 New Revision: 27109 Modified: kupu/trunk/kupu/plone/plonedrawers.py Log: Ignore the exception caused trying to find the current object if a link has been broken. Modified: kupu/trunk/kupu/plone/plonedrawers.py ============================================================================== --- kupu/trunk/kupu/plone/plonedrawers.py (original) +++ kupu/trunk/kupu/plone/plonedrawers.py Fri May 12 09:55:32 2006 @@ -563,7 +563,10 @@ base = portal.absolute_url() if src.startswith(base): src = src[len(base):].lstrip('/') - obj = portal.restrictedTraverse(src) + try: + obj = portal.restrictedTraverse(src) + except AttributeError: + return [] if portal_types: while obj.portal_type not in portal_types: obj = obj.aq_parent From duncan at codespeak.net Fri May 12 10:53:55 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 10:53:56 2006 Subject: [kupu-checkins] r27112 - in kupu/trunk/kupu/plone/kupu_plone_layer: . plonekupuimages Message-ID: <20060512085355.79A6110090@code0.codespeak.net> Author: duncan Date: Fri May 12 10:53:53 2006 New Revision: 27112 Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/fullscreencollapse_icon.gif (contents, props changed) kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/fullscreencollapse_icon.gif.metadata (contents, props changed) kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/fullscreenexpand_icon.gif (contents, props changed) kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/fullscreenexpand_icon.gif.metadata (contents, props changed) Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js Log: Reinstated the zoom button. 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 12 10:53:53 2006 @@ -156,12 +156,10 @@ var linktool = NoContextMenu(new LinkTool()); kupu.registerTool('linktool', linktool); - /* disabled var zoom = new KupuZoomTool(prefix+'button.kupu-zoom', prefix+'select.kupu-tb-styles', prefix+'button.kupu-logo'); kupu.registerTool('zoomtool', zoom); - */ if (typeof KupuSpellChecker != 'undefined') { var spellchecker = new KupuSpellChecker('kupu-spellchecker-button', Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/fullscreencollapse_icon.gif ============================================================================== Binary file. No diff available. Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/fullscreencollapse_icon.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/fullscreencollapse_icon.gif.metadata Fri May 12 10:53:53 2006 @@ -0,0 +1,3 @@ +[default] +title=Folder +cache=HTTPCache Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/fullscreenexpand_icon.gif ============================================================================== Binary file. No diff available. Added: kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/fullscreenexpand_icon.gif.metadata ============================================================================== --- (empty file) +++ kupu/trunk/kupu/plone/kupu_plone_layer/plonekupuimages/fullscreenexpand_icon.gif.metadata Fri May 12 10:53:53 2006 @@ -0,0 +1,3 @@ +[default] +title=Folder +cache=HTTPCache From duncan at codespeak.net Fri May 12 11:38:17 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 11:38:18 2006 Subject: [kupu-checkins] r27115 - in kupu/branch/kupu-1.3: common/kupudrawers plone plone/kupu_plone_layer tests Message-ID: <20060512093817.3ADCD1009A@code0.codespeak.net> Author: duncan Date: Fri May 12 11:38:15 2006 New Revision: 27115 Modified: kupu/branch/kupu-1.3/common/kupudrawers/drawer.xsl kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuUploadImage.py kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuplone.css.dtml kupu/branch/kupu-1.3/plone/plonelibrarytool.py kupu/branch/kupu-1.3/tests/run_tests.html Log: Plone ticket #5441: remove references to sanity check. Brought image upload in line with trunk version: improved the safety checks. Resolved a couple of minor differences from the plone 2.1 branch. Modified: kupu/branch/kupu-1.3/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/branch/kupu-1.3/common/kupudrawers/drawer.xsl (original) +++ kupu/branch/kupu-1.3/common/kupudrawers/drawer.xsl Fri May 12 11:38:15 2006 @@ -326,7 +326,7 @@ Modified: kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuUploadImage.py ============================================================================== --- kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuUploadImage.py (original) +++ kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuUploadImage.py Fri May 12 11:38:15 2006 @@ -7,22 +7,54 @@ ##parameters=node_prop_caption, node_prop_image from Products.CMFCore.utils import getToolByName +from Products.PythonScripts.standard import html_quote, newline_to_br request = context.REQUEST RESPONSE = request.RESPONSE TEMPLATE = """ - +%s """ def Error(fmt, *args): msg = fmt % args - script = TEMPLATE % ('cancelUpload', msg.replace("'", "\\'")) + script = TEMPLATE % ('cancelUpload', msg.replace("'", "\\'"), newline_to_br(html_quote(printed))) return script +def cleanupFilename(name): + """Generate a unique id which doesn't match + the system generated ids. + The reason being that setImage will blow up if we have a system + generated id and the id it generates from the filename is already in use. + """ + id = '' + name = name.replace('\\', '/') # Fixup Windows filenames + name = name.split('/')[-1] # Throw away any path part. + for c in name: + if c.isalnum() or c in '._': + id += c + + # Race condition here, but not a lot we can do about that + if context.check_id(id) is None and getattr(context,id,None) is None: + return id + + # Now make the id unique + parts = id.split('.') + if len(parts)==1: parts.append('') + count = 1 + while 1: + if count==1: + sc = '' + else: + sc = str(count) + id = "copy%s_of_%s" % (sc, id) + if context.check_id(id) is None and getattr(context,id,None) is None: + return id + count += 1 + kupu_tool = getToolByName(context, 'kupu_library_tool') ctr_tool = getToolByName(context, 'content_type_registry') @@ -46,21 +78,20 @@ if not context.portal_membership.checkPermission('Add portal content',context): return Error("You do not have permission to add content in %s", context.getId()) -# IE submits whole path to file, moz just the filename -id = id.split("\\")[-1] - -# check for a bad id -if context.check_id(id) is not None or getattr(context,id,None) is not None: - id = context.generateUniqueId(typename) +# Get an unused filename without path +id = cleanupFilename(id) -# check for a duplicate -newid = context.invokeFactory(type_name=typename, id=id, title=node_prop_caption, file=node_prop_image) +newid = context.invokeFactory(type_name=typename, id=id, + title=node_prop_caption, +# description=node_prop_desc, + ) if newid is None or newid == '': newid = id obj = getattr(context,newid, None) - +obj.setImage(node_prop_image) + if not obj: return Error("Could not create %s with %s as id and %s as title!", typename,newid, node_prop_caption) @@ -70,6 +101,7 @@ else: url = obj.absolute_url() -return TEMPLATE % ('finishUpload', url) +print "Uploaded image" +return TEMPLATE % ('finishUpload', url, newline_to_br(html_quote(printed))) Modified: kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuplone.css.dtml Fri May 12 11:38:15 2006 @@ -224,13 +224,6 @@ margin-left: 0.75em; } -.forcekupu { - background: transparent url(kupuimages/kupu_icon.gif) 5px 2px no-repeat; - padding: 6px 6px 1px 30px; - text-transform: &dtml-textTransform;; - height: 32px; width: auto; -} - .kupu-dialog-button { background: transparent url(&dtml-portal_url;/linkTransparent.gif) 9px 1px no-repeat; cursor: pointer; Modified: kupu/branch/kupu-1.3/plone/plonelibrarytool.py ============================================================================== --- kupu/branch/kupu-1.3/plone/plonelibrarytool.py (original) +++ kupu/branch/kupu-1.3/plone/plonelibrarytool.py Fri May 12 11:38:15 2006 @@ -214,7 +214,6 @@ dict(label='Libraries', action='zmi_libraries'), dict(label='Resource types', action='zmi_resource_types'), dict(label='Documentation', action='zmi_docs'), - dict(label='Status', action='sanity_check'), )) @@ -240,10 +239,6 @@ zmi_docs = PageTemplateFile("zmi_docs.pt", globals()) zmi_docs.title = 'kupu configuration documentation' - security.declareProtected(permissions.ManageLibraries, "sanity_check") - sanity_check = PageTemplateFile("sanity_check.pt", globals()) - sanity_check.title = 'kupu status' - security.declareProtected(permissions.ManageLibraries, "kupu_config") kupu_config = PageTemplateFile("kupu_config.pt", globals()) kupu_config.title = 'kupu configuration' Modified: kupu/branch/kupu-1.3/tests/run_tests.html ============================================================================== --- kupu/branch/kupu-1.3/tests/run_tests.html (original) +++ kupu/branch/kupu-1.3/tests/run_tests.html Fri May 12 11:38:15 2006 @@ -96,8 +96,8 @@ From duncan at codespeak.net Fri May 12 12:04:55 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 12:04:55 2006 Subject: [kupu-checkins] r27118 - kupu/trunk/kupu/plone/kupu_plone_layer Message-ID: <20060512100455.56733100AB@code0.codespeak.net> Author: duncan Date: Fri May 12 12:04:54 2006 New Revision: 27118 Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuUploadImage.py Log: minor fix to upload. Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuUploadImage.py ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/kupuUploadImage.py (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/kupuUploadImage.py Fri May 12 12:04:54 2006 @@ -82,7 +82,9 @@ id = cleanupFilename(id) newid = context.invokeFactory(type_name=typename, id=id, - title=node_prop_title, description=node_prop_desc) + title=node_prop_title, + description=node_prop_desc, + ) if newid is None or newid == '': newid = id @@ -91,7 +93,7 @@ obj.setImage(node_prop_image) if not obj: - return Error("Could not create %s with %s as id and %s as title!", typename,newid, node_prop_caption) + return Error("Could not create %s with %s as id and %s as title!", typename,newid, node_prop_title) obj.reindexObject() if linkbyuid and hasattr(obj, 'UID'): From duncan at codespeak.net Fri May 12 12:05:20 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 12:05:21 2006 Subject: [kupu-checkins] r27119 - kupu/trunk/kupu/common Message-ID: <20060512100520.6B8A5100AB@code0.codespeak.net> Author: duncan Date: Fri May 12 12:05:19 2006 New Revision: 27119 Modified: kupu/trunk/kupu/common/kupubasetools.js Log: Fix for zoom mode: now gets the windows the right sizes (I think). Modified: kupu/trunk/kupu/common/kupubasetools.js ============================================================================== --- kupu/trunk/kupu/common/kupubasetools.js (original) +++ kupu/trunk/kupu/common/kupubasetools.js Fri May 12 12:05:19 2006 @@ -2590,8 +2590,7 @@ } width = width + 'px'; var offset = iframe.offsetTop; - if (sourceArea) offset = sourceArea.offsetTop-1; - // XXX: TODO: Using wrong values here, figure out why. + if (sourceArea && sourceArea.offsetTop) offset = sourceArea.offsetTop-1; var nheight = Math.max(height - offset -1/*top border*/, 10); nheight = nheight + 'px'; fulleditor.style.width = width; /*IE needs this*/ @@ -2599,7 +2598,7 @@ iframe.style.height = nheight; if (sourceArea) { sourceArea.style.width = width; - sourceArea.style.height = height; + sourceArea.style.height = nheight; } } From duncan at codespeak.net Fri May 12 12:06:21 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 12:06:22 2006 Subject: [kupu-checkins] r27120 - in kupu/branch/kupu-1.3: common plone/kupu_plone_layer Message-ID: <20060512100621.553DD100AB@code0.codespeak.net> Author: duncan Date: Fri May 12 12:06:20 2006 New Revision: 27120 Modified: kupu/branch/kupu-1.3/common/kupubasetools.js kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuploneinit.js Log: Fix for zoom mode: now gets the windows the right sizes (I think). Modified: kupu/branch/kupu-1.3/common/kupubasetools.js ============================================================================== --- kupu/branch/kupu-1.3/common/kupubasetools.js (original) +++ kupu/branch/kupu-1.3/common/kupubasetools.js Fri May 12 12:06:20 2006 @@ -2551,8 +2551,7 @@ } width = width + 'px'; var offset = iframe.offsetTop; - if (sourceArea) offset = sourceArea.offsetTop-1; - // XXX: TODO: Using wrong values here, figure out why. + if (sourceArea && sourceArea.offsetTop) offset = sourceArea.offsetTop-1; var nheight = Math.max(height - offset -1/*top border*/, 10); nheight = nheight + 'px'; fulleditor.style.width = width; /*IE needs this*/ @@ -2560,7 +2559,7 @@ iframe.style.height = nheight; if (sourceArea) { sourceArea.style.width = width; - sourceArea.style.height = height; + sourceArea.style.height = nheight; } } Modified: kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuploneinit.js ============================================================================== --- kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuploneinit.js (original) +++ kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuploneinit.js Fri May 12 12:06:20 2006 @@ -152,12 +152,10 @@ var linktool = NoContextMenu(new LinkTool()); kupu.registerTool('linktool', linktool); - /* disabled var zoom = new KupuZoomTool(prefix+'button.kupu-zoom', prefix+'select.kupu-tb-styles', prefix+'button.kupu-logo'); kupu.registerTool('zoomtool', zoom); - */ // XXX - Needs prefix here for multi area support, but also // added to the template From duncan at codespeak.net Fri May 12 12:19:23 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 12:19:26 2006 Subject: [kupu-checkins] r27123 - in kupu/branch/plone-2.1: common common/kupudrawers plone plone/kupu_plone_layer Message-ID: <20060512101923.8FEF9100A0@code0.codespeak.net> Author: duncan Date: Fri May 12 12:19:22 2006 New Revision: 27123 Modified: kupu/branch/plone-2.1/common/kupubasetools.js kupu/branch/plone-2.1/common/kupudrawers/drawer.xsl kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuUploadImage.py kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuploneinit.js kupu/branch/plone-2.1/plone/plonelibrarytool.py Log: Merged revisions 27114 to 27120 from branch/kupu-1.3. This should bring the Plone branch back in line with the kupu-1.3 branch. Fixes include: zoom mode window sizes corrected. image upload code merged from trunk, and removed references to sanity check from plonelibrarytool. Modified: kupu/branch/plone-2.1/common/kupubasetools.js ============================================================================== --- kupu/branch/plone-2.1/common/kupubasetools.js (original) +++ kupu/branch/plone-2.1/common/kupubasetools.js Fri May 12 12:19:22 2006 @@ -2551,8 +2551,7 @@ } width = width + 'px'; var offset = iframe.offsetTop; - if (sourceArea) offset = sourceArea.offsetTop-1; - // XXX: TODO: Using wrong values here, figure out why. + if (sourceArea && sourceArea.offsetTop) offset = sourceArea.offsetTop-1; var nheight = Math.max(height - offset -1/*top border*/, 10); nheight = nheight + 'px'; fulleditor.style.width = width; /*IE needs this*/ @@ -2560,7 +2559,7 @@ iframe.style.height = nheight; if (sourceArea) { sourceArea.style.width = width; - sourceArea.style.height = height; + sourceArea.style.height = nheight; } } Modified: kupu/branch/plone-2.1/common/kupudrawers/drawer.xsl ============================================================================== --- kupu/branch/plone-2.1/common/kupudrawers/drawer.xsl (original) +++ kupu/branch/plone-2.1/common/kupudrawers/drawer.xsl Fri May 12 12:19:22 2006 @@ -326,7 +326,7 @@ Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuUploadImage.py ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuUploadImage.py (original) +++ kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuUploadImage.py Fri May 12 12:19:22 2006 @@ -7,22 +7,54 @@ ##parameters=node_prop_caption, node_prop_image from Products.CMFCore.utils import getToolByName +from Products.PythonScripts.standard import html_quote, newline_to_br request = context.REQUEST RESPONSE = request.RESPONSE TEMPLATE = """ - +%s """ def Error(fmt, *args): msg = fmt % args - script = TEMPLATE % ('cancelUpload', msg.replace("'", "\\'")) + script = TEMPLATE % ('cancelUpload', msg.replace("'", "\\'"), newline_to_br(html_quote(printed))) return script +def cleanupFilename(name): + """Generate a unique id which doesn't match + the system generated ids. + The reason being that setImage will blow up if we have a system + generated id and the id it generates from the filename is already in use. + """ + id = '' + name = name.replace('\\', '/') # Fixup Windows filenames + name = name.split('/')[-1] # Throw away any path part. + for c in name: + if c.isalnum() or c in '._': + id += c + + # Race condition here, but not a lot we can do about that + if context.check_id(id) is None and getattr(context,id,None) is None: + return id + + # Now make the id unique + parts = id.split('.') + if len(parts)==1: parts.append('') + count = 1 + while 1: + if count==1: + sc = '' + else: + sc = str(count) + id = "copy%s_of_%s" % (sc, id) + if context.check_id(id) is None and getattr(context,id,None) is None: + return id + count += 1 + kupu_tool = getToolByName(context, 'kupu_library_tool') ctr_tool = getToolByName(context, 'content_type_registry') @@ -46,21 +78,20 @@ if not context.portal_membership.checkPermission('Add portal content',context): return Error("You do not have permission to add content in %s", context.getId()) -# IE submits whole path to file, moz just the filename -id = id.split("\\")[-1] - -# check for a bad id -if context.check_id(id) is not None or getattr(context,id,None) is not None: - id = context.generateUniqueId(typename) +# Get an unused filename without path +id = cleanupFilename(id) -# check for a duplicate -newid = context.invokeFactory(type_name=typename, id=id, title=node_prop_caption, file=node_prop_image) +newid = context.invokeFactory(type_name=typename, id=id, + title=node_prop_caption, +# description=node_prop_desc, + ) if newid is None or newid == '': newid = id obj = getattr(context,newid, None) - +obj.setImage(node_prop_image) + if not obj: return Error("Could not create %s with %s as id and %s as title!", typename,newid, node_prop_caption) @@ -70,6 +101,7 @@ else: url = obj.absolute_url() -return TEMPLATE % ('finishUpload', url) +print "Uploaded image" +return TEMPLATE % ('finishUpload', url, newline_to_br(html_quote(printed))) Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml Fri May 12 12:19:22 2006 @@ -232,9 +232,6 @@ margin-left: 0.75em; } -.forcekupu { -} - .kupu-dialog-button { background: transparent url(&dtml-portal_url;/linkTransparent.gif) 9px 1px no-repeat; cursor: pointer; Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuploneinit.js ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuploneinit.js (original) +++ kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuploneinit.js Fri May 12 12:19:22 2006 @@ -152,12 +152,10 @@ var linktool = NoContextMenu(new LinkTool()); kupu.registerTool('linktool', linktool); - /* disabled var zoom = new KupuZoomTool(prefix+'button.kupu-zoom', prefix+'select.kupu-tb-styles', prefix+'button.kupu-logo'); kupu.registerTool('zoomtool', zoom); - */ // XXX - Needs prefix here for multi area support, but also // added to the template Modified: kupu/branch/plone-2.1/plone/plonelibrarytool.py ============================================================================== --- kupu/branch/plone-2.1/plone/plonelibrarytool.py (original) +++ kupu/branch/plone-2.1/plone/plonelibrarytool.py Fri May 12 12:19:22 2006 @@ -214,7 +214,6 @@ dict(label='Libraries', action='zmi_libraries'), dict(label='Resource types', action='zmi_resource_types'), dict(label='Documentation', action='zmi_docs'), - dict(label='Status', action='sanity_check'), )) @@ -240,10 +239,6 @@ zmi_docs = PageTemplateFile("zmi_docs.pt", globals()) zmi_docs.title = 'kupu configuration documentation' - security.declareProtected(permissions.ManageLibraries, "sanity_check") - sanity_check = PageTemplateFile("sanity_check.pt", globals()) - sanity_check.title = 'kupu status' - security.declareProtected(permissions.ManageLibraries, "kupu_config") kupu_config = PageTemplateFile("kupu_config.pt", globals()) kupu_config.title = 'kupu configuration' From duncan at codespeak.net Fri May 12 13:00:38 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 13:00:40 2006 Subject: [kupu-checkins] r27125 - kupu/branch/kupu-1.3/plone/kupu_plone_layer Message-ID: <20060512110038.D6751100A3@code0.codespeak.net> Author: duncan Date: Fri May 12 13:00:37 2006 New Revision: 27125 Modified: kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuploneinit.js Log: Fix for Plone issue #5124 Modified: kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuploneinit.js ============================================================================== --- kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuploneinit.js (original) +++ kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuploneinit.js Fri May 12 13:00:37 2006 @@ -22,7 +22,7 @@ // that without applying this change to the outter document. Damn iframes. var ibody = iframe.contentWindow.document.body; var form = textarea.form; - ibody.innerHTML = textarea.value || '


'; + var initialtext = textarea.value || (_SARISSA_IS_IE?'

':'


'); // now some config values var conf = loadDictFromXML(document, prefix+'xml.kupuconfig'); @@ -32,6 +32,7 @@ // now we can create the controller var kupu = new KupuEditor(doc, conf, l); + kupu.setHTMLBody(initialtext); // add the contextmenu var cm = new ContextMenu(); From duncan at codespeak.net Fri May 12 14:14:13 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 14:14:14 2006 Subject: [kupu-checkins] r27127 - kupu/branch/plone-2.1/plone/kupu_plone_layer Message-ID: <20060512121413.65DAF100A9@code0.codespeak.net> Author: duncan Date: Fri May 12 14:14:12 2006 New Revision: 27127 Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuploneinit.js Log: Merged 27124 to 21125 from branch/kupu-1.3 Fix for Plone issue #5124 Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuploneinit.js ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuploneinit.js (original) +++ kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuploneinit.js Fri May 12 14:14:12 2006 @@ -22,7 +22,7 @@ // that without applying this change to the outter document. Damn iframes. var ibody = iframe.contentWindow.document.body; var form = textarea.form; - ibody.innerHTML = textarea.value || '


'; + var initialtext = textarea.value || (_SARISSA_IS_IE?'

':'


'); // now some config values var conf = loadDictFromXML(document, prefix+'xml.kupuconfig'); @@ -32,6 +32,7 @@ // now we can create the controller var kupu = new KupuEditor(doc, conf, l); + kupu.setHTMLBody(initialtext); // add the contextmenu var cm = new ContextMenu(); From duncan at codespeak.net Fri May 12 15:52:05 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 15:52:07 2006 Subject: [kupu-checkins] r27129 - in kupu/trunk/kupu: common plone/kupu_plone_layer Message-ID: <20060512135205.1BAA4100B4@code0.codespeak.net> Author: duncan Date: Fri May 12 15:52:04 2006 New Revision: 27129 Modified: kupu/trunk/kupu/common/kupudrawers.js kupu/trunk/kupu/plone/kupu_plone_layer/kupuploneinit.js Log: Fix for plone issue #5124. Fix for anchors not loading correctly in IE: use a timer as onload doesn't fire for the iframe. Modified: kupu/trunk/kupu/common/kupudrawers.js ============================================================================== --- kupu/trunk/kupu/common/kupudrawers.js (original) +++ kupu/trunk/kupu/common/kupudrawers.js Fri May 12 15:52:04 2006 @@ -116,21 +116,34 @@ proto = DrawerWithAnchors.prototype; proto.initAnchors = function() { + var limit = 200; + var anchorframe = this.anchorframe; + function onloadEvent() { + var state = anchorframe.readyState; + if (state && state != 'complete') { + if (limit-- && anchorframe.src==src) + timer_instance.registerFunction(this, onloadEvent, 50); + return; + }; + if(window.drawertool && window.drawertool.current_drawer) { + window.drawertool.current_drawer.anchorframe_loaded(); + }; + }; + var id = 'kupu-linkdrawer-anchors'; var base = getBaseTagClass(this.element, 'div', id); if (base) { this.anchorui = getBaseTagClass(base, 'div', id); var inp = base.getElementsByTagName('input'); - this.anchorframe.src = inp[0].value; + var src = inp[0].value; + anchorframe.src = src; - if (!this.anchorframe.onload) { - this.anchorframe.onload=function() { - if(window.drawertool && window.drawertool.current_drawer) { - window.drawertool.current_drawer.anchorframe_loaded(); - }; - }; - }; + if (this.anchorframe.readyState) { // IE + timer_instance.registerFunction(this, onloadEvent, 50); + } else { // FF + this.anchorframe.onload = onloadEvent; + } inp[1].style.display = 'none'; }; 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 12 15:52:04 2006 @@ -22,7 +22,7 @@ // that without applying this change to the outter document. Damn iframes. var ibody = iframe.contentWindow.document.body; var form = textarea.form; - var initialtext = textarea.value || '


'; + var initialtext = textarea.value || (_SARISSA_IS_IE?'

':'


'); // now some config values var conf = loadDictFromXML(document, prefix+'xml.kupuconfig'); From duncan at codespeak.net Fri May 12 16:55:42 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 16:55:43 2006 Subject: [kupu-checkins] r27136 - kupu/branch/kupu-1.3/plone/kupu_plone_layer Message-ID: <20060512145542.90CE4100B4@code0.codespeak.net> Author: duncan Date: Fri May 12 16:55:41 2006 New Revision: 27136 Modified: kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuplone.css.dtml Log: Fix for Plone issue #5462 (thanks to Michael Reitsma) Modified: kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/branch/kupu-1.3/plone/kupu_plone_layer/kupuplone.css.dtml Fri May 12 16:55:41 2006 @@ -28,7 +28,7 @@ /*select.kupu-tb-styles {display: block}*/ div.kupu-tb { margin: 0; } -div.kupu-fulleditor { margin-right: 0; } +div.kupu-fulleditor { margin-right: 0; width: 100%; } div.kupu-fulleditor .kupu-editorframe { margin-right: 0; } From duncan at codespeak.net Fri May 12 16:56:43 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 16:56:44 2006 Subject: [kupu-checkins] r27137 - kupu/branch/plone-2.1/plone/kupu_plone_layer Message-ID: <20060512145643.7A2B6100B4@code0.codespeak.net> Author: duncan Date: Fri May 12 16:56:42 2006 New Revision: 27137 Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml Log: Merged 27135-27136 Fix for Plone issue #5462 (thanks to Michael Reitsma) Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml Fri May 12 16:56:42 2006 @@ -36,7 +36,7 @@ /*select.kupu-tb-styles {display: block}*/ div.kupu-tb { margin: 0; } -div.kupu-fulleditor { margin-right: 0; } +div.kupu-fulleditor { margin-right: 0; width: 100%; } div.kupu-fulleditor .kupu-editorframe { margin-right: 0; } From duncan at codespeak.net Fri May 12 16:58:45 2006 From: duncan at codespeak.net (duncan@codespeak.net) Date: Fri May 12 16:58:45 2006 Subject: [kupu-checkins] r27138 - kupu/trunk/kupu/plone/kupu_plone_layer Message-ID: <20060512145845.39803100B4@code0.codespeak.net> Author: duncan Date: Fri May 12 16:58:44 2006 New Revision: 27138 Modified: kupu/trunk/kupu/plone/kupu_plone_layer/kupuplone.css.dtml Log: Fix for Plone issue #5462 (thanks to Michael Reitsma) 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 Fri May 12 16:58:44 2006 @@ -28,7 +28,7 @@ /*select.kupu-tb-styles {display: block}*/ div.kupu-tb { margin: 0; } -div.kupu-fulleditor { margin-right: 0; } +div.kupu-fulleditor { margin-right: 0; width:100%; } div.kupu-fulleditor .kupu-editorframe { margin-right: 0; } From fschulze at codespeak.net Tue May 16 19:16:28 2006 From: fschulze at codespeak.net (fschulze at codespeak.net) Date: Tue, 16 May 2006 19:16:28 +0200 (CEST) Subject: [kupu-checkins] r27291 - in kupu/branch/plone-2.1: . default Message-ID: <20060516171628.0FFD110080@code0.codespeak.net> Author: fschulze Date: Tue May 16 19:15:27 2006 New Revision: 27291 Modified: kupu/branch/plone-2.1/default/toolbar.kupu kupu/branch/plone-2.1/version.txt Log: Bumped version number. Modified: kupu/branch/plone-2.1/default/toolbar.kupu ============================================================================== --- kupu/branch/plone-2.1/default/toolbar.kupu (original) +++ kupu/branch/plone-2.1/default/toolbar.kupu Tue May 16 19:15:27 2006 @@ -52,7 +52,7 @@ Modified: kupu/branch/plone-2.1/version.txt ============================================================================== --- kupu/branch/plone-2.1/version.txt (original) +++ kupu/branch/plone-2.1/version.txt Tue May 16 19:15:27 2006 @@ -1 +1 @@ -kupu 1.3.5 +kupu 1.3.6-plone From fschulze at codespeak.net Tue May 16 19:18:22 2006 From: fschulze at codespeak.net (fschulze at codespeak.net) Date: Tue, 16 May 2006 19:18:22 +0200 (CEST) Subject: [kupu-checkins] r27292 - kupu/tag/kupu-1.3.6-plone Message-ID: <20060516171822.82EF510078@code0.codespeak.net> Author: fschulze Date: Tue May 16 19:18:19 2006 New Revision: 27292 Added: kupu/tag/kupu-1.3.6-plone/ - copied from r27291, kupu/branch/plone-2.1/ Log: Tagged kupu-1.3.6-plone. From fschulze at codespeak.net Tue May 16 20:22:55 2006 From: fschulze at codespeak.net (fschulze at codespeak.net) Date: Tue, 16 May 2006 20:22:55 +0200 (CEST) Subject: [kupu-checkins] r27295 - kupu/trunk/kupu/plone Message-ID: <20060516182255.241AF10080@code0.codespeak.net> Author: fschulze Date: Tue May 16 20:22:53 2006 New Revision: 27295 Modified: kupu/trunk/kupu/plone/plonedrawers.py Log: Fixed acquisition problem in getBreadCrumbs. Modified: kupu/trunk/kupu/plone/plonedrawers.py ============================================================================== --- kupu/trunk/kupu/plone/plonedrawers.py (original) +++ kupu/trunk/kupu/plone/plonedrawers.py Tue May 16 20:22:53 2006 @@ -520,9 +520,8 @@ putils = getToolByName(self, 'plone_utils') path = [ ("Home", getToolByName(self, 'portal_url')())] - createBreadCrumbs = getattr(putils.aq_base, 'createBreadCrumbs', None) - if createBreadCrumbs is not None: - path = path + [(x['Title'],x['absolute_url']) for x in createBreadCrumbs(context)] + if getattr(putils.aq_base, 'createBreadCrumbs', None) is not None: + path = path + [(x['Title'],x['absolute_url']) for x in putils.createBreadCrumbs(context)] else: path = path + self.breadcrumbs(context)[1:-1] From guido at codespeak.net Mon May 22 16:27:37 2006 From: guido at codespeak.net (guido at codespeak.net) Date: Mon, 22 May 2006 16:27:37 +0200 (CEST) Subject: [kupu-checkins] r27597 - in kupu/trunk/kupu: . default Message-ID: <20060522142737.E5D8310071@code0.codespeak.net> Author: guido Date: Mon May 22 16:27:32 2006 New Revision: 27597 Modified: kupu/trunk/kupu/default/toolbar.kupu kupu/trunk/kupu/version.txt Log: Upped version number for pre release. Modified: kupu/trunk/kupu/default/toolbar.kupu ============================================================================== --- kupu/trunk/kupu/default/toolbar.kupu (original) +++ kupu/trunk/kupu/default/toolbar.kupu Mon May 22 16:27:32 2006 @@ -52,7 +52,7 @@ Modified: kupu/trunk/kupu/version.txt ============================================================================== --- kupu/trunk/kupu/version.txt (original) +++ kupu/trunk/kupu/version.txt Mon May 22 16:27:32 2006 @@ -1 +1 @@ -kupu 1.3/SVN unreleased +kupu 1.4 From guido at codespeak.net Mon May 22 16:28:26 2006 From: guido at codespeak.net (guido at codespeak.net) Date: Mon, 22 May 2006 16:28:26 +0200 (CEST) Subject: [kupu-checkins] r27598 - in kupu/tag/kupu-1.4-pre-infrae: . kupu kupu/default Message-ID: <20060522142826.D4D5210071@code0.codespeak.net> Author: guido Date: Mon May 22 16:28:25 2006 New Revision: 27598 Added: kupu/tag/kupu-1.4-pre-infrae/ - copied from r25661, kupu/trunk/ kupu/tag/kupu-1.4-pre-infrae/kupu/ - copied from r27596, kupu/trunk/kupu/ kupu/tag/kupu-1.4-pre-infrae/kupu/default/toolbar.kupu - copied unchanged from r27597, kupu/trunk/kupu/default/toolbar.kupu kupu/tag/kupu-1.4-pre-infrae/kupu/version.txt - copied unchanged from r27597, kupu/trunk/kupu/version.txt Log: Setting tag for some customer specific Infrae pre release. From guido at codespeak.net Mon May 22 16:36:43 2006 From: guido at codespeak.net (guido at codespeak.net) Date: Mon, 22 May 2006 16:36:43 +0200 (CEST) Subject: [kupu-checkins] r27601 - kupu/tag/kupu-1.4-pre-infrae Message-ID: <20060522143643.42BDE10074@code0.codespeak.net> Author: guido Date: Mon May 22 16:36:42 2006 New Revision: 27601 Removed: kupu/tag/kupu-1.4-pre-infrae/ Log: Accidentally added too much content to this tag :| re-setting. From guido at codespeak.net Mon May 22 16:37:23 2006 From: guido at codespeak.net (guido at codespeak.net) Date: Mon, 22 May 2006 16:37:23 +0200 (CEST) Subject: [kupu-checkins] r27602 - kupu/tag/kupu-1.4-pre-infrae Message-ID: <20060522143723.165A510075@code0.codespeak.net> Author: guido Date: Mon May 22 16:37:22 2006 New Revision: 27602 Added: kupu/tag/kupu-1.4-pre-infrae/ - copied from r27601, kupu/trunk/kupu/ Log: Setting tag again. From duncan at codespeak.net Fri May 26 10:09:27 2006 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 26 May 2006 10:09:27 +0200 (CEST) Subject: [kupu-checkins] r27693 - kupu/trunk/kupu/plone Message-ID: <20060526080927.09D7A10071@code0.codespeak.net> Author: duncan Date: Fri May 26 10:09:25 2006 New Revision: 27693 Modified: kupu/trunk/kupu/plone/kupu_config.pt kupu/trunk/kupu/plone/plonelibrarytool.py Log: Fix for customisation screen Modified: kupu/trunk/kupu/plone/kupu_config.pt ============================================================================== --- kupu/trunk/kupu/plone/kupu_config.pt (original) +++ kupu/trunk/kupu/plone/kupu_config.pt Fri May 26 10:09:25 2006 @@ -216,6 +216,7 @@ + Modified: kupu/trunk/kupu/plone/plonelibrarytool.py ============================================================================== --- kupu/trunk/kupu/plone/plonelibrarytool.py (original) +++ kupu/trunk/kupu/plone/plonelibrarytool.py Fri May 26 10:09:25 2006 @@ -500,16 +500,15 @@ if parastyles: self.paragraph_styles = [ line.strip() for line in parastyles if line.strip() ] - newex = html_exclusions[-1] + newex = html_exclusions.pop(-1) html_exclusions = [ (tuple(h.get('tags', ())), tuple(h.get('attributes', ()))) - for h in html_exclusions[:-1] if h.get('keep')] - - tags, attr = newex.get('tags', ()), newex.get('attributes', ()) + for h in html_exclusions if h.get('keep')] + + tags = newex.get('tags', '').replace(',',' ').split() + attr = newex.get('attributes', '').replace(',',' ').split() if tags or attr: - tags = tuple(tags.replace(',',' ').split()) - attr = tuple(attr.replace(',',' ').split()) - html_exclusions.append((tags, attr)) + html_exclusions.append((tuple(tags), tuple(attr))) self.html_exclusions = html_exclusions From duncan at codespeak.net Fri May 26 10:16:12 2006 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 26 May 2006 10:16:12 +0200 (CEST) Subject: [kupu-checkins] r27694 - in kupu/branch/plone-2.1/plone: . kupu_plone_layer Message-ID: <20060526081612.7125B1007A@code0.codespeak.net> Author: duncan Date: Fri May 26 10:16:10 2006 New Revision: 27694 Modified: kupu/branch/plone-2.1/plone/body.kupu kupu/branch/plone-2.1/plone/kupu_plone_layer/contentUsesKupu.py kupu/branch/plone-2.1/plone/plonelibrarytool.py kupu/branch/plone-2.1/plone/wysiwyg_support.kupu Log: isKupuEnabled should only return True for a field which actually allows html. Modified: kupu/branch/plone-2.1/plone/body.kupu ============================================================================== --- kupu/branch/plone-2.1/plone/body.kupu (original) +++ kupu/branch/plone-2.1/plone/body.kupu Fri May 26 10:16:10 2006 @@ -88,7 +88,7 @@ > Edit with visual editor Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/contentUsesKupu.py ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_plone_layer/contentUsesKupu.py (original) +++ kupu/branch/plone-2.1/plone/kupu_plone_layer/contentUsesKupu.py Fri May 26 10:16:10 2006 @@ -13,7 +13,7 @@ REQUEST = context.REQUEST # If the user doesn't have kupu configured then we can't use it. -if not tool.isKupuEnabled(REQUEST=REQUEST): +if not tool.isKupuEnabled(REQUEST=REQUEST, context=context): return False if not fieldname: Modified: kupu/branch/plone-2.1/plone/plonelibrarytool.py ============================================================================== --- kupu/branch/plone-2.1/plone/plonelibrarytool.py (original) +++ kupu/branch/plone-2.1/plone/plonelibrarytool.py Fri May 26 10:16:10 2006 @@ -157,7 +157,7 @@ return getattr(self, 'install_beforeunload', True) security.declareProtected('View', 'isKupuEnabled') - def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None): + def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None, context=None): def numerics(s): '''Convert a string into a tuple of all digit sequences ''' @@ -178,6 +178,12 @@ if user.getProperty('wysiwyg_editor').lower() != 'kupu': return False + # Then check whether the current content allows html + if context is not None: + allowedTypes = getattr(field, 'allowable_content_types', None) + if allowedTypes is not None and not 'text/html' in [t.lower() for t in allowedTypes]: + return False + # Then check whether their browser supports it. if not useragent: useragent = REQUEST['HTTP_USER_AGENT'] Modified: kupu/branch/plone-2.1/plone/wysiwyg_support.kupu ============================================================================== --- kupu/branch/plone-2.1/plone/wysiwyg_support.kupu (original) +++ kupu/branch/plone-2.1/plone/wysiwyg_support.kupu Fri May 26 10:16:10 2006 @@ -71,7 +71,7 @@
- Convert to HTML and edit with the visual editor From duncan at codespeak.net Fri May 26 10:19:40 2006 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 26 May 2006 10:19:40 +0200 (CEST) Subject: [kupu-checkins] r27695 - kupu/branch/plone-2.1/plone Message-ID: <20060526081940.49A9110079@code0.codespeak.net> Author: duncan Date: Fri May 26 10:19:39 2006 New Revision: 27695 Modified: kupu/branch/plone-2.1/plone/kupu_config.pt kupu/branch/plone-2.1/plone/plonelibrarytool.py Log: Fix for customisation screen Merged from trunk, revision 27693 Modified: kupu/branch/plone-2.1/plone/kupu_config.pt ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_config.pt (original) +++ kupu/branch/plone-2.1/plone/kupu_config.pt Fri May 26 10:19:39 2006 @@ -159,6 +159,7 @@ + Modified: kupu/branch/plone-2.1/plone/plonelibrarytool.py ============================================================================== --- kupu/branch/plone-2.1/plone/plonelibrarytool.py (original) +++ kupu/branch/plone-2.1/plone/plonelibrarytool.py Fri May 26 10:19:39 2006 @@ -355,16 +355,15 @@ if parastyles: self.paragraph_styles = [ line.strip() for line in parastyles if line.strip() ] - newex = html_exclusions[-1] + newex = html_exclusions.pop(-1) html_exclusions = [ (tuple(h.get('tags', ())), tuple(h.get('attributes', ()))) - for h in html_exclusions[:-1] if h.get('keep')] - - tags, attr = newex.get('tags', ()), newex.get('attributes', ()) + for h in html_exclusions if h.get('keep')] + + tags = newex.get('tags', '').replace(',',' ').split() + attr = newex.get('attributes', '').replace(',',' ').split() if tags or attr: - tags = tuple(tags.replace(',',' ').split()) - attr = tuple(attr.replace(',',' ').split()) - html_exclusions.append((tags, attr)) + html_exclusions.append((tuple(tags), tuple(attr))) self.html_exclusions = html_exclusions From duncan at codespeak.net Fri May 26 10:20:34 2006 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 26 May 2006 10:20:34 +0200 (CEST) Subject: [kupu-checkins] r27696 - kupu/branch/plone-2.1/plone/kupu_plone_layer Message-ID: <20060526082034.07FCC10079@code0.codespeak.net> Author: duncan Date: Fri May 26 10:20:33 2006 New Revision: 27696 Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupu_wysiwyg_support.html Log: Rebuilt support macro Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupu_wysiwyg_support.html ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_plone_layer/kupu_wysiwyg_support.html (original) +++ kupu/branch/plone-2.1/plone/kupu_plone_layer/kupu_wysiwyg_support.html Fri May 26 10:20:33 2006 @@ -8,24 +8,24 @@ - + - + - + - + - - + + - +
@@ -382,7 +382,7 @@ @@ -401,7 +401,7 @@
- + Convert to HTML and edit with the visual editor From duncan at codespeak.net Fri May 26 11:51:48 2006 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 26 May 2006 11:51:48 +0200 (CEST) Subject: [kupu-checkins] r27707 - in kupu/branch/kupu-1.3/plone: . kupu_plone_layer Message-ID: <20060526095148.C5D591007B@code0.codespeak.net> Author: duncan Date: Fri May 26 11:51:47 2006 New Revision: 27707 Modified: kupu/branch/kupu-1.3/plone/body.kupu kupu/branch/kupu-1.3/plone/kupu_config.pt kupu/branch/kupu-1.3/plone/kupu_plone_layer/contentUsesKupu.py kupu/branch/kupu-1.3/plone/plonelibrarytool.py kupu/branch/kupu-1.3/plone/wysiwyg_support.kupu Log: Merged 27693-27695 from plone-2.1 branch. Modified: kupu/branch/kupu-1.3/plone/body.kupu ============================================================================== --- kupu/branch/kupu-1.3/plone/body.kupu (original) +++ kupu/branch/kupu-1.3/plone/body.kupu Fri May 26 11:51:47 2006 @@ -88,7 +88,7 @@ > Edit with visual editor Modified: kupu/branch/kupu-1.3/plone/kupu_config.pt ============================================================================== --- kupu/branch/kupu-1.3/plone/kupu_config.pt (original) +++ kupu/branch/kupu-1.3/plone/kupu_config.pt Fri May 26 11:51:47 2006 @@ -159,6 +159,7 @@ + Modified: kupu/branch/kupu-1.3/plone/kupu_plone_layer/contentUsesKupu.py ============================================================================== --- kupu/branch/kupu-1.3/plone/kupu_plone_layer/contentUsesKupu.py (original) +++ kupu/branch/kupu-1.3/plone/kupu_plone_layer/contentUsesKupu.py Fri May 26 11:51:47 2006 @@ -13,7 +13,7 @@ REQUEST = context.REQUEST # If the user doesn't have kupu configured then we can't use it. -if not tool.isKupuEnabled(REQUEST=REQUEST): +if not tool.isKupuEnabled(REQUEST=REQUEST, context=context): return False if not fieldname: Modified: kupu/branch/kupu-1.3/plone/plonelibrarytool.py ============================================================================== --- kupu/branch/kupu-1.3/plone/plonelibrarytool.py (original) +++ kupu/branch/kupu-1.3/plone/plonelibrarytool.py Fri May 26 11:51:47 2006 @@ -157,7 +157,7 @@ return getattr(self, 'install_beforeunload', True) security.declareProtected('View', 'isKupuEnabled') - def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None): + def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None, context=None): def numerics(s): '''Convert a string into a tuple of all digit sequences ''' @@ -178,6 +178,12 @@ if user.getProperty('wysiwyg_editor').lower() != 'kupu': return False + # Then check whether the current content allows html + if context is not None: + allowedTypes = getattr(field, 'allowable_content_types', None) + if allowedTypes is not None and not 'text/html' in [t.lower() for t in allowedTypes]: + return False + # Then check whether their browser supports it. if not useragent: useragent = REQUEST['HTTP_USER_AGENT'] @@ -349,16 +355,15 @@ if parastyles: self.paragraph_styles = [ line.strip() for line in parastyles if line.strip() ] - newex = html_exclusions[-1] + newex = html_exclusions.pop(-1) html_exclusions = [ (tuple(h.get('tags', ())), tuple(h.get('attributes', ()))) - for h in html_exclusions[:-1] if h.get('keep')] - - tags, attr = newex.get('tags', ()), newex.get('attributes', ()) + for h in html_exclusions if h.get('keep')] + + tags = newex.get('tags', '').replace(',',' ').split() + attr = newex.get('attributes', '').replace(',',' ').split() if tags or attr: - tags = tuple(tags.replace(',',' ').split()) - attr = tuple(attr.replace(',',' ').split()) - html_exclusions.append((tags, attr)) + html_exclusions.append((tuple(tags), tuple(attr))) self.html_exclusions = html_exclusions Modified: kupu/branch/kupu-1.3/plone/wysiwyg_support.kupu ============================================================================== --- kupu/branch/kupu-1.3/plone/wysiwyg_support.kupu (original) +++ kupu/branch/kupu-1.3/plone/wysiwyg_support.kupu Fri May 26 11:51:47 2006 @@ -71,7 +71,7 @@
- Convert to HTML and edit with the visual editor From duncan at codespeak.net Fri May 26 12:32:31 2006 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 26 May 2006 12:32:31 +0200 (CEST) Subject: [kupu-checkins] r27713 - in kupu/branch/plone-2.1: common plone plone/kupu_plone_layer Message-ID: <20060526103231.450091007B@code0.codespeak.net> Author: duncan Date: Fri May 26 12:32:29 2006 New Revision: 27713 Modified: kupu/branch/plone-2.1/common/kupucontentfilters.js kupu/branch/plone-2.1/plone/body.kupu kupu/branch/plone-2.1/plone/kupu_plone_layer/contentUsesKupu.py kupu/branch/plone-2.1/plone/kupu_plone_layer/kupu_wysiwyg_support.html kupu/branch/plone-2.1/plone/plonelibrarytool.py kupu/branch/plone-2.1/plone/wysiwyg_support.kupu Log: kupucontentfilters.js: robustness fix for js. Previous patch to isKupuEnabled was borked. This one seems to work. Modified: kupu/branch/plone-2.1/common/kupucontentfilters.js ============================================================================== --- kupu/branch/plone-2.1/common/kupucontentfilters.js (original) +++ kupu/branch/plone-2.1/common/kupucontentfilters.js Fri May 26 12:32:29 2006 @@ -214,10 +214,12 @@ var tagset = new this.Set(tags); for (var tag in tagset) { var val = this.tagAttributes[tag]; - for (var i = val.length; i >= 0; i--) { - if (bad[val[i]]) { - val = val.concat(); // Copy - val.splice(i,1); + if (val) { + for (var i = val.length; i >= 0; i--) { + if (bad[val[i]]) { + val = val.concat(); // Copy + val.splice(i,1); + } } } this.tagAttributes[tag] = val; Modified: kupu/branch/plone-2.1/plone/body.kupu ============================================================================== --- kupu/branch/plone-2.1/plone/body.kupu (original) +++ kupu/branch/plone-2.1/plone/body.kupu Fri May 26 12:32:29 2006 @@ -88,7 +88,7 @@ > Edit with visual editor Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/contentUsesKupu.py ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_plone_layer/contentUsesKupu.py (original) +++ kupu/branch/plone-2.1/plone/kupu_plone_layer/contentUsesKupu.py Fri May 26 12:32:29 2006 @@ -13,7 +13,7 @@ REQUEST = context.REQUEST # If the user doesn't have kupu configured then we can't use it. -if not tool.isKupuEnabled(REQUEST=REQUEST, context=context): +if not tool.isKupuEnabled(REQUEST=REQUEST, context=context, fieldName=fieldname): return False if not fieldname: Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupu_wysiwyg_support.html ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_plone_layer/kupu_wysiwyg_support.html (original) +++ kupu/branch/plone-2.1/plone/kupu_plone_layer/kupu_wysiwyg_support.html Fri May 26 12:32:29 2006 @@ -20,12 +20,12 @@ - + - +
@@ -382,7 +382,7 @@ @@ -401,7 +401,7 @@
- + Convert to HTML and edit with the visual editor Modified: kupu/branch/plone-2.1/plone/plonelibrarytool.py ============================================================================== --- kupu/branch/plone-2.1/plone/plonelibrarytool.py (original) +++ kupu/branch/plone-2.1/plone/plonelibrarytool.py Fri May 26 12:32:29 2006 @@ -157,7 +157,7 @@ return getattr(self, 'install_beforeunload', True) security.declareProtected('View', 'isKupuEnabled') - def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None, context=None): + def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None, context=None, fieldName=None): def numerics(s): '''Convert a string into a tuple of all digit sequences ''' @@ -179,10 +179,12 @@ return False # Then check whether the current content allows html - if context is not None: - allowedTypes = getattr(field, 'allowable_content_types', None) - if allowedTypes is not None and not 'text/html' in [t.lower() for t in allowedTypes]: - return False + if context is not None and fieldName: + field = context.getField(fieldName) + if field: + allowedTypes = getattr(field, 'allowable_content_types', None) + if allowedTypes is not None and not 'text/html' in [t.lower() for t in allowedTypes]: + return False # Then check whether their browser supports it. if not useragent: Modified: kupu/branch/plone-2.1/plone/wysiwyg_support.kupu ============================================================================== --- kupu/branch/plone-2.1/plone/wysiwyg_support.kupu (original) +++ kupu/branch/plone-2.1/plone/wysiwyg_support.kupu Fri May 26 12:32:29 2006 @@ -71,7 +71,7 @@
- Convert to HTML and edit with the visual editor From duncan at codespeak.net Fri May 26 12:35:24 2006 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 26 May 2006 12:35:24 +0200 (CEST) Subject: [kupu-checkins] r27715 - in kupu/branch/kupu-1.3: common plone plone/kupu_plone_layer Message-ID: <20060526103524.0CD3B1007B@code0.codespeak.net> Author: duncan Date: Fri May 26 12:35:22 2006 New Revision: 27715 Modified: kupu/branch/kupu-1.3/common/kupucontentfilters.js kupu/branch/kupu-1.3/plone/body.kupu kupu/branch/kupu-1.3/plone/kupu_plone_layer/contentUsesKupu.py kupu/branch/kupu-1.3/plone/plonelibrarytool.py kupu/branch/kupu-1.3/plone/wysiwyg_support.kupu Log: kupucontentfilters.js: robustness fix for js. Previous patch to isKupuEnabled was borked. This one seems to work. Merged: Revision 27712-22713 Modified: kupu/branch/kupu-1.3/common/kupucontentfilters.js ============================================================================== --- kupu/branch/kupu-1.3/common/kupucontentfilters.js (original) +++ kupu/branch/kupu-1.3/common/kupucontentfilters.js Fri May 26 12:35:22 2006 @@ -214,10 +214,12 @@ var tagset = new this.Set(tags); for (var tag in tagset) { var val = this.tagAttributes[tag]; - for (var i = val.length; i >= 0; i--) { - if (bad[val[i]]) { - val = val.concat(); // Copy - val.splice(i,1); + if (val) { + for (var i = val.length; i >= 0; i--) { + if (bad[val[i]]) { + val = val.concat(); // Copy + val.splice(i,1); + } } } this.tagAttributes[tag] = val; Modified: kupu/branch/kupu-1.3/plone/body.kupu ============================================================================== --- kupu/branch/kupu-1.3/plone/body.kupu (original) +++ kupu/branch/kupu-1.3/plone/body.kupu Fri May 26 12:35:22 2006 @@ -88,7 +88,7 @@ > Edit with visual editor Modified: kupu/branch/kupu-1.3/plone/kupu_plone_layer/contentUsesKupu.py ============================================================================== --- kupu/branch/kupu-1.3/plone/kupu_plone_layer/contentUsesKupu.py (original) +++ kupu/branch/kupu-1.3/plone/kupu_plone_layer/contentUsesKupu.py Fri May 26 12:35:22 2006 @@ -13,7 +13,7 @@ REQUEST = context.REQUEST # If the user doesn't have kupu configured then we can't use it. -if not tool.isKupuEnabled(REQUEST=REQUEST, context=context): +if not tool.isKupuEnabled(REQUEST=REQUEST, context=context, fieldName=fieldname): return False if not fieldname: Modified: kupu/branch/kupu-1.3/plone/plonelibrarytool.py ============================================================================== --- kupu/branch/kupu-1.3/plone/plonelibrarytool.py (original) +++ kupu/branch/kupu-1.3/plone/plonelibrarytool.py Fri May 26 12:35:22 2006 @@ -157,7 +157,7 @@ return getattr(self, 'install_beforeunload', True) security.declareProtected('View', 'isKupuEnabled') - def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None, context=None): + def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None, context=None, fieldName=None): def numerics(s): '''Convert a string into a tuple of all digit sequences ''' @@ -179,10 +179,12 @@ return False # Then check whether the current content allows html - if context is not None: - allowedTypes = getattr(field, 'allowable_content_types', None) - if allowedTypes is not None and not 'text/html' in [t.lower() for t in allowedTypes]: - return False + if context is not None and fieldName: + field = context.getField(fieldName) + if field: + allowedTypes = getattr(field, 'allowable_content_types', None) + if allowedTypes is not None and not 'text/html' in [t.lower() for t in allowedTypes]: + return False # Then check whether their browser supports it. if not useragent: Modified: kupu/branch/kupu-1.3/plone/wysiwyg_support.kupu ============================================================================== --- kupu/branch/kupu-1.3/plone/wysiwyg_support.kupu (original) +++ kupu/branch/kupu-1.3/plone/wysiwyg_support.kupu Fri May 26 12:35:22 2006 @@ -71,7 +71,7 @@
- Convert to HTML and edit with the visual editor From duncan at codespeak.net Fri May 26 12:44:33 2006 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 26 May 2006 12:44:33 +0200 (CEST) Subject: [kupu-checkins] r27718 - in kupu/branch/plone-2.1/plone/kupu_plone_layer: . plonekupuimages Message-ID: <20060526104433.46E1110076@code0.codespeak.net> Author: duncan Date: Fri May 26 12:44:32 2006 New Revision: 27718 Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml kupu/branch/plone-2.1/plone/kupu_plone_layer/plonekupuimages/image.gif (props changed) Log: Remove insignificant differences from Plone 2.1 branch Modified: kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml ============================================================================== --- kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml (original) +++ kupu/branch/plone-2.1/plone/kupu_plone_layer/kupuplone.css.dtml Fri May 26 12:44:32 2006 @@ -15,14 +15,6 @@ * * */ -/* Remove the text format selector when showing Kupu */ -.fieldTextFormat { - /* Doesn't work yet, since Kupu loads its style sheets even if it is not - used :( - display: none; - */ -} - .kupu a { color: &dtml-linkColor; !important; background-color: transparent; From duncan at codespeak.net Fri May 26 13:10:07 2006 From: duncan at codespeak.net (duncan at codespeak.net) Date: Fri, 26 May 2006 13:10:07 +0200 (CEST) Subject: [kupu-checkins] r27722 - in kupu/trunk/kupu: common plone plone/kupu_plone_layer Message-ID: <20060526111007.0A3151007C@code0.codespeak.net> Author: duncan Date: Fri May 26 13:10:05 2006 New Revision: 27722 Modified: kupu/trunk/kupu/common/kupucontentfilters.js kupu/trunk/kupu/plone/body.kupu kupu/trunk/kupu/plone/kupu_plone_layer/contentUsesKupu.py kupu/trunk/kupu/plone/plonelibrarytool.py kupu/trunk/kupu/plone/wysiwyg_support.kupu Log: kupucontentfilters.js: robustness fix for js. Merged patch to isKupuEnabled. Merged: Revision 27712-22713 Modified: kupu/trunk/kupu/common/kupucontentfilters.js ============================================================================== --- kupu/trunk/kupu/common/kupucontentfilters.js (original) +++ kupu/trunk/kupu/common/kupucontentfilters.js Fri May 26 13:10:05 2006 @@ -214,10 +214,12 @@ var tagset = new this.Set(tags); for (var tag in tagset) { var val = this.tagAttributes[tag]; - for (var i = val.length; i >= 0; i--) { - if (bad[val[i]]) { - val = val.concat(); // Copy - val.splice(i,1); + if (val) { + for (var i = val.length; i >= 0; i--) { + if (bad[val[i]]) { + val = val.concat(); // Copy + val.splice(i,1); + } } } this.tagAttributes[tag] = val; Modified: kupu/trunk/kupu/plone/body.kupu ============================================================================== --- kupu/trunk/kupu/plone/body.kupu (original) +++ kupu/trunk/kupu/plone/body.kupu Fri May 26 13:10:05 2006 @@ -85,8 +85,8 @@ > Edit with visual editor Modified: kupu/trunk/kupu/plone/kupu_plone_layer/contentUsesKupu.py ============================================================================== --- kupu/trunk/kupu/plone/kupu_plone_layer/contentUsesKupu.py (original) +++ kupu/trunk/kupu/plone/kupu_plone_layer/contentUsesKupu.py Fri May 26 13:10:05 2006 @@ -13,7 +13,7 @@ REQUEST = context.REQUEST # If the user doesn't have kupu configured then we can't use it. -if not tool.isKupuEnabled(REQUEST=REQUEST): +if not tool.isKupuEnabled(REQUEST=REQUEST, context=context, fieldName=fieldname): return False if not fieldname: Modified: kupu/trunk/kupu/plone/plonelibrarytool.py ============================================================================== --- kupu/trunk/kupu/plone/plonelibrarytool.py (original) +++ kupu/trunk/kupu/plone/plonelibrarytool.py Fri May 26 13:10:05 2006 @@ -180,7 +180,7 @@ return getattr(self, 'install_beforeunload', False) security.declareProtected('View', 'isKupuEnabled') - def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None): + def isKupuEnabled(self, useragent='', allowAnonymous=False, REQUEST=None, context=None, fieldName=None): if not REQUEST: REQUEST = self.REQUEST def numerics(s): @@ -203,6 +203,14 @@ if user.getProperty('wysiwyg_editor').lower() != 'kupu': return False + # Then check whether the current content allows html + if context is not None and fieldName: + field = context.getField(fieldName) + if field: + allowedTypes = getattr(field, 'allowable_content_types', None) + if allowedTypes is not None and not 'text/html' in [t.lower() for t in allowedTypes]: + return False + # Then check whether their browser supports it. if not useragent: useragent = REQUEST['HTTP_USER_AGENT'] Modified: kupu/trunk/kupu/plone/wysiwyg_support.kupu ============================================================================== --- kupu/trunk/kupu/plone/wysiwyg_support.kupu (original) +++ kupu/trunk/kupu/plone/wysiwyg_support.kupu Fri May 26 13:10:05 2006 @@ -71,7 +71,7 @@
- Author: mihxil Date: Mon May 29 13:18:03 2006 New Revision: 27839 Modified: kupu/trunk/kupu/mmbase/body.kupu Log: support for other 'roles' Modified: kupu/trunk/kupu/mmbase/body.kupu ============================================================================== --- kupu/trunk/kupu/mmbase/body.kupu (original) +++ kupu/trunk/kupu/mmbase/body.kupu Mon May 29 13:18:03 2006 @@ -30,19 +30,31 @@ + + + + + + + + + + related + ${wizard[fn:length(wizard) - 1]} + related - Creating relation between ${origin} and ${node} + Creating relation between ${origin} and ${node} with role ${role} - + From mihxil at codespeak.net Mon May 29 13:18:17 2006 From: mihxil at codespeak.net (mihxil at codespeak.net) Date: Mon, 29 May 2006 13:18:17 +0200 (CEST) Subject: [kupu-checkins] r27840 - kupu/trunk/kupu/mmbase Message-ID: <20060529111817.E85B910072@code0.codespeak.net> Author: mihxil Date: Mon May 29 13:18:17 2006 New Revision: 27840 Modified: kupu/trunk/kupu/mmbase/node.body.jspx Log: simplified a bit Modified: kupu/trunk/kupu/mmbase/node.body.jspx ============================================================================== --- kupu/trunk/kupu/mmbase/node.body.jspx (original) +++ kupu/trunk/kupu/mmbase/node.body.jspx Mon May 29 13:18:17 2006 @@ -11,8 +11,7 @@ - - + From mihxil at codespeak.net Mon May 29 13:23:00 2006 From: mihxil at codespeak.net (mihxil at codespeak.net) Date: Mon, 29 May 2006 13:23:00 +0200 (CEST) Subject: [kupu-checkins] r27841 - kupu/trunk/kupu/mmbase Message-ID: <20060529112300.DBC0710070@code0.codespeak.net> Author: mihxil Date: Mon May 29 13:23:00 2006 New Revision: 27841 Added: kupu/trunk/kupu/mmbase/preview.jspx Log: added a 'preview' (requires some javascript to make this useful) Added: kupu/trunk/kupu/mmbase/preview.jspx ============================================================================== --- (empty file) +++ kupu/trunk/kupu/mmbase/preview.jspx Mon May 29 13:23:00 2006 @@ -0,0 +1,29 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file