@@ -5,10 +5,7 @@ import { addToBatch } from "./safe_comments.js";
55* Fetches json_document and displays their contents in a table.
66* @param {Path } json_document - document do fetch data from.
77*/
8- export function displayJSON ( json_document ) {
9- fetch ( json_document )
10- . then ( response => response . json ( ) )
11- . then ( data => {
8+ export function displayJSON ( data ) {
129 const colorPalette = [ "rgb(34, 198, 227)" , "purple" , "rgb(23, 124, 207)" , "rgb(116, 75, 196)" , "pink" ] ;
1310 let colorPolicies = { "Curation" : "red" } ;
1411 if ( data [ "policies" ] ) {
@@ -18,10 +15,12 @@ export function displayJSON(json_document){
1815 console . log ( colorPolicies ) ;
1916 //Get data snippet from url
2017 const params = new URLSearchParams ( location . search ) ;
21- if ( params . has ( "id" ) ) {
22- const id = params . get ( "id" )
23- data = get_data_snippet ( data , "@id" , id ) ;
24-
18+ if ( params . size > 0 ) {
19+ for ( const [ key , value ] of params ) {
20+ console . log ( "search for" , key , value ) ;
21+ data = get_data_snippet ( data , key , value ) ;
22+ }
23+
2524 //If your seeing a data snippet, create button to go back
2625 const back = document . createElement ( "button" ) ;
2726 back . innerText = "Back to Overview" ;
@@ -43,10 +42,15 @@ export function displayJSON(json_document){
4342
4443
4544 keys . forEach ( element => {
45+
4646 // Get a something with Name as p Header
4747 if ( element . toLowerCase ( ) . includes ( "name" ) ) {
48+ if ( ! Array . isArray ( data [ element ] ) ) {
49+ document . getElementById ( "project-name" ) . innerHTML = element . charAt ( 0 ) . toUpperCase ( ) + element . slice ( 1 ) + ' <b> ' + data [ element ] + '</b>' ;
50+ } else {
4851 document . getElementById ( "project-name" ) . innerHTML = element . charAt ( 0 ) . toUpperCase ( ) + element . slice ( 1 ) + ' <b> ' + data [ element ] [ 0 ] + '</b>' ;
49- }
52+ }
53+ }
5054 // Apply and fill in the template for Policies
5155 if ( element == "policies" ) {
5256 header . style . display = "block" ;
@@ -107,22 +111,26 @@ export function displayJSON(json_document){
107111 const slcomment = mvalue . querySelector ( "#single-line-comment" ) ,
108112 slcommentPopup = mvalue . querySelector ( "#single-line-comment-popup" ) ;
109113 const input = mvalue . querySelector ( "#comment" ) ;
110- mvalue . querySelector ( 'input[type="submit"]' ) . addEventListener ( "click" , ( ) => {
111- addToBatch ( element , data [ element ] , input . value ) ;
112- } ) ;
113- slcomment . addEventListener ( 'click' , ( event ) => {
114+ slcomment . addEventListener ( 'click' , ( event ) => {
114115 event . stopPropagation ( ) ;
115- console . log ( "clicked" ) ;
116+ if ( event . target !== slcomment ) {
117+ return ;
118+ }
116119 slcommentPopup . style . visibility = "visible" ;
117120 } )
121+ mvalue . querySelector ( 'input[type="submit"]' ) . addEventListener ( "click" , ( ) => {
122+ addToBatch ( element , data [ element ] , input . value ) ;
123+ slcommentPopup . style . visibility = "hidden" ;
124+ } ) ;
125+
118126 document . addEventListener ( 'click' , function ( e ) {
119127 if ( slcommentPopup . style . visibility === "visible" && ! slcommentPopup . contains ( e . target ) ) {
120128 slcommentPopup . style . visibility = "hidden" ;
121129 }
122130 } )
123131
124132 } )
125- } )
133+
126134 //Extend Checkbox for metadata source
127135 const checkbox = document . querySelector ( "#extended" ) ;
128136 checkbox . addEventListener ( 'change' , ( event ) => {
@@ -152,9 +160,15 @@ function get_data_snippet(data, skey, svalue){
152160 const obj = stack . pop ( ) ;
153161 for ( let i = 0 ; i < Object . keys ( obj ) . length ; i ++ ) {
154162 let key = Object . keys ( obj ) [ i ] ;
155- if ( key == skey && obj [ key ] [ 0 ] == svalue ) {
163+ if ( ! Array . isArray ( obj [ key ] ) ) {
164+ if ( key == skey && obj [ key ] == svalue ) {
165+ return obj ;
166+ }
167+ } else {
168+ if ( key == skey && obj [ key ] [ 0 ] == svalue ) {
156169 return obj ;
157170 }
171+ }
158172 if ( typeof obj [ key ] === 'object' && obj [ key ] !== null ) {
159173 stack . push ( obj [ key ] ) ;
160174 }
0 commit comments