mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 21:11:30 +08:00 
			
		
		
		
	added weight script
This commit is contained in:
		
							parent
							
								
									8249a81c77
								
							
						
					
					
						commit
						47dfca83eb
					
				
							
								
								
									
										97
									
								
								src/scripts/weight.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								src/scripts/weight.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,97 @@ | ||||
| <form id="weight-form" style="display: flex; width: 500px; justify-content: space-around; align-items: flex-end;"> | ||||
|     <div> | ||||
|         <label for="weight-date">Date</label> | ||||
|         <input type="text" id="weight-date" class="form-control" style="width: 150px; text-align: center;" /> | ||||
|     </div> | ||||
|     <div> | ||||
|         <label for="weight">Weight</label> | ||||
|         <input type="number" id="weight" value="80.0" step="0.1" class="form-control" style="text-align: center; width: 100px;" /> | ||||
|     </div> | ||||
| 
 | ||||
|     <button type="submit" class="btn btn-primary">Add</button> | ||||
| </form> | ||||
| 
 | ||||
| <br/><br/> | ||||
| 
 | ||||
| <canvas id="canvas"></canvas> | ||||
| 
 | ||||
| <script> | ||||
| (async function() { | ||||
|     const dateEl = $("#weight-date"); | ||||
|     const weightEl = $("#weight"); | ||||
| 
 | ||||
|     dateEl.datepicker(); | ||||
|     dateEl.datepicker('option', 'dateFormat', 'yy-mm-dd'); | ||||
|     dateEl.datepicker('setDate', new Date()); | ||||
| 
 | ||||
|     async function saveWeight() { | ||||
|         await server.exec([dateEl.val(), weightEl.val()], async (date, weight) => { | ||||
|             const dataNote = await this.getNoteWithAttribute('date_data', date); | ||||
| 
 | ||||
|             if (dataNote) { | ||||
|                 dataNote.jsonContent.weight = weight; | ||||
| 
 | ||||
|                 await this.updateEntity(dataNote); | ||||
|             } | ||||
|             else { | ||||
|                 const parentNoteId = await this.getDateNoteId(date); | ||||
|                 const jsonContent = { weight: weight }; | ||||
| 
 | ||||
|                 await this.createNote(parentNoteId, 'data', jsonContent, { | ||||
|                     json: true, | ||||
|                     attributes: { | ||||
|                         date_data: date | ||||
|                     } | ||||
|                 }); | ||||
|             } | ||||
|         }); | ||||
| 
 | ||||
|         showMessage("Weight has been saved"); | ||||
| 
 | ||||
|         drawChart(); | ||||
|     } | ||||
| 
 | ||||
|     async function drawChart() { | ||||
|         const data = await server.exec([], async () => { | ||||
|             const notes = await this.getNotesWithAttribute('date_data'); | ||||
|             const data = []; | ||||
| 
 | ||||
|             for (const note of notes) { | ||||
|                 const dateAttr = await note.getAttribute('date_data'); | ||||
| 
 | ||||
|                 data.push({ | ||||
|                     date: dateAttr.value, | ||||
|                     weight: note.jsonContent.weight | ||||
|                 }); | ||||
|             } | ||||
| 
 | ||||
|             return data; | ||||
|         }); | ||||
| 
 | ||||
|         var config = { | ||||
|             type: 'line', | ||||
|             data: { | ||||
|                 labels: data.map(row => row.date), | ||||
|                 datasets: [{ | ||||
|                     label: "Weight", | ||||
|                     backgroundColor: 'red', | ||||
|                     borderColor: 'red', | ||||
|                     data: data.map(row => row.weight), | ||||
|                     fill: false | ||||
|                 }] | ||||
|             } | ||||
|         }; | ||||
| 
 | ||||
|         var ctx = $("#canvas")[0].getContext("2d"); | ||||
|         new Chart(ctx, config); | ||||
|     } | ||||
| 
 | ||||
|     $("#weight-form").submit(event => { | ||||
|         saveWeight(); | ||||
| 
 | ||||
|         event.preventDefault(); | ||||
|     }); | ||||
| 
 | ||||
|     drawChart(); | ||||
| })(); | ||||
| </script> | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 azivner
						azivner