Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F390556
FileInput.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
FileInput.js
View Options
if
(
!
dojo
.
_hasResource
[
"dojox.widget.FileInput"
]){
//_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo
.
_hasResource
[
"dojox.widget.FileInput"
]
=
true
;
dojo
.
provide
(
"dojox.widget.FileInput"
);
dojo
.
experimental
(
"dojox.widget.FileInput"
);
dojo
.
require
(
"dijit.form._FormWidget"
);
dojo
.
require
(
"dijit._Templated"
);
dojo
.
declare
(
"dojox.widget.FileInput"
,
[
dijit
.
form
.
_FormWidget
,
dijit
.
_Templated
],
{
// summary: A styled input type="file"
//
// description: A input type="file" form widget, with a button for uploading to be styled via css,
// a cancel button to clear selection, and FormWidget mixin to provide standard dijit.form.Form
// support (FIXME: maybe not fully implemented)
// label: String
// the title text of the "Browse" button
label
:
"Browse ..."
,
// cancelText: String
// the title of the "Cancel" button
cancelText
:
"Cancel"
,
// name: String
// ugh, this should be pulled from this.domNode
name
:
"uploadFile"
,
templateString
:
"<div class=\"dijitFileInput\">\n\t<input id=\"${id}\" class=\"dijitFileInputReal\" type=\"file\" dojoAttachPoint=\"fileInput\" name=\"${name}\" />\n\t<div class=\"dijitFakeInput\">\n\t\t<input class=\"dijitFileInputVisible\" type=\"text\" dojoAttachPoint=\"focusNode, inputNode\" />\n\t\t<span class=\"dijitFileInputText\" dojoAttachPoint=\"titleNode\">${label}</span>\n\t\t<span class=\"dijitFileInputButton\" dojoAttachPoint=\"cancelNode\" \n\t\t\tdojoAttachEvent=\"onclick:_onClick\">${cancelText}</span>\n\t</div>\n</div>\n"
,
startup
:
function
(){
// summary: listen for changes on our real file input
this
.
inherited
(
"startup"
,
arguments
);
this
.
_listener
=
dojo
.
connect
(
this
.
fileInput
,
"onchange"
,
this
,
"_matchValue"
);
this
.
_keyListener
=
dojo
.
connect
(
this
.
fileInput
,
"onkeyup"
,
this
,
"_matchValue"
);
},
_matchValue
:
function
(){
// summary: set the content of the upper input based on the semi-hidden file input
this
.
inputNode
.
value
=
this
.
fileInput
.
value
;
if
(
this
.
inputNode
.
value
){
this
.
cancelNode
.
style
.
visibility
=
"visible"
;
dojo
.
fadeIn
({
node
:
this
.
cancelNode
,
duration
:
275
}).
play
();
}
},
setLabel
:
function
(
/* String */
label
,
/* String? */
cssClass
){
// summary: method to allow use to change button label
this
.
titleNode
.
innerHTML
=
label
;
},
_onClick
:
function
(
/* Event */
e
){
// summary: on click of cancel button, since we can't clear the input because of
// security reasons, we destroy it, and add a new one in it's place.
dojo
.
disconnect
(
this
.
_listener
);
dojo
.
disconnect
(
this
.
_keyListener
);
this
.
domNode
.
removeChild
(
this
.
fileInput
);
dojo
.
fadeOut
({
node
:
this
.
cancelNode
,
duration
:
275
}).
play
();
// should we use cloneNode()? can we?
this
.
fileInput
=
document
.
createElement
(
'input'
);
this
.
fileInput
.
setAttribute
(
"type"
,
"file"
);
this
.
fileInput
.
setAttribute
(
"id"
,
this
.
id
);
this
.
fileInput
.
setAttribute
(
"name"
,
this
.
name
);
dojo
.
addClass
(
this
.
fileInput
,
"dijitFileInputReal"
);
this
.
domNode
.
appendChild
(
this
.
fileInput
);
this
.
_keyListener
=
dojo
.
connect
(
this
.
fileInput
,
"onkeyup"
,
this
,
"_matchValue"
);
this
.
_listener
=
dojo
.
connect
(
this
.
fileInput
,
"onchange"
,
this
,
"_matchValue"
);
this
.
inputNode
.
value
=
""
;
}
});
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Feb 22, 15:27 (14 h, 49 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26578
Default Alt Text
FileInput.js (3 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment