From: <al...@us...> - 2008-11-21 21:18:56
|
Revision: 783 http://sciret.svn.sourceforge.net/sciret/?rev=783&view=rev Author: alpeb Date: 2008-11-21 21:18:52 +0000 (Fri, 21 Nov 2008) Log Message: ----------- updated snippet for uploading media in the rich-text-editor (added compatibility with YUI 2.6) Modified Paths: -------------- trunk/javascript/general.js Modified: trunk/javascript/general.js =================================================================== --- trunk/javascript/general.js 2008-11-21 20:34:01 UTC (rev 782) +++ trunk/javascript/general.js 2008-11-21 21:18:52 UTC (rev 783) @@ -803,72 +803,77 @@ {status:'We only allow JPEG Images.'} */ - var yuiImgUploader = function(rte, upload_url, upload_image_name) { - // customize the editor img button - - YAHOO.log( "Adding Click Listener" ,'debug'); - rte.addListener('toolbarLoaded',function() { - rte.toolbar.addListener ( 'insertimageClick', function(o) { - try { - var imgPanel=new YAHOO.util.Element('yui-editor-panel'); - imgPanel.on ( 'contentReady', function() { - try { - var Dom=YAHOO.util.Dom; - var label=document.createElement('label'); - label.innerHTML='<strong>Upload:</strong>'+ - '<input type="file" id="insertimage_upload" name="'+upload_image_name+ - '" size="10" style="width: 20%" />'+ - '<a href="#" id="insertimage_upload_btn" style="width: 20%; margin-left: 10em;">Upload Image</a>'+ - '</label>'; - - var img_elem=Dom.get('insertimage_url'); - Dom.getAncestorByTagName(img_elem, 'form').encoding = 'multipart/form-data'; - - Dom.insertAfter( - label, - img_elem.parentNode); - - YAHOO.util.Event.on ( 'insertimage_upload_btn', 'click', function(ev) { - YAHOO.util.Event.stopEvent(ev); // no default click action - YAHOO.util.Connect.setForm ( img_elem.form, true, true ); - var c=YAHOO.util.Connect.asyncRequest( - 'POST', upload_url, { - upload:function(r){ - try { - // strip pre tags if they got added somehow - resp=r.responseText.replace( /<pre>/i, '').replace ( /<\/pre>/i, ''); - var o=eval('('+resp+')'); - if (o.status=='UPLOADED') { - Dom.get('insertimage_upload').value=''; - Dom.get('insertimage_url').value=o.image_url; - // tell the image panel the url changed - // hack instead of fireEvent('blur') - // which for some reason isn't working - Dom.get('insertimage_url').focus(); - Dom.get('insertimage_upload').focus(); - } else { - alert ( "Upload Failed: "+o.status ); - } - - } catch ( eee ) { - YAHOO.log( eee.message, 'error' ) - } - } - } - ); - return false; - }); - - } catch ( ee ) { YAHOO.log( ee.message, 'error' ) } - }); - } catch ( e ) { - YAHOO.log( e.message, 'error' ) - } - }); - }); - - } + var yuiImgUploader = function(rte, editor_name, upload_url, upload_image_name) { + // customize the editor img button + YAHOO.log( "Adding Click Listener" ,'debug'); + rte.addListener('toolbarLoaded',function() { + rte.toolbar.addListener ( 'insertimageClick', function(o) { + try { + var imgPanel=new YAHOO.util.Element(editor_name + '-panel'); + imgPanel.on ( 'contentReady', function() { + try { + var Dom=YAHOO.util.Dom; + + if (! Dom.get(editor_name + '_insertimage_upload')) + { + var label=document.createElement('label'); + label.innerHTML='<strong>Upload:</strong>'+ + '<input type="file" id="' + + editor_name + '_insertimage_upload" name="'+upload_image_name+ + '" size="10" style="width: 300px" />'+ + '</label>'; + + var img_elem=Dom.get(editor_name + '_insertimage_url'); + Dom.getAncestorByTagName(img_elem, 'form').encoding = 'multipart/form-data'; + + Dom.insertAfter( + label, + img_elem.parentNode); + + YAHOO.util.Event.on ( editor_name + '_insertimage_upload', 'change', function(ev) { + YAHOO.util.Event.stopEvent(ev); // no default click action + YAHOO.util.Connect.setForm ( img_elem.form, true, true ); + var c=YAHOO.util.Connect.asyncRequest( + 'POST', upload_url, { + upload:function(r){ + try { + // strip pre tags if they got added somehow + resp=r.responseText.replace( /<pre>/i, '').replace ( /<\/pre>/i, ''); + var o=eval('('+resp+')'); + if (o.status=='UPLOADED') { + Dom.get(editor_name + '_insertimage_upload').value=''; + Dom.get(editor_name + '_insertimage_url').value=o.image_url; + // tell the image panel the url changed + // hack instead of fireEvent('blur') + // which for some reason isn't working + Dom.get(editor_name + '_insertimage_url').focus(); + Dom.get(editor_name + '_insertimage_upload').focus(); + } else { + alert ( "Upload Failed: "+o.status ); + } + + } catch ( eee ) { + YAHOO.log( eee.message, 'error' ); + } + } + } + ); + return false; + }); + } + } + catch ( ee ) { YAHOO.log( ee.message, 'error' ); } + + }); + } catch ( e ) { + YAHOO.log( e.message, 'error' ); + } + }); + }); + + }; + return { init: function(width, height, element) { @@ -976,7 +981,7 @@ }); myEditor._defaultToolbar.titlebar = false; - yuiImgUploader(myEditor, 'index.php?action=UploadImage', 'image'); + yuiImgUploader(myEditor, 'text_content', 'index.php?action=UploadImage', 'image'); myEditor.render(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |