|
@@ -8,30 +8,64 @@
|
|
|
|
|
|
|
|
'use strict';
|
|
'use strict';
|
|
|
|
|
|
|
|
- // disable text selection
|
|
|
|
|
document.onselectstart = function() {
|
|
document.onselectstart = function() {
|
|
|
return false;
|
|
return false;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ var getTableObjectFromCurrentTarget = function (currentTarget) {
|
|
|
|
|
+ currentTarget = $(currentTarget);
|
|
|
|
|
+ return currentTarget.is("table") ? currentTarget : currentTarget.parents().find(".table");
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ var getRow = function (target) {
|
|
|
|
|
+ target = $(target);
|
|
|
|
|
+ return target.parent().parent();
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ var onRowClick = function (e) {
|
|
|
|
|
+ var that = getTableObjectFromCurrentTarget(e.currentTarget);
|
|
|
|
|
+
|
|
|
|
|
+ if (window.event.ctrlKey) {
|
|
|
|
|
+ toggleRow(e.currentTarget, that, false, false);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (window.event.button === 0) {
|
|
|
|
|
+ if (!window.event.ctrlKey && !window.event.shiftKey) {
|
|
|
|
|
+ clearAll(that);
|
|
|
|
|
+ toggleRow(e.currentTarget, that, false, false);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (window.event.shiftKey) {
|
|
|
|
|
+ selectRowsBetweenIndexes([that.bootstrapTable("getOptions").multipleSelectRowLastSelectedRow.rowIndex, e.currentTarget.rowIndex], that)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ var onCheckboxChange = function (e) {
|
|
|
|
|
+ var that = getTableObjectFromCurrentTarget(e.currentTarget);
|
|
|
|
|
+ clearAll(that);
|
|
|
|
|
+ toggleRow(getRow(e.currentTarget), that, false, false);
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
var toggleRow = function (row, that, clearAll, useShift) {
|
|
var toggleRow = function (row, that, clearAll, useShift) {
|
|
|
if (clearAll) {
|
|
if (clearAll) {
|
|
|
row = $(row);
|
|
row = $(row);
|
|
|
- that.options.multipleSelectRowLastSelectedRow = undefined;
|
|
|
|
|
- row.removeClass(that.options.multipleSelectRowCssClass);
|
|
|
|
|
- that.uncheck(row.data("index"));
|
|
|
|
|
|
|
+ that.bootstrapTable("getOptions").multipleSelectRowLastSelectedRow = undefined;
|
|
|
|
|
+ row.removeClass(that.bootstrapTable("getOptions").multipleSelectRowCssClass);
|
|
|
|
|
+ that.bootstrapTable("uncheck", row.data("index"));
|
|
|
} else {
|
|
} else {
|
|
|
- that.options.multipleSelectRowLastSelectedRow = row;
|
|
|
|
|
|
|
+ that.bootstrapTable("getOptions").multipleSelectRowLastSelectedRow = row;
|
|
|
row = $(row);
|
|
row = $(row);
|
|
|
if (useShift) {
|
|
if (useShift) {
|
|
|
- row.addClass(that.options.multipleSelectRowCssClass);
|
|
|
|
|
- that.check(row.data("index"));
|
|
|
|
|
|
|
+ row.addClass(that.bootstrapTable("getOptions").multipleSelectRowCssClass);
|
|
|
|
|
+ that.bootstrapTable("check", row.data("index"));
|
|
|
} else {
|
|
} else {
|
|
|
- if(row.hasClass(that.options.multipleSelectRowCssClass)) {
|
|
|
|
|
- row.removeClass(that.options.multipleSelectRowCssClass)
|
|
|
|
|
- that.uncheck(row.data("index"));
|
|
|
|
|
|
|
+ if(row.hasClass(that.bootstrapTable("getOptions").multipleSelectRowCssClass)) {
|
|
|
|
|
+ row.removeClass(that.bootstrapTable("getOptions").multipleSelectRowCssClass)
|
|
|
|
|
+ that.bootstrapTable("uncheck", row.data("index"));
|
|
|
} else {
|
|
} else {
|
|
|
- row.addClass(that.options.multipleSelectRowCssClass);
|
|
|
|
|
- that.check(row.data("index"));
|
|
|
|
|
|
|
+ row.addClass(that.bootstrapTable("getOptions").multipleSelectRowCssClass);
|
|
|
|
|
+ that.bootstrapTable("check", row.data("index"));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -43,13 +77,13 @@
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
for (var i = indexes[0]; i <= indexes[1]; i++) {
|
|
for (var i = indexes[0]; i <= indexes[1]; i++) {
|
|
|
- toggleRow(that.options.multipleSelectRowRows[i-1], that, false, true);
|
|
|
|
|
|
|
+ toggleRow(that.bootstrapTable("getOptions").multipleSelectRowRows[i-1], that, false, true);
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
var clearAll = function (that) {
|
|
var clearAll = function (that) {
|
|
|
- for (var i = 0; i < that.options.multipleSelectRowRows.length; i++) {
|
|
|
|
|
- toggleRow(that.options.multipleSelectRowRows[i], that, true, false);
|
|
|
|
|
|
|
+ for (var i = 0; i < that.bootstrapTable("getOptions").multipleSelectRowRows.length; i++) {
|
|
|
|
|
+ toggleRow(that.bootstrapTable("getOptions").multipleSelectRowRows[i], that, true, false);
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -72,30 +106,14 @@
|
|
|
//Make sure that the internal variables have the correct value
|
|
//Make sure that the internal variables have the correct value
|
|
|
this.options.multipleSelectRowLastSelectedRow = undefined;
|
|
this.options.multipleSelectRowLastSelectedRow = undefined;
|
|
|
this.options.multipleSelectRowRows = [];
|
|
this.options.multipleSelectRowRows = [];
|
|
|
-
|
|
|
|
|
- var onPostBody = this.options.onPostBody;
|
|
|
|
|
- this.options.onPostBody = function () {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ this.$el.on("post-body.bs.table", function (e) {
|
|
|
setTimeout(function () {
|
|
setTimeout(function () {
|
|
|
that.options.multipleSelectRowRows = that.$body.children();
|
|
that.options.multipleSelectRowRows = that.$body.children();
|
|
|
- that.options.multipleSelectRowRows.mousedown(function (e) {
|
|
|
|
|
- if (window.event.ctrlKey) {
|
|
|
|
|
- toggleRow(e.currentTarget, that, false, false);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (window.event.button === 0) {
|
|
|
|
|
- if (!window.event.ctrlKey && !window.event.shiftKey) {
|
|
|
|
|
- clearAll(that);
|
|
|
|
|
- toggleRow(e.currentTarget, that, false, false);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (window.event.shiftKey) {
|
|
|
|
|
- selectRowsBetweenIndexes([that.options.multipleSelectRowLastSelectedRow.rowIndex, e.currentTarget.rowIndex], that)
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- onPostBody.apply();
|
|
|
|
|
|
|
+ that.options.multipleSelectRowRows.click(onRowClick);
|
|
|
|
|
+ that.options.multipleSelectRowRows.find("input[type=checkbox]").change(onCheckboxChange);
|
|
|
}, 1);
|
|
}, 1);
|
|
|
- };
|
|
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
_init.apply(this, Array.prototype.slice.apply(arguments));
|
|
_init.apply(this, Array.prototype.slice.apply(arguments));
|