| 
									
										
										
										
											2022-08-04 00:57:56 +00:00
										 |  |  | async function database_list() { | 
					
						
							|  |  |  | 	var dbs = await databases(); | 
					
						
							|  |  |  | 	var doc = `<!DOCTYPE html>
 | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  | <body style="background: #888"> | 
					
						
							|  |  |  | <h1>Databases</h1> | 
					
						
							|  |  |  | <ul id="dbs"></ul> | 
					
						
							|  |  |  | </body> | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | 	function populate_dbs(id, dbs) { | 
					
						
							|  |  |  | 		var list = document.getElementById(id); | 
					
						
							|  |  |  | 		for (let db of dbs) { | 
					
						
							|  |  |  | 			var li = list.appendChild(document.createElement('li')); | 
					
						
							|  |  |  | 			var a = document.createElement('a'); | 
					
						
							|  |  |  | 			a.innerText = db; | 
					
						
							|  |  |  | 			a.href = './#' + db; | 
					
						
							|  |  |  | 			a.target = '_top'; | 
					
						
							|  |  |  | 			li.appendChild(a); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	populate_dbs('dbs', ${JSON.stringify(dbs)}); | 
					
						
							|  |  |  | </script> | 
					
						
							| 
									
										
										
										
											2023-03-25 00:46:40 +00:00
										 |  |  | </html>`; | 
					
						
							| 
									
										
										
										
											2022-08-04 00:57:56 +00:00
										 |  |  | 	app.setDocument(doc); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | async function key_list(db) { | 
					
						
							|  |  |  | 	let keys = await db.getAll(); | 
					
						
							|  |  |  | 	let object = {}; | 
					
						
							|  |  |  | 	for (let key of keys) { | 
					
						
							|  |  |  | 		object[key] = await db.get(key); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	let doc = `<!DOCTYPE html>
 | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  | <body style="background: #888"> | 
					
						
							|  |  |  | <a href="#" target="_top">back</a> | 
					
						
							|  |  |  | <h1>Keys</h1> | 
					
						
							|  |  |  | <ul id="keys"></ul> | 
					
						
							|  |  |  | </body> | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | 	function populate_dbs(id, keys) { | 
					
						
							|  |  |  | 		var list = document.getElementById(id); | 
					
						
							|  |  |  | 		for (let [key, value] of Object.entries(keys)) { | 
					
						
							|  |  |  | 			var li = list.appendChild(document.createElement('li')); | 
					
						
							|  |  |  | 			li.innerText = key + ' = ' + value; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	populate_dbs('keys', ${JSON.stringify(object)}); | 
					
						
							|  |  |  | </script> | 
					
						
							| 
									
										
										
										
											2023-03-25 00:46:40 +00:00
										 |  |  | </html>`; | 
					
						
							| 
									
										
										
										
											2022-08-04 00:57:56 +00:00
										 |  |  | 	app.setDocument(doc); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-29 20:19:50 -04:00
										 |  |  | function load() { | 
					
						
							|  |  |  | 	if (core.user?.credentials?.session) { | 
					
						
							|  |  |  | 		database_list(); | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		app.setDocument(`<!DOCTYPE html>
 | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  | <body style="background: #888"> | 
					
						
							|  |  |  | 	<h1>Must be signed in to examine databases.</h1> | 
					
						
							|  |  |  | </body> | 
					
						
							|  |  |  | </html>`); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-24 11:09:34 -05:00
										 |  |  | core.register('message', async function (message) { | 
					
						
							| 
									
										
										
										
											2022-08-04 00:57:56 +00:00
										 |  |  | 	if (message.event == 'hashChange') { | 
					
						
							|  |  |  | 		let hash = message.hash.substring(1); | 
					
						
							|  |  |  | 		if (hash.startsWith(':shared:')) { | 
					
						
							|  |  |  | 			let parts = hash.split(':'); | 
					
						
							|  |  |  | 			let packageName = parts[3]; | 
					
						
							|  |  |  | 			let key = parts.slice(4).join(':'); | 
					
						
							|  |  |  | 			key_list(await my_shared_database(packageName, key)); | 
					
						
							|  |  |  | 		} else if (hash.length) { | 
					
						
							|  |  |  | 			key_list(await database(hash.split(':').slice(1).join(':'))); | 
					
						
							|  |  |  | 		} else { | 
					
						
							| 
									
										
										
										
											2024-10-29 20:19:50 -04:00
										 |  |  | 			load(); | 
					
						
							| 
									
										
										
										
											2022-08-04 00:57:56 +00:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-29 20:19:50 -04:00
										 |  |  | load(); |