Skip to content

Commit e3278a8

Browse files
author
Gaurab Dasgupta
committed
merged both, dynamically append rows
1 parent 018cb0f commit e3278a8

File tree

2 files changed

+143
-89
lines changed

2 files changed

+143
-89
lines changed

src/webpage/js/tweaks.js

Lines changed: 0 additions & 71 deletions
This file was deleted.

src/webpage/js/xml.js

Lines changed: 143 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,43 @@
11

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;
56

67
function UploadData()
78
{
89
var xhr = new XMLHttpRequest();
9-
var url = espUrl + "/upload&"+ fName
10-
var params = fData;
10+
var url = espUrl + "/upload&"+ filename
11+
var params = fileData;
1112
xhr.open("POST", url, true);
1213
xhr.send(params);
1314
}
1415

1516
function UploadFile()
1617
{
1718
UploadData();
18-
cancelUpload();
1919
setTimeout(fetchFileList, 2000);
2020
}
2121

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+
2241
function fetchFileList()
2342
{
2443
var xhr = new XMLHttpRequest();
@@ -30,11 +49,11 @@ function fetchFileList()
3049
{
3150
if(xhr.readyState == 4 && xhr.status == 200) //done & success
3251
{
33-
showFiles(xhr.responseText);
52+
DisplayDirectory(xhr.responseText);
3453
}
3554
else
3655
{
37-
showFilesError();
56+
alert("Failed to connect");
3857
}
3958
}
4059

@@ -44,19 +63,19 @@ function fetchFileList()
4463
function deleteFile(filename)
4564
{
4665
var xhr = new XMLHttpRequest();
47-
var url = espUrl + "/delete&" + fName;
66+
var url = espUrl + "/delete&" + filename;
4867

4968
xhr.open("GET", url, true);
5069
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
5170
xhr.onreadystatechange = function()
5271
{
5372
if(xhr.readyState == 4 && xhr.status == 200)
5473
{
55-
showFiles(xhr.responseText);
74+
DisplayDirectory(xhr.responseText);
5675
}
5776
else
5877
{
59-
showFilesError();
78+
alert("Failed to connect");
6079
}
6180
}
6281
xhr.send();
@@ -65,30 +84,136 @@ function deleteFile(filename)
6584
function flashFile(filename)
6685
{
6786
var xhr = new XMLHttpRequest();
68-
var url = espUrl + "/flash&" + fName;
87+
var url = espUrl + "/flash&" + filename;
6988

7089
xhr.open("GET", url, true);
7190
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
7291
xhr.onreadystatechange = function()
7392
{
7493
if(xhr.readyState == 4 && xhr.status == 200)
7594
{
76-
showFiles(xhr.responseText);
95+
DisplayDirectory(xhr.responseText);
7796
}
7897
}
7998
xhr.send();
8099
}
81100

82101

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)
84121
{
85-
if(option == 1)
122+
var listData = requestList.split("\n");
123+
if(listData.length == 0)
86124
{
87-
flashFile(fName);
125+
checkRow = 0;
88126
}
89-
else
127+
128+
var totalsize = 0;
129+
var filecount = 0;
130+
131+
for(var i = 0; i < listData.length; i++)
90132
{
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]);
92141
}
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;
93149
}
94150

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

Comments
 (0)