(function (global, factory) { if (typeof define === "function" && define.amd) { define("/tables/datatable", ["jquery", "Site"], factory); } else if (typeof exports !== "undefined") { factory(require("jquery"), require("Site")); } else { var mod = { exports: {} }; factory(global.jQuery, global.Site); global.tablesDatatable = mod.exports; } })(this, function (_jquery, _Site) { "use strict"; _jquery = babelHelpers.interopRequireDefault(_jquery); (0, _jquery.default)(document).ready(function ($$$1) { (0, _Site.run)(); }); // Fixed Header Example // -------------------- (function () { var offsetTop = 0; if ((0, _jquery.default)('.site-navbar').length > 0) { offsetTop = (0, _jquery.default)('.site-navbar').eq(0).innerHeight(); } // initialize datatable var table = (0, _jquery.default)('#exampleFixedHeader').DataTable({ responsive: true, fixedHeader: { header: true, headerOffset: offsetTop }, "paging": false, "dom": "t" // just show table, no other controls }); // redraw fixedHeaders as necessary // $(window).resize(function() { // fixedHeader._fnUpdateClones(true); // fixedHeader._fnUpdatePositions(); // }); })(); // Individual column searching // --------------------------- (function () { (0, _jquery.default)(document).ready(function () { var defaults = Plugin.getDefaults("dataTable"); var options = _jquery.default.extend(true, {}, defaults, { initComplete: function initComplete() { this.api().columns().every(function () { var column = this; var select = (0, _jquery.default)('').appendTo((0, _jquery.default)(column.footer()).empty()).on('change', function () { var val = _jquery.default.fn.dataTable.util.escapeRegex((0, _jquery.default)(this).val()); column.search(val ? '^' + val + '$' : '', true, false).draw(); }); column.data().unique().sort().each(function (d, j) { select.append(''); }); }); } }); (0, _jquery.default)('#exampleTableSearch').DataTable(options); }); })(); // Table Tools // ----------- (function () { (0, _jquery.default)(document).ready(function () { var defaults = Plugin.getDefaults("dataTable"); var options = _jquery.default.extend(true, {}, defaults, { "aoColumnDefs": [{ 'bSortable': false, 'aTargets': [-1] }], "iDisplayLength": 5, "aLengthMenu": [[5, 10, 25, 50, -1], [5, 10, 25, 50, "All"]], "sDom": '<"dt-panelmenu clearfix"Bfr>t<"dt-panelfooter clearfix"ip>', "buttons": ['copy', 'excel', 'csv', 'pdf', 'print'] }); (0, _jquery.default)('#exampleTableTools').dataTable(options); }); })(); // Table Add Row // ------------- (function ($$$1) { var EditableTable = { options: { addButton: '#addToTable', table: '#exampleAddRow', dialog: { wrapper: '#dialog', cancelButton: '#dialogCancel', confirmButton: '#dialogConfirm' } }, initialize: function initialize() { this.setVars().build().events(); }, setVars: function setVars() { this.$table = $$$1(this.options.table); this.$addButton = $$$1(this.options.addButton); // dialog this.dialog = {}; this.dialog.$wrapper = $$$1(this.options.dialog.wrapper); this.dialog.$cancel = $$$1(this.options.dialog.cancelButton); this.dialog.$confirm = $$$1(this.options.dialog.confirmButton); return this; }, build: function build() { this.datatable = this.$table.DataTable({ aoColumns: [null, null, null, { "bSortable": false }], language: { "sSearchPlaceholder": "Search..", "lengthMenu": "_MENU_", "search": "_INPUT_" } }); window.dt = this.datatable; return this; }, events: function events() { var _self = this; this.$table.on('click', 'a.save-row', function (e) { e.preventDefault(); _self.rowSave($$$1(this).closest('tr')); }).on('click', 'a.cancel-row', function (e) { e.preventDefault(); _self.rowCancel($$$1(this).closest('tr')); }).on('click', 'a.edit-row', function (e) { e.preventDefault(); _self.rowEdit($$$1(this).closest('tr')); }).on('click', 'a.remove-row', function (e) { e.preventDefault(); var $row = $$$1(this).closest('tr'); bootbox.dialog({ message: "Are you sure that you want to delete this row?", title: "ARE YOU SURE?", buttons: { danger: { label: "Confirm", className: "btn-danger", callback: function callback() { _self.rowRemove($row); } }, main: { label: "Cancel", className: "btn-primary", callback: function callback() {} } } }); }); this.$addButton.on('click', function (e) { e.preventDefault(); _self.rowAdd(); }); this.dialog.$cancel.on('click', function (e) { e.preventDefault(); $$$1.magnificPopup.close(); }); return this; }, // ============= // ROW FUNCTIONS // ============= rowAdd: function rowAdd() { this.$addButton.attr({ 'disabled': 'disabled' }); var actions, data, $row; actions = ['', '', '', ''].join(' '); data = this.datatable.row.add(['', '', '', actions]); $row = this.datatable.row(data[0]).nodes().to$(); $row.addClass('adding').find('td:last').addClass('actions'); this.rowEdit($row); this.datatable.order([0, 'asc']).draw(); // always show fields }, rowCancel: function rowCancel($row) { var _self = this, $actions, i, data, $cancel; if ($row.hasClass('adding')) { this.rowRemove($row); } else { $actions = $row.find('td.actions'); $cancel = $actions.find('.cancel-row'); $cancel.tooltip('hide'); if ($actions.get(0)) { this.rowSetActionsDefault($row); } data = this.datatable.row($row.get(0)).data(); this.datatable.row($row.get(0)).data(data); this.handleTooltip($row); this.datatable.draw(); } }, rowEdit: function rowEdit($row) { var _self = this, data; data = this.datatable.row($row.get(0)).data(); $row.children('td').each(function (i) { var $this = $$$1(this); if ($this.hasClass('actions')) { _self.rowSetActionsEditing($row); } else { $this.html(''); } }); }, rowSave: function rowSave($row) { var _self = this, $actions, values = [], $save; if ($row.hasClass('adding')) { this.$addButton.removeAttr('disabled'); $row.removeClass('adding'); } values = $row.find('td').map(function () { var $this = $$$1(this); if ($this.hasClass('actions')) { _self.rowSetActionsDefault($row); return _self.datatable.cell(this).data(); } else { return $$$1.trim($this.find('input').val()); } }); $actions = $row.find('td.actions'); $save = $actions.find('.save-row'); $save.tooltip('hide'); if ($actions.get(0)) { this.rowSetActionsDefault($row); } this.datatable.row($row.get(0)).data(values); this.handleTooltip($row); this.datatable.draw(); }, rowRemove: function rowRemove($row) { if ($row.hasClass('adding')) { this.$addButton.removeAttr('disabled'); } this.datatable.row($row.get(0)).remove().draw(); }, rowSetActionsEditing: function rowSetActionsEditing($row) { $row.find('.on-editing').removeAttr('hidden'); $row.find('.on-default').attr('hidden', true); }, rowSetActionsDefault: function rowSetActionsDefault($row) { $row.find('.on-editing').attr('hidden', true); $row.find('.on-default').removeAttr('hidden'); }, handleTooltip: function handleTooltip($row) { var $tooltip = $row.find('[data-toggle="tooltip"]'); $tooltip.tooltip(); } }; $$$1(function () { EditableTable.initialize(); }); }).apply(undefined, [jQuery]); });