| /******************************************************************************* | 
| * KindEditor - WYSIWYG HTML Editor for Internet | 
| * Copyright (C) 2006-2011 kindsoft.net | 
| * | 
| * @author Roddy <luolonghao@gmail.com> | 
| * @site http://www.kindsoft.net/ | 
| * @licence http://www.kindsoft.net/license.php | 
| *******************************************************************************/ | 
|   | 
| KindEditor.plugin('insertfile', function(K) { | 
|     var self = this, name = 'insertfile', | 
|         allowFileUpload = K.undef(self.allowFileUpload, true), | 
|         allowFileManager = K.undef(self.allowFileManager, false), | 
|         formatUploadUrl = K.undef(self.formatUploadUrl, true), | 
|         uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'), | 
|         extraParams = K.undef(self.extraFileUploadParams, {}), | 
|         filePostName = K.undef(self.filePostName, 'imgFile'), | 
|         lang = self.lang(name + '.'); | 
|     self.plugin.fileDialog = function(options) { | 
|         var fileUrl = K.undef(options.fileUrl, 'http://'), | 
|             fileTitle = K.undef(options.fileTitle, ''), | 
|             clickFn = options.clickFn; | 
|         var html = [ | 
|             '<div style="padding:20px;">', | 
|             '<div class="ke-dialog-row">', | 
|             '<label for="keUrl" style="width:60px;">' + lang.url + '</label>', | 
|             '<input  type="text" id="keUrl" name="url" class="ke-input-text" style="width:160px;" />  ', | 
|             '<input  type="button" class="ke-upload-button" value="' + lang.upload + '" />  ', | 
|             '<span class="ke-button-common ke-button-outer">', | 
|             '<input  type="button" class="ke-button-common ke-button" name="viewServer" value="' + lang.viewServer + '" />', | 
|             '</span>', | 
|             '</div>', | 
|             //title | 
|             '<div class="ke-dialog-row">', | 
|             '<label for="keTitle" style="width:60px;">' + lang.title + '</label>', | 
|             '<input  type="text" id="keTitle" class="ke-input-text" name="title" value="" style="width:160px;" /></div>', | 
|             '</div>', | 
|             //form end | 
|             '</form>', | 
|             '</div>' | 
|             ].join(''); | 
|         var dialog = self.createDialog({ | 
|             name : name, | 
|             width : 450, | 
|             title : self.lang(name), | 
|             body : html, | 
|             yesBtn : { | 
|                 name : self.lang('yes'), | 
|                 click : function(e) { | 
|                     var url = K.trim(urlBox.val()), | 
|                         title = titleBox.val(); | 
|                     if (url == 'http://' || K.invalidUrl(url)) { | 
|                         alert(self.lang('invalidUrl')); | 
|                         urlBox[0].focus(); | 
|                         return; | 
|                     } | 
|                     if (K.trim(title) === '') { | 
|                         title = url; | 
|                     } | 
|                     clickFn.call(self, url, title); | 
|                 } | 
|             } | 
|         }), | 
|         div = dialog.div; | 
|   | 
|         var urlBox = K('[name="url"]', div), | 
|             viewServerBtn = K('[name="viewServer"]', div), | 
|             titleBox = K('[name="title"]', div); | 
|   | 
|         if (allowFileUpload) { | 
|             var uploadbutton = K.uploadbutton({ | 
|                 button : K('.ke-upload-button', div)[0], | 
|                 fieldName : filePostName, | 
|                 url : K.addParam(uploadJson, 'dir=file'), | 
|                 extraParams : extraParams, | 
|                 afterUpload : function(data) { | 
|                     dialog.hideLoading(); | 
|                     if (data.error === 0) { | 
|                         var url = data.url; | 
|                         if (formatUploadUrl) { | 
|                             url = K.formatUrl(url, 'absolute'); | 
|                         } | 
|                         urlBox.val(url); | 
|                         if (self.afterUpload) { | 
|                             self.afterUpload.call(self, url, data, name); | 
|                         } | 
|                         alert(self.lang('uploadSuccess')); | 
|                     } else { | 
|                         alert(data.message); | 
|                     } | 
|                 }, | 
|                 afterError : function(html) { | 
|                     dialog.hideLoading(); | 
|                     self.errorDialog(html); | 
|                 } | 
|             }); | 
|             uploadbutton.fileBox.change(function(e) { | 
|                 dialog.showLoading(self.lang('uploadLoading')); | 
|                 uploadbutton.submit(); | 
|             }); | 
|         } else { | 
|             K('.ke-upload-button', div).hide(); | 
|         } | 
|         if (allowFileManager) { | 
|             viewServerBtn.click(function(e) { | 
|                 self.loadPlugin('filemanager', function() { | 
|                     self.plugin.filemanagerDialog({ | 
|                         viewType : 'LIST', | 
|                         dirName : 'file', | 
|                         clickFn : function(url, title) { | 
|                             if (self.dialogs.length > 1) { | 
|                                 K('[name="url"]', div).val(url); | 
|                                 if (self.afterSelectFile) { | 
|                                     self.afterSelectFile.call(self, url); | 
|                                 } | 
|                                 self.hideDialog(); | 
|                             } | 
|                         } | 
|                     }); | 
|                 }); | 
|             }); | 
|         } else { | 
|             viewServerBtn.hide(); | 
|         } | 
|         urlBox.val(fileUrl); | 
|         titleBox.val(fileTitle); | 
|         urlBox[0].focus(); | 
|         urlBox[0].select(); | 
|     }; | 
|     self.clickToolbar(name, function() { | 
|         self.plugin.fileDialog({ | 
|             clickFn : function(url, title) { | 
|                 var html = '<a class="ke-insertfile" href="' + url + '" data-ke-src="' + url + '" target="_blank">' + title + '</a>'; | 
|                 self.insertHtml(html).hideDialog().focus(); | 
|             } | 
|         }); | 
|     }); | 
| }); |