wdt.addRemoveColumn.js
6.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
(function ($) {
/**
* Change column type for a new column
*/
$('.wdt-add-column-column-type').change(function (e) {
var $addColumnBlock = $(this).closest('div.wdt-add-column-modal-block');
var $possibleValuesInput = $addColumnBlock.find('.wdt-add-column-possible-values');
var $possibleValuesBlock = $addColumnBlock.find('.wdt-add-column-possible-values-block');
if ($(this).val() == 'select' || $(this).val() == 'multiselect') {
$possibleValuesBlock.show();
$('.wdt-add-column-possible-values').tagsinput({
tagClass: 'label label-primary'
});
$addColumnBlock.find('.wdt-add-column-default-value').selectpicker('destroy');
$addColumnBlock.find('.wdt-add-column-default-value')
.replaceWith('<select class="selectpicker wdt-add-column-default-value"></select>');
if ($(this).val() == 'multiselect') {
$addColumnBlock.find('.wdt-add-column-default-value').attr('multiple', 'multiple');
} else {
$addColumnBlock.find('.wdt-add-column-default-value').prepend('<option value=""></option>').removeAttr('multiple');
}
$addColumnBlock.find('.wdt-add-column-default-value').selectpicker();
if ($addColumnBlock.find('.wdt-add-column-possible-values').val() != '') {
var possibleValues = $addColumnBlock.find('.wdt-add-column-possible-values').val().split(',');
$.each(possibleValues, function (index, value) {
$addColumnBlock.find('select.wdt-add-column-default-value').append('<option value="' + value + '">' + value + '</option>');
});
$addColumnBlock.find('select.wdt-add-column-default-value').selectpicker('refresh');
}
$possibleValuesInput.on('itemAdded', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
$addColumnBlock.find('select.wdt-add-column-default-value').append('<option value="' + e.item + '">' + e.item + '</option>')
.selectpicker('refresh');
});
$possibleValuesInput.on('itemRemoved', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
$addColumnBlock.find('.wdt-add-column-default-value option[value="' + e.item + '"]').remove();
$addColumnBlock.find('.wdt-add-column-default-value').selectpicker('refresh');
});
} else {
$possibleValuesBlock.hide();
$addColumnBlock.find('.wdt-add-column-default-value').selectpicker('destroy');
$addColumnBlock.find('.wdt-add-column-default-value')
.replaceWith('<input type="text" class="form-control input-sm wdt-add-column-default-value" value="">');
$addColumnBlock.find('.wdt-add-column-default-value')
.attr('type', 'text');
if ($.inArray($(this).val(), ['date', 'datetime', 'time']) != -1) {
$addColumnBlock.find('.wdt-add-column-default-value')
.addClass('wdt-' + $(this).val() + 'picker');
}
if ($.inArray($(this).val(), ['int', 'float']) != -1) {
$addColumnBlock.find('.wdt-add-column-default-value')
.attr('type', 'number');
}
}
});
$('#wdt-add-column-submit').click(function () {
var $addColumnModal = $('.wdt-add-column-modal-block');
if ($('div#wdt-add-column-modal #wdt-add-column-column-header').val() == '') {
wdtNotify(wdtFrontendStrings.error, wdtFrontendStrings.columnHeaderEmpty, 'danger');
return false;
}
var columnType = $addColumnModal.find('.wdt-add-column-column-type').selectpicker('val');
var defaultValue = $.inArray(columnType, ['select', 'multiselect']) != -1 ?
$addColumnModal.find('.wdt-add-column-default-value').selectpicker('val') :
$addColumnModal.find('.wdt-add-column-default-value').val();
if (defaultValue != null && columnType == 'multiselect') {
defaultValue.join('|');
}
var newColumnData = {
name: $('#wdt-add-column-column-header').val(),
type: columnType,
insert_after: $('.wdt-add-column-insert-after').selectpicker('val'),
possible_values: $addColumnModal.find('.wdt-add-column-possible-values').val().replace(/,/g, '|'),
default_value: defaultValue,
fill_default: $('#wdt-add-column-fill-with-default').is(':checked') ? 1 : 0
};
$('#wdt-add-column-modal').find('.wdt-preload-layer').animateFadeIn();
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
action: 'wpdatatables_add_new_manual_column',
table_id: typeof $('table.wpDataTable').data('wpdatatable_id') !== 'undefined' ?
$('table.wpDataTable').data('wpdatatable_id') : $('.wpExcelTable').data('wpdatatable_id'),
wdtNonce: $('#wdtNonceFrontendEdit').val(),
column_data: newColumnData
},
success: function () {
$('#wdt-add-column-modal').find('.wdt-preload-layer').animateFadeOut();
wdtNotify(wdtFrontendStrings.success, wdtFrontendStrings.columnAdded, 'success');
setTimeout(function () {
$('#wdt-add-column-modal').modal('hide');
window.location.reload(true);
}, 1500);
}
});
});
/**
* Remove a column
*/
$('#wdt-remove-column-submit').click(function (e) {
e.preventDefault();
if ($('#wdt-remove-column-confirm').is(':checked') == false) {
wdtNotify(wdtFrontendStrings.error, wdtFrontendStrings.columnRemoveConfirm, 'danger');
return false;
}
$('#wdt-remove-column-modal').find('.wdt-preload-layer').animateFadeIn();
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
action: 'wpdatatables_delete_manual_column',
table_id: typeof $('table.wpDataTable').data('wpdatatable_id') !== 'undefined' ?
$('table.wpDataTable').data('wpdatatable_id') : $('.wpExcelTable').data('wpdatatable_id'),
wdtNonce: $('#wdtNonceFrontendEdit').val(),
column_name: $('#wdtDeleteColumnSelect').val()
},
success: function () {
$('#wdt-remove-column-modal').find('.wdt-preload-layer').animateFadeOut();
wdtNotify(wdtFrontendStrings.success, wdtFrontendStrings.columnRemoved, 'success');
setTimeout(function () {
$('#wdt-remove-column-modal').modal('hide');
window.location.reload(true);
}, 1500);
}
});
});
})(jQuery);