/pack-rat/003_pack_rat/pack-rat/node_modules/bootstrap-table/docs/dist/extensions/cookie/bootstrap-table-cookie.js |
@@ -0,0 +1,434 @@ |
/** |
* @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); |
/pack-rat/003_pack_rat/pack-rat/node_modules/bootstrap-table/docs/dist/extensions/cookie/bootstrap-table-cookie.min.js |
@@ -0,0 +1,7 @@ |
/* |
* 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); |