| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const noteSource = (function() { | 
					
						
							|  |  |  |     const dialogEl = $("#note-source-dialog"); | 
					
						
							|  |  |  |     const noteSourceEl = $("#note-source"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function showDialog() { | 
					
						
							|  |  |  |         glob.activeDialog = dialogEl; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         dialogEl.dialog({ | 
					
						
							|  |  |  |             modal: true, | 
					
						
							| 
									
										
										
										
											2017-12-26 20:54:41 -05:00
										 |  |  |             width: 800, | 
					
						
							|  |  |  |             height: 500 | 
					
						
							| 
									
										
										
										
											2017-12-26 18:15:29 -05:00
										 |  |  |         }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         const noteText = noteEditor.getCurrentNote().detail.note_text; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         noteSourceEl.text(formatHtml(noteText)); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function formatHtml(str) { | 
					
						
							|  |  |  |         const div = document.createElement('div'); | 
					
						
							|  |  |  |         div.innerHTML = str.trim(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return formatNode(div, 0).innerHTML.trim(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function formatNode(node, level) { | 
					
						
							|  |  |  |         const indentBefore = new Array(level++ + 1).join('  '); | 
					
						
							|  |  |  |         const indentAfter  = new Array(level - 1).join('  '); | 
					
						
							|  |  |  |         let textNode; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         for (let i = 0; i < node.children.length; i++) { | 
					
						
							|  |  |  |             textNode = document.createTextNode('\n' + indentBefore); | 
					
						
							|  |  |  |             node.insertBefore(textNode, node.children[i]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             formatNode(node.children[i], level); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (node.lastElementChild === node.children[i]) { | 
					
						
							|  |  |  |                 textNode = document.createTextNode('\n' + indentAfter); | 
					
						
							|  |  |  |                 node.appendChild(textNode); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return node; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $(document).bind('keydown', 'ctrl+u', e => { | 
					
						
							|  |  |  |         showDialog(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         e.preventDefault(); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |         showDialog | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | })(); |