rework autocomplete: use minified version + delete old fk.autocomplete.js
authorrabuzarus <>
Fri, 15 Apr 2016 00:25:58 +0000 (02:25 +0200)
committerrabuzarus <>
Fri, 15 Apr 2016 00:25:58 +0000 (02:25 +0200)
js/fk.autocomplete.js [deleted file]
util/minifyjs.sh
view/templates/head.tpl
view/theme/frost-mobile/templates/end.tpl
view/theme/frost/templates/end.tpl

diff --git a/js/fk.autocomplete.js b/js/fk.autocomplete.js
deleted file mode 100644 (file)
index d7c8127..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-/**
- * Friendica people autocomplete
- *
- * require jQuery, jquery.textareas
- */
-
-
-
-function ACPopup(elm,backend_url){
-       this.idsel=-1;
-       this.element = elm;
-       this.searchText="";
-       this.ready=true;
-       this.kp_timer = false;
-       this.url = backend_url;
-
-       this.conversation_id = null;
-       var conv_id = this.element.id.match(/\d+$/);
-       if (conv_id) this.conversation_id = conv_id[0];
-       console.log("ACPopup elm id",this.element.id,"conversation",this.conversation_id);
-
-       var w = 530;
-       var h = 130;
-
-
-       if(tinyMCE.activeEditor == null) {
-               style = $(elm).offset();
-               w = $(elm).width();
-               h = $(elm).height();
-       }
-       else {
-               // I can't find an "official" way to get the element who get all
-               // this fraking thing that is tinyMCE.
-               // This code will broke again at some point...
-               var container = $(tinyMCE.activeEditor.getContainer()).find("table");
-               style = $(container).offset();
-               w = $(container).width();
-               h = $(container).height();
-       }
-
-       style.top=style.top+h;
-       style.width = w;
-       style.position = 'absolute';
-       /*      style['max-height'] = '150px';
-               style.border = '1px solid red';
-               style.background = '#cccccc';
-
-               style.overflow = 'auto';
-               style['z-index'] = '100000';
-       */
-       style.display = 'none';
-
-       this.cont = $("<div class='acpopup'></div>");
-       this.cont.css(style);
-
-       $("body").append(this.cont);
-}
-ACPopup.prototype.close = function(){
-       $(this.cont).remove();
-       this.ready=false;
-}
-ACPopup.prototype.search = function(text){
-       var that = this;
-       this.searchText=text;
-       if (this.kp_timer) clearTimeout(this.kp_timer);
-       this.kp_timer = setTimeout( function(){that._search();}, 500);
-}
-ACPopup.prototype._search = function(){
-       console.log("_search");
-       var that = this;
-       var postdata = {
-               start:0,
-               count:100,
-               search:this.searchText,
-               type:'c',
-               conversation: this.conversation_id,
-       }
-
-       $.ajax({
-               type:'POST',
-               url: this.url,
-               data: postdata,
-               dataType: 'json',
-               success:function(data){
-                       that.cont.html("");
-                       if (data.tot>0){
-                               that.cont.show();
-                               $(data.items).each(function(){
-                                       var html = "<img class='acpopup-img' src='{0}' height='16px' width='16px'> <span class='acpopup-name'>{1}</span> <span class='acpopup-addr'>({2})</span>".format(this.photo, this.name, this.addr);
-                                       var nick = this.nick.replace(' ','');
-                                       if (this.id!=='')  nick += '+' + this.id;
-                                       that.add(html, nick + ' - ' + this.link);
-                               });
-                       } else {
-                               that.cont.hide();
-                       }
-               }
-       });
-
-}
-ACPopup.prototype.add = function(label, value){
-       var that=this;
-       var elm = $("<div class='acpopupitem' title='"+value+"'>"+label+"</div>");
-       elm.click(function(e){
-               t = $(this).attr('title').replace(new RegExp(' \- .*'),'');
-               if(typeof(that.element.container) === "undefined") {
-                       el=$(that.element);
-                       sel = el.getSelection();
-                       sel.start = sel.start- that.searchText.length;
-                       el.setSelection(sel.start,sel.end).replaceSelectedText(t+' ').collapseSelection(false);
-                       that.close();
-               }
-               else {
-                       txt = tinyMCE.activeEditor.getContent();
-                       //                      alert(that.searchText + ':' + t);
-                       newtxt = txt.replace('@' + that.searchText,'@' + t +' ');
-                       tinyMCE.activeEditor.setContent(newtxt);
-                       tinyMCE.activeEditor.focus();
-                       that.close();
-               }
-       });
-       $(this.cont).append(elm);
-}
-ACPopup.prototype.onkey = function(event){
-       if (event.keyCode == '13') {
-               if(this.idsel>-1) {
-                       this.cont.children()[this.idsel].click();
-                       event.preventDefault();
-               }
-               else
-                       this.close();
-       }
-       if (event.keyCode == '38') { //cursor up
-               cmax = this.cont.children().size()-1;
-               this.idsel--;
-               if (this.idsel<0) this.idsel=cmax;
-               event.preventDefault();
-       }
-       if (event.keyCode == '40' || event.keyCode == '9') { //cursor down
-               cmax = this.cont.children().size()-1;
-               this.idsel++;
-               if (this.idsel>cmax) this.idsel=0;
-               event.preventDefault();
-       }
-
-       if (event.keyCode == '38' || event.keyCode == '40' || event.keyCode == '9') {
-               this.cont.children().removeClass('selected');
-               $(this.cont.children()[this.idsel]).addClass('selected');
-       }
-
-       if (event.keyCode == '27') { //ESC
-               this.close();
-       }
-}
-
-function ContactAutocomplete(element,backend_url){
-       this.pattern=/@([^ \n]+)$/;
-       this.popup=null;
-       var that = this;
-
-       $(element).unbind('keydown');
-       $(element).unbind('keyup');
-
-       $(element).keydown(function(event){
-               if (that.popup!==null) that.popup.onkey(event);
-       });
-
-       $(element).keyup(function(event){
-               cpos = $(this).getSelection();
-               if (cpos.start==cpos.end){
-                       match = $(this).val().substring(0,cpos.start).match(that.pattern);
-                       if (match!==null){
-                               if (that.popup===null){
-                                       that.popup = new ACPopup(this, backend_url);
-                               }
-                               if (that.popup.ready && match[1]!==that.popup.searchText) that.popup.search(match[1]);
-                               if (!that.popup.ready) that.popup=null;
-
-                       } else {
-                               if (that.popup!==null) {that.popup.close(); that.popup=null;}
-                       }
-
-
-               }
-       });
-
-}
-
-
-/**
- * jQuery plugin 'contact_autocomplete'
- */
-(function( $ ){
-  $.fn.contact_autocomplete = function(backend_url) {
-    this.each(function(){
-               new ContactAutocomplete(this, backend_url);
-       });
-  };
-})( jQuery );
-
-
-
-
index 63d312f..b7ed2d8 100755 (executable)
@@ -8,7 +8,6 @@ JSFILES=(
        "js/acl.js"
        "js/ajaxupload.js"
        "js/country.js"
-       "js/fk.autocomplete.js"
        "js/jquery.htmlstream.js"
        "js/main.js"
        "js/webtoolkit.base64.js"
index 31555aa..412323f 100644 (file)
@@ -33,7 +33,7 @@
 <!-- <script type="text/javascript" src="js/jquery-migrate.js" ></script>-->
 <script type="text/javascript" src="js/jquery-migrate.js" ></script>
 <script type="text/javascript" src="js/jquery.textinputs.js" ></script>
-<script type="text/javascript" src="library/jquery-textcomplete/jquery.textcomplete.js" ></script>
+<script type="text/javascript" src="library/jquery-textcomplete/jquery.textcomplete.min.js" ></script>
 <script type="text/javascript" src="js/autocomplete.js" ></script>
 <script type="text/javascript" src="library/colorbox/jquery.colorbox-min.js"></script>
 <script type="text/javascript" src="library/jgrowl/jquery.jgrowl_minimized.js"></script>
index c1acbfb..04416ad 100644 (file)
@@ -7,7 +7,7 @@
 <script type="text/javascript" src="{{$baseurl}}/library/jgrowl/jquery.jgrowl_minimized.js"></script>
 <script type="text/javascript" src="{{$baseurl}}/library/datetimepicker/jquery.datetimepicker.js"></script>
 
-<script type="text/javascript" src="{{$baseurl}}/library/jquery-textcomplete/jquery.textcomplete.js" ></script>
+<script type="text/javascript" src="{{$baseurl}}/library/jquery-textcomplete/jquery.textcomplete.min.js" ></script>
 <script type="text/javascript" src="{{$baseurl}}/js/autocomplete.js" ></script>
 <script type="text/javascript" src="{{$baseurl}}/view/theme/frost-mobile/js/acl.js" ></script>
 <script type="text/javascript" src="{{$baseurl}}/js/webtoolkit.base64.js" ></script>
index e864a94..991ae75 100644 (file)
@@ -19,7 +19,7 @@
 
 <script type="text/javascript" src="{{$baseurl}}/view/theme/frost/js/acl.js" ></script>
 <script type="text/javascript" src="{{$baseurl}}/js/webtoolkit.base64.js" ></script>
-<script type="text/javascript" src="{{$baseurl}}/library/jquery-textcomplete/jquery.textcomplete.js" ></script>
+<script type="text/javascript" src="{{$baseurl}}/library/jquery-textcomplete/jquery.textcomplete.min.js" ></script>
 <script type="text/javascript" src="{{$baseurl}}/js/autocomplete.js" ></script>
 <script type="text/javascript" src="{{$baseurl}}/view/theme/frost/js/main.js" ></script>
 <script type="text/javascript" src="{{$baseurl}}/view/theme/frost/js/theme.js"></script>