- Fix the document print view by switching it to a GET view instead.
- Add support for passing the form target. - Update ajaxForm to emulate '_blank' form targets. Signed-off-by: Eric Riggs <ericriggs42@gmail.com>
This commit is contained in:
committed by
Roberto Rosario
parent
410f8fed76
commit
c8911b901e
@@ -168,11 +168,19 @@ PartialNavigation.prototype.setupAjaxForm = function () {
|
|||||||
console.log('>> ajaxForm.beforeSubmit.$form.target: ' + $form.attr('action'));
|
console.log('>> ajaxForm.beforeSubmit.$form.target: ' + $form.attr('action'));
|
||||||
var uri = new URI(location);
|
var uri = new URI(location);
|
||||||
var uriFragment = uri.fragment();
|
var uriFragment = uri.fragment();
|
||||||
console.log('>>ajaxForm.$form.target.uriFragment:' + uriFragment);
|
|
||||||
|
|
||||||
var url = $form.attr('action') || uriFragment;
|
var url = $form.attr('action') || uriFragment;
|
||||||
|
|
||||||
|
console.log('>>ajaxForm.$form.target.uriFragment:' + uriFragment);
|
||||||
options.url = url;
|
options.url = url;
|
||||||
|
|
||||||
|
if ($form.attr('target') == '_blank') {
|
||||||
|
window.open(
|
||||||
|
$form.attr('action') + '?' + decodeURIComponent($form.serialize())
|
||||||
|
);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
console.log('>>ajaxForm.url:' + url);
|
console.log('>>ajaxForm.url:' + url);
|
||||||
},
|
},
|
||||||
dataType: 'html',
|
dataType: 'html',
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
|
|
||||||
<div class="well">
|
<div class="well">
|
||||||
{% if form.is_multipart %}
|
{% if form.is_multipart %}
|
||||||
<form name="{{ form.prefix }}" enctype="multipart/form-data" method="{{ submit_method|default:'post' }}" action="{{ form_action }}" class="{{ form_class|default:'' }}">
|
<form action="{{ form_action }}" class="{{ form_class|default:'' }}" enctype="multipart/form-data" method="{{ submit_method|default:'post' }}" name="{{ form.prefix }}" target="{{ submit_target|default:'_self' }}">
|
||||||
{% else %}
|
{% else %}
|
||||||
<form name="{{ form.prefix }}" method="{{ submit_method|default:'post' }}" action="{{ form_action }}" class="{{ form_class|default:'' }}">
|
<form action="{{ form_action }}" class="{{ form_class|default:'' }}" method="{{ submit_method|default:'post' }}" name="{{ form.prefix }}" target="{{ submit_target|default:'_self' }}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{{ wizard.management_form }}
|
{{ wizard.management_form }}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{% extends 'appearance/base.html' %}
|
{% extends 'appearance/base_plain.html' %}
|
||||||
|
|
||||||
{% block title %}{{ title }}{% endblock title %}
|
{% block title %}{{ title }}{% endblock title %}
|
||||||
|
|
||||||
|
|||||||
@@ -717,38 +717,50 @@ class DocumentTransformationsCloneView(FormView):
|
|||||||
class DocumentPrint(FormView):
|
class DocumentPrint(FormView):
|
||||||
form_class = DocumentPrintForm
|
form_class = DocumentPrintForm
|
||||||
|
|
||||||
def form_valid(self, form):
|
def dispatch(self, request, *args, **kwargs):
|
||||||
instance = self.get_object()
|
self.page_group = self.request.GET.get('page_group')
|
||||||
|
self.page_range = self.request.GET.get('page_range')
|
||||||
|
return super(DocumentPrint, self).dispatch(request, *args, **kwargs)
|
||||||
|
|
||||||
if form.cleaned_data['page_group'] == PAGE_RANGE_RANGE:
|
def get(self, request, *args, **kwargs):
|
||||||
page_range = form.cleaned_data['page_range']
|
|
||||||
|
|
||||||
if page_range:
|
if not self.page_group and not self.page_range:
|
||||||
page_range = parse_range(page_range)
|
return super(DocumentPrint, self).get(request, *args, **kwargs)
|
||||||
pages = instance.pages.filter(page_number__in=page_range)
|
else:
|
||||||
|
instance = self.get_object()
|
||||||
|
|
||||||
|
if self.page_group == PAGE_RANGE_RANGE:
|
||||||
|
if self.page_range:
|
||||||
|
page_range = parse_range(self.page_range)
|
||||||
|
pages = instance.pages.filter(page_number__in=page_range)
|
||||||
|
else:
|
||||||
|
pages = instance.pages.all()
|
||||||
else:
|
else:
|
||||||
pages = instance.pages.all()
|
pages = instance.pages.all()
|
||||||
else:
|
|
||||||
pages = instance.pages.all()
|
|
||||||
|
|
||||||
context = self.get_context_data()
|
context = self.get_context_data()
|
||||||
|
|
||||||
context.update(
|
context.update(
|
||||||
{
|
{
|
||||||
'appearance_type': 'plain',
|
'appearance_type': 'plain',
|
||||||
'pages': pages,
|
'pages': pages,
|
||||||
'size': setting_print_size.value,
|
'size': setting_print_size.value,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
return self.render_to_response(context=context)
|
return self.render_to_response(context=context)
|
||||||
|
|
||||||
def get_extra_context(self):
|
def get_extra_context(self):
|
||||||
instance = self.get_object()
|
instance = self.get_object()
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
|
'form_action': reverse(
|
||||||
|
'documents:document_print', args=(instance.pk,)
|
||||||
|
),
|
||||||
'object': instance,
|
'object': instance,
|
||||||
'submit_label': _('Submit'),
|
'submit_label': _('Submit'),
|
||||||
|
'submit_method': 'GET',
|
||||||
|
'submit_target': '_blank',
|
||||||
'title': _('Print: %s') % instance,
|
'title': _('Print: %s') % instance,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -767,7 +779,7 @@ class DocumentPrint(FormView):
|
|||||||
return instance
|
return instance
|
||||||
|
|
||||||
def get_template_names(self):
|
def get_template_names(self):
|
||||||
if self.request.method == 'POST':
|
if self.page_group or self.page_range:
|
||||||
return ('documents/document_print.html',)
|
return ('documents/document_print.html',)
|
||||||
else:
|
else:
|
||||||
return (self.template_name,)
|
return (self.template_name,)
|
||||||
|
|||||||
Reference in New Issue
Block a user