add saving of columns (#3776)

This commit is contained in:
Frédéric Péters 2013-11-15 14:44:22 +01:00
parent 391d8146d2
commit a73622a17e
5 changed files with 30 additions and 5 deletions

View File

@ -30,6 +30,11 @@ class ICollection(model.Schema):
required=False,
)
extra_columns = schema.List(
title=u'Extra columns',
value_type=schema.TextLine(),
required=False)
sort_on = schema.TextLine(default=u'sortable_title')
sort_reversed = schema.Bool(default=False)
@ -91,6 +96,9 @@ class View(form.DisplayForm):
def search_uri(self):
return api.portal.get().absolute_url() + '/pfwbsearch'
def extra_columns(self):
return ':'.join(self.context.extra_columns or [])
def save_form(self):
f = SaveForm(api.portal.get(), self.request)
f.update()
@ -115,6 +123,7 @@ class View(form.DisplayForm):
new_dict[unicode(key, 'utf-8')] = [unicode(x, 'utf-8') for x in value]
else:
new_dict[unicode(key, 'utf-8')] = unicode(value, 'utf-8')
self.context.extra_columns = [x for x in self.request.form.get('form-extra-columns', '').split(':') if x]
self.context.sort_on = self.request.form.get('form.widgets.sort_on')
self.context.sort_reversed = (self.request.form.get('form.widgets.sort_reversed') and
'selected' in self.request.form.get('form.widgets.sort_reversed'))

View File

@ -53,8 +53,17 @@
if ($('#table-batchSize').val()) {
query += '&table-batchSize=' + $('#table-batchSize').val();
}
if ($('#table-extra-columns').val()) {
query += '&table-extra-columns=' + $('#table-extra-columns').val();
var query_extra_columns = '';
if ($('#table-extra-columns').length) {
query_extra_columns = $('#table-extra-columns').val();
} else if ($('#orig-extra-columns').val()) {
query_extra_columns = $('#orig-extra-columns').val();
}
$('#form-extra-columns').val(query_extra_columns);
if (query_extra_columns) {
query += '&table-extra-columns=' + query_extra_columns;
}
$.get(query, {}, function (data) {
$('#searchresults').html(data);
@ -180,6 +189,8 @@ function select_metatype(elem)
}
});
/* install callbacks */
$('.metatypes button').click(function() {
select_metatype($(this));
update_portaltypes();
@ -236,11 +247,12 @@ function select_metatype(elem)
$(this).parent().find('div.criteria-content').toggle('slide');
});
$('portaltype-pfwbgedcollection #plone-contentmenu-actions-save').click(function() {
$('.portaltype-pfwbgedcollection #plone-contentmenu-actions-save').click(function() {
$('button[name="save"]').click();
return false;
});
$('portaltype-pfwbgedcollection #plone-contentmenu-actions-saveas').click(function() {
$('.portaltype-pfwbgedcollection #plone-contentmenu-actions-saveas').click(function() {
$('#criterias-form').attr('action', $('#criterias-form').data('saveas'));
$('#contentActionMenus .actionMenu .actionMenuHeader a')[0].click()
$('.save-as-widgets').show();
$('.save-as-widgets div').show();

View File

@ -72,6 +72,7 @@ class SearchForm(form.Form):
item = createContentInContainer(location, 'pfwbgedcollection',
title=data.get('title'),
query=data.get('query'),
extra_columns=[x for x in self.request.form.get('form-extra-columns', '').split(':') if x],
sort_on=data.get('sort_on'),
sort_reversed=data.get('sort_reversed'))
self.request.response.redirect(item.absolute_url())

View File

@ -15,12 +15,13 @@
<p class="documentDescription" tal:content="context/description" />
<div tal:replace="structure provider:plone.abovecontentbody" />
<form tal:attributes="action view/search_uri">
<form id="criterias-form" tal:attributes="data-saveas view/search_uri">
<div metal:use-macro="view/criterias_template/macros/criterias">
</div>
<div style="display:none">
<input id="orig-extra-columns" tal:attributes="value view/extra_columns"/>
<div tal:content="structure view/w/query/render"/>
<div tal:content="structure view/w/sort_on/render"/>
<div tal:content="structure view/w/sort_reversed/render"/>

View File

@ -79,6 +79,8 @@
</div>
</fieldset>
<input type="hidden" name="form-extra-columns" id="form-extra-columns"/>
</div>
</body>