mirror of
				https://github.com/fspc/Yellow-Bike-Database.git
				synced 2025-10-31 00:45:35 -04:00 
			
		
		
		
	Adds etherpad.js plugin library for #39!
This commit is contained in:
		
							parent
							
								
									959fc08092
								
							
						
					
					
						commit
						77be1aa86e
					
				
							
								
								
									
										113
									
								
								js/etherpad.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								js/etherpad.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,113 @@ | |||||||
|  | (function( $ ){ | ||||||
|  | 
 | ||||||
|  |   $.fn.pad = function( options ) { | ||||||
|  |     var settings = { | ||||||
|  |       'host'              : 'http://beta.etherpad.org', | ||||||
|  |       'baseUrl'           : '/p/', | ||||||
|  |       'showControls'      : false, | ||||||
|  |       'showChat'          : false, | ||||||
|  |       'showLineNumbers'   : false, | ||||||
|  |       'userName'          : 'unnamed', | ||||||
|  |       'lang'              : '', | ||||||
|  |       'useMonospaceFont'  : false, | ||||||
|  |       'noColors'          : false, | ||||||
|  |       'userColor'         : false, | ||||||
|  |       'hideQRCode'        : false, | ||||||
|  |       'alwaysShowChat'    : false, | ||||||
|  |       'width'             : 100, | ||||||
|  |       'height'            : 100, | ||||||
|  |       'border'            : 0, | ||||||
|  |       'borderStyle'       : 'solid', | ||||||
|  |       'toggleTextOn'      : 'Disable Rich-text', | ||||||
|  |       'toggleTextOff'     : 'Enable Rich-text', | ||||||
|  |       'plugins'           : {}, | ||||||
|  |       'rtl'               : false | ||||||
|  |     }; | ||||||
|  |      | ||||||
|  |     var $self = this; | ||||||
|  |     if (!$self.length) return; | ||||||
|  |     if (!$self.attr('id')) throw new Error('No "id" attribute'); | ||||||
|  |      | ||||||
|  |     var useValue = $self[0].tagName.toLowerCase() == 'textarea'; | ||||||
|  |     var selfId = $self.attr('id'); | ||||||
|  |     var epframeId = 'epframe'+ selfId; | ||||||
|  |     // This writes a new frame if required
 | ||||||
|  |     if ( !options.getContents ) { | ||||||
|  |       if ( options ) { | ||||||
|  |         $.extend( settings, options ); | ||||||
|  |       } | ||||||
|  |        | ||||||
|  |       var pluginParams = ''; | ||||||
|  |       for(var option in settings.plugins) { | ||||||
|  |         pluginParams += '&' + option + '=' + settings.plugins[option] | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       var iFrameLink = '<iframe id="'+epframeId; | ||||||
|  |           iFrameLink = iFrameLink +'" name="' + epframeId; | ||||||
|  |           iFrameLink = iFrameLink +'" src="' + settings.host+settings.baseUrl+settings.padId; | ||||||
|  |           iFrameLink = iFrameLink + '?showControls=' + settings.showControls; | ||||||
|  |           iFrameLink = iFrameLink + '&showChat=' + settings.showChat; | ||||||
|  |           iFrameLink = iFrameLink + '&showLineNumbers=' + settings.showLineNumbers; | ||||||
|  |           iFrameLink = iFrameLink + '&useMonospaceFont=' + settings.useMonospaceFont; | ||||||
|  |           iFrameLink = iFrameLink + '&userName=' + settings.userName; | ||||||
|  |           if (settings.lang) { | ||||||
|  |             iFrameLink = iFrameLink + '&lang=' + settings.lang; | ||||||
|  |           } | ||||||
|  |           iFrameLink = iFrameLink + '&noColors=' + settings.noColors; | ||||||
|  |           iFrameLink = iFrameLink + '&userColor=' + settings.userColor; | ||||||
|  |           iFrameLink = iFrameLink + '&hideQRCode=' + settings.hideQRCode; | ||||||
|  |           iFrameLink = iFrameLink + '&alwaysShowChat=' + settings.alwaysShowChat; | ||||||
|  |           iFrameLink = iFrameLink + '&rtl=' + settings.rtl; | ||||||
|  |           iFrameLink = iFrameLink + pluginParams; | ||||||
|  |           iFrameLink = iFrameLink +'" style="border:' + settings.border; | ||||||
|  |           iFrameLink = iFrameLink +'; border-style:' + settings.borderStyle; | ||||||
|  |           iFrameLink = iFrameLink +';" width="' + '100%';//settings.width;
 | ||||||
|  |           iFrameLink = iFrameLink +'" height="' + settings.height;  | ||||||
|  |           iFrameLink = iFrameLink +'"></iframe>'; | ||||||
|  |        | ||||||
|  |        | ||||||
|  |       var $iFrameLink = $(iFrameLink); | ||||||
|  |        | ||||||
|  |       if (useValue) { | ||||||
|  |         var $toggleLink = $('<a href="#'+ selfId +'">'+ settings.toggleTextOn +'</a>').click(function(){ | ||||||
|  |           var $this = $(this); | ||||||
|  |           $this.toggleClass('active'); | ||||||
|  |           if ($this.hasClass('active')) $this.text(settings.toggleTextOff); | ||||||
|  |           $self.pad({getContents: true}); | ||||||
|  |           return false; | ||||||
|  |         }); | ||||||
|  |         $self | ||||||
|  |           .hide() | ||||||
|  |           .after($toggleLink) | ||||||
|  |           .after($iFrameLink) | ||||||
|  |         ; | ||||||
|  |       } | ||||||
|  |       else {       | ||||||
|  |         $self.html(iFrameLink); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // This reads the etherpad contents if required
 | ||||||
|  |     else { | ||||||
|  |       var frameUrl = $('#'+ epframeId).attr('src').split('?')[0]; | ||||||
|  |       var contentsUrl = frameUrl + "/export/html"; | ||||||
|  |       var target = $('#'+ options.getContents); | ||||||
|  | 
 | ||||||
|  |       // perform an ajax call on contentsUrl and write it to the parent
 | ||||||
|  |       $.get(contentsUrl, function(data) { | ||||||
|  |          | ||||||
|  |         if (target.is(':input')) { | ||||||
|  |           target.val(data).show(); | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |           target.html(data); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         $('#'+ epframeId).remove(); | ||||||
|  |       }); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |      | ||||||
|  |     return $self; | ||||||
|  |   }; | ||||||
|  | })( jQuery ); | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user