@@ -32,6 +32,15 @@ document.addEventListener('DOMContentLoaded', function () {
32
32
33
33
var csvfilename , data , headers ;
34
34
35
+ var tableHeadersFlag ;
36
+ try {
37
+ tableHeaders = tableHeaders ;
38
+ tableHeadersFlag = true ;
39
+ } catch ( err ) {
40
+ tableHeadersFlag = false ;
41
+ }
42
+
43
+
35
44
/*
36
45
var fitParser = new FitParser({
37
46
force: true,
@@ -46,14 +55,15 @@ document.addEventListener('DOMContentLoaded', function () {
46
55
47
56
readtable . onchange = function ( e ) {
48
57
var file = this . files [ 0 ] ;
49
- console . log ( file ) ;
58
+ // console.log(file);
50
59
csvfilename = file . name ;
51
60
csvReader . readAsText ( file ) ;
52
61
}
53
62
54
63
55
64
csvReader . onload = function ( e ) {
56
65
var text = e . target . result ;
66
+ //console.log(text);
57
67
var lines = text . split ( / [ \r \n ] + / g) ; // tolerate both Windows and Unix linebreaks
58
68
for ( var i = linestart ; i < lines . length ; i ++ ) {
59
69
lines [ i ] = lines [ i ] . trim ( ) . replace ( / \s { 2 , } / g, ' ' ) ;
@@ -70,28 +80,32 @@ document.addEventListener('DOMContentLoaded', function () {
70
80
var r = { } ;
71
81
var linedata = lines [ i ] . split ( delimiter ) ;
72
82
//console.log(linedata);
73
- if ( linedata [ 0 ] . slice ( - 4 ) === ".fit" ) {
74
- for ( var k = 0 ; k < linedata . length ; k ++ ) {
75
- //console.log(headers [k]);
76
- //console.log(linedata[k]);
83
+ for ( var k = 0 ; k < linedata . length ; k ++ ) {
84
+ //console.log(headers[k]);
85
+ //console.log(linedata [k]);
86
+ if ( tableHeadersFlag ) {
77
87
if ( headers [ k ] in tableHeaders || headers [ k ] === "filename" ) {
78
88
r [ headers [ k ] ] = linedata [ k ] ;
79
89
}
90
+ } else {
91
+ r [ headers [ k ] ] = linedata [ k ] ;
80
92
}
81
- data . push ( r ) ;
82
- }
93
+ }
94
+ data . push ( r ) ;
83
95
}
84
96
85
97
// sort out headers accoreing to tableHeaders
86
- var kput = 0 ;
87
- for ( const [ key , value ] of Object . entries ( tableHeaders ) ) {
88
- for ( k = 0 ; k < headers . length ; k ++ ) {
89
- if ( key === headers [ k ] ) {
90
- var h = headers [ kput ] ;
91
- headers [ kput ] = headers [ k ] ;
92
- headers [ k ] = h ;
93
- kput ++ ;
94
- break ;
98
+ if ( tableHeadersFlag ) {
99
+ var kput = 0 ;
100
+ for ( const [ key , value ] of Object . entries ( tableHeaders ) ) {
101
+ for ( k = 0 ; k < headers . length ; k ++ ) {
102
+ if ( key === headers [ k ] ) {
103
+ var h = headers [ kput ] ;
104
+ headers [ kput ] = headers [ k ] ;
105
+ headers [ k ] = h ;
106
+ kput ++ ;
107
+ break ;
108
+ }
95
109
}
96
110
}
97
111
} ;
@@ -102,20 +116,31 @@ document.addEventListener('DOMContentLoaded', function () {
102
116
103
117
// add header for the Plot button
104
118
headers . push ( "Plot" ) ;
105
- tableHeaders . Plot = "Plot" ;
119
+ if ( tableHeadersFlag ) tableHeaders . Plot = {
120
+ name : "Plot" ,
121
+ style : "width: 30px"
122
+ } ;
106
123
107
124
var row , cell ;
108
125
const table = document . createElement ( "table" ) ;
109
126
const tHead = table . createTHead ( ) ;
110
127
row = tHead . insertRow ( ) ;
111
- var w = 100 / ( headers . length ) ;
128
+ var w = 100 / ( headers . length ) ;
112
129
row . style = "color: #fff; background-color: #555" ;
113
130
headers . forEach ( p => {
114
- cell = row . insertCell ( ) ;
115
- cell . textContent = tableHeaders [ p ] ;
116
- var width = "width: " + ( p === "time_created" ? ( w + w / 3 ) . toString ( ) :p === "Plot" ? ( w - w / 3 ) . toString ( ) : w . toString ( ) ) + "%;" ;
117
- cell . style = "text-align:right; word-wrap:break-word; " + width ;
118
- cell . tabIndex = 0 ;
131
+ if ( tableHeadersFlag ) {
132
+ if ( p in tableHeaders ) {
133
+ cell = row . insertCell ( ) ;
134
+ cell . textContent = tableHeaders [ p ] . name ;
135
+ cell . style = "text-align:right; word-wrap:break-word; " + tableHeaders [ p ] . style ;
136
+ cell . tabIndex = 0 ;
137
+ }
138
+ } else {
139
+ cell = row . insertCell ( ) ;
140
+ cell . textContent = p ;
141
+ cell . style = "text-align:right; word-wrap:break-word; "
142
+ cell . tabIndex = 0 ;
143
+ }
119
144
} ) ;
120
145
121
146
const tBody = table . createTBody ( ) ;
@@ -127,10 +152,11 @@ document.addEventListener('DOMContentLoaded', function () {
127
152
cell . innerHTML = "<button id=" + d [ "filename" ] + " style='width: 39px; height: 20px;'>Plot</button>" ;
128
153
cell . addEventListener ( "click" , plotdata ) ;
129
154
} else {
130
- var v = isNaN ( d [ p ] ) ? d [ p ] : parseFloat ( d [ p ] ) . toFixed ( 2 ) ; // toPrecision(6).
155
+ var v = isNaN ( d [ p ] ) ? ( d [ p ] === "undefined" ? " " : d [ p ] ) :
156
+ parseFloat ( d [ p ] ) . toFixed ( 2 ) ; // toPrecision(6).
131
157
cell . textContent = v ;
132
158
}
133
- cell . style = "text-align:right" ;
159
+ cell . style = "text-align:right; word-wrap:break-word; "
134
160
} ) ;
135
161
}
136
162
document . body . appendChild ( table ) ;
@@ -155,51 +181,6 @@ document.addEventListener('DOMContentLoaded', function () {
155
181
156
182
}
157
183
158
- function plotdata_working ( e ) {
159
- // https://www.codemag.com/article/1511031/CRUD-in-HTML-JavaScript-and-jQuery
160
- var filename = e . target . id ;
161
- console . log ( filename ) ;
162
- var xhr = new XMLHttpRequest ( ) ;
163
- //xhr.onreadystatechange = httpRequestfoo;
164
- xhr . onload = httpRequestfoo ;
165
- xhr . open ( 'GET' , filename , true ) ;
166
- xhr . responseType = 'arraybuffer' ;
167
- xhr . onerror = function ( e ) {
168
- console . log ( error ( xhr . statusText ) ) ;
169
- } ;
170
- xhr . send ( null ) ;
171
- // https://stackoverflow.com/questions/7255719/downloading-binary-data-using-xmlhttprequest-without-overridemimetype
172
- }
173
-
174
-
175
- function httpRequestfoo ( ) {
176
- if ( this . readyState === 4 ) {
177
- if ( this . status === 200 ) {
178
- blob = new Uint8Array ( this . response ) ;
179
- //loadFitFile();
180
- windowFitplotter = windowFitplotter || [ ] ;
181
- console . log ( windowFitplotter ) ;
182
- sessionStorage . setItem ( "blob" , blob ) ;
183
- if ( windowFitplotter . window ) {
184
- loadFitFile ( blob ) ;
185
- } else {
186
- windowFitplotter = window . open ( 'fitplotter.html' ) ;
187
- }
188
- /*
189
- fitParser.parse(blob, function (error, data) {
190
- if (error) {
191
- console.error(error);
192
- }
193
- else {
194
- console.log(data);
195
- }
196
- });
197
- */
198
- }
199
- }
200
- }
201
-
202
-
203
184
function resizableGrid ( table ) {
204
185
var row = table . getElementsByTagName ( 'tr' ) [ 0 ] ,
205
186
cols = row ? row . children : undefined ;
0 commit comments