From 5d21da1fe33814045ccc072adf191500561beb1c Mon Sep 17 00:00:00 2001
From: Brent McSharry
Date: Sat, 12 Apr 2014 23:30:31 +1200
Subject: [PATCH] no html input at top of column annotated display = false
---
.../Content/jquery.dataTables.columnFilter.js | 386 +++++++++++-------
Mvc.JQuery.Datatables/DataTableConfigVm.cs | 9 +-
2 files changed, 241 insertions(+), 154 deletions(-)
diff --git a/Mvc.JQuery.Datatables.Templates/Content/jquery.dataTables.columnFilter.js b/Mvc.JQuery.Datatables.Templates/Content/jquery.dataTables.columnFilter.js
index 1ad289a..8445cdb 100644
--- a/Mvc.JQuery.Datatables.Templates/Content/jquery.dataTables.columnFilter.js
+++ b/Mvc.JQuery.Datatables.Templates/Content/jquery.dataTables.columnFilter.js
@@ -1,9 +1,9 @@
-/*
+/*
* File: jquery.dataTables.columnFilter.js
-* Version: 1.4.1.
+* Version: 1.5.6.
* Author: Jovan Popovic
*
-* Copyright 2011 Jovan Popovic, all rights reserved.
+* Copyright 2011-2014 Jovan Popovic, all rights reserved.
*
* This source file is free software, under either the GPL v2 license or a
* BSD style license, as supplied with this software.
@@ -62,28 +62,28 @@
// use only filtered rows
if (bFiltered == true) aiRows = oSettings.aiDisplay;
- // use all rows
+ // use all rows
else aiRows = oSettings.aiDisplayMaster; // all row numbers
// set up data array
var asResultData = new Array();
for (var i = 0, c = aiRows.length; i < c; i++) {
- iRow = aiRows[i];
+ var iRow = aiRows[i];
var aData = oTable.fnGetData(iRow);
var sValue = aData[iColumn];
// ignore empty values?
if (bIgnoreEmpty == true && sValue.length == 0) continue;
- // ignore unique values?
+ // ignore unique values?
else if (bUnique == true && jQuery.inArray(sValue, asResultData) > -1) continue;
- // else push the value onto the result data array
+ // else push the value onto the result data array
else asResultData.push(sValue);
}
- return asResultData;
+ return asResultData.sort();
}
function _fnColumnIndex(iColumnIndex) {
@@ -95,10 +95,10 @@
//return oTable.fnSettings().oApi._fnColumnIndexToVisible(oTable.fnSettings(), iColumnIndex);
}
- function fnCreateInput(oTable, regex, smart, bIsNumber, iFilterLength) {
- var sCSSClass = "text_filter";
+ function fnCreateInput(oTable, regex, smart, bIsNumber, iFilterLength, iMaxLenght) {
+ var sCSSClass = "text_filter form-control";
if (bIsNumber)
- sCSSClass = "number_filter";
+ sCSSClass = "number_filter form-control";
label = label.replace(/(^\s*)|(\s*$)/g, "");
var currentFilter = oTable.fnSettings().aoPreSearchCols[i].sSearch;
@@ -112,12 +112,16 @@
search_init = '';
}
- var input = $('');
+ var input = $('');
+ if (iMaxLenght != undefined && iMaxLenght != -1) {
+ input.attr('maxlength', iMaxLenght);
+ }
th.html(input);
if (bIsNumber)
th.wrapInner('');
else
th.wrapInner('');
+
asInitVals[i] = label;
var index = i;
@@ -139,8 +143,8 @@
iLastFilterLength = 0;
var iCurrentFilterLength = this.value.length;
if (Math.abs(iCurrentFilterLength - iLastFilterLength) < iFilterLength
- //&& currentFilter.length == 0 //Why this?
- ) {
+ //&& currentFilter.length == 0 //Why this?
+ ) {
//Cancel the filtering
return;
}
@@ -170,26 +174,18 @@
}
function fnCreateRangeInput(oTable) {
- var currentFilter = oTable.fnSettings().aoPreSearchCols[i].sSearch;
- var fromDatePre = '';
- var toDatePre = '';
- if (currentFilter != '' && currentFilter != 'undefined') {
- var arrDates = currentFilter.split("~");
- fromDatePre = arrDates[0];
- toDatePre = arrDates[1];
- }
-
+ //var currentFilter = oTable.fnSettings().aoPreSearchCols[i].sSearch;
th.html(_fnRangeLabelPart(0));
var sFromId = oTable.attr("id") + '_range_from_' + i;
- var from = $('');
+ var from = $('');
th.append(from);
th.append(_fnRangeLabelPart(1));
var sToId = oTable.attr("id") + '_range_to_' + i;
- var to = $('');
+ var to = $('');
th.append(to);
th.append(_fnRangeLabelPart(2));
- th.wrapInner('');
+ th.wrapInner('');
var index = i;
aiCustomSearch_Indexes.push(i);
@@ -206,6 +202,9 @@
function (oSettings, aData, iDataIndex) {
if (oTable.attr("id") != oSettings.sTableId)
return true;
+ // Try to handle missing nodes more gracefully
+ if (document.getElementById(sFromId) == null)
+ return true;
var iMin = document.getElementById(sFromId).value * 1;
var iMax = document.getElementById(sToId).value * 1;
var iValue = aData[_fnColumnIndex(index)] == "-" ? 0 : aData[_fnColumnIndex(index)] * 1;
@@ -244,26 +243,38 @@
function fnCreateDateRangeInput(oTable) {
- var currentFilter = oTable.fnSettings().aoPreSearchCols[i].sSearch;
- var fromDatePre = '';
- var toDatePre = '';
- if (currentFilter != '' && currentFilter != 'undefined') {
- var arrDates = currentFilter.split("~");
- fromDatePre = arrDates[0];
- toDatePre = arrDates[1];
- }
- th.html(_fnRangeLabelPart(0));
+ var aoFragments = sRangeFormat.split(/[}{]/);
+
+ th.html("");
+ //th.html(_fnRangeLabelPart(0));
var sFromId = oTable.attr("id") + '_range_from_' + i;
- var from = $('');
+ var from = $('');
from.datepicker();
- th.append(from);
- th.append(_fnRangeLabelPart(1));
+ //th.append(from);
+ //th.append(_fnRangeLabelPart(1));
var sToId = oTable.attr("id") + '_range_to_' + i;
- var to = $('');
- th.append(to);
- th.append(_fnRangeLabelPart(2));
- th.wrapInner('');
+ var to = $('');
+ //th.append(to);
+ //th.append(_fnRangeLabelPart(2));
+
+ for (ti = 0; ti < aoFragments.length; ti++) {
+
+ if (aoFragments[ti] == properties.sDateFromToken) {
+ th.append(from);
+ } else {
+ if (aoFragments[ti] == properties.sDateToToken) {
+ th.append(to);
+ } else {
+ th.append(aoFragments[ti]);
+ }
+ }
+
+
+ }
+
+
+ th.wrapInner('');
to.datepicker();
var index = i;
aiCustomSearch_Indexes.push(i);
@@ -319,56 +330,98 @@
}
- function fnCreateColumnSelect(oTable, aData, iColumn, nTh, sLabel) {
+ function fnCreateColumnSelect(oTable, aData, iColumn, nTh, sLabel, bRegex, oSelected, bMultiselect) {
if (aData == null)
aData = _fnGetColumnValues(oTable.fnSettings(), iColumn, true, false, true);
var index = iColumn;
var currentFilter = oTable.fnSettings().aoPreSearchCols[i].sSearch;
+ if (currentFilter == null || currentFilter == "")//Issue 81
+ currentFilter = oSelected;
- var r = '