?? ext.ux.uploaddialog.packed.js
字號:
"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}'> </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 : " "
})));
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 + -