/******************************************************************************* * KindEditor - WYSIWYG HTML Editor for Internet * Copyright (C) 2006-2011 kindsoft.net * * @author Roddy * @site http://www.kindsoft.net/ * @licence http://www.kindsoft.net/license.php *******************************************************************************/ KindEditor.plugin('insertfile', function(K) { var self = this, name = 'insertfile', allowFileManager = K.undef(self.allowFileManager, false), uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'), 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 = [ '
', '
', '', '  ', '  ', '', '', '', '
', //title '
', '', '
', '
', //form end '', '' ].join(''); var dialog = self.createDialog({ name : name, width : 450, height : 180, 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); } }, beforeRemove : function() { viewServerBtn.remove(); uploadbutton.remove(); } }), div = dialog.div; var urlBox = K('[name="url"]', div), viewServerBtn = K('[name="viewServer"]', div), titleBox = K('[name="title"]', div); var uploadbutton = K.uploadbutton({ button : K('.ke-upload-button', div)[0], fieldName : 'imgFile', url : K.addParam(uploadJson, 'dir=file'), afterUpload : function(data) { dialog.hideLoading(); if (data.error === 0) { var url = K.formatUrl(data.url, 'absolute'); urlBox.val(url); if (self.afterUpload) { self.afterUpload.call(self, url); } 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(); }); 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); 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 = '' + title + ''; self.insertHtml(html).hideDialog().focus(); } }); }); });