mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-06-16 12:45:49 +02:00
Added requiresjs build config in grunt file
This commit is contained in:
parent
b5eee075ee
commit
fc41c6fb33
82
Gruntfile.js
82
Gruntfile.js
|
@ -8,19 +8,6 @@ module.exports = function (grunt) {
|
||||||
dist_folder: 'dist/',
|
dist_folder: 'dist/',
|
||||||
source_folder: 'src/',
|
source_folder: 'src/',
|
||||||
|
|
||||||
// meta: {
|
|
||||||
// src: [
|
|
||||||
// //'<%= source_folder %>string.js',
|
|
||||||
// // '<%= source_folder %>dom.js',
|
|
||||||
// // '<%= source_folder %>event.js',
|
|
||||||
// // '<%= source_folder %>types.js',
|
|
||||||
// // '<%= source_folder %>cookie.js',
|
|
||||||
// //'<%= source_folder %>array.js',
|
|
||||||
// // '<%= source_folder %>date.js',
|
|
||||||
// // '<%= source_folder %>core.js'
|
|
||||||
// ]
|
|
||||||
// },
|
|
||||||
|
|
||||||
// A list of files, which will be syntax-checked by JSHint
|
// A list of files, which will be syntax-checked by JSHint
|
||||||
jshint: {
|
jshint: {
|
||||||
src: ['Gruntfile.js', 'src/*.js'],
|
src: ['Gruntfile.js', 'src/*.js'],
|
||||||
|
@ -47,14 +34,33 @@ module.exports = function (grunt) {
|
||||||
tasks: ['dev']
|
tasks: ['dev']
|
||||||
},
|
},
|
||||||
|
|
||||||
|
requirejs: {
|
||||||
|
compile: {
|
||||||
|
options: {
|
||||||
|
baseUrl: 'src/',
|
||||||
|
'paths': {
|
||||||
|
'tf': '.'
|
||||||
|
},
|
||||||
|
include: ['../libs/almond/almond','core'],
|
||||||
|
out: 'dist/tablefilter.js',
|
||||||
|
wrap: {
|
||||||
|
startFile: "src/start.frag",
|
||||||
|
endFile: "src/end.frag"
|
||||||
|
}/*,
|
||||||
|
optimize: 'uglify2',
|
||||||
|
preserveLicenseComments: false,
|
||||||
|
generateSourceMaps: true*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
concat: {
|
concat: {
|
||||||
js: {
|
/*js: {
|
||||||
files: [{
|
files: [{
|
||||||
//src: ['<%= meta.src %>'],
|
|
||||||
src: ['<%= source_folder %>core.js'],
|
src: ['<%= source_folder %>core.js'],
|
||||||
dest: '<%= dist_folder %>core.js'
|
dest: '<%= dist_folder %>core.js'
|
||||||
}]
|
}]
|
||||||
},
|
},*/
|
||||||
css: {
|
css: {
|
||||||
files: [{
|
files: [{
|
||||||
src: ['<%= source_folder %>filtergrid.css'],
|
src: ['<%= source_folder %>filtergrid.css'],
|
||||||
|
@ -76,8 +82,8 @@ module.exports = function (grunt) {
|
||||||
},
|
},
|
||||||
|
|
||||||
js: {
|
js: {
|
||||||
src: ['<%= concat.js.files[0].dest %>'],
|
src: ['<%= dist_folder %>tablefilter.js'],
|
||||||
dest: '<%= concat.js.files[0].dest %>'
|
dest: '<%= dist_folder %>tablefilter.js'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -102,39 +108,23 @@ module.exports = function (grunt) {
|
||||||
//{ src: ['<%= source_folder %>tablefilter_all.js'], dest: '<%= dist_folder %>tablefilter_all-uncompressed.js' },
|
//{ src: ['<%= source_folder %>tablefilter_all.js'], dest: '<%= dist_folder %>tablefilter_all-uncompressed.js' },
|
||||||
//{ src: ['<%= source_folder %>tablefilter.js'], dest: '<%= dist_folder %>tablefilter-uncompressed.js' },
|
//{ src: ['<%= source_folder %>tablefilter.js'], dest: '<%= dist_folder %>tablefilter-uncompressed.js' },
|
||||||
// { src: ['<%= source_folder %>filtergrid.css'], dest: '<%= dist_folder %>filtergrid-uncompressed.css' },
|
// { src: ['<%= source_folder %>filtergrid.css'], dest: '<%= dist_folder %>filtergrid-uncompressed.css' },
|
||||||
{ src: ['<%= source_folder %>tf-main.js'], dest: '<%= dist_folder %>tf-main.js' },
|
// { src: ['<%= source_folder %>tf-main.js'], dest: '<%= dist_folder %>tf-main.js' },
|
||||||
{ src: ['<%= source_folder %>string.js'], dest: '<%= dist_folder %>string.js' },
|
// { src: ['<%= source_folder %>string.js'], dest: '<%= dist_folder %>string.js' },
|
||||||
{ src: ['<%= source_folder %>array.js'], dest: '<%= dist_folder %>array.js' },
|
// { src: ['<%= source_folder %>array.js'], dest: '<%= dist_folder %>array.js' },
|
||||||
{ src: ['<%= source_folder %>cookie.js'], dest: '<%= dist_folder %>cookie.js' },
|
// { src: ['<%= source_folder %>cookie.js'], dest: '<%= dist_folder %>cookie.js' },
|
||||||
{ src: ['<%= source_folder %>date.js'], dest: '<%= dist_folder %>date.js' },
|
// { src: ['<%= source_folder %>date.js'], dest: '<%= dist_folder %>date.js' },
|
||||||
{ src: ['<%= source_folder %>dom.js'], dest: '<%= dist_folder %>dom.js' },
|
// { src: ['<%= source_folder %>dom.js'], dest: '<%= dist_folder %>dom.js' },
|
||||||
{ src: ['<%= source_folder %>event.js'], dest: '<%= dist_folder %>event.js' },
|
// { src: ['<%= source_folder %>event.js'], dest: '<%= dist_folder %>event.js' },
|
||||||
{ src: ['<%= source_folder %>types.js'], dest: '<%= dist_folder %>types.js' },
|
// { src: ['<%= source_folder %>types.js'], dest: '<%= dist_folder %>types.js' },
|
||||||
{ src: ['**'], cwd: '<%= source_folder %>modules/', dest: '<%= dist_folder %>modules/', expand: true },
|
// { src: ['**'], cwd: '<%= source_folder %>modules/', dest: '<%= dist_folder %>modules/', expand: true },
|
||||||
// { src: ['<%= source_folder %>/*.js'], dest: '<%= dist_folder %>', flatten: true, expand: false },
|
// { src: ['<%= source_folder %>/*.js'], dest: '<%= dist_folder %>', flatten: true, expand: false },
|
||||||
{ src: ['libs/requirejs/require.js'], dest: '<%= dist_folder %>/libs/require.js' },
|
// { src: ['libs/requirejs/require.js'], dest: '<%= dist_folder %>/libs/require.js' },
|
||||||
{ src: ['**'], cwd: '<%= source_folder %>TF_Modules/', dest: '<%= dist_folder %>TF_Modules/', expand: true },
|
{ src: ['**'], cwd: '<%= source_folder %>TF_Modules/', dest: '<%= dist_folder %>TF_Modules/', expand: true },
|
||||||
{ src: ['**'], cwd: '<%= source_folder %>TF_Themes/', dest: '<%= dist_folder %>TF_Themes/', expand: true }
|
{ src: ['**'], cwd: '<%= source_folder %>TF_Themes/', dest: '<%= dist_folder %>TF_Themes/', expand: true }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
|
|
||||||
requirejs: {
|
|
||||||
compile: {
|
|
||||||
options: {
|
|
||||||
baseUrl: 'src/',
|
|
||||||
'paths': {
|
|
||||||
'tf': '.'
|
|
||||||
},
|
|
||||||
include: ['../libs/almond/almond','core'],
|
|
||||||
out: 'dist/tf.js',
|
|
||||||
wrap: {
|
|
||||||
startFile: "parts/start.frag",
|
|
||||||
endFile: "parts/end.frag"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Load the plugins that provide the tasks we specified in package.json.
|
// Load the plugins that provide the tasks we specified in package.json.
|
||||||
|
@ -148,6 +138,6 @@ module.exports = function (grunt) {
|
||||||
|
|
||||||
// This is the default task being executed if Grunt
|
// This is the default task being executed if Grunt
|
||||||
// is called without any further parameter.
|
// is called without any further parameter.
|
||||||
grunt.registerTask('default', ['jshint', 'concat', 'uglify', 'cssmin', 'copy', 'requirejs']);
|
grunt.registerTask('default', ['jshint', 'requirejs', 'concat', 'uglify', 'cssmin', 'copy']);
|
||||||
grunt.registerTask('dev', ['jshint', 'concat', 'cssmin', 'copy']);
|
grunt.registerTask('dev', ['jshint', 'concat', 'cssmin', 'copy']);
|
||||||
};
|
};
|
10
bower.json
10
bower.json
|
@ -6,8 +6,12 @@
|
||||||
"Max Guglielmi"
|
"Max Guglielmi"
|
||||||
],
|
],
|
||||||
"description": "Filter HTML tables data easily",
|
"description": "Filter HTML tables data easily",
|
||||||
"main": ["dist/tablefilter_all.js", "dist/filtergrid.css"],
|
"main": [
|
||||||
|
"dist/tablefilter_all.js",
|
||||||
|
"dist/filtergrid.css"
|
||||||
|
],
|
||||||
"moduleType": [
|
"moduleType": [
|
||||||
|
"amd",
|
||||||
"globals"
|
"globals"
|
||||||
],
|
],
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
@ -22,9 +26,11 @@
|
||||||
"node_modules",
|
"node_modules",
|
||||||
"bower_components",
|
"bower_components",
|
||||||
"test",
|
"test",
|
||||||
"tests"
|
"tests",
|
||||||
|
"libs"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"almond": "~0.3.0",
|
||||||
"requirejs": null
|
"requirejs": null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
32
dist/array.js
vendored
32
dist/array.js
vendored
|
@ -1,32 +0,0 @@
|
||||||
/**
|
|
||||||
* Array utilities
|
|
||||||
*/
|
|
||||||
|
|
||||||
define(function (require) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var str = require('./string');
|
|
||||||
|
|
||||||
var Arr = {
|
|
||||||
has: function(arr, val, caseSensitive){
|
|
||||||
var sCase = caseSensitive===undefined ? false : caseSensitive;
|
|
||||||
for (var i=0; i<arr.length; i++){
|
|
||||||
if(str.matchCase(arr[i].toString(), sCase) === val){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
indexByValue: function(arr, val, caseSensitive){
|
|
||||||
var sCase = caseSensitive===undefined ? false : caseSensitive;
|
|
||||||
for (var i=0; i<arr.length; i++){
|
|
||||||
if(str.matchCase(arr[i].toString(), sCase) === val){
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return Arr;
|
|
||||||
});
|
|
62
dist/cookie.js
vendored
62
dist/cookie.js
vendored
|
@ -1,62 +0,0 @@
|
||||||
/**
|
|
||||||
* Cookie utilities
|
|
||||||
*/
|
|
||||||
|
|
||||||
define(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var Cookie = {};
|
|
||||||
|
|
||||||
Cookie.write = function(name, value, hours){
|
|
||||||
var expire = '';
|
|
||||||
if(hours){
|
|
||||||
expire = new Date((new Date()).getTime() + hours * 3600000);
|
|
||||||
expire = '; expires=' + expire.toGMTString();
|
|
||||||
}
|
|
||||||
document.cookie = name + '=' + escape(value) + expire;
|
|
||||||
};
|
|
||||||
|
|
||||||
Cookie.read = function(name){
|
|
||||||
var cookieValue = '',
|
|
||||||
search = name + '=';
|
|
||||||
if(document.cookie.length > 0){
|
|
||||||
var cookie = document.cookie,
|
|
||||||
offset = cookie.indexOf(search);
|
|
||||||
if(offset !== -1){
|
|
||||||
offset += search.length;
|
|
||||||
var end = cookie.indexOf(';', offset);
|
|
||||||
if(end === -1){
|
|
||||||
end = cookie.length;
|
|
||||||
}
|
|
||||||
cookieValue = unescape(cookie.substring(offset, end));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return cookieValue;
|
|
||||||
};
|
|
||||||
|
|
||||||
Cookie.remove = function(name){
|
|
||||||
this.write(name,'',-1);
|
|
||||||
};
|
|
||||||
|
|
||||||
Cookie.valueToArray = function(name, separator){
|
|
||||||
if(!separator){
|
|
||||||
separator = ',';
|
|
||||||
}
|
|
||||||
//reads the cookie
|
|
||||||
var val = this.read(name);
|
|
||||||
//creates an array with filters' values
|
|
||||||
var arr = val.split(separator);
|
|
||||||
return arr;
|
|
||||||
};
|
|
||||||
|
|
||||||
Cookie.getValueByIndex = function(name, index, separator){
|
|
||||||
if(!separator){
|
|
||||||
separator = ',';
|
|
||||||
}
|
|
||||||
//reads the cookie
|
|
||||||
var val = this.valueToArray(name, separator);
|
|
||||||
return val[index];
|
|
||||||
};
|
|
||||||
|
|
||||||
return Cookie;
|
|
||||||
});
|
|
10
dist/core.js
vendored
10
dist/core.js
vendored
File diff suppressed because one or more lines are too long
169
dist/date.js
vendored
169
dist/date.js
vendored
|
@ -1,169 +0,0 @@
|
||||||
/**
|
|
||||||
* Date utilities
|
|
||||||
*/
|
|
||||||
|
|
||||||
define(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var DateHelper = {
|
|
||||||
isValid: function(dateStr, format){
|
|
||||||
if(!format) {
|
|
||||||
format = 'DMY';
|
|
||||||
}
|
|
||||||
format = format.toUpperCase();
|
|
||||||
if(format.length != 3) {
|
|
||||||
if(format==='DDMMMYYYY'){
|
|
||||||
var d = this.format(dateStr, format);
|
|
||||||
dateStr = d.getDate() +'/'+ (d.getMonth()+1) +'/'+
|
|
||||||
d.getFullYear();
|
|
||||||
format = 'DMY';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if((format.indexOf('M') === -1) || (format.indexOf('D') === -1) ||
|
|
||||||
(format.indexOf('Y') === -1)){
|
|
||||||
format = 'DMY';
|
|
||||||
}
|
|
||||||
var reg1, reg2;
|
|
||||||
// If the year is first
|
|
||||||
if(format.substring(0, 1) == 'Y') {
|
|
||||||
reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/;
|
|
||||||
reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/;
|
|
||||||
} else if(format.substring(1, 2) == 'Y') { // If the year is second
|
|
||||||
reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/;
|
|
||||||
reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/;
|
|
||||||
} else { // The year must be third
|
|
||||||
reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/;
|
|
||||||
reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
|
|
||||||
}
|
|
||||||
// If it doesn't conform to the right format (with either a 2 digit year or
|
|
||||||
// 4 digit year), fail
|
|
||||||
if(reg1.test(dateStr) === false && reg2.test(dateStr) === false) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Split into 3 parts based on what the divider was
|
|
||||||
var parts = dateStr.split(RegExp.$1);
|
|
||||||
var mm, dd, yy;
|
|
||||||
// Check to see if the 3 parts end up making a valid date
|
|
||||||
if(format.substring(0, 1) === 'M'){
|
|
||||||
mm = parts[0];
|
|
||||||
} else if(format.substring(1, 2) === 'M'){
|
|
||||||
mm = parts[1];
|
|
||||||
} else {
|
|
||||||
mm = parts[2];
|
|
||||||
}
|
|
||||||
if(format.substring(0, 1) === 'D'){
|
|
||||||
dd = parts[0];
|
|
||||||
} else if(format.substring(1, 2) === 'D'){
|
|
||||||
dd = parts[1];
|
|
||||||
} else {
|
|
||||||
dd = parts[2];
|
|
||||||
}
|
|
||||||
if(format.substring(0, 1) === 'Y'){
|
|
||||||
yy = parts[0];
|
|
||||||
} else if(format.substring(1, 2) === 'Y'){
|
|
||||||
yy = parts[1];
|
|
||||||
} else {
|
|
||||||
yy = parts[2];
|
|
||||||
}
|
|
||||||
if(parseInt(yy, 10) <= 50){
|
|
||||||
yy = (parseInt(yy, 10) + 2000).toString();
|
|
||||||
}
|
|
||||||
if(parseInt(yy, 10) <= 99){
|
|
||||||
yy = (parseInt(yy, 10) + 1900).toString();
|
|
||||||
}
|
|
||||||
var dt = new Date(
|
|
||||||
parseInt(yy, 10), parseInt(mm, 10)-1, parseInt(dd, 10),
|
|
||||||
0, 0, 0, 0);
|
|
||||||
if(parseInt(dd, 10) != dt.getDate()){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(parseInt(mm, 10)-1 != dt.getMonth()){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
format: function(dateStr, format){
|
|
||||||
if(!format){
|
|
||||||
format = 'DMY';
|
|
||||||
}
|
|
||||||
if(!dateStr || dateStr === ''){
|
|
||||||
return new Date(1001, 0, 1);
|
|
||||||
}
|
|
||||||
var oDate, parts;
|
|
||||||
|
|
||||||
function y2kDate(yr){
|
|
||||||
if(yr === undefined){
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if(yr.length>2){
|
|
||||||
return yr;
|
|
||||||
}
|
|
||||||
var y;
|
|
||||||
//>50 belong to 1900
|
|
||||||
if(yr <= 99 && yr>50){
|
|
||||||
y = '19' + yr;
|
|
||||||
}
|
|
||||||
//<50 belong to 2000
|
|
||||||
if(yr<50 || yr === '00'){
|
|
||||||
y = '20' + yr;
|
|
||||||
}
|
|
||||||
return y;
|
|
||||||
}
|
|
||||||
|
|
||||||
function mmm2mm(mmm){
|
|
||||||
if(mmm === undefined){
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
var mondigit;
|
|
||||||
var MONTH_NAMES = [
|
|
||||||
'january','february','march','april','may','june','july',
|
|
||||||
'august','september','october','november','december',
|
|
||||||
'jan','feb','mar','apr','may','jun','jul','aug','sep','oct',
|
|
||||||
'nov','dec'
|
|
||||||
];
|
|
||||||
for(var m_i=0; m_i < MONTH_NAMES.length; m_i++){
|
|
||||||
var month_name = MONTH_NAMES[m_i];
|
|
||||||
if (mmm.toLowerCase() === month_name){
|
|
||||||
mondigit = m_i+1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(mondigit > 11 || mondigit < 23){
|
|
||||||
mondigit = mondigit - 12;
|
|
||||||
}
|
|
||||||
if(mondigit < 1 || mondigit > 12){
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return mondigit;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch(format.toUpperCase()){
|
|
||||||
case 'DDMMMYYYY':
|
|
||||||
parts = dateStr.replace(/[- \/.]/g,' ').split(' ');
|
|
||||||
oDate = new Date(y2kDate(parts[2]),mmm2mm(parts[1])-1,parts[0]);
|
|
||||||
break;
|
|
||||||
case 'DMY':
|
|
||||||
parts = dateStr.replace(
|
|
||||||
/^(0?[1-9]|[12][0-9]|3[01])([- \/.])(0?[1-9]|1[012])([- \/.])((\d\d)?\d\d)$/,'$1 $3 $5').split(' ');
|
|
||||||
oDate = new Date(y2kDate(parts[2]),parts[1]-1,parts[0]);
|
|
||||||
break;
|
|
||||||
case 'MDY':
|
|
||||||
parts = dateStr.replace(
|
|
||||||
/^(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])([- \/.])((\d\d)?\d\d)$/,'$1 $3 $5').split(' ');
|
|
||||||
oDate = new Date(y2kDate(parts[2]),parts[0]-1,parts[1]);
|
|
||||||
break;
|
|
||||||
case 'YMD':
|
|
||||||
parts = dateStr.replace(/^((\d\d)?\d\d)([- \/.])(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])$/,'$1 $4 $6').split(' ');
|
|
||||||
oDate = new Date(y2kDate(parts[0]),parts[1]-1,parts[2]);
|
|
||||||
break;
|
|
||||||
default: //in case format is not correct
|
|
||||||
parts = dateStr.replace(/^(0?[1-9]|[12][0-9]|3[01])([- \/.])(0?[1-9]|1[012])([- \/.])((\d\d)?\d\d)$/,'$1 $3 $5').split(' ');
|
|
||||||
oDate = new Date(y2kDate(parts[2]),parts[1]-1,parts[0]);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return oDate;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return DateHelper;
|
|
||||||
});
|
|
155
dist/dom.js
vendored
155
dist/dom.js
vendored
|
@ -1,155 +0,0 @@
|
||||||
/**
|
|
||||||
* DOM utilities
|
|
||||||
*/
|
|
||||||
|
|
||||||
define(function (require) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var Dom = {};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns text + text of children of given node
|
|
||||||
* @param {NodeElement} node
|
|
||||||
* @return {String}
|
|
||||||
*/
|
|
||||||
Dom.getText = function(node){
|
|
||||||
var s = node.textContent || node.innerText ||
|
|
||||||
node.innerHTML.replace(/<[^<>]+>/g, '');
|
|
||||||
s = s.replace(/^\s+/, '').replace(/\s+$/, '');
|
|
||||||
return s;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates an html element with given collection of attributes
|
|
||||||
* @param {String} tag a string of the html tag to create
|
|
||||||
* @param {Array} an undetermined number of arrays containing the with 2
|
|
||||||
* items, the attribute name and its value ['id','myId']
|
|
||||||
* @return {Object} created element
|
|
||||||
*/
|
|
||||||
Dom.create = function(tag){
|
|
||||||
if(!tag || tag===''){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var el = document.createElement(tag),
|
|
||||||
args = arguments;
|
|
||||||
|
|
||||||
if(args.length > 1){
|
|
||||||
for(var i=0; i<args.length; i++){
|
|
||||||
var argtype = typeof args[i];
|
|
||||||
if(argtype.toLowerCase() === 'object' && args[i].length === 2){
|
|
||||||
el.setAttribute(args[i][0], args[i][1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return el;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a text node with given text
|
|
||||||
* @param {String} text
|
|
||||||
* @return {Object}
|
|
||||||
*/
|
|
||||||
Dom.text = function(text){
|
|
||||||
return document.createTextNode(text);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns offset position of passed element
|
|
||||||
* @param {object} obj [description]
|
|
||||||
* @return {object} literal object with left and top values
|
|
||||||
*/
|
|
||||||
Dom.position = function(obj){
|
|
||||||
var l = 0, t = 0;
|
|
||||||
if (obj && obj.offsetParent){
|
|
||||||
do {
|
|
||||||
l += obj.offsetLeft;
|
|
||||||
t += obj.offsetTop;
|
|
||||||
} while (obj == obj.offsetParent);
|
|
||||||
}
|
|
||||||
return { 'left': l, 'top': t };
|
|
||||||
};
|
|
||||||
|
|
||||||
Dom.hasClass = function (ele, cls){
|
|
||||||
if(!ele){ return false; }
|
|
||||||
|
|
||||||
if(supportsClassList()){
|
|
||||||
return ele.classList.contains(cls);
|
|
||||||
}
|
|
||||||
return ele.className.match(new RegExp('(\\s|^)'+ cls +'(\\s|$)'));
|
|
||||||
};
|
|
||||||
|
|
||||||
Dom.addClass = function (ele, cls){
|
|
||||||
if(!ele){ return; }
|
|
||||||
|
|
||||||
if(supportsClassList()){
|
|
||||||
ele.classList.add(cls);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(ele.className === ''){
|
|
||||||
ele.className = cls;
|
|
||||||
}
|
|
||||||
else if(!this.hasClass(ele, cls)){
|
|
||||||
ele.className += " " + cls;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Dom.removeClass = function (ele, cls){
|
|
||||||
if(!ele){ return; }
|
|
||||||
|
|
||||||
if(supportsClassList()){
|
|
||||||
ele.classList.remove(cls);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var reg = new RegExp('(\\s|^)'+ cls +'(\\s|$)', 'g');
|
|
||||||
ele.className = ele.className.replace(reg, '');
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates and returns an option element
|
|
||||||
* @param {String} text option text
|
|
||||||
* @param {String} value option value
|
|
||||||
* @param {Boolean} isSel whether option is selected
|
|
||||||
* @return {Object} option element
|
|
||||||
*/
|
|
||||||
Dom.createOpt = function(text, value, isSel){
|
|
||||||
var isSelected = isSel ? true : false,
|
|
||||||
opt = isSelected ?
|
|
||||||
this.create('option', ['value',value], ['selected','true']) :
|
|
||||||
this.create('option', ['value',value]);
|
|
||||||
opt.appendChild(this.text(text));
|
|
||||||
return opt;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates and returns a checklist item
|
|
||||||
* @param {Number} chkIndex index of check item
|
|
||||||
* @param {String} chkValue check item value
|
|
||||||
* @param {String} labelText check item label text
|
|
||||||
* @return {Object} li DOM element
|
|
||||||
*/
|
|
||||||
Dom.createCheckItem = function(chkIndex, chkValue, labelText){
|
|
||||||
var li = this.create('li'),
|
|
||||||
label = this.create('label', ['for', chkIndex]),
|
|
||||||
check = this.create('input',
|
|
||||||
['id', chkIndex],
|
|
||||||
['name', chkIndex],
|
|
||||||
['type', 'checkbox'],
|
|
||||||
['value', chkValue]
|
|
||||||
);
|
|
||||||
label.appendChild(check);
|
|
||||||
label.appendChild(this.text(labelText));
|
|
||||||
li.appendChild(label);
|
|
||||||
li.label = label;
|
|
||||||
li.check = check;
|
|
||||||
return li;
|
|
||||||
};
|
|
||||||
|
|
||||||
// HTML5 classList API
|
|
||||||
function supportsClassList(){
|
|
||||||
return document.documentElement.classList;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Dom;
|
|
||||||
});
|
|
57
dist/event.js
vendored
57
dist/event.js
vendored
|
@ -1,57 +0,0 @@
|
||||||
/**
|
|
||||||
* DOM event utilities
|
|
||||||
*/
|
|
||||||
|
|
||||||
define(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var Event = {};
|
|
||||||
|
|
||||||
Event.add = function(obj, type, func, capture){
|
|
||||||
if(obj.attachEvent){
|
|
||||||
obj.attachEvent('on'+type, func);
|
|
||||||
}
|
|
||||||
else if(obj.addEventListener){
|
|
||||||
obj.addEventListener(type, func,
|
|
||||||
(capture===undefined ? false : capture));
|
|
||||||
} else{
|
|
||||||
obj['on'+type] = func;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Event.remove = function(obj, type, func, capture){
|
|
||||||
if(obj.detachEvent){
|
|
||||||
obj.detachEvent('on'+type,func);
|
|
||||||
}
|
|
||||||
else if(obj.removeEventListener){
|
|
||||||
obj.removeEventListener(type, func,
|
|
||||||
(capture===undefined ? false : capture));
|
|
||||||
} else {
|
|
||||||
obj['on'+type] = null;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Event.stop = function(evt){
|
|
||||||
if(!evt){
|
|
||||||
evt = window.event;
|
|
||||||
}
|
|
||||||
if(evt.stopPropagation){
|
|
||||||
evt.stopPropagation();
|
|
||||||
} else {
|
|
||||||
evt.cancelBubble = true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Event.cancel = function(evt){
|
|
||||||
if(!evt){
|
|
||||||
evt = window.event;
|
|
||||||
}
|
|
||||||
if(evt.preventDefault) {
|
|
||||||
evt.preventDefault();
|
|
||||||
} else {
|
|
||||||
evt.returnValue = false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return Event;
|
|
||||||
});
|
|
2
dist/filtergrid.css
vendored
2
dist/filtergrid.css
vendored
|
@ -1,6 +1,6 @@
|
||||||
/*------------------------------------------------------------------------
|
/*------------------------------------------------------------------------
|
||||||
- TableFilter stylesheet by Max Guglielmi
|
- TableFilter stylesheet by Max Guglielmi
|
||||||
- (build date: Sat Nov 01 2014 22:27:27)
|
- (build date: Sun Nov 02 2014 01:26:16)
|
||||||
- Edit below for your projects' needs
|
- Edit below for your projects' needs
|
||||||
------------------------------------------------------------------------*/
|
------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
2076
dist/libs/require.js
vendored
2076
dist/libs/require.js
vendored
File diff suppressed because it is too large
Load diff
87
dist/modules/loader.js
vendored
87
dist/modules/loader.js
vendored
|
@ -1,87 +0,0 @@
|
||||||
define(['../dom', '../types'], function (dom, types) {
|
|
||||||
'use strict';
|
|
||||||
console.log(arguments);
|
|
||||||
|
|
||||||
var global = window;
|
|
||||||
|
|
||||||
function Loader(tf){
|
|
||||||
|
|
||||||
// Original configuration
|
|
||||||
var f = tf.fObj;
|
|
||||||
//id of container element
|
|
||||||
tf.loaderTgtId = f.loader_target_id || null;
|
|
||||||
//div containing loader
|
|
||||||
tf.loaderDiv = null;
|
|
||||||
//defines loader text
|
|
||||||
tf.loaderText = f.loader_text || 'Loading...';
|
|
||||||
//defines loader innerHtml
|
|
||||||
tf.loaderHtml = f.loader_html || null;
|
|
||||||
//defines css class for loader div
|
|
||||||
tf.loaderCssClass = f.loader_css_class || 'loader';
|
|
||||||
//delay for hiding loader
|
|
||||||
tf.loaderCloseDelay = 200;
|
|
||||||
//callback function before loader is displayed
|
|
||||||
tf.onShowLoader = types.isFn(f.on_show_loader) ?
|
|
||||||
f.on_show_loader : null;
|
|
||||||
//callback function after loader is closed
|
|
||||||
tf.onHideLoader = types.isFn(f.on_hide_loader) ?
|
|
||||||
f.on_hide_loader : null;
|
|
||||||
|
|
||||||
this.tf = tf;
|
|
||||||
|
|
||||||
var containerDiv = dom.create('div',['id', tf.prfxLoader+tf.id]);
|
|
||||||
containerDiv.className = tf.loaderCssClass;
|
|
||||||
|
|
||||||
var targetEl = !tf.loaderTgtId ?
|
|
||||||
(tf.gridLayout ? tf.tblCont : tf.tbl.parentNode) :
|
|
||||||
TF.id(tf.loaderTgtId);
|
|
||||||
if(!tf.loaderTgtId){
|
|
||||||
targetEl.insertBefore(containerDiv, tf.tbl);
|
|
||||||
} else {
|
|
||||||
targetEl.appendChild(containerDiv);
|
|
||||||
}
|
|
||||||
tf.loaderDiv = TF.id(tf.prfxLoader+tf.id);
|
|
||||||
if(!tf.loaderHtml){
|
|
||||||
tf.loaderDiv.appendChild(dom.text(tf.loaderText));
|
|
||||||
} else {
|
|
||||||
tf.loaderDiv.innerHTML = tf.loaderHtml;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Loader.prototype.show = function(p) {
|
|
||||||
if(!this.tf.loader || !this.tf.loaderDiv ||
|
|
||||||
this.tf.loaderDiv.style.display===p){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var o = this.tf;
|
|
||||||
|
|
||||||
function displayLoader(){
|
|
||||||
if(!o.loaderDiv){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(o.onShowLoader && p!=='none'){
|
|
||||||
o.onShowLoader.call(null, o);
|
|
||||||
}
|
|
||||||
o.loaderDiv.style.display = p;
|
|
||||||
if(o.onHideLoader && p==='none'){
|
|
||||||
o.onHideLoader.call(null, o);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var t = p==='none' ? this.tf.loaderCloseDelay : 1;
|
|
||||||
global.setTimeout(displayLoader, t);
|
|
||||||
};
|
|
||||||
|
|
||||||
Loader.prototype.remove = function() {
|
|
||||||
if(!this.tf.loaderDiv){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var targetEl = !this.tf.loaderTgtId ?
|
|
||||||
(this.tf.gridLayout ? this.tf.tblCont : this.tf.tbl.parentNode) :
|
|
||||||
TF.id(this.tf.loaderTgtId);
|
|
||||||
targetEl.removeChild(this.tf.loaderDiv);
|
|
||||||
this.tf.loaderDiv = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
return Loader;
|
|
||||||
});
|
|
7
dist/src/modules/loader.js
vendored
7
dist/src/modules/loader.js
vendored
|
@ -1,7 +0,0 @@
|
||||||
define(['../core'], function (require) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
function Loader(){}
|
|
||||||
|
|
||||||
return Loader;
|
|
||||||
});
|
|
50
dist/string.js
vendored
50
dist/string.js
vendored
|
@ -1,50 +0,0 @@
|
||||||
/**
|
|
||||||
* String utilities
|
|
||||||
*/
|
|
||||||
|
|
||||||
define(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var Str = {};
|
|
||||||
|
|
||||||
Str.lower = function(text){
|
|
||||||
return text.toLowerCase();
|
|
||||||
};
|
|
||||||
|
|
||||||
Str.upper = function(text){
|
|
||||||
return text.toUpperCase();
|
|
||||||
};
|
|
||||||
|
|
||||||
Str.trim = function(text){
|
|
||||||
if (text.trim){
|
|
||||||
return text.trim();
|
|
||||||
}
|
|
||||||
return text.replace(/^\s*|\s*$/g, '');
|
|
||||||
};
|
|
||||||
|
|
||||||
Str.isEmpty = function(text){
|
|
||||||
return this.trim(text) === '';
|
|
||||||
};
|
|
||||||
|
|
||||||
Str.rgxEsc = function(text){
|
|
||||||
function escape(e){
|
|
||||||
var a = new RegExp('\\'+e,'g');
|
|
||||||
text = text.replace(a,'\\'+e);
|
|
||||||
}
|
|
||||||
|
|
||||||
var chars = ['\\','[','^','$','.','|','?','*','+','(',')'];
|
|
||||||
for(var e=0; e<chars.length; e++){
|
|
||||||
escape(chars[e]);
|
|
||||||
}
|
|
||||||
return text;
|
|
||||||
};
|
|
||||||
|
|
||||||
Str.matchCase = function(text, mc){
|
|
||||||
if(!mc){
|
|
||||||
return this.lower(text);
|
|
||||||
}
|
|
||||||
return text;
|
|
||||||
};
|
|
||||||
|
|
||||||
return Str;
|
|
||||||
});
|
|
10
dist/tablefilter.js
vendored
Normal file
10
dist/tablefilter.js
vendored
Normal file
File diff suppressed because one or more lines are too long
26
dist/tf-main.js
vendored
26
dist/tf-main.js
vendored
|
@ -1,26 +0,0 @@
|
||||||
|
|
||||||
// requirejs.config({
|
|
||||||
// baseUrl: '../dist/libs',
|
|
||||||
// paths: {
|
|
||||||
// tf: '.'
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
requirejs(['core'], function(TableFilter){
|
|
||||||
// Your logic here
|
|
||||||
var tf = new TableFilter("demo", {
|
|
||||||
col_0: 'select',
|
|
||||||
col_3: 'checklist',
|
|
||||||
base_path: './',
|
|
||||||
enable_default_theme: true,
|
|
||||||
paging: false,
|
|
||||||
alternate_rows: true,
|
|
||||||
highlight_keywords: true,
|
|
||||||
match_case: false,
|
|
||||||
remember_grid_values: true,
|
|
||||||
btn_reset: true,
|
|
||||||
grid_layout: false
|
|
||||||
});
|
|
||||||
|
|
||||||
tf.init();
|
|
||||||
});
|
|
48
dist/types.js
vendored
48
dist/types.js
vendored
|
@ -1,48 +0,0 @@
|
||||||
/**
|
|
||||||
* Types utilities
|
|
||||||
*/
|
|
||||||
|
|
||||||
define(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var Types = {};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if var exists and is an object
|
|
||||||
* @param {String or Object} v
|
|
||||||
* @return {Boolean}
|
|
||||||
*/
|
|
||||||
Types.isObj = function(v){
|
|
||||||
var isO = false;
|
|
||||||
if(typeof v === 'string'){
|
|
||||||
if(window[v] && typeof window[v] === 'object'){
|
|
||||||
isO = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(v && typeof v === 'object'){
|
|
||||||
isO = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return isO;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if passed parameter is a function
|
|
||||||
* @param {Function} fn
|
|
||||||
* @return {Boolean}
|
|
||||||
*/
|
|
||||||
Types.isFn = function(fn){
|
|
||||||
return (fn && fn.constructor == Function);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if passed param is an array
|
|
||||||
* @param {Array} obj
|
|
||||||
* @return {Boolean}
|
|
||||||
*/
|
|
||||||
Types.isArray = function(obj){
|
|
||||||
return (obj && obj.constructor == Array);
|
|
||||||
};
|
|
||||||
|
|
||||||
return Types;
|
|
||||||
});
|
|
|
@ -1,7 +1,8 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<link href="../dist/filtergrid.css">
|
<title>HTML Table Filter Generator</title>
|
||||||
|
<link rel="stylesheet" href="../dist/filtergrid.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<table id="demo" cellpadding="0" cellspacing="0">
|
<table id="demo" cellpadding="0" cellspacing="0">
|
||||||
|
@ -65,12 +66,23 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<script type="text/javascript" src="../dist/tablefilter_all.js"></script>
|
<script type="text/javascript" src="../dist/tablefilter.js"></script>
|
||||||
<script>
|
<script>
|
||||||
var tf = setFilterGrid("demo", {
|
var tf = new TableFilter("demo", {
|
||||||
|
col_0: 'select',
|
||||||
|
col_3: 'checklist',
|
||||||
base_path: '../dist/',
|
base_path: '../dist/',
|
||||||
enable_default_theme: true
|
enable_default_theme: true,
|
||||||
|
paging: false,
|
||||||
|
alternate_rows: true,
|
||||||
|
highlight_keywords: true,
|
||||||
|
match_case: false,
|
||||||
|
remember_grid_values: true,
|
||||||
|
btn_reset: true,
|
||||||
|
grid_layout: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
tf.init();
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
338
src/core.js
338
src/core.js
|
@ -40,9 +40,9 @@ var global = this,
|
||||||
cookie = require('cookie'),
|
cookie = require('cookie'),
|
||||||
types = require('types'),
|
types = require('types'),
|
||||||
array = require('array'),
|
array = require('array'),
|
||||||
|
hlp = require('helpers'),
|
||||||
isValidDate = require('date').isValid,
|
isValidDate = require('date').isValid,
|
||||||
formatDate = require('date').format,
|
formatDate = require('date').format,
|
||||||
loader = require('modules/loader'),
|
|
||||||
doc = global.document;
|
doc = global.document;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -57,7 +57,7 @@ function TableFilter(id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.version = '3.0';
|
this.version = '3.0';
|
||||||
this.year = new Date().getFullYear();
|
this.year = new Date().getFullYear();
|
||||||
this.tbl = TF.id(id);
|
this.tbl = dom.id(id);
|
||||||
this.startRow = null;
|
this.startRow = null;
|
||||||
this.refRow = null;
|
this.refRow = null;
|
||||||
this.headersRow = null;
|
this.headersRow = null;
|
||||||
|
@ -98,7 +98,7 @@ function TableFilter(id) {
|
||||||
catch(e){ this.nbCells = this.GetCellsNb(0); }
|
catch(e){ this.nbCells = this.GetCellsNb(0); }
|
||||||
|
|
||||||
//default script base path
|
//default script base path
|
||||||
this.basePath = f.base_path!==undefined ? f.base_path : 'TableFilter/';
|
this.basePath = f.base_path!==undefined ? f.base_path : '';
|
||||||
|
|
||||||
/*** filter types ***/
|
/*** filter types ***/
|
||||||
this.fltTypeInp = 'input';
|
this.fltTypeInp = 'input';
|
||||||
|
@ -697,6 +697,9 @@ function TableFilter(id) {
|
||||||
//themes path
|
//themes path
|
||||||
this.themesPath = f.themes_path || this.basePath+'TF_Themes/';
|
this.themesPath = f.themes_path || this.basePath+'TF_Themes/';
|
||||||
|
|
||||||
|
// Components
|
||||||
|
this.loaderCpt = null;
|
||||||
|
|
||||||
/*** TF events ***/
|
/*** TF events ***/
|
||||||
var o = this;
|
var o = this;
|
||||||
this.Evt = {
|
this.Evt = {
|
||||||
|
@ -797,7 +800,7 @@ function TableFilter(id) {
|
||||||
_OnInpFocus: function(e) {
|
_OnInpFocus: function(e) {
|
||||||
var _evt = e || global.event;
|
var _evt = e || global.event;
|
||||||
o.activeFilterId = this.getAttribute('id');
|
o.activeFilterId = this.getAttribute('id');
|
||||||
o.activeFlt = TF.id(o.activeFilterId);
|
o.activeFlt = dom.id(o.activeFilterId);
|
||||||
//Watermark
|
//Watermark
|
||||||
if(!o.isInpWatermarkArray){
|
if(!o.isInpWatermarkArray){
|
||||||
if(this.value === o.inpWatermark &&
|
if(this.value === o.inpWatermark &&
|
||||||
|
@ -827,12 +830,12 @@ function TableFilter(id) {
|
||||||
_OnSlcFocus: function(e) {
|
_OnSlcFocus: function(e) {
|
||||||
var _evt = e || global.event;
|
var _evt = e || global.event;
|
||||||
o.activeFilterId = this.getAttribute('id');
|
o.activeFilterId = this.getAttribute('id');
|
||||||
o.activeFlt = TF.id(o.activeFilterId);
|
o.activeFlt = dom.id(o.activeFilterId);
|
||||||
// select is populated when element has focus
|
// select is populated when element has focus
|
||||||
if(o.fillSlcOnDemand && this.getAttribute('filled') === '0'){
|
if(o.fillSlcOnDemand && this.getAttribute('filled') === '0'){
|
||||||
var ct = this.getAttribute('ct');
|
var ct = this.getAttribute('ct');
|
||||||
o.PopulateSelect(ct);
|
o.PopulateSelect(ct);
|
||||||
if(!TF.isIE){ this.setAttribute('filled','1'); }
|
if(!hlp.isIE()){ this.setAttribute('filled','1'); }
|
||||||
}
|
}
|
||||||
if(o.popUpFilters){
|
if(o.popUpFilters){
|
||||||
evt.cancel(_evt);
|
evt.cancel(_evt);
|
||||||
|
@ -880,7 +883,7 @@ function TableFilter(id) {
|
||||||
=====================================================*/
|
=====================================================*/
|
||||||
_OnCheckListFocus: function(e) {
|
_OnCheckListFocus: function(e) {
|
||||||
o.activeFilterId = this.firstChild.getAttribute('id');
|
o.activeFilterId = this.firstChild.getAttribute('id');
|
||||||
o.activeFlt = TF.id(o.activeFilterId);
|
o.activeFlt = dom.id(o.activeFilterId);
|
||||||
},
|
},
|
||||||
_OnCheckListBlur: function(e){},
|
_OnCheckListBlur: function(e){},
|
||||||
/*====================================================
|
/*====================================================
|
||||||
|
@ -955,14 +958,13 @@ TableFilter.prototype = {
|
||||||
this.isExternalFlt = true;
|
this.isExternalFlt = true;
|
||||||
this.SetGridLayout();
|
this.SetGridLayout();
|
||||||
//Once grid generated 1st filterable row is 0 again
|
//Once grid generated 1st filterable row is 0 again
|
||||||
this.refRow = TF.isIE ? (this.refRow+1) : 0;
|
this.refRow = hlp.isIE() ? (this.refRow+1) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.loader){
|
if(this.loader){
|
||||||
//this.SetLoader();
|
//this.SetLoader();
|
||||||
var Loader = require('modules/loader');
|
var Loader = require('modules/loader');
|
||||||
this.loaderComponent = new Loader(this);
|
this.loaderCpt = new Loader(this);
|
||||||
console.log(this.loaderComponent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.popUpFilters){
|
if(this.popUpFilters){
|
||||||
|
@ -994,7 +996,7 @@ TableFilter.prototype = {
|
||||||
if(this.isFirstLoad){
|
if(this.isFirstLoad){
|
||||||
var fltrow;
|
var fltrow;
|
||||||
if(!this.gridLayout){
|
if(!this.gridLayout){
|
||||||
var thead = TF.tag(this.tbl,'thead');
|
var thead = dom.tag(this.tbl,'thead');
|
||||||
if(thead.length > 0){
|
if(thead.length > 0){
|
||||||
fltrow = thead[0].insertRow(this.filtersRowIndex);
|
fltrow = thead[0].insertRow(this.filtersRowIndex);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1072,7 +1074,7 @@ TableFilter.prototype = {
|
||||||
|
|
||||||
//filter is appended in desired element
|
//filter is appended in desired element
|
||||||
if(externalFltTgtId){
|
if(externalFltTgtId){
|
||||||
TF.id(externalFltTgtId).appendChild(slc);
|
dom.id(externalFltTgtId).appendChild(slc);
|
||||||
this.externalFltEls.push(slc);
|
this.externalFltEls.push(slc);
|
||||||
} else {
|
} else {
|
||||||
fltcell.appendChild(slc);
|
fltcell.appendChild(slc);
|
||||||
|
@ -1103,7 +1105,7 @@ TableFilter.prototype = {
|
||||||
select is disabled and by clicking on element
|
select is disabled and by clicking on element
|
||||||
(parent td), users enable drop-down and select is
|
(parent td), users enable drop-down and select is
|
||||||
populated at same time. */
|
populated at same time. */
|
||||||
if(this.fillSlcOnDemand && TF.isIE){
|
if(this.fillSlcOnDemand && hlp.isIE()){
|
||||||
slc.disabled = true;
|
slc.disabled = true;
|
||||||
slc.title = this.activateSlcTooltip;
|
slc.title = this.activateSlcTooltip;
|
||||||
slc.parentNode.onclick = this.Evt._EnableSlc;
|
slc.parentNode.onclick = this.Evt._EnableSlc;
|
||||||
|
@ -1121,7 +1123,7 @@ TableFilter.prototype = {
|
||||||
|
|
||||||
//filter is appended in desired element
|
//filter is appended in desired element
|
||||||
if(externalFltTgtId){
|
if(externalFltTgtId){
|
||||||
TF.id(externalFltTgtId).appendChild(divCont);
|
dom.id(externalFltTgtId).appendChild(divCont);
|
||||||
this.externalFltEls.push(divCont);
|
this.externalFltEls.push(divCont);
|
||||||
} else {
|
} else {
|
||||||
fltcell.appendChild(divCont);
|
fltcell.appendChild(divCont);
|
||||||
|
@ -1161,7 +1163,7 @@ TableFilter.prototype = {
|
||||||
|
|
||||||
//filter is appended in desired element
|
//filter is appended in desired element
|
||||||
if(externalFltTgtId){
|
if(externalFltTgtId){
|
||||||
TF.id(externalFltTgtId).appendChild(inp);
|
dom.id(externalFltTgtId).appendChild(inp);
|
||||||
this.externalFltEls.push(inp);
|
this.externalFltEls.push(inp);
|
||||||
} else {
|
} else {
|
||||||
fltcell.appendChild(inp);
|
fltcell.appendChild(inp);
|
||||||
|
@ -1194,7 +1196,7 @@ TableFilter.prototype = {
|
||||||
|
|
||||||
//filter is appended in desired element
|
//filter is appended in desired element
|
||||||
if(externalFltTgtId){
|
if(externalFltTgtId){
|
||||||
TF.id(externalFltTgtId).appendChild(btn);
|
dom.id(externalFltTgtId).appendChild(btn);
|
||||||
} else{
|
} else{
|
||||||
fltcell.appendChild(btn);
|
fltcell.appendChild(btn);
|
||||||
}
|
}
|
||||||
|
@ -1265,7 +1267,7 @@ TableFilter.prototype = {
|
||||||
|
|
||||||
if(this.loader){
|
if(this.loader){
|
||||||
//this.ShowLoader('none');
|
//this.ShowLoader('none');
|
||||||
this.loaderComponent.show('none');
|
this.loaderCpt.show('none');
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Loads extensions */
|
/* Loads extensions */
|
||||||
|
@ -1351,14 +1353,14 @@ TableFilter.prototype = {
|
||||||
}
|
}
|
||||||
if(o.loader){
|
if(o.loader){
|
||||||
//o.ShowLoader('none');
|
//o.ShowLoader('none');
|
||||||
o.loaderComponent.show('none');
|
o.loaderCpt.show('none');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.loader || this.status || this.statusBar) {
|
if(this.loader || this.status || this.statusBar) {
|
||||||
try{
|
try{
|
||||||
//this.ShowLoader('');
|
//this.ShowLoader('');
|
||||||
this.loaderComponent.show('');
|
this.loaderCpt.show('');
|
||||||
this.StatusMsg(o['msg'+evt]);
|
this.StatusMsg(o['msg'+evt]);
|
||||||
} catch(e){}
|
} catch(e){}
|
||||||
global.setTimeout(efx,this.execDelay);
|
global.setTimeout(efx,this.execDelay);
|
||||||
|
@ -1551,7 +1553,7 @@ TableFilter.prototype = {
|
||||||
}
|
}
|
||||||
if(this.loader){
|
if(this.loader){
|
||||||
// this.RemoveLoader();
|
// this.RemoveLoader();
|
||||||
this.loaderComponent.remove();
|
this.loaderCpt.remove();
|
||||||
}
|
}
|
||||||
if(this.popUpFilters){
|
if(this.popUpFilters){
|
||||||
this.RemovePopupFilters();
|
this.RemovePopupFilters();
|
||||||
|
@ -1617,7 +1619,7 @@ TableFilter.prototype = {
|
||||||
|
|
||||||
//custom container
|
//custom container
|
||||||
if(this.toolBarTgtId){
|
if(this.toolBarTgtId){
|
||||||
TF.id(this.toolBarTgtId).appendChild(infdiv);
|
dom.id(this.toolBarTgtId).appendChild(infdiv);
|
||||||
}
|
}
|
||||||
//fixed headers
|
//fixed headers
|
||||||
else if(this.fixedHeaders && this.contDiv){
|
else if(this.fixedHeaders && this.contDiv){
|
||||||
|
@ -1632,26 +1634,26 @@ TableFilter.prototype = {
|
||||||
else{
|
else{
|
||||||
this.tbl.parentNode.insertBefore(infdiv, this.tbl);
|
this.tbl.parentNode.insertBefore(infdiv, this.tbl);
|
||||||
}
|
}
|
||||||
this.infDiv = TF.id(this.prfxInfDiv+this.id);
|
this.infDiv = dom.id(this.prfxInfDiv+this.id);
|
||||||
|
|
||||||
/*** left div containing rows # displayer ***/
|
/*** left div containing rows # displayer ***/
|
||||||
var ldiv = dom.create('div', ['id',this.prfxLDiv+this.id]);
|
var ldiv = dom.create('div', ['id',this.prfxLDiv+this.id]);
|
||||||
ldiv.className = this.lDivCssClass;
|
ldiv.className = this.lDivCssClass;
|
||||||
infdiv.appendChild(ldiv);
|
infdiv.appendChild(ldiv);
|
||||||
this.lDiv = TF.id(this.prfxLDiv+this.id);
|
this.lDiv = dom.id(this.prfxLDiv+this.id);
|
||||||
|
|
||||||
/*** right div containing reset button
|
/*** right div containing reset button
|
||||||
+ nb results per page select ***/
|
+ nb results per page select ***/
|
||||||
var rdiv = dom.create('div', ['id',this.prfxRDiv+this.id]);
|
var rdiv = dom.create('div', ['id',this.prfxRDiv+this.id]);
|
||||||
rdiv.className = this.rDivCssClass;
|
rdiv.className = this.rDivCssClass;
|
||||||
infdiv.appendChild(rdiv);
|
infdiv.appendChild(rdiv);
|
||||||
this.rDiv = TF.id(this.prfxRDiv+this.id);
|
this.rDiv = dom.id(this.prfxRDiv+this.id);
|
||||||
|
|
||||||
/*** mid div containing paging elements ***/
|
/*** mid div containing paging elements ***/
|
||||||
var mdiv = dom.create('div', ['id',this.prfxMDiv+this.id]);
|
var mdiv = dom.create('div', ['id',this.prfxMDiv+this.id]);
|
||||||
mdiv.className = this.mDivCssClass;
|
mdiv.className = this.mDivCssClass;
|
||||||
infdiv.appendChild(mdiv);
|
infdiv.appendChild(mdiv);
|
||||||
this.mDiv = TF.id(this.prfxMDiv+this.id);
|
this.mDiv = dom.id(this.prfxMDiv+this.id);
|
||||||
|
|
||||||
if(!this.helpInstructions){
|
if(!this.helpInstructions){
|
||||||
this.SetHelpInstructions();
|
this.SetHelpInstructions();
|
||||||
|
@ -1679,99 +1681,13 @@ TableFilter.prototype = {
|
||||||
}
|
}
|
||||||
for(var ct=0; ct<this.externalFltTgtIds.length; ct++){
|
for(var ct=0; ct<this.externalFltTgtIds.length; ct++){
|
||||||
var externalFltTgtId = this.externalFltTgtIds[ct],
|
var externalFltTgtId = this.externalFltTgtIds[ct],
|
||||||
externalFlt = TF.id(externalFltTgtId);
|
externalFlt = dom.id(externalFltTgtId);
|
||||||
if(externalFlt){
|
if(externalFlt){
|
||||||
externalFlt.innerHTML = '';
|
externalFlt.innerHTML = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/*====================================================
|
|
||||||
- generates loader div
|
|
||||||
=====================================================*/
|
|
||||||
// SetLoader: function(){
|
|
||||||
// if(this.loaderDiv){
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// var f = this.fObj;
|
|
||||||
// //id of container element
|
|
||||||
// this.loaderTgtId = f.loader_target_id || null;
|
|
||||||
// //div containing loader
|
|
||||||
// this.loaderDiv = null;
|
|
||||||
// //defines loader text
|
|
||||||
// this.loaderText = f.loader_text || 'Loading...';
|
|
||||||
// //defines loader innerHtml
|
|
||||||
// this.loaderHtml = f.loader_html || null;
|
|
||||||
// //defines css class for loader div
|
|
||||||
// this.loaderCssClass = f.loader_css_class || 'loader';
|
|
||||||
// //delay for hiding loader
|
|
||||||
// this.loaderCloseDelay = 200;
|
|
||||||
// //callback function before loader is displayed
|
|
||||||
// this.onShowLoader = types.isFn(f.on_show_loader) ?
|
|
||||||
// f.on_show_loader : null;
|
|
||||||
// //callback function after loader is closed
|
|
||||||
// this.onHideLoader = types.isFn(f.on_hide_loader) ?
|
|
||||||
// f.on_hide_loader : null;
|
|
||||||
|
|
||||||
// var containerDiv = dom.create('div',['id',this.prfxLoader+this.id]);
|
|
||||||
// containerDiv.className = this.loaderCssClass;// for ie<=6
|
|
||||||
|
|
||||||
// var targetEl = (!this.loaderTgtId) ?
|
|
||||||
// (this.gridLayout ? this.tblCont : this.tbl.parentNode) :
|
|
||||||
// TF.id(this.loaderTgtId);
|
|
||||||
// if(!this.loaderTgtId){
|
|
||||||
// targetEl.insertBefore(containerDiv, this.tbl);
|
|
||||||
// } else {
|
|
||||||
// targetEl.appendChild(containerDiv);
|
|
||||||
// }
|
|
||||||
// this.loaderDiv = TF.id(this.prfxLoader+this.id);
|
|
||||||
// if(!this.loaderHtml){
|
|
||||||
// this.loaderDiv.appendChild(dom.text(this.loaderText));
|
|
||||||
// } else {
|
|
||||||
// this.loaderDiv.innerHTML = this.loaderHtml;
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
|
|
||||||
/*====================================================
|
|
||||||
- removes loader div
|
|
||||||
=====================================================*/
|
|
||||||
// RemoveLoader: function(){
|
|
||||||
// if(!this.loaderDiv){
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// var targetEl = (!this.loaderTgtId) ?
|
|
||||||
// (this.gridLayout ? this.tblCont : this.tbl.parentNode) :
|
|
||||||
// TF.id(this.loaderTgtId);
|
|
||||||
// targetEl.removeChild(this.loaderDiv);
|
|
||||||
// this.loaderDiv = null;
|
|
||||||
// },
|
|
||||||
|
|
||||||
/*====================================================
|
|
||||||
- displays/hides loader div
|
|
||||||
=====================================================*/
|
|
||||||
// ShowLoader: function(p){
|
|
||||||
// if(!this.loader || !this.loaderDiv || this.loaderDiv.style.display===p){
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// var o = this;
|
|
||||||
|
|
||||||
// function displayLoader(){
|
|
||||||
// if(!o.loaderDiv){
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// if(o.onShowLoader && p!=='none'){
|
|
||||||
// o.onShowLoader.call(null,o);
|
|
||||||
// }
|
|
||||||
// o.loaderDiv.style.display = p;
|
|
||||||
// if(o.onHideLoader && p==='none'){
|
|
||||||
// o.onHideLoader.call(null,o);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// var t = p==='none' ? this.loaderCloseDelay : 1;
|
|
||||||
// global.setTimeout(displayLoader,t);
|
|
||||||
// },
|
|
||||||
|
|
||||||
/*====================================================
|
/*====================================================
|
||||||
- Sets sorting feature by loading
|
- Sets sorting feature by loading
|
||||||
WebFX Sortable Table 1.12 plugin by Erik Arvidsson
|
WebFX Sortable Table 1.12 plugin by Erik Arvidsson
|
||||||
|
@ -1886,7 +1802,7 @@ TableFilter.prototype = {
|
||||||
//start row for EditTable constructor needs to be calculated
|
//start row for EditTable constructor needs to be calculated
|
||||||
var startRow,
|
var startRow,
|
||||||
ezEditConfig = o.ezEditTableConfig,
|
ezEditConfig = o.ezEditTableConfig,
|
||||||
thead = TF.tag(o.tbl,'thead');
|
thead = dom.tag(o.tbl,'thead');
|
||||||
|
|
||||||
//if thead exists and startRow not specified, startRow is calculated
|
//if thead exists and startRow not specified, startRow is calculated
|
||||||
//automatically by EditTable
|
//automatically by EditTable
|
||||||
|
@ -2328,7 +2244,7 @@ TableFilter.prototype = {
|
||||||
o.ChangePage();
|
o.ChangePage();
|
||||||
this.blur();
|
this.blur();
|
||||||
//ie only: blur is not enough...
|
//ie only: blur is not enough...
|
||||||
if(this.parentNode && TF.isIE){
|
if(this.parentNode && hlp.isIE()){
|
||||||
this.parentNode.focus();
|
this.parentNode.focus();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -2435,7 +2351,7 @@ TableFilter.prototype = {
|
||||||
if(!this.pagingTgtId){
|
if(!this.pagingTgtId){
|
||||||
this.SetTopDiv();
|
this.SetTopDiv();
|
||||||
}
|
}
|
||||||
var targetEl = !this.pagingTgtId ? this.mDiv : TF.id(this.pagingTgtId);
|
var targetEl = !this.pagingTgtId ? this.mDiv : dom.id(this.pagingTgtId);
|
||||||
|
|
||||||
/***
|
/***
|
||||||
if paging previously removed this prevents IE memory leak with
|
if paging previously removed this prevents IE memory leak with
|
||||||
|
@ -2467,7 +2383,7 @@ TableFilter.prototype = {
|
||||||
targetEl.appendChild(pgspan);
|
targetEl.appendChild(pgspan);
|
||||||
targetEl.appendChild(btnNextSpan);
|
targetEl.appendChild(btnNextSpan);
|
||||||
targetEl.appendChild(btnLastSpan);
|
targetEl.appendChild(btnLastSpan);
|
||||||
this.pagingSlc = TF.id(this.prfxSlcPages+this.id);
|
this.pagingSlc = dom.id(this.prfxSlcPages+this.id);
|
||||||
|
|
||||||
// if this.rememberGridValues==true this.SetPagingInfo() is called
|
// if this.rememberGridValues==true this.SetPagingInfo() is called
|
||||||
// in ResetGridValues() method
|
// in ResetGridValues() method
|
||||||
|
@ -2494,16 +2410,16 @@ TableFilter.prototype = {
|
||||||
// btns containers
|
// btns containers
|
||||||
var btnNextSpan, btnPrevSpan, btnLastSpan, btnFirstSpan;
|
var btnNextSpan, btnPrevSpan, btnLastSpan, btnFirstSpan;
|
||||||
var pgBeforeSpan, pgAfterSpan, pgspan;
|
var pgBeforeSpan, pgAfterSpan, pgspan;
|
||||||
btnNextSpan = TF.id(this.prfxBtnNextSpan+this.id);
|
btnNextSpan = dom.id(this.prfxBtnNextSpan+this.id);
|
||||||
btnPrevSpan = TF.id(this.prfxBtnPrevSpan+this.id);
|
btnPrevSpan = dom.id(this.prfxBtnPrevSpan+this.id);
|
||||||
btnLastSpan = TF.id(this.prfxBtnLastSpan+this.id);
|
btnLastSpan = dom.id(this.prfxBtnLastSpan+this.id);
|
||||||
btnFirstSpan = TF.id(this.prfxBtnFirstSpan+this.id);
|
btnFirstSpan = dom.id(this.prfxBtnFirstSpan+this.id);
|
||||||
//span containing 'Page' text
|
//span containing 'Page' text
|
||||||
pgBeforeSpan = TF.id(this.prfxPgBeforeSpan+this.id);
|
pgBeforeSpan = dom.id(this.prfxPgBeforeSpan+this.id);
|
||||||
//span containing 'of' text
|
//span containing 'of' text
|
||||||
pgAfterSpan = TF.id(this.prfxPgAfterSpan+this.id);
|
pgAfterSpan = dom.id(this.prfxPgAfterSpan+this.id);
|
||||||
//span containing nb of pages
|
//span containing nb of pages
|
||||||
pgspan = TF.id(this.prfxPgSpan+this.id);
|
pgspan = dom.id(this.prfxPgSpan+this.id);
|
||||||
|
|
||||||
this.pagingSlc.parentNode.removeChild(this.pagingSlc);
|
this.pagingSlc.parentNode.removeChild(this.pagingSlc);
|
||||||
|
|
||||||
|
@ -2547,8 +2463,8 @@ TableFilter.prototype = {
|
||||||
=====================================================*/
|
=====================================================*/
|
||||||
SetPagingInfo: function(validRows){
|
SetPagingInfo: function(validRows){
|
||||||
var rows = this.tbl.rows;
|
var rows = this.tbl.rows;
|
||||||
var mdiv = !this.pagingTgtId ? this.mDiv : TF.id(this.pagingTgtId);
|
var mdiv = !this.pagingTgtId ? this.mDiv : dom.id(this.pagingTgtId);
|
||||||
var pgspan = TF.id(this.prfxPgSpan+this.id);
|
var pgspan = dom.id(this.prfxPgSpan+this.id);
|
||||||
//stores valid rows indexes
|
//stores valid rows indexes
|
||||||
if(validRows && validRows.length>0){
|
if(validRows && validRows.length>0){
|
||||||
this.validRowsIndex = validRows;
|
this.validRowsIndex = validRows;
|
||||||
|
@ -2697,7 +2613,7 @@ TableFilter.prototype = {
|
||||||
o.ChangeResultsPerPage();
|
o.ChangeResultsPerPage();
|
||||||
this.blur();
|
this.blur();
|
||||||
//ie only: blur is not enough...
|
//ie only: blur is not enough...
|
||||||
if(this.parentNode && TF.isIE){
|
if(this.parentNode && hlp.isIE()){
|
||||||
this.parentNode.focus();
|
this.parentNode.focus();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -2717,12 +2633,12 @@ TableFilter.prototype = {
|
||||||
this.SetTopDiv();
|
this.SetTopDiv();
|
||||||
}
|
}
|
||||||
var targetEl = !this.resultsPerPageTgtId ?
|
var targetEl = !this.resultsPerPageTgtId ?
|
||||||
this.rDiv : TF.id( this.resultsPerPageTgtId );
|
this.rDiv : dom.id( this.resultsPerPageTgtId );
|
||||||
slcRSpan.appendChild(dom.text(slcRText));
|
slcRSpan.appendChild(dom.text(slcRText));
|
||||||
targetEl.appendChild(slcRSpan);
|
targetEl.appendChild(slcRSpan);
|
||||||
targetEl.appendChild(slcR);
|
targetEl.appendChild(slcR);
|
||||||
|
|
||||||
this.resultsPerPageSlc = TF.id(this.prfxSlcResults+this.id);
|
this.resultsPerPageSlc = dom.id(this.prfxSlcResults+this.id);
|
||||||
|
|
||||||
for(var r=0; r<slcROpts.length; r++)
|
for(var r=0; r<slcROpts.length; r++)
|
||||||
{
|
{
|
||||||
|
@ -2740,7 +2656,7 @@ TableFilter.prototype = {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var slcR = this.resultsPerPageSlc,
|
var slcR = this.resultsPerPageSlc,
|
||||||
slcRSpan = TF.id(this.prfxSlcResultsTxt+this.id);
|
slcRSpan = dom.id(this.prfxSlcResultsTxt+this.id);
|
||||||
if(slcR){
|
if(slcR){
|
||||||
slcR.parentNode.removeChild( slcR );
|
slcR.parentNode.removeChild( slcR );
|
||||||
}
|
}
|
||||||
|
@ -2807,11 +2723,11 @@ TableFilter.prototype = {
|
||||||
this.SetTopDiv();
|
this.SetTopDiv();
|
||||||
}
|
}
|
||||||
var targetEl = !this.helpInstrTgtId ?
|
var targetEl = !this.helpInstrTgtId ?
|
||||||
this.rDiv : TF.id(this.helpInstrTgtId);
|
this.rDiv : dom.id(this.helpInstrTgtId);
|
||||||
targetEl.appendChild(helpspan);
|
targetEl.appendChild(helpspan);
|
||||||
|
|
||||||
var divContainer = !this.helpInstrContTgtId ?
|
var divContainer = !this.helpInstrContTgtId ?
|
||||||
helpspan : TF.id( this.helpInstrContTgtId );
|
helpspan : dom.id( this.helpInstrContTgtId );
|
||||||
|
|
||||||
if(!this.helpInstrBtnHtml){
|
if(!this.helpInstrBtnHtml){
|
||||||
divContainer.appendChild(helpdiv);
|
divContainer.appendChild(helpdiv);
|
||||||
|
@ -3024,11 +2940,11 @@ TableFilter.prototype = {
|
||||||
_PopulateSelect: function(colIndex,isRefreshed,isExternal,extSlcId) {
|
_PopulateSelect: function(colIndex,isRefreshed,isExternal,extSlcId) {
|
||||||
isExternal = isExternal===undefined ? false : isExternal;
|
isExternal = isExternal===undefined ? false : isExternal;
|
||||||
var slcId = this.fltIds[colIndex];
|
var slcId = this.fltIds[colIndex];
|
||||||
if((!TF.id(slcId) && !isExternal) ||
|
if((!dom.id(slcId) && !isExternal) ||
|
||||||
(!TF.id(extSlcId) && isExternal)){
|
(!dom.id(extSlcId) && isExternal)){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var slc = !isExternal ? TF.id(slcId) : TF.id(extSlcId),
|
var slc = !isExternal ? dom.id(slcId) : dom.id(extSlcId),
|
||||||
o = this,
|
o = this,
|
||||||
row = this.tbl.rows,
|
row = this.tbl.rows,
|
||||||
matchCase = this.matchCase,
|
matchCase = this.matchCase,
|
||||||
|
@ -3347,13 +3263,13 @@ TableFilter.prototype = {
|
||||||
_PopulateCheckList: function(colIndex, isExternal, extFltId){
|
_PopulateCheckList: function(colIndex, isExternal, extFltId){
|
||||||
isExternal = !isExternal ? false : isExternal;
|
isExternal = !isExternal ? false : isExternal;
|
||||||
var divFltId = this.prfxCheckListDiv+colIndex+'_'+this.id;
|
var divFltId = this.prfxCheckListDiv+colIndex+'_'+this.id;
|
||||||
if(!TF.id(divFltId) && !isExternal){
|
if(!dom.id(divFltId) && !isExternal){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!TF.id(extFltId) && isExternal){
|
if(!dom.id(extFltId) && isExternal){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var flt = !isExternal ? this.checkListDiv[colIndex] : TF.id(extFltId);
|
var flt = !isExternal ? this.checkListDiv[colIndex] : dom.id(extFltId);
|
||||||
var ul = dom.create('ul',
|
var ul = dom.create('ul',
|
||||||
['id',this.fltIds[colIndex]], ['colIndex',colIndex]);
|
['id',this.fltIds[colIndex]], ['colIndex',colIndex]);
|
||||||
ul.className = this.checkListCssClass;
|
ul.className = this.checkListCssClass;
|
||||||
|
@ -3495,7 +3411,7 @@ TableFilter.prototype = {
|
||||||
li0.style.display = 'none';
|
li0.style.display = 'none';
|
||||||
}
|
}
|
||||||
//IE: label looses check capability
|
//IE: label looses check capability
|
||||||
if(TF.isIE){
|
if(hlp.isIE()){
|
||||||
li0.label.onclick = function(){ li0.check.click(); };
|
li0.label.onclick = function(){ li0.check.click(); };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3509,7 +3425,7 @@ TableFilter.prototype = {
|
||||||
ul.onchange.call(null, e);
|
ul.onchange.call(null, e);
|
||||||
};
|
};
|
||||||
//IE: label looses check capability
|
//IE: label looses check capability
|
||||||
if(TF.isIE){
|
if(hlp.isIE()){
|
||||||
li1.label.onclick = function(){ li1.check.click(); };
|
li1.label.onclick = function(){ li1.check.click(); };
|
||||||
}
|
}
|
||||||
chkCt++;
|
chkCt++;
|
||||||
|
@ -3528,7 +3444,7 @@ TableFilter.prototype = {
|
||||||
ul.onchange.call(null, e);
|
ul.onchange.call(null, e);
|
||||||
};
|
};
|
||||||
//IE: label looses check capability
|
//IE: label looses check capability
|
||||||
if(TF.isIE)
|
if(hlp.isIE())
|
||||||
{
|
{
|
||||||
li2.label.onclick = function(){ li2.check.click(); };
|
li2.label.onclick = function(){ li2.check.click(); };
|
||||||
}
|
}
|
||||||
|
@ -3591,7 +3507,7 @@ TableFilter.prototype = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//IE: label looses check capability
|
//IE: label looses check capability
|
||||||
if(TF.isIE){
|
if(hlp.isIE()){
|
||||||
li.label.onclick = labelClick;
|
li.label.onclick = labelClick;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3607,13 +3523,13 @@ TableFilter.prototype = {
|
||||||
flt.setAttribute('filled','1');
|
flt.setAttribute('filled','1');
|
||||||
|
|
||||||
/*** remember grid values IE only, items remain un-checked ***/
|
/*** remember grid values IE only, items remain un-checked ***/
|
||||||
if(o.rememberGridValues && TF.isIE){
|
if(o.rememberGridValues && hlp.isIE()){
|
||||||
var slcIndexes = ul.getAttribute('indexes');
|
var slcIndexes = ul.getAttribute('indexes');
|
||||||
if(slcIndexes){
|
if(slcIndexes){
|
||||||
var indSplit = slcIndexes.split(',');//items indexes
|
var indSplit = slcIndexes.split(',');//items indexes
|
||||||
for(var n=0; n<indSplit.length; n++){
|
for(var n=0; n<indSplit.length; n++){
|
||||||
//checked item
|
//checked item
|
||||||
var cChk = TF.id(this.fltIds[colIndex]+'_'+indSplit[n]);
|
var cChk = dom.id(this.fltIds[colIndex]+'_'+indSplit[n]);
|
||||||
if(cChk){
|
if(cChk){
|
||||||
cChk.checked = true;
|
cChk.checked = true;
|
||||||
}
|
}
|
||||||
|
@ -3653,7 +3569,8 @@ TableFilter.prototype = {
|
||||||
//checked items loop
|
//checked items loop
|
||||||
for(var u=0; u<indSplit.length; u++){
|
for(var u=0; u<indSplit.length; u++){
|
||||||
//checked item
|
//checked item
|
||||||
var cChk = TF.id(this.fltIds[colIndex]+'_'+indSplit[u]);
|
var cChk = dom.id(
|
||||||
|
this.fltIds[colIndex]+'_'+indSplit[u]);
|
||||||
if(cChk){
|
if(cChk){
|
||||||
cChk.checked = false;
|
cChk.checked = false;
|
||||||
dom.removeClass(
|
dom.removeClass(
|
||||||
|
@ -3674,8 +3591,8 @@ TableFilter.prototype = {
|
||||||
n.setAttribute('value', chkValue );
|
n.setAttribute('value', chkValue );
|
||||||
n.setAttribute('indexes', chkIndex);
|
n.setAttribute('indexes', chkIndex);
|
||||||
//1st option unchecked
|
//1st option unchecked
|
||||||
if(TF.id(this.fltIds[colIndex]+'_0')){
|
if(dom.id(this.fltIds[colIndex]+'_0')){
|
||||||
TF.id(this.fltIds[colIndex]+'_0').checked = false;
|
dom.id(this.fltIds[colIndex]+'_0').checked = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3732,7 +3649,7 @@ TableFilter.prototype = {
|
||||||
this.SetTopDiv();
|
this.SetTopDiv();
|
||||||
}
|
}
|
||||||
var targetEl = !this.btnResetTgtId ? this.rDiv :
|
var targetEl = !this.btnResetTgtId ? this.rDiv :
|
||||||
TF.id( this.btnResetTgtId );
|
dom.id( this.btnResetTgtId );
|
||||||
targetEl.appendChild(resetspan);
|
targetEl.appendChild(resetspan);
|
||||||
|
|
||||||
if(!this.btnResetHtml){
|
if(!this.btnResetHtml){
|
||||||
|
@ -3746,7 +3663,7 @@ TableFilter.prototype = {
|
||||||
var resetEl = resetspan.firstChild;
|
var resetEl = resetspan.firstChild;
|
||||||
resetEl.onclick = this.Evt._Clear;
|
resetEl.onclick = this.Evt._Clear;
|
||||||
}
|
}
|
||||||
this.btnResetEl = TF.id(this.prfxResetSpan+this.id).firstChild;
|
this.btnResetEl = dom.id(this.prfxResetSpan+this.id).firstChild;
|
||||||
},
|
},
|
||||||
|
|
||||||
/*====================================================
|
/*====================================================
|
||||||
|
@ -3756,7 +3673,7 @@ TableFilter.prototype = {
|
||||||
if(!this.hasGrid || !this.btnResetEl){
|
if(!this.hasGrid || !this.btnResetEl){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var resetspan = TF.id(this.prfxResetSpan+this.id);
|
var resetspan = dom.id(this.prfxResetSpan+this.id);
|
||||||
if(resetspan){
|
if(resetspan){
|
||||||
resetspan.parentNode.removeChild( resetspan );
|
resetspan.parentNode.removeChild( resetspan );
|
||||||
}
|
}
|
||||||
|
@ -3807,9 +3724,9 @@ TableFilter.prototype = {
|
||||||
this.SetTopDiv();
|
this.SetTopDiv();
|
||||||
}
|
}
|
||||||
var targetEl = (!this.statusBarTgtId) ?
|
var targetEl = (!this.statusBarTgtId) ?
|
||||||
this.lDiv : TF.id(this.statusBarTgtId);
|
this.lDiv : dom.id(this.statusBarTgtId);
|
||||||
|
|
||||||
if(this.statusBarDiv && TF.isIE){
|
if(this.statusBarDiv && hlp.isIE()){
|
||||||
this.statusBarDiv.outerHTML = '';
|
this.statusBarDiv.outerHTML = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3824,9 +3741,9 @@ TableFilter.prototype = {
|
||||||
targetEl.appendChild(statusSpan);
|
targetEl.appendChild(statusSpan);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.statusBarDiv = TF.id( this.prfxStatus+this.id );
|
this.statusBarDiv = dom.id( this.prfxStatus+this.id );
|
||||||
this.statusBarSpan = TF.id( this.prfxStatusSpan+this.id );
|
this.statusBarSpan = dom.id( this.prfxStatusSpan+this.id );
|
||||||
this.statusBarSpanText = TF.id( this.prfxStatusTxt+this.id );
|
this.statusBarSpanText = dom.id( this.prfxStatusTxt+this.id );
|
||||||
},
|
},
|
||||||
|
|
||||||
/*====================================================
|
/*====================================================
|
||||||
|
@ -3924,10 +3841,10 @@ TableFilter.prototype = {
|
||||||
this.SetTopDiv();
|
this.SetTopDiv();
|
||||||
}
|
}
|
||||||
var targetEl = !this.rowsCounterTgtId ?
|
var targetEl = !this.rowsCounterTgtId ?
|
||||||
this.lDiv : TF.id( this.rowsCounterTgtId );
|
this.lDiv : dom.id( this.rowsCounterTgtId );
|
||||||
|
|
||||||
//IE only: clears all for sure
|
//IE only: clears all for sure
|
||||||
if(this.rowsCounterDiv && TF.isIE){
|
if(this.rowsCounterDiv && hlp.isIE()){
|
||||||
this.rowsCounterDiv.outerHTML = '';
|
this.rowsCounterDiv.outerHTML = '';
|
||||||
}
|
}
|
||||||
//default container: 'lDiv'
|
//default container: 'lDiv'
|
||||||
|
@ -3941,8 +3858,8 @@ TableFilter.prototype = {
|
||||||
targetEl.appendChild(countText);
|
targetEl.appendChild(countText);
|
||||||
targetEl.appendChild(countSpan);
|
targetEl.appendChild(countSpan);
|
||||||
}
|
}
|
||||||
this.rowsCounterDiv = TF.id( this.prfxCounter+this.id );
|
this.rowsCounterDiv = dom.id( this.prfxCounter+this.id );
|
||||||
this.rowsCounterSpan = TF.id( this.prfxTotRows+this.id );
|
this.rowsCounterSpan = dom.id( this.prfxTotRows+this.id );
|
||||||
|
|
||||||
this.RefreshNbRows();
|
this.RefreshNbRows();
|
||||||
},
|
},
|
||||||
|
@ -3960,13 +3877,13 @@ TableFilter.prototype = {
|
||||||
|
|
||||||
if(!this.rowsCounterTgtId && this.rowsCounterDiv){
|
if(!this.rowsCounterTgtId && this.rowsCounterDiv){
|
||||||
//IE only: clears all for sure
|
//IE only: clears all for sure
|
||||||
if(TF.isIE){
|
if(hlp.isIE()){
|
||||||
this.rowsCounterDiv.outerHTML = '';
|
this.rowsCounterDiv.outerHTML = '';
|
||||||
} else {
|
} else {
|
||||||
this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv);
|
this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
TF.id( this.rowsCounterTgtId ).innerHTML = '';
|
dom.id( this.rowsCounterTgtId ).innerHTML = '';
|
||||||
}
|
}
|
||||||
this.rowsCounterSpan = null;
|
this.rowsCounterSpan = null;
|
||||||
this.rowsCounterDiv = null;
|
this.rowsCounterDiv = null;
|
||||||
|
@ -4183,7 +4100,7 @@ TableFilter.prototype = {
|
||||||
this.tblCont.parentNode.insertBefore(this.headTblCont, this.tblCont);
|
this.tblCont.parentNode.insertBefore(this.headTblCont, this.tblCont);
|
||||||
|
|
||||||
//THead needs to be removed in content table for sort feature
|
//THead needs to be removed in content table for sort feature
|
||||||
var thead = TF.tag(this.tbl,'thead');
|
var thead = dom.tag(this.tbl,'thead');
|
||||||
if(thead.length>0){
|
if(thead.length>0){
|
||||||
this.tbl.removeChild(thead[0]);
|
this.tbl.removeChild(thead[0]);
|
||||||
}
|
}
|
||||||
|
@ -4202,7 +4119,7 @@ TableFilter.prototype = {
|
||||||
this.SetColWidths();
|
this.SetColWidths();
|
||||||
|
|
||||||
this.tbl.style.width = '';
|
this.tbl.style.width = '';
|
||||||
if(TF.isIE){
|
if(hlp.isIE()){
|
||||||
this.headTbl.style.width = '';
|
this.headTbl.style.width = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4265,8 +4182,8 @@ TableFilter.prototype = {
|
||||||
f.col_enable_text_ellipsis = false;
|
f.col_enable_text_ellipsis = false;
|
||||||
|
|
||||||
//Cols generation for all browsers excepted IE<=7
|
//Cols generation for all browsers excepted IE<=7
|
||||||
o.tblHasColTag = TF.tag(o.tbl,'col').length > 0 ? true : false;
|
o.tblHasColTag = dom.tag(o.tbl,'col').length > 0 ? true : false;
|
||||||
if(!TF.isIE){
|
if(!hlp.isIE()){
|
||||||
//Col elements are enough to keep column widths after sorting and
|
//Col elements are enough to keep column widths after sorting and
|
||||||
//filtering
|
//filtering
|
||||||
var createColTags = function(o){
|
var createColTags = function(o){
|
||||||
|
@ -4285,7 +4202,7 @@ TableFilter.prototype = {
|
||||||
if(!o.tblHasColTag){
|
if(!o.tblHasColTag){
|
||||||
createColTags(o);
|
createColTags(o);
|
||||||
} else {
|
} else {
|
||||||
var cols = TF.tag(o.tbl,'col');
|
var cols = dom.tag(o.tbl,'col');
|
||||||
for(var ii=0; ii<o.nbCells; ii++){
|
for(var ii=0; ii<o.nbCells; ii++){
|
||||||
cols[ii].setAttribute('id', o.id+'_col_'+ii);
|
cols[ii].setAttribute('id', o.id+'_col_'+ii);
|
||||||
cols[ii].style.width = o.colWidth[ii];
|
cols[ii].style.width = o.colWidth[ii];
|
||||||
|
@ -4296,8 +4213,8 @@ TableFilter.prototype = {
|
||||||
|
|
||||||
//IE <= 7 needs an additional row for widths as col element width is
|
//IE <= 7 needs an additional row for widths as col element width is
|
||||||
//not enough...
|
//not enough...
|
||||||
if(TF.isIE){
|
if(hlp.isIE()){
|
||||||
var tbody = TF.tag(o.tbl,'tbody'),
|
var tbody = dom.tag(o.tbl,'tbody'),
|
||||||
r;
|
r;
|
||||||
if( tbody.length>0 ){
|
if( tbody.length>0 ){
|
||||||
r = tbody[0].insertRow(0);
|
r = tbody[0].insertRow(0);
|
||||||
|
@ -4356,11 +4273,11 @@ TableFilter.prototype = {
|
||||||
var thCW = o.crWColsRow.cells[colIndex].clientWidth;
|
var thCW = o.crWColsRow.cells[colIndex].clientWidth;
|
||||||
var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;
|
var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;
|
||||||
|
|
||||||
if(TF.isIE){
|
if(hlp.isIE()){
|
||||||
o.tbl.style.width = o.headTbl.clientWidth+'px';
|
o.tbl.style.width = o.headTbl.clientWidth+'px';
|
||||||
}
|
}
|
||||||
|
|
||||||
if(thCW != tdCW && !TF.isIE){
|
if(thCW != tdCW && !hlp.isIE()){
|
||||||
o.headTbl.style.width = o.tbl.clientWidth+'px';
|
o.headTbl.style.width = o.tbl.clientWidth+'px';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4392,7 +4309,7 @@ TableFilter.prototype = {
|
||||||
this.tblCont = null;
|
this.tblCont = null;
|
||||||
|
|
||||||
this.tbl.outerHTML = this.sourceTblHtml;
|
this.tbl.outerHTML = this.sourceTblHtml;
|
||||||
this.tbl = TF.id(this.id); //needed to keep reference
|
this.tbl = dom.id(this.id); //needed to keep reference
|
||||||
},
|
},
|
||||||
|
|
||||||
/*====================================================
|
/*====================================================
|
||||||
|
@ -4448,7 +4365,7 @@ TableFilter.prototype = {
|
||||||
var popUpDiv = o.popUpFltElms[colIndex],
|
var popUpDiv = o.popUpFltElms[colIndex],
|
||||||
header = o.GetHeaderElement(colIndex),
|
header = o.GetHeaderElement(colIndex),
|
||||||
headerWidth = header.clientWidth * 0.95;
|
headerWidth = header.clientWidth * 0.95;
|
||||||
if(TF.isIE){
|
if(hlp.isIE()){
|
||||||
var headerLeft = dom.position(header).left;
|
var headerLeft = dom.position(header).left;
|
||||||
popUpDiv.style.left = (headerLeft) + 'px';
|
popUpDiv.style.left = (headerLeft) + 'px';
|
||||||
}
|
}
|
||||||
|
@ -4695,7 +4612,7 @@ TableFilter.prototype = {
|
||||||
// value(s) for filtering
|
// value(s) for filtering
|
||||||
if(this['col'+i]===this.fltTypeSlc ||
|
if(this['col'+i]===this.fltTypeSlc ||
|
||||||
this['col'+i]===this.fltTypeMulti){
|
this['col'+i]===this.fltTypeMulti){
|
||||||
var slc = TF.id( this.fltIds[i] );
|
var slc = dom.id( this.fltIds[i] );
|
||||||
slc.options[0].selected = false;
|
slc.options[0].selected = false;
|
||||||
|
|
||||||
//selects
|
//selects
|
||||||
|
@ -4716,7 +4633,7 @@ TableFilter.prototype = {
|
||||||
this.hasStoredValues = true;
|
this.hasStoredValues = true;
|
||||||
|
|
||||||
// IE multiple selection work-around
|
// IE multiple selection work-around
|
||||||
if(TF.isIE){
|
if(hlp.isIE()){
|
||||||
this.__deferMultipleSelection(slc,j,false);
|
this.__deferMultipleSelection(slc,j,false);
|
||||||
hasStoredValues = false;
|
hasStoredValues = false;
|
||||||
}
|
}
|
||||||
|
@ -4841,11 +4758,11 @@ TableFilter.prototype = {
|
||||||
if(this.contDiv){
|
if(this.contDiv){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var thead = TF.tag(this.tbl,'thead');
|
var thead = dom.tag(this.tbl,'thead');
|
||||||
if(thead.length===0){
|
if(thead.length===0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var tbody = TF.tag(this.tbl,'tbody');
|
var tbody = dom.tag(this.tbl,'tbody');
|
||||||
//firefox returns tbody height
|
//firefox returns tbody height
|
||||||
if(tbody[0].clientHeight!==0){
|
if(tbody[0].clientHeight!==0){
|
||||||
//previous values
|
//previous values
|
||||||
|
@ -4863,12 +4780,12 @@ TableFilter.prototype = {
|
||||||
contDiv.className = this.contDivCssClass;
|
contDiv.className = this.contDivCssClass;
|
||||||
this.tbl.parentNode.insertBefore(contDiv, this.tbl);
|
this.tbl.parentNode.insertBefore(contDiv, this.tbl);
|
||||||
contDiv.appendChild(this.tbl);
|
contDiv.appendChild(this.tbl);
|
||||||
this.contDiv = TF.id(this.prfxContentDiv+this.id);
|
this.contDiv = dom.id(this.prfxContentDiv+this.id);
|
||||||
//prevents headers moving during window scroll (IE)
|
//prevents headers moving during window scroll (IE)
|
||||||
this.contDiv.style.position = 'relative';
|
this.contDiv.style.position = 'relative';
|
||||||
|
|
||||||
var theadH = 0;
|
var theadH = 0;
|
||||||
var theadTr = TF.tag(thead[0],'tr');
|
var theadTr = dom.tag(thead[0],'tr');
|
||||||
//css below emulates fixed headers on IE<=6
|
//css below emulates fixed headers on IE<=6
|
||||||
for(var i=0; i<theadTr.length; i++){
|
for(var i=0; i<theadTr.length; i++){
|
||||||
theadTr[i].style.cssText += 'position:relative; ' +
|
theadTr[i].style.cssText += 'position:relative; ' +
|
||||||
|
@ -4878,12 +4795,12 @@ TableFilter.prototype = {
|
||||||
|
|
||||||
this.contDiv.style.height = (this.tBodyH+theadH)+'px';
|
this.contDiv.style.height = (this.tBodyH+theadH)+'px';
|
||||||
|
|
||||||
var tfoot = TF.tag(this.tbl,'tfoot');
|
var tfoot = dom.tag(this.tbl,'tfoot');
|
||||||
if(tfoot.length===0){
|
if(tfoot.length===0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var tfootTr = TF.tag(tfoot[0],'tr');
|
var tfootTr = dom.tag(tfoot[0],'tr');
|
||||||
|
|
||||||
//css below emulates fixed footer on IE<=6
|
//css below emulates fixed footer on IE<=6
|
||||||
for(var j=0; j<tfootTr.length; j++){
|
for(var j=0; j<tfootTr.length; j++){
|
||||||
|
@ -4907,29 +4824,29 @@ TableFilter.prototype = {
|
||||||
this.contDiv.parentNode.insertBefore(this.tbl, this.contDiv);
|
this.contDiv.parentNode.insertBefore(this.tbl, this.contDiv);
|
||||||
this.contDiv.parentNode.removeChild( this.contDiv );
|
this.contDiv.parentNode.removeChild( this.contDiv );
|
||||||
this.contDiv = null;
|
this.contDiv = null;
|
||||||
var thead = TF.tag(this.tbl,'thead');
|
var thead = dom.tag(this.tbl,'thead');
|
||||||
if(thead.length===0){
|
if(thead.length===0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var theadTr = TF.tag(thead[0],'tr');
|
var theadTr = dom.tag(thead[0],'tr');
|
||||||
if(theadTr.length===0){
|
if(theadTr.length===0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for(var i=0; i<theadTr.length; i++){
|
for(var i=0; i<theadTr.length; i++){
|
||||||
theadTr[i].style.cssText = '';
|
theadTr[i].style.cssText = '';
|
||||||
}
|
}
|
||||||
var tfoot = TF.tag(this.tbl,'tfoot');
|
var tfoot = dom.tag(this.tbl,'tfoot');
|
||||||
if(tfoot.length===0){
|
if(tfoot.length===0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var tfootTr = TF.tag(tfoot[0],'tr');
|
var tfootTr = dom.tag(tfoot[0],'tr');
|
||||||
for(var j=0; j<tfootTr.length; j++){
|
for(var j=0; j<tfootTr.length; j++){
|
||||||
tfootTr[j].style.position = 'relative';
|
tfootTr[j].style.position = 'relative';
|
||||||
tfootTr[j].style.top = '';
|
tfootTr[j].style.top = '';
|
||||||
tfootTr[j].style.overeflowX = '';
|
tfootTr[j].style.overeflowX = '';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var tbody = TF.tag(this.tbl,'tbody');
|
var tbody = dom.tag(this.tbl,'tbody');
|
||||||
if(tbody.length===0){
|
if(tbody.length===0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -5521,7 +5438,7 @@ TableFilter.prototype = {
|
||||||
if(!this.fltGrid){
|
if(!this.fltGrid){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return TF.id(this.fltIds[index]);
|
return dom.id(this.fltIds[index]);
|
||||||
},
|
},
|
||||||
|
|
||||||
/*====================================================
|
/*====================================================
|
||||||
|
@ -5733,7 +5650,7 @@ TableFilter.prototype = {
|
||||||
if(slc.options[j].value!=='' &&
|
if(slc.options[j].value!=='' &&
|
||||||
array.has(s, slc.options[j].value, true)){
|
array.has(s, slc.options[j].value, true)){
|
||||||
// IE multiple selection work-around
|
// IE multiple selection work-around
|
||||||
if(TF.isIE){
|
if(hlp.isIE()){
|
||||||
//when last value reached filtering can be executed
|
//when last value reached filtering can be executed
|
||||||
var filter = ct==(s.length-1) && execFilter ?
|
var filter = ct==(s.length-1) && execFilter ?
|
||||||
true : false;
|
true : false;
|
||||||
|
@ -5752,10 +5669,10 @@ TableFilter.prototype = {
|
||||||
var sarg = searcharg.split(' '+this.orOperator+' '),
|
var sarg = searcharg.split(' '+this.orOperator+' '),
|
||||||
fltValue = slc.setAttribute('value',''),
|
fltValue = slc.setAttribute('value',''),
|
||||||
fltIndex = slc.setAttribute('indexes','');
|
fltIndex = slc.setAttribute('indexes','');
|
||||||
for(var k=0; k<TF.tag(slc,'li').length; k++){
|
for(var k=0; k<dom.tag(slc,'li').length; k++){
|
||||||
var li = TF.tag(slc,'li')[k],
|
var li = dom.tag(slc,'li')[k],
|
||||||
lbl = TF.tag(li,'label')[0],
|
lbl = dom.tag(li,'label')[0],
|
||||||
chk = TF.tag(li,'input')[0],
|
chk = dom.tag(li,'input')[0],
|
||||||
lblTxt = str.matchCase(
|
lblTxt = str.matchCase(
|
||||||
dom.getText(lbl), this.matchCase);
|
dom.getText(lbl), this.matchCase);
|
||||||
if(lblTxt!=='' && array.has(sarg, lblTxt, true)){
|
if(lblTxt!=='' && array.has(sarg, lblTxt, true)){
|
||||||
|
@ -5892,7 +5809,7 @@ TableFilter.prototype = {
|
||||||
activeFlt = activeFlt.split(this.prfxFlt)[1];
|
activeFlt = activeFlt.split(this.prfxFlt)[1];
|
||||||
var slcSelectedValue;
|
var slcSelectedValue;
|
||||||
for(var i=0; i<slcIndex.length; i++){
|
for(var i=0; i<slcIndex.length; i++){
|
||||||
var curSlc = TF.id(this.fltIds[slcIndex[i]]);
|
var curSlc = dom.id(this.fltIds[slcIndex[i]]);
|
||||||
slcSelectedValue = this.GetFilterValue(slcIndex[i]);
|
slcSelectedValue = this.GetFilterValue(slcIndex[i]);
|
||||||
if(activeFlt!==slcIndex[i] ||
|
if(activeFlt!==slcIndex[i] ||
|
||||||
(this.paging && array.has(slcA1, slcIndex[i]) &&
|
(this.paging && array.has(slcA1, slcIndex[i]) &&
|
||||||
|
@ -6167,24 +6084,24 @@ TableFilter.prototype = {
|
||||||
//if outputType is defined
|
//if outputType is defined
|
||||||
if(oTypeThisCol && result){
|
if(oTypeThisCol && result){
|
||||||
result = result.toFixed( precision );
|
result = result.toFixed( precision );
|
||||||
if(TF.id(labThisCol[i])){
|
if(dom.id(labThisCol[i])){
|
||||||
switch( str.lower(oTypeThisCol) ){
|
switch( str.lower(oTypeThisCol) ){
|
||||||
case 'innerhtml':
|
case 'innerhtml':
|
||||||
if (isNaN(result) || !isFinite(result) ||
|
if (isNaN(result) || !isFinite(result) ||
|
||||||
nbvalues===0){
|
nbvalues===0){
|
||||||
TF.id(labThisCol[i]).innerHTML = '.';
|
dom.id(labThisCol[i]).innerHTML = '.';
|
||||||
} else{
|
} else{
|
||||||
TF.id(labThisCol[i]).innerHTML = result;
|
dom.id(labThisCol[i]).innerHTML = result;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'setvalue':
|
case 'setvalue':
|
||||||
TF.id( labThisCol[i] ).value = result;
|
dom.id( labThisCol[i] ).value = result;
|
||||||
break;
|
break;
|
||||||
case 'createtextnode':
|
case 'createtextnode':
|
||||||
var oldnode = TF.id(labThisCol[i])
|
var oldnode = dom.id(labThisCol[i])
|
||||||
.firstChild;
|
.firstChild;
|
||||||
var txtnode = dom.text(result);
|
var txtnode = dom.text(result);
|
||||||
TF.id(labThisCol[i])
|
dom.id(labThisCol[i])
|
||||||
.replaceChild(txtnode, oldnode);
|
.replaceChild(txtnode, oldnode);
|
||||||
break;
|
break;
|
||||||
}//switch
|
}//switch
|
||||||
|
@ -6193,9 +6110,9 @@ TableFilter.prototype = {
|
||||||
try{
|
try{
|
||||||
if(isNaN(result) || !isFinite(result) ||
|
if(isNaN(result) || !isFinite(result) ||
|
||||||
nbvalues===0){
|
nbvalues===0){
|
||||||
TF.id(labThisCol[i]).innerHTML = '.';
|
dom.id(labThisCol[i]).innerHTML = '.';
|
||||||
} else {
|
} else {
|
||||||
TF.id(labThisCol[i]).innerHTML = result.toFixed(
|
dom.id(labThisCol[i]).innerHTML = result.toFixed(
|
||||||
precision);
|
precision);
|
||||||
}
|
}
|
||||||
} catch(e) {}//catch
|
} catch(e) {}//catch
|
||||||
|
@ -6329,7 +6246,7 @@ TableFilter.prototype = {
|
||||||
// filters are appended in external placeholders elements
|
// filters are appended in external placeholders elements
|
||||||
if(this.isExternalFlt){
|
if(this.isExternalFlt){
|
||||||
for(var ct=0; ct<this.externalFltTgtIds.length; ct++){
|
for(var ct=0; ct<this.externalFltTgtIds.length; ct++){
|
||||||
var extFlt = TF.id(this.externalFltTgtIds[ct]);
|
var extFlt = dom.id(this.externalFltTgtIds[ct]);
|
||||||
if(extFlt){
|
if(extFlt){
|
||||||
extFlt.appendChild(this.externalFltEls[ct]);
|
extFlt.appendChild(this.externalFltEls[ct]);
|
||||||
var colFltType = this['col'+ct];
|
var colFltType = this['col'+ct];
|
||||||
|
@ -6423,7 +6340,7 @@ TableFilter.prototype = {
|
||||||
var o = this,
|
var o = this,
|
||||||
isLoaded = false,
|
isLoaded = false,
|
||||||
file,
|
file,
|
||||||
head = TF.tag(doc,'head')[0];
|
head = dom.tag(doc,'head')[0];
|
||||||
|
|
||||||
if(str.lower(ftype) === 'link'){
|
if(str.lower(ftype) === 'link'){
|
||||||
file = dom.create(
|
file = dom.create(
|
||||||
|
@ -6551,7 +6468,7 @@ TableFilter.prototype = {
|
||||||
=====================================================*/
|
=====================================================*/
|
||||||
GetHeaderElement: function(colIndex){
|
GetHeaderElement: function(colIndex){
|
||||||
var table = this.gridLayout ? this.headTbl : this.tbl;
|
var table = this.gridLayout ? this.headTbl : this.tbl;
|
||||||
var header, tHead = TF.tag(this.tbl,'thead');
|
var header, tHead = dom.tag(this.tbl,'thead');
|
||||||
for(var i=0; i<this.nbCells; i++){
|
for(var i=0; i<this.nbCells; i++){
|
||||||
if(i !== colIndex){
|
if(i !== colIndex){
|
||||||
continue;
|
continue;
|
||||||
|
@ -6613,7 +6530,7 @@ function isImported(filePath, type){
|
||||||
var imported = false,
|
var imported = false,
|
||||||
importType = !type ? 'script' : type,
|
importType = !type ? 'script' : type,
|
||||||
attr = importType == 'script' ? 'src' : 'href',
|
attr = importType == 'script' ? 'src' : 'href',
|
||||||
files = TF.tag(doc,importType);
|
files = dom.tag(doc,importType);
|
||||||
for (var i=0; i<files.length; i++){
|
for (var i=0; i<files.length; i++){
|
||||||
if(files[i][attr] === undefined){
|
if(files[i][attr] === undefined){
|
||||||
continue;
|
continue;
|
||||||
|
@ -6690,19 +6607,6 @@ return TableFilter;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// modules container
|
|
||||||
function TF(){}
|
|
||||||
|
|
||||||
TF.id = function(id){
|
|
||||||
return document.getElementById(id);
|
|
||||||
};
|
|
||||||
|
|
||||||
TF.tag = function(o, tagname){
|
|
||||||
return o.getElementsByTagName(tagname);
|
|
||||||
};
|
|
||||||
|
|
||||||
TF.isIE = /msie|MSIE/.test(navigator.userAgent);
|
|
||||||
|
|
||||||
/*====================================================
|
/*====================================================
|
||||||
- Sets filters grid bar
|
- Sets filters grid bar
|
||||||
- Calls TF Constructor and generates grid bar
|
- Calls TF Constructor and generates grid bar
|
||||||
|
@ -6737,7 +6641,7 @@ TF.isIE = /msie|MSIE/.test(navigator.userAgent);
|
||||||
|
|
||||||
// function initFilterGrid(){
|
// function initFilterGrid(){
|
||||||
// if(!document.getElementsByTagName){ return; }
|
// if(!document.getElementsByTagName){ return; }
|
||||||
// var tbls = TF.tag(document,'table'), config;
|
// var tbls = dom.tag(document,'table'), config;
|
||||||
// for (var i=0; i<tbls.length; i++){
|
// for (var i=0; i<tbls.length; i++){
|
||||||
// var cTbl = tbls[i], cTblId = cTbl.getAttribute('id');
|
// var cTbl = tbls[i], cTblId = cTbl.getAttribute('id');
|
||||||
// if(TF.Dom.hasClass(cTbl,'filterable') && cTblId){
|
// if(TF.Dom.hasClass(cTbl,'filterable') && cTblId){
|
||||||
|
|
|
@ -146,6 +146,14 @@ define(function (require) {
|
||||||
return li;
|
return li;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Dom.id = function(id){
|
||||||
|
return document.getElementById(id);
|
||||||
|
};
|
||||||
|
|
||||||
|
Dom.tag = function(o, tagname){
|
||||||
|
return o.getElementsByTagName(tagname);
|
||||||
|
};
|
||||||
|
|
||||||
// HTML5 classList API
|
// HTML5 classList API
|
||||||
function supportsClassList(){
|
function supportsClassList(){
|
||||||
return document.documentElement.classList;
|
return document.documentElement.classList;
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
return require('core');
|
||||||
|
|
||||||
|
});
|
15
src/helpers.js
Normal file
15
src/helpers.js
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
/**
|
||||||
|
* Misc helpers
|
||||||
|
*/
|
||||||
|
|
||||||
|
define(function (require) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var Helpers = {
|
||||||
|
isIE: function(){
|
||||||
|
return (/msie|MSIE/).test(navigator.userAgent);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return Helpers;
|
||||||
|
});
|
|
@ -2,7 +2,7 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>HTML Table Filter Generator</title>
|
<title>HTML Table Filter Generator</title>
|
||||||
<script data-main="../dist/tf-main" src="../dist/libs/require.js"></script>
|
<script src="../libs/requirejs/require.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<table id="demo" cellpadding="0" cellspacing="0">
|
<table id="demo" cellpadding="0" cellspacing="0">
|
||||||
|
@ -67,19 +67,24 @@
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// var tf = setFilterGrid("demo", {
|
requirejs(['core'], function(TableFilter){
|
||||||
// col_0: 'select',
|
// Your logic here
|
||||||
// col_3: 'checklist',
|
var tf = new TableFilter("demo", {
|
||||||
// base_path: './',
|
col_0: 'select',
|
||||||
// enable_default_theme: true,
|
col_3: 'checklist',
|
||||||
// paging: false,
|
base_path: './',
|
||||||
// alternate_rows: true,
|
enable_default_theme: true,
|
||||||
// highlight_keywords: true,
|
paging: false,
|
||||||
// match_case: false,
|
alternate_rows: true,
|
||||||
// remember_grid_values: true,
|
highlight_keywords: true,
|
||||||
// btn_reset: true,
|
match_case: false,
|
||||||
// grid_layout: false
|
remember_grid_values: true,
|
||||||
// });
|
btn_reset: true,
|
||||||
|
grid_layout: false
|
||||||
|
});
|
||||||
|
|
||||||
|
tf.init();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -1,6 +1,5 @@
|
||||||
define(['../dom', '../types'], function (dom, types) {
|
define(['../dom', '../types'], function (dom, types) {
|
||||||
'use strict';
|
'use strict';
|
||||||
console.log(arguments);
|
|
||||||
|
|
||||||
var global = window;
|
var global = window;
|
||||||
|
|
||||||
|
@ -34,13 +33,13 @@ console.log(arguments);
|
||||||
|
|
||||||
var targetEl = !tf.loaderTgtId ?
|
var targetEl = !tf.loaderTgtId ?
|
||||||
(tf.gridLayout ? tf.tblCont : tf.tbl.parentNode) :
|
(tf.gridLayout ? tf.tblCont : tf.tbl.parentNode) :
|
||||||
TF.id(tf.loaderTgtId);
|
dom.id(tf.loaderTgtId);
|
||||||
if(!tf.loaderTgtId){
|
if(!tf.loaderTgtId){
|
||||||
targetEl.insertBefore(containerDiv, tf.tbl);
|
targetEl.insertBefore(containerDiv, tf.tbl);
|
||||||
} else {
|
} else {
|
||||||
targetEl.appendChild(containerDiv);
|
targetEl.appendChild(containerDiv);
|
||||||
}
|
}
|
||||||
tf.loaderDiv = TF.id(tf.prfxLoader+tf.id);
|
tf.loaderDiv = dom.id(tf.prfxLoader+tf.id);
|
||||||
if(!tf.loaderHtml){
|
if(!tf.loaderHtml){
|
||||||
tf.loaderDiv.appendChild(dom.text(tf.loaderText));
|
tf.loaderDiv.appendChild(dom.text(tf.loaderText));
|
||||||
} else {
|
} else {
|
||||||
|
@ -78,7 +77,7 @@ console.log(arguments);
|
||||||
}
|
}
|
||||||
var targetEl = !this.tf.loaderTgtId ?
|
var targetEl = !this.tf.loaderTgtId ?
|
||||||
(this.tf.gridLayout ? this.tf.tblCont : this.tf.tbl.parentNode) :
|
(this.tf.gridLayout ? this.tf.tblCont : this.tf.tbl.parentNode) :
|
||||||
TF.id(this.tf.loaderTgtId);
|
dom.id(this.tf.loaderTgtId);
|
||||||
targetEl.removeChild(this.tf.loaderDiv);
|
targetEl.removeChild(this.tf.loaderDiv);
|
||||||
this.tf.loaderDiv = null;
|
this.tf.loaderDiv = null;
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
|
||||||
|
(function (root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
define(factory);
|
||||||
|
} else if (typeof exports === 'object') {
|
||||||
|
module.exports = factory;
|
||||||
|
} else {
|
||||||
|
root.TableFilter = factory();
|
||||||
|
}
|
||||||
|
})(this, function() {
|
|
@ -1,26 +0,0 @@
|
||||||
|
|
||||||
// requirejs.config({
|
|
||||||
// baseUrl: '../dist/libs',
|
|
||||||
// paths: {
|
|
||||||
// tf: '.'
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
requirejs(['core'], function(TableFilter){
|
|
||||||
// Your logic here
|
|
||||||
var tf = new TableFilter("demo", {
|
|
||||||
col_0: 'select',
|
|
||||||
col_3: 'checklist',
|
|
||||||
base_path: './',
|
|
||||||
enable_default_theme: true,
|
|
||||||
paging: false,
|
|
||||||
alternate_rows: true,
|
|
||||||
highlight_keywords: true,
|
|
||||||
match_case: false,
|
|
||||||
remember_grid_values: true,
|
|
||||||
btn_reset: true,
|
|
||||||
grid_layout: false
|
|
||||||
});
|
|
||||||
|
|
||||||
tf.init();
|
|
||||||
});
|
|
11
src/types.js
11
src/types.js
|
@ -7,6 +7,8 @@ define(function () {
|
||||||
|
|
||||||
var Types = {};
|
var Types = {};
|
||||||
|
|
||||||
|
var UNDEFINED = void 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if var exists and is an object
|
* Checks if var exists and is an object
|
||||||
* @param {String or Object} v
|
* @param {String or Object} v
|
||||||
|
@ -44,5 +46,14 @@ define(function () {
|
||||||
return (obj && obj.constructor == Array);
|
return (obj && obj.constructor == Array);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines if passed param is undefined
|
||||||
|
* @param {Any} o
|
||||||
|
* @return {Boolean}
|
||||||
|
*/
|
||||||
|
Types.isUndef = function(o){
|
||||||
|
return o === UNDEFINED;
|
||||||
|
};
|
||||||
|
|
||||||
return Types;
|
return Types;
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue