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