⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ext.ux.uploaddialog.packed.js

📁 实现了一个OA系统基本的功能
💻 JS
📖 第 1 页 / 共 3 页
字号:
				"destroy" : [{
					action : this.flushEventQueue,
					state : "destroyed"
				}]
			},
			"adding-file" : {
				"file-added" : [{
					predicate : this.isUploading,
					action : [this.incInitialQueuedCount,
							this.updateProgressBar, this.fireFileAddEvent],
					state : "uploading"
				}, {
					predicate : this.getUploadAutostart,
					action : [this.startUpload, this.fireFileAddEvent],
					state : "ready"
				}, {
					action : [this.updateToolbar, this.fireFileAddEvent],
					state : "ready"
				}]
			},
			"uploading" : {
				"file-selected" : [{
					predicate : [this.fireFileTestEvent, this.isPermittedFile],
					action : this.addFileToUploadQueue,
					state : "adding-file"
				}, {}],
				"grid-selection-change" : [{}],
				"start-upload" : [{}],
				"stop-upload" : [{
					predicate : this.hasUnuploadedFiles,
					action : [this.resetUploadingFlag, this.abortUpload,
							this.updateToolbar, this.updateProgressBar,
							this.fireUploadStopEvent],
					state : "ready"
				}, {
					action : [this.resetUploadingFlag, this.abortUpload,
							this.updateToolbar, this.updateProgressBar,
							this.fireUploadStopEvent,
							this.fireUploadCompleteEvent],
					state : "ready"
				}],
				"file-upload-start" : [{
					action : [this.uploadFile, this.findUploadFrame,
							this.fireFileUploadStartEvent]
				}],
				"file-upload-success" : [{
					predicate : this.hasUnuploadedFiles,
					action : [this.resetUploadFrame, this.updateRecordState,
							this.updateProgressBar, this.prepareNextUploadTask,
							this.fireUploadSuccessEvent]
				}, {
					action : [this.resetUploadFrame, this.resetUploadingFlag,
							this.updateRecordState, this.updateToolbar,
							this.updateProgressBar,
							this.fireUploadSuccessEvent,
							this.fireUploadCompleteEvent],
					state : "ready"
				}],
				"file-upload-error" : [{
					predicate : this.hasUnuploadedFiles,
					action : [this.resetUploadFrame, this.updateRecordState,
							this.updateProgressBar, this.prepareNextUploadTask,
							this.fireUploadErrorEvent]
				}, {
					action : [this.resetUploadFrame, this.resetUploadingFlag,
							this.updateRecordState, this.updateToolbar,
							this.updateProgressBar, this.fireUploadErrorEvent,
							this.fireUploadCompleteEvent],
					state : "ready"
				}],
				"file-upload-failed" : [{
					predicate : this.hasUnuploadedFiles,
					action : [this.resetUploadFrame, this.updateRecordState,
							this.updateProgressBar, this.prepareNextUploadTask,
							this.fireUploadFailedEvent]
				}, {
					action : [this.resetUploadFrame, this.resetUploadingFlag,
							this.updateRecordState, this.updateToolbar,
							this.updateProgressBar, this.fireUploadFailedEvent,
							this.fireUploadCompleteEvent],
					state : "ready"
				}],
				"hide" : [{
					predicate : this.getResetOnHide,
					action : [this.stopUpload, this.repostHide]
				}, {}],
				"destroy" : [{
					predicate : this.hasUnuploadedFiles,
					action : [this.resetUploadingFlag, this.abortUpload,
							this.fireUploadStopEvent, this.flushEventQueue],
					state : "destroyed"
				}, {
					action : [this.resetUploadingFlag, this.abortUpload,
							this.fireUploadStopEvent,
							this.fireUploadCompleteEvent, this.flushEventQueue],
					state : "destroyed"
				}]
			},
			"destroyed" : {}
		};
		this.fsa = new Ext.ux.Utils.FSA("created", tt, this);
		this.addEvents({
			"filetest" : true,
			"fileadd" : true,
			"fileremove" : true,
			"resetqueue" : true,
			"uploadsuccess" : true,
			"uploaderror" : true,
			"uploadfailed" : true,
			"uploadstart" : true,
			"uploadstop" : true,
			"uploadcomplete" : true,
			"fileuploadstart" : true
		});
		this.on("render", this.onWindowRender, this);
		this.on("beforehide", this.onWindowBeforeHide, this);
		this.on("hide", this.onWindowHide, this);
		this.on("destroy", this.onWindowDestroy, this);
		this.state_tpl = new Ext.Template("<div class='ext-ux-uploaddialog-state ext-ux-uploaddialog-state-{state}'>&#160;</div>")
				.compile()
	},
	createForm : function() {
		this.form = Ext.DomHelper.append(this.body, {
			tag : "form",
			method : "post",
			action : this.url,
			style : "position: absolute; left: -100px; top: -100px; width: 100px; height: 100px"
		})
	},
	createProgressBar : function() {
		this.progress_bar = this.add(new Ext.ProgressBar({
			x : 0,
			y : 0,
			anchor : "0",
			value : 0,
			text : this.i18n.progress_waiting_text
		}))
	},
	createGrid : function() {
		var store = new Ext.data.Store({
			proxy : new Ext.data.MemoryProxy([]),
			reader : new Ext.data.JsonReader({}, Ext.ux.UploadDialog.FileRecord),
			sortInfo : {
				field : "state",
				direction : "DESC"
			},
			pruneModifiedRecords : true
		});
		var cm = new Ext.grid.ColumnModel([{
			header : this.i18n.state_col_title,
			width : this.i18n.state_col_width,
			resizable : false,
			dataIndex : "state",
			sortable : true,
			renderer : this.renderStateCell.createDelegate(this)
		}, {
			header : this.i18n.filename_col_title,
			width : this.i18n.filename_col_width,
			dataIndex : "filename",
			sortable : true,
			renderer : this.renderFilenameCell.createDelegate(this)
		}, {
			header : this.i18n.note_col_title,
			width : this.i18n.note_col_width,
			dataIndex : "note",
			sortable : true,
			renderer : this.renderNoteCell.createDelegate(this)
		}]);
		this.grid_panel = new Ext.grid.GridPanel({
			ds : store,
			cm : cm,
			x : 0,
			y : 22,
			anchor : "0 -22",
			border : true,
			viewConfig : {
				autoFill : true,
				forceFit : true
			},
			bbar : new Ext.Toolbar()
		});
		this.grid_panel.on("render", this.onGridRender, this);
		this.add(this.grid_panel);
		this.grid_panel.getSelectionModel().on("selectionchange",
				this.onGridSelectionChange, this)
	},
	fillToolbar : function() {
		var tb = this.grid_panel.getBottomToolbar();
		tb.x_buttons = {};
		tb.x_buttons.add = tb.addItem(new Ext.ux.UploadDialog.TBBrowseButton({
			text : this.i18n.add_btn_text,
			tooltip : this.i18n.add_btn_tip,
			iconCls : "ext-ux-uploaddialog-addbtn",
			handler : this.onAddButtonFileSelected,
			scope : this
		}));
		tb.x_buttons.remove = tb.addButton({
			text : this.i18n.remove_btn_text,
			tooltip : this.i18n.remove_btn_tip,
			iconCls : "ext-ux-uploaddialog-removebtn",
			handler : this.onRemoveButtonClick,
			scope : this
		});
		tb.x_buttons.reset = tb.addButton({
			text : this.i18n.reset_btn_text,
			tooltip : this.i18n.reset_btn_tip,
			iconCls : "ext-ux-uploaddialog-resetbtn",
			handler : this.onResetButtonClick,
			scope : this
		});
		tb.add("-");
		tb.x_buttons.upload = tb.addButton({
			text : this.i18n.upload_btn_start_text,
			tooltip : this.i18n.upload_btn_start_tip,
			iconCls : "ext-ux-uploaddialog-uploadstartbtn",
			handler : this.onUploadButtonClick,
			scope : this
		});
		tb.add("-");
		tb.x_buttons.indicator = tb.addItem(new Ext.Toolbar.Item(Ext.DomHelper
				.append(tb.getEl(), {
					tag : "div",
					cls : "ext-ux-uploaddialog-indicator-stoped",
					html : "&#160"
				})));
		tb.add("->");
		tb.x_buttons.close = tb.addButton({
			text : this.i18n.close_btn_text,
			tooltip : this.i18n.close_btn_tip,
			handler : this.onCloseButtonClick,
			scope : this
		})
	},
	renderStateCell : function(data, cell, record, row_index, column_index,
			store) {
		return this.state_tpl.apply({
			state : data
		})
	},
	renderFilenameCell : function(data, cell, record, row_index, column_index,
			store) {
		var view = this.grid_panel.getView();
		var f = function() {
			try {
				Ext.fly(view.getCell(row_index, column_index))
						.child(".x-grid3-cell-inner").dom["qtip"] = data
			} catch (e) {
			}
		};
		f.defer(1000);
		return data
	},
	renderNoteCell : function(data, cell, record, row_index, column_index,
			store) {
		var view = this.grid_panel.getView();
		var f = function() {
			try {
				Ext.fly(view.getCell(row_index, column_index))
						.child(".x-grid3-cell-inner").dom["qtip"] = data
			} catch (e) {
			}
		};
		f.defer(1000);
		return data
	},
	getFileExtension : function(filename) {
		var result = null;
		var parts = filename.split(".");
		if (parts.length > 1) {
			result = parts.pop()
		}
		return result
	},
	isPermittedFileType : function(filename) {
		var result = true;
		if (this.permitted_extensions.length > 0) {
			result = this.permitted_extensions.indexOf(this
					.getFileExtension(filename)) != -1
		}
		return result
	},
	isPermittedFile : function(browse_btn) {
		var result = false;
		var filename = browse_btn.getInputFile().dom.value;
		if (this.isPermittedFileType(filename)) {
			result = true
		} else {
			Ext.Msg.alert(this.i18n.error_msgbox_title, String.format(
					this.i18n.err_file_type_not_permitted, filename,
					this.permitted_extensions
							.join(this.i18n.permitted_extensions_join_str)));
			result = false
		}
		return result
	},
	fireFileTestEvent : function(browse_btn) {
		return this.fireEvent("filetest", this,
				browse_btn.getInputFile().dom.value) !== false
	},
	addFileToUploadQueue : function(browse_btn) {
		var input_file = browse_btn.detachInputFile();
		input_file.appendTo(this.form);
		input_file.setStyle("width", "100px");
		input_file.dom.disabled = true;
		var store = this.grid_panel.getStore();
		store.add(new Ext.ux.UploadDialog.FileRecord({
			state : Ext.ux.UploadDialog.FileRecord.STATE_QUEUE,
			filename : input_file.dom.value,
			note : this.i18n.note_queued_to_upload,
			input_element : input_file
		}));
		this.fsa.postEvent("file-added", input_file.dom.value)
	},
	fireFileAddEvent : function(filename) {
		this.fireEvent("fileadd", this, filename)
	},
	updateProgressBar : function() {
		if (this.is_uploading) {
			var queued = this.getQueuedCount(true);
			var value = 1 - queued / this.initial_queued_count;
			this.progress_bar.updateProgress(value, String.format(
					this.i18n.progress_uploading_text,
					this.initial_queued_count - queued,
					this.initial_queued_count))
		} else {
			this.progress_bar
					.updateProgress(0, this.i18n.progress_waiting_text)
		}
	},
	updateToolbar : function() {
		var tb = this.grid_panel.getBottomToolbar();
		if (this.is_uploading) {
			tb.x_buttons.remove.disable();
			tb.x_buttons.reset.disable();
			tb.x_buttons.upload.enable();
			if (!this.getAllowCloseOnUpload()) {
				tb.x_buttons.close.disable()
			}
			Ext.fly(tb.x_buttons.indicator.getEl()).replaceClass(

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -