summaryrefslogtreecommitdiff
path: root/html/assets/js/dataTables/dataTables.alphabetSearch.min.js
diff options
context:
space:
mode:
authorGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-13 02:35:32 +0200
committerGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-13 02:35:32 +0200
commit4eac9731fe77023488cdf3aa124a6aa1e5444a59 (patch)
tree7c9510b23ea7a40a2280b39e87e55a1612309df1 /html/assets/js/dataTables/dataTables.alphabetSearch.min.js
parent33266244e8c75c29f31dd5dce756e55fb10a0b9b (diff)
downloadclassroom-4eac9731fe77023488cdf3aa124a6aa1e5444a59.tar.gz
classroom-4eac9731fe77023488cdf3aa124a6aa1e5444a59.tar.bz2
classroom-4eac9731fe77023488cdf3aa124a6aa1e5444a59.zip
setup needed libraries for browser-scripting
Diffstat (limited to 'html/assets/js/dataTables/dataTables.alphabetSearch.min.js')
-rw-r--r--html/assets/js/dataTables/dataTables.alphabetSearch.min.js5
1 files changed, 5 insertions, 0 deletions
diff --git a/html/assets/js/dataTables/dataTables.alphabetSearch.min.js b/html/assets/js/dataTables/dataTables.alphabetSearch.min.js
new file mode 100644
index 0000000..9a1ea0a
--- /dev/null
+++ b/html/assets/js/dataTables/dataTables.alphabetSearch.min.js
@@ -0,0 +1,5 @@
+/*! AlphabetSearch for DataTables v1.2.5
+ * 2014 SpryMedia Ltd - datatables.net/license
+ * Gyrocode LLC - MIT License
+ */
+(function($){$.fn.dataTable.Api.register("alphabetSearch()",function(searchTerm){this.iterator("table",function(context){context.alphabetSearch.letter=searchTerm;});return this;});$.fn.dataTable.Api.register("alphabetSearch.recalc()",function(){this.iterator("table",function(context){draw(new $.fn.dataTable.Api(context),$("div.alphabet",this.table().container()),context);});return this;});$.fn.dataTable.ext.search.push(function(context,searchData){if(!context.hasOwnProperty("alphabetSearch")){return true;}if(!context.alphabetSearch.letterSearch){return true;}var letter=searchData[context.alphabetSearch.column].toString().replace(/<.*?>/g,"").charAt(0).toUpperCase();if(context.alphabetSearch.letterSearch!=="#"){if(letter===context.alphabetSearch.letterSearch){return true;}}else{if(/\d/.test(letter)){return true;}}return false;});$.fn.dataTable.ext.order["alphabetSearch"]=function(context,col){var order_col=this.api().order()[0][0];var order_method=this.api().order()[0][1];if(order_col!==context.alphabetSearch.column){context.alphabetSearch.pass=0;}var data=this.api().column(col,{order:"index"}).data().map(function(value,index){var letter=value.replace(/<.*?>/g,"").charAt(0).toUpperCase();return(order_col===context.alphabetSearch.column)?((!context.alphabetSearch.pass)?"":((order_method==="asc")?letter:String.fromCharCode(65535-letter.charCodeAt(0)))):letter;});if(order_col===context.alphabetSearch.column){if(!context.alphabetSearchPass){context.alphabetSearch.pass=0;}context.alphabetSearch.pass=(context.alphabetSearch.pass+1)%2;}return data;};function bin(data){var letter,bins={};for(var i=0,ien=data.length;i<ien;i++){letter=data[i].toString().replace(/<.*?>/g,"").charAt(0).toUpperCase();if(/\d/.test(letter)){letter="#";}if(bins[letter]){bins[letter]++;}else{bins[letter]=1;}}return bins;}function draw(table,alphabet,context){alphabet.empty();if(context.oLanguage.alphabetSearch.infoDisplay!==""){$('<span class="alphabet-info-display"></span>').html(context.oLanguage.alphabetSearch.infoDisplay).appendTo(alphabet);}var columnData=table.column(context.alphabetSearch.column,{search:"applied"}).data();var bins=bin(columnData);var alphabetList=$("<ul/>");$("<a/>").attr("href","javascript:;").data("letter","").data("match-count",columnData.length).addClass(((!context.alphabetSearch.letter)?"active":"")).html("<span>"+context.oLanguage.alphabetSearch.infoAll+"</span>").wrap("<li/>").parent().appendTo(alphabetList);for(var i=0;i<context.oLanguage.alphabetSearch.alphabet.length;i++){var letter=context.oLanguage.alphabetSearch.alphabet[i];$("<a/>").attr("href","javascript:;").data("letter",letter).data("match-count",bins[letter]||0).addClass((!bins[letter]?"empty":"")+((context.alphabetSearch.letter===letter)?" active":"")).html("<span>"+letter+"</span>").wrap("<li/>").parent().appendTo(alphabetList);}alphabetList.appendTo(alphabet);$('<div class="alphabet-info"></div>').appendTo(alphabet);if(context.alphabetSearch.letter){context.alphabetSearch.letterSearch=context.alphabetSearch.letter;table.draw();context.alphabetSearch.letterSearch="";}table.one("search",function(e,context){var api=new $.fn.dataTable.Api(context);api.alphabetSearch.recalc();});}$.fn.dataTable.AlphabetSearch=function(context){var table=new $.fn.dataTable.Api(context);var alphabet=$('<div class="alphabet"/>');context.oLanguage.alphabetSearch=$.extend({"alphabet":"#ABCDEFGHIJKLMNOPQRSTUVWXYZ","infoDisplay":"Display:","infoAll":"All"},((context.oLanguage.alphabetSearch)?context.oLanguage.alphabetSearch:{}));context.oLanguage.alphabetSearch.alphabet.toUpperCase();context.alphabetSearch=$.extend({column:0},$.isPlainObject(context.oInit.alphabetSearch)?context.oInit.alphabetSearch:{},{letter:"",letterSearch:"",pass:0});if(context.alphabetSearch.column>=0&&context.alphabetSearch.column<context.aoColumns.length){context.aoColumns[context.alphabetSearch.column].sSortDataType="alphabetSearch";}if(context.hasOwnProperty("aaSortingFixed")&&typeof context.aaSortingFixed==="object"){if($.isArray(context.aaSortingFixed)){if(context.aaSortingFixed.length&&!$.isArray(context.aaSortingFixed[0])){context.aaSortingFixed=[[context.alphabetSearch.column,"asc"],context.aaSortingFixed];}else{context.aaSortingFixed.unshift([context.alphabetSearch.column,"asc"]);}}else{if(!context.aaSortingFixed.hasOwnProperty("pre")){context.aaSortingFixed.pre=[];}if(context.aaSortingFixed.pre.length&&!$.isArray(context.aaSortingFixed.pre[0])){context.aaSortingFixed.pre=[[context.alphabetSearch.column,"asc"],context.aaSortingFixed.pre];}else{context.aaSortingFixed.pre.unshift([context.alphabetSearch.column,"asc"]);}}}else{context.aaSortingFixed=[context.alphabetSearch.column,"asc"];}draw(table,alphabet,context);alphabet.on("click","a",function(e){e.preventDefault();alphabet.find(".active").removeClass("active");$(this).addClass("active");table.alphabetSearch($(this).data("letter")).draw();});alphabet.on("mouseenter","a",function(){var $el=$(this);var el_pos=$el.position();var $alphabet_info=$(".alphabet-info",alphabet);$alphabet_info.html($el.data("match-count"));$alphabet_info.css({opacity:1,left:el_pos.left+Math.round(($el.outerWidth()-$alphabet_info.outerWidth())/2),top:$(this).position().top+$el.outerHeight()});}).on("mouseleave","a",function(){alphabet.find("div.alphabet-info").css("opacity",0);});table.on("draw",function(e,context){var api=new $.fn.dataTable.Api(context);var col_total=api.columns().nodes().length;var rows=api.rows({page:"current"}).nodes();var group_last=null;api.column(context.alphabetSearch.column,{page:"current"}).data().each(function(name,index){var group=name.replace(/<.*?>/g,"").charAt(0).toUpperCase();if(group_last!==group){$(rows).eq(index).before('<tr class="alphabet-group"><td colspan="'+col_total+'">'+group+"</td></tr>");group_last=group;}});if(!rows.length&&context.alphabetSearch){var letter=context.alphabetSearch.letter;$(api.table().body()).prepend('<tr class="alphabet-group"><td colspan="'+col_total+'">'+letter+"</td></tr>");}});this.node=function(){return alphabet;};};$.fn.DataTable.AlphabetSearch=$.fn.dataTable.AlphabetSearch;$.fn.dataTable.ext.feature.push({fnInit:function(settings){var search=new $.fn.dataTable.AlphabetSearch(settings);return search.node();},cFeature:"A"});}(jQuery)); \ No newline at end of file