Commit 06d94a95 authored by yinxr's avatar yinxr
Browse files

Merge branch '4.7.0' of https://gitee.com/mingSoft/MCMS into 4.7.0

# Conflicts:
#	src/main/webapp/WEB-INF/manager/include/head-file.ftl
parents 6e454be2 f5aa9b5d
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!function(){"undefined"!=typeof angular&&angular.module("bsTable",[]).constant("uiBsTables",{bsTables:{}}).directive("bsTableControl",["uiBsTables",function(a){function b(a){var b;return $.each(g,function(c,e){return e.$el.closest(d).has(a).length?(b=e,!0):void 0}),b}function c(){var a=this,b=a.$s.bsTableControl.state;a.$s.$applyAsync(function(){b.scroll=a.$el.bootstrapTable("getScrollPosition")})}var d=".bootstrap-table",e=".fixed-table-body",f=".search input",g=a.bsTables;return $(window).resize(function(){$.each(g,function(a,b){b.$el.bootstrapTable("resetView")})}),$(document).on("post-header.bs.table",d+" table",function(a){var f=b(a.target);f&&f.$el.closest(d).find(e).on("scroll",c.bind(f))}).on("sort.bs.table",d+" table",function(a,c,d){var e=b(a.target);if(e){var f=e.$s.bsTableControl.state;e.$s.$applyAsync(function(){f.sortName=c,f.sortOrder=d})}}).on("page-change.bs.table",d+" table",function(a,c,d){var e=b(a.target);if(e){var f=e.$s.bsTableControl.state;e.$s.$applyAsync(function(){f.pageNumber=c,f.pageSize=d})}}).on("search.bs.table",d+" table",function(a,c){var d=b(a.target);if(d){var e=d.$s.bsTableControl.state;d.$s.$applyAsync(function(){e.searchText=c})}}).on("focus blur",d+" "+f,function(a){var c=b(a.target);if(c){var d=c.$s.bsTableControl.state;c.$s.$applyAsync(function(){d.searchHasFocus=$(a.target).is(":focus")})}}),{restrict:"EA",scope:{bsTableControl:"="},link:function(a,b){g[a.$id]={$s:a,$el:b};a.instantiated=!1,a.$watch("bsTableControl.options",function(c){c||(c=a.bsTableControl.options={});var e=a.bsTableControl.state||{};a.instantiated&&b.bootstrapTable("destroy"),b.bootstrapTable(angular.extend(angular.copy(c),e)),a.instantiated=!0,"scroll"in e&&b.bootstrapTable("scrollTo",e.scroll),"searchHasFocus"in e&&b.closest(d).find(f).focus()},!0),a.$watch("bsTableControl.state",function(c){c||(c=a.bsTableControl.state={}),b.trigger("directive-updated.bs.table",[c])},!0),a.$on("$destroy",function(){delete g[a.$id]})}}}])}();
\ No newline at end of file
/**
* @author: Alec Fenichel
* @webSite: https://fenichelar.com
* @version: v1.0.0
*/
(function ($) {
'use strict';
$.extend($.fn.bootstrapTable.defaults, {
autoRefresh: false,
autoRefreshInterval: 60,
autoRefreshSilent: true,
autoRefreshStatus: true,
autoRefreshFunction: null
});
$.extend($.fn.bootstrapTable.defaults.icons, {
autoRefresh: 'glyphicon-time icon-time'
});
$.extend($.fn.bootstrapTable.locales, {
formatAutoRefresh: function() {
return 'Auto Refresh';
}
});
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
var BootstrapTable = $.fn.bootstrapTable.Constructor;
var _init = BootstrapTable.prototype.init;
var _initToolbar = BootstrapTable.prototype.initToolbar;
var sprintf = $.fn.bootstrapTable.utils.sprintf;
BootstrapTable.prototype.init = function () {
_init.apply(this, Array.prototype.slice.apply(arguments));
if (this.options.autoRefresh && this.options.autoRefreshStatus) {
var that = this;
this.options.autoRefreshFunction = setInterval(function () {
that.refresh({silent: that.options.autoRefreshSilent});
}, this.options.autoRefreshInterval*1000);
}
};
BootstrapTable.prototype.initToolbar = function() {
_initToolbar.apply(this, Array.prototype.slice.apply(arguments));
if (this.options.autoRefresh) {
var $btnGroup = this.$toolbar.find('>.btn-group');
var $btnAutoRefresh = $btnGroup.find('.auto-refresh');
if (!$btnAutoRefresh.length) {
$btnAutoRefresh = $([
sprintf('<button class="btn btn-default auto-refresh %s" ', this.options.autoRefreshStatus ? 'enabled' : ''),
'type="button" ',
sprintf('title="%s">', this.options.formatAutoRefresh()),
sprintf('<i class="%s %s"></i>', this.options.iconsPrefix, this.options.icons.autoRefresh),
'</button>'
].join('')).appendTo($btnGroup);
$btnAutoRefresh.on('click', $.proxy(this.toggleAutoRefresh, this));
}
}
};
BootstrapTable.prototype.toggleAutoRefresh = function() {
if (this.options.autoRefresh) {
if (this.options.autoRefreshStatus) {
clearInterval(this.options.autoRefreshFunction);
this.$toolbar.find('>.btn-group').find('.auto-refresh').removeClass('enabled');
} else {
var that = this;
this.options.autoRefreshFunction = setInterval(function () {
that.refresh({silent: that.options.autoRefreshSilent});
}, this.options.autoRefreshInterval*1000);
this.$toolbar.find('>.btn-group').find('.auto-refresh').addClass('enabled');
}
this.options.autoRefreshStatus = !this.options.autoRefreshStatus;
}
};
})(jQuery);
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{autoRefresh:!1,autoRefreshInterval:60,autoRefreshSilent:!0,autoRefreshStatus:!0,autoRefreshFunction:null}),a.extend(a.fn.bootstrapTable.defaults.icons,{autoRefresh:"glyphicon-time icon-time"}),a.extend(a.fn.bootstrapTable.locales,{formatAutoRefresh:function(){return"Auto Refresh"}}),a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales);var b=a.fn.bootstrapTable.Constructor,c=b.prototype.init,d=b.prototype.initToolbar,e=a.fn.bootstrapTable.utils.sprintf;b.prototype.init=function(){if(c.apply(this,Array.prototype.slice.apply(arguments)),this.options.autoRefresh&&this.options.autoRefreshStatus){var a=this;this.options.autoRefreshFunction=setInterval(function(){a.refresh({silent:a.options.autoRefreshSilent})},1e3*this.options.autoRefreshInterval)}},b.prototype.initToolbar=function(){if(d.apply(this,Array.prototype.slice.apply(arguments)),this.options.autoRefresh){var b=this.$toolbar.find(">.btn-group"),c=b.find(".auto-refresh");c.length||(c=a([e('<button class="btn btn-default auto-refresh %s" ',this.options.autoRefreshStatus?"enabled":""),'type="button" ',e('title="%s">',this.options.formatAutoRefresh()),e('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.autoRefresh),"</button>"].join("")).appendTo(b),c.on("click",a.proxy(this.toggleAutoRefresh,this)))}},b.prototype.toggleAutoRefresh=function(){if(this.options.autoRefresh){if(this.options.autoRefreshStatus)clearInterval(this.options.autoRefreshFunction),this.$toolbar.find(">.btn-group").find(".auto-refresh").removeClass("enabled");else{var a=this;this.options.autoRefreshFunction=setInterval(function(){a.refresh({silent:a.options.autoRefreshSilent})},1e3*this.options.autoRefreshInterval),this.$toolbar.find(">.btn-group").find(".auto-refresh").addClass("enabled")}this.options.autoRefreshStatus=!this.options.autoRefreshStatus}}}(jQuery);
\ No newline at end of file
#tooling{
float: right;
}
.clear{
display: block;
width: 13px;
height: 13px;
position: absolute;
opacity: 0.6;
z-index: 100;
top: 50%;
right: 26px;
margin-top: -10px;
cursor: pointer;
}
.clear > i{
font-size: 1.5em;
}
.clear > i:hover{
color: hsl(0, 0%, 75%);
}
\ No newline at end of file
/**
* @author horken wong <horken.wong@gmail.com>
* @version: v1.0.0
* https://github.com/horkenw/bootstrap-table
* Click to edit row for bootstrap-table
*/
(function ($) {
'use strict';
$.extend($.fn.bootstrapTable.defaults, {
clickEdit: false
});
function setDivision(node, options){
var $option = $('<option />');
if(options){
$(options).each(function(i, v){
$option.clone().text(v.idxNum + ' ' +v.name).val(v.idxNum).appendTo(node);
})
}
else{
console.log('Please setup options first!!')
}
}
function clikcToEdit(evt, tarNode){
var txt = [], table = evt,
submit = '<button type="button" class="btn btn-primary btn-sm editable-submit"><i class="glyphicon glyphicon-ok"></i></button>',
cancel = '<button type="button" class="btn btn-default btn-sm editable-cancel"><i class="glyphicon glyphicon-remove"></i></button>';
var replaceData = function(){
txt = [];
tarNode.find('td').find('input[type="text"]').each(function(i, td){
txt.push($(td).eq(0).val());
});
tarNode.find('select').each(function(i, td){
txt.push($('#'+td.id+' option:selected').val());
});
$('#table').bootstrapTable('updateRow', {
index: table.$data.thId,
row: {
noOld: txt[0],
area: tarNode.find('select').eq(0).children(':selected').text(),
town: tarNode.find('select').eq(1).children(':selected').text(),
address: txt[1]
}
});
$('#tooling').remove();
table.editing = true;
// updateToServerSide(table.$data.itemid, txt);
return false;
};
var recoveryData = function(){
$('#table').bootstrapTable('updateRow', {
index: table.$data.thId,
row: {},
});
$('#tooling').remove();
table.editing = true;
return false;
};
if(table.editing){
var rootid = 0;
table.editing = false;
table.columns.forEach(function(column, i){
if (!column.editable) return;
switch(column.editable){
case 'input':
var div=$('<div class="editable-input col-md-12 col-sm-12 col-xs-12" style="position: relative;"/>');
txt.push(tarNode.find('td').eq(column.fieldIndex).text());
div.append($('<input type="text" class="form-control input-sm"/>'));
div.append($('<span class="clear"><i class="fa fa-times-circle-o" aria-hidden="true"></i></span>'));
tarNode.find('td').eq(column.fieldIndex).text('').append(div);
break;
case 'select':
var select=$('<select id="'+column.field+'">'), options = $.selectArray[column.field];
tarNode.find('td').eq(column.fieldIndex).text('').append(select);
setDivision($('#'+column.field), options);
break;
case 'textarea':
break;
default:
console.log(column.fieldIndex+' '+column.editable);
}
}, evt);
for(var i=0, l=txt.length; i<l; i++){
tarNode.find('input[type="text"]').eq(i).val(txt[i]);
}
tarNode.find('td').last().append('<div id="tooling" class="editable-buttons"/>');
$('.clear').on('click', function(){ $(this).parent().find('input').val('');});
$(submit).on('click', replaceData).appendTo('#tooling');
$(cancel).on('click', recoveryData).appendTo('#tooling');
}
}
function updateToServerSide(item, data){
var itemid = $(item).find('a').attr('href').match(/\d+/g)[0];
var datas = {'treeId': itemid, 'oldTreeSerialNo': data[0], 'adminDivision': data[2], 'adminUnit': data[3], 'treeAddr': data[1]}; //傳送至伺服器端的Data產生處,需手動修改對應表格
store( 'data/update', datas)
}
var BootstrapTable = $.fn.bootstrapTable.Constructor,
_initTable = BootstrapTable.prototype.initTable,
_initBody = BootstrapTable.prototype.initBody;
BootstrapTable.prototype.initTable = function(){
var that = this;
this.$data = {};
_initTable.apply(this, Array.prototype.slice.apply(arguments));
if (!this.options.clickEdit) {
return;
}
};
BootstrapTable.prototype.initBody = function () {
var that = this;
_initBody.apply(this, Array.prototype.slice.apply(arguments));
if (!this.options.clickEdit) {
return;
}
var table = this.$tableBody.find('table');
that.editing=true;
table.on('click-row.bs.table', function (e, row, $element, field) {
if(field ==='no') return; //|| field ==='noOld'
this.$data.thId = $element.data().index;
this.$data.itemid = $element.data().uniqueid;
this.$data.divi = parseInt(row.area);
this.$data.town=parseInt(row.town);
clikcToEdit(this, $element);
}.bind(this));
};
})(jQuery);
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!function(a){"use strict";function b(b,c){var d=a("<option />");c?a(c).each(function(a,c){d.clone().text(c.idxNum+" "+c.name).val(c.idxNum).appendTo(b)}):console.log("Please setup options first!!")}function c(c,d){var e=[],f=c,g='<button type="button" class="btn btn-primary btn-sm editable-submit"><i class="glyphicon glyphicon-ok"></i></button>',h='<button type="button" class="btn btn-default btn-sm editable-cancel"><i class="glyphicon glyphicon-remove"></i></button>',i=function(){return e=[],d.find("td").find('input[type="text"]').each(function(b,c){e.push(a(c).eq(0).val())}),d.find("select").each(function(b,c){e.push(a("#"+c.id+" option:selected").val())}),a("#table").bootstrapTable("updateRow",{index:f.$data.thId,row:{noOld:e[0],area:d.find("select").eq(0).children(":selected").text(),town:d.find("select").eq(1).children(":selected").text(),address:e[1]}}),a("#tooling").remove(),f.editing=!0,!1},j=function(){return a("#table").bootstrapTable("updateRow",{index:f.$data.thId,row:{}}),a("#tooling").remove(),f.editing=!0,!1};if(f.editing){f.editing=!1,f.columns.forEach(function(c){if(c.editable)switch(c.editable){case"input":var f=a('<div class="editable-input col-md-12 col-sm-12 col-xs-12" style="position: relative;"/>');e.push(d.find("td").eq(c.fieldIndex).text()),f.append(a('<input type="text" class="form-control input-sm"/>')),f.append(a('<span class="clear"><i class="fa fa-times-circle-o" aria-hidden="true"></i></span>')),d.find("td").eq(c.fieldIndex).text("").append(f);break;case"select":var g=a('<select id="'+c.field+'">'),h=a.selectArray[c.field];d.find("td").eq(c.fieldIndex).text("").append(g),b(a("#"+c.field),h);break;case"textarea":break;default:console.log(c.fieldIndex+" "+c.editable)}},c);for(var k=0,l=e.length;l>k;k++)d.find('input[type="text"]').eq(k).val(e[k]);d.find("td").last().append('<div id="tooling" class="editable-buttons"/>'),a(".clear").on("click",function(){a(this).parent().find("input").val("")}),a(g).on("click",i).appendTo("#tooling"),a(h).on("click",j).appendTo("#tooling")}}a.extend(a.fn.bootstrapTable.defaults,{clickEdit:!1});var d=a.fn.bootstrapTable.Constructor,e=d.prototype.initTable,f=d.prototype.initBody;d.prototype.initTable=function(){this.$data={},e.apply(this,Array.prototype.slice.apply(arguments)),!this.options.clickEdit},d.prototype.initBody=function(){var a=this;if(f.apply(this,Array.prototype.slice.apply(arguments)),this.options.clickEdit){var b=this.$tableBody.find("table");a.editing=!0,b.on("click-row.bs.table",function(a,b,d,e){"no"!==e&&(this.$data.thId=d.data().index,this.$data.itemid=d.data().uniqueid,this.$data.divi=parseInt(b.area),this.$data.town=parseInt(b.town),c(this,d))}.bind(this))}}}(jQuery);
\ No newline at end of file
/**
* @author: Dennis Hernández
* @webSite: http://djhvscf.github.io/Blog
* @version: v1.2.2
*
* @update zhixin wen <wenzhixin2010@gmail.com>
*/
(function ($) {
'use strict';
var cookieIds = {
sortOrder: 'bs.table.sortOrder',
sortName: 'bs.table.sortName',
pageNumber: 'bs.table.pageNumber',
pageList: 'bs.table.pageList',
columns: 'bs.table.columns',
searchText: 'bs.table.searchText',
filterControl: 'bs.table.filterControl'
};
var getCurrentHeader = function (that) {
var header = that.$header;
if (that.options.height) {
header = that.$tableHeader;
}
return header;
};
var getCurrentSearchControls = function (that) {
var searchControls = 'select, input';
if (that.options.height) {
searchControls = 'table select, table input';
}
return searchControls;
};
var cookieEnabled = function () {
return !!(navigator.cookieEnabled);
};
var inArrayCookiesEnabled = function (cookieName, cookiesEnabled) {
var index = -1;
for (var i = 0; i < cookiesEnabled.length; i++) {
if (cookieName.toLowerCase() === cookiesEnabled[i].toLowerCase()) {
index = i;
break;
}
}
return index;
};
var setCookie = function (that, cookieName, cookieValue) {
if ((!that.options.cookie) || (!cookieEnabled()) || (that.options.cookieIdTable === '')) {
return;
}
if (inArrayCookiesEnabled(cookieName, that.options.cookiesEnabled) === -1) {
return;
}
cookieName = that.options.cookieIdTable + '.' + cookieName;
switch(that.options.cookieStorage) {
case 'cookieStorage':
document.cookie = [
cookieName, '=', cookieValue,
'; expires=' + that.options.cookieExpire,
that.options.cookiePath ? '; path=' + that.options.cookiePath : '',
that.options.cookieDomain ? '; domain=' + that.options.cookieDomain : '',
that.options.cookieSecure ? '; secure' : ''
].join('');
break;
case 'localStorage':
localStorage.setItem(cookieName, cookieValue);
break;
case 'sessionStorage':
sessionStorage.setItem(cookieName, cookieValue);
break;
default:
return false;
}
return true;
};
var getCookie = function (that, tableName, cookieName) {
if (!cookieName) {
return null;
}
if (inArrayCookiesEnabled(cookieName, that.options.cookiesEnabled) === -1) {
return null;
}
cookieName = tableName + '.' + cookieName;
switch(that.options.cookieStorage) {
case 'cookieStorage':
return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + encodeURIComponent(cookieName).replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1')) || null;
case 'localStorage':
return localStorage.getItem(cookieName);
case 'sessionStorage':
return sessionStorage.getItem(cookieName);
default:
return null;
}
};
var deleteCookie = function (that, tableName, cookieName) {
cookieName = tableName + '.' + cookieName;
switch(that.options.cookieStorage) {
case 'cookieStorage':
document.cookie = [
encodeURIComponent(cookieName), '=',
'; expires=Thu, 01 Jan 1970 00:00:00 GMT',
that.options.cookiePath ? '; path=' + that.options.cookiePath : '',
that.options.cookieDomain ? '; domain=' + that.options.cookieDomain : '',
].join('');
break;
case 'localStorage':
localStorage.removeItem(cookieName);
break;
case 'sessionStorage':
sessionStorage.removeItem(cookieName);
break;
}
return true;
};
var calculateExpiration = function(cookieExpire) {
var time = cookieExpire.replace(/[0-9]*/, ''); //s,mi,h,d,m,y
cookieExpire = cookieExpire.replace(/[A-Za-z]{1,2}}/, ''); //number
switch (time.toLowerCase()) {
case 's':
cookieExpire = +cookieExpire;
break;
case 'mi':
cookieExpire = cookieExpire * 60;
break;
case 'h':
cookieExpire = cookieExpire * 60 * 60;
break;
case 'd':
cookieExpire = cookieExpire * 24 * 60 * 60;
break;
case 'm':
cookieExpire = cookieExpire * 30 * 24 * 60 * 60;
break;
case 'y':
cookieExpire = cookieExpire * 365 * 24 * 60 * 60;
break;
default:
cookieExpire = undefined;
break;
}
return cookieExpire === undefined ? '' : '; max-age=' + cookieExpire;
};
var initCookieFilters = function (bootstrapTable) {
setTimeout(function () {
var parsedCookieFilters = JSON.parse(getCookie(bootstrapTable, bootstrapTable.options.cookieIdTable, cookieIds.filterControl));
if (!bootstrapTable.options.filterControlValuesLoaded && parsedCookieFilters) {
bootstrapTable.options.filterControlValuesLoaded = true;
var cachedFilters = {},
header = getCurrentHeader(bootstrapTable),
searchControls = getCurrentSearchControls(bootstrapTable),
applyCookieFilters = function (element, filteredCookies) {
$(filteredCookies).each(function (i, cookie) {
$(element).val(cookie.text);
cachedFilters[cookie.field] = cookie.text;
});
};
header.find(searchControls).each(function () {
var field = $(this).closest('[data-field]').data('field'),
filteredCookies = $.grep(parsedCookieFilters, function (cookie) {
return cookie.field === field;
});
applyCookieFilters(this, filteredCookies);
});
bootstrapTable.initColumnSearch(cachedFilters);
}
}, 250);
};
$.extend($.fn.bootstrapTable.defaults, {
cookie: false,
cookieExpire: '2h',
cookiePath: null,
cookieDomain: null,
cookieSecure: null,
cookieIdTable: '',
cookiesEnabled: [
'bs.table.sortOrder', 'bs.table.sortName',
'bs.table.pageNumber', 'bs.table.pageList',
'bs.table.columns', 'bs.table.searchText',
'bs.table.filterControl'
],
cookieStorage: 'cookieStorage', //localStorage, sessionStorage
//internal variable
filterControls: [],
filterControlValuesLoaded: false
});
$.fn.bootstrapTable.methods.push('getCookies');
$.fn.bootstrapTable.methods.push('deleteCookie');
$.extend($.fn.bootstrapTable.utils, {
setCookie: setCookie,
getCookie: getCookie
});
var BootstrapTable = $.fn.bootstrapTable.Constructor,
_init = BootstrapTable.prototype.init,
_initTable = BootstrapTable.prototype.initTable,
_initServer = BootstrapTable.prototype.initServer,
_onSort = BootstrapTable.prototype.onSort,
_onPageNumber = BootstrapTable.prototype.onPageNumber,
_onPageListChange = BootstrapTable.prototype.onPageListChange,
_onPageFirst = BootstrapTable.prototype.onPageFirst,
_onPagePre = BootstrapTable.prototype.onPagePre,
_onPageNext = BootstrapTable.prototype.onPageNext,
_onPageLast = BootstrapTable.prototype.onPageLast,
_toggleColumn = BootstrapTable.prototype.toggleColumn,
_selectPage = BootstrapTable.prototype.selectPage,
_onSearch = BootstrapTable.prototype.onSearch;
BootstrapTable.prototype.init = function () {
var timeoutId = 0;
this.options.filterControls = [];
this.options.filterControlValuesLoaded = false;
this.options.cookiesEnabled = typeof this.options.cookiesEnabled === 'string' ?
this.options.cookiesEnabled.replace('[', '').replace(']', '')
.replace(/ /g, '').toLowerCase().split(',') :
this.options.cookiesEnabled;
if (this.options.filterControl) {
var that = this;
this.$el.on('column-search.bs.table', function (e, field, text) {
var isNewField = true;
for (var i = 0; i < that.options.filterControls.length; i++) {
if (that.options.filterControls[i].field === field) {
that.options.filterControls[i].text = text;
isNewField = false;
break;
}
}
if (isNewField) {
that.options.filterControls.push({
field: field,
text: text
});
}
setCookie(that, cookieIds.filterControl, JSON.stringify(that.options.filterControls));
}).on('post-body.bs.table', initCookieFilters(that));
}
_init.apply(this, Array.prototype.slice.apply(arguments));
};
BootstrapTable.prototype.initServer = function () {
var bootstrapTable = this,
selectsWithoutDefaults = [],
columnHasSelectControl = function (column) {
return column.filterControl && column.filterControl === 'select';
},
columnHasDefaultSelectValues = function (column) {
return column.filterData && column.filterData !== 'column';
},
cookiesPresent = function() {
var cookie = JSON.parse(getCookie(bootstrapTable, bootstrapTable.options.cookieIdTable, cookieIds.filterControl));
return bootstrapTable.options.cookie && cookie;
};
selectsWithoutDefaults = $.grep(bootstrapTable.columns, function(column) {
return columnHasSelectControl(column) && !columnHasDefaultSelectValues(column);
});
// reset variable to original initServer function, so that future calls to initServer
// use the original function from this point on.
BootstrapTable.prototype.initServer = _initServer;
// early return if we don't need to populate any select values with cookie values
if (this.options.filterControl && cookiesPresent() && selectsWithoutDefaults.length === 0) {
return;
}
// call BootstrapTable.prototype.initServer
_initServer.apply(this, Array.prototype.slice.apply(arguments));
};
BootstrapTable.prototype.initTable = function () {
_initTable.apply(this, Array.prototype.slice.apply(arguments));
this.initCookie();
};
BootstrapTable.prototype.initCookie = function () {
if (!this.options.cookie) {
return;
}
if ((this.options.cookieIdTable === '') || (this.options.cookieExpire === '') || (!cookieEnabled())) {
throw new Error("Configuration error. Please review the cookieIdTable, cookieExpire properties, if those properties are ok, then this browser does not support the cookies");
}
var sortOrderCookie = getCookie(this, this.options.cookieIdTable, cookieIds.sortOrder),
sortOrderNameCookie = getCookie(this, this.options.cookieIdTable, cookieIds.sortName),
pageNumberCookie = getCookie(this, this.options.cookieIdTable, cookieIds.pageNumber),
pageListCookie = getCookie(this, this.options.cookieIdTable, cookieIds.pageList),
columnsCookie = JSON.parse(getCookie(this, this.options.cookieIdTable, cookieIds.columns)),
searchTextCookie = getCookie(this, this.options.cookieIdTable, cookieIds.searchText);
//sortOrder
this.options.sortOrder = sortOrderCookie ? sortOrderCookie : this.options.sortOrder;
//sortName
this.options.sortName = sortOrderNameCookie ? sortOrderNameCookie : this.options.sortName;
//pageNumber
this.options.pageNumber = pageNumberCookie ? +pageNumberCookie : this.options.pageNumber;
//pageSize
this.options.pageSize = pageListCookie ? pageListCookie === this.options.formatAllRows() ? pageListCookie : +pageListCookie : this.options.pageSize;
//searchText
this.options.searchText = searchTextCookie ? searchTextCookie : '';
if (columnsCookie) {
$.each(this.columns, function (i, column) {
column.visible = $.inArray(column.field, columnsCookie) !== -1;
});
}
};
BootstrapTable.prototype.onSort = function () {
_onSort.apply(this, Array.prototype.slice.apply(arguments));
setCookie(this, cookieIds.sortOrder, this.options.sortOrder);
setCookie(this, cookieIds.sortName, this.options.sortName);
};
BootstrapTable.prototype.onPageNumber = function () {
_onPageNumber.apply(this, Array.prototype.slice.apply(arguments));
setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
};
BootstrapTable.prototype.onPageListChange = function () {
_onPageListChange.apply(this, Array.prototype.slice.apply(arguments));
setCookie(this, cookieIds.pageList, this.options.pageSize);
};
BootstrapTable.prototype.onPageFirst = function () {
_onPageFirst.apply(this, Array.prototype.slice.apply(arguments));
setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
};
BootstrapTable.prototype.onPagePre = function () {
_onPagePre.apply(this, Array.prototype.slice.apply(arguments));
setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
};
BootstrapTable.prototype.onPageNext = function () {
_onPageNext.apply(this, Array.prototype.slice.apply(arguments));
setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
};
BootstrapTable.prototype.onPageLast = function () {
_onPageLast.apply(this, Array.prototype.slice.apply(arguments));
setCookie(this, cookieIds.pageNumber, this.options.pageNumber);
};
BootstrapTable.prototype.toggleColumn = function () {
_toggleColumn.apply(this, Array.prototype.slice.apply(arguments));
var visibleColumns = [];
$.each(this.columns, function (i, column) {
if (column.visible) {
visibleColumns.push(column.field);
}
});
setCookie(this, cookieIds.columns, JSON.stringify(visibleColumns));
};
BootstrapTable.prototype.selectPage = function (page) {
_selectPage.apply(this, Array.prototype.slice.apply(arguments));
setCookie(this, cookieIds.pageNumber, page);
};
BootstrapTable.prototype.onSearch = function () {
var target = Array.prototype.slice.apply(arguments);
_onSearch.apply(this, target);
if ($(target[0].currentTarget).parent().hasClass('search')) {
setCookie(this, cookieIds.searchText, this.searchText);
}
};
BootstrapTable.prototype.getCookies = function () {
var bootstrapTable = this;
var cookies = {};
$.each(cookieIds, function(key, value) {
cookies[key] = getCookie(bootstrapTable, bootstrapTable.options.cookieIdTable, value);
if (key === 'columns') {
cookies[key] = JSON.parse(cookies[key]);
}
});
return cookies;
};
BootstrapTable.prototype.deleteCookie = function (cookieName) {
if ((cookieName === '') || (!cookieEnabled())) {
return;
}
deleteCookie(this, this.options.cookieIdTable, cookieIds[cookieName]);
};
})(jQuery);
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!function(a){"use strict";var b={sortOrder:"bs.table.sortOrder",sortName:"bs.table.sortName",pageNumber:"bs.table.pageNumber",pageList:"bs.table.pageList",columns:"bs.table.columns",searchText:"bs.table.searchText",filterControl:"bs.table.filterControl"},c=function(a){var b=a.$header;return a.options.height&&(b=a.$tableHeader),b},d=function(a){var b="select, input";return a.options.height&&(b="table select, table input"),b},e=function(){return!!navigator.cookieEnabled},f=function(a,b){for(var c=-1,d=0;d<b.length;d++)if(a.toLowerCase()===b[d].toLowerCase()){c=d;break}return c},g=function(a,b,c){if(a.options.cookie&&e()&&""!==a.options.cookieIdTable&&-1!==f(b,a.options.cookiesEnabled)){switch(b=a.options.cookieIdTable+"."+b,a.options.cookieStorage){case"cookieStorage":document.cookie=[b,"=",c,"; expires="+a.options.cookieExpire,a.options.cookiePath?"; path="+a.options.cookiePath:"",a.options.cookieDomain?"; domain="+a.options.cookieDomain:"",a.options.cookieSecure?"; secure":""].join("");break;case"localStorage":localStorage.setItem(b,c);break;case"sessionStorage":sessionStorage.setItem(b,c);break;default:return!1}return!0}},h=function(a,b,c){if(!c)return null;if(-1===f(c,a.options.cookiesEnabled))return null;switch(c=b+"."+c,a.options.cookieStorage){case"cookieStorage":return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(c).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null;case"localStorage":return localStorage.getItem(c);case"sessionStorage":return sessionStorage.getItem(c);default:return null}},i=function(a,b,c){switch(c=b+"."+c,a.options.cookieStorage){case"cookieStorage":document.cookie=[encodeURIComponent(c),"=","; expires=Thu, 01 Jan 1970 00:00:00 GMT",a.options.cookiePath?"; path="+a.options.cookiePath:"",a.options.cookieDomain?"; domain="+a.options.cookieDomain:""].join("");break;case"localStorage":localStorage.removeItem(c);break;case"sessionStorage":sessionStorage.removeItem(c)}return!0},j=function(e){setTimeout(function(){var f=JSON.parse(h(e,e.options.cookieIdTable,b.filterControl));if(!e.options.filterControlValuesLoaded&&f){e.options.filterControlValuesLoaded=!0;var g={},i=c(e),j=d(e),k=function(b,c){a(c).each(function(c,d){a(b).val(d.text),g[d.field]=d.text})};i.find(j).each(function(){var b=a(this).closest("[data-field]").data("field"),c=a.grep(f,function(a){return a.field===b});k(this,c)}),e.initColumnSearch(g)}},250)};a.extend(a.fn.bootstrapTable.defaults,{cookie:!1,cookieExpire:"2h",cookiePath:null,cookieDomain:null,cookieSecure:null,cookieIdTable:"",cookiesEnabled:["bs.table.sortOrder","bs.table.sortName","bs.table.pageNumber","bs.table.pageList","bs.table.columns","bs.table.searchText","bs.table.filterControl"],cookieStorage:"cookieStorage",filterControls:[],filterControlValuesLoaded:!1}),a.fn.bootstrapTable.methods.push("getCookies"),a.fn.bootstrapTable.methods.push("deleteCookie"),a.extend(a.fn.bootstrapTable.utils,{setCookie:g,getCookie:h});var k=a.fn.bootstrapTable.Constructor,l=k.prototype.init,m=k.prototype.initTable,n=k.prototype.initServer,o=k.prototype.onSort,p=k.prototype.onPageNumber,q=k.prototype.onPageListChange,r=k.prototype.onPageFirst,s=k.prototype.onPagePre,t=k.prototype.onPageNext,u=k.prototype.onPageLast,v=k.prototype.toggleColumn,w=k.prototype.selectPage,x=k.prototype.onSearch;k.prototype.init=function(){if(this.options.filterControls=[],this.options.filterControlValuesLoaded=!1,this.options.cookiesEnabled="string"==typeof this.options.cookiesEnabled?this.options.cookiesEnabled.replace("[","").replace("]","").replace(/ /g,"").toLowerCase().split(","):this.options.cookiesEnabled,this.options.filterControl){var a=this;this.$el.on("column-search.bs.table",function(c,d,e){for(var f=!0,h=0;h<a.options.filterControls.length;h++)if(a.options.filterControls[h].field===d){a.options.filterControls[h].text=e,f=!1;break}f&&a.options.filterControls.push({field:d,text:e}),g(a,b.filterControl,JSON.stringify(a.options.filterControls))}).on("post-body.bs.table",j(a))}l.apply(this,Array.prototype.slice.apply(arguments))},k.prototype.initServer=function(){var c=this,d=[],e=function(a){return a.filterControl&&"select"===a.filterControl},f=function(a){return a.filterData&&"column"!==a.filterData},g=function(){var a=JSON.parse(h(c,c.options.cookieIdTable,b.filterControl));return c.options.cookie&&a};d=a.grep(c.columns,function(a){return e(a)&&!f(a)}),k.prototype.initServer=n,this.options.filterControl&&g()&&0===d.length||n.apply(this,Array.prototype.slice.apply(arguments))},k.prototype.initTable=function(){m.apply(this,Array.prototype.slice.apply(arguments)),this.initCookie()},k.prototype.initCookie=function(){if(this.options.cookie){if(""===this.options.cookieIdTable||""===this.options.cookieExpire||!e())throw new Error("Configuration error. Please review the cookieIdTable, cookieExpire properties, if those properties are ok, then this browser does not support the cookies");var c=h(this,this.options.cookieIdTable,b.sortOrder),d=h(this,this.options.cookieIdTable,b.sortName),f=h(this,this.options.cookieIdTable,b.pageNumber),g=h(this,this.options.cookieIdTable,b.pageList),i=JSON.parse(h(this,this.options.cookieIdTable,b.columns)),j=h(this,this.options.cookieIdTable,b.searchText);this.options.sortOrder=c?c:this.options.sortOrder,this.options.sortName=d?d:this.options.sortName,this.options.pageNumber=f?+f:this.options.pageNumber,this.options.pageSize=g?g===this.options.formatAllRows()?g:+g:this.options.pageSize,this.options.searchText=j?j:"",i&&a.each(this.columns,function(b,c){c.visible=-1!==a.inArray(c.field,i)})}},k.prototype.onSort=function(){o.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.sortOrder,this.options.sortOrder),g(this,b.sortName,this.options.sortName)},k.prototype.onPageNumber=function(){p.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,this.options.pageNumber)},k.prototype.onPageListChange=function(){q.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageList,this.options.pageSize)},k.prototype.onPageFirst=function(){r.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,this.options.pageNumber)},k.prototype.onPagePre=function(){s.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,this.options.pageNumber)},k.prototype.onPageNext=function(){t.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,this.options.pageNumber)},k.prototype.onPageLast=function(){u.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,this.options.pageNumber)},k.prototype.toggleColumn=function(){v.apply(this,Array.prototype.slice.apply(arguments));var c=[];a.each(this.columns,function(a,b){b.visible&&c.push(b.field)}),g(this,b.columns,JSON.stringify(c))},k.prototype.selectPage=function(a){w.apply(this,Array.prototype.slice.apply(arguments)),g(this,b.pageNumber,a)},k.prototype.onSearch=function(){var c=Array.prototype.slice.apply(arguments);x.apply(this,c),a(c[0].currentTarget).parent().hasClass("search")&&g(this,b.searchText,this.searchText)},k.prototype.getCookies=function(){var c=this,d={};return a.each(b,function(a,b){d[a]=h(c,c.options.cookieIdTable,b),"columns"===a&&(d[a]=JSON.parse(d[a]))}),d},k.prototype.deleteCookie=function(a){""!==a&&e()&&i(this,this.options.cookieIdTable,b[a])}}(jQuery);
\ No newline at end of file
/**
* @author Homer Glascock <HopGlascock@gmail.com>
* @version: v1.0.0
*/
!function ($) {
"use strict";
var calculateObjectValue = $.fn.bootstrapTable.utils.calculateObjectValue,
sprintf = $.fn.bootstrapTable.utils.sprintf;
var copytext = function (text) {
var textField = document.createElement('textarea');
$(textField).html(text);
document.body.appendChild(textField);
textField.select();
try {
document.execCommand('copy');
}
catch (e) {
console.log("Oops, unable to copy");
}
$(textField).remove();
};
$.extend($.fn.bootstrapTable.defaults, {
copyBtn: false,
copyWHiddenBtn: false,
copyDelemeter: ", "
});
$.fn.bootstrapTable.methods.push('copyColumnsToClipboard', 'copyColumnsToClipboardWithHidden');
var BootstrapTable = $.fn.bootstrapTable.Constructor,
_initToolbar = BootstrapTable.prototype.initToolbar;
BootstrapTable.prototype.initToolbar = function () {
_initToolbar.apply(this, Array.prototype.slice.apply(arguments));
var that = this,
$btnGroup = this.$toolbar.find('>.btn-group');
if (this.options.clickToSelect || this.options.singleSelect) {
if (this.options.copyBtn) {
var copybtn = "<button class='btn btn-default' id='copyBtn'><span class='glyphicon glyphicon-copy icon-pencil'></span></button>";
$btnGroup.append(copybtn);
$btnGroup.find('#copyBtn').click(function () { that.copyColumnsToClipboard(); });
}
if (this.options.copyWHiddenBtn) {
var copyhiddenbtn = "<button class='btn btn-default' id='copyWHiddenBtn'><span class='badge'><span class='glyphicon glyphicon-copy icon-pencil'></span></span></button>";
$btnGroup.append(copyhiddenbtn);
$btnGroup.find('#copyWHiddenBtn').click(function () { that.copyColumnsToClipboardWithHidden(); });
}
}
};
BootstrapTable.prototype.copyColumnsToClipboard = function () {
var that = this,
ret = "",
delimet = this.options.copyDelemeter;
$.each(that.getSelections(), function (index, row) {
$.each(that.options.columns[0], function (indy, column) {
if (column.field !== "state" && column.field !== "RowNumber" && column.visible) {
if (row[column.field] !== null) {
ret += calculateObjectValue(column, that.header.formatters[indy], [row[column.field], row, index], row[column.field]);
}
ret += delimet;
}
});
ret += "\r\n";
});
copytext(ret);
};
BootstrapTable.prototype.copyColumnsToClipboardWithHidden = function () {
var that = this,
ret = "",
delimet = this.options.copyDelemeter;
$.each(that.getSelections(), function (index, row) {
$.each(that.options.columns[0], function (indy, column) {
if (column.field != "state" && column.field !== "RowNumber") {
if (row[column.field] !== null) {
ret += calculateObjectValue(column, that.header.formatters[indy], [row[column.field], row, index], row[column.field]);
}
ret += delimet;
}
});
ret += "\r\n";
});
copytext(ret);
};
}(jQuery);
\ No newline at end of file
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!function(a){"use strict";var b=a.fn.bootstrapTable.utils.calculateObjectValue,c=(a.fn.bootstrapTable.utils.sprintf,function(b){var c=document.createElement("textarea");a(c).html(b),document.body.appendChild(c),c.select();try{document.execCommand("copy")}catch(d){console.log("Oops, unable to copy")}a(c).remove()});a.extend(a.fn.bootstrapTable.defaults,{copyBtn:!1,copyWHiddenBtn:!1,copyDelemeter:", "}),a.fn.bootstrapTable.methods.push("copyColumnsToClipboard","copyColumnsToClipboardWithHidden");var d=a.fn.bootstrapTable.Constructor,e=d.prototype.initToolbar;d.prototype.initToolbar=function(){e.apply(this,Array.prototype.slice.apply(arguments));var a=this,b=this.$toolbar.find(">.btn-group");if(this.options.clickToSelect||this.options.singleSelect){if(this.options.copyBtn){var c="<button class='btn btn-default' id='copyBtn'><span class='glyphicon glyphicon-copy icon-pencil'></span></button>";b.append(c),b.find("#copyBtn").click(function(){a.copyColumnsToClipboard()})}if(this.options.copyWHiddenBtn){var d="<button class='btn btn-default' id='copyWHiddenBtn'><span class='badge'><span class='glyphicon glyphicon-copy icon-pencil'></span></span></button>";b.append(d),b.find("#copyWHiddenBtn").click(function(){a.copyColumnsToClipboardWithHidden()})}}},d.prototype.copyColumnsToClipboard=function(){var d=this,e="",f=this.options.copyDelemeter;a.each(d.getSelections(),function(c,g){a.each(d.options.columns[0],function(a,h){"state"!==h.field&&"RowNumber"!==h.field&&h.visible&&(null!==g[h.field]&&(e+=b(h,d.header.formatters[a],[g[h.field],g,c],g[h.field])),e+=f)}),e+="\r\n"}),c(e)},d.prototype.copyColumnsToClipboardWithHidden=function(){var d=this,e="",f=this.options.copyDelemeter;a.each(d.getSelections(),function(c,g){a.each(d.options.columns[0],function(a,h){"state"!=h.field&&"RowNumber"!==h.field&&(null!==g[h.field]&&(e+=b(h,d.header.formatters[a],[g[h.field],g,c],g[h.field])),e+=f)}),e+="\r\n"}),c(e)}}(jQuery);
\ No newline at end of file
/**
* @author zhixin wen <wenzhixin2010@gmail.com>
* extensions: https://github.com/vitalets/x-editable
*/
(function($) {
'use strict';
$.extend($.fn.bootstrapTable.defaults, {
editable: true,
onEditableInit: function() {
return false;
},
onEditableSave: function(field, row, oldValue, $el) {
return false;
},
onEditableShown: function(field, row, $el, editable) {
return false;
},
onEditableHidden: function(field, row, $el, reason) {
return false;
}
});
$.extend($.fn.bootstrapTable.Constructor.EVENTS, {
'editable-init.bs.table': 'onEditableInit',
'editable-save.bs.table': 'onEditableSave',
'editable-shown.bs.table': 'onEditableShown',
'editable-hidden.bs.table': 'onEditableHidden'
});
var BootstrapTable = $.fn.bootstrapTable.Constructor,
_initTable = BootstrapTable.prototype.initTable,
_initBody = BootstrapTable.prototype.initBody;
BootstrapTable.prototype.initTable = function() {
var that = this;
_initTable.apply(this, Array.prototype.slice.apply(arguments));
if (!this.options.editable) {
return;
}
$.each(this.columns, function(i, column) {
if (!column.editable) {
return;
}
var editableOptions = {},
editableDataMarkup = [],
editableDataPrefix = 'editable-';
var processDataOptions = function(key, value) {
// Replace camel case with dashes.
var dashKey = key.replace(/([A-Z])/g, function($1) {
return "-" + $1.toLowerCase();
});
if (dashKey.slice(0, editableDataPrefix.length) == editableDataPrefix) {
var dataKey = dashKey.replace(editableDataPrefix, 'data-');
editableOptions[dataKey] = value;
}
};
$.each(that.options, processDataOptions);
column.formatter = column.formatter || function(value, row, index) {
return value;
};
column._formatter = column._formatter ? column._formatter : column.formatter;
column.formatter = function(value, row, index) {
var result = column._formatter ? column._formatter(value, row, index) : value;
$.each(column, processDataOptions);
$.each(editableOptions, function(key, value) {
editableDataMarkup.push(' ' + key + '="' + value + '"');
});
var _dont_edit_formatter = false;
if (column.editable.hasOwnProperty('noeditFormatter')) {
_dont_edit_formatter = column.editable.noeditFormatter(value, row, index);
}
if (_dont_edit_formatter === false) {
return ['<a href="javascript:void(0)"',
' data-name="' + column.field + '"',
' data-pk="' + row[that.options.idField] + '"',
' data-value="' + result + '"',
editableDataMarkup.join(''),
'>' + '</a>'
].join('');
} else {
return _dont_edit_formatter;
}
};
});
};
BootstrapTable.prototype.initBody = function() {
var that = this;
_initBody.apply(this, Array.prototype.slice.apply(arguments));
if (!this.options.editable) {
return;
}
$.each(this.columns, function(i, column) {
if (!column.editable) {
return;
}
that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
.off('save').on('save', function(e, params) {
var data = that.getData(),
index = $(this).parents('tr[data-index]').data('index'),
row = data[index],
oldValue = row[column.field];
$(this).data('value', params.submitValue);
row[column.field] = params.submitValue;
that.trigger('editable-save', column.field, row, oldValue, $(this));
that.resetFooter();
});
that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
.off('shown').on('shown', function(e, editable) {
var data = that.getData(),
index = $(this).parents('tr[data-index]').data('index'),
row = data[index];
that.trigger('editable-shown', column.field, row, $(this), editable);
});
that.$body.find('a[data-name="' + column.field + '"]').editable(column.editable)
.off('hidden').on('hidden', function(e, reason) {
var data = that.getData(),
index = $(this).parents('tr[data-index]').data('index'),
row = data[index];
that.trigger('editable-hidden', column.field, row, $(this), reason);
});
});
this.trigger('editable-init');
};
})(jQuery);
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{editable:!0,onEditableInit:function(){return!1},onEditableSave:function(){return!1},onEditableShown:function(){return!1},onEditableHidden:function(){return!1}}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"editable-init.bs.table":"onEditableInit","editable-save.bs.table":"onEditableSave","editable-shown.bs.table":"onEditableShown","editable-hidden.bs.table":"onEditableHidden"});var b=a.fn.bootstrapTable.Constructor,c=b.prototype.initTable,d=b.prototype.initBody;b.prototype.initTable=function(){var b=this;c.apply(this,Array.prototype.slice.apply(arguments)),this.options.editable&&a.each(this.columns,function(c,d){if(d.editable){var e={},f=[],g="editable-",h=function(a,b){var c=a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()});if(c.slice(0,g.length)==g){var d=c.replace(g,"data-");e[d]=b}};a.each(b.options,h),d.formatter=d.formatter||function(a){return a},d._formatter=d._formatter?d._formatter:d.formatter,d.formatter=function(c,g,i){var j=d._formatter?d._formatter(c,g,i):c;a.each(d,h),a.each(e,function(a,b){f.push(" "+a+'="'+b+'"')});var k=!1;return d.editable.hasOwnProperty("noeditFormatter")&&(k=d.editable.noeditFormatter(c,g,i)),k===!1?['<a href="javascript:void(0)"',' data-name="'+d.field+'"',' data-pk="'+g[b.options.idField]+'"',' data-value="'+j+'"',f.join(""),"></a>"].join(""):k}}})},b.prototype.initBody=function(){var b=this;d.apply(this,Array.prototype.slice.apply(arguments)),this.options.editable&&(a.each(this.columns,function(c,d){d.editable&&(b.$body.find('a[data-name="'+d.field+'"]').editable(d.editable).off("save").on("save",function(c,e){var f=b.getData(),g=a(this).parents("tr[data-index]").data("index"),h=f[g],i=h[d.field];a(this).data("value",e.submitValue),h[d.field]=e.submitValue,b.trigger("editable-save",d.field,h,i,a(this)),b.resetFooter()}),b.$body.find('a[data-name="'+d.field+'"]').editable(d.editable).off("shown").on("shown",function(c,e){var f=b.getData(),g=a(this).parents("tr[data-index]").data("index"),h=f[g];b.trigger("editable-shown",d.field,h,a(this),e)}),b.$body.find('a[data-name="'+d.field+'"]').editable(d.editable).off("hidden").on("hidden",function(c,e){var f=b.getData(),g=a(this).parents("tr[data-index]").data("index"),h=f[g];b.trigger("editable-hidden",d.field,h,a(this),e)}))}),this.trigger("editable-init"))}}(jQuery);
\ No newline at end of file
/**
* @author zhixin wen <wenzhixin2010@gmail.com>
* extensions: https://github.com/kayalshri/tableExport.jquery.plugin
*/
(function ($) {
'use strict';
var sprintf = $.fn.bootstrapTable.utils.sprintf;
var TYPE_NAME = {
json: 'JSON',
xml: 'XML',
png: 'PNG',
csv: 'CSV',
txt: 'TXT',
sql: 'SQL',
doc: 'MS-Word',
excel: 'MS-Excel',
xlsx: 'MS-Excel (OpenXML)',
powerpoint: 'MS-Powerpoint',
pdf: 'PDF'
};
$.extend($.fn.bootstrapTable.defaults, {
showExport: false,
exportDataType: 'basic', // basic, all, selected
// 'json', 'xml', 'png', 'csv', 'txt', 'sql', 'doc', 'excel', 'powerpoint', 'pdf'
exportTypes: ['json', 'xml', 'csv', 'txt', 'sql', 'excel'],
exportOptions: {}
});
$.extend($.fn.bootstrapTable.defaults.icons, {
export: 'glyphicon-export icon-share'
});
$.extend($.fn.bootstrapTable.locales, {
formatExport: function () {
return 'Export data';
}
});
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
var BootstrapTable = $.fn.bootstrapTable.Constructor,
_initToolbar = BootstrapTable.prototype.initToolbar;
BootstrapTable.prototype.initToolbar = function () {
this.showToolbar = this.options.showExport;
_initToolbar.apply(this, Array.prototype.slice.apply(arguments));
if (this.options.showExport) {
var that = this,
$btnGroup = this.$toolbar.find('>.btn-group'),
$export = $btnGroup.find('div.export');
if (!$export.length) {
$export = $([
'<div class="export btn-group">',
'<button class="btn' +
sprintf(' btn-%s', this.options.buttonsClass) +
sprintf(' btn-%s', this.options.iconSize) +
' dropdown-toggle" aria-label="export type" ' +
'title="' + this.options.formatExport() + '" ' +
'data-toggle="dropdown" type="button">',
sprintf('<i class="%s %s"></i> ', this.options.iconsPrefix, this.options.icons.export),
'<span class="caret"></span>',
'</button>',
'<ul class="dropdown-menu" role="menu">',
'</ul>',
'</div>'].join('')).appendTo($btnGroup);
var $menu = $export.find('.dropdown-menu'),
exportTypes = this.options.exportTypes;
if (typeof this.options.exportTypes === 'string') {
var types = this.options.exportTypes.slice(1, -1).replace(/ /g, '').split(',');
exportTypes = [];
$.each(types, function (i, value) {
exportTypes.push(value.slice(1, -1));
});
}
$.each(exportTypes, function (i, type) {
if (TYPE_NAME.hasOwnProperty(type)) {
$menu.append(['<li role="menuitem" data-type="' + type + '">',
'<a href="javascript:void(0)">',
TYPE_NAME[type],
'</a>',
'</li>'].join(''));
}
});
$menu.find('li').click(function () {
var type = $(this).data('type'),
doExport = function () {
that.$el.tableExport($.extend({}, that.options.exportOptions, {
type: type,
escape: false
}));
};
if (that.options.exportDataType === 'all' && that.options.pagination) {
that.$el.one(that.options.sidePagination === 'server' ? 'post-body.bs.table' : 'page-change.bs.table', function () {
doExport();
that.togglePagination();
});
that.togglePagination();
} else if (that.options.exportDataType === 'selected') {
var data = that.getData(),
selectedData = that.getAllSelections();
// Quick fix #2220
if (that.options.sidePagination === 'server') {
data = {total: that.options.totalRows};
data[that.options.dataField] = that.getData();
selectedData = {total: that.options.totalRows};
selectedData[that.options.dataField] = that.getAllSelections();
}
that.load(selectedData);
doExport();
that.load(data);
} else {
doExport();
}
});
}
}
};
})(jQuery);
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!function(a){"use strict";var b=a.fn.bootstrapTable.utils.sprintf,c={json:"JSON",xml:"XML",png:"PNG",csv:"CSV",txt:"TXT",sql:"SQL",doc:"MS-Word",excel:"MS-Excel",xlsx:"MS-Excel (OpenXML)",powerpoint:"MS-Powerpoint",pdf:"PDF"};a.extend(a.fn.bootstrapTable.defaults,{showExport:!1,exportDataType:"basic",exportTypes:["json","xml","csv","txt","sql","excel"],exportOptions:{}}),a.extend(a.fn.bootstrapTable.defaults.icons,{"export":"glyphicon-export icon-share"}),a.extend(a.fn.bootstrapTable.locales,{formatExport:function(){return"Export data"}}),a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales);var d=a.fn.bootstrapTable.Constructor,e=d.prototype.initToolbar;d.prototype.initToolbar=function(){if(this.showToolbar=this.options.showExport,e.apply(this,Array.prototype.slice.apply(arguments)),this.options.showExport){var d=this,f=this.$toolbar.find(">.btn-group"),g=f.find("div.export");if(!g.length){g=a(['<div class="export btn-group">','<button class="btn'+b(" btn-%s",this.options.buttonsClass)+b(" btn-%s",this.options.iconSize)+' dropdown-toggle" aria-label="export type" title="'+this.options.formatExport()+'" data-toggle="dropdown" type="button">',b('<i class="%s %s"></i> ',this.options.iconsPrefix,this.options.icons["export"]),'<span class="caret"></span>',"</button>",'<ul class="dropdown-menu" role="menu">',"</ul>","</div>"].join("")).appendTo(f);var h=g.find(".dropdown-menu"),i=this.options.exportTypes;if("string"==typeof this.options.exportTypes){var j=this.options.exportTypes.slice(1,-1).replace(/ /g,"").split(",");i=[],a.each(j,function(a,b){i.push(b.slice(1,-1))})}a.each(i,function(a,b){c.hasOwnProperty(b)&&h.append(['<li role="menuitem" data-type="'+b+'">','<a href="javascript:void(0)">',c[b],"</a>","</li>"].join(""))}),h.find("li").click(function(){var b=a(this).data("type"),c=function(){d.$el.tableExport(a.extend({},d.options.exportOptions,{type:b,escape:!1}))};if("all"===d.options.exportDataType&&d.options.pagination)d.$el.one("server"===d.options.sidePagination?"post-body.bs.table":"page-change.bs.table",function(){c(),d.togglePagination()}),d.togglePagination();else if("selected"===d.options.exportDataType){var e=d.getData(),f=d.getAllSelections();"server"===d.options.sidePagination&&(e={total:d.options.totalRows},e[d.options.dataField]=d.getData(),f={total:d.options.totalRows},f[d.options.dataField]=d.getAllSelections()),d.load(f),c(),d.load(e)}else c()})}}}}(jQuery);
\ No newline at end of file
/**
* @author: Dennis Hernández
* @webSite: http://djhvscf.github.io/Blog
* @version: v2.1.1
*/
.no-filter-control {
height: 34px;
}
.filter-control {
margin: 0 2px 2px 2px;
}
\ No newline at end of file
/**
* @author: Dennis Hernández
* @webSite: http://djhvscf.github.io/Blog
* @version: v2.1.1
*/
(function ($) {
'use strict';
var sprintf = $.fn.bootstrapTable.utils.sprintf,
objectKeys = $.fn.bootstrapTable.utils.objectKeys;
var getOptionsFromSelectControl = function (selectControl) {
return selectControl.get(selectControl.length - 1).options;
};
var hideUnusedSelectOptions = function (selectControl, uniqueValues) {
var options = getOptionsFromSelectControl(selectControl);
for (var i = 0; i < options.length; i++) {
if (options[i].value !== "") {
if (!uniqueValues.hasOwnProperty(options[i].value)) {
selectControl.find(sprintf("option[value='%s']", options[i].value)).hide();
} else {
selectControl.find(sprintf("option[value='%s']", options[i].value)).show();
}
}
}
};
var addOptionToSelectControl = function (selectControl, value, text) {
value = $.trim(value);
selectControl = $(selectControl.get(selectControl.length - 1));
if (!existOptionInSelectControl(selectControl, value)) {
selectControl.append($("<option></option>")
.attr("value", value)
.text($('<div />').html(text).text()));
}
};
var sortSelectControl = function (selectControl) {
var $opts = selectControl.find('option:gt(0)');
$opts.sort(function (a, b) {
a = $(a).text().toLowerCase();
b = $(b).text().toLowerCase();
if ($.isNumeric(a) && $.isNumeric(b)) {
// Convert numerical values from string to float.
a = parseFloat(a);
b = parseFloat(b);
}
return a > b ? 1 : a < b ? -1 : 0;
});
selectControl.find('option:gt(0)').remove();
selectControl.append($opts);
};
var existOptionInSelectControl = function (selectControl, value) {
var options = getOptionsFromSelectControl(selectControl);
for (var i = 0; i < options.length; i++) {
if (options[i].value === value.toString()) {
//The value is not valid to add
return true;
}
}
//If we get here, the value is valid to add
return false;
};
var fixHeaderCSS = function (that) {
that.$tableHeader.css('height', '77px');
};
var getCurrentHeader = function (that) {
var header = that.$header;
if (that.options.height) {
header = that.$tableHeader;
}
return header;
};
var getCurrentSearchControls = function (that) {
var searchControls = 'select, input';
if (that.options.height) {
searchControls = 'table select, table input';
}
return searchControls;
};
var getCursorPosition = function(el) {
if ($.fn.bootstrapTable.utils.isIEBrowser()) {
if ($(el).is('input')) {
var pos = 0;
if ('selectionStart' in el) {
pos = el.selectionStart;
} else if ('selection' in document) {
el.focus();
var Sel = document.selection.createRange();
var SelLength = document.selection.createRange().text.length;
Sel.moveStart('character', -el.value.length);
pos = Sel.text.length - SelLength;
}
return pos;
} else {
return -1;
}
} else {
return -1;
}
};
var setCursorPosition = function (el, index) {
if ($.fn.bootstrapTable.utils.isIEBrowser()) {
if(el.setSelectionRange !== undefined) {
el.setSelectionRange(index, index);
} else {
$(el).val(el.value);
}
}
};
var copyValues = function (that) {
var header = getCurrentHeader(that),
searchControls = getCurrentSearchControls(that);
that.options.valuesFilterControl = [];
header.find(searchControls).each(function () {
that.options.valuesFilterControl.push(
{
field: $(this).closest('[data-field]').data('field'),
value: $(this).val(),
position: getCursorPosition($(this).get(0))
});
});
};
var setValues = function(that) {
var field = null,
result = [],
header = getCurrentHeader(that),
searchControls = getCurrentSearchControls(that);
if (that.options.valuesFilterControl.length > 0) {
header.find(searchControls).each(function (index, ele) {
field = $(this).closest('[data-field]').data('field');
result = $.grep(that.options.valuesFilterControl, function (valueObj) {
return valueObj.field === field;
});
if (result.length > 0) {
$(this).val(result[0].value);
setCursorPosition($(this).get(0), result[0].position);
}
});
}
};
var collectBootstrapCookies = function cookiesRegex() {
var cookies = [],
foundCookies = document.cookie.match(/(?:bs.table.)(\w*)/g);
if (foundCookies) {
$.each(foundCookies, function (i, cookie) {
if (/./.test(cookie)) {
cookie = cookie.split(".").pop();
}
if ($.inArray(cookie, cookies) === -1) {
cookies.push(cookie);
}
});
return cookies;
}
};
var initFilterSelectControls = function (that) {
var data = that.data,
itemsPerPage = that.pageTo < that.options.data.length ? that.options.data.length : that.pageTo,
isColumnSearchableViaSelect = function (column) {
return column.filterControl && column.filterControl.toLowerCase() === 'select' && column.searchable;
},
isFilterDataNotGiven = function (column) {
return column.filterData === undefined || column.filterData.toLowerCase() === 'column';
},
hasSelectControlElement = function (selectControl) {
return selectControl && selectControl.length > 0;
};
var z = that.options.pagination ?
(that.options.sidePagination === 'server' ? that.pageTo : that.options.totalRows) :
that.pageTo;
$.each(that.header.fields, function (j, field) {
var column = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, field)],
selectControl = $('.bootstrap-table-filter-control-' + escapeID(column.field));
if (isColumnSearchableViaSelect(column) && isFilterDataNotGiven(column) && hasSelectControlElement(selectControl)) {
if (selectControl.get(selectControl.length - 1).options.length === 0) {
//Added the default option
addOptionToSelectControl(selectControl, '', '');
}
var uniqueValues = {};
for (var i = 0; i < z; i++) {
//Added a new value
var fieldValue = data[i][field],
formattedValue = $.fn.bootstrapTable.utils.calculateObjectValue(that.header, that.header.formatters[j], [fieldValue, data[i], i], fieldValue);
uniqueValues[formattedValue] = fieldValue;
}
for (var key in uniqueValues) {
addOptionToSelectControl(selectControl, uniqueValues[key], key);
}
sortSelectControl(selectControl);
if (that.options.hideUnusedSelectOptions) {
hideUnusedSelectOptions(selectControl, uniqueValues);
}
}
});
};
var escapeID = function(id) {
return String(id).replace( /(:|\.|\[|\]|,)/g, "\\$1" );
};
var createControls = function (that, header) {
var addedFilterControl = false,
isVisible,
html,
timeoutId = 0;
$.each(that.columns, function (i, column) {
isVisible = 'hidden';
html = [];
if (!column.visible) {
return;
}
if (!column.filterControl) {
html.push('<div class="no-filter-control"></div>');
} else {
html.push('<div class="filter-control">');
var nameControl = column.filterControl.toLowerCase();
if (column.searchable && that.options.filterTemplate[nameControl]) {
addedFilterControl = true;
isVisible = 'visible';
html.push(that.options.filterTemplate[nameControl](that, column.field, isVisible, column.filterControlPlaceholder));
}
}
$.each(header.children().children(), function (i, tr) {
tr = $(tr);
if (tr.data('field') === column.field) {
tr.find('.fht-cell').append(html.join(''));
return false;
}
});
if (column.filterData !== undefined && column.filterData.toLowerCase() !== 'column') {
var filterDataType = getFilterDataMethod(filterDataMethods, column.filterData.substring(0, column.filterData.indexOf(':')));
var filterDataSource, selectControl;
if (filterDataType !== null) {
filterDataSource = column.filterData.substring(column.filterData.indexOf(':') + 1, column.filterData.length);
selectControl = $('.bootstrap-table-filter-control-' + escapeID(column.field));
addOptionToSelectControl(selectControl, '', '');
filterDataType(filterDataSource, selectControl);
} else {
throw new SyntaxError('Error. You should use any of these allowed filter data methods: var, json, url.' + ' Use like this: var: {key: "value"}');
}
var variableValues, key;
switch (filterDataType) {
case 'url':
$.ajax({
url: filterDataSource,
dataType: 'json',
success: function (data) {
for (var key in data) {
addOptionToSelectControl(selectControl, key, data[key]);
}
sortSelectControl(selectControl);
}
});
break;
case 'var':
variableValues = window[filterDataSource];
for (key in variableValues) {
addOptionToSelectControl(selectControl, key, variableValues[key]);
}
sortSelectControl(selectControl);
break;
case 'jso':
variableValues = JSON.parse(filterDataSource);
for (key in variableValues) {
addOptionToSelectControl(selectControl, key, variableValues[key]);
}
sortSelectControl(selectControl);
break;
}
}
});
if (addedFilterControl) {
header.off('keyup', 'input').on('keyup', 'input', function (event) {
clearTimeout(timeoutId);
timeoutId = setTimeout(function () {
that.onColumnSearch(event);
}, that.options.searchTimeOut);
});
header.off('change', 'select').on('change', 'select', function (event) {
clearTimeout(timeoutId);
timeoutId = setTimeout(function () {
that.onColumnSearch(event);
}, that.options.searchTimeOut);
});
header.off('mouseup', 'input').on('mouseup', 'input', function (event) {
var $input = $(this),
oldValue = $input.val();
if (oldValue === "") {
return;
}
setTimeout(function(){
var newValue = $input.val();
if (newValue === "") {
clearTimeout(timeoutId);
timeoutId = setTimeout(function () {
that.onColumnSearch(event);
}, that.options.searchTimeOut);
}
}, 1);
});
if (header.find('.date-filter-control').length > 0) {
$.each(that.columns, function (i, column) {
if (column.filterControl !== undefined && column.filterControl.toLowerCase() === 'datepicker') {
header.find('.date-filter-control.bootstrap-table-filter-control-' + column.field).datepicker(column.filterDatepickerOptions)
.on('changeDate', function (e) {
$(sprintf(".%s", e.currentTarget.classList.toString().split(" ").join("."))).val(e.currentTarget.value);
//Fired the keyup event
$(e.currentTarget).keyup();
});
}
});
}
} else {
header.find('.filterControl').hide();
}
};
var getDirectionOfSelectOptions = function (alignment) {
alignment = alignment === undefined ? 'left' : alignment.toLowerCase();
switch (alignment) {
case 'left':
return 'ltr';
case 'right':
return 'rtl';
case 'auto':
return 'auto';
default:
return 'ltr';
}
};
var filterDataMethods =
{
'var': function (filterDataSource, selectControl) {
var variableValues = window[filterDataSource];
for (var key in variableValues) {
addOptionToSelectControl(selectControl, key, variableValues[key]);
}
sortSelectControl(selectControl);
},
'url': function (filterDataSource, selectControl) {
$.ajax({
url: filterDataSource,
dataType: 'json',
success: function (data) {
for (var key in data) {
addOptionToSelectControl(selectControl, key, data[key]);
}
sortSelectControl(selectControl);
}
});
},
'json':function (filterDataSource, selectControl) {
var variableValues = JSON.parse(filterDataSource);
for (var key in variableValues) {
addOptionToSelectControl(selectControl, key, variableValues[key]);
}
sortSelectControl(selectControl);
}
};
var getFilterDataMethod = function (objFilterDataMethod, searchTerm) {
var keys = Object.keys(objFilterDataMethod);
for (var i = 0; i < keys.length; i++) {
if (keys[i] === searchTerm) {
return objFilterDataMethod[searchTerm];
}
}
return null;
};
$.extend($.fn.bootstrapTable.defaults, {
filterControl: false,
onColumnSearch: function (field, text) {
return false;
},
filterShowClear: false,
alignmentSelectControlOptions: undefined,
filterTemplate: {
input: function (that, field, isVisible, placeholder) {
return sprintf('<input type="text" class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" placeholder="%s">', field, isVisible, placeholder);
},
select: function (that, field, isVisible) {
return sprintf('<select class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" dir="%s"></select>',
field, isVisible, getDirectionOfSelectOptions(that.options.alignmentSelectControlOptions));
},
datepicker: function (that, field, isVisible) {
return sprintf('<input type="text" class="form-control date-filter-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s">', field, isVisible);
}
},
//internal variables
valuesFilterControl: []
});
$.extend($.fn.bootstrapTable.COLUMN_DEFAULTS, {
filterControl: undefined,
filterData: undefined,
filterDatepickerOptions: undefined,
filterStrictSearch: false,
filterStartsWithSearch: false,
filterControlPlaceholder: ""
});
$.extend($.fn.bootstrapTable.Constructor.EVENTS, {
'column-search.bs.table': 'onColumnSearch'
});
$.extend($.fn.bootstrapTable.defaults.icons, {
clear: 'glyphicon-trash icon-clear'
});
$.extend($.fn.bootstrapTable.locales, {
formatClearFilters: function () {
return 'Clear Filters';
}
});
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
var BootstrapTable = $.fn.bootstrapTable.Constructor,
_init = BootstrapTable.prototype.init,
_initToolbar = BootstrapTable.prototype.initToolbar,
_initHeader = BootstrapTable.prototype.initHeader,
_initBody = BootstrapTable.prototype.initBody,
_initSearch = BootstrapTable.prototype.initSearch;
BootstrapTable.prototype.init = function () {
//Make sure that the filterControl option is set
if (this.options.filterControl) {
var that = this;
// Compatibility: IE < 9 and old browsers
if (!Object.keys) {
objectKeys();
}
//Make sure that the internal variables are set correctly
this.options.valuesFilterControl = [];
this.$el.on('reset-view.bs.table', function () {
//Create controls on $tableHeader if the height is set
if (!that.options.height) {
return;
}
//Avoid recreate the controls
if (that.$tableHeader.find('select').length > 0 || that.$tableHeader.find('input').length > 0) {
return;
}
createControls(that, that.$tableHeader);
}).on('post-header.bs.table', function () {
setValues(that);
}).on('post-body.bs.table', function () {
if (that.options.height) {
fixHeaderCSS(that);
}
}).on('column-switch.bs.table', function() {
setValues(that);
});
}
_init.apply(this, Array.prototype.slice.apply(arguments));
};
BootstrapTable.prototype.initToolbar = function () {
this.showToolbar = this.options.filterControl && this.options.filterShowClear;
_initToolbar.apply(this, Array.prototype.slice.apply(arguments));
if (this.options.filterControl && this.options.filterShowClear) {
var $btnGroup = this.$toolbar.find('>.btn-group'),
$btnClear = $btnGroup.find('.filter-show-clear');
if (!$btnClear.length) {
$btnClear = $([
'<button class="btn btn-default filter-show-clear" ',
sprintf('type="button" title="%s">', this.options.formatClearFilters()),
sprintf('<i class="%s %s"></i> ', this.options.iconsPrefix, this.options.icons.clear),
'</button>'
].join('')).appendTo($btnGroup);
$btnClear.off('click').on('click', $.proxy(this.clearFilterControl, this));
}
}
};
BootstrapTable.prototype.initHeader = function () {
_initHeader.apply(this, Array.prototype.slice.apply(arguments));
if (!this.options.filterControl) {
return;
}
createControls(this, this.$header);
};
BootstrapTable.prototype.initBody = function () {
_initBody.apply(this, Array.prototype.slice.apply(arguments));
initFilterSelectControls(this);
};
BootstrapTable.prototype.initSearch = function () {
_initSearch.apply(this, Array.prototype.slice.apply(arguments));
if (this.options.sidePagination === 'server') {
return;
}
var that = this;
var fp = $.isEmptyObject(this.filterColumnsPartial) ? null : this.filterColumnsPartial;
//Check partial column filter
this.data = fp ? $.grep(this.data, function (item, i) {
for (var key in fp) {
var thisColumn = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, key)];
var fval = fp[key].toLowerCase();
var value = item[key];
// Fix #142: search use formated data
if (thisColumn && thisColumn.searchFormatter) {
value = $.fn.bootstrapTable.utils.calculateObjectValue(that.header,
that.header.formatters[$.inArray(key, that.header.fields)],
[value, item, i], value);
}
if (thisColumn.filterStrictSearch) {
if (!($.inArray(key, that.header.fields) !== -1 &&
(typeof value === 'string' || typeof value === 'number') &&
value.toString().toLowerCase() === fval.toString().toLowerCase())) {
return false;
}
} else if (thisColumn.filterStartsWithSearch) {
if (!($.inArray(key, that.header.fields) !== -1 &&
(typeof value === 'string' || typeof value === 'number') &&
(value + '').toLowerCase().indexOf(fval) === 0)) {
return false;
}
} else {
if (!($.inArray(key, that.header.fields) !== -1 &&
(typeof value === 'string' || typeof value === 'number') &&
(value + '').toLowerCase().indexOf(fval) !== -1)) {
return false;
}
}
}
return true;
}) : this.data;
};
BootstrapTable.prototype.initColumnSearch = function(filterColumnsDefaults) {
copyValues(this);
if (filterColumnsDefaults) {
this.filterColumnsPartial = filterColumnsDefaults;
this.updatePagination();
for (var filter in filterColumnsDefaults) {
this.trigger('column-search', filter, filterColumnsDefaults[filter]);
}
}
};
BootstrapTable.prototype.onColumnSearch = function (event) {
if ($.inArray(event.keyCode, [37, 38, 39, 40]) > -1) {
return;
}
copyValues(this);
var text = $.trim($(event.currentTarget).val());
var $field = $(event.currentTarget).closest('[data-field]').data('field');
if ($.isEmptyObject(this.filterColumnsPartial)) {
this.filterColumnsPartial = {};
}
if (text) {
this.filterColumnsPartial[$field] = text;
} else {
delete this.filterColumnsPartial[$field];
}
// if the searchText is the same as the previously selected column value,
// bootstrapTable will not try searching again (even though the selected column
// may be different from the previous search). As a work around
// we're manually appending some text to bootrap's searchText field
// to guarantee that it will perform a search again when we call this.onSearch(event)
this.searchText += "randomText";
this.options.pageNumber = 1;
this.onSearch(event);
this.trigger('column-search', $field, text);
};
BootstrapTable.prototype.clearFilterControl = function () {
if (this.options.filterControl && this.options.filterShowClear) {
var that = this,
cookies = collectBootstrapCookies(),
header = getCurrentHeader(that),
table = header.closest('table'),
controls = header.find(getCurrentSearchControls(that)),
search = that.$toolbar.find('.search input'),
timeoutId = 0;
$.each(that.options.valuesFilterControl, function (i, item) {
item.value = '';
});
setValues(that);
// Clear each type of filter if it exists.
// Requires the body to reload each time a type of filter is found because we never know
// which ones are going to be present.
if (controls.length > 0) {
this.filterColumnsPartial = {};
$(controls[0]).trigger(controls[0].tagName === 'INPUT' ? 'keyup' : 'change');
} else {
return;
}
if (search.length > 0) {
that.resetSearch();
}
// use the default sort order if it exists. do nothing if it does not
if (that.options.sortName !== table.data('sortName') || that.options.sortOrder !== table.data('sortOrder')) {
var sorter = header.find(sprintf('[data-field="%s"]', $(controls[0]).closest('table').data('sortName')));
if (sorter.length > 0) {
that.onSort(table.data('sortName'), table.data('sortName'));
$(sorter).find('.sortable').trigger('click');
}
}
// clear cookies once the filters are clean
clearTimeout(timeoutId);
timeoutId = setTimeout(function () {
if (cookies && cookies.length > 0) {
$.each(cookies, function (i, item) {
if (that.deleteCookie !== undefined) {
that.deleteCookie(item);
}
});
}
}, that.options.searchTimeOut);
}
};
})(jQuery);
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!function(a){"use strict";var b=a.fn.bootstrapTable.utils.sprintf,c=a.fn.bootstrapTable.utils.objectKeys,d=function(a){return a.get(a.length-1).options},e=function(a,c){for(var e=d(a),f=0;f<e.length;f++)""!==e[f].value&&(c.hasOwnProperty(e[f].value)?a.find(b("option[value='%s']",e[f].value)).show():a.find(b("option[value='%s']",e[f].value)).hide())},f=function(b,c,d){c=a.trim(c),b=a(b.get(b.length-1)),h(b,c)||b.append(a("<option></option>").attr("value",c).text(a("<div />").html(d).text()))},g=function(b){var c=b.find("option:gt(0)");c.sort(function(b,c){return b=a(b).text().toLowerCase(),c=a(c).text().toLowerCase(),a.isNumeric(b)&&a.isNumeric(c)&&(b=parseFloat(b),c=parseFloat(c)),b>c?1:c>b?-1:0}),b.find("option:gt(0)").remove(),b.append(c)},h=function(a,b){for(var c=d(a),e=0;e<c.length;e++)if(c[e].value===b.toString())return!0;return!1},i=function(a){a.$tableHeader.css("height","77px")},j=function(a){var b=a.$header;return a.options.height&&(b=a.$tableHeader),b},k=function(a){var b="select, input";return a.options.height&&(b="table select, table input"),b},l=function(b){if(a.fn.bootstrapTable.utils.isIEBrowser()){if(a(b).is("input")){var c=0;if("selectionStart"in b)c=b.selectionStart;else if("selection"in document){b.focus();var d=document.selection.createRange(),e=document.selection.createRange().text.length;d.moveStart("character",-b.value.length),c=d.text.length-e}return c}return-1}return-1},m=function(b,c){a.fn.bootstrapTable.utils.isIEBrowser()&&(void 0!==b.setSelectionRange?b.setSelectionRange(c,c):a(b).val(b.value))},n=function(b){var c=j(b),d=k(b);b.options.valuesFilterControl=[],c.find(d).each(function(){b.options.valuesFilterControl.push({field:a(this).closest("[data-field]").data("field"),value:a(this).val(),position:l(a(this).get(0))})})},o=function(b){var c=null,d=[],e=j(b),f=k(b);b.options.valuesFilterControl.length>0&&e.find(f).each(function(){c=a(this).closest("[data-field]").data("field"),d=a.grep(b.options.valuesFilterControl,function(a){return a.field===c}),d.length>0&&(a(this).val(d[0].value),m(a(this).get(0),d[0].position))})},p=function(){var b=[],c=document.cookie.match(/(?:bs.table.)(\w*)/g);return c?(a.each(c,function(c,d){/./.test(d)&&(d=d.split(".").pop()),-1===a.inArray(d,b)&&b.push(d)}),b):void 0},q=function(b){var c=b.data,d=(b.pageTo<b.options.data.length?b.options.data.length:b.pageTo,function(a){return a.filterControl&&"select"===a.filterControl.toLowerCase()&&a.searchable}),h=function(a){return void 0===a.filterData||"column"===a.filterData.toLowerCase()},i=function(a){return a&&a.length>0},j=b.options.pagination?"server"===b.options.sidePagination?b.pageTo:b.options.totalRows:b.pageTo;a.each(b.header.fields,function(k,l){var m=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,l)],n=a(".bootstrap-table-filter-control-"+r(m.field));if(d(m)&&h(m)&&i(n)){0===n.get(n.length-1).options.length&&f(n,"","");for(var o={},p=0;j>p;p++){var q=c[p][l],s=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[k],[q,c[p],p],q);o[s]=q}for(var t in o)f(n,o[t],t);g(n),b.options.hideUnusedSelectOptions&&e(n,o)}})},r=function(a){return String(a).replace(/(:|\.|\[|\]|,)/g,"\\$1")},s=function(c,d){var e,h,i=!1,j=0;a.each(c.columns,function(b,j){if(e="hidden",h=[],j.visible){if(j.filterControl){h.push('<div class="filter-control">');var k=j.filterControl.toLowerCase();j.searchable&&c.options.filterTemplate[k]&&(i=!0,e="visible",h.push(c.options.filterTemplate[k](c,j.field,e,j.filterControlPlaceholder)))}else h.push('<div class="no-filter-control"></div>');if(a.each(d.children().children(),function(b,c){return c=a(c),c.data("field")===j.field?(c.find(".fht-cell").append(h.join("")),!1):void 0}),void 0!==j.filterData&&"column"!==j.filterData.toLowerCase()){var l,m,n=v(u,j.filterData.substring(0,j.filterData.indexOf(":")));if(null===n)throw new SyntaxError('Error. You should use any of these allowed filter data methods: var, json, url. Use like this: var: {key: "value"}');l=j.filterData.substring(j.filterData.indexOf(":")+1,j.filterData.length),m=a(".bootstrap-table-filter-control-"+r(j.field)),f(m,"",""),n(l,m);var o,p;switch(n){case"url":a.ajax({url:l,dataType:"json",success:function(a){for(var b in a)f(m,b,a[b]);g(m)}});break;case"var":o=window[l];for(p in o)f(m,p,o[p]);g(m);break;case"jso":o=JSON.parse(l);for(p in o)f(m,p,o[p]);g(m)}}}}),i?(d.off("keyup","input").on("keyup","input",function(a){clearTimeout(j),j=setTimeout(function(){c.onColumnSearch(a)},c.options.searchTimeOut)}),d.off("change","select").on("change","select",function(a){clearTimeout(j),j=setTimeout(function(){c.onColumnSearch(a)},c.options.searchTimeOut)}),d.off("mouseup","input").on("mouseup","input",function(b){var d=a(this),e=d.val();""!==e&&setTimeout(function(){var a=d.val();""===a&&(clearTimeout(j),j=setTimeout(function(){c.onColumnSearch(b)},c.options.searchTimeOut))},1)}),d.find(".date-filter-control").length>0&&a.each(c.columns,function(c,e){void 0!==e.filterControl&&"datepicker"===e.filterControl.toLowerCase()&&d.find(".date-filter-control.bootstrap-table-filter-control-"+e.field).datepicker(e.filterDatepickerOptions).on("changeDate",function(c){a(b(".%s",c.currentTarget.classList.toString().split(" ").join("."))).val(c.currentTarget.value),a(c.currentTarget).keyup()})})):d.find(".filterControl").hide()},t=function(a){switch(a=void 0===a?"left":a.toLowerCase()){case"left":return"ltr";case"right":return"rtl";case"auto":return"auto";default:return"ltr"}},u={"var":function(a,b){var c=window[a];for(var d in c)f(b,d,c[d]);g(b)},url:function(b,c){a.ajax({url:b,dataType:"json",success:function(a){for(var b in a)f(c,b,a[b]);g(c)}})},json:function(a,b){var c=JSON.parse(a);for(var d in c)f(b,d,c[d]);g(b)}},v=function(a,b){for(var c=Object.keys(a),d=0;d<c.length;d++)if(c[d]===b)return a[b];return null};a.extend(a.fn.bootstrapTable.defaults,{filterControl:!1,onColumnSearch:function(){return!1},filterShowClear:!1,alignmentSelectControlOptions:void 0,filterTemplate:{input:function(a,c,d,e){return b('<input type="text" class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" placeholder="%s">',c,d,e)},select:function(a,c,d){return b('<select class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" dir="%s"></select>',c,d,t(a.options.alignmentSelectControlOptions))},datepicker:function(a,c,d){return b('<input type="text" class="form-control date-filter-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s">',c,d)}},valuesFilterControl:[]}),a.extend(a.fn.bootstrapTable.COLUMN_DEFAULTS,{filterControl:void 0,filterData:void 0,filterDatepickerOptions:void 0,filterStrictSearch:!1,filterStartsWithSearch:!1,filterControlPlaceholder:""}),a.extend(a.fn.bootstrapTable.Constructor.EVENTS,{"column-search.bs.table":"onColumnSearch"}),a.extend(a.fn.bootstrapTable.defaults.icons,{clear:"glyphicon-trash icon-clear"}),a.extend(a.fn.bootstrapTable.locales,{formatClearFilters:function(){return"Clear Filters"}}),a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales);var w=a.fn.bootstrapTable.Constructor,x=w.prototype.init,y=w.prototype.initToolbar,z=w.prototype.initHeader,A=w.prototype.initBody,B=w.prototype.initSearch;w.prototype.init=function(){if(this.options.filterControl){var a=this;Object.keys||c(),this.options.valuesFilterControl=[],this.$el.on("reset-view.bs.table",function(){a.options.height&&(a.$tableHeader.find("select").length>0||a.$tableHeader.find("input").length>0||s(a,a.$tableHeader))}).on("post-header.bs.table",function(){o(a)}).on("post-body.bs.table",function(){a.options.height&&i(a)}).on("column-switch.bs.table",function(){o(a)})}x.apply(this,Array.prototype.slice.apply(arguments))},w.prototype.initToolbar=function(){if(this.showToolbar=this.options.filterControl&&this.options.filterShowClear,y.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&this.options.filterShowClear){var c=this.$toolbar.find(">.btn-group"),d=c.find(".filter-show-clear");d.length||(d=a(['<button class="btn btn-default filter-show-clear" ',b('type="button" title="%s">',this.options.formatClearFilters()),b('<i class="%s %s"></i> ',this.options.iconsPrefix,this.options.icons.clear),"</button>"].join("")).appendTo(c),d.off("click").on("click",a.proxy(this.clearFilterControl,this)))}},w.prototype.initHeader=function(){z.apply(this,Array.prototype.slice.apply(arguments)),this.options.filterControl&&s(this,this.$header)},w.prototype.initBody=function(){A.apply(this,Array.prototype.slice.apply(arguments)),q(this)},w.prototype.initSearch=function(){if(B.apply(this,Array.prototype.slice.apply(arguments)),"server"!==this.options.sidePagination){var b=this,c=a.isEmptyObject(this.filterColumnsPartial)?null:this.filterColumnsPartial;this.data=c?a.grep(this.data,function(d,e){for(var f in c){var g=b.columns[a.fn.bootstrapTable.utils.getFieldIndex(b.columns,f)],h=c[f].toLowerCase(),i=d[f];if(g&&g.searchFormatter&&(i=a.fn.bootstrapTable.utils.calculateObjectValue(b.header,b.header.formatters[a.inArray(f,b.header.fields)],[i,d,e],i)),g.filterStrictSearch){if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||i.toString().toLowerCase()!==h.toString().toLowerCase())return!1}else if(g.filterStartsWithSearch){if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||0!==(i+"").toLowerCase().indexOf(h))return!1}else if(-1===a.inArray(f,b.header.fields)||"string"!=typeof i&&"number"!=typeof i||-1===(i+"").toLowerCase().indexOf(h))return!1}return!0}):this.data}},w.prototype.initColumnSearch=function(a){if(n(this),a){this.filterColumnsPartial=a,this.updatePagination();for(var b in a)this.trigger("column-search",b,a[b])}},w.prototype.onColumnSearch=function(b){if(!(a.inArray(b.keyCode,[37,38,39,40])>-1)){n(this);var c=a.trim(a(b.currentTarget).val()),d=a(b.currentTarget).closest("[data-field]").data("field");a.isEmptyObject(this.filterColumnsPartial)&&(this.filterColumnsPartial={}),c?this.filterColumnsPartial[d]=c:delete this.filterColumnsPartial[d],this.searchText+="randomText",this.options.pageNumber=1,this.onSearch(b),this.trigger("column-search",d,c)}},w.prototype.clearFilterControl=function(){if(this.options.filterControl&&this.options.filterShowClear){var c=this,d=p(),e=j(c),f=e.closest("table"),g=e.find(k(c)),h=c.$toolbar.find(".search input"),i=0;if(a.each(c.options.valuesFilterControl,function(a,b){b.value=""}),o(c),!(g.length>0))return;if(this.filterColumnsPartial={},a(g[0]).trigger("INPUT"===g[0].tagName?"keyup":"change"),h.length>0&&c.resetSearch(),c.options.sortName!==f.data("sortName")||c.options.sortOrder!==f.data("sortOrder")){var l=e.find(b('[data-field="%s"]',a(g[0]).closest("table").data("sortName")));l.length>0&&(c.onSort(f.data("sortName"),f.data("sortName")),a(l).find(".sortable").trigger("click"))}clearTimeout(i),i=setTimeout(function(){d&&d.length>0&&a.each(d,function(a,b){void 0!==c.deleteCookie&&c.deleteCookie(b)})},c.options.searchTimeOut)}}}(jQuery);
\ No newline at end of file
/**
* @author zhixin wen <wenzhixin2010@gmail.com>
* extensions: https://github.com/lukaskral/bootstrap-table-filter
*/
!function($) {
'use strict';
$.extend($.fn.bootstrapTable.defaults, {
showFilter: false
});
var BootstrapTable = $.fn.bootstrapTable.Constructor,
_init = BootstrapTable.prototype.init,
_initSearch = BootstrapTable.prototype.initSearch;
BootstrapTable.prototype.init = function () {
_init.apply(this, Array.prototype.slice.apply(arguments));
var that = this;
this.$el.on('load-success.bs.table', function () {
if (that.options.showFilter) {
$(that.options.toolbar).bootstrapTableFilter({
connectTo: that.$el
});
}
});
};
BootstrapTable.prototype.initSearch = function () {
_initSearch.apply(this, Array.prototype.slice.apply(arguments));
if (this.options.sidePagination !== 'server') {
if (typeof this.searchCallback === 'function') {
this.data = $.grep(this.options.data, this.searchCallback);
}
}
};
BootstrapTable.prototype.getData = function () {
return (this.searchText || this.searchCallback) ? this.data : this.options.data;
};
BootstrapTable.prototype.getColumns = function () {
return this.columns;
};
BootstrapTable.prototype.registerSearchCallback = function (callback) {
this.searchCallback = callback;
};
BootstrapTable.prototype.updateSearch = function () {
this.options.pageNumber = 1;
this.initSearch();
this.updatePagination();
};
BootstrapTable.prototype.getServerUrl = function () {
return (this.options.sidePagination === 'server') ? this.options.url : false;
};
$.fn.bootstrapTable.methods.push('getColumns',
'registerSearchCallback', 'updateSearch',
'getServerUrl');
}(jQuery);
\ No newline at end of file
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!function(a){"use strict";a.extend(a.fn.bootstrapTable.defaults,{showFilter:!1});var b=a.fn.bootstrapTable.Constructor,c=b.prototype.init,d=b.prototype.initSearch;b.prototype.init=function(){c.apply(this,Array.prototype.slice.apply(arguments));var b=this;this.$el.on("load-success.bs.table",function(){b.options.showFilter&&a(b.options.toolbar).bootstrapTableFilter({connectTo:b.$el})})},b.prototype.initSearch=function(){d.apply(this,Array.prototype.slice.apply(arguments)),"server"!==this.options.sidePagination&&"function"==typeof this.searchCallback&&(this.data=a.grep(this.options.data,this.searchCallback))},b.prototype.getData=function(){return this.searchText||this.searchCallback?this.data:this.options.data},b.prototype.getColumns=function(){return this.columns},b.prototype.registerSearchCallback=function(a){this.searchCallback=a},b.prototype.updateSearch=function(){this.options.pageNumber=1,this.initSearch(),this.updatePagination()},b.prototype.getServerUrl=function(){return"server"===this.options.sidePagination?this.options.url:!1},a.fn.bootstrapTable.methods.push("getColumns","registerSearchCallback","updateSearch","getServerUrl")}(jQuery);
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment