LSP restructure (v3)
This commit is contained in:
		
							parent
							
								
									8e6da507bc
								
							
						
					
					
						commit
						ed9c917bf2
					
				
					 18 changed files with 4898 additions and 4842 deletions
				
			
		
							
								
								
									
										86
									
								
								lsp/plugins/cattablesort.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								lsp/plugins/cattablesort.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,86 @@ | |||
| // by Carina van der Meer for DDVtech,
 | ||||
| // based off the "Stupid jQuery table plugin" by JoeQuery (http://joequery.github.io/Stupid-Table-Plugin/)
 | ||||
| 
 | ||||
| (function($){ | ||||
|   $.fn.stupidtable = function(){ | ||||
|     var $table = $(this); | ||||
|     $table.on('click', 'thead th', function() { | ||||
|       $(this).stupidsort(); | ||||
|     }); | ||||
|   } | ||||
|   $.fn.stupidsort = function(){ | ||||
|     var $th = $(this); | ||||
|     var $table = $th.closest('table'); | ||||
|     var $tbody = $table.children('tbody'); | ||||
|     var $trs = $tbody.children('tr'); | ||||
|     var datatype = $th.attr('data-sort-type'); | ||||
|     if (!datatype) { return; } //no data type set? => don't sort by this column
 | ||||
|     var sortasc = true; | ||||
|     if ($th.hasClass('sorting-asc')) { sortasc = false; } | ||||
|      | ||||
|     //find the index of the column that needs sorting
 | ||||
|     var col_index = 0; | ||||
|     $th.prevAll().each(function(){ | ||||
|       var colspan = $(this).attr('colspan'); | ||||
|       col_index += (colspan ? Number(colspan) : 1); | ||||
|     }); | ||||
|      | ||||
|     //a function to return the values that need sorting
 | ||||
|     function getsortval(tr) { | ||||
|       var $tds = $(tr).children('td,th'); | ||||
|        | ||||
|       //find the correct td
 | ||||
|       var i = 0; | ||||
|       var $td; | ||||
|       $tds.each(function(){ | ||||
|         if (i == col_index) { | ||||
|           $td = $(this); | ||||
|           return false; //break
 | ||||
|         } | ||||
|         var colspan = $(this).attr('colspan'); | ||||
|         i += (colspan ? Number(colspan) : 1); | ||||
|       }); | ||||
|        | ||||
|       //get the value
 | ||||
|       var val; | ||||
|       if (typeof $td.data('sort-value') != 'undefined') { | ||||
|         val = $td.data('sort-value'); | ||||
|       } | ||||
|       else if (typeof $td.attr('data-sort-value') != 'undefined') { | ||||
|         val = $td.attr('data-sort-value'); | ||||
|       } | ||||
|       else { | ||||
|         val = $td.text(); | ||||
|       } | ||||
|       //cast to the datatype
 | ||||
|       switch (datatype) { | ||||
|         case 'string': | ||||
|         case 'string-ins': | ||||
|           //always sort strings case insensitive
 | ||||
|           val = String(val).toLowerCase(); | ||||
|           break; | ||||
|         case 'int': | ||||
|           val = parseInt(Number(val)); | ||||
|           break; | ||||
|         case 'float': | ||||
|           val = Number(val); | ||||
|           break; | ||||
|       } | ||||
|       return val; | ||||
|     } | ||||
|      | ||||
|     //do the actual sort
 | ||||
|     $trs.sort(function(a,b){ | ||||
|       var factor = (sortasc ? 1 : -1); | ||||
|       a = getsortval(a); | ||||
|       b = getsortval(b); | ||||
|       if (a > b) { return factor * 1; } | ||||
|       if (a < b) { return factor * -1; } | ||||
|       return 0; | ||||
|     }) | ||||
|     $tbody.append($trs); | ||||
|      | ||||
|     $table.find('thead th').removeClass('sorting-asc').removeClass('sorting-desc') | ||||
|     $th.addClass((sortasc ? 'sorting-asc' : 'sorting-desc')); | ||||
|   } | ||||
| })(jQuery); | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Thulinma
						Thulinma