From 5bc17e0b91265665c85680e7882d182f302246c1 Mon Sep 17 00:00:00 2001
From: rabuzarus <>
Date: Fri, 15 Apr 2016 02:25:58 +0200
Subject: [PATCH] rework autocomplete: use minified version + delete old
fk.autocomplete.js
---
js/fk.autocomplete.js | 203 ----------------------
util/minifyjs.sh | 1 -
view/theme/frost-mobile/templates/end.tpl | 2 +-
view/theme/frost/templates/end.tpl | 2 +-
4 files changed, 2 insertions(+), 206 deletions(-)
delete mode 100644 js/fk.autocomplete.js
diff --git a/js/fk.autocomplete.js b/js/fk.autocomplete.js
deleted file mode 100644
index d7c81276b..000000000
--- a/js/fk.autocomplete.js
+++ /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 = $("
");
- 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 = " ".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 = $("");
- 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 );
-
-
-
-
diff --git a/util/minifyjs.sh b/util/minifyjs.sh
index 63d312f74..b7ed2d8c8 100755
--- a/util/minifyjs.sh
+++ b/util/minifyjs.sh
@@ -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"
diff --git a/view/theme/frost-mobile/templates/end.tpl b/view/theme/frost-mobile/templates/end.tpl
index c1acbfb2a..04416ad00 100644
--- a/view/theme/frost-mobile/templates/end.tpl
+++ b/view/theme/frost-mobile/templates/end.tpl
@@ -7,7 +7,7 @@
-
+
diff --git a/view/theme/frost/templates/end.tpl b/view/theme/frost/templates/end.tpl
index e864a9498..991ae7564 100644
--- a/view/theme/frost/templates/end.tpl
+++ b/view/theme/frost/templates/end.tpl
@@ -19,7 +19,7 @@
-
+