139 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			139 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
|  | /******************************************************************************* | ||
|  | * 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(); | ||
|  | 			} | ||
|  | 		}); | ||
|  | 	}); | ||
|  | }); |