Primer Commit
This commit is contained in:
10
assets/libs/footable/columns.json
Normal file
10
assets/libs/footable/columns.json
Normal file
@@ -0,0 +1,10 @@
|
||||
[
|
||||
{"name":"id","title":"ID","breakpoints":"xs sm","type":"number","style":{"width":80,"maxWidth":80}},
|
||||
{"name":"firstName","title":"First Name"},
|
||||
{"name":"lastName","title":"Last Name"},
|
||||
{"name":"something","title":"Never seen but always around","visible":false,"filterable":false},
|
||||
{"name":"jobTitle","title":"Job Title","breakpoints":"xs sm","style":{"maxWidth":200,"overflow":"hidden","textOverflow":"ellipsis","wordBreak":"keep-all","whiteSpace":"nowrap"}},
|
||||
{"name":"started","title":"Started On","type":"date","breakpoints":"xs sm md","formatString":"MMM YYYY"},
|
||||
{"name":"dob","title":"Date of Birth","type":"date","breakpoints":"xs sm md","formatString":"DD MMM YYYY"},
|
||||
{"name":"status","title":"Status"}
|
||||
]
|
||||
347
assets/libs/footable/css/footable.bootstrap.css
Normal file
347
assets/libs/footable/css/footable.bootstrap.css
Normal file
@@ -0,0 +1,347 @@
|
||||
/*
|
||||
* FooTable v3 - FooTable is a jQuery plugin that aims to make HTML tables on smaller devices look awesome.
|
||||
* @version 3.1.5
|
||||
* @link http://fooplugins.com
|
||||
* @copyright Steven Usher & Brad Vincent 2015
|
||||
* @license Released under the GPLv3 license.
|
||||
*/
|
||||
table.footable,
|
||||
table.footable-details {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
/*border-1*/
|
||||
border: 1px solid #dee2e6 !important;
|
||||
}
|
||||
table.footable-details {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
table.footable-hide-fouc {
|
||||
display: none;
|
||||
}
|
||||
table > tbody > tr > td > span.footable-toggle {
|
||||
margin-right: 8px;
|
||||
opacity: 0.3;
|
||||
}
|
||||
table > tbody > tr > td > span.footable-toggle.last-column {
|
||||
margin-left: 8px;
|
||||
float: right;
|
||||
}
|
||||
table.table-condensed > tbody > tr > td > span.footable-toggle {
|
||||
margin-right: 5px;
|
||||
}
|
||||
table.footable-details > tbody > tr > th:nth-child(1) {
|
||||
min-width: 40px;
|
||||
width: 120px;
|
||||
}
|
||||
table.footable-details > tbody > tr > td:nth-child(2) {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
table.footable-details > thead > tr:first-child > th,
|
||||
table.footable-details > thead > tr:first-child > td,
|
||||
table.footable-details > tbody > tr:first-child > th,
|
||||
table.footable-details > tbody > tr:first-child > td,
|
||||
table.footable-details > tfoot > tr:first-child > th,
|
||||
table.footable-details > tfoot > tr:first-child > td {
|
||||
border-top-width: 0;
|
||||
}
|
||||
table.footable-details.table-bordered > thead > tr:first-child > th,
|
||||
table.footable-details.table-bordered > thead > tr:first-child > td,
|
||||
table.footable-details.table-bordered > tbody > tr:first-child > th,
|
||||
table.footable-details.table-bordered > tbody > tr:first-child > td,
|
||||
table.footable-details.table-bordered > tfoot > tr:first-child > th,
|
||||
table.footable-details.table-bordered > tfoot > tr:first-child > td {
|
||||
border-top-width: 1px;
|
||||
}
|
||||
|
||||
div.footable-loader {
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
height: 300px;
|
||||
position: relative;
|
||||
}
|
||||
div.footable-loader > span.fooicon {
|
||||
display: inline-block;
|
||||
opacity: 0.3;
|
||||
font-size: 30px;
|
||||
line-height: 32px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
margin-top: -16px;
|
||||
margin-left: -16px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-animation: fooicon-spin-r 2s infinite linear;
|
||||
animation: fooicon-spin-r 2s infinite linear;
|
||||
}
|
||||
table.footable > tbody > tr.footable-empty > td {
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
font-size: 30px;
|
||||
}
|
||||
table.footable > tbody > tr > td,
|
||||
table.footable > tbody > tr > th {
|
||||
display: none;
|
||||
}
|
||||
table.footable > tbody > tr.footable-empty > td,
|
||||
table.footable > tbody > tr.footable-empty > th,
|
||||
table.footable > tbody > tr.footable-detail-row > td,
|
||||
table.footable > tbody > tr.footable-detail-row > th {
|
||||
display: table-cell;
|
||||
}
|
||||
@-webkit-keyframes fooicon-spin-r {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fooicon-spin-r {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
|
||||
.fooicon {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
display: inline-block;
|
||||
font-family: 'Glyphicons Halflings' !important;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
.fooicon:before,
|
||||
.fooicon:after {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.fooicon-loader:before {
|
||||
content: "\e030";
|
||||
}
|
||||
.fooicon-plus:before {
|
||||
content: "\2b";
|
||||
}
|
||||
.fooicon-minus:before {
|
||||
content: "\2212";
|
||||
}
|
||||
.fooicon-search:before {
|
||||
content: "\e003";
|
||||
}
|
||||
.fooicon-remove:before {
|
||||
content: "\e014";
|
||||
}
|
||||
.fooicon-sort:before {
|
||||
content: "\e150";
|
||||
}
|
||||
.fooicon-sort-asc:before {
|
||||
content: "\e155";
|
||||
}
|
||||
.fooicon-sort-desc:before {
|
||||
content: "\e156";
|
||||
}
|
||||
.fooicon-pencil:before {
|
||||
content: "\270f";
|
||||
}
|
||||
.fooicon-trash:before {
|
||||
content: "\e020";
|
||||
}
|
||||
.fooicon-eye-close:before {
|
||||
content: "\e106";
|
||||
}
|
||||
.fooicon-flash:before {
|
||||
content: "\e162";
|
||||
}
|
||||
.fooicon-cog:before {
|
||||
content: "\e019";
|
||||
}
|
||||
.fooicon-stats:before {
|
||||
content: "\e185";
|
||||
}
|
||||
|
||||
table.footable > thead > tr.footable-filtering > th {
|
||||
border-bottom-width: 1px;
|
||||
font-weight: normal;
|
||||
}
|
||||
.footable-filtering-external.footable-filtering-right,
|
||||
table.footable > thead > tr.footable-filtering > th,
|
||||
table.footable.footable-filtering-right > thead > tr.footable-filtering > th {
|
||||
text-align: right;
|
||||
}
|
||||
.footable-filtering-external.footable-filtering-left,
|
||||
table.footable.footable-filtering-left > thead > tr.footable-filtering > th {
|
||||
text-align: left;
|
||||
}
|
||||
.footable-filtering-external.footable-filtering-center,
|
||||
table.footable.footable-filtering-center > thead > tr.footable-filtering > th {
|
||||
text-align: center;
|
||||
}
|
||||
table.footable > thead > tr.footable-filtering > th div.form-group {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
table.footable > thead > tr.footable-filtering > th div.form-group+div.form-group {
|
||||
margin-top: 5px;
|
||||
}
|
||||
table.footable > thead > tr.footable-filtering > th div.input-group {
|
||||
width: 100%;
|
||||
}
|
||||
.footable-filtering-external ul.dropdown-menu > li > a.checkbox,
|
||||
table.footable > thead > tr.footable-filtering > th ul.dropdown-menu > li > a.checkbox {
|
||||
margin: 0;
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
.footable-filtering-external ul.dropdown-menu > li > a.checkbox > label,
|
||||
table.footable > thead > tr.footable-filtering > th ul.dropdown-menu > li > a.checkbox > label {
|
||||
display: block;
|
||||
padding-left: 20px;
|
||||
}
|
||||
.footable-filtering-external ul.dropdown-menu > li > a.checkbox input[type="checkbox"],
|
||||
table.footable > thead > tr.footable-filtering > th ul.dropdown-menu > li > a.checkbox input[type="checkbox"] {
|
||||
position: absolute;
|
||||
margin-left: -20px;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
table.footable > thead > tr.footable-filtering > th div.input-group {
|
||||
width: auto;
|
||||
}
|
||||
table.footable > thead > tr.footable-filtering > th div.form-group {
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
table.footable > thead > tr.footable-filtering > th div.form-group+div.form-group {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
table.footable > thead > tr > td.footable-sortable,
|
||||
table.footable > thead > tr > th.footable-sortable,
|
||||
table.footable > tbody > tr > td.footable-sortable,
|
||||
table.footable > tbody > tr > th.footable-sortable,
|
||||
table.footable > tfoot > tr > td.footable-sortable,
|
||||
table.footable > tfoot > tr > th.footable-sortable {
|
||||
position: relative;
|
||||
padding-right: 30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
td.footable-sortable > span.fooicon,
|
||||
th.footable-sortable > span.fooicon {
|
||||
position: absolute;
|
||||
right: 6px;
|
||||
top: 50%;
|
||||
margin-top: -7px;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease-in;
|
||||
}
|
||||
td.footable-sortable:hover > span.fooicon,
|
||||
th.footable-sortable:hover > span.fooicon {
|
||||
opacity: 1;
|
||||
}
|
||||
td.footable-sortable.footable-asc > span.fooicon,
|
||||
th.footable-sortable.footable-asc > span.fooicon,
|
||||
td.footable-sortable.footable-desc > span.fooicon,
|
||||
th.footable-sortable.footable-desc > span.fooicon {
|
||||
opacity: 1;
|
||||
}
|
||||
/* hides the sort icons when sorting is not allowed */
|
||||
table.footable-sorting-disabled td.footable-sortable.footable-asc > span.fooicon,
|
||||
table.footable-sorting-disabled td.footable-sortable.footable-desc > span.fooicon,
|
||||
table.footable-sorting-disabled td.footable-sortable:hover > span.fooicon,
|
||||
table.footable-sorting-disabled th.footable-sortable.footable-asc > span.fooicon,
|
||||
table.footable-sorting-disabled th.footable-sortable.footable-desc > span.fooicon,
|
||||
table.footable-sorting-disabled th.footable-sortable:hover > span.fooicon {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
.footable-paging-external ul.pagination,
|
||||
table.footable > tfoot > tr.footable-paging > td > ul.pagination {
|
||||
margin: 10px 0 0 0;
|
||||
}
|
||||
.footable-paging-external span.label,
|
||||
table.footable > tfoot > tr.footable-paging > td > span.label {
|
||||
display: inline-block;
|
||||
margin: 0 0 10px 0;
|
||||
padding: 4px 10px;
|
||||
}
|
||||
.footable-paging-external.footable-paging-center,
|
||||
table.footable > tfoot > tr.footable-paging > td,
|
||||
table.footable-paging-center > tfoot > tr.footable-paging > td {
|
||||
text-align: center;
|
||||
}
|
||||
.footable-paging-external.footable-paging-left,
|
||||
table.footable-paging-left > tfoot > tr.footable-paging > td {
|
||||
text-align: left;
|
||||
}
|
||||
.footable-paging-external.footable-paging-right,
|
||||
table.footable-paging-right > tfoot > tr.footable-paging > td {
|
||||
text-align: right;
|
||||
}
|
||||
ul.pagination > li.footable-page {
|
||||
display: none;
|
||||
}
|
||||
ul.pagination > li.footable-page.visible {
|
||||
display: inline;
|
||||
}
|
||||
td.footable-editing {
|
||||
width: 90px;
|
||||
max-width: 90px;
|
||||
}
|
||||
table.footable-editing-no-edit td.footable-editing,
|
||||
table.footable-editing-no-delete td.footable-editing,
|
||||
table.footable-editing-no-view td.footable-editing {
|
||||
width: 70px;
|
||||
max-width: 70px;
|
||||
}
|
||||
table.footable-editing-no-edit.footable-editing-no-delete td.footable-editing,
|
||||
table.footable-editing-no-edit.footable-editing-no-view td.footable-editing,
|
||||
table.footable-editing-no-delete.footable-editing-no-view td.footable-editing {
|
||||
width: 50px;
|
||||
max-width: 50px;
|
||||
}
|
||||
table.footable-editing-no-edit.footable-editing-no-delete.footable-editing-no-view td.footable-editing,
|
||||
table.footable-editing-no-edit.footable-editing-no-delete.footable-editing-no-view th.footable-editing {
|
||||
width: 0;
|
||||
max-width: 0;
|
||||
display: none !important;
|
||||
}
|
||||
table.footable-editing-right td.footable-editing,
|
||||
table.footable-editing-right tr.footable-editing {
|
||||
text-align: right;
|
||||
}
|
||||
table.footable-editing-left td.footable-editing,
|
||||
table.footable-editing-left tr.footable-editing {
|
||||
text-align: left;
|
||||
}
|
||||
table.footable-editing button.footable-add,
|
||||
table.footable-editing button.footable-hide,
|
||||
table.footable-editing-show button.footable-show,
|
||||
table.footable-editing.footable-editing-always-show button.footable-show,
|
||||
table.footable-editing.footable-editing-always-show button.footable-hide,
|
||||
table.footable-editing.footable-editing-always-show.footable-editing-no-add tr.footable-editing {
|
||||
display: none;
|
||||
}
|
||||
table.footable-editing.footable-editing-show button.footable-add,
|
||||
table.footable-editing.footable-editing-show button.footable-hide,
|
||||
table.footable-editing.footable-editing-always-show button.footable-add {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.footable-editing > .btn-group-vertical>.btn, .btn-group>.btn {
|
||||
padding: 5px;
|
||||
}
|
||||
3
assets/libs/footable/css/footable.bootstrap.min.css
vendored
Normal file
3
assets/libs/footable/css/footable.bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
14
assets/libs/footable/dist/footable.all.min.js
vendored
Normal file
14
assets/libs/footable/dist/footable.all.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
assets/libs/footable/dist/footable.bookmarkable.min.js
vendored
Normal file
1
assets/libs/footable/dist/footable.bookmarkable.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
(function(t,e,undefined){function a(t,e){e=e?e:location.hash;var a=RegExp("&"+t+"(?:=([^&]*))?(?=&|$)","i");return(e=e.replace(/^\#/,"&").match(a))?e[1]===undefined?"":decodeURIComponent(e[1]):undefined}function i(e,a){var i=t(e.table).find("tbody").find("tr:not(.footable-row-detail, .footable-filtered)").length;t(e.table).data("status_num_total",i);var o=t(e.table).find("tbody").find("tr:not(.footable-row-detail)").filter(":visible").length;t(e.table).data("status_num_shown",o);var n=t(e.table).data("sorted"),r=t(e.table).find("th")[n],l=t(r).hasClass("footable-sorted-desc");if(t(e.table).data("status_descending",l),e.pageInfo){var s=e.pageInfo.currentPage;t(e.table).data("status_pagenum",s)}var d="",f=t(e.table).data("filter");t(f).length&&(d=t(f).val()),t(e.table).data("status_filter_val",d);var u,p,c;if("footable_row_expanded"==a.type&&(u=a.row,u&&(p=t(e.table).data("expanded_rows"),c=[],p&&(c=p.split(",")),c.push(u.rowIndex),t(e.table).data("expanded_rows",c.join(",")))),"footable_row_collapsed"==a.type&&(u=a.row)){p=t(e.table).data("expanded_rows"),c=[],p&&(c=p.split(","));var g=[];for(var b in c)if(c[b]==u.rowIndex){g=c.splice(b,1);break}t(e.table).data("expanded_rows",g.join(","))}}function o(){var e=this;e.name="Footable LucidBookmarkable",e.init=function(e){e.options.bookmarkable.enabled&&t(e.table).bind({footable_initialized:function(){var i=e.table.id,o=a(i+"_f"),n=a(i+"_p"),r=a(i+"_s"),l=a(i+"_d"),s=a(i+"_e");if(o){var d=t(e.table).data("filter");t(d).val(o),t(e.table).trigger("footable_filter",{filter:o})}if(n&&t(e.table).data("currentPage",n),r!==undefined){var f=t(e.table).data("footable-sort"),u=!0;"true"==l&&(u=!1),f.doSort(r,u)}else t(e.table).trigger("footable_setup_paging");if(s){var p=s.split(",");for(var c in p){var g=t(e.table.rows[p[c]]);g.find("> td:first").trigger("footable_toggle_row")}}e.lucid_bookmark_read=!0},"footable_page_filled footable_redrawn footable_filtered footable_sorted footable_row_expanded footable_row_collapsed":function(a){if(i(e,a),e.lucid_bookmark_read){var o=e.table.id,n=o+"_f",r=o+"_p",l=o+"_s",s=o+"_d",d=o+"_e",f=location.hash.replace(/^\#/,"&"),u=[n,r,l,s,d];for(var p in u){var c=RegExp("&"+u[p]+"=([^&]*)","g");f=f.replace(c,"")}var g={};g[n]=t(e.table).data("status_filter_val"),g[r]=t(e.table).data("status_pagenum"),g[l]=t(e.table).data("sorted"),g[s]=t(e.table).data("status_descending"),g[d]=t(e.table).data("expanded_rows");var b=[];for(var h in g)g[h]!==undefined&&b.push(h+"="+encodeURIComponent(g[h]));f.length&&b.push(f),location.hash=b.join("&")}}})}}if(e.footable===undefined||null===e.foobox)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var n={bookmarkable:{enabled:!1}};e.footable.plugins.register(o,n)})(jQuery,window);
|
||||
1
assets/libs/footable/dist/footable.filter.min.js
vendored
Normal file
1
assets/libs/footable/dist/footable.filter.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
(function(t,e,undefined){function a(){var e=this;e.name="Footable Filter",e.init=function(a){if(e.footable=a,a.options.filter.enabled===!0){if(t(a.table).data("filter")===!1)return;a.timers.register("filter"),t(a.table).unbind(".filtering").bind({"footable_initialized.filtering":function(){var i=t(a.table),o={input:i.data("filter")||a.options.filter.input,timeout:i.data("filter-timeout")||a.options.filter.timeout,minimum:i.data("filter-minimum")||a.options.filter.minimum,disableEnter:i.data("filter-disable-enter")||a.options.filter.disableEnter};o.disableEnter&&t(o.input).keypress(function(t){return window.event?13!==window.event.keyCode:13!==t.which}),i.bind("footable_clear_filter",function(){t(o.input).val(""),e.clearFilter()}),i.bind("footable_filter",function(t,a){e.filter(a.filter)}),t(o.input).keyup(function(i){a.timers.filter.stop(),27===i.which&&t(o.input).val(""),a.timers.filter.start(function(){var a=t(o.input).val()||"";e.filter(a)},o.timeout)})},"footable_redrawn.filtering":function(){var i=t(a.table),o=i.data("filter-string");o&&e.filter(o)}}).data("footable-filter",e)}},e.filter=function(a){var i=e.footable,o=t(i.table),n=o.data("filter-minimum")||i.options.filter.minimum,r=!a,l=i.raise("footable_filtering",{filter:a,clear:r});if(!(l&&l.result===!1||l.filter&&n>l.filter.length))if(l.clear)e.clearFilter();else{var d=l.filter.split(" ");o.find("> tbody > tr").hide().addClass("footable-filtered");var s=o.find("> tbody > tr:not(.footable-row-detail)");t.each(d,function(t,e){e&&e.length>0&&(o.data("current-filter",e),s=s.filter(i.options.filter.filterFunction))}),s.each(function(){e.showRow(this,i),t(this).removeClass("footable-filtered")}),o.data("filter-string",l.filter),i.raise("footable_filtered",{filter:l.filter,clear:!1})}},e.clearFilter=function(){var a=e.footable,i=t(a.table);i.find("> tbody > tr:not(.footable-row-detail)").removeClass("footable-filtered").each(function(){e.showRow(this,a)}),i.removeData("filter-string"),a.raise("footable_filtered",{clear:!0})},e.showRow=function(e,a){var i=t(e),o=i.next(),n=t(a.table);i.is(":visible")||(n.hasClass("breakpoint")&&i.hasClass("footable-detail-show")&&o.hasClass("footable-row-detail")?(i.add(o).show(),a.createOrUpdateDetailRow(e)):i.show())}}if(e.footable===undefined||null===e.footable)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var i={filter:{enabled:!0,input:".footable-filter",timeout:300,minimum:2,disableEnter:!1,filterFunction:function(){var e=t(this),a=e.parents("table:first"),i=a.data("current-filter").toUpperCase(),o=e.find("td").text();return a.data("filter-text-only")||e.find("td[data-value]").each(function(){o+=t(this).data("value")}),o.toUpperCase().indexOf(i)>=0}}};e.footable.plugins.register(a,i)})(jQuery,window);
|
||||
1
assets/libs/footable/dist/footable.grid.min.js
vendored
Normal file
1
assets/libs/footable/dist/footable.grid.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
429
assets/libs/footable/dist/footable.memory.js
vendored
Normal file
429
assets/libs/footable/dist/footable.memory.js
vendored
Normal file
@@ -0,0 +1,429 @@
|
||||
/**
|
||||
* Footable Memory
|
||||
*
|
||||
* Version 1.1.0
|
||||
*
|
||||
* Requires browser support for localStorage. Fallback to cookies using
|
||||
* jQuery Cookie (https://github.com/carhartl/jquery-cookie)
|
||||
*
|
||||
* Stores table state in a cookie and reloads state when page is refreshed.
|
||||
*
|
||||
* Supports common FooTable features:
|
||||
* - Pagination
|
||||
* - Sorting
|
||||
* - Filtering
|
||||
* - Expansion
|
||||
*
|
||||
* Written to be compatible with multiple FooTables per page and with
|
||||
* JavaScript libraries like AngularJS and Ember that use hash based URLs.
|
||||
*
|
||||
* Disabled by default, to enable add the following section to the footable
|
||||
* options:
|
||||
*
|
||||
* $('#table').footable({
|
||||
* memory: {
|
||||
* enabled: true
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* Based on FooTable Plugin Bookmarkable by Amy Farrell (https://github.com/akf)
|
||||
*
|
||||
* Created by Chris Laskey (https://github.com/chrislaskey)
|
||||
*/
|
||||
|
||||
(function ($, w, undefined) {
|
||||
|
||||
if (w.footable === undefined || w.foobox === null) {
|
||||
throw new Error('Please check and make sure footable.js is included in the page and is loaded prior to this script.');
|
||||
}
|
||||
|
||||
var defaults = {
|
||||
memory: {
|
||||
enabled: false
|
||||
}
|
||||
};
|
||||
|
||||
var storage;
|
||||
|
||||
var storage_engines = {};
|
||||
|
||||
storage_engines.local_storage = (function($){
|
||||
|
||||
'use strict';
|
||||
|
||||
var path_page = function(){
|
||||
return location.pathname;
|
||||
};
|
||||
|
||||
var path_subpage = function(){
|
||||
return location.hash || 'root';
|
||||
};
|
||||
|
||||
var storage_key = function(index){
|
||||
return path_page() + '/' + path_subpage() + '/index-' + index;
|
||||
};
|
||||
|
||||
var get = function(index){
|
||||
var key = storage_key(index),
|
||||
as_string = localStorage.getItem(key);
|
||||
|
||||
return as_string ? JSON.parse(as_string) : {};
|
||||
};
|
||||
|
||||
var set = function(index, item){
|
||||
var key = storage_key(index),
|
||||
as_string = JSON.stringify(item);
|
||||
|
||||
localStorage.setItem(key, as_string);
|
||||
};
|
||||
|
||||
return {
|
||||
get: function(index){
|
||||
return get(index);
|
||||
},
|
||||
set: function(index, item){
|
||||
set(index, item);
|
||||
}
|
||||
};
|
||||
|
||||
})($);
|
||||
|
||||
storage_engines.cookie = (function($){
|
||||
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Stores footable bookmarkable data in a cookie
|
||||
*
|
||||
* By default will store each page in its own cookie.
|
||||
* Supports multiple FooTables per page.
|
||||
* Supports JS frameworks that use hashmap URLs (AngularJS, Ember, etc).
|
||||
*
|
||||
* For example take an example application:
|
||||
*
|
||||
* http://example.com/application-data (2 FooTables on this page)
|
||||
* http://example.com/application-data/#/details (1 FooTable on this page)
|
||||
* http://example.com/other-data (1 FooTable on this page)
|
||||
*
|
||||
* Would be stored like this:
|
||||
*
|
||||
* cookie['/application-data'] = {
|
||||
* '/': {
|
||||
* 1: {
|
||||
* key1: value1,
|
||||
* key2: value2
|
||||
* },
|
||||
* 2: {
|
||||
* key1: value1,
|
||||
* key2: value2
|
||||
* }
|
||||
* },
|
||||
* '#/details': {
|
||||
* 1: {
|
||||
* key1: value1,
|
||||
* key2: value2
|
||||
* }
|
||||
* }
|
||||
* };
|
||||
*
|
||||
* cookie['/other-data'] = {
|
||||
* '/': {
|
||||
* 1: {
|
||||
* key1: value1,
|
||||
* key2: value2
|
||||
* },
|
||||
* }
|
||||
* }
|
||||
*
|
||||
*/
|
||||
|
||||
if( $.cookie ){
|
||||
$.cookie.json = true;
|
||||
}
|
||||
|
||||
var days_to_keep_data = 7;
|
||||
|
||||
var path_page = function(){
|
||||
return location.pathname;
|
||||
};
|
||||
|
||||
var path_subpage = function(){
|
||||
return location.hash || '/';
|
||||
};
|
||||
|
||||
var get_data = function(){
|
||||
var page = path_page(),
|
||||
data = $.cookie(page);
|
||||
|
||||
return data || {};
|
||||
};
|
||||
|
||||
var get_table = function(index){
|
||||
var subpage = path_subpage(),
|
||||
data = get_data();
|
||||
|
||||
if( data[subpage] && data[subpage][index] ){
|
||||
return data[subpage][index];
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
};
|
||||
|
||||
var set = function(index, item){
|
||||
var page = path_page(),
|
||||
subpage = path_subpage(),
|
||||
data = get_data(),
|
||||
options;
|
||||
|
||||
if( !data[subpage] ){
|
||||
data[subpage] = {};
|
||||
}
|
||||
|
||||
data[subpage][index] = item;
|
||||
|
||||
options = {
|
||||
path: page,
|
||||
expires: days_to_keep_data
|
||||
};
|
||||
|
||||
$.cookie(page, data, options);
|
||||
};
|
||||
|
||||
return {
|
||||
get: function(index){
|
||||
return get_table(index);
|
||||
},
|
||||
set: function(index, item){
|
||||
set(index, item);
|
||||
}
|
||||
};
|
||||
|
||||
})($);
|
||||
|
||||
var set_storage_engine = (function(){
|
||||
var test = 'footable-memory-plugin-storage-test';
|
||||
|
||||
try {
|
||||
localStorage.setItem(test, test);
|
||||
localStorage.removeItem(test);
|
||||
storage = storage_engines.local_storage;
|
||||
} catch(e) {
|
||||
try {
|
||||
$.cookie(test, test);
|
||||
storage = storage_engines.cookie;
|
||||
} catch(e) {
|
||||
throw new Error('FooTable Memory requires either localStorage or cookie support via jQuery $.cookie plugin (https://github.com/carhartl/jquery-cookie)');
|
||||
}
|
||||
}
|
||||
})($);
|
||||
|
||||
var state = (function($){
|
||||
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Gets and sets current table state
|
||||
*/
|
||||
|
||||
var vars = {};
|
||||
|
||||
var get = {};
|
||||
|
||||
var set = {};
|
||||
|
||||
set.vars = function(ft){
|
||||
vars.ft = ft;
|
||||
vars.table = $(ft.table);
|
||||
};
|
||||
|
||||
get.descending = function(){
|
||||
var descending = false;
|
||||
$.each(vars.table.find('th'), function(index){
|
||||
if( $(this).hasClass('footable-sorted-desc') ){
|
||||
descending = true;
|
||||
}
|
||||
});
|
||||
return descending;
|
||||
};
|
||||
|
||||
get.expanded = function(){
|
||||
var indexes = [];
|
||||
$.each(vars.ft.table.rows, function(index, value){
|
||||
if( $(this).hasClass('footable-detail-show') ){
|
||||
indexes.push(index);
|
||||
}
|
||||
});
|
||||
return indexes;
|
||||
};
|
||||
|
||||
set.expanded = function(data){
|
||||
if( data.expanded ){
|
||||
$.each(data.expanded, function(index, value){
|
||||
// var row = $(vars.ft.table.rows[value]);
|
||||
// row.find('> td:first').trigger('footable_toggle_row');
|
||||
|
||||
// Trying to execute the lines above, but the expanded row
|
||||
// shows raw AngularJS template (with {{ values }}) instead
|
||||
// of the fully rendered result.
|
||||
//
|
||||
// Best guess is some things happen after
|
||||
// 'footable_initialized' event and row expanding can not
|
||||
// occur until after those fire.
|
||||
//
|
||||
// A hack to get around this is to wait an interval before
|
||||
// executing the intended commands. Wrapped in an
|
||||
// immediately executing function to ensure ft is the
|
||||
// current value.
|
||||
|
||||
(function(ft){
|
||||
setTimeout(function(){
|
||||
var row = $(ft.table.rows[value]);
|
||||
row.find('> td:first').trigger('footable_toggle_row');
|
||||
}, 150);
|
||||
})(vars.ft);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
get.filter = function(){
|
||||
return vars.table.data('filter') ? $(vars.table.data('filter')).val() : '';
|
||||
};
|
||||
|
||||
set.filter = function(data){
|
||||
if( data.filter ){
|
||||
$(vars.table.data('filter'))
|
||||
.val(data.filter)
|
||||
.trigger('keyup');
|
||||
}
|
||||
};
|
||||
|
||||
get.page = function(){
|
||||
return vars.ft.pageInfo && vars.ft.pageInfo.currentPage !== undefined ? vars.ft.pageInfo.currentPage : 0;
|
||||
};
|
||||
|
||||
set.page = function(data){
|
||||
if( data.page ){
|
||||
vars.table.data('currentPage', data.page);
|
||||
// Delay triggering table until sort is updated, since both effect
|
||||
// pagination.
|
||||
}
|
||||
};
|
||||
|
||||
get.shown = function(){
|
||||
return vars.table
|
||||
.find('tbody')
|
||||
.find('tr:not(.footable-row-detail)')
|
||||
.filter(':visible').length;
|
||||
};
|
||||
|
||||
get.sorted = function(){
|
||||
if( vars.table.data('sorted') !== undefined ){
|
||||
return vars.table.data('sorted');
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
|
||||
set.sorted = function(data){
|
||||
if( data.sorted >= 0 ) {
|
||||
// vars.table.data('footable-sort').doSort(data.sorted, !data.descending);
|
||||
|
||||
// Trying to execute the line above, but only sort icon on the
|
||||
// <th> element gets set. The rows themselves do not get sorted.
|
||||
//
|
||||
// Best guess is some things happen after 'footable_initialized' event
|
||||
// and sorting can not occur until after those fire.
|
||||
//
|
||||
// A hack to get around this is to wait an interval before executing
|
||||
// the intended commands. Wrapped in an immediately executing
|
||||
// function to ensure ft is the current value.
|
||||
|
||||
(function(ft){
|
||||
setTimeout(function(){
|
||||
$(ft.table).data('footable-sort').doSort(data.sorted, !data.descending);
|
||||
}, 150);
|
||||
})(vars.ft);
|
||||
} else {
|
||||
vars.table.trigger('footable_setup_paging');
|
||||
}
|
||||
};
|
||||
|
||||
get.total = function(){
|
||||
return vars.table
|
||||
.find('tbody')
|
||||
.find('tr:not(.footable-row-detail, .footable-filtered)').length;
|
||||
};
|
||||
|
||||
var get_state = function(){
|
||||
return {
|
||||
descending: get.descending(),
|
||||
expanded: get.expanded(),
|
||||
filter: get.filter(),
|
||||
page: get.page(),
|
||||
shown: get.shown(),
|
||||
sorted: get.sorted(),
|
||||
total: get.total()
|
||||
};
|
||||
};
|
||||
|
||||
var set_state = function(data){
|
||||
set.filter(data);
|
||||
set.page(data);
|
||||
set.sorted(data);
|
||||
set.expanded(data);
|
||||
};
|
||||
|
||||
return {
|
||||
get: function(ft){
|
||||
set.vars(ft);
|
||||
return get_state();
|
||||
},
|
||||
set: function(ft, data){
|
||||
set.vars(ft);
|
||||
return set_state(data);
|
||||
}
|
||||
};
|
||||
|
||||
})($);
|
||||
|
||||
var is_enabled = function(ft){
|
||||
return ft.options.memory.enabled;
|
||||
};
|
||||
|
||||
var update = function(ft, event) {
|
||||
var index = ft.id,
|
||||
data = state.get(ft);
|
||||
|
||||
storage.set(index, data);
|
||||
};
|
||||
|
||||
var load = function(ft){
|
||||
var index = ft.id,
|
||||
data = storage.get(index);
|
||||
|
||||
state.set(ft, data);
|
||||
ft.memory_plugin_loaded = true;
|
||||
};
|
||||
|
||||
function Memory() {
|
||||
var p = this;
|
||||
p.name = 'Footable Memory';
|
||||
p.init = function(ft) {
|
||||
if (is_enabled(ft)) {
|
||||
$(ft.table).bind({
|
||||
'footable_initialized': function(){
|
||||
load(ft);
|
||||
},
|
||||
'footable_page_filled footable_redrawn footable_filtered footable_sorted footable_row_expanded footable_row_collapsed': function(e) {
|
||||
if (ft.memory_plugin_loaded) {
|
||||
update(ft, e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
w.footable.plugins.register(Memory, defaults);
|
||||
|
||||
})(jQuery, window);
|
||||
14
assets/libs/footable/dist/footable.min.js
vendored
Normal file
14
assets/libs/footable/dist/footable.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
assets/libs/footable/dist/footable.paginate.min.js
vendored
Normal file
1
assets/libs/footable/dist/footable.paginate.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
44
assets/libs/footable/dist/footable.plugin.template.js
vendored
Normal file
44
assets/libs/footable/dist/footable.plugin.template.js
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
(function ($, w, undefined) {
|
||||
if (w.footable === undefined || w.foobox === null)
|
||||
throw new Error('Please check and make sure footable.js is included in the page and is loaded prior to this script.');
|
||||
|
||||
var defaults = {
|
||||
/*
|
||||
Plugin options here, example:
|
||||
|
||||
var defaults = {
|
||||
myPlugin: {
|
||||
enabled: true
|
||||
}
|
||||
};
|
||||
|
||||
This would allow you to access this option using ft.options.myPlugin.enabled
|
||||
*/
|
||||
};
|
||||
|
||||
function MyPlugin() {
|
||||
var p = this;
|
||||
p.name = 'Footable MyPlugin';
|
||||
p.init = function(ft) {
|
||||
$(ft.table).bind({
|
||||
/*
|
||||
Bind to relevant events here to modify/add functionality to Footable, example:
|
||||
|
||||
$(ft.table).bind({
|
||||
'footable_initialized': function(e){
|
||||
if (e.ft.options.myPlugin.enabled === true){
|
||||
alert('Hello World');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
This would listen for the 'footable_initialized' event and when called check if the plugin is enabled
|
||||
and if it is alert 'Hello World' to the user.
|
||||
*/
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
w.footable.plugins.register(MyPlugin, defaults);
|
||||
|
||||
})(jQuery, window);
|
||||
1
assets/libs/footable/dist/footable.sort.min.js
vendored
Normal file
1
assets/libs/footable/dist/footable.sort.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
(function(t,e,undefined){function a(){var e=this;e.name="Footable Sortable",e.init=function(a){e.footable=a,a.options.sort===!0&&t(a.table).unbind(".sorting").bind({"footable_initialized.sorting":function(){var i,o,n=t(a.table),r=(n.find("> tbody"),a.options.classes.sort);if(n.data("sort")!==!1){n.find("> thead > tr:last-child > th, > thead > tr:last-child > td").each(function(){var e=t(this),i=a.columns[e.index()];i.sort.ignore===!0||e.hasClass(r.sortable)||(e.addClass(r.sortable),t("<span />").addClass(r.indicator).appendTo(e))}),n.find("> thead > tr:last-child > th."+r.sortable+", > thead > tr:last-child > td."+r.sortable).unbind("click.footable").bind("click.footable",function(a){a.preventDefault(),o=t(this);var i=!o.hasClass(r.sorted);return e.doSort(o.index(),i),!1});var l=!1;for(var s in a.columns)if(i=a.columns[s],i.sort.initial){var d="descending"!==i.sort.initial;e.doSort(i.index,d);break}l&&a.bindToggleSelectors()}},"footable_redrawn.sorting":function(){var i=t(a.table),o=a.options.classes.sort;i.data("sorted")>=0&&i.find("> thead > tr:last-child > th").each(function(a){var i=t(this);return i.hasClass(o.sorted)||i.hasClass(o.descending)?(e.doSort(a),undefined):undefined})},"footable_column_data.sorting":function(e){var a=t(e.column.th);e.column.data.sort=e.column.data.sort||{},e.column.data.sort.initial=a.data("sort-initial")||!1,e.column.data.sort.ignore=a.data("sort-ignore")||!1,e.column.data.sort.selector=a.data("sort-selector")||null;var i=a.data("sort-match")||0;i>=e.column.data.matches.length&&(i=0),e.column.data.sort.match=e.column.data.matches[i]}}).data("footable-sort",e)},e.doSort=function(a,i){var o=e.footable;if(t(o.table).data("sort")!==!1){var n=t(o.table),r=n.find("> tbody"),l=o.columns[a],s=n.find("> thead > tr:last-child > th:eq("+a+")"),d=o.options.classes.sort,f=o.options.events.sort;if(i=i===undefined?s.hasClass(d.sorted):"toggle"===i?!s.hasClass(d.sorted):i,l.sort.ignore===!0)return!0;var u=o.raise(f.sorting,{column:l,direction:i?"ASC":"DESC"});u&&u.result===!1||(n.data("sorted",l.index),n.find("> thead > tr:last-child > th, > thead > tr:last-child > td").not(s).removeClass(d.sorted+" "+d.descending),i===undefined&&(i=s.hasClass(d.sorted)),i?s.removeClass(d.descending).addClass(d.sorted):s.removeClass(d.sorted).addClass(d.descending),e.sort(o,r,l,i),o.bindToggleSelectors(),o.raise(f.sorted,{column:l,direction:i?"ASC":"DESC"}))}},e.rows=function(e,a,i){var o=[];return a.find("> tr").each(function(){var a=t(this),n=null;if(a.hasClass(e.options.classes.detail))return!0;a.next().hasClass(e.options.classes.detail)&&(n=a.next().get(0));var r={row:a,detail:n};return i!==undefined&&(r.value=e.parse(this.cells[i.sort.match],i)),o.push(r),!0}).detach(),o},e.sort=function(t,a,i,o){var n=e.rows(t,a,i),r=t.options.sorters[i.type]||t.options.sorters.alpha;n.sort(function(t,e){return o?r(t.value,e.value):r(e.value,t.value)});for(var l=0;n.length>l;l++)a.append(n[l].row),null!==n[l].detail&&a.append(n[l].detail)}}if(e.footable===undefined||null===e.footable)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var i={sort:!0,sorters:{alpha:function(t,e){return"string"==typeof t&&(t=t.toLowerCase()),"string"==typeof e&&(e=e.toLowerCase()),t===e?0:e>t?-1:1},numeric:function(t,e){return t-e}},classes:{sort:{sortable:"footable-sortable",sorted:"footable-sorted",descending:"footable-sorted-desc",indicator:"footable-sort-indicator"}},events:{sort:{sorting:"footable_sorting",sorted:"footable_sorted"}}};e.footable.plugins.register(a,i)})(jQuery,window);
|
||||
1
assets/libs/footable/dist/footable.striping.min.js
vendored
Normal file
1
assets/libs/footable/dist/footable.striping.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
(function(t,e,undefined){function a(){var e=this;e.name="Footable Striping",e.init=function(a){e.footable=a,t(a.table).unbind("striping").bind({"footable_initialized.striping footable_row_removed.striping footable_redrawn.striping footable_sorted.striping footable_filtered.striping":function(){t(this).data("striping")!==!1&&e.setupStriping(a)}})},e.setupStriping=function(e){var a=0;t(e.table).find("> tbody > tr:not(.footable-row-detail)").each(function(){var i=t(this);i.removeClass(e.options.classes.striping.even).removeClass(e.options.classes.striping.odd),0===a%2?i.addClass(e.options.classes.striping.even):i.addClass(e.options.classes.striping.odd),a++})}}if(e.footable===undefined||null===e.foobox)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var i={striping:{enabled:!0},classes:{striping:{odd:"footable-odd",even:"footable-even"}}};e.footable.plugins.register(a,i)})(jQuery,window);
|
||||
7369
assets/libs/footable/js/footable.js
Normal file
7369
assets/libs/footable/js/footable.js
Normal file
File diff suppressed because it is too large
Load Diff
10
assets/libs/footable/js/footable.min.js
vendored
Normal file
10
assets/libs/footable/js/footable.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
101
assets/libs/footable/rows.json
Normal file
101
assets/libs/footable/rows.json
Normal file
@@ -0,0 +1,101 @@
|
||||
[
|
||||
{"id":1,"firstName":"Annemarie","lastName":"Bruening","something":1381105566987,"jobTitle":"Cloak Room Attendant","started":1367700388909,"dob":122365714987,"status":"Suspended"},
|
||||
{"id":2,"firstName":"Nelly","lastName":"Lusher","something":1267237540208,"jobTitle":"Broadcast Maintenance Engineer","started":1382739570973,"dob":183768652128,"status":"Disabled"},
|
||||
{"id":3,"firstName":"Lorraine","lastName":"Kyger","something":1263216405811,"jobTitle":"Geophysicist","started":1265199486212,"dob":414197000409,"status":"Active"},
|
||||
{"id":4,"firstName":"Maire","lastName":"Vanatta","something":1317652005631,"jobTitle":"Gaming Cage Cashier","started":1359190254082,"dob":381574699574,"status":"Disabled"},
|
||||
{"id":5,"firstName":"Whiney","lastName":"Keasler","something":1297738568550,"jobTitle":"High School Librarian","started":1377538533615,"dob":-11216050657,"status":"Active"},
|
||||
{"id":6,"firstName":"Nikia","lastName":"Badgett","something":1283192889859,"jobTitle":"Clown","started":1348067291754,"dob":-236655382175,"status":"Active"},
|
||||
{"id":7,"firstName":"Renea","lastName":"Stever","something":1289586239969,"jobTitle":"Work Ticket Distributor","started":1312738712940,"dob":483475202947,"status":"Disabled"},
|
||||
{"id":8,"firstName":"Rayna","lastName":"Resler","something":1351969871214,"jobTitle":"Ordnance Engineer","started":1300981406722,"dob":267565804332,"status":"Disabled"},
|
||||
{"id":9,"firstName":"Sephnie","lastName":"Cooke","something":1318107009703,"jobTitle":"Accounts Collector","started":1348566414201,"dob":84698632860,"status":"Suspended"},
|
||||
{"id":10,"firstName":"Lauri","lastName":"Kyles","something":1298847936600,"jobTitle":"Commercial Lender","started":1306984494872,"dob":647549298565,"status":"Disabled"},
|
||||
{"id":11,"firstName":"Maria","lastName":"Hosler","something":1372447291002,"jobTitle":"Auto Detailer","started":1295239832657,"dob":92796339552,"status":"Suspended"},
|
||||
{"id":12,"firstName":"Lakeshia","lastName":"Sprinkle","something":1296451003728,"jobTitle":"Garment Presser","started":1350695946669,"dob":6068444160,"status":"Suspended"},
|
||||
{"id":13,"firstName":"Isidra","lastName":"Dragoo","something":1285852466255,"jobTitle":"Window Trimmer","started":1264658548150,"dob":129659544744,"status":"Active"},
|
||||
{"id":14,"firstName":"Marquia","lastName":"Ardrey","something":1336968147859,"jobTitle":"Broadcast Maintenance Engineer","started":1281348596711,"dob":69513590957,"status":"Disabled"},
|
||||
{"id":15,"firstName":"Jua","lastName":"Bottom","something":1322560108993,"jobTitle":"Broadcast Maintenance Engineer","started":1350354712910,"dob":397465403667,"status":"Active"},
|
||||
{"id":16,"firstName":"Delana","lastName":"Sprouse","something":1367925208609,"jobTitle":"High School Librarian","started":1360754556666,"dob":-101355021375,"status":"Disabled"},
|
||||
{"id":17,"firstName":"Annamaria","lastName":"Pennock","something":1385602980951,"jobTitle":"Photocopying Equipment Repairer","started":1267426062440,"dob":129358493928,"status":"Active"},
|
||||
{"id":18,"firstName":"Junie","lastName":"Leinen","something":1270540402378,"jobTitle":"Roller Skater","started":1343534987824,"dob":405467757390,"status":"Suspended"},
|
||||
{"id":19,"firstName":"Charles","lastName":"Hayton","something":1309910398220,"jobTitle":"Ships Electronic Warfare Officer","started":1297511155831,"dob":603442557419,"status":"Disabled"},
|
||||
{"id":20,"firstName":"Lorriane","lastName":"Roling","something":1278850931389,"jobTitle":"Industrial Waste Treatment Technician","started":1279697681249,"dob":236380359513,"status":"Disabled"},
|
||||
{"id":21,"firstName":"Alice","lastName":"Goodlow","something":1268720188765,"jobTitle":"State Archivist","started":1381306773987,"dob":455731231484,"status":"Disabled"},
|
||||
{"id":22,"firstName":"Carie","lastName":"Dragoo","something":1384770174557,"jobTitle":"Financial Accountant","started":1277771127047,"dob":-219020252497,"status":"Active"},
|
||||
{"id":23,"firstName":"Gran","lastName":"Valles","something":1337645396364,"jobTitle":"Childrens Pastor","started":1288986457843,"dob":-227796663726,"status":"Suspended"},
|
||||
{"id":24,"firstName":"Jacqulyn","lastName":"Polo","something":1326444321746,"jobTitle":"Window Trimmer","started":1301386589024,"dob":35495285174,"status":"Suspended"},
|
||||
{"id":25,"firstName":"Whiney","lastName":"Schug","something":1307849405355,"jobTitle":"Financial Accountant","started":1306555903074,"dob":435274848084,"status":"Disabled"},
|
||||
{"id":26,"firstName":"Dennise","lastName":"Halladay","something":1337981034973,"jobTitle":"Geophysicist","started":1322643709717,"dob":181548946421,"status":"Active"},
|
||||
{"id":27,"firstName":"Celia","lastName":"Leister","something":1309315284479,"jobTitle":"Commercial Lender","started":1331516367758,"dob":-264359348487,"status":"Disabled"},
|
||||
{"id":28,"firstName":"Karon","lastName":"Klotz","something":1320236999249,"jobTitle":"Route Sales Person","started":1317976956544,"dob":-305463328126,"status":"Suspended"},
|
||||
{"id":29,"firstName":"Myesha","lastName":"Kyger","something":1314407559398,"jobTitle":"LAN Systems Administrator","started":1376934306176,"dob":-218657222188,"status":"Disabled"},
|
||||
{"id":30,"firstName":"Beariz","lastName":"Ortego","something":1310918048393,"jobTitle":"Commercial Lender","started":1326301928745,"dob":17930742800,"status":"Suspended"},
|
||||
{"id":31,"firstName":"Lauri","lastName":"Landa","something":1299220719823,"jobTitle":"Emergency Room Orderly","started":1278297973662,"dob":389332600186,"status":"Disabled"},
|
||||
{"id":32,"firstName":"Lakeshia","lastName":"Cataldo","something":1276655728605,"jobTitle":"Biology Laboratory Assistant","started":1345440531397,"dob":670737968811,"status":"Active"},
|
||||
{"id":33,"firstName":"Jack","lastName":"Goodlow","something":1359264767205,"jobTitle":"Wallpaperer Helper","started":1325417690668,"dob":390860124904,"status":"Disabled"},
|
||||
{"id":34,"firstName":"Karon","lastName":"Weisz","something":1385661528555,"jobTitle":"Parachute Officer","started":1381228657436,"dob":258279988522,"status":"Disabled"},
|
||||
{"id":35,"firstName":"Bernie","lastName":"Ates","something":1290416240383,"jobTitle":"Beveling and Edging Machine Operator","started":1339828820306,"dob":-241204720505,"status":"Disabled"},
|
||||
{"id":36,"firstName":"Alonzo","lastName":"Dragoo","something":1385425643141,"jobTitle":"Route Sales Person","started":1283427599749,"dob":-43286536918,"status":"Active"},
|
||||
{"id":37,"firstName":"Jacqulyn","lastName":"Boudreaux","something":1301509564939,"jobTitle":"Hemodialysis Technician","started":1299186053429,"dob":-28706770458,"status":"Active"},
|
||||
{"id":38,"firstName":"Whiney","lastName":"Smelcer","something":1348107814490,"jobTitle":"Offbearer","started":1279051462500,"dob":-83372379183,"status":"Disabled"},
|
||||
{"id":39,"firstName":"Laurena","lastName":"Ardrey","something":1317463286660,"jobTitle":"Master of Ceremonies","started":1277026873583,"dob":-265217817760,"status":"Suspended"},
|
||||
{"id":40,"firstName":"Lashanda","lastName":"Wohlwend","something":1348081466228,"jobTitle":"Offbearer","started":1376204654140,"dob":-244248898940,"status":"Disabled"},
|
||||
{"id":41,"firstName":"Gwyn","lastName":"Fuhrman","something":1297825975376,"jobTitle":"Internal Medicine Nurse Practitioner","started":1360899610372,"dob":666149629137,"status":"Active"},
|
||||
{"id":42,"firstName":"Chun","lastName":"Cooke","something":1367188188482,"jobTitle":"Electrical Engineering Director","started":1263546064404,"dob":51712931971,"status":"Disabled"},
|
||||
{"id":43,"firstName":"Mariko","lastName":"Furniss","something":1350578370165,"jobTitle":"National Association for Stock Car Auto Racing Driver","started":1309447851039,"dob":464309188120,"status":"Disabled"},
|
||||
{"id":44,"firstName":"Londa","lastName":"Difranco","something":1302061818121,"jobTitle":"Periodontist","started":1278471697817,"dob":114612210842,"status":"Active"},
|
||||
{"id":45,"firstName":"Junie","lastName":"Leinen","something":1288710880233,"jobTitle":"Geophysical Engineer","started":1358658207175,"dob":467506533140,"status":"Active"},
|
||||
{"id":46,"firstName":"Chun","lastName":"Branco","something":1352564545893,"jobTitle":"LAN Systems Administrator","started":1287347506646,"dob":647599930885,"status":"Disabled"},
|
||||
{"id":47,"firstName":"Rheba","lastName":"Branco","something":1266316091624,"jobTitle":"Telephone Lines Repairer","started":1331066862260,"dob":452152850326,"status":"Active"},
|
||||
{"id":48,"firstName":"Isidra","lastName":"Sluss","something":1276489295656,"jobTitle":"Photocopying Equipment Repairer","started":1271941169015,"dob":288909488866,"status":"Active"},
|
||||
{"id":49,"firstName":"Myesha","lastName":"Marco","something":1372414008480,"jobTitle":"Clinical Services Director","started":1271766890324,"dob":374650329690,"status":"Suspended"},
|
||||
{"id":50,"firstName":"Karena","lastName":"Hosler","something":1294015640769,"jobTitle":"Automobile Body Painter","started":1280013636936,"dob":398832948998,"status":"Active"},
|
||||
{"id":51,"firstName":"Whiney","lastName":"Falls","something":1343358865538,"jobTitle":"Childrens Pastor","started":1270853037253,"dob":-164518511726,"status":"Active"},
|
||||
{"id":52,"firstName":"Gran","lastName":"Dauenhauer","something":1304876059529,"jobTitle":"Commercial Lender","started":1284449547894,"dob":23725605889,"status":"Active"},
|
||||
{"id":53,"firstName":"Rona","lastName":"Nicley","something":1371323038673,"jobTitle":"Ordnance Engineer","started":1385711619364,"dob":644741897037,"status":"Disabled"},
|
||||
{"id":54,"firstName":"Charles","lastName":"Pennock","something":1271111689368,"jobTitle":"Pipe Organ Technician","started":1313121452453,"dob":215809917048,"status":"Suspended"},
|
||||
{"id":55,"firstName":"Phoebe","lastName":"Hallett","something":1365597767116,"jobTitle":"Scale Clerk","started":1372372052497,"dob":261671360690,"status":"Disabled"},
|
||||
{"id":56,"firstName":"Rona","lastName":"Valles","something":1275949467931,"jobTitle":"Pipe Organ Technician","started":1383713178914,"dob":-80231579404,"status":"Disabled"},
|
||||
{"id":57,"firstName":"Junie","lastName":"Stgelais","something":1356664390055,"jobTitle":"Emergency Room Orderly","started":1334095649576,"dob":210389956078,"status":"Suspended"},
|
||||
{"id":58,"firstName":"Judi","lastName":"Klotz","something":1277644144793,"jobTitle":"Wood Fence Installer","started":1275855811961,"dob":539954455756,"status":"Disabled"},
|
||||
{"id":59,"firstName":"Judi","lastName":"Stever","something":1295969453187,"jobTitle":"Scale Clerk","started":1353605624511,"dob":-227257898151,"status":"Suspended"},
|
||||
{"id":60,"firstName":"Laurena","lastName":"Ates","something":1373875684468,"jobTitle":"Ordnance Engineer","started":1265257792022,"dob":723437534836,"status":"Suspended"},
|
||||
{"id":61,"firstName":"Delana","lastName":"Maxton","something":1370462490417,"jobTitle":"Scale Clerk","started":1298009253232,"dob":-170766860972,"status":"Active"},
|
||||
{"id":62,"firstName":"Annemarie","lastName":"Cataldo","something":1349111358955,"jobTitle":"Childrens Pastor","started":1339938860137,"dob":756148001098,"status":"Disabled"},
|
||||
{"id":63,"firstName":"Beariz","lastName":"Ardrey","something":1307848809525,"jobTitle":"State Archivist","started":1328083403936,"dob":158469729667,"status":"Disabled"},
|
||||
{"id":64,"firstName":"Jason","lastName":"Yaple","something":1322046418919,"jobTitle":"Union Representative","started":1274963639149,"dob":-42290184765,"status":"Suspended"},
|
||||
{"id":65,"firstName":"Solomon","lastName":"Leonardo","something":1338552033174,"jobTitle":"Wood Fence Installer","started":1299246189050,"dob":548967023569,"status":"Suspended"},
|
||||
{"id":66,"firstName":"Lizzee","lastName":"Hallett","something":1290397622447,"jobTitle":"Weight Training Instructor","started":1298391849496,"dob":315448812621,"status":"Active"},
|
||||
{"id":67,"firstName":"Chun","lastName":"Hibler","something":1371180561438,"jobTitle":"Airline Transport Pilot","started":1325786897385,"dob":213832078486,"status":"Disabled"},
|
||||
{"id":68,"firstName":"Junie","lastName":"Leister","something":1370855772790,"jobTitle":"Magician","started":1274400042690,"dob":567177840352,"status":"Active"},
|
||||
{"id":69,"firstName":"Lucila","lastName":"Bottom","something":1298428240748,"jobTitle":"Commercial Lender","started":1384714584264,"dob":197489406189,"status":"Active"},
|
||||
{"id":70,"firstName":"Shenia","lastName":"Stgelais","something":1384899230591,"jobTitle":"Hemodialysis Technician","started":1289742377230,"dob":86200175251,"status":"Suspended"},
|
||||
{"id":71,"firstName":"Beariz","lastName":"Furniss","something":1321358118131,"jobTitle":"Serials Librarian","started":1271750637662,"dob":-1700061635,"status":"Suspended"},
|
||||
{"id":72,"firstName":"Anonina","lastName":"Schug","something":1365931268373,"jobTitle":"Industrial Waste Treatment Technician","started":1300732223840,"dob":524208129562,"status":"Suspended"},
|
||||
{"id":73,"firstName":"Rigobero","lastName":"Keasler","something":1334213897296,"jobTitle":"Post-Anesthesia Care Unit Nurse","started":1381474649060,"dob":312625171296,"status":"Suspended"},
|
||||
{"id":74,"firstName":"Muriel","lastName":"Lafromboise","something":1337309408774,"jobTitle":"Roller Skater","started":1368734853445,"dob":-299233500103,"status":"Disabled"},
|
||||
{"id":75,"firstName":"Laurena","lastName":"Valles","something":1366490868427,"jobTitle":"Childcare Center Administrator","started":1313362574426,"dob":743244140743,"status":"Disabled"},
|
||||
{"id":76,"firstName":"Lorraine","lastName":"Carasco","something":1346720156399,"jobTitle":"Technical Writer","started":1321622236813,"dob":449808416414,"status":"Suspended"},
|
||||
{"id":77,"firstName":"Neie","lastName":"Quaranta","something":1340756928057,"jobTitle":"Geophysical Engineer","started":1290642157370,"dob":579103375368,"status":"Active"},
|
||||
{"id":78,"firstName":"Claudine","lastName":"Letts","something":1380403442822,"jobTitle":"Broadcast Maintenance Engineer","started":1344418507955,"dob":497860170791,"status":"Active"},
|
||||
{"id":79,"firstName":"Doy","lastName":"Mosher","something":1381492674398,"jobTitle":"LAN Systems Administrator","started":1383492070886,"dob":313398281206,"status":"Suspended"},
|
||||
{"id":80,"firstName":"Doy","lastName":"Dauenhauer","something":1326852382094,"jobTitle":"Aircraft Landing Gear Inspector","started":1328266893960,"dob":622334288715,"status":"Suspended"},
|
||||
{"id":81,"firstName":"Ilona","lastName":"Hogle","something":1379728572228,"jobTitle":"Post-Anesthesia Care Unit Nurse","started":1347561807688,"dob":347532519012,"status":"Active"},
|
||||
{"id":82,"firstName":"Jacqulyn","lastName":"Hibler","something":1348017063340,"jobTitle":"Hemodialysis Technician","started":1309053572070,"dob":420086000556,"status":"Disabled"},
|
||||
{"id":83,"firstName":"Shona","lastName":"Valles","something":1346814216720,"jobTitle":"Geophysical Engineer","started":1280015397474,"dob":-296028769678,"status":"Active"},
|
||||
{"id":84,"firstName":"Sephnie","lastName":"Stgelais","something":1291893133524,"jobTitle":"Beveling and Edging Machine Operator","started":1358574804278,"dob":514650425817,"status":"Disabled"},
|
||||
{"id":85,"firstName":"Venice","lastName":"Matsumura","something":1335418283321,"jobTitle":"Childrens Pastor","started":1274131178238,"dob":100657405744,"status":"Suspended"},
|
||||
{"id":86,"firstName":"Alonzo","lastName":"Hibler","something":1336830772752,"jobTitle":"Propeller-Driven Airplane Mechanic","started":1315978241383,"dob":207878629300,"status":"Suspended"},
|
||||
{"id":87,"firstName":"Cyndy","lastName":"Wadkins","something":1375185012899,"jobTitle":"Window Trimmer","started":1369617393878,"dob":-279401611387,"status":"Suspended"},
|
||||
{"id":88,"firstName":"Annea","lastName":"Hibler","something":1296799940657,"jobTitle":"Strawberry Sorter","started":1305458404152,"dob":625424603571,"status":"Disabled"},
|
||||
{"id":89,"firstName":"Celia","lastName":"Hibler","something":1388389757412,"jobTitle":"Jig Bore Tool Maker","started":1358180149613,"dob":72655242898,"status":"Disabled"},
|
||||
{"id":90,"firstName":"Laurena","lastName":"Klotz","something":1312724442772,"jobTitle":"Hydroelectric Machinery Mechanic","started":1291043285485,"dob":-315004906495,"status":"Active"},
|
||||
{"id":91,"firstName":"Jua","lastName":"Vanatta","something":1343300771926,"jobTitle":"Animal Husbandry Manager","started":1338911658975,"dob":-233816779922,"status":"Disabled"},
|
||||
{"id":92,"firstName":"Rona","lastName":"Halladay","something":1308403637621,"jobTitle":"Staff Electronic Warfare Officer","started":1324189448326,"dob":187959761088,"status":"Suspended"},
|
||||
{"id":93,"firstName":"Desmond","lastName":"Lafromboise","something":1367503406501,"jobTitle":"Blackjack Supervisor","started":1284064043518,"dob":-192057374436,"status":"Disabled"},
|
||||
{"id":94,"firstName":"Ilda","lastName":"Difranco","something":1322164346137,"jobTitle":"Work Ticket Distributor","started":1304532521629,"dob":194255714243,"status":"Suspended"},
|
||||
{"id":95,"firstName":"Ami","lastName":"Haner","something":1332781031595,"jobTitle":"Aircraft Landing Gear Inspector","started":1381600160153,"dob":284819714749,"status":"Disabled"},
|
||||
{"id":96,"firstName":"Renaa","lastName":"Leister","something":1315473522199,"jobTitle":"Drywall Stripper","started":1363382105359,"dob":239192801814,"status":"Suspended"},
|
||||
{"id":97,"firstName":"Easer","lastName":"Smelcer","something":1355943317755,"jobTitle":"Blackjack Supervisor","started":1267228580779,"dob":35361496970,"status":"Suspended"},
|
||||
{"id":98,"firstName":"Jacqulyn","lastName":"Vanatta","something":1374921304329,"jobTitle":"Youth Pastor","started":1278573829451,"dob":705821964664,"status":"Suspended"},
|
||||
{"id":99,"firstName":"Rayna","lastName":"Leister","something":1288850759218,"jobTitle":"Periodontist","started":1377850593881,"dob":-306045605184,"status":"Active"},
|
||||
|
||||
Reference in New Issue
Block a user