diff --git a/js/src/designer/move.js b/js/src/designer/move.js index 7dfa2a638f..7b65958927 100644 --- a/js/src/designer/move.js +++ b/js/src/designer/move.js @@ -606,9 +606,44 @@ DesignerMove.addTableToTablesList = function (index, tableDom) { $tablesCounter.text(parseInt($tablesCounter.text(), 10) + 1); }; +/** + * This function shows modal with Go buttons where required in designer + * @param {object} form + * @param {string} heading + * @param {string} type + * + * @return {object} modal; + */ +DesignerMove.displayModal = function (form, heading, type) { + var modal = $(type); + modal.modal('show'); + modal.find('.modal-body').first().html(form); + $(type + 'Label').first().html(heading); + return modal; +}; + DesignerMove.addOtherDbTables = function () { - var buttonOptions = {}; - buttonOptions[Messages.strGo] = function () { + var $selectDb = $(''); + $selectDb.append(''); + + var $selectTable = $(''); + $selectTable.append(''); + + $.post('index.php?route=/sql', { + 'ajax_request' : true, + 'sql_query' : 'SHOW databases;', + 'server': CommonParams.get('server') + }, function (data) { + $(data.message).find('table.table_results.data.ajax').find('td.data').each(function () { + var val = $(this)[0].innerText; + $selectDb.append($('').val(val).text(val)); + }); + }); + + var $form = $('
') + .append($selectDb).append($selectTable); + var modal = DesignerMove.displayModal($form, Messages.strAddTables, '#designerGoModal'); + $('#designerModalGoButton').on('click', function () { var db = $('#add_table_from').val(); var table = $('#add_table').val(); @@ -644,44 +679,8 @@ DesignerMove.addOtherDbTables = function () { DesignerMove.markUnsaved(); } }); - $(this).dialog('close'); - }; - buttonOptions[Messages.strCancel] = function () { - $(this).dialog('close'); - }; - - var $selectDb = $(''); - $selectDb.append(''); - - var $selectTable = $(''); - $selectTable.append(''); - - $.post('index.php?route=/sql', { - 'ajax_request' : true, - 'sql_query' : 'SHOW databases;', - 'server': CommonParams.get('server') - }, function (data) { - $(data.message).find('table.table_results.data.ajax').find('td.data').each(function () { - var val = $(this)[0].innerText; - $selectDb.append($('').val(val).text(val)); - }); + modal.modal('hide'); }); - - var $form = $('') - .append($selectDb).append($selectTable); - $('') - .append($form) - .dialog({ - appendTo: '#page_content', - title: Messages.strAddTables, - width: 500, - modal: true, - buttons: buttonOptions, - close: function () { - $(this).remove(); - } - }); - $('#add_table_from').on('change', function () { if ($(this).val()) { var dbName = $(this).val(); @@ -790,14 +789,14 @@ DesignerMove.save2 = function (callback) { } }; -DesignerMove.submitSaveDialogAndClose = function (callback) { +DesignerMove.submitSaveDialogAndClose = function (callback, modal) { var $form = $('#save_page'); var name = $form.find('input[name="selected_value"]').val().trim(); if (name === '') { Functions.ajaxShowMessage(Messages.strEnterValidPageName, false); return; } - $('#page_save_dialog').dialog('close'); + modal.modal('hide'); if (designerTablesEnabled) { var $msgbox = Functions.ajaxShowMessage(Messages.strProcessingRequest); @@ -835,15 +834,6 @@ DesignerMove.save3 = function (callback) { if (selectedPage !== -1) { DesignerMove.save2(callback); } else { - var buttonOptions = {}; - buttonOptions[Messages.strGo] = function () { - var $form = $('#save_page'); - $form.trigger('submit'); - }; - buttonOptions[Messages.strCancel] = function () { - $(this).dialog('close'); - }; - var $form = $('') .append('') .append($('').val(db)) @@ -851,43 +841,22 @@ DesignerMove.save3 = function (callback) { .append('') .append(':'); + var modal = DesignerMove.displayModal($form, Messages.strSavePage, '#designerGoModal'); $form.on('submit', function (e) { e.preventDefault(); - DesignerMove.submitSaveDialogAndClose(callback); + DesignerMove.submitSaveDialogAndClose(callback, modal); + }); + $('#designerModalGoButton').on('click', function () { + var $form = $('#save_page'); + $form.trigger('submit'); + modal.modal('hide'); }); - $('') - .append($form) - .dialog({ - appendTo: '#page_content', - title: Messages.strSavePage, - width: 300, - modal: true, - buttons: buttonOptions, - close: function () { - $(this).remove(); - } - }); } }; // ------------------------------ EDIT PAGES ------------------------------------------ DesignerMove.editPages = function () { DesignerMove.promptToSaveCurrentPage(function () { - var buttonOptions = {}; - buttonOptions[Messages.strGo] = function () { - var $form = $('#edit_delete_pages'); - var selected = $form.find('select[name="selected_page"]').val(); - if (selected === '0') { - Functions.ajaxShowMessage(Messages.strSelectPage, 2000); - return; - } - $(this).dialog('close'); - DesignerMove.loadPage(selected); - }; - buttonOptions[Messages.strCancel] = function () { - $(this).dialog('close'); - }; - var $msgbox = Functions.ajaxShowMessage(); $.post('index.php?route=/database/designer', { 'ajax_request': true, @@ -905,18 +874,17 @@ DesignerMove.editPages = function () { $('#selected_page').append(options); }); } - $('') - .append(data.message) - .dialog({ - appendTo: '#page_content', - title: Messages.strOpenPage, - width: 350, - modal: true, - buttons: buttonOptions, - close: function () { - $(this).remove(); - } - }); + var modal = DesignerMove.displayModal(data.message, Messages.strOpenPage, '#designerGoModal'); + $('#designerModalGoButton').on('click', function () { + var $form = $('#edit_delete_pages'); + var selected = $form.find('select[name="selected_page"]').val(); + if (selected === '0') { + Functions.ajaxShowMessage(Messages.strSelectPage, 2000); + return; + } + modal.modal('hide'); + DesignerMove.loadPage(selected); + }); } }); // end $.post() }); @@ -924,53 +892,6 @@ DesignerMove.editPages = function () { // ----------------------------- DELETE PAGES --------------------------------------- DesignerMove.deletePages = function () { - var buttonOptions = {}; - buttonOptions[Messages.strGo] = function () { - var $form = $('#edit_delete_pages'); - var selected = $form.find('select[name="selected_page"]').val(); - if (selected === '0') { - Functions.ajaxShowMessage(Messages.strSelectPage, 2000); - return; - } - - var $messageBox = Functions.ajaxShowMessage(Messages.strProcessingRequest); - var deletingCurrentPage = selected === selectedPage; - Functions.prepareForAjaxRequest($form); - - if (designerTablesEnabled) { - $.post($form.attr('action'), $form.serialize(), function (data) { - if (data.success === false) { - Functions.ajaxShowMessage(data.error, false); - } else { - Functions.ajaxRemoveMessage($messageBox); - if (deletingCurrentPage) { - DesignerMove.loadPage(null); - } else { - Functions.ajaxShowMessage(Messages.strSuccessfulPageDelete); - } - } - }); // end $.post() - } else { - DesignerPage.deletePage(selected, function (success) { - if (! success) { - Functions.ajaxShowMessage('Error', false); - } else { - Functions.ajaxRemoveMessage($messageBox); - if (deletingCurrentPage) { - DesignerMove.loadPage(null); - } else { - Functions.ajaxShowMessage(Messages.strSuccessfulPageDelete); - } - } - }); - } - - $(this).dialog('close'); - }; - buttonOptions[Messages.strCancel] = function () { - $(this).dialog('close'); - }; - var $msgbox = Functions.ajaxShowMessage(); $.post('index.php?route=/database/designer', { 'ajax_request': true, @@ -989,90 +910,54 @@ DesignerMove.deletePages = function () { }); } - $('') - .append(data.message) - .dialog({ - appendTo: '#page_content', - title: Messages.strDeletePage, - width: 350, - modal: true, - buttons: buttonOptions, - close: function () { - $(this).remove(); - } - }); + var modal = DesignerMove.displayModal(data.message, Messages.strDeletePage, '#designerGoModal'); + $('#designerModalGoButton').on('click', function () { + var $form = $('#edit_delete_pages'); + var selected = $form.find('select[name="selected_page"]').val(); + if (selected === '0') { + Functions.ajaxShowMessage(Messages.strSelectPage, 2000); + return; + } + + var $messageBox = Functions.ajaxShowMessage(Messages.strProcessingRequest); + var deletingCurrentPage = parseInt(selected) === selectedPage; + Functions.prepareForAjaxRequest($form); + + if (designerTablesEnabled) { + $.post($form.attr('action'), $form.serialize(), function (data) { + if (data.success === false) { + Functions.ajaxShowMessage(data.error, false); + } else { + Functions.ajaxRemoveMessage($messageBox); + if (deletingCurrentPage) { + DesignerMove.loadPage(null); + } else { + Functions.ajaxShowMessage(Messages.strSuccessfulPageDelete); + } + } + }); // end $.post() + } else { + DesignerPage.deletePage(selected, function (success) { + if (! success) { + Functions.ajaxShowMessage('Error', false); + } else { + Functions.ajaxRemoveMessage($messageBox); + if (deletingCurrentPage) { + DesignerMove.loadPage(null); + } else { + Functions.ajaxShowMessage(Messages.strSuccessfulPageDelete); + } + } + }); + } + modal.modal('hide'); + }); } }); // end $.post() }; // ------------------------------ SAVE AS PAGES --------------------------------------- DesignerMove.saveAs = function () { - var buttonOptions = {}; - buttonOptions[Messages.strGo] = function () { - var $form = $('#save_as_pages'); - var selectedValue = $form.find('input[name="selected_value"]').val().trim(); - var $selectedPage = $form.find('select[name="selected_page"]'); - var choice = $form.find('input[name="save_page"]:checked').val(); - var name = ''; - - if (choice === 'same') { - if ($selectedPage.val() === '0') { - Functions.ajaxShowMessage(Messages.strSelectPage, 2000); - return; - } - name = $selectedPage.find('option:selected').text(); - } else if (choice === 'new') { - if (selectedValue === '') { - Functions.ajaxShowMessage(Messages.strEnterValidPageName, 2000); - return; - } - name = selectedValue; - } - - var $msgbox = Functions.ajaxShowMessage(Messages.strProcessingRequest); - if (designerTablesEnabled) { - Functions.prepareForAjaxRequest($form); - $.post($form.attr('action'), $form.serialize() + DesignerMove.getUrlPos(), function (data) { - if (data.success === false) { - Functions.ajaxShowMessage(data.error, false); - } else { - Functions.ajaxRemoveMessage($msgbox); - DesignerMove.markSaved(); - if (data.id) { - selectedPage = data.id; - } - DesignerMove.loadPage(selectedPage); - } - }); // end $.post() - } else { - if (choice === 'same') { - var selectedPageId = $selectedPage.find('option:selected').val(); - DesignerPage.saveToSelectedPage(db, selectedPageId, name, DesignerMove.getUrlPos(), function (page) { - Functions.ajaxRemoveMessage($msgbox); - DesignerMove.markSaved(); - if (page.pgNr) { - selectedPage = page.pgNr; - } - DesignerMove.loadPage(selectedPage); - }); - } else if (choice === 'new') { - DesignerPage.saveToNewPage(db, name, DesignerMove.getUrlPos(), function (page) { - Functions.ajaxRemoveMessage($msgbox); - DesignerMove.markSaved(); - if (page.pgNr) { - selectedPage = page.pgNr; - } - DesignerMove.loadPage(selectedPage); - }); - } - } - - $(this).dialog('close'); - }; - buttonOptions[Messages.strCancel] = function () { - $(this).dialog('close'); - }; - var $msgbox = Functions.ajaxShowMessage(); $.post('index.php?route=/database/designer', { 'ajax_request': true, @@ -1091,18 +976,68 @@ DesignerMove.saveAs = function () { }); } - $('') - .append(data.message) - .dialog({ - appendTo: '#page_content', - title: Messages.strSavePageAs, - width: 450, - modal: true, - buttons: buttonOptions, - close: function () { - $(this).remove(); + var modal = DesignerMove.displayModal(data.message, Messages.strSavePageAs, '#designerGoModal'); + $('#designerModalGoButton').on('click', function () { + var $form = $('#save_as_pages'); + var selectedValue = $form.find('input[name="selected_value"]').val().trim(); + var $selectedPage = $form.find('select[name="selected_page"]'); + var choice = $form.find('input[name="save_page"]:checked').val(); + var name = ''; + + if (choice === 'same') { + if ($selectedPage.val() === '0') { + Functions.ajaxShowMessage(Messages.strSelectPage, 2000); + return; } - }); + name = $selectedPage.find('option:selected').text(); + } else if (choice === 'new') { + if (selectedValue === '') { + Functions.ajaxShowMessage(Messages.strEnterValidPageName, 2000); + return; + } + name = selectedValue; + } + + var $msgbox = Functions.ajaxShowMessage(Messages.strProcessingRequest); + if (designerTablesEnabled) { + Functions.prepareForAjaxRequest($form); + $.post($form.attr('action'), $form.serialize() + DesignerMove.getUrlPos(), function (data) { + if (data.success === false) { + Functions.ajaxShowMessage(data.error, false); + } else { + Functions.ajaxRemoveMessage($msgbox); + DesignerMove.markSaved(); + if (data.id) { + selectedPage = data.id; + } + DesignerMove.loadPage(selectedPage); + } + }); // end $.post() + } else { + if (choice === 'same') { + var selectedPageId = $selectedPage.find('option:selected').val(); + DesignerPage.saveToSelectedPage(db, selectedPageId, name, DesignerMove.getUrlPos(), function (page) { + Functions.ajaxRemoveMessage($msgbox); + DesignerMove.markSaved(); + if (page.pgNr) { + selectedPage = page.pgNr; + } + DesignerMove.loadPage(selectedPage); + }); + } else if (choice === 'new') { + DesignerPage.saveToNewPage(db, name, DesignerMove.getUrlPos(), function (page) { + Functions.ajaxRemoveMessage($msgbox); + DesignerMove.markSaved(); + if (page.pgNr) { + selectedPage = page.pgNr; + } + DesignerMove.loadPage(selectedPage); + }); + } + } + + modal.modal('hide'); + }); // select current page by default if (selectedPage !== -1) { $('select[name="selected_page"]').val(selectedPage); @@ -1113,30 +1048,16 @@ DesignerMove.saveAs = function () { DesignerMove.promptToSaveCurrentPage = function (callback) { if (change === 1 || selectedPage === -1) { - var buttonOptions = {}; - buttonOptions[Messages.strYes] = function () { - $(this).dialog('close'); + var modal = DesignerMove.displayModal('