1
1
2
- var fName = null ;
3
- var fData = null ;
4
- var espURL = "http://" + location . host ;
2
+ var filename = null ;
3
+ var fileData = null ;
4
+ var host = location . host ;
5
+ var espURL = "http://" + host ;
5
6
6
7
function UploadData ( )
7
8
{
8
9
var xhr = new XMLHttpRequest ( ) ;
9
- var url = espUrl + "/upload&" + fName
10
- var params = fData ;
10
+ var url = espUrl + "/upload&" + filename
11
+ var params = fileData ;
11
12
xhr . open ( "POST" , url , true ) ;
12
13
xhr . send ( params ) ;
13
14
}
14
15
15
16
function UploadFile ( )
16
17
{
17
18
UploadData ( ) ;
18
- cancelUpload ( ) ;
19
19
setTimeout ( fetchFileList , 2000 ) ;
20
20
}
21
21
22
+ var caution = 0 ;
23
+ function readSingleFile ( e ) // since in first run above does nothing, and after we upload a file, click is recorded, this function is set in motion.
24
+ {
25
+ var file = e . target . files [ 0 ] ; // return the file taht waws uploaded
26
+ filename = file . name ;
27
+ if ( ! file )
28
+ {
29
+ caution = 1 ;
30
+ }
31
+ var reader = new FileReader ( ) ;
32
+ reader . onload = function ( e )
33
+ {
34
+ fileData = e . target . result ;
35
+ } ;
36
+ reader . readAsText ( file ) ;
37
+
38
+
39
+ }
40
+
22
41
function fetchFileList ( )
23
42
{
24
43
var xhr = new XMLHttpRequest ( ) ;
@@ -30,11 +49,11 @@ function fetchFileList()
30
49
{
31
50
if ( xhr . readyState == 4 && xhr . status == 200 ) //done & success
32
51
{
33
- showFiles ( xhr . responseText ) ;
52
+ DisplayDirectory ( xhr . responseText ) ;
34
53
}
35
54
else
36
55
{
37
- showFilesError ( ) ;
56
+ alert ( "Failed to connect" ) ;
38
57
}
39
58
}
40
59
@@ -44,19 +63,19 @@ function fetchFileList()
44
63
function deleteFile ( filename )
45
64
{
46
65
var xhr = new XMLHttpRequest ( ) ;
47
- var url = espUrl + "/delete&" + fName ;
66
+ var url = espUrl + "/delete&" + filename ;
48
67
49
68
xhr . open ( "GET" , url , true ) ;
50
69
xhr . setRequestHeader ( "Content-type" , "application/x-www-form-urlencoded" ) ;
51
70
xhr . onreadystatechange = function ( )
52
71
{
53
72
if ( xhr . readyState == 4 && xhr . status == 200 )
54
73
{
55
- showFiles ( xhr . responseText ) ;
74
+ DisplayDirectory ( xhr . responseText ) ;
56
75
}
57
76
else
58
77
{
59
- showFilesError ( ) ;
78
+ alert ( "Failed to connect" ) ;
60
79
}
61
80
}
62
81
xhr . send ( ) ;
@@ -65,30 +84,136 @@ function deleteFile(filename)
65
84
function flashFile ( filename )
66
85
{
67
86
var xhr = new XMLHttpRequest ( ) ;
68
- var url = espUrl + "/flash&" + fName ;
87
+ var url = espUrl + "/flash&" + filename ;
69
88
70
89
xhr . open ( "GET" , url , true ) ;
71
90
xhr . setRequestHeader ( "Content-type" , "application/x-www-form-urlencoded" ) ;
72
91
xhr . onreadystatechange = function ( )
73
92
{
74
93
if ( xhr . readyState == 4 && xhr . status == 200 )
75
94
{
76
- showFiles ( xhr . responseText ) ;
95
+ DisplayDirectory ( xhr . responseText ) ;
77
96
}
78
97
}
79
98
xhr . send ( ) ;
80
99
}
81
100
82
101
83
- function stageFile ( fName , option ) // staging selected file for flash/delete
102
+
103
+ var checkRow = 0 ;
104
+ function GenerateRows ( filename , filesize )
105
+ {
106
+ var table = document . getElementById ( "table" ) ;
107
+ if ( checkRow == 0 )
108
+ {
109
+ document . getElementById ( "table" ) . deleteRow ( 0 ) ;
110
+ }
111
+ var row = table . insertRow ( checkRow ) ;
112
+ checkRow = checkRow + 1 ;
113
+ var cell1 = row . insertCell ( 0 ) ;
114
+ var cell2 = row . insertCell ( 1 ) ;
115
+ cell1 . innerHTML = filename ;
116
+ cell2 . innerHTML = filesize ;
117
+ }
118
+
119
+
120
+ function DisplayDirectory ( requestList )
84
121
{
85
- if ( option == 1 )
122
+ var listData = requestList . split ( "\n" ) ;
123
+ if ( listData . length == 0 )
86
124
{
87
- flashFile ( fName ) ;
125
+ checkRow = 0 ;
88
126
}
89
- else
127
+
128
+ var totalsize = 0 ;
129
+ var filecount = 0 ;
130
+
131
+ for ( var i = 0 ; i < listData . length ; i ++ )
90
132
{
91
- deleteFile ( fName ) ;
133
+ if ( listData . length < 5 )
134
+ {
135
+ continue ;
136
+ }
137
+ filecount ++ ;
138
+ var elements = listData . split ( ";" ) ;
139
+ totalsize += parseInt ( elements [ 1 ] ) ;
140
+ GenerateRows ( elements [ 0 ] , elements [ 1 ] ) ;
92
141
}
142
+ var lastRow = filecount - 1 ;
143
+ var table1 = document . getElementById ( "tab" ) ;
144
+ var rowTotal = table1 . insertRow ( lastRow ) ;
145
+ var cell3 = rowTotal . insertCell ( 0 ) ;
146
+ var cell4 = rowTotal . insertCell ( 1 ) ;
147
+ cell3 . innerHTML = "Total Files:" + filecount ;
148
+ cell4 . innerHTML = "Total Size:" + totalsize ;
93
149
}
94
150
151
+ /*
152
+ File Input snippet
153
+ By Osvaldas Valutis, www.osvaldas.info
154
+ Available for use under the MIT License
155
+ */
156
+
157
+ var inputs = document . querySelectorAll ( '.inputfile' ) ;
158
+ Array . prototype . forEach . call ( inputs , function ( input )
159
+ {
160
+ var label = input . nextElementSibling ,
161
+ labelVal = label . innerHTML ;
162
+
163
+ input . addEventListener ( 'change' , function ( e )
164
+ {
165
+ var fileName = '' ;
166
+ if ( this . files && this . files . length > 1 )
167
+ fileName = ( this . getAttribute ( 'data-multiple-caption' ) || '' ) . replace ( '{count}' , this . files . length ) ;
168
+ else
169
+ fileName = e . target . value . split ( '\\' ) . pop ( ) ;
170
+
171
+ if ( fileName )
172
+ label . querySelector ( 'span' ) . innerHTML = fileName ;
173
+ else
174
+ label . innerHTML = labelVal ;
175
+ } ) ;
176
+ } ) ;
177
+
178
+
179
+ /* Function for highlighting row of staged file */
180
+
181
+ function highlight_row ( )
182
+ {
183
+ var table = document . getElementById ( 'table' ) ;
184
+ var cells = table . getElementsByTagName ( 'td' ) ;
185
+
186
+ for ( var i = 0 ; i < cells . length ; i ++ )
187
+ {
188
+ // Take each cell
189
+ var cell = cells [ i ] ;
190
+ // do something on onclick event for cell
191
+ cell . onclick = function ( )
192
+ {
193
+ // Get the row id where the cell exists
194
+ var rowId = this . parentNode . rowIndex ;
195
+
196
+ var rowsNotSelected = table . getElementsByTagName ( 'tr' ) ;
197
+ for ( var row = 0 ; row < rowsNotSelected . length ; row ++ )
198
+ {
199
+ rowsNotSelected [ row ] . style . backgroundColor = "" ;
200
+ rowsNotSelected [ row ] . classList . remove ( 'selected' ) ;
201
+ }
202
+ var rowSelected = table . getElementsByTagName ( 'tr' ) [ rowId ] ;
203
+ rowSelected . style . backgroundColor = "#e5a734" ;
204
+ rowSelected . className += " selected" ;
205
+
206
+
207
+
208
+ }
209
+ }
210
+
211
+ } //end of function
212
+ document . getElementById ( 'file-7' ) . addEventListener ( 'change' , readSingleFile , false ) ;
213
+
214
+ window . onload = highlight_row ( ) ;
215
+
216
+ window . onload = function ( )
217
+ {
218
+ fetchFileList ( ) ;
219
+ } ;
0 commit comments