forked from GNUsocial/gnu-social
		
	LinkPreview: flesh out stub JS code a bit. URL splitting doesn't quite match core, note.
This commit is contained in:
		| @@ -3,8 +3,53 @@ | ||||
|  */ | ||||
|  | ||||
| $(function() { | ||||
|     /** | ||||
|      * Find URL links from the source text that may be interesting. | ||||
|      * | ||||
|      * @param {String} text | ||||
|      * @return {Array} list of URLs | ||||
|      */ | ||||
|     function findLinks(text) | ||||
|     { | ||||
|         // @fixme match this to core code | ||||
|         var re = /(?:^| )(https?:\/\/.+?\/.+?)(?= |$)/g; | ||||
|         var links = []; | ||||
|         var matches; | ||||
|         while ((matches = re.exec(text)) !== null) { | ||||
|             links.push(matches[1]); | ||||
|         } | ||||
|         return links; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Start looking up info for a link preview... | ||||
|      * May start async data loads. | ||||
|      * | ||||
|      * @param {String} id | ||||
|      * @param {String} url | ||||
|      */ | ||||
|     function prepLinkPreview(id, url) | ||||
|     { | ||||
|         console.log(id, url); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Update the live preview section with links found in the given text. | ||||
|      * May start async data loads. | ||||
|      * | ||||
|      * @param {String} text: free-form input text | ||||
|      */ | ||||
|     function previewLinks(text) | ||||
|     { | ||||
|         var links = findLinks(text); | ||||
|         for (var i = 0; i < links.length; i++) { | ||||
|             var id = 'link-preview-' + i; | ||||
|             prepLinkPreview(id, links[i]); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     $('#notice_data-text').change(function() { | ||||
|        var text = $(this).val(); | ||||
|        alert(text); | ||||
|        previewLinks(text); | ||||
|     }); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user