|
Lines 135-168
jQuery.fn.dataTableExt.oApi.fnAddFilters = function ( oSettings, sClass, iDelay
Link Here
|
| 135 |
}); |
135 |
}); |
| 136 |
} |
136 |
} |
| 137 |
|
137 |
|
| 138 |
// Useful if you want to filter on dates with 2 inputs (start date and end date) |
|
|
| 139 |
// You have to include calendar.inc to use it |
| 140 |
function dt_add_rangedate_filter(begindate_id, enddate_id, dateCol) { |
| 141 |
$.fn.dataTableExt.afnFiltering.push( |
| 142 |
function( oSettings, aData, iDataIndex ) { |
| 143 |
|
| 144 |
var beginDate = Date_from_syspref($("#"+begindate_id).val()).getTime(); |
| 145 |
var endDate = Date_from_syspref($("#"+enddate_id).val()).getTime(); |
| 146 |
|
| 147 |
var data = Date_from_syspref(aData[dateCol]).getTime(); |
| 148 |
|
| 149 |
if ( !parseInt(beginDate) && ! parseInt(endDate) ) { |
| 150 |
return true; |
| 151 |
} |
| 152 |
else if ( beginDate <= data && !parseInt(endDate) ) { |
| 153 |
return true; |
| 154 |
} |
| 155 |
else if ( data <= endDate && !parseInt(beginDate) ) { |
| 156 |
return true; |
| 157 |
} |
| 158 |
else if ( beginDate <= data && data <= endDate) { |
| 159 |
return true; |
| 160 |
} |
| 161 |
return false; |
| 162 |
} |
| 163 |
); |
| 164 |
} |
| 165 |
|
| 166 |
// Sorting on html contains |
138 |
// Sorting on html contains |
| 167 |
// <a href="foo.pl">bar</a> sort on 'bar' |
139 |
// <a href="foo.pl">bar</a> sort on 'bar' |
| 168 |
function dt_overwrite_html_sorting_localeCompare() { |
140 |
function dt_overwrite_html_sorting_localeCompare() { |
|
Lines 203-267
function dt_overwrite_html_sorting_localeCompare() {
Link Here
|
| 203 |
}; |
175 |
}; |
| 204 |
} |
176 |
} |
| 205 |
|
177 |
|
| 206 |
// Sorting on string without accentued characters |
|
|
| 207 |
function dt_overwrite_string_sorting_localeCompare() { |
| 208 |
jQuery.fn.dataTableExt.oSort['string-asc'] = function(a,b) { |
| 209 |
a = a.replace(/<.*?>/g, "").replace(/\s+/g, " "); |
| 210 |
b = b.replace(/<.*?>/g, "").replace(/\s+/g, " "); |
| 211 |
if (typeof(a.localeCompare == "function")) { |
| 212 |
return a.localeCompare(b); |
| 213 |
} else { |
| 214 |
return (a > b) ? 1 : ((a < b) ? -1 : 0); |
| 215 |
} |
| 216 |
}; |
| 217 |
|
| 218 |
jQuery.fn.dataTableExt.oSort['string-desc'] = function(a,b) { |
| 219 |
a = a.replace(/<.*?>/g, "").replace(/\s+/g, " "); |
| 220 |
b = b.replace(/<.*?>/g, "").replace(/\s+/g, " "); |
| 221 |
if(typeof(b.localeCompare == "function")) { |
| 222 |
return b.localeCompare(a); |
| 223 |
} else { |
| 224 |
return (b > a) ? 1 : ((b < a) ? -1 : 0); |
| 225 |
} |
| 226 |
}; |
| 227 |
} |
| 228 |
|
| 229 |
// Replace a node with a html and js contain. |
| 230 |
function replace_html( original_node, type ) { |
| 231 |
switch ( $(original_node).attr('data-type') ) { |
| 232 |
case "range_dates": |
| 233 |
var id = $(original_node).attr("data-id"); |
| 234 |
var format = $(original_node).attr("data-format"); |
| 235 |
replace_html_date( original_node, id, format ); |
| 236 |
break; |
| 237 |
default: |
| 238 |
alert(_("This node can't be replaced")); |
| 239 |
} |
| 240 |
} |
| 241 |
|
| 242 |
// Replace a node with a "From [date] To [date]" element |
| 243 |
// Used on tfoot > td |
| 244 |
function replace_html_date( original_node, id, format ) { |
| 245 |
var node = $('<span style="white-space:nowrap">' + _("From") + '<input type="text" id="' + id + 'from" readonly="readonly" placeholder=\'' + _("Pick date") + '\' size="7" /><a title="' + _("Delete this filter") + '" style="cursor:pointer" onclick=\'$("#' + id + 'from").val("").change();\' >×</a></span><br/><span style="white-space:nowrap">' + _("To") + '<input type="text" id="' + id + 'to" readonly="readonly" placeholder=\'' + _("Pick date") + '\' size="7" /><a title="' + _("Delete this filter") + '" style="cursor:pointer" onclick=\'$("#' + id + 'to").val("").change();\' >×</a></span>'); |
| 246 |
$(original_node).replaceWith(node); |
| 247 |
var script = document.createElement( 'script' ); |
| 248 |
script.type = 'text/javascript'; |
| 249 |
var script_content = "Calendar.setup({"; |
| 250 |
script_content += " inputField: \"" + id + "from\","; |
| 251 |
script_content += " ifFormat: \"" + format + "\","; |
| 252 |
script_content += " button: \"" + id + "from\","; |
| 253 |
script_content += " onClose: function(){ $(\"#" + id + "from\").change(); this.hide();}"; |
| 254 |
script_content += " });"; |
| 255 |
script_content += " Calendar.setup({"; |
| 256 |
script_content += " inputField: \"" + id + "to\","; |
| 257 |
script_content += " ifFormat: \"" + format + "\","; |
| 258 |
script_content += " button: \"" + id + "to\","; |
| 259 |
script_content += " onClose: function(){ $(\"#" + id + "to\").change(); this.hide();}"; |
| 260 |
script_content += " });"; |
| 261 |
script.text = script_content; |
| 262 |
$(original_node).append( script ); |
| 263 |
} |
| 264 |
|
| 265 |
$.fn.dataTableExt.oPagination.four_button = { |
178 |
$.fn.dataTableExt.oPagination.four_button = { |
| 266 |
/* |
179 |
/* |
| 267 |
* Function: oPagination.four_button.fnInit |
180 |
* Function: oPagination.four_button.fnInit |
| 268 |
- |
|
|