@@ -241,6 +241,25 @@ exports.Initialise = (config, router, prototypeKit) => {
241241
242242 // Ensure the session is persisted. Currently in session, eventually another way
243243 request . session . data [ IMPORTER_SESSION_KEY ] = session ;
244+
245+ tableList = [ ]
246+
247+ tableList = sheets_lib . ListTables ( session . backendSid , session . sheet )
248+ console . debug ( 'Table List:' , tableList )
249+ console . debug ( tableList . length )
250+
251+ if ( tableList . length != 0 ) {
252+
253+ redirectOnwards ( request , response ) ;
254+ return ;
255+ }
256+
257+
258+ if ( "other" in request . query ) {
259+ const otherPage = decodeURIComponent ( request . query . other )
260+ if ( otherPage ) { request . query . next = request . query . other }
261+ console . debug ( request . query . other )
262+ }
244263 redirectOnwards ( request , response ) ;
245264 } ,
246265 ) ;
@@ -273,6 +292,10 @@ exports.Initialise = (config, router, prototypeKit) => {
273292 session . table = null
274293 //redirectOnwards(request, response); //if no table is selected we don't need to persist one
275294 //return;
295+ // Ensure the session is persisted. Currently in session, eventually another way
296+ request . session . data [ IMPORTER_SESSION_KEY ] = session ;
297+ redirectOnwards ( request , response ) ;
298+ return ;
276299 } else {
277300 session . table = request . body . table ;
278301 let check = sheets_lib . GetTablePreview ( session . backendSid , session . sheet , session . table ) ;
@@ -285,28 +308,39 @@ exports.Initialise = (config, router, prototypeKit) => {
285308 // Get header range, for tables this will check the column names against the first row of the table.
286309 // If they match that first row will be designated as the headerRange, otherwise it will be null.
287310 headerRange = sheets_lib . GetTableHeader ( session . backendSid , session . sheet , session . table )
288- console . debug ( headerRange )
311+ console . debug ( 'Table header:' , headerRange )
289312 if ( headerRange != null ) {
290313 session . headerRange = headerRange //overwrite assumed header range with table header range
291314 }
292- }
293-
294- // The user
315+
316+ //Set a footer range, this may be overridden later
317+ footerRange = sheets_lib . GetTableFooter ( session . backendSid , session . sheet , session . table )
318+ console . debug ( 'Assumed footer:' , footerRange )
319+ if ( footerRange != null ) {
320+ session . footerRange = footerRange
321+ }
322+
323+ // The user
295324
296- // Ensure the session is persisted. Currently in session, eventually another way
297- request . session . data [ IMPORTER_SESSION_KEY ] = session ;
325+ // Ensure the session is persisted. Currently in session, eventually another way
326+ request . session . data [ IMPORTER_SESSION_KEY ] = session ;
298327
299- if ( headerRange == null ) {
300- redirectOnwards ( request , response ) ;
301- return ;
328+ if ( ! headerRange | headerRange == null ) {
329+ redirectOnwards ( request , response ) ;
330+ return ;
331+ }
332+
333+ if ( "other" in request . query ) {
334+ const otherPage = decodeURIComponent ( request . query . other )
335+ if ( otherPage ) { request . query . next = request . query . other }
336+ console . debug ( request . query . other )
337+ }
338+ redirectOnwards ( request , response ) ;
302339 }
340+
341+
342+
303343
304- if ( "other" in request . query ) {
305- const otherPage = decodeURIComponent ( request . query . other )
306- if ( otherPage ) { request . query . next = request . query . other }
307- console . debug ( request . query . other )
308- }
309- redirectOnwards ( request , response ) ;
310344 } ,
311345 ) ;
312346
@@ -371,10 +405,15 @@ exports.Initialise = (config, router, prototypeKit) => {
371405 redirectOnwards ( request , response ) ;
372406 return ;
373407 }
374-
408+
409+ previewRange = { }
375410 // We will assume we asked for the default of 10 rows, and calculate the offset
376411 // we need to apply to the selection range so that it is valid
377- let previewRange = sheets_lib . GetRowRangeFromEnd ( session . backendSid , session . sheet , 10 ) ;
412+ if ( session . table && session . table != null ) {
413+ previewRange = sheets_lib . GetRowRangeFromEnd ( session . backendSid , session . sheet , 10 , session . table ) ;
414+ } else {
415+ previewRange = sheets_lib . GetRowRangeFromEnd ( session . backendSid , session . sheet , 10 ) ;
416+ } ;
378417 selectionRange . start . row += previewRange . start . row - 1 ;
379418 selectionRange . end . row += previewRange . start . row - 1 ;
380419
@@ -386,6 +425,7 @@ exports.Initialise = (config, router, prototypeKit) => {
386425 }
387426
388427 session . footerRange = selectionRange ;
428+ console . debug ( 'Footer range:' , session . footerRange )
389429
390430 // Ensure the session is persisted. Currently in session, eventually another way
391431 request . session . data [ IMPORTER_SESSION_KEY ] = session ;
0 commit comments