adding in cstm action buttons function

This commit is contained in:
Matthias 2021-05-07 07:18:13 +02:00
parent 09fe9ccf11
commit f73863ea51
2 changed files with 39 additions and 0 deletions

View File

@ -377,6 +377,15 @@ function modalSubmit(modal, callback) {
$(modal).on('click', '#modal-form-submit', function() {
callback();
});
$(modal).on('click', '.modal-form-button', function() {
// Append data to form
var name = $(this).attr('name');
var value = $(this).attr('value');
var input = '<input id="id_act-btn_' + name + '" type="hidden" name="act-btn_' + name + '" value="' + value + '">';
$('.js-modal-form').append(input);
callback();
});
}
@ -659,6 +668,25 @@ function attachSecondaries(modal, secondaries) {
}
}
function insertActionButton(modal, options) {
/* Insert a custom submition button */
var html = "<span style='float: right;'>";
html += "<button name='" + options.name + "' type='submit' class='btn btn-default modal-form-button'";
html += " value='" + options.name + "'>" + options.title + "</button>";
html += "</span>";
$(modal).find('#modal-footer-buttons').append(html);
}
function attachButtons(modal, buttons) {
/* Attach a provided list of buttons */
for (var i = 0; i < buttons.length; i++) {
insertActionButton(modal, buttons[i]);
}
}
function attachFieldCallback(modal, callback) {
/* Attach a 'callback' function to a given field in the modal form.
@ -808,6 +836,9 @@ function launchModalForm(url, options = {}) {
var submit_text = options.submit_text || '{% trans "Submit" %}';
var close_text = options.close_text || '{% trans "Close" %}';
// Clean custom action buttons
$(modal).find('#modal-footer-buttons').html('');
// Form the ajax request to retrieve the django form data
ajax_data = {
url: url,
@ -852,6 +883,10 @@ function launchModalForm(url, options = {}) {
handleModalForm(url, options);
}
if (options.buttons) {
attachButtons(modal, options.buttons);
}
} else {
$(modal).modal('hide');
showAlertDialog('{% trans "Invalid server response" %}', '{% trans "JSON response missing form data" %}');

View File

@ -25,6 +25,7 @@
</div>
</div>
<div class='modal-footer'>
<div id='modal-footer-buttons'></div>
<button type='button' class='btn btn-default' id='modal-form-close' data-dismiss='modal'>{% trans "Close" %}</button>
<button type='button' class='btn btn-primary' id='modal-form-submit'>{% trans "Submit" %}</button>
</div>
@ -49,6 +50,7 @@
</div>
</div>
<div class='modal-footer'>
<div id='modal-footer-buttons'></div>
<button type='button' class='btn btn-default' id='modal-form-close' data-dismiss='modal'>{% trans "Close" %}</button>
<button type='button' class='btn btn-primary' id='modal-form-submit'>{% trans "Submit" %}</button>
</div>
@ -69,6 +71,7 @@
<div class='modal-form-content'>
</div>
<div class='modal-footer'>
<div id='modal-footer-buttons'></div>
<button type='button' class='btn btn-default' id='modal-form-cancel' data-dismiss='modal'>{% trans "Cancel" %}</button>
<button type='button' class='btn btn-primary' id='modal-form-accept'>{% trans "Accept" %}</button>
</div>
@ -90,6 +93,7 @@
</div>
</div>
<div class='modal-footer'>
<div id='modal-footer-buttons'></div>
<button type='button' class='btn btn-default' data-dismiss='modal'>{% trans "Close" %}</button>
</div>
</div>