From a8b24410afd3e3df58d7a15247a3743dc0acaf01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gr=C3=BCning?= Date: Fri, 10 Jul 2015 14:43:03 +0200 Subject: [PATCH 1/7] Fix variable name Fix for this JS error: `Uncaught ReferenceError: _i is not defined` --- src/filter.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/filter.coffee b/src/filter.coffee index 9799468..c17fbc4 100644 --- a/src/filter.coffee +++ b/src/filter.coffee @@ -362,7 +362,7 @@ class filter toprocess = [] content = "" - content += "" + groupable_array[_i] + "
" + content += "" + groupable_array[i] + "
" if groupable_array_content.length > 0 for j in [pointer_left..groupable_array_content.length-1] @@ -379,7 +379,7 @@ class filter if toprocess.length > 0 for k in [0..toprocess.length-1] - content += "" + toprocess[_k] + "
" + content += "" + toprocess[k] + "
" check_count++ $('#groupable_att').append("
" + content + "
") From c2d145d43438afd33eb638104b5eaebb2f67caa2 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Thu, 31 Mar 2016 10:41:44 -0400 Subject: [PATCH 2/7] Add an alert when BIOM file is missing metadata. --- src/filter.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/filter.coffee b/src/filter.coffee index c17fbc4..976dc1c 100644 --- a/src/filter.coffee +++ b/src/filter.coffee @@ -95,6 +95,8 @@ class filter generateColumns: () -> + if !biom.columns[0].metadata? + alert "ERROR: Your BIOM file must have metadata defined." for key of biom.columns[0].metadata if key.toLowerCase().indexOf("date") != -1 date_array.push(key) From f829061ca73a2197c2dedb331a623b19017840b5 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Thu, 31 Mar 2016 14:22:06 -0400 Subject: [PATCH 3/7] Allow loading biom by url query parameter named biomURL. --- src/readFile.coffee | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/readFile.coffee b/src/readFile.coffee index 8f2b0a2..f5b4169 100644 --- a/src/readFile.coffee +++ b/src/readFile.coffee @@ -18,6 +18,29 @@ class readFile @checkFile(files) false) + # Load by URL, requires CORS at remote server + query = window.location.search.substring(1) + raw_vars = query.split("&") + params = {} + for v in raw_vars + [key, val] = v.split("=") + params[key] = decodeURIComponent(val) + if params['biomURL']? + #alert "Found biomURL: " + params['biomURL'] + $.get(params['biomURL'], (urlData) => + biomToStore = {} + #alert 1 + biomToStore.name = params['biomURL']#.substr( params['biomURL'].lastIndexOf("/") + 1 ) + #alert 2 + biomToStore.size = urlData.length + biomToStore.data = urlData + d = new Date(); + biomToStore.date = d.getUTCFullYear() + "-" + (d.getUTCMonth() + 1) + "-" + d.getUTCDate() + "T" + d.getUTCHours() + ":" + d.getUTCMinutes() + ":" + d.getUTCSeconds() + " UTC" + @server.biom.add(biomToStore).done () -> + setTimeout( "window.location.href = 'preview.html'", 2000) + ) + + # load test file document.getElementById('loadTestFile').addEventListener('click', (evt) => $('#loadTestFile').html('loading...  '); From b0ab07125d056ad9b388fdd3d774899138f76ef3 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Thu, 31 Mar 2016 16:10:44 -0400 Subject: [PATCH 4/7] Fix for preparsed JSON when loading from URLs. --- src/readFile.coffee | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/readFile.coffee b/src/readFile.coffee index f5b4169..f04b80f 100644 --- a/src/readFile.coffee +++ b/src/readFile.coffee @@ -26,18 +26,17 @@ class readFile [key, val] = v.split("=") params[key] = decodeURIComponent(val) if params['biomURL']? - #alert "Found biomURL: " + params['biomURL'] $.get(params['biomURL'], (urlData) => + if urlData.constructor != String + urlData = JSON.stringify( urlData ) biomToStore = {} - #alert 1 - biomToStore.name = params['biomURL']#.substr( params['biomURL'].lastIndexOf("/") + 1 ) - #alert 2 + biomToStore.name = params['biomURL'] biomToStore.size = urlData.length biomToStore.data = urlData d = new Date(); biomToStore.date = d.getUTCFullYear() + "-" + (d.getUTCMonth() + 1) + "-" + d.getUTCDate() + "T" + d.getUTCHours() + ":" + d.getUTCMinutes() + ":" + d.getUTCSeconds() + " UTC" @server.biom.add(biomToStore).done () -> - setTimeout( "window.location.href = 'preview.html'", 2000) + setTimeout( "window.location.href = 'preview.html'", 1) ) @@ -47,9 +46,11 @@ class readFile hostURL = 'http://' + window.location.host + window.location.pathname.substr(0, window.location.pathname.lastIndexOf('/')) testfile = hostURL + '/data/testdata.biom' ## Dev TODO http://phinch.org/data/testdata.biom $.get(testfile, (testdata) => + if testdata.constructor != String + testdata = JSON.stringify( testdata ) biomToStore = {} biomToStore.name = 'testdata.biom' - biomToStore.size = 15427024 + biomToStore.size = testdata.length biomToStore.data = testdata d = new Date(); biomToStore.date = d.getUTCFullYear() + "-" + (d.getUTCMonth() + 1) + "-" + d.getUTCDate() + "T" + d.getUTCHours() + ":" + d.getUTCMinutes() + ":" + d.getUTCSeconds() + " UTC" From 1d6747e314c886f74892907610bbd4d1ca173761 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Thu, 31 Mar 2016 16:28:19 -0400 Subject: [PATCH 5/7] provide loading url message --- src/readFile.coffee | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/readFile.coffee b/src/readFile.coffee index f04b80f..0ecd755 100644 --- a/src/readFile.coffee +++ b/src/readFile.coffee @@ -26,6 +26,11 @@ class readFile [key, val] = v.split("=") params[key] = decodeURIComponent(val) if params['biomURL']? + $('#loadTestFile').hide() + $('#fileDrag').hide() + $('#progress_bar').hide() + $('#frmUpload').hide() + $('#parse').html('loading URL...  '); $.get(params['biomURL'], (urlData) => if urlData.constructor != String urlData = JSON.stringify( urlData ) From 3bc240eed1bd7ba7ee77ef24770c592a4c1c9455 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Thu, 31 Mar 2016 16:42:04 -0400 Subject: [PATCH 6/7] Add alert when taxonomy metadata is missing in taxonomyViz --- src/taxonomyViz.coffee | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/taxonomyViz.coffee b/src/taxonomyViz.coffee index cef317f..0c76170 100644 --- a/src/taxonomyViz.coffee +++ b/src/taxonomyViz.coffee @@ -242,6 +242,9 @@ class taxonomyViz comp_i = new Array(7) comb_len = unique_taxonomy_comb.length + if !biom.rows[i].metadata? or !biom.rows[i].metadata.taxonomy? + alert '"taxonomy" metadata needs to be provided in BIOM file' + if biom.rows[i].metadata.taxonomy.indexOf(';') != -1 comp_i = biom.rows[i].metadata.taxonomy.replace(/\s+/g, '').replace(/;/g,',').split(',') else From 4d847c245ecf5bb60ae4a2b2422d32db3afac92b Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Fri, 1 Apr 2016 15:24:10 -0400 Subject: [PATCH 7/7] Fixes for BIOM files that don't have column metadata. --- src/filter.coffee | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/filter.coffee b/src/filter.coffee index 976dc1c..03967d6 100644 --- a/src/filter.coffee +++ b/src/filter.coffee @@ -96,13 +96,16 @@ class filter generateColumns: () -> if !biom.columns[0].metadata? - alert "ERROR: Your BIOM file must have metadata defined." + for i in [0..attr_length] + if !biom.columns[i].metadata? + biom.columns[i].metadata = {} + for key of biom.columns[0].metadata if key.toLowerCase().indexOf("date") != -1 date_array.push(key) else if key == 'phinchID' - console.log 'PhinchID does exsit!' + console.log 'PhinchID does exist!' else if (key.toLowerCase().indexOf("barcode") != -1) || (key.toLowerCase().indexOf("sequence") != -1) || (key.toLowerCase().indexOf("reverse") != -1) || (key.toLowerCase() == "internalcode") || (key.toLowerCase() == "description") || (key.toLowerCase().indexOf("adapter") !=-1) no_data_attributes_array.push(key) @@ -603,16 +606,18 @@ class filter for i in [0..biom.shape[1]-1] # If this is a not selected descriptive attribute, delete it - for j in [0..no_data_attributes_array.length-1] - if @selected_no_data_attributes_array.indexOf(no_data_attributes_array[j]) == -1 - @removeFromObjectByKey(phinch.columns[i].metadata, no_data_attributes_array[j]) - + if no_data_attributes_array.length > 0 + for j in [0..no_data_attributes_array.length-1] + if @selected_no_data_attributes_array.indexOf(no_data_attributes_array[j]) == -1 + @removeFromObjectByKey(phinch.columns[i].metadata, no_data_attributes_array[j]) # If this is not a selected attributes, delete it - for k in [0..attributes_array.length-1] - if @selected_attributes_array.indexOf(attributes_array[k]) == -1 - @removeFromObjectByKey(phinch.columns[i].metadata, attributes_array[k]) - + if attributes_array.length > 0 + for k in [0..attributes_array.length-1] + if @selected_attributes_array.indexOf(attributes_array[k]) == -1 + @removeFromObjectByKey(phinch.columns[i].metadata, attributes_array[k]) # Add the new phinch Id column back in the file + if !phinch.columns[i].metadata? + phinch.columns[i].metadata = {} phinch.columns[i].metadata['phinchID'] = phinchID_array[i]