| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | /** * @author: Dennis Hernández * @webSite: http://djhvscf.github.io/Blog * @version: v1.0.1 */(function ($) {    'use strict';    var isSearch = false;    var rowAttr = function (row, index) {        return {            id: 'customId_' + index        };    };    $.extend($.fn.bootstrapTable.defaults, {        reorderableRows: false,        onDragStyle: null,        onDropStyle: null,        onDragClass: "reorder_rows_onDragClass",        dragHandle: null,        useRowAttrFunc: false,        onReorderRowsDrag: function (table, row) {            return false;        },        onReorderRowsDrop: function (table, row) {            return false;        },        onReorderRow: function (newData) {             return false;        }    });    $.extend($.fn.bootstrapTable.Constructor.EVENTS, {        'reorder-row.bs.table': 'onReorderRow'    });    var BootstrapTable = $.fn.bootstrapTable.Constructor,        _init = BootstrapTable.prototype.init,        _initSearch = BootstrapTable.prototype.initSearch;    BootstrapTable.prototype.init = function () {        if (!this.options.reorderableRows) {            _init.apply(this, Array.prototype.slice.apply(arguments));            return;        }        var that = this;        if (this.options.useRowAttrFunc) {            this.options.rowAttributes = rowAttr;        }        var onPostBody = this.options.onPostBody;        this.options.onPostBody = function () {            setTimeout(function () {                that.makeRowsReorderable();                onPostBody.apply();            }, 1);        };        _init.apply(this, Array.prototype.slice.apply(arguments));    };    BootstrapTable.prototype.initSearch = function () {        _initSearch.apply(this, Array.prototype.slice.apply(arguments));        if (!this.options.reorderableRows) {            return;        }        //Known issue after search if you reorder the rows the data is not display properly        //isSearch = true;    };    BootstrapTable.prototype.makeRowsReorderable = function () {        if (this.options.cardView) {            return;        }        var that = this;        this.$el.tableDnD({            onDragStyle: that.options.onDragStyle,            onDropStyle: that.options.onDropStyle,            onDragClass: that.options.onDragClass,            onDrop: that.onDrop,            onDragStart: that.options.onReorderRowsDrag,            dragHandle: that.options.dragHandle        });    };    BootstrapTable.prototype.onDrop = function (table, droppedRow) {        var tableBs = $(table),            tableBsData = tableBs.data('bootstrap.table'),            tableBsOptions = tableBs.data('bootstrap.table').options,            row = null,            newData = [];        for (var i = 0; i < table.tBodies[0].rows.length; i++) {            row = $(table.tBodies[0].rows[i]);            newData.push(tableBsOptions.data[row.data('index')]);            row.data('index', i).attr('data-index', i);        }        tableBsOptions.data = tableBsOptions.data.slice(0, tableBsData.pageFrom - 1)            .concat(newData)            .concat(tableBsOptions.data.slice(tableBsData.pageTo));        //Call the user defined function        tableBsOptions.onReorderRowsDrop.apply(table, [table, droppedRow]);        //Call the event reorder-row        tableBsData.trigger('reorder-row', newData);    };})(jQuery);
 |