add results page parsing
This commit is contained in:
		
							parent
							
								
									2b352b25bd
								
							
						
					
					
						commit
						1c6eab7f4e
					
				
					 1 changed files with 88 additions and 0 deletions
				
			
		
							
								
								
									
										88
									
								
								scripts/pages/results.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								scripts/pages/results.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,88 @@ | |||
| /* | ||||
| Results.js | ||||
| 
 | ||||
| Fills the page with the results of the analysis. | ||||
| */ | ||||
| 
 | ||||
| import {global, observe} from "/scripts/secretariat.js"; | ||||
| import Page from "/scripts/pages/page.js"; | ||||
| import nested from "../utils/nested.js"; | ||||
| 
 | ||||
| class Page_Results extends Page { | ||||
|      constructor() { | ||||
| 		super(); | ||||
| 		(this.events) ? this.events() : false; | ||||
| 		this.content(); | ||||
| 		this.background(); | ||||
| 	}; | ||||
| 
 | ||||
| 
 | ||||
|      async background() { | ||||
| 		// Wait until a change in the session storage.
 | ||||
| 		observe((changes) => { | ||||
|                this.update(); | ||||
| 			this.content(); | ||||
| 			// First, update site data but retain the URL. 
 | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
|      /*  | ||||
|      Update the data used by the page.  | ||||
| 
 | ||||
|      @param {boolean} override override the current data. | ||||
|      */ | ||||
|      async update(override = false) { | ||||
|           // Set the reference website when overriding or unset. 
 | ||||
| 		if (override || !this[`ref`]) {this[`ref`] = await global.read([`last`])}; | ||||
|            | ||||
|           // Get all the data. 
 | ||||
|           let DATA = { | ||||
|                "data": await global.read([`sites`, this[`ref`]]) | ||||
| 		} | ||||
| 
 | ||||
|           // Set the data. 
 | ||||
|           this[`data`] = (DATA[`data`]) ? DATA[`data`] : (this[`data`] ? this[`data`] : {}); | ||||
|      } | ||||
| 
 | ||||
|      async content() { | ||||
|           // Select all the elements and add it to the object. 
 | ||||
|           if (document.querySelectorAll(`[data-active-result]`)) { | ||||
|                this.elements = {} | ||||
|                document.querySelectorAll(`[data-active-result]`).forEach((ELEMENT) => { | ||||
|                     let PROPERTY = ELEMENT.getAttribute(`data-active-result`).trim(); | ||||
|                     this.elements[PROPERTY] = ELEMENT; | ||||
| 
 | ||||
|                     // Remove the construction data active result. 
 | ||||
|                     ELEMENT.removeAttribute(`data-active-result`); | ||||
|                })  | ||||
|           } | ||||
|            | ||||
|           await this.update(); | ||||
|           this.fill(); | ||||
|      } | ||||
| 
 | ||||
|      /*  | ||||
|      Populate the contents. | ||||
|      */ | ||||
|      async fill() { | ||||
|           (this.elements) | ||||
|                ?  (Object.keys(this.elements)).forEach(async (SOURCE) => { | ||||
|                     if (SOURCE.includes(`*`)) { | ||||
|                          let DATA = (nested.dictionary.get(this[`data`][`analysis`], SOURCE)); | ||||
|       | ||||
|                          this.elements[SOURCE][(this.elements[SOURCE].nodeName.toLowerCase().includes(`input`) || this.elements[SOURCE].nodeName.toLowerCase().includes(`progress`)) ? `value` : `innerHTML`] = (DATA) | ||||
|                               ? (((typeof DATA).includes(`obj`) && !Array.isArray(DATA)) | ||||
|                                    ? JSON.stringify(DATA) | ||||
|                                    : String(DATA)) | ||||
|                               : null; | ||||
|                     } else { | ||||
|                           | ||||
|                     } | ||||
| 
 | ||||
|                      | ||||
|                }) | ||||
|                : false; | ||||
|      }; | ||||
| } | ||||
| 
 | ||||
| new Page_Results(); | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue