aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/js/database/central_columns.js
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/js/database/central_columns.js')
-rw-r--r--srcs/phpmyadmin/js/database/central_columns.js241
1 files changed, 241 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/js/database/central_columns.js b/srcs/phpmyadmin/js/database/central_columns.js
new file mode 100644
index 0000000..15f95de
--- /dev/null
+++ b/srcs/phpmyadmin/js/database/central_columns.js
@@ -0,0 +1,241 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * @fileoverview events handling from central columns page
+ * @name Central columns
+ *
+ * @requires jQuery
+ */
+
+/**
+ * AJAX scripts for db_central_columns.php
+ *
+ * Actions ajaxified here:
+ * Inline Edit and save of a result row
+ * Delete a row
+ * Multiple edit and delete option
+ *
+ */
+
+AJAX.registerTeardown('database/central_columns.js', function () {
+ $('.edit').off('click');
+ $('.edit_save_form').off('click');
+ $('.edit_cancel_form').off('click');
+ $('.del_row').off('click');
+ $(document).off('keyup', '.filter_rows');
+ $('.edit_cancel_form').off('click');
+ $('#table-select').off('change');
+ $('#column-select').off('change');
+ $('#add_col_div').find('>a').off('click');
+ $('#add_new').off('submit');
+ $('#multi_edit_central_columns').off('submit');
+ $('select.default_type').off('change');
+ $('button[name=\'delete_central_columns\']').off('click');
+ $('button[name=\'edit_central_columns\']').off('click');
+});
+
+AJAX.registerOnload('database/central_columns.js', function () {
+ $('#tableslistcontainer input,#tableslistcontainer select,#tableslistcontainer .default_value,#tableslistcontainer .open_enum_editor').hide();
+ $('#tableslistcontainer').find('.checkall').show();
+ $('#tableslistcontainer').find('.checkall_box').show();
+ if ($('#table_columns').find('tbody tr').length > 0) {
+ $('#table_columns').tablesorter({
+ headers: {
+ 0: { sorter: false },
+ 1: { sorter: false }, // hidden column
+ 4: { sorter: 'integer' }
+ }
+ });
+ }
+ $('#tableslistcontainer').find('button[name="delete_central_columns"]').on('click', function (event) {
+ event.preventDefault();
+ var multiDeleteColumns = $('.checkall:checkbox:checked').serialize();
+ if (multiDeleteColumns === '') {
+ Functions.ajaxShowMessage(Messages.strRadioUnchecked);
+ return false;
+ }
+ Functions.ajaxShowMessage();
+ $('#del_col_name').val(multiDeleteColumns);
+ $('#del_form').trigger('submit');
+ });
+ $('#tableslistcontainer').find('button[name="edit_central_columns"]').on('click', function (event) {
+ event.preventDefault();
+ var editColumnList = $('.checkall:checkbox:checked').serialize();
+ if (editColumnList === '') {
+ Functions.ajaxShowMessage(Messages.strRadioUnchecked);
+ return false;
+ }
+ var argsep = CommonParams.get('arg_separator');
+ var editColumnData = editColumnList + '' + argsep + 'edit_central_columns_page=true' + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true' + argsep + 'db=' + encodeURIComponent(CommonParams.get('db'));
+ Functions.ajaxShowMessage();
+ AJAX.source = $(this);
+ $.post('db_central_columns.php', editColumnData, AJAX.responseHandler);
+ });
+ $('#multi_edit_central_columns').submit(function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ var argsep = CommonParams.get('arg_separator');
+ var multiColumnEditData = $('#multi_edit_central_columns').serialize() + argsep + 'multi_edit_central_column_save=true' + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true' + argsep + 'db=' + encodeURIComponent(CommonParams.get('db'));
+ Functions.ajaxShowMessage();
+ AJAX.source = $(this);
+ $.post('db_central_columns.php', multiColumnEditData, AJAX.responseHandler);
+ });
+ $('#add_new').find('td').each(function () {
+ if ($(this).attr('name') !== 'undefined') {
+ $(this).find('input,select:first').attr('name', $(this).attr('name'));
+ }
+ });
+ $('#field_0_0').attr('required','required');
+ $('#add_new input[type="text"], #add_new input[type="number"], #add_new select')
+ .css({
+ 'width' : '10em',
+ '-moz-box-sizing' : 'border-box'
+ });
+ window.scrollTo(0, 0);
+ $(document).on('keyup', '.filter_rows', function () {
+ // get the column names
+ var cols = $('th.column_heading').map(function () {
+ return $.trim($(this).text());
+ }).get();
+ $.uiTableFilter($('#table_columns'), $(this).val(), cols, null, 'td span');
+ });
+ $('.edit').on('click', function () {
+ var rownum = $(this).parent().data('rownum');
+ $('#save_' + rownum).show();
+ $(this).hide();
+ $('#f_' + rownum + ' td span').hide();
+ $('#f_' + rownum + ' input, #f_' + rownum + ' select, #f_' + rownum + ' .open_enum_editor').show();
+ var attributeVal = $('#f_' + rownum + ' td[name=col_attribute] span').html();
+ $('#f_' + rownum + ' select[name=field_attribute\\[' + rownum + '\\] ] option[value="' + attributeVal + '"]').attr('selected','selected');
+ if ($('#f_' + rownum + ' .default_type').val() === 'USER_DEFINED') {
+ $('#f_' + rownum + ' .default_type').siblings('.default_value').show();
+ } else {
+ $('#f_' + rownum + ' .default_type').siblings('.default_value').hide();
+ }
+ });
+ $('.del_row').on('click', function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ var $td = $(this);
+ var question = Messages.strDeleteCentralColumnWarning;
+ $td.confirm(question, null, function () {
+ var rownum = $td.data('rownum');
+ $('#del_col_name').val('selected_fld%5B%5D=' + $('#checkbox_row_' + rownum).val());
+ $('#del_form').trigger('submit');
+ });
+ });
+ $('.edit_cancel_form').on('click', function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ var rownum = $(this).data('rownum');
+ $('#save_' + rownum).hide();
+ $('#edit_' + rownum).show();
+ $('#f_' + rownum + ' td span').show();
+ $('#f_' + rownum + ' input, #f_' + rownum + ' select,#f_' + rownum + ' .default_value, #f_' + rownum + ' .open_enum_editor').hide();
+ $('#tableslistcontainer').find('.checkall').show();
+ });
+ $('.edit_save_form').on('click', function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ var rownum = $(this).data('rownum');
+ $('#f_' + rownum + ' td').each(function () {
+ if ($(this).attr('name') !== 'undefined') {
+ $(this).find(':input[type!="hidden"],select:first')
+ .attr('name', $(this).attr('name'));
+ }
+ });
+
+ if ($('#f_' + rownum + ' .default_type').val() === 'USER_DEFINED') {
+ $('#f_' + rownum + ' .default_type').attr('name','col_default_sel');
+ } else {
+ $('#f_' + rownum + ' .default_value').attr('name','col_default_val');
+ }
+
+ var datastring = $('#f_' + rownum + ' :input').serialize();
+ $.ajax({
+ type: 'POST',
+ url: 'db_central_columns.php',
+ data: datastring + CommonParams.get('arg_separator') + 'ajax_request=true',
+ dataType: 'json',
+ success: function (data) {
+ if (data.message !== '1') {
+ Functions.ajaxShowMessage(
+ '<div class="error">' +
+ data.message +
+ '</div>',
+ false
+ );
+ } else {
+ $('#f_' + rownum + ' td input[id=checkbox_row_' + rownum + ']').val($('#f_' + rownum + ' input[name=col_name]').val()).html();
+ $('#f_' + rownum + ' td[name=col_name] span').text($('#f_' + rownum + ' input[name=col_name]').val()).html();
+ $('#f_' + rownum + ' td[name=col_type] span').text($('#f_' + rownum + ' select[name=col_type]').val()).html();
+ $('#f_' + rownum + ' td[name=col_length] span').text($('#f_' + rownum + ' input[name=col_length]').val()).html();
+ $('#f_' + rownum + ' td[name=collation] span').text($('#f_' + rownum + ' select[name=collation]').val()).html();
+ $('#f_' + rownum + ' td[name=col_attribute] span').text($('#f_' + rownum + ' select[name=col_attribute]').val()).html();
+ $('#f_' + rownum + ' td[name=col_isNull] span').text($('#f_' + rownum + ' input[name=col_isNull]').is(':checked') ? 'Yes' : 'No').html();
+ $('#f_' + rownum + ' td[name=col_extra] span').text($('#f_' + rownum + ' input[name=col_extra]').is(':checked') ? 'auto_increment' : '').html();
+ $('#f_' + rownum + ' td[name=col_default] span').text($('#f_' + rownum + ' :input[name=col_default]').val()).html();
+ }
+ $('#save_' + rownum).hide();
+ $('#edit_' + rownum).show();
+ $('#f_' + rownum + ' td span').show();
+ $('#f_' + rownum + ' input, #f_' + rownum + ' select,#f_' + rownum + ' .default_value, #f_' + rownum + ' .open_enum_editor').hide();
+ $('#tableslistcontainer').find('.checkall').show();
+ },
+ error: function () {
+ Functions.ajaxShowMessage(
+ '<div class="error">' +
+ Messages.strErrorProcessingRequest +
+ '</div>',
+ false
+ );
+ }
+ });
+ });
+ $('#table-select').on('change', function () {
+ var selectValue = $(this).val();
+ var defaultColumnSelect = $('#column-select').find('option:first');
+ var href = 'db_central_columns.php';
+ var params = {
+ 'ajax_request' : true,
+ 'server' : CommonParams.get('server'),
+ 'db' : CommonParams.get('db'),
+ 'selectedTable' : selectValue,
+ 'populateColumns' : true
+ };
+ $('#column-select').html('<option value="">' + Messages.strLoading + '</option>');
+ if (selectValue !== '') {
+ $.post(href, params, function (data) {
+ $('#column-select').empty().append(defaultColumnSelect);
+ $('#column-select').append(data.message);
+ });
+ }
+ });
+ $('#add_column').submit(function (e) {
+ var selectvalue = $('#column-select').val();
+ if (selectvalue === '') {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ });
+ $('#add_col_div').find('>a').on('click', function () {
+ $('#add_new').slideToggle('slow');
+ var $addColDivLinkSpan = $('#add_col_div').find('>a span');
+ if ($addColDivLinkSpan.html() === '+') {
+ $addColDivLinkSpan.html('-');
+ } else {
+ $addColDivLinkSpan.html('+');
+ }
+ });
+ $('#add_new').submit(function () {
+ $('#add_new').toggle();
+ });
+ $('#tableslistcontainer').find('select.default_type').on('change', function () {
+ if ($(this).val() === 'USER_DEFINED') {
+ $(this).siblings('.default_value').attr('name','col_default');
+ $(this).attr('name','col_default_sel');
+ } else {
+ $(this).attr('name','col_default');
+ $(this).siblings('.default_value').attr('name','col_default_val');
+ }
+ });
+});