From 4f7edac213df376f36c55e57b5ba3597ebd638f3 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 6 Jun 2021 17:43:16 +0200 Subject: [PATCH] back button --- InvenTree/common/views.py | 12 +++++++++++- InvenTree/templates/js/modals.js | 5 +++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/InvenTree/common/views.py b/InvenTree/common/views.py index c52c063cbf..f953dffa81 100644 --- a/InvenTree/common/views.py +++ b/InvenTree/common/views.py @@ -560,6 +560,14 @@ class FileManagementAjaxView(AjaxView): """ def post(self, request): + # check if back-step button was selected + wizard_back = self.request.POST.get('act-btn_back', None) + if wizard_back: + back_step_index = self.get_step_index() - 1 + self.storage.current_step = list(self.get_form_list().keys())[back_step_index] + return self.renderJsonResponse(request, data={'form_valid': None}) + + # validate form form = self.get_form(data=self.request.POST, files=self.request.FILES) form_valid = self.validate(self.steps.current, form) @@ -596,7 +604,9 @@ class FileManagementAjaxView(AjaxView): def get_data(self): data = super().get_data() - data['hideErrorMessage'] = '1' + data['hideErrorMessage'] = '1' # hide the error + buttons = [{'name': 'back', 'title': _('Previous Step')}] if self.get_step_index() > 0 else [] + data['buttons'] = buttons # set buttons return data def setTemplate(self): diff --git a/InvenTree/templates/js/modals.js b/InvenTree/templates/js/modals.js index 3f6b50cffa..e4fe3d3fc1 100644 --- a/InvenTree/templates/js/modals.js +++ b/InvenTree/templates/js/modals.js @@ -795,6 +795,11 @@ function handleModalForm(url, options) { if (options.secondary) { attachSecondaries(modal, options.secondary); } + if (response.buttons) { + // Clean custom action buttons + $(modal).find('#modal-footer-buttons').html(''); + attachButtons(modal, response.buttons); + } } else { $(modal).modal('hide');