-##parameters=b_start=0, key='', reverse=0, ids=(), items_copy='', items_cut='', items_delete='', items_new='', items_paste='', items_rename='', items_up='', items_down='', items_top='', items_bottom='', items_sort='', template='', macro='', ajax='',**others
+##parameters=b_start=0, key='', reverse=0, ids=(), items_copy='', items_cut='', items_delete='', items_new='', items_paste='', items_rename='', items_up='', items_down='', items_top='', items_bottom='', items_sort='', template='', macro='', ajax=''
##
from Products.Plinn.PloneMisc import Batch
from DateTime import DateTime
mtool = getToolByName(script, 'portal_membership')
checkPermission = mtool.checkPermission
+isAnon = mtool.isAnonymousUser()
utool = getToolByName(script, 'portal_url')
portal_url = utool()
upitems_list_allowed = checkPermission(ListFolderContents, context, 'aq_parent')
manage_props_allowed = checkPermission(ManageProperties, context)
-# information pour remonter au dossier parent
-up_info = {}
-if upitems_list_allowed:
- up_obj = context.aq_parent
- if hasattr(up_obj, 'portal_url'):
- up_url = up_obj.getActionInfo('object/folderContents')['url']
- up_info = { 'icon': '%s/UpFolder_icon.gif' % portal_url,
- 'id': up_obj.getId(),
- 'url': up_url }
- else:
- up_info = { 'icon': '',
- 'id': 'Root',
- 'url': '' }
-options['up_info'] = up_info
-
target = context.getActionInfo(default_target)['url']
if not key:
else:
is_default = 0
-columns = ( {'key': 'Lock',
- 'title': '',
- 'width': '16',
- 'colspan': None}
- , {'key': 'Type',
+columns = ( {'key': 'Type',
'title': 'Type',
'width': None,
'colspan': '2'}
- , {'key': 'title_or_id',
+ , {'key': 'id',
'title': 'Name',
'width': None,
'colspan': None}
'title': 'Last Modified',
'width': None,
'colspan': None}
- , {'key': 'position',
- 'title': 'Position',
- 'width': None,
- 'colspan': None }
)
for column in columns:
context.filterCookie()
folderfilter = context.REQUEST.get('folderfilter', '')
filter = context.decodeFolderFilter(folderfilter)
-items = context.listNearestFolderContents(contentFilter=filter)
+items = context.listCatalogedContents(contentFilter=filter)
sort_dir = reverse and 'desc' or 'asc'
-sortFunc = key in ['Type', 'title_or_id'] and 'nocase' or 'cmp'
+sortFunc = key in ['Type'] and 'nocase' or 'cmp'
items = sequence.sort( items, ((key, sortFunc, sort_dir),) )
batch_obj = Batch(items, context.default_batch_size, b_start, orphan=0, quantumleap=1)
items = []
-i = 1
-display_delete_button = False
+display_delete_button = not isAnon # TODO : à revoir
for item in batch_obj:
- item_icon = item.getIcon(1)
- item_id = item.getId()
- item_position = key == 'position' and str(b_start + i) or '...'
- i += 1
- item_url = item.absolute_url()
- try : item_delete_allowed = context.objectIdCanBeDeleted(item_id)
- except : item_delete_allowed = checkPermission(DeleteObjects, context) # std zope perm
- if not display_delete_button :
- display_delete_button = item_delete_allowed
+ item_icon = item.getIcon
+ item_id = item.getId
+ item_url = item.getURL()
items.append(
- {'lock' : not checkPermission(ModifyPortalContent, item),
- 'checkbox': item_delete_allowed and ('cb_%s' % item_id) or '',
+ {'checkbox': not isAnon,
'icon': item_icon and ( '%s/%s' % (portal_url, item_icon) ) or '',
'id': item_id,
- 'modified': item.modified().strftime(locale_date_fmt),
- 'position': item_position,
- 'title_or_id': item.title_or_id(),
- 'type': item.Type() or None,
+ 'modified': item.modified.strftime(locale_date_fmt),
+ 'title_or_id': item.Title or item_id,
+ 'type': item.Type or None,
'url': item_url } )
options['batch'] = { 'listColumnInfos': tuple(columns),
'listItemInfos': tuple(items),
+ 'firstItemPos' : b_start + 1,
'sort_key' : key,
'sort_dir' : sort_dir,
'batch_obj': batch_obj }
'listHiddenVarInfos': tuple(hidden_vars),
'listButtonInfos': tuple(buttons),
'is_orderable': is_orderable,
- 'is_sortable': is_sortable }
+ 'is_sortable': is_sortable,
+ 'items_add_allowed': items_add_allowed }
if not ajax and is_orderable :
deltas = range( 1, min(5, length) ) + range(5, length, 5)
options['form']['listDeltas'] = tuple(deltas)
options['macro'] = macro
return context.use_macro(**options)
else :
- options.update(others)
return context.folder_contents_template(**options)
-
</head>
<body i18n:domain="cmf_default" metal:define-macro="FolderListing"
- tal:define="batch_dict options/batch;
- batch batch_dict/batch_obj;
- listColumnInfos batch_dict/listColumnInfos;
- listItemInfos batch_dict/listItemInfos;"
- tal:omit-tag="">
+ tal:define="batch_dict options/batch;
+ batch batch_dict/batch_obj;
+ listColumnInfos batch_dict/listColumnInfos;
+ listItemInfos batch_dict/listItemInfos;"
+ tal:omit-tag="">
<div style="display:none">
<span id="FolderUrl" tal:content="here/absolute_url" >Folder url for script</span>
<span tal:condition="options/form/is_orderable" tal:omit-tag="">
- <span id="FirstItemPos" tal:content="python:listItemInfos[0]['position']">first batch item position</span>
- <span id="BatchNavigationSize" tal:content="batch/size"></span>
- </span>
+ <span id="FirstItemPos" tal:content="batch_dict/firstItemPos">first batch item position</span>
+ <span id="BatchNavigationSize" tal:content="batch/size"></span>
+ </span>
</div>
- <!-- batch navigation -->
+ <!-- batch navigation -->
<div tal:define="navBatchBarId string:topNavBatchBar" tal:omit-tag="">
<span metal:use-macro="here/batch_macros/macros/navigation">batch navigation</span>
</div>
<table class="listing" cellspacing="0">
- <thead id="FolderListingHeader">
- <tr>
- <th tal:attributes="width column_info/width; colspan column_info/colspan" tal:repeat="column_info listColumnInfos" nowrap="nowrap" >
- <a href="." tal:attributes="href column_info/url" tal:content="column_info/title" i18n:translate="">Type</a>
- <span tal:repeat="img column_info/images" tal:omit-tag="">
- <a tal:omit-tag="python:not img.has_key('href')"
- tal:attributes="href img/href|nothing ; title img/alt" i18n:attributes="title"
- ><img tal:attributes="src img/src ; alt img/alt ; id img/id|nothing" border="0" i18n:attributes="alt" /></a>
- </span>
- </th>
- <td colspan="5" tal:replace="nothing"></td>
- </tr>
- </thead>
- <tbody id="FolderListingBody">
-<tbody tal:repeat="item_info listItemInfos" tal:omit-tag="">
- <tr class="" tal:attributes="class python: (even and 'even') or 'odd'" tal:define="even repeat/item_info/even">
- <td><img src="." alt="lock" height="16" width="16" border="0"
- tal:condition="python:not isAnon and item_info['lock']"
- tal:attributes="src here/lock.gif/absolute_url"
- i18n:attributes="alt" /></td>
- <td>
- <input id="" type="checkbox" name="ids:list" value=""
- tal:attributes="value item_info/id; id item_info/checkbox" tal:condition="item_info/checkbox" />
- </td>
- <td>
- <a href="." tal:attributes="href item_info/url" tal:condition="item_info/icon">
- <img src="." alt="" tal:attributes="src item_info/icon; alt item_info/type" border="0" i18n:attributes="alt" />
- </a>
- </td>
- <td>
- <a href="." tal:attributes="href item_info/url" tal:content="item_info/title_or_id">title or id</a>
- </td>
- <td>
- <span tal:replace="item_info/modified">2001</span>
- </td>
- <td>
- <span tal:replace="item_info/position">1</span>
- </td>
- </tr>
+ <thead id="FolderListingHeader">
+ <tr>
+ <th tal:attributes="width column_info/width; colspan column_info/colspan" tal:repeat="column_info listColumnInfos" nowrap="nowrap" >
+ <a href="." tal:attributes="href column_info/url" tal:content="column_info/title" i18n:translate="">Type</a>
+ <span tal:repeat="img column_info/images" tal:omit-tag="">
+ <a tal:omit-tag="python:not img.has_key('href')"
+ tal:attributes="href img/href|nothing ; title img/alt" i18n:attributes="title"
+ ><img tal:attributes="src img/src ; alt img/alt ; id img/id|nothing" border="0" i18n:attributes="alt" /></a>
+ </span>
+ </th>
+ <td colspan="5" tal:replace="nothing"></td>
+ </tr>
+ </thead>
+ <tbody id="FolderListingBody">
+<tbody tal:repeat="item_info listItemInfos" tal:omit-tag="" metal:define-macro="itemListing">
+ <tr class="" tal:attributes="class python: (even and 'even') or 'odd'" tal:define="even repeat/item_info/even">
+ <td>
+ <input id="" type="checkbox" name="ids:list" value=""
+ tal:attributes="value item_info/id; id item_info/checkbox" tal:condition="item_info/checkbox" />
+ </td>
+ <td>
+ <a href="." tal:attributes="href item_info/url" tal:condition="item_info/icon">
+ <img src="." alt="" tal:attributes="src item_info/icon; alt item_info/type" border="0" i18n:attributes="alt" />
+ </a>
+ </td>
+ <td>
+ <a href="." tal:attributes="href item_info/url" tal:define="tod item_info/title_or_id; id item_info/id">
+ <span tal:replace="id">id</span>
+ <span tal:condition="python:tod != id">
+ • <span tal:replace="tod">title</span>
+ </span>
+ </a>
+ </td>
+ <td>
+ <span tal:replace="item_info/modified">2001</span>
+ </td>
+ </tr>
</tbody>
- </tbody>
+ </tbody>
</table>
<!-- batch navigation -->
<div tal:define="navBatchBarId string:bottomNavBatchBar" tal:omit-tag="">
<span metal:use-macro="here/batch_macros/macros/navigation">batch navigation</span>
</div>
- <script type="text/javascript">
- //<!--
- // variables for drag-and-drop ordered support
- var ddEnabled = false
- try {
- var firstItemPos = parseInt(document.getElementById("FirstItemPos").innerHTML);
- ddEnabled = true;
- }
- catch (e) {}
-
- var topNavBatchBar = document.getElementById("topNavBatchBar");
- var bottomNavBatchBar = document.getElementById("bottomNavBatchBar");
+ <script type="text/javascript">
+ (function(){
+ // ordering / selecting
+ var firsItemPosElement = document.getElementById('FirstItemPos');
var listing = document.getElementById("FolderListingBody");
-
- if (ddEnabled) {
- var rows = listing.getElementsByTagName("TR")
- for ( var i = 0 ; i < rows.length ; i++ )
- rows[i].pos = i + firstItemPos;
-
- var fDDcontroler = new FolderDDropControler(listing);
- var topNavBatchBar = document.getElementById("topNavBatchBar");
- var bottomNavBatchBar = document.getElementById("bottomNavBatchBar");
+ var orderable = firsItemPosElement ? true : false;
+ var firstItemPos = orderable ? parseInt(firsItemPosElement.innerHTML, 10) : 1;
+ var fDDcontroler = new FolderDDropControler(listing, orderable, firstItemPos);
+ var topNavBatchBar, bottomNavBatchBar;
+ if (orderable) {
+ topNavBatchBar = document.getElementById("topNavBatchBar");
+ bottomNavBatchBar = document.getElementById("bottomNavBatchBar");
if (topNavBatchBar && bottomNavBatchBar) {
new DropTarget(topNavBatchBar, fDDcontroler);
new DropTarget(bottomNavBatchBar, fDDcontroler);
}
}
-
-
addListener(document.getElementById("FolderListingHeader"), "click", loadListing);
if (topNavBatchBar && bottomNavBatchBar) {
addListener(topNavBatchBar, "click", loadListing);
addListener(bottomNavBatchBar, "click", loadListing);
}
- //-->
- </script>
+ }());
+ </script>
+ <script type="text/javascript" tal:condition="options/form/items_add_allowed">
+ (function(){
+ // upload by drag and drop
+ var uploadUrl = absolute_url() + '/put_upload';
+ new DDFolderUploader(document.getElementById('ForematterCell'), uploadUrl, document.getElementById("FolderListingBody"));
+ }());
+ </script>
</body>
</html>
\ No newline at end of file
+++ /dev/null
-##parameters=b_start=0, key='', reverse=0, ids=(), items_copy='', items_cut='', items_delete='', items_new='', items_paste='', items_rename='', items_up='', items_down='', items_top='', items_bottom='', items_sort='', template='', macro='', ajax=''
-##
-from Products.Plinn.PloneMisc import Batch
-from DateTime import DateTime
-locale_date_fmt = context.locale_date_fmt()
-from ZTUtils import make_query
-from Products.CMFCore.utils import getToolByName
-from Products.CMFDefault.permissions import AddPortalContent
-from Products.CMFDefault.permissions import DeleteObjects
-from Products.CMFDefault.permissions import ListFolderContents
-from Products.CMFDefault.permissions import ManageProperties
-from Products.CMFDefault.permissions import ViewManagementScreens
-from Products.CMFDefault.permissions import ModifyPortalContent
-from Products.CMFDefault.utils import html_marshal
-
-mtool = getToolByName(script, 'portal_membership')
-checkPermission = mtool.checkPermission
-isAnon = mtool.isAnonymousUser()
-utool = getToolByName(script, 'portal_url')
-portal_url = utool()
-
-
-form = context.REQUEST.form
-default_target = 'object/folderContents'
-default_kw = {'b_start': b_start, 'key': key, 'reverse': reverse, 'ajax' : ajax}
-if items_copy :
- if ajax : default_kw['syncFragments']=['rightCell']
- if context.validateItemIds(**form) and \
- context.folder_copy_control(**form) and \
- context.setRedirect(context, default_target, **default_kw):
- return
-elif items_cut :
- if ajax : default_kw['syncFragments']=['rightCell']
- if context.validateItemIds(**form) and \
- context.folder_cut_control(**form) and \
- context.setRedirect(context, default_target, **default_kw):
- return
-elif items_delete and \
- context.validateItemIds(**form) and \
- context.folder_delete_control(**form) and \
- context.setRedirect(context, default_target, **default_kw):
- return
-elif items_new and \
- context.setRedirect(context, 'object/new', **default_kw):
- return
-elif items_paste :
- if ajax : default_kw['syncFragments']=['rightCell']
- if context.folder_paste_control(**form) and \
- context.setRedirect(context, default_target, **default_kw):
- return
-elif items_rename and \
- context.validateItemIds(**form) and \
- context.setRedirect(context, 'object/rename_items', ids=ids,
- **default_kw):
- return
-elif items_sort and \
- context.folder_sort_control(**form) and \
- context.setRedirect(context, default_target, b_start=b_start):
- return
-elif items_up and \
- context.validateItemIds(**form) and \
- context.folder_up_control(**form) and \
- context.setRedirect(context, default_target, **default_kw):
- return
-elif items_down and \
- context.validateItemIds(**form) and \
- context.folder_down_control(**form) and \
- context.setRedirect(context, default_target, **default_kw):
- return
-elif items_top and \
- context.validateItemIds(**form) and \
- context.folder_top_control(**form) and \
- context.setRedirect(context, default_target, **default_kw):
- return
-elif items_bottom and \
- context.validateItemIds(**form) and \
- context.folder_bottom_control(**form) and \
- context.setRedirect(context, default_target, **default_kw):
- return
-
-
-options = {}
-
-items_add_allowed = checkPermission(AddPortalContent, context)
-upitems_list_allowed = checkPermission(ListFolderContents, context, 'aq_parent')
-manage_props_allowed = checkPermission(ManageProperties, context)
-
-target = context.getActionInfo(default_target)['url']
-
-if not key:
- (key, reverse) = context.getDefaultSorting()
- is_default = 1
-elif (key, reverse) == context.getDefaultSorting():
- is_default = 1
-else:
- is_default = 0
-
-columns = ( {'key': 'Type',
- 'title': 'Type',
- 'width': None,
- 'colspan': '2'}
- , {'key': 'id',
- 'title': 'Name',
- 'width': None,
- 'colspan': None}
- , {'key': 'modified',
- 'title': 'Last Modified',
- 'width': None,
- 'colspan': None}
- )
-
-for column in columns:
- images = []
- if key == column['key'] :
- if not is_default and manage_props_allowed :
- images.append( {'src' : getattr(context, 'set_default_sorting.gif').absolute_url(),
- 'alt' : 'Set Sorting as Default',
- 'id' : 'SetSortingAsDefault',
- 'href': '%s?%s' % (target, make_query(items_sort=True,
- key=key,
- reverse= (key != 'position' and [reverse] or [False])[0] )
- )
- }
- )
-
- if key != 'position' :
- if reverse :
- toggleImg = getattr(context, 'arrowDown.gif')
- alt = 'descending sort'
- else :
- toggleImg = getattr(context, 'arrowUp.gif')
- alt = 'ascending sort'
- query = make_query(key=column['key'], reverse = not reverse)
- else :
- toggleImg = getattr(context, 'arrowUp.gif')
- alt = 'ascending sort'
- query = make_query(key=column['key'])
- images.append( {'src' : toggleImg.absolute_url(), 'alt' : alt} )
- else :
- if key != 'position' :
- query = make_query(key=column['key'], reverse = reverse)
- else :
- query = make_query(key=column['key'])
-
- column['url'] = '%s?%s' % (target, query)
- column['images'] = images
-
-context.filterCookie()
-folderfilter = context.REQUEST.get('folderfilter', '')
-filter = context.decodeFolderFilter(folderfilter)
-items = context.listCatalogedContents(contentFilter=filter)
-sort_dir = reverse and 'desc' or 'asc'
-sortFunc = key in ['Type'] and 'nocase' or 'cmp'
-items = sequence.sort( items, ((key, sortFunc, sort_dir),) )
-batch_obj = Batch(items, context.default_batch_size, b_start, orphan=0, quantumleap=1)
-items = []
-display_delete_button = not isAnon # TODO : à revoir
-for item in batch_obj:
- item_icon = item.getIcon
- item_id = item.getId
- item_url = item.getURL()
- items.append(
- {'checkbox': not isAnon,
- 'icon': item_icon and ( '%s/%s' % (portal_url, item_icon) ) or '',
- 'id': item_id,
- 'modified': item.modified.strftime(locale_date_fmt),
- 'title_or_id': item.Title or item_id,
- 'type': item.Type or None,
- 'url': item_url } )
-
-options['batch'] = { 'listColumnInfos': tuple(columns),
- 'listItemInfos': tuple(items),
- 'firstItemPos' : b_start + 1,
- 'sort_key' : key,
- 'sort_dir' : sort_dir,
- 'batch_obj': batch_obj }
-
-hidden_vars = []
-for name, value in html_marshal(**default_kw):
- hidden_vars.append( {'name': name, 'value': value} )
-
-# buttons
-buttons = []
-if items_add_allowed and context.allowedContentTypes():
- buttons.append( {'name': 'items_new', 'value': 'New...'} )
- if items:
- buttons.append( {'name': 'items_rename', 'value': 'Rename'} )
-
-if checkPermission(ViewManagementScreens, context) and items:
- buttons.append( {'name': 'items_cut', 'value': 'Cut'} )
- buttons.append( {'name': 'items_copy', 'value': 'Copy'} )
-
-if items_add_allowed and context.cb_dataValid():
- buttons.append( {'name': 'items_paste', 'value': 'Paste'} )
-
-if display_delete_button and items:
- buttons.append( {'name': 'items_delete', 'value': 'Delete'} )
-
-length = batch_obj.sequence_length
-is_orderable = manage_props_allowed and (key == 'position') and length > 1
-is_sortable = manage_props_allowed and not is_default
-options['form'] = { 'action': target,
- 'listHiddenVarInfos': tuple(hidden_vars),
- 'listButtonInfos': tuple(buttons),
- 'is_orderable': is_orderable,
- 'is_sortable': is_sortable,
- 'items_add_allowed': items_add_allowed }
-if not ajax and is_orderable :
- deltas = range( 1, min(5, length) ) + range(5, length, 5)
- options['form']['listDeltas'] = tuple(deltas)
-
-if template and macro :
- options['template'] = template
- options['macro'] = macro
- return context.use_macro(**options)
-else :
- return context.folder_contents_template(**options)
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-
- <head>
- <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
- <title>folder contents macros</title>
- </head>
-
- <body i18n:domain="cmf_default" metal:define-macro="FolderListing"
- tal:define="batch_dict options/batch;
- batch batch_dict/batch_obj;
- listColumnInfos batch_dict/listColumnInfos;
- listItemInfos batch_dict/listItemInfos;"
- tal:omit-tag="">
- <div style="display:none">
- <span id="FolderUrl" tal:content="here/absolute_url" >Folder url for script</span>
- <span tal:condition="options/form/is_orderable" tal:omit-tag="">
- <span id="FirstItemPos" tal:content="batch_dict/firstItemPos">first batch item position</span>
- <span id="BatchNavigationSize" tal:content="batch/size"></span>
- </span>
- </div>
- <!-- batch navigation -->
- <div tal:define="navBatchBarId string:topNavBatchBar" tal:omit-tag="">
- <span metal:use-macro="here/batch_macros/macros/navigation">batch navigation</span>
- </div>
- <table class="listing" cellspacing="0">
- <thead id="FolderListingHeader">
- <tr>
- <th tal:attributes="width column_info/width; colspan column_info/colspan" tal:repeat="column_info listColumnInfos" nowrap="nowrap" >
- <a href="." tal:attributes="href column_info/url" tal:content="column_info/title" i18n:translate="">Type</a>
- <span tal:repeat="img column_info/images" tal:omit-tag="">
- <a tal:omit-tag="python:not img.has_key('href')"
- tal:attributes="href img/href|nothing ; title img/alt" i18n:attributes="title"
- ><img tal:attributes="src img/src ; alt img/alt ; id img/id|nothing" border="0" i18n:attributes="alt" /></a>
- </span>
- </th>
- <td colspan="5" tal:replace="nothing"></td>
- </tr>
- </thead>
- <tbody id="FolderListingBody">
-<tbody tal:repeat="item_info listItemInfos" tal:omit-tag="" metal:define-macro="itemListing">
- <tr class="" tal:attributes="class python: (even and 'even') or 'odd'" tal:define="even repeat/item_info/even">
- <td>
- <input id="" type="checkbox" name="ids:list" value=""
- tal:attributes="value item_info/id; id item_info/checkbox" tal:condition="item_info/checkbox" />
- </td>
- <td>
- <a href="." tal:attributes="href item_info/url" tal:condition="item_info/icon">
- <img src="." alt="" tal:attributes="src item_info/icon; alt item_info/type" border="0" i18n:attributes="alt" />
- </a>
- </td>
- <td>
- <a href="." tal:attributes="href item_info/url" tal:define="tod item_info/title_or_id; id item_info/id">
- <span tal:replace="id">id</span>
- <span tal:condition="python:tod != id">
- • <span tal:replace="tod">title</span>
- </span>
- </a>
- </td>
- <td>
- <span tal:replace="item_info/modified">2001</span>
- </td>
- </tr>
-</tbody>
- </tbody>
- </table>
- <!-- batch navigation -->
- <div tal:define="navBatchBarId string:bottomNavBatchBar" tal:omit-tag="">
- <span metal:use-macro="here/batch_macros/macros/navigation">batch navigation</span>
- </div>
- <script type="text/javascript">
- (function(){
- // ordering / selecting
- var firsItemPosElement = document.getElementById('FirstItemPos');
- var listing = document.getElementById("FolderListingBody");
- var orderable = firsItemPosElement ? true : false;
- var firstItemPos = orderable ? parseInt(firsItemPosElement.innerHTML, 10) : 1;
- var fDDcontroler = new FolderDDropControler(listing, orderable, firstItemPos);
- var topNavBatchBar, bottomNavBatchBar;
- if (orderable) {
- topNavBatchBar = document.getElementById("topNavBatchBar");
- bottomNavBatchBar = document.getElementById("bottomNavBatchBar");
- if (topNavBatchBar && bottomNavBatchBar) {
- new DropTarget(topNavBatchBar, fDDcontroler);
- new DropTarget(bottomNavBatchBar, fDDcontroler);
- }
- }
- addListener(document.getElementById("FolderListingHeader"), "click", loadListing);
- if (topNavBatchBar && bottomNavBatchBar) {
- addListener(topNavBatchBar, "click", loadListing);
- addListener(bottomNavBatchBar, "click", loadListing);
- }
-
- }());
- </script>
- <script type="text/javascript" tal:condition="options/form/items_add_allowed">
- (function(){
- // upload by drag and drop
- var uploadUrl = absolute_url() + '/put_upload';
- new DDFolderUploader(document.getElementById('ForematterCell'), uploadUrl, document.getElementById("FolderListingBody"));
- }());
- </script>
- </body>
-
-</html>
\ No newline at end of file