/******************************************************************************* 
 | 
* 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(); 
 | 
            } 
 | 
        }); 
 | 
    }); 
 | 
}); 
 |