| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /**
- * @author: Dennis Hernández
- * @webSite: http://djhvscf.github.io/Blog
- * @version: v1.0.1
- */
- 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
- var _init = BootstrapTable.prototype.init
- var _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)
- var tableBsData = tableBs.data('bootstrap.table')
- var tableBsOptions = tableBs.data('bootstrap.table').options
- var row = null
- var 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)
- }
|