sigh I always miss something when copying over
This commit is contained in:
		
					parent
					
						
							
								5890e3fa3a
							
						
					
				
			
			
				commit
				
					
						91aacdbb3d
					
				
			
		
					 3 changed files with 196 additions and 2 deletions
				
			
		
							
								
								
									
										194
									
								
								view/theme/frost-mobile/js/fk.autocomplete.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										194
									
								
								view/theme/frost-mobile/js/fk.autocomplete.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,194 @@
 | 
			
		|||
/**
 | 
			
		||||
 * 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;
 | 
			
		||||
 | 
			
		||||
	var w = 530;
 | 
			
		||||
	var h = 130;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	if(typeof elm.editorId == "undefined") {	
 | 
			
		||||
		style = $j(elm).offset();
 | 
			
		||||
		w = $j(elm).width();
 | 
			
		||||
		h = $j(elm).height();
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		var container = elm.getContainer();
 | 
			
		||||
		if(typeof container != "undefined") {
 | 
			
		||||
			style = $j(container).offset();
 | 
			
		||||
			w = $j(container).width();
 | 
			
		||||
	    	h = $j(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 = $j("<div class='acpopup'></div>");
 | 
			
		||||
	this.cont.css(style);
 | 
			
		||||
	
 | 
			
		||||
	$j("body").append(this.cont);
 | 
			
		||||
}
 | 
			
		||||
ACPopup.prototype.close = function(){
 | 
			
		||||
	$j(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',
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	$j.ajax({
 | 
			
		||||
		type:'POST',
 | 
			
		||||
		url: this.url,
 | 
			
		||||
		data: postdata,
 | 
			
		||||
		dataType: 'json',
 | 
			
		||||
		success:function(data){
 | 
			
		||||
			that.cont.html("");
 | 
			
		||||
			if (data.tot>0){
 | 
			
		||||
				that.cont.show();
 | 
			
		||||
				$j(data.items).each(function(){
 | 
			
		||||
					html = "<img src='{0}' height='16px' width='16px'>{1} ({2})".format(this.photo, this.name, this.nick)
 | 
			
		||||
						that.add(html, this.nick.replace(' ','') + '+' + this.id + ' - ' + this.link);
 | 
			
		||||
				});			
 | 
			
		||||
			} else {
 | 
			
		||||
				that.cont.hide();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
	ACPopup.prototype.add = function(label, value){
 | 
			
		||||
	var that=this;
 | 
			
		||||
	var elm = $j("<div class='acpopupitem' title='"+value+"'>"+label+"</div>");
 | 
			
		||||
	elm.click(function(e){
 | 
			
		||||
		t = $j(this).attr('title').replace(new RegExp(' \- .*'),'');
 | 
			
		||||
		if(typeof(that.element.container) === "undefined") {
 | 
			
		||||
			el=$j(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();
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
	$j(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');
 | 
			
		||||
		$j(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;
 | 
			
		||||
	
 | 
			
		||||
	$j(element).unbind('keydown');
 | 
			
		||||
	$j(element).unbind('keyup');
 | 
			
		||||
	
 | 
			
		||||
	$j(element).keydown(function(event){
 | 
			
		||||
		if (that.popup!==null) that.popup.onkey(event);
 | 
			
		||||
	});
 | 
			
		||||
	
 | 
			
		||||
	$j(element).keyup(function(event){
 | 
			
		||||
		cpos = $j(this).getSelection();
 | 
			
		||||
		if (cpos.start==cpos.end){
 | 
			
		||||
			match = $j(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( $ ){
 | 
			
		||||
  $j.fn.contact_autocomplete = function(backend_url) {
 | 
			
		||||
    this.each(function(){
 | 
			
		||||
		new ContactAutocomplete(this, backend_url);
 | 
			
		||||
	});
 | 
			
		||||
  };
 | 
			
		||||
})( jQuery );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		
 | 
			
		||||
| 
						 | 
				
			
			@ -290,7 +290,7 @@
 | 
			
		|||
 | 
			
		||||
			// add a new thread
 | 
			
		||||
 | 
			
		||||
			$j('.tread-wrapper',data).each(function() {
 | 
			
		||||
			$j('.toplevel_item',data).each(function() {
 | 
			
		||||
				var ident = $j(this).attr('id');
 | 
			
		||||
 | 
			
		||||
				if($j('#' + ident).length == 0 && profile_page == 1) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								view/theme/frost/js/main.min.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								view/theme/frost/js/main.min.js
									
										
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue