diff --git a/plone/formwidget/contenttree/configure.zcml b/plone/formwidget/contenttree/configure.zcml index 2e4f8e2..d10918c 100644 --- a/plone/formwidget/contenttree/configure.zcml +++ b/plone/formwidget/contenttree/configure.zcml @@ -34,6 +34,6 @@ /> - + diff --git a/plone/formwidget/contenttree/input.pt b/plone/formwidget/contenttree/input.pt index f22dd0b..43f7b4e 100644 --- a/plone/formwidget/contenttree/input.pt +++ b/plone/formwidget/contenttree/input.pt @@ -14,9 +14,6 @@
-
diff --git a/plone/formwidget/contenttree/jquery-contenttree/contenttree.js b/plone/formwidget/contenttree/jquery-contenttree/contenttree.js index 72a87cb..c47210e 100755 --- a/plone/formwidget/contenttree/jquery-contenttree/contenttree.js +++ b/plone/formwidget/contenttree/jquery-contenttree/contenttree.js @@ -1,6 +1,6 @@ // This is based on jQueryFileTree by Cory S.N. LaViska if(jQuery) (function($){ - + $.extend($.fn, { showDialog: function() { $(document.body).append($(document.createElement("div")).addClass("contenttreeWindowBlocker")) @@ -12,7 +12,7 @@ if(jQuery) (function($){ $(this).css({ 'left': $(window).width() * 0.125, 'top': $(window).height() * 0.125 - }) + }); }, contentTreeAdd: function() { var contenttree_window = (this).parents(".contenttreeWindow"); @@ -35,13 +35,13 @@ if(jQuery) (function($){ // Defaults if(!o) var o = {}; if(o.script == undefined) o.script = 'fetch'; - + if(o.folderEvent == undefined) o.folderEvent = 'click'; if(o.selectEvent == undefined) o.selectEvent = 'click'; - + if(o.expandSpeed == undefined) o.expandSpeed = -1; if(o.collapseSpeed == undefined) o.collapseSpeed = -1; - + if(o.multiFolder == undefined) o.multiFolder = true; if(o.multiSelect == undefined) o.multiSelect = false; @@ -53,7 +53,7 @@ if(jQuery) (function($){ bindTree(c); }); } - + function handleFolderEvent() { var li = $(this).parent(); if(li.hasClass('collapsed')) { @@ -61,12 +61,12 @@ if(jQuery) (function($){ li.parent().find('ul:visible').slideUp({ duration: o.collapseSpeed }); li.parent().find('li.navTreeFolderish').removeClass('expanded').addClass('collapsed'); } - + if(li.find('ul').length == 0) loadTree(li, escape($(this).attr('href')), escape($(this).attr('rel'))); else li.find('ul:hidden').slideDown({ duration: o.expandSpeed }); - + li.removeClass('collapsed').addClass('expanded'); } else { li.find('ul').slideUp({ duration: o.collapseSpeed }); @@ -74,7 +74,7 @@ if(jQuery) (function($){ } return false; } - + function handleSelectEvent(event) { var li = $(this).parent(); var selected = true; @@ -105,9 +105,10 @@ if(jQuery) (function($){ } $(this).each(function() { - bindTree($(this)); + + loadTree(this, o.rootUrl, 0); }); } }); - + })(jQuery); diff --git a/plone/formwidget/contenttree/widget.py b/plone/formwidget/contenttree/widget.py index 5721a9b..2ec5719 100644 --- a/plone/formwidget/contenttree/widget.py +++ b/plone/formwidget/contenttree/widget.py @@ -59,7 +59,6 @@ class Fetch(BrowserView): view_instance) def __call__(self): - # We want to check that the user was indeed allowed to access the # form for this widget. We can only this now, since security isn't # applied yet during traversal. @@ -138,6 +137,7 @@ class ContentTreeBase(Explicit): return self.bound_source.getTermByBrain(brain) def render_tree(self): + import pdb; pdb.set_trace( ) content = self.context if not IAcquirer.providedBy(content): content = getSite() @@ -178,7 +178,22 @@ class ContentTreeBase(Explicit): .click( function () { var parent = $(this).parents("*[id$='-autocomplete']") var window = parent.siblings("*[id$='-contenttree-window']") - window.showDialog(); + window.showDialog('%(url)s', %(expandSpeed)d); + $('#%(id)s-contenttree').contentTree( + { + script: '%(url)s', + folderEvent: '%(folderEvent)s', + selectEvent: '%(selectEvent)s', + expandSpeed: %(expandSpeed)d, + collapseSpeed: %(collapseSpeed)s, + multiFolder: %(multiFolder)s, + multiSelect: %(multiSelect)s, + rootUrl: '%(rootUrl)s' + }, + function(event, selected, data, title) { + // alert(event + ', ' + selected + ', ' + data + ', ' + title); + } + ); }).insertAfter($(this)); }); $('#%(id)s-contenttree-window').find('.contentTreeAdd').unbind('click').click(function () { @@ -188,20 +203,7 @@ class ContentTreeBase(Explicit): $(this).contentTreeCancel(); }); $('#%(id)s-widgets-query').after(" "); - $('#%(id)s-contenttree').contentTree( - { - script: '%(url)s', - folderEvent: '%(folderEvent)s', - selectEvent: '%(selectEvent)s', - expandSpeed: %(expandSpeed)d, - collapseSpeed: %(collapseSpeed)s, - multiFolder: %(multiFolder)s, - multiSelect: %(multiSelect)s, - }, - function(event, selected, data, title) { - // alert(event + ', ' + selected + ', ' + data + ', ' + title); - } - ); + """ % dict(url=url, id=self.name.replace('.', '-'), folderEvent=self.folderEvent, @@ -210,6 +212,7 @@ class ContentTreeBase(Explicit): collapseSpeed=self.collapseSpeed, multiFolder=str(self.multiFolder).lower(), multiSelect=str(self.multi_select).lower(), + rootUrl='/Plone', name=self.name, klass=self.klass, title=self.title,