Use a ajax fetch for initial call, hardcoded for now
This commit is contained in:
parent
8e1ef3231b
commit
96165904fc
|
@ -34,6 +34,6 @@
|
|||
/>
|
||||
|
||||
<!-- Demo -->
|
||||
<include file="demo.zcml" />
|
||||
<!-- <include file="demo.zcml" /> -->
|
||||
|
||||
</configure>
|
||||
|
|
|
@ -14,9 +14,6 @@
|
|||
</div>
|
||||
<div class="contenttreeWidget"
|
||||
tal:attributes="id string:${view/id}-contenttree">
|
||||
<ul class="navTree navTreeLevel0">
|
||||
<li tal:replace="structure view/render_tree" />
|
||||
</ul>
|
||||
</div>
|
||||
<div class="contenttreeWindowActions">
|
||||
<input class="context contentTreeAdd" type="button" i18n:attributes="value label_contenttree_add" value="Add"/> <input class="standalone contentTreeCancel" i18n:attributes="value label_contenttree_cancel" type="button" value="Cancel"/>
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
Reference in New Issue