| 
									
										
										
										
											2018-03-25 13:41:29 -04:00
										 |  |  | import noteDetailService from '../services/note_detail.js'; | 
					
						
							| 
									
										
										
										
											2019-06-10 22:45:03 +02:00
										 |  |  | import utils from "../services/utils.js"; | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  | const $dialog = $("#note-source-dialog"); | 
					
						
							|  |  |  | const $noteSource = $("#note-source"); | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-20 21:40:47 +02:00
										 |  |  | export function showDialog() { | 
					
						
							| 
									
										
										
										
											2019-06-10 22:45:03 +02:00
										 |  |  |     utils.closeActiveDialog(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  |     glob.activeDialog = $dialog; | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-06 17:47:40 +01:00
										 |  |  |     $dialog.modal(); | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-12 12:30:30 +01:00
										 |  |  |     const noteText = appContext.getActiveTabNote().content; | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  |     $noteSource.text(formatHtml(noteText)); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  | function formatHtml(str) { | 
					
						
							|  |  |  |     const div = document.createElement('div'); | 
					
						
							|  |  |  |     div.innerHTML = str.trim(); | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  |     return formatNode(div, 0).innerHTML.trim(); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  | function formatNode(node, level) { | 
					
						
							|  |  |  |     const indentBefore = new Array(level++ + 1).join('  '); | 
					
						
							|  |  |  |     const indentAfter  = new Array(level - 1).join('  '); | 
					
						
							|  |  |  |     let textNode; | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-04 20:37:23 +02:00
										 |  |  |     for (let i = 0; i < node.children.length; i++) { | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  |         textNode = document.createTextNode('\n' + indentBefore); | 
					
						
							|  |  |  |         node.insertBefore(textNode, node.children[i]); | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  |         formatNode(node.children[i], level); | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  |         if (node.lastElementChild === node.children[i]) { | 
					
						
							|  |  |  |             textNode = document.createTextNode('\n' + indentAfter); | 
					
						
							|  |  |  |             node.appendChild(textNode); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 11:09:17 -04:00
										 |  |  |     return node; | 
					
						
							| 
									
										
										
										
											2019-08-20 21:40:47 +02:00
										 |  |  | } |