mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	Compare commits
	
		
			21 Commits
		
	
	
		
			v0.51.0-be
			...
			v0.51.2
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 26e1ff4e16 | ||
|  | b3763eed61 | ||
|  | f9c01851ef | ||
|  | 6b61b0604a | ||
|  | f705c432fd | ||
|  | 70edd9a210 | ||
|  | 0a45b58784 | ||
|  | dbd312c88d | ||
|  | 11578b1bc3 | ||
|  | 569c80f551 | ||
|  | 3b58b83f8b | ||
|  | 643a5e5b16 | ||
|  | f6ebc76917 | ||
|  | 73425ec29d | ||
|  | 51e5f591b2 | ||
|  | d1b3d8a58a | ||
|  | 534c71491b | ||
|  | 987f8e9961 | ||
|  | a45cf033aa | ||
|  | 06b6097f29 | ||
|  | 75c8e700d4 | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -10,3 +10,4 @@ cert.key | |||||||
| cert.crt | cert.crt | ||||||
| server-package.json | server-package.json | ||||||
| .idea/httpRequests/ | .idea/httpRequests/ | ||||||
|  | data/ | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							| @@ -6,4 +6,9 @@ | |||||||
|   <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK"> |   <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK"> | ||||||
|     <output url="file://$PROJECT_DIR$/out" /> |     <output url="file://$PROJECT_DIR$/out" /> | ||||||
|   </component> |   </component> | ||||||
|  |   <component name="SwUserDefinedSpecifications"> | ||||||
|  |     <option name="specTypeByUrl"> | ||||||
|  |       <map /> | ||||||
|  |     </option> | ||||||
|  |   </component> | ||||||
| </project> | </project> | ||||||
							
								
								
									
										
											BIN
										
									
								
								db/demo.zip
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								db/demo.zip
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										434
									
								
								docs/backend_api/AbstractEntity.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										434
									
								
								docs/backend_api/AbstractEntity.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,434 @@ | |||||||
|  | <!DOCTYPE html> | ||||||
|  | <html lang="en"> | ||||||
|  | <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <title>JSDoc: Class: AbstractEntity</title> | ||||||
|  |  | ||||||
|  |     <script src="scripts/prettify/prettify.js"> </script> | ||||||
|  |     <script src="scripts/prettify/lang-css.js"> </script> | ||||||
|  |     <!--[if lt IE 9]> | ||||||
|  |       <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> | ||||||
|  |     <![endif]--> | ||||||
|  |     <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> | ||||||
|  |     <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> | ||||||
|  | </head> | ||||||
|  |  | ||||||
|  | <body> | ||||||
|  |  | ||||||
|  | <div id="main"> | ||||||
|  |  | ||||||
|  |     <h1 class="page-title">Class: AbstractEntity</h1> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <section> | ||||||
|  |  | ||||||
|  | <header> | ||||||
|  |      | ||||||
|  |         <h2><span class="attribs"><span class="type-signature"></span></span>AbstractEntity<span class="signature">()</span><span class="type-signature"></span></h2> | ||||||
|  |          | ||||||
|  |             <div class="class-description">Base class for all backend entities.</div> | ||||||
|  |          | ||||||
|  |      | ||||||
|  | </header> | ||||||
|  |  | ||||||
|  | <article> | ||||||
|  |     <div class="container-overview"> | ||||||
|  |      | ||||||
|  |          | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h2>Constructor</h2> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="AbstractEntity"><span class="type-signature"></span>new AbstractEntity<span class="signature">()</span><span class="type-signature"></span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line16">line 16</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     </div> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |         <h3 class="subsection-title">Methods</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="markAsDeleted"><span class="type-signature"></span>markAsDeleted<span class="signature">(deleteId<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Mark the entity as (soft) deleted. It will be completely erased later. | ||||||
|  |  | ||||||
|  | This is a low level method, for notes and branches use `note.deleteNote()` and 'branch.deleteBranch()` instead. | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <h5>Parameters:</h5> | ||||||
|  |      | ||||||
|  |  | ||||||
|  | <table class="params"> | ||||||
|  |     <thead> | ||||||
|  |     <tr> | ||||||
|  |          | ||||||
|  |         <th>Name</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th>Type</th> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Attributes</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Default</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th class="last">Description</th> | ||||||
|  |     </tr> | ||||||
|  |     </thead> | ||||||
|  |  | ||||||
|  |     <tbody> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |         <tr> | ||||||
|  |              | ||||||
|  |                 <td class="name"><code>deleteId</code></td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="type"> | ||||||
|  |              | ||||||
|  |             </td> | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="attributes"> | ||||||
|  |                  | ||||||
|  |                     <optional><br> | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="default"> | ||||||
|  |                  | ||||||
|  |                     null | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="description last"></td> | ||||||
|  |         </tr> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     </tbody> | ||||||
|  | </table> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line118">line 118</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="save"><span class="type-signature"></span>save<span class="signature">()</span><span class="type-signature"> → {<a href="AbstractEntity.html">AbstractEntity</a>}</span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Saves entity - executes SQL, but doesn't commit the transaction on its own | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line73">line 73</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <h5>Returns:</h5> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl> | ||||||
|  |     <dt> | ||||||
|  |         Type | ||||||
|  |     </dt> | ||||||
|  |     <dd> | ||||||
|  |          | ||||||
|  | <span class="param-type"><a href="AbstractEntity.html">AbstractEntity</a></span> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     </dd> | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </article> | ||||||
|  |  | ||||||
|  | </section> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  | <nav> | ||||||
|  |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
|  | </nav> | ||||||
|  |  | ||||||
|  | <br class="clear"> | ||||||
|  |  | ||||||
|  | <footer> | ||||||
|  |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
|  | </footer> | ||||||
|  |  | ||||||
|  | <script> prettyPrint(); </script> | ||||||
|  | <script src="scripts/linenumber.js"> </script> | ||||||
|  | </body> | ||||||
|  | </html> | ||||||
| @@ -94,7 +94,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line13">line 13</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line15">line 15</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -128,6 +128,17 @@ and relation (representing named relationship between source and target note)</d | |||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|      |      | ||||||
|  |         <h3 class="subsection-title">Extends</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <ul> | ||||||
|  |         <li><a href="AbstractEntity.html">AbstractEntity</a></li> | ||||||
|  |     </ul> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -194,7 +205,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line44">line 44</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line46">line 46</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -262,7 +273,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line56">line 56</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line58">line 58</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -330,7 +341,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line50">line 50</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line52">line 52</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -398,7 +409,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line46">line 46</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line48">line 48</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -466,7 +477,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line52">line 52</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line54">line 54</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -534,7 +545,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line48">line 48</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line50">line 50</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -602,7 +613,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line58">line 58</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line60">line 60</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -670,7 +681,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line54">line 54</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line56">line 56</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -746,7 +757,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line112">line 112</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line114">line 114</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -851,7 +862,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line119">line 119</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line121">line 121</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -956,7 +967,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line134">line 134</a> |         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line136">line 136</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -1010,6 +1021,276 @@ and relation (representing named relationship between source and target note)</d | |||||||
|      |      | ||||||
|  |  | ||||||
|      |      | ||||||
|  |     <h4 class="name" id="markAsDeleted"><span class="type-signature"></span>markAsDeleted<span class="signature">(deleteId<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Mark the entity as (soft) deleted. It will be completely erased later. | ||||||
|  |  | ||||||
|  | This is a low level method, for notes and branches use `note.deleteNote()` and 'branch.deleteBranch()` instead. | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <h5>Parameters:</h5> | ||||||
|  |      | ||||||
|  |  | ||||||
|  | <table class="params"> | ||||||
|  |     <thead> | ||||||
|  |     <tr> | ||||||
|  |          | ||||||
|  |         <th>Name</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th>Type</th> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Attributes</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Default</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th class="last">Description</th> | ||||||
|  |     </tr> | ||||||
|  |     </thead> | ||||||
|  |  | ||||||
|  |     <tbody> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |         <tr> | ||||||
|  |              | ||||||
|  |                 <td class="name"><code>deleteId</code></td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="type"> | ||||||
|  |              | ||||||
|  |             </td> | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="attributes"> | ||||||
|  |                  | ||||||
|  |                     <optional><br> | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="default"> | ||||||
|  |                  | ||||||
|  |                     null | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="description last"></td> | ||||||
|  |         </tr> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     </tbody> | ||||||
|  | </table> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#markAsDeleted">AbstractEntity#markAsDeleted</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line118">line 118</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="save"><span class="type-signature"></span>save<span class="signature">()</span><span class="type-signature"> → {<a href="AbstractEntity.html">AbstractEntity</a>}</span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Saves entity - executes SQL, but doesn't commit the transaction on its own | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#save">AbstractEntity#save</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line73">line 73</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <h5>Returns:</h5> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl> | ||||||
|  |     <dt> | ||||||
|  |         Type | ||||||
|  |     </dt> | ||||||
|  |     <dd> | ||||||
|  |          | ||||||
|  | <span class="param-type"><a href="AbstractEntity.html">AbstractEntity</a></span> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     </dd> | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
| </article> | </article> | ||||||
|  |  | ||||||
| </section> | </section> | ||||||
| @@ -1020,13 +1301,13 @@ and relation (representing named relationship between source and target note)</d | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -6073,13 +6073,13 @@ exists, then we'll use that transaction. | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -94,7 +94,7 @@ parents.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line12">line 12</a> |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line18">line 18</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -128,6 +128,17 @@ parents.</div> | |||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|      |      | ||||||
|  |         <h3 class="subsection-title">Extends</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <ul> | ||||||
|  |         <li><a href="AbstractEntity.html">AbstractEntity</a></li> | ||||||
|  |     </ul> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -194,7 +205,7 @@ parents.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line43">line 43</a> |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line49">line 49</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -252,7 +263,7 @@ parents.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line88">line 88</a> |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line94">line 94</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -320,7 +331,7 @@ parents.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line53">line 53</a> |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line59">line 59</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -388,7 +399,7 @@ parents.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line45">line 45</a> |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line51">line 51</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -456,7 +467,7 @@ parents.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line51">line 51</a> |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line57">line 57</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -514,7 +525,7 @@ parents.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line102">line 102</a> |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line108">line 108</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -582,7 +593,7 @@ parents.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line47">line 47</a> |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line53">line 53</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -650,7 +661,7 @@ parents.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line49">line 49</a> |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line55">line 55</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -718,7 +729,181 @@ parents.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line55">line 55</a> |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line61">line 61</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |         <h3 class="subsection-title">Methods</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="deleteBranch"><span class="type-signature"></span>deleteBranch<span class="signature">(deleteId<span class="signature-attributes">opt</span>, taskContext<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {boolean}</span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Delete a branch. If this is a last note's branch, delete the note as well. | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <h5>Parameters:</h5> | ||||||
|  |      | ||||||
|  |  | ||||||
|  | <table class="params"> | ||||||
|  |     <thead> | ||||||
|  |     <tr> | ||||||
|  |          | ||||||
|  |         <th>Name</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th>Type</th> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Attributes</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th class="last">Description</th> | ||||||
|  |     </tr> | ||||||
|  |     </thead> | ||||||
|  |  | ||||||
|  |     <tbody> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |         <tr> | ||||||
|  |              | ||||||
|  |                 <td class="name"><code>deleteId</code></td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="type"> | ||||||
|  |              | ||||||
|  |                  | ||||||
|  | <span class="param-type">string</span> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |              | ||||||
|  |             </td> | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="attributes"> | ||||||
|  |                  | ||||||
|  |                     <optional><br> | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="description last">optional delete identified</td> | ||||||
|  |         </tr> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |         <tr> | ||||||
|  |              | ||||||
|  |                 <td class="name"><code>taskContext</code></td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="type"> | ||||||
|  |              | ||||||
|  |                  | ||||||
|  | <span class="param-type">TaskContext</span> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |              | ||||||
|  |             </td> | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="attributes"> | ||||||
|  |                  | ||||||
|  |                     <optional><br> | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="description last"></td> | ||||||
|  |         </tr> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     </tbody> | ||||||
|  | </table> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line129">line 129</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -742,6 +927,310 @@ parents.</div> | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <h5>Returns:</h5> | ||||||
|  |  | ||||||
|  |          | ||||||
|  | <div class="param-desc"> | ||||||
|  |     - true if note has been deleted, false otherwise | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl> | ||||||
|  |     <dt> | ||||||
|  |         Type | ||||||
|  |     </dt> | ||||||
|  |     <dd> | ||||||
|  |          | ||||||
|  | <span class="param-type">boolean</span> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     </dd> | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="markAsDeleted"><span class="type-signature"></span>markAsDeleted<span class="signature">(deleteId<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Mark the entity as (soft) deleted. It will be completely erased later. | ||||||
|  |  | ||||||
|  | This is a low level method, for notes and branches use `note.deleteNote()` and 'branch.deleteBranch()` instead. | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <h5>Parameters:</h5> | ||||||
|  |      | ||||||
|  |  | ||||||
|  | <table class="params"> | ||||||
|  |     <thead> | ||||||
|  |     <tr> | ||||||
|  |          | ||||||
|  |         <th>Name</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th>Type</th> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Attributes</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Default</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th class="last">Description</th> | ||||||
|  |     </tr> | ||||||
|  |     </thead> | ||||||
|  |  | ||||||
|  |     <tbody> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |         <tr> | ||||||
|  |              | ||||||
|  |                 <td class="name"><code>deleteId</code></td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="type"> | ||||||
|  |              | ||||||
|  |             </td> | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="attributes"> | ||||||
|  |                  | ||||||
|  |                     <optional><br> | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="default"> | ||||||
|  |                  | ||||||
|  |                     null | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="description last"></td> | ||||||
|  |         </tr> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     </tbody> | ||||||
|  | </table> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#markAsDeleted">AbstractEntity#markAsDeleted</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line118">line 118</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="save"><span class="type-signature"></span>save<span class="signature">()</span><span class="type-signature"> → {<a href="AbstractEntity.html">AbstractEntity</a>}</span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Saves entity - executes SQL, but doesn't commit the transaction on its own | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#save">AbstractEntity#save</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line73">line 73</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <h5>Returns:</h5> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl> | ||||||
|  |     <dt> | ||||||
|  |         Type | ||||||
|  |     </dt> | ||||||
|  |     <dd> | ||||||
|  |          | ||||||
|  | <span class="param-type"><a href="AbstractEntity.html">AbstractEntity</a></span> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     </dd> | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
| </article> | </article> | ||||||
|  |  | ||||||
| </section> | </section> | ||||||
| @@ -752,13 +1241,13 @@ parents.</div> | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -99,7 +99,7 @@ from tokenHash and token.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line16">line 16</a> |         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line17">line 17</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -133,6 +133,17 @@ from tokenHash and token.</div> | |||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|      |      | ||||||
|  |         <h3 class="subsection-title">Extends</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <ul> | ||||||
|  |         <li><a href="AbstractEntity.html">AbstractEntity</a></li> | ||||||
|  |     </ul> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -199,7 +210,7 @@ from tokenHash and token.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line34">line 34</a> |         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line35">line 35</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -267,7 +278,7 @@ from tokenHash and token.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line44">line 44</a> |         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line45">line 45</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -335,7 +346,7 @@ from tokenHash and token.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line36">line 36</a> |         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line37">line 37</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -403,7 +414,7 @@ from tokenHash and token.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line38">line 38</a> |         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line39">line 39</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -471,7 +482,7 @@ from tokenHash and token.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line40">line 40</a> |         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line41">line 41</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -539,7 +550,158 @@ from tokenHash and token.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line42">line 42</a> |         <a href="becca_entities_etapi_token.js.html">becca/entities/etapi_token.js</a>, <a href="becca_entities_etapi_token.js.html#line43">line 43</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |         <h3 class="subsection-title">Methods</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="markAsDeleted"><span class="type-signature"></span>markAsDeleted<span class="signature">(deleteId<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Mark the entity as (soft) deleted. It will be completely erased later. | ||||||
|  |  | ||||||
|  | This is a low level method, for notes and branches use `note.deleteNote()` and 'branch.deleteBranch()` instead. | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <h5>Parameters:</h5> | ||||||
|  |      | ||||||
|  |  | ||||||
|  | <table class="params"> | ||||||
|  |     <thead> | ||||||
|  |     <tr> | ||||||
|  |          | ||||||
|  |         <th>Name</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th>Type</th> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Attributes</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Default</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th class="last">Description</th> | ||||||
|  |     </tr> | ||||||
|  |     </thead> | ||||||
|  |  | ||||||
|  |     <tbody> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |         <tr> | ||||||
|  |              | ||||||
|  |                 <td class="name"><code>deleteId</code></td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="type"> | ||||||
|  |              | ||||||
|  |             </td> | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="attributes"> | ||||||
|  |                  | ||||||
|  |                     <optional><br> | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="default"> | ||||||
|  |                  | ||||||
|  |                     null | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="description last"></td> | ||||||
|  |         </tr> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     </tbody> | ||||||
|  | </table> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#markAsDeleted">AbstractEntity#markAsDeleted</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line118">line 118</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -563,6 +725,129 @@ from tokenHash and token.</div> | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="save"><span class="type-signature"></span>save<span class="signature">()</span><span class="type-signature"> → {<a href="AbstractEntity.html">AbstractEntity</a>}</span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Saves entity - executes SQL, but doesn't commit the transaction on its own | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#save">AbstractEntity#save</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line73">line 73</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <h5>Returns:</h5> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl> | ||||||
|  |     <dt> | ||||||
|  |         Type | ||||||
|  |     </dt> | ||||||
|  |     <dd> | ||||||
|  |          | ||||||
|  | <span class="param-type"><a href="AbstractEntity.html">AbstractEntity</a></span> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     </dd> | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
| </article> | </article> | ||||||
|  |  | ||||||
| </section> | </section> | ||||||
| @@ -573,13 +858,13 @@ from tokenHash and token.</div> | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -94,7 +94,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line15">line 15</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line17">line 17</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -128,6 +128,17 @@ It's used for seamless note versioning.</div> | |||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|      |      | ||||||
|  |         <h3 class="subsection-title">Extends</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <ul> | ||||||
|  |         <li><a href="AbstractEntity.html">AbstractEntity</a></li> | ||||||
|  |     </ul> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -194,7 +205,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line46">line 46</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line48">line 48</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -262,7 +273,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line38">line 38</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line40">line 40</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -330,7 +341,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line36">line 36</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line38">line 38</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -398,7 +409,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line32">line 32</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line34">line 34</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -466,7 +477,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line30">line 30</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line32">line 32</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -534,7 +545,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line26">line 26</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line28">line 28</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -602,7 +613,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line24">line 24</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line26">line 26</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -670,7 +681,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line34">line 34</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line36">line 36</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -738,7 +749,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line28">line 28</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line30">line 30</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -806,7 +817,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line42">line 42</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line44">line 44</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -874,7 +885,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line40">line 40</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line42">line 42</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -942,7 +953,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line44">line 44</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line46">line 46</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -1018,7 +1029,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line77">line 77</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line79">line 79</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -1120,7 +1131,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line141">line 141</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line143">line 143</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -1222,7 +1233,7 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line63">line 63</a> |         <a href="becca_entities_note_revision.js.html">becca/entities/note_revision.js</a>, <a href="becca_entities_note_revision.js.html#line65">line 65</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -1280,6 +1291,276 @@ It's used for seamless note versioning.</div> | |||||||
|      |      | ||||||
|  |  | ||||||
|      |      | ||||||
|  |     <h4 class="name" id="markAsDeleted"><span class="type-signature"></span>markAsDeleted<span class="signature">(deleteId<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Mark the entity as (soft) deleted. It will be completely erased later. | ||||||
|  |  | ||||||
|  | This is a low level method, for notes and branches use `note.deleteNote()` and 'branch.deleteBranch()` instead. | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <h5>Parameters:</h5> | ||||||
|  |      | ||||||
|  |  | ||||||
|  | <table class="params"> | ||||||
|  |     <thead> | ||||||
|  |     <tr> | ||||||
|  |          | ||||||
|  |         <th>Name</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th>Type</th> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Attributes</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Default</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th class="last">Description</th> | ||||||
|  |     </tr> | ||||||
|  |     </thead> | ||||||
|  |  | ||||||
|  |     <tbody> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |         <tr> | ||||||
|  |              | ||||||
|  |                 <td class="name"><code>deleteId</code></td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="type"> | ||||||
|  |              | ||||||
|  |             </td> | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="attributes"> | ||||||
|  |                  | ||||||
|  |                     <optional><br> | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="default"> | ||||||
|  |                  | ||||||
|  |                     null | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="description last"></td> | ||||||
|  |         </tr> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     </tbody> | ||||||
|  | </table> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#markAsDeleted">AbstractEntity#markAsDeleted</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line118">line 118</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="save"><span class="type-signature"></span>save<span class="signature">()</span><span class="type-signature"> → {<a href="AbstractEntity.html">AbstractEntity</a>}</span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Saves entity - executes SQL, but doesn't commit the transaction on its own | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#save">AbstractEntity#save</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line73">line 73</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <h5>Returns:</h5> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl> | ||||||
|  |     <dt> | ||||||
|  |         Type | ||||||
|  |     </dt> | ||||||
|  |     <dd> | ||||||
|  |          | ||||||
|  | <span class="param-type"><a href="AbstractEntity.html">AbstractEntity</a></span> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     </dd> | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
| </article> | </article> | ||||||
|  |  | ||||||
| </section> | </section> | ||||||
| @@ -1290,13 +1571,13 @@ It's used for seamless note versioning.</div> | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -93,7 +93,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_option.js.html">becca/entities/option.js</a>, <a href="becca_entities_option.js.html#line9">line 9</a> |         <a href="becca_entities_option.js.html">becca/entities/option.js</a>, <a href="becca_entities_option.js.html#line11">line 11</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -127,6 +127,17 @@ | |||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|      |      | ||||||
|  |         <h3 class="subsection-title">Extends</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <ul> | ||||||
|  |         <li><a href="AbstractEntity.html">AbstractEntity</a></li> | ||||||
|  |     </ul> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -193,7 +204,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_option.js.html">becca/entities/option.js</a>, <a href="becca_entities_option.js.html#line22">line 22</a> |         <a href="becca_entities_option.js.html">becca/entities/option.js</a>, <a href="becca_entities_option.js.html#line24">line 24</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -261,7 +272,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_option.js.html">becca/entities/option.js</a>, <a href="becca_entities_option.js.html#line18">line 18</a> |         <a href="becca_entities_option.js.html">becca/entities/option.js</a>, <a href="becca_entities_option.js.html#line20">line 20</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -329,7 +340,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_option.js.html">becca/entities/option.js</a>, <a href="becca_entities_option.js.html#line24">line 24</a> |         <a href="becca_entities_option.js.html">becca/entities/option.js</a>, <a href="becca_entities_option.js.html#line26">line 26</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -397,7 +408,158 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_option.js.html">becca/entities/option.js</a>, <a href="becca_entities_option.js.html#line20">line 20</a> |         <a href="becca_entities_option.js.html">becca/entities/option.js</a>, <a href="becca_entities_option.js.html#line22">line 22</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |         <h3 class="subsection-title">Methods</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="markAsDeleted"><span class="type-signature"></span>markAsDeleted<span class="signature">(deleteId<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Mark the entity as (soft) deleted. It will be completely erased later. | ||||||
|  |  | ||||||
|  | This is a low level method, for notes and branches use `note.deleteNote()` and 'branch.deleteBranch()` instead. | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <h5>Parameters:</h5> | ||||||
|  |      | ||||||
|  |  | ||||||
|  | <table class="params"> | ||||||
|  |     <thead> | ||||||
|  |     <tr> | ||||||
|  |          | ||||||
|  |         <th>Name</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th>Type</th> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Attributes</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Default</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th class="last">Description</th> | ||||||
|  |     </tr> | ||||||
|  |     </thead> | ||||||
|  |  | ||||||
|  |     <tbody> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |         <tr> | ||||||
|  |              | ||||||
|  |                 <td class="name"><code>deleteId</code></td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="type"> | ||||||
|  |              | ||||||
|  |             </td> | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="attributes"> | ||||||
|  |                  | ||||||
|  |                     <optional><br> | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="default"> | ||||||
|  |                  | ||||||
|  |                     null | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="description last"></td> | ||||||
|  |         </tr> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     </tbody> | ||||||
|  | </table> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#markAsDeleted">AbstractEntity#markAsDeleted</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line118">line 118</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -421,6 +583,129 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="save"><span class="type-signature"></span>save<span class="signature">()</span><span class="type-signature"> → {<a href="AbstractEntity.html">AbstractEntity</a>}</span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Saves entity - executes SQL, but doesn't commit the transaction on its own | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#save">AbstractEntity#save</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line73">line 73</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <h5>Returns:</h5> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl> | ||||||
|  |     <dt> | ||||||
|  |         Type | ||||||
|  |     </dt> | ||||||
|  |     <dd> | ||||||
|  |          | ||||||
|  | <span class="param-type"><a href="AbstractEntity.html">AbstractEntity</a></span> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     </dd> | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
| </article> | </article> | ||||||
|  |  | ||||||
| </section> | </section> | ||||||
| @@ -431,13 +716,13 @@ | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -93,7 +93,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_recent_note.js.html">becca/entities/recent_note.js</a>, <a href="becca_entities_recent_note.js.html#line9">line 9</a> |         <a href="becca_entities_recent_note.js.html">becca/entities/recent_note.js</a>, <a href="becca_entities_recent_note.js.html#line11">line 11</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -127,6 +127,17 @@ | |||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|      |      | ||||||
|  |         <h3 class="subsection-title">Extends</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <ul> | ||||||
|  |         <li><a href="AbstractEntity.html">AbstractEntity</a></li> | ||||||
|  |     </ul> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -193,7 +204,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_recent_note.js.html">becca/entities/recent_note.js</a>, <a href="becca_entities_recent_note.js.html#line17">line 17</a> |         <a href="becca_entities_recent_note.js.html">becca/entities/recent_note.js</a>, <a href="becca_entities_recent_note.js.html#line19">line 19</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -261,7 +272,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_recent_note.js.html">becca/entities/recent_note.js</a>, <a href="becca_entities_recent_note.js.html#line19">line 19</a> |         <a href="becca_entities_recent_note.js.html">becca/entities/recent_note.js</a>, <a href="becca_entities_recent_note.js.html#line21">line 21</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -329,7 +340,158 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="becca_entities_recent_note.js.html">becca/entities/recent_note.js</a>, <a href="becca_entities_recent_note.js.html#line21">line 21</a> |         <a href="becca_entities_recent_note.js.html">becca/entities/recent_note.js</a>, <a href="becca_entities_recent_note.js.html#line23">line 23</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |         <h3 class="subsection-title">Methods</h3> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="markAsDeleted"><span class="type-signature"></span>markAsDeleted<span class="signature">(deleteId<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Mark the entity as (soft) deleted. It will be completely erased later. | ||||||
|  |  | ||||||
|  | This is a low level method, for notes and branches use `note.deleteNote()` and 'branch.deleteBranch()` instead. | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     <h5>Parameters:</h5> | ||||||
|  |      | ||||||
|  |  | ||||||
|  | <table class="params"> | ||||||
|  |     <thead> | ||||||
|  |     <tr> | ||||||
|  |          | ||||||
|  |         <th>Name</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th>Type</th> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Attributes</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |          | ||||||
|  |         <th>Default</th> | ||||||
|  |          | ||||||
|  |  | ||||||
|  |         <th class="last">Description</th> | ||||||
|  |     </tr> | ||||||
|  |     </thead> | ||||||
|  |  | ||||||
|  |     <tbody> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |         <tr> | ||||||
|  |              | ||||||
|  |                 <td class="name"><code>deleteId</code></td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="type"> | ||||||
|  |              | ||||||
|  |             </td> | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="attributes"> | ||||||
|  |                  | ||||||
|  |                     <optional><br> | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |  | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |              | ||||||
|  |                 <td class="default"> | ||||||
|  |                  | ||||||
|  |                     null | ||||||
|  |                  | ||||||
|  |                 </td> | ||||||
|  |              | ||||||
|  |  | ||||||
|  |             <td class="description last"></td> | ||||||
|  |         </tr> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     </tbody> | ||||||
|  | </table> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#markAsDeleted">AbstractEntity#markAsDeleted</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line118">line 118</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -353,6 +515,129 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |              | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <h4 class="name" id="save"><span class="type-signature"></span>save<span class="signature">()</span><span class="type-signature"> → {<a href="AbstractEntity.html">AbstractEntity</a>}</span></h4> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <div class="description"> | ||||||
|  |     Saves entity - executes SQL, but doesn't commit the transaction on its own | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl class="details"> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-overrides">Overrides:</dt> | ||||||
|  |     <dd class="tag-overrides"><ul class="dummy"><li> | ||||||
|  |         <a href="AbstractEntity.html#save">AbstractEntity#save</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <dt class="tag-source">Source:</dt> | ||||||
|  |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|  |         <a href="becca_entities_abstract_entity.js.html">becca/entities/abstract_entity.js</a>, <a href="becca_entities_abstract_entity.js.html#line73">line 73</a> | ||||||
|  |     </li></ul></dd> | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <h5>Returns:</h5> | ||||||
|  |  | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  | <dl> | ||||||
|  |     <dt> | ||||||
|  |         Type | ||||||
|  |     </dt> | ||||||
|  |     <dd> | ||||||
|  |          | ||||||
|  | <span class="param-type"><a href="AbstractEntity.html">AbstractEntity</a></span> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     </dd> | ||||||
|  | </dl> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |          | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |      | ||||||
| </article> | </article> | ||||||
|  |  | ||||||
| </section> | </section> | ||||||
| @@ -363,13 +648,13 @@ | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
							
								
								
									
										211
									
								
								docs/backend_api/becca_entities_abstract_entity.js.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										211
									
								
								docs/backend_api/becca_entities_abstract_entity.js.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,211 @@ | |||||||
|  | <!DOCTYPE html> | ||||||
|  | <html lang="en"> | ||||||
|  | <head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <title>JSDoc: Source: becca/entities/abstract_entity.js</title> | ||||||
|  |  | ||||||
|  |     <script src="scripts/prettify/prettify.js"> </script> | ||||||
|  |     <script src="scripts/prettify/lang-css.js"> </script> | ||||||
|  |     <!--[if lt IE 9]> | ||||||
|  |       <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> | ||||||
|  |     <![endif]--> | ||||||
|  |     <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> | ||||||
|  |     <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> | ||||||
|  | </head> | ||||||
|  |  | ||||||
|  | <body> | ||||||
|  |  | ||||||
|  | <div id="main"> | ||||||
|  |  | ||||||
|  |     <h1 class="page-title">Source: becca/entities/abstract_entity.js</h1> | ||||||
|  |  | ||||||
|  |      | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |      | ||||||
|  |     <section> | ||||||
|  |         <article> | ||||||
|  |             <pre class="prettyprint source linenums"><code>"use strict"; | ||||||
|  |  | ||||||
|  | const utils = require('../../services/utils'); | ||||||
|  | const sql = require('../../services/sql'); | ||||||
|  | const entityChangesService = require('../../services/entity_changes'); | ||||||
|  | const eventService = require("../../services/events"); | ||||||
|  | const dateUtils = require("../../services/date_utils"); | ||||||
|  | const cls = require("../../services/cls"); | ||||||
|  | const log = require("../../services/log"); | ||||||
|  |  | ||||||
|  | let becca = null; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Base class for all backend entities. | ||||||
|  |  */ | ||||||
|  | class AbstractEntity { | ||||||
|  |     beforeSaving() { | ||||||
|  |         this.generateIdIfNecessary(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     generateIdIfNecessary() { | ||||||
|  |         if (!this[this.constructor.primaryKeyName]) { | ||||||
|  |             this[this.constructor.primaryKeyName] = utils.newEntityId(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     generateHash(isDeleted = false) { | ||||||
|  |         let contentToHash = ""; | ||||||
|  |  | ||||||
|  |         for (const propertyName of this.constructor.hashedProperties) { | ||||||
|  |             contentToHash += "|" + this[propertyName]; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (isDeleted) { | ||||||
|  |             contentToHash += "|deleted"; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return utils.hash(contentToHash).substr(0, 10); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     getUtcDateChanged() { | ||||||
|  |         return this.utcDateModified || this.utcDateCreated; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     get becca() { | ||||||
|  |         if (!becca) { | ||||||
|  |             becca = require('../becca'); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return becca; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     addEntityChange(isDeleted = false) { | ||||||
|  |         entityChangesService.addEntityChange({ | ||||||
|  |             entityName: this.constructor.entityName, | ||||||
|  |             entityId: this[this.constructor.primaryKeyName], | ||||||
|  |             hash: this.generateHash(isDeleted), | ||||||
|  |             isErased: false, | ||||||
|  |             utcDateChanged: this.getUtcDateChanged(), | ||||||
|  |             isSynced: this.constructor.entityName !== 'options' || !!this.isSynced | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     getPojoToSave() { | ||||||
|  |         return this.getPojo(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Saves entity - executes SQL, but doesn't commit the transaction on its own | ||||||
|  |      * | ||||||
|  |      * @returns {AbstractEntity} | ||||||
|  |      */ | ||||||
|  |     save() { | ||||||
|  |         const entityName = this.constructor.entityName; | ||||||
|  |         const primaryKeyName = this.constructor.primaryKeyName; | ||||||
|  |  | ||||||
|  |         const isNewEntity = !this[primaryKeyName]; | ||||||
|  |  | ||||||
|  |         if (this.beforeSaving) { | ||||||
|  |             this.beforeSaving(); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         const pojo = this.getPojoToSave(); | ||||||
|  |  | ||||||
|  |         sql.transactional(() => { | ||||||
|  |             sql.upsert(entityName, primaryKeyName, pojo); | ||||||
|  |  | ||||||
|  |             if (entityName === 'recent_notes') { | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             this.addEntityChange(false); | ||||||
|  |  | ||||||
|  |             if (!cls.isEntityEventsDisabled()) { | ||||||
|  |                 const eventPayload = { | ||||||
|  |                     entityName, | ||||||
|  |                     entity: this | ||||||
|  |                 }; | ||||||
|  |  | ||||||
|  |                 if (isNewEntity) { | ||||||
|  |                     eventService.emit(eventService.ENTITY_CREATED, eventPayload); | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 eventService.emit(eventService.ENTITY_CHANGED, eventPayload); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |  | ||||||
|  |         return this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Mark the entity as (soft) deleted. It will be completely erased later. | ||||||
|  |      * | ||||||
|  |      * This is a low level method, for notes and branches use `note.deleteNote()` and 'branch.deleteBranch()` instead. | ||||||
|  |      * | ||||||
|  |      * @param [deleteId=null] | ||||||
|  |      */ | ||||||
|  |     markAsDeleted(deleteId = null) { | ||||||
|  |         const entityId = this[this.constructor.primaryKeyName]; | ||||||
|  |         const entityName = this.constructor.entityName; | ||||||
|  |  | ||||||
|  |         this.utcDateModified = dateUtils.utcNowDateTime(); | ||||||
|  |  | ||||||
|  |         sql.execute(`UPDATE ${entityName} SET isDeleted = 1, deleteId = ?, utcDateModified = ? | ||||||
|  |                            WHERE ${this.constructor.primaryKeyName} = ?`, | ||||||
|  |             [deleteId, this.utcDateModified, entityId]); | ||||||
|  |  | ||||||
|  |         if (this.dateModified) { | ||||||
|  |             this.dateModified = dateUtils.localNowDateTime(); | ||||||
|  |  | ||||||
|  |             sql.execute(`UPDATE ${entityName} SET dateModified = ? WHERE ${this.constructor.primaryKeyName} = ?`, | ||||||
|  |                 [this.dateModified, entityId]); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         log.info(`Marking ${entityName} ${entityId} as deleted`); | ||||||
|  |  | ||||||
|  |         this.addEntityChange(true); | ||||||
|  |  | ||||||
|  |         eventService.emit(eventService.ENTITY_DELETED, { entityName, entityId, entity: this }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     markAsDeletedSimple() { | ||||||
|  |         const entityId = this[this.constructor.primaryKeyName]; | ||||||
|  |         const entityName = this.constructor.entityName; | ||||||
|  |  | ||||||
|  |         this.utcDateModified = dateUtils.utcNowDateTime(); | ||||||
|  |  | ||||||
|  |         sql.execute(`UPDATE ${entityName} SET isDeleted = 1, utcDateModified = ? | ||||||
|  |                            WHERE ${this.constructor.primaryKeyName} = ?`, | ||||||
|  |             [this.utcDateModified, entityId]); | ||||||
|  |  | ||||||
|  |         log.info(`Marking ${entityName} ${entityId} as deleted`); | ||||||
|  |  | ||||||
|  |         this.addEntityChange(true); | ||||||
|  |  | ||||||
|  |         eventService.emit(eventService.ENTITY_DELETED, { entityName, entityId, entity: this }); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | module.exports = AbstractEntity; | ||||||
|  | </code></pre> | ||||||
|  |         </article> | ||||||
|  |     </section> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  | <nav> | ||||||
|  |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
|  | </nav> | ||||||
|  |  | ||||||
|  | <br class="clear"> | ||||||
|  |  | ||||||
|  | <footer> | ||||||
|  |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
|  | </footer> | ||||||
|  |  | ||||||
|  | <script> prettyPrint(); </script> | ||||||
|  | <script src="scripts/linenumber.js"> </script> | ||||||
|  | </body> | ||||||
|  | </html> | ||||||
| @@ -37,6 +37,8 @@ const promotedAttributeDefinitionParser = require("../../services/promoted_attri | |||||||
| /** | /** | ||||||
|  * Attribute is an abstract concept which has two real uses - label (key - value pair) |  * Attribute is an abstract concept which has two real uses - label (key - value pair) | ||||||
|  * and relation (representing named relationship between source and target note) |  * and relation (representing named relationship between source and target note) | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class Attribute extends AbstractEntity { | class Attribute extends AbstractEntity { | ||||||
|     static get entityName() { return "attributes"; } |     static get entityName() { return "attributes"; } | ||||||
| @@ -245,13 +247,13 @@ module.exports = Attribute; | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -32,10 +32,16 @@ const Note = require('./note'); | |||||||
| const AbstractEntity = require("./abstract_entity"); | const AbstractEntity = require("./abstract_entity"); | ||||||
| const sql = require("../../services/sql"); | const sql = require("../../services/sql"); | ||||||
| const dateUtils = require("../../services/date_utils"); | const dateUtils = require("../../services/date_utils"); | ||||||
|  | const utils = require("../../services/utils.js"); | ||||||
|  | const TaskContext = require("../../services/task_context.js"); | ||||||
|  | const cls = require("../../services/cls.js"); | ||||||
|  | const log = require("../../services/log.js"); | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple |  * Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple | ||||||
|  * parents. |  * parents. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class Branch extends AbstractEntity { | class Branch extends AbstractEntity { | ||||||
|     static get entityName() { return "branches"; } |     static get entityName() { return "branches"; } | ||||||
| @@ -140,6 +146,63 @@ class Branch extends AbstractEntity { | |||||||
|         return !(this.branchId in this.becca.branches); |         return !(this.branchId in this.becca.branches); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Delete a branch. If this is a last note's branch, delete the note as well. | ||||||
|  |      * | ||||||
|  |      * @param {string} [deleteId] - optional delete identified | ||||||
|  |      * @param {TaskContext} [taskContext] | ||||||
|  |      * | ||||||
|  |      * @return {boolean} - true if note has been deleted, false otherwise | ||||||
|  |      */ | ||||||
|  |     deleteBranch(deleteId, taskContext) { | ||||||
|  |         if (!deleteId) { | ||||||
|  |             deleteId = utils.randomString(10); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (!taskContext) { | ||||||
|  |             taskContext = new TaskContext('no-progress-reporting'); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         taskContext.increaseProgressCount(); | ||||||
|  |  | ||||||
|  |         if (this.branchId === 'root' | ||||||
|  |             || this.noteId === 'root' | ||||||
|  |             || this.noteId === cls.getHoistedNoteId()) { | ||||||
|  |  | ||||||
|  |             throw new Error("Can't delete root or hoisted branch/note"); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         this.markAsDeleted(deleteId); | ||||||
|  |  | ||||||
|  |         const note = this.getNote(); | ||||||
|  |         const notDeletedBranches = note.getParentBranches(); | ||||||
|  |  | ||||||
|  |         if (notDeletedBranches.length === 0) { | ||||||
|  |             for (const childBranch of note.getChildBranches()) { | ||||||
|  |                 childBranch.deleteBranch(deleteId, taskContext); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             // first delete children and then parent - this will show up better in recent changes | ||||||
|  |  | ||||||
|  |             log.info("Deleting note " + note.noteId); | ||||||
|  |  | ||||||
|  |             for (const attribute of note.getOwnedAttributes()) { | ||||||
|  |                 attribute.markAsDeleted(deleteId); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             for (const relation of note.getTargetRelations()) { | ||||||
|  |                 relation.markAsDeleted(deleteId); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             note.markAsDeleted(deleteId); | ||||||
|  |  | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     beforeSaving() { |     beforeSaving() { | ||||||
|         if (this.notePosition === undefined || this.notePosition === null) { |         if (this.notePosition === undefined || this.notePosition === null) { | ||||||
|             // TODO finding new position can be refactored into becca |             // TODO finding new position can be refactored into becca | ||||||
| @@ -193,13 +256,13 @@ module.exports = Branch; | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -30,7 +30,6 @@ | |||||||
|  |  | ||||||
| const dateUtils = require('../../services/date_utils'); | const dateUtils = require('../../services/date_utils'); | ||||||
| const AbstractEntity = require("./abstract_entity"); | const AbstractEntity = require("./abstract_entity"); | ||||||
| const sql = require("../../services/sql.js"); |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * EtapiToken is an entity representing token used to authenticate against Trilium REST API from client applications. |  * EtapiToken is an entity representing token used to authenticate against Trilium REST API from client applications. | ||||||
| @@ -40,6 +39,8 @@ const sql = require("../../services/sql.js"); | |||||||
|  * |  * | ||||||
|  * The format user is presented with is "<etapiTokenId>_<tokenHash>". This is also called "authToken" to distinguish it |  * The format user is presented with is "<etapiTokenId>_<tokenHash>". This is also called "authToken" to distinguish it | ||||||
|  * from tokenHash and token. |  * from tokenHash and token. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class EtapiToken extends AbstractEntity { | class EtapiToken extends AbstractEntity { | ||||||
|     static get entityName() { return "etapi_tokens"; } |     static get entityName() { return "etapi_tokens"; } | ||||||
| @@ -71,8 +72,10 @@ class EtapiToken extends AbstractEntity { | |||||||
|         /** @type {boolean} */ |         /** @type {boolean} */ | ||||||
|         this.isDeleted = !!row.isDeleted; |         this.isDeleted = !!row.isDeleted; | ||||||
|  |  | ||||||
|  |         if (this.etapiTokenId) { | ||||||
|             this.becca.etapiTokens[this.etapiTokenId] = this; |             this.becca.etapiTokens[this.etapiTokenId] = this; | ||||||
|         } |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     init() { |     init() { | ||||||
|         if (this.etapiTokenId) { |         if (this.etapiTokenId) { | ||||||
| @@ -111,13 +114,13 @@ module.exports = EtapiToken; | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -36,12 +36,15 @@ const dateUtils = require('../../services/date_utils'); | |||||||
| const entityChangesService = require('../../services/entity_changes'); | const entityChangesService = require('../../services/entity_changes'); | ||||||
| const AbstractEntity = require("./abstract_entity"); | const AbstractEntity = require("./abstract_entity"); | ||||||
| const NoteRevision = require("./note_revision"); | const NoteRevision = require("./note_revision"); | ||||||
|  | const TaskContext = require("../../services/task_context.js"); | ||||||
|  |  | ||||||
| const LABEL = 'label'; | const LABEL = 'label'; | ||||||
| const RELATION = 'relation'; | const RELATION = 'relation'; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Trilium's main entity which can represent text note, image, code note, file attachment etc. |  * Trilium's main entity which can represent text note, image, code note, file attachment etc. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class Note extends AbstractEntity { | class Note extends AbstractEntity { | ||||||
|     static get entityName() { return "notes"; } |     static get entityName() { return "notes"; } | ||||||
| @@ -1151,10 +1154,31 @@ class Note extends AbstractEntity { | |||||||
|         return cloningService.cloneNoteToBranch(this.noteId, branch.branchId); |         return cloningService.cloneNoteToBranch(this.noteId, branch.branchId); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * (Soft) delete a note and all its descendants. | ||||||
|  |      * | ||||||
|  |      * @param {string} [deleteId] - optional delete identified | ||||||
|  |      * @param {TaskContext} [taskContext] | ||||||
|  |      */ | ||||||
|  |     deleteNote(deleteId, taskContext) { | ||||||
|  |         if (!deleteId) { | ||||||
|  |             deleteId = utils.randomString(10); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (!taskContext) { | ||||||
|  |             taskContext = new TaskContext('no-progress-reporting'); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         for (const branch of this.getParentBranches()) { | ||||||
|  |             branch.deleteBranch(deleteId, taskContext); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     decrypt() { |     decrypt() { | ||||||
|         if (this.isProtected && !this.isDecrypted && protectedSessionService.isProtectedSessionAvailable()) { |         if (this.isProtected && !this.isDecrypted && protectedSessionService.isProtectedSessionAvailable()) { | ||||||
|             try { |             try { | ||||||
|                 this.title = protectedSessionService.decryptString(this.title); |                 this.title = protectedSessionService.decryptString(this.title); | ||||||
|  |                 this.flatTextCache = null; | ||||||
|  |  | ||||||
|                 this.isDecrypted = true; |                 this.isDecrypted = true; | ||||||
|             } |             } | ||||||
| @@ -1220,13 +1244,13 @@ module.exports = Note; | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -39,6 +39,8 @@ const AbstractEntity = require("./abstract_entity"); | |||||||
| /** | /** | ||||||
|  * NoteRevision represents snapshot of note's title and content at some point in the past. |  * NoteRevision represents snapshot of note's title and content at some point in the past. | ||||||
|  * It's used for seamless note versioning. |  * It's used for seamless note versioning. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class NoteRevision extends AbstractEntity { | class NoteRevision extends AbstractEntity { | ||||||
|     static get entityName() { return "note_revisions"; } |     static get entityName() { return "note_revisions"; } | ||||||
| @@ -230,13 +232,13 @@ module.exports = NoteRevision; | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -33,6 +33,8 @@ const AbstractEntity = require("./abstract_entity"); | |||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Option represents name-value pair, either directly configurable by the user or some system property. |  * Option represents name-value pair, either directly configurable by the user or some system property. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class Option extends AbstractEntity { | class Option extends AbstractEntity { | ||||||
|     static get entityName() { return "options"; } |     static get entityName() { return "options"; } | ||||||
| @@ -81,13 +83,13 @@ module.exports = Option; | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -33,6 +33,8 @@ const AbstractEntity = require("./abstract_entity"); | |||||||
|  |  | ||||||
| /** | /** | ||||||
|  * RecentNote represents recently visited note. |  * RecentNote represents recently visited note. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class RecentNote extends AbstractEntity { | class RecentNote extends AbstractEntity { | ||||||
|     static get entityName() { return "recent_notes"; } |     static get entityName() { return "recent_notes"; } | ||||||
| @@ -69,13 +71,13 @@ module.exports = RecentNote; | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -1083,13 +1083,13 @@ | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -50,13 +50,13 @@ | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -208,7 +208,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line345">line 345</a> |         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line355">line 355</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -388,7 +388,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line336">line 336</a> |         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line346">line 346</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -590,7 +590,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line326">line 326</a> |         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line336">line 336</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -792,7 +792,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line302">line 302</a> |         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line312">line 312</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -994,7 +994,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line313">line 313</a> |         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line323">line 323</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -1196,7 +1196,7 @@ | |||||||
|      |      | ||||||
|     <dt class="tag-source">Source:</dt> |     <dt class="tag-source">Source:</dt> | ||||||
|     <dd class="tag-source"><ul class="dummy"><li> |     <dd class="tag-source"><ul class="dummy"><li> | ||||||
|         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line292">line 292</a> |         <a href="services_sql.js.html">services/sql.js</a>, <a href="services_sql.js.html#line302">line 302</a> | ||||||
|     </li></ul></dd> |     </li></ul></dd> | ||||||
|      |      | ||||||
|  |  | ||||||
| @@ -1252,13 +1252,13 @@ | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -321,7 +321,7 @@ function BackendScriptApi(currentNote, apiParams) { | |||||||
|      * |      * | ||||||
|      * @param message |      * @param message | ||||||
|      */ |      */ | ||||||
|     this.log = message => log.info(`Script "${currentNote.title}" (${currentNote.noteId}): ${message}`); |     this.log = message => log.info(message); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Returns root note of the calendar. |      * Returns root note of the calendar. | ||||||
| @@ -467,13 +467,13 @@ module.exports = BackendScriptApi; | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -36,6 +36,7 @@ const log = require('./log'); | |||||||
| const Database = require('better-sqlite3'); | const Database = require('better-sqlite3'); | ||||||
| const dataDir = require('./data_dir'); | const dataDir = require('./data_dir'); | ||||||
| const cls = require('./cls'); | const cls = require('./cls'); | ||||||
|  | const fs = require("fs-extra"); | ||||||
|  |  | ||||||
| const dbConnection = new Database(dataDir.DOCUMENT_PATH); | const dbConnection = new Database(dataDir.DOCUMENT_PATH); | ||||||
| dbConnection.pragma('journal_mode = WAL'); | dbConnection.pragma('journal_mode = WAL'); | ||||||
| @@ -304,6 +305,15 @@ function fillParamList(paramIds, truncate = true) { | |||||||
|     s.run(paramIds); |     s.run(paramIds); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | async function copyDatabase(targetFilePath) { | ||||||
|  |     try { | ||||||
|  |         fs.unlinkSync(targetFilePath); | ||||||
|  |     } catch (e) { | ||||||
|  |     } // unlink throws exception if the file did not exist | ||||||
|  |  | ||||||
|  |     await dbConnection.backup(targetFilePath); | ||||||
|  | } | ||||||
|  |  | ||||||
| module.exports = { | module.exports = { | ||||||
|     dbConnection, |     dbConnection, | ||||||
|     insert, |     insert, | ||||||
| @@ -375,7 +385,8 @@ module.exports = { | |||||||
|     executeScript, |     executeScript, | ||||||
|     transactional, |     transactional, | ||||||
|     upsert, |     upsert, | ||||||
|     fillParamList |     fillParamList, | ||||||
|  |     copyDatabase | ||||||
| }; | }; | ||||||
| </code></pre> | </code></pre> | ||||||
|         </article> |         </article> | ||||||
| @@ -387,13 +398,13 @@ module.exports = { | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <nav> | <nav> | ||||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> |     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="AbstractEntity.html">AbstractEntity</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="EtapiToken.html">EtapiToken</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||||
| </nav> | </nav> | ||||||
|  |  | ||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -748,7 +748,7 @@ and relation (representing named relationship between source and target note)</d | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -1062,7 +1062,7 @@ parents.</div> | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -6666,7 +6666,7 @@ Typical use case is when new note has been created, we should wait until it is s | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -781,7 +781,7 @@ | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -7269,7 +7269,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -110,7 +110,7 @@ export default Attribute; | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -99,7 +99,7 @@ export default Branch; | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -82,7 +82,7 @@ export default NoteComplement; | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -848,7 +848,7 @@ export default NoteShort; | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -431,7 +431,7 @@ | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -56,7 +56,7 @@ | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -529,7 +529,7 @@ export default FrontendScriptApi; | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
| @@ -81,7 +81,7 @@ export default class CollapsibleWidget extends NoteContextAwareWidget { | |||||||
| <br class="clear"> | <br class="clear"> | ||||||
|  |  | ||||||
| <footer> | <footer> | ||||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> |     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.10</a> | ||||||
| </footer> | </footer> | ||||||
|  |  | ||||||
| <script> prettyPrint(); </script> | <script> prettyPrint(); </script> | ||||||
|   | |||||||
							
								
								
									
										206
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										206
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -1,16 +1,16 @@ | |||||||
| { | { | ||||||
|   "name": "trilium", |   "name": "trilium", | ||||||
|   "version": "0.50.3", |   "version": "0.51.0-beta", | ||||||
|   "lockfileVersion": 2, |   "lockfileVersion": 2, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "trilium", |       "name": "trilium", | ||||||
|       "version": "0.50.3", |       "version": "0.51.0-beta", | ||||||
|       "license": "AGPL-3.0-only", |       "license": "AGPL-3.0-only", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@electron/remote": "2.0.8", |         "@electron/remote": "2.0.8", | ||||||
|         "archiver": "5.3.0", |         "archiver": "5.3.1", | ||||||
|         "async-mutex": "0.3.2", |         "async-mutex": "0.3.2", | ||||||
|         "axios": "0.26.1", |         "axios": "0.26.1", | ||||||
|         "better-sqlite3": "7.4.5", |         "better-sqlite3": "7.4.5", | ||||||
| @@ -19,7 +19,7 @@ | |||||||
|         "commonmark": "0.30.0", |         "commonmark": "0.30.0", | ||||||
|         "cookie-parser": "1.4.6", |         "cookie-parser": "1.4.6", | ||||||
|         "csurf": "1.11.0", |         "csurf": "1.11.0", | ||||||
|         "dayjs": "1.11.0", |         "dayjs": "1.11.1", | ||||||
|         "ejs": "3.1.6", |         "ejs": "3.1.6", | ||||||
|         "electron-debug": "3.2.0", |         "electron-debug": "3.2.0", | ||||||
|         "electron-dl": "3.3.1", |         "electron-dl": "3.3.1", | ||||||
| @@ -29,12 +29,12 @@ | |||||||
|         "express-partial-content": "1.0.2", |         "express-partial-content": "1.0.2", | ||||||
|         "express-rate-limit": "6.3.0", |         "express-rate-limit": "6.3.0", | ||||||
|         "express-session": "1.17.2", |         "express-session": "1.17.2", | ||||||
|         "fs-extra": "10.0.1", |         "fs-extra": "10.1.0", | ||||||
|         "helmet": "5.0.2", |         "helmet": "5.0.2", | ||||||
|         "html": "1.0.0", |         "html": "1.0.0", | ||||||
|         "html2plaintext": "2.1.4", |         "html2plaintext": "2.1.4", | ||||||
|         "http-proxy-agent": "5.0.0", |         "http-proxy-agent": "5.0.0", | ||||||
|         "https-proxy-agent": "5.0.0", |         "https-proxy-agent": "5.0.1", | ||||||
|         "image-type": "4.1.0", |         "image-type": "4.1.0", | ||||||
|         "ini": "3.0.0", |         "ini": "3.0.0", | ||||||
|         "is-animated": "2.0.2", |         "is-animated": "2.0.2", | ||||||
| @@ -44,7 +44,7 @@ | |||||||
|         "jsdom": "19.0.0", |         "jsdom": "19.0.0", | ||||||
|         "mime-types": "2.1.35", |         "mime-types": "2.1.35", | ||||||
|         "multer": "1.4.4", |         "multer": "1.4.4", | ||||||
|         "node-abi": "3.8.0", |         "node-abi": "3.15.0", | ||||||
|         "normalize-strings": "1.1.1", |         "normalize-strings": "1.1.1", | ||||||
|         "open": "8.4.0", |         "open": "8.4.0", | ||||||
|         "portscanner": "2.2.0", |         "portscanner": "2.2.0", | ||||||
| @@ -54,7 +54,7 @@ | |||||||
|         "sanitize-filename": "1.6.3", |         "sanitize-filename": "1.6.3", | ||||||
|         "sanitize-html": "2.7.0", |         "sanitize-html": "2.7.0", | ||||||
|         "sax": "1.2.4", |         "sax": "1.2.4", | ||||||
|         "semver": "7.3.6", |         "semver": "7.3.7", | ||||||
|         "serve-favicon": "2.5.0", |         "serve-favicon": "2.5.0", | ||||||
|         "session-file-store": "1.5.0", |         "session-file-store": "1.5.0", | ||||||
|         "stream-throttle": "0.1.3", |         "stream-throttle": "0.1.3", | ||||||
| @@ -72,10 +72,10 @@ | |||||||
|         "cross-env": "7.0.3", |         "cross-env": "7.0.3", | ||||||
|         "electron": "16.2.1", |         "electron": "16.2.1", | ||||||
|         "electron-builder": "23.0.3", |         "electron-builder": "23.0.3", | ||||||
|         "electron-packager": "15.4.0", |         "electron-packager": "15.5.0", | ||||||
|         "electron-rebuild": "3.2.7", |         "electron-rebuild": "3.2.7", | ||||||
|         "esm": "3.2.25", |         "esm": "3.2.25", | ||||||
|         "jasmine": "4.0.2", |         "jasmine": "4.1.0", | ||||||
|         "jsdoc": "3.6.10", |         "jsdoc": "3.6.10", | ||||||
|         "lorem-ipsum": "2.0.4", |         "lorem-ipsum": "2.0.4", | ||||||
|         "rcedit": "3.0.1", |         "rcedit": "3.0.1", | ||||||
| @@ -1529,12 +1529,12 @@ | |||||||
|       "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" |       "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/archiver": { |     "node_modules/archiver": { | ||||||
|       "version": "5.3.0", |       "version": "5.3.1", | ||||||
|       "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", |       "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", | ||||||
|       "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", |       "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "archiver-utils": "^2.1.0", |         "archiver-utils": "^2.1.0", | ||||||
|         "async": "^3.2.0", |         "async": "^3.2.3", | ||||||
|         "buffer-crc32": "^0.2.1", |         "buffer-crc32": "^0.2.1", | ||||||
|         "readable-stream": "^3.6.0", |         "readable-stream": "^3.6.0", | ||||||
|         "readdir-glob": "^1.0.0", |         "readdir-glob": "^1.0.0", | ||||||
| @@ -1566,9 +1566,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/archiver/node_modules/async": { |     "node_modules/archiver/node_modules/async": { | ||||||
|       "version": "3.2.0", |       "version": "3.2.3", | ||||||
|       "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", |       "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", | ||||||
|       "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" |       "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/archiver/node_modules/readable-stream": { |     "node_modules/archiver/node_modules/readable-stream": { | ||||||
|       "version": "3.6.0", |       "version": "3.6.0", | ||||||
| @@ -3272,9 +3272,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/dayjs": { |     "node_modules/dayjs": { | ||||||
|       "version": "1.11.0", |       "version": "1.11.1", | ||||||
|       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", |       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz", | ||||||
|       "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==" |       "integrity": "sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/debug": { |     "node_modules/debug": { | ||||||
|       "version": "4.3.3", |       "version": "4.3.3", | ||||||
| @@ -4131,12 +4131,13 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/electron-packager": { |     "node_modules/electron-packager": { | ||||||
|       "version": "15.4.0", |       "version": "15.5.0", | ||||||
|       "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.4.0.tgz", |       "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.5.0.tgz", | ||||||
|       "integrity": "sha512-JrrLcBP15KGrPj0cZ/ALKGmaQ4gJkn3mocf0E3bRKdR3kxKWYcDRpCvdhksYDXw/r3I6tMEcZ7XzyApWFXdVpw==", |       "integrity": "sha512-8mITLQgTm9xdrO8XL/PsK0EZGU7zK/ay7TI8M1C9pc1UZ++HlaWQJBRJHlOXf4TL/7FsiF4OciEhiqhMn+LKQQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@electron/get": "^1.6.0", |         "@electron/get": "^1.6.0", | ||||||
|  |         "@electron/universal": "^1.2.1", | ||||||
|         "asar": "^3.1.0", |         "asar": "^3.1.0", | ||||||
|         "cross-spawn-windows-exe": "^1.2.0", |         "cross-spawn-windows-exe": "^1.2.0", | ||||||
|         "debug": "^4.0.1", |         "debug": "^4.0.1", | ||||||
| @@ -4165,6 +4166,24 @@ | |||||||
|         "url": "https://github.com/electron/electron-packager?sponsor=1" |         "url": "https://github.com/electron/electron-packager?sponsor=1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/electron-packager/node_modules/@electron/universal": { | ||||||
|  |       "version": "1.2.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz", | ||||||
|  |       "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==", | ||||||
|  |       "dev": true, | ||||||
|  |       "dependencies": { | ||||||
|  |         "@malept/cross-spawn-promise": "^1.1.0", | ||||||
|  |         "asar": "^3.1.0", | ||||||
|  |         "debug": "^4.3.1", | ||||||
|  |         "dir-compare": "^2.4.0", | ||||||
|  |         "fs-extra": "^9.0.1", | ||||||
|  |         "minimatch": "^3.0.4", | ||||||
|  |         "plist": "^3.0.4" | ||||||
|  |       }, | ||||||
|  |       "engines": { | ||||||
|  |         "node": ">=8.6" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/electron-packager/node_modules/cross-spawn-windows-exe": { |     "node_modules/electron-packager/node_modules/cross-spawn-windows-exe": { | ||||||
|       "version": "1.2.0", |       "version": "1.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz", |       "resolved": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz", | ||||||
| @@ -5577,9 +5596,9 @@ | |||||||
|       "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" |       "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/fs-extra": { |     "node_modules/fs-extra": { | ||||||
|       "version": "10.0.1", |       "version": "10.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", |       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", | ||||||
|       "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", |       "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "graceful-fs": "^4.2.0", |         "graceful-fs": "^4.2.0", | ||||||
|         "jsonfile": "^6.0.1", |         "jsonfile": "^6.0.1", | ||||||
| @@ -6124,9 +6143,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/https-proxy-agent": { |     "node_modules/https-proxy-agent": { | ||||||
|       "version": "5.0.0", |       "version": "5.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", |       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", | ||||||
|       "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", |       "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "agent-base": "6", |         "agent-base": "6", | ||||||
|         "debug": "4" |         "debug": "4" | ||||||
| @@ -6615,22 +6634,22 @@ | |||||||
|       "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" |       "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" | ||||||
|     }, |     }, | ||||||
|     "node_modules/jasmine": { |     "node_modules/jasmine": { | ||||||
|       "version": "4.0.2", |       "version": "4.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-4.0.2.tgz", |       "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-4.1.0.tgz", | ||||||
|       "integrity": "sha512-YsrgxJQEggxzByYe4j68eQLOiQeSrPDYGv4sHhGBp3c6HHdq+uPXeAQ73kOAQpdLZ3/0zN7x/TZTloqeE1/qIA==", |       "integrity": "sha512-4VhjbUgwfNS9CBnUMoSWr9tdNgOoOhNIjAD8YRxTn+PmOf4qTSC0Uqhk66dWGnz2vJxtNIU0uBjiwnsp4Ud9VA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "glob": "^7.1.6", |         "glob": "^7.1.6", | ||||||
|         "jasmine-core": "^4.0.0" |         "jasmine-core": "^4.1.0" | ||||||
|       }, |       }, | ||||||
|       "bin": { |       "bin": { | ||||||
|         "jasmine": "bin/jasmine.js" |         "jasmine": "bin/jasmine.js" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/jasmine-core": { |     "node_modules/jasmine-core": { | ||||||
|       "version": "4.0.0", |       "version": "4.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.0.0.tgz", |       "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.1.0.tgz", | ||||||
|       "integrity": "sha512-tq24OCqHElgU9KDpb/8O21r1IfotgjIzalfW9eCmRR40LZpvwXT68iariIyayMwi0m98RDt16aljdbwK0sBMmQ==", |       "integrity": "sha512-8E8BiffCL8sBwK1zU9cbavLe8xpJAgOduSJ6N8PJVv8VosQ/nxVTuXj2kUeHxTlZBVvh24G19ga7xdiaxlceKg==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/jest-worker": { |     "node_modules/jest-worker": { | ||||||
| @@ -7199,7 +7218,6 @@ | |||||||
|       "version": "6.0.0", |       "version": "6.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", |       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", | ||||||
|       "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", |       "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", | ||||||
|       "devOptional": true, |  | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "yallist": "^4.0.0" |         "yallist": "^4.0.0" | ||||||
|       }, |       }, | ||||||
| @@ -7663,9 +7681,9 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/node-abi": { |     "node_modules/node-abi": { | ||||||
|       "version": "3.8.0", |       "version": "3.15.0", | ||||||
|       "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.8.0.tgz", |       "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.15.0.tgz", | ||||||
|       "integrity": "sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==", |       "integrity": "sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "semver": "^7.3.5" |         "semver": "^7.3.5" | ||||||
|       }, |       }, | ||||||
| @@ -9176,17 +9194,17 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/semver": { |     "node_modules/semver": { | ||||||
|       "version": "7.3.6", |       "version": "7.3.7", | ||||||
|       "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz", |       "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", | ||||||
|       "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==", |       "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "lru-cache": "^7.4.0" |         "lru-cache": "^6.0.0" | ||||||
|       }, |       }, | ||||||
|       "bin": { |       "bin": { | ||||||
|         "semver": "bin/semver.js" |         "semver": "bin/semver.js" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": "^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0" |         "node": ">=10" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/semver-compare": { |     "node_modules/semver-compare": { | ||||||
| @@ -9216,14 +9234,6 @@ | |||||||
|         "semver": "bin/semver.js" |         "semver": "bin/semver.js" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/semver/node_modules/lru-cache": { |  | ||||||
|       "version": "7.8.1", |  | ||||||
|       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz", |  | ||||||
|       "integrity": "sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg==", |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=12" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/send": { |     "node_modules/send": { | ||||||
|       "version": "0.17.2", |       "version": "0.17.2", | ||||||
|       "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", |       "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", | ||||||
| @@ -12425,12 +12435,12 @@ | |||||||
|       "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" |       "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" | ||||||
|     }, |     }, | ||||||
|     "archiver": { |     "archiver": { | ||||||
|       "version": "5.3.0", |       "version": "5.3.1", | ||||||
|       "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", |       "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", | ||||||
|       "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", |       "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "archiver-utils": "^2.1.0", |         "archiver-utils": "^2.1.0", | ||||||
|         "async": "^3.2.0", |         "async": "^3.2.3", | ||||||
|         "buffer-crc32": "^0.2.1", |         "buffer-crc32": "^0.2.1", | ||||||
|         "readable-stream": "^3.6.0", |         "readable-stream": "^3.6.0", | ||||||
|         "readdir-glob": "^1.0.0", |         "readdir-glob": "^1.0.0", | ||||||
| @@ -12439,9 +12449,9 @@ | |||||||
|       }, |       }, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "async": { |         "async": { | ||||||
|           "version": "3.2.0", |           "version": "3.2.3", | ||||||
|           "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", |           "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", | ||||||
|           "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" |           "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" | ||||||
|         }, |         }, | ||||||
|         "readable-stream": { |         "readable-stream": { | ||||||
|           "version": "3.6.0", |           "version": "3.6.0", | ||||||
| @@ -13785,9 +13795,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "dayjs": { |     "dayjs": { | ||||||
|       "version": "1.11.0", |       "version": "1.11.1", | ||||||
|       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", |       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.1.tgz", | ||||||
|       "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==" |       "integrity": "sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==" | ||||||
|     }, |     }, | ||||||
|     "debug": { |     "debug": { | ||||||
|       "version": "4.3.3", |       "version": "4.3.3", | ||||||
| @@ -14566,12 +14576,13 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "electron-packager": { |     "electron-packager": { | ||||||
|       "version": "15.4.0", |       "version": "15.5.0", | ||||||
|       "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.4.0.tgz", |       "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-15.5.0.tgz", | ||||||
|       "integrity": "sha512-JrrLcBP15KGrPj0cZ/ALKGmaQ4gJkn3mocf0E3bRKdR3kxKWYcDRpCvdhksYDXw/r3I6tMEcZ7XzyApWFXdVpw==", |       "integrity": "sha512-8mITLQgTm9xdrO8XL/PsK0EZGU7zK/ay7TI8M1C9pc1UZ++HlaWQJBRJHlOXf4TL/7FsiF4OciEhiqhMn+LKQQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@electron/get": "^1.6.0", |         "@electron/get": "^1.6.0", | ||||||
|  |         "@electron/universal": "^1.2.1", | ||||||
|         "asar": "^3.1.0", |         "asar": "^3.1.0", | ||||||
|         "cross-spawn-windows-exe": "^1.2.0", |         "cross-spawn-windows-exe": "^1.2.0", | ||||||
|         "debug": "^4.0.1", |         "debug": "^4.0.1", | ||||||
| @@ -14591,6 +14602,21 @@ | |||||||
|         "yargs-parser": "^20.0.0" |         "yargs-parser": "^20.0.0" | ||||||
|       }, |       }, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|  |         "@electron/universal": { | ||||||
|  |           "version": "1.2.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz", | ||||||
|  |           "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==", | ||||||
|  |           "dev": true, | ||||||
|  |           "requires": { | ||||||
|  |             "@malept/cross-spawn-promise": "^1.1.0", | ||||||
|  |             "asar": "^3.1.0", | ||||||
|  |             "debug": "^4.3.1", | ||||||
|  |             "dir-compare": "^2.4.0", | ||||||
|  |             "fs-extra": "^9.0.1", | ||||||
|  |             "minimatch": "^3.0.4", | ||||||
|  |             "plist": "^3.0.4" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|         "cross-spawn-windows-exe": { |         "cross-spawn-windows-exe": { | ||||||
|           "version": "1.2.0", |           "version": "1.2.0", | ||||||
|           "resolved": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz", |           "resolved": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz", | ||||||
| @@ -15517,9 +15543,9 @@ | |||||||
|       "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" |       "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" | ||||||
|     }, |     }, | ||||||
|     "fs-extra": { |     "fs-extra": { | ||||||
|       "version": "10.0.1", |       "version": "10.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", |       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", | ||||||
|       "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", |       "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "graceful-fs": "^4.2.0", |         "graceful-fs": "^4.2.0", | ||||||
|         "jsonfile": "^6.0.1", |         "jsonfile": "^6.0.1", | ||||||
| @@ -15962,9 +15988,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "https-proxy-agent": { |     "https-proxy-agent": { | ||||||
|       "version": "5.0.0", |       "version": "5.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", |       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", | ||||||
|       "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", |       "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "agent-base": "6", |         "agent-base": "6", | ||||||
|         "debug": "4" |         "debug": "4" | ||||||
| @@ -16316,19 +16342,19 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "jasmine": { |     "jasmine": { | ||||||
|       "version": "4.0.2", |       "version": "4.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-4.0.2.tgz", |       "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-4.1.0.tgz", | ||||||
|       "integrity": "sha512-YsrgxJQEggxzByYe4j68eQLOiQeSrPDYGv4sHhGBp3c6HHdq+uPXeAQ73kOAQpdLZ3/0zN7x/TZTloqeE1/qIA==", |       "integrity": "sha512-4VhjbUgwfNS9CBnUMoSWr9tdNgOoOhNIjAD8YRxTn+PmOf4qTSC0Uqhk66dWGnz2vJxtNIU0uBjiwnsp4Ud9VA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "glob": "^7.1.6", |         "glob": "^7.1.6", | ||||||
|         "jasmine-core": "^4.0.0" |         "jasmine-core": "^4.1.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "jasmine-core": { |     "jasmine-core": { | ||||||
|       "version": "4.0.0", |       "version": "4.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.0.0.tgz", |       "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.1.0.tgz", | ||||||
|       "integrity": "sha512-tq24OCqHElgU9KDpb/8O21r1IfotgjIzalfW9eCmRR40LZpvwXT68iariIyayMwi0m98RDt16aljdbwK0sBMmQ==", |       "integrity": "sha512-8E8BiffCL8sBwK1zU9cbavLe8xpJAgOduSJ6N8PJVv8VosQ/nxVTuXj2kUeHxTlZBVvh24G19ga7xdiaxlceKg==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "jest-worker": { |     "jest-worker": { | ||||||
| @@ -16790,7 +16816,6 @@ | |||||||
|       "version": "6.0.0", |       "version": "6.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", |       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", | ||||||
|       "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", |       "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", | ||||||
|       "devOptional": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "yallist": "^4.0.0" |         "yallist": "^4.0.0" | ||||||
|       } |       } | ||||||
| @@ -17144,9 +17169,9 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node-abi": { |     "node-abi": { | ||||||
|       "version": "3.8.0", |       "version": "3.15.0", | ||||||
|       "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.8.0.tgz", |       "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.15.0.tgz", | ||||||
|       "integrity": "sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==", |       "integrity": "sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "semver": "^7.3.5" |         "semver": "^7.3.5" | ||||||
|       } |       } | ||||||
| @@ -18327,18 +18352,11 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "semver": { |     "semver": { | ||||||
|       "version": "7.3.6", |       "version": "7.3.7", | ||||||
|       "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.6.tgz", |       "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", | ||||||
|       "integrity": "sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w==", |       "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "lru-cache": "^7.4.0" |         "lru-cache": "^6.0.0" | ||||||
|       }, |  | ||||||
|       "dependencies": { |  | ||||||
|         "lru-cache": { |  | ||||||
|           "version": "7.8.1", |  | ||||||
|           "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz", |  | ||||||
|           "integrity": "sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg==" |  | ||||||
|         } |  | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "semver-compare": { |     "semver-compare": { | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								package.json
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | |||||||
|   "name": "trilium", |   "name": "trilium", | ||||||
|   "productName": "Trilium Notes", |   "productName": "Trilium Notes", | ||||||
|   "description": "Trilium Notes", |   "description": "Trilium Notes", | ||||||
|   "version": "0.51.0-beta", |   "version": "0.51.2", | ||||||
|   "license": "AGPL-3.0-only", |   "license": "AGPL-3.0-only", | ||||||
|   "main": "electron.js", |   "main": "electron.js", | ||||||
|   "bin": { |   "bin": { | ||||||
| @@ -13,8 +13,8 @@ | |||||||
|     "url": "https://github.com/zadam/trilium.git" |     "url": "https://github.com/zadam/trilium.git" | ||||||
|   }, |   }, | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "start-server": "cross-env TRILIUM_ENV=dev node ./src/www", |     "start-server": "cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev node ./src/www", | ||||||
|     "start-electron": "cross-env TRILIUM_ENV=dev electron --inspect=5858 .", |     "start-electron": "cross-env TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev electron --inspect=5858 .", | ||||||
|     "build-backend-docs": "rm -r ./docs/backend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/backend_api src/becca/entities/*.js src/services/backend_script_api.js src/services/sql.js", |     "build-backend-docs": "rm -r ./docs/backend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/backend_api src/becca/entities/*.js src/services/backend_script_api.js src/services/sql.js", | ||||||
|     "build-frontend-docs": "rm -r ./docs/frontend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/collapsible_widget.js", |     "build-frontend-docs": "rm -r ./docs/frontend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/collapsible_widget.js", | ||||||
|     "build-docs": "npm run build-backend-docs && npm run build-frontend-docs", |     "build-docs": "npm run build-backend-docs && npm run build-frontend-docs", | ||||||
| @@ -24,7 +24,7 @@ | |||||||
|     "test-all": "npm run test && npm run test-es6" |     "test-all": "npm run test && npm run test-es6" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "archiver": "5.3.0", |     "archiver": "5.3.1", | ||||||
|     "async-mutex": "0.3.2", |     "async-mutex": "0.3.2", | ||||||
|     "axios": "0.26.1", |     "axios": "0.26.1", | ||||||
|     "better-sqlite3": "7.4.5", |     "better-sqlite3": "7.4.5", | ||||||
| @@ -33,7 +33,7 @@ | |||||||
|     "commonmark": "0.30.0", |     "commonmark": "0.30.0", | ||||||
|     "cookie-parser": "1.4.6", |     "cookie-parser": "1.4.6", | ||||||
|     "csurf": "1.11.0", |     "csurf": "1.11.0", | ||||||
|     "dayjs": "1.11.0", |     "dayjs": "1.11.1", | ||||||
|     "ejs": "3.1.6", |     "ejs": "3.1.6", | ||||||
|     "electron-debug": "3.2.0", |     "electron-debug": "3.2.0", | ||||||
|     "electron-dl": "3.3.1", |     "electron-dl": "3.3.1", | ||||||
| @@ -44,12 +44,12 @@ | |||||||
|     "express-partial-content": "1.0.2", |     "express-partial-content": "1.0.2", | ||||||
|     "express-rate-limit": "6.3.0", |     "express-rate-limit": "6.3.0", | ||||||
|     "express-session": "1.17.2", |     "express-session": "1.17.2", | ||||||
|     "fs-extra": "10.0.1", |     "fs-extra": "10.1.0", | ||||||
|     "helmet": "5.0.2", |     "helmet": "5.0.2", | ||||||
|     "html": "1.0.0", |     "html": "1.0.0", | ||||||
|     "html2plaintext": "2.1.4", |     "html2plaintext": "2.1.4", | ||||||
|     "http-proxy-agent": "5.0.0", |     "http-proxy-agent": "5.0.0", | ||||||
|     "https-proxy-agent": "5.0.0", |     "https-proxy-agent": "5.0.1", | ||||||
|     "image-type": "4.1.0", |     "image-type": "4.1.0", | ||||||
|     "ini": "3.0.0", |     "ini": "3.0.0", | ||||||
|     "is-animated": "2.0.2", |     "is-animated": "2.0.2", | ||||||
| @@ -59,7 +59,7 @@ | |||||||
|     "jsdom": "19.0.0", |     "jsdom": "19.0.0", | ||||||
|     "mime-types": "2.1.35", |     "mime-types": "2.1.35", | ||||||
|     "multer": "1.4.4", |     "multer": "1.4.4", | ||||||
|     "node-abi": "3.8.0", |     "node-abi": "3.15.0", | ||||||
|     "normalize-strings": "1.1.1", |     "normalize-strings": "1.1.1", | ||||||
|     "open": "8.4.0", |     "open": "8.4.0", | ||||||
|     "portscanner": "2.2.0", |     "portscanner": "2.2.0", | ||||||
| @@ -69,7 +69,7 @@ | |||||||
|     "sanitize-filename": "1.6.3", |     "sanitize-filename": "1.6.3", | ||||||
|     "sanitize-html": "2.7.0", |     "sanitize-html": "2.7.0", | ||||||
|     "sax": "1.2.4", |     "sax": "1.2.4", | ||||||
|     "semver": "7.3.6", |     "semver": "7.3.7", | ||||||
|     "serve-favicon": "2.5.0", |     "serve-favicon": "2.5.0", | ||||||
|     "session-file-store": "1.5.0", |     "session-file-store": "1.5.0", | ||||||
|     "stream-throttle": "0.1.3", |     "stream-throttle": "0.1.3", | ||||||
| @@ -84,10 +84,10 @@ | |||||||
|     "cross-env": "7.0.3", |     "cross-env": "7.0.3", | ||||||
|     "electron": "16.2.1", |     "electron": "16.2.1", | ||||||
|     "electron-builder": "23.0.3", |     "electron-builder": "23.0.3", | ||||||
|     "electron-packager": "15.4.0", |     "electron-packager": "15.5.0", | ||||||
|     "electron-rebuild": "3.2.7", |     "electron-rebuild": "3.2.7", | ||||||
|     "esm": "3.2.25", |     "esm": "3.2.25", | ||||||
|     "jasmine": "4.0.2", |     "jasmine": "4.1.0", | ||||||
|     "jsdoc": "3.6.10", |     "jsdoc": "3.6.10", | ||||||
|     "lorem-ipsum": "2.0.4", |     "lorem-ipsum": "2.0.4", | ||||||
|     "rcedit": "3.0.1", |     "rcedit": "3.0.1", | ||||||
|   | |||||||
| @@ -67,7 +67,7 @@ function getNoteTitle(childNoteId, parentNoteId) { | |||||||
|     const parentNote = becca.notes[parentNoteId]; |     const parentNote = becca.notes[parentNoteId]; | ||||||
|  |  | ||||||
|     if (!childNote) { |     if (!childNote) { | ||||||
|         log.info(`Cannot find note in cache for noteId ${childNoteId}`); |         log.info(`Cannot find note in cache for noteId '${childNoteId}'`); | ||||||
|         return "[error fetching title]"; |         return "[error fetching title]"; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -162,7 +162,7 @@ function getNotePath(noteId) { | |||||||
|     const note = becca.notes[noteId]; |     const note = becca.notes[noteId]; | ||||||
|  |  | ||||||
|     if (!note) { |     if (!note) { | ||||||
|         console.trace(`Cannot find note ${noteId} in cache.`); |         console.trace(`Cannot find note '${noteId}' in cache.`); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,6 +10,9 @@ const log = require("../../services/log"); | |||||||
|  |  | ||||||
| let becca = null; | let becca = null; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Base class for all backend entities. | ||||||
|  |  */ | ||||||
| class AbstractEntity { | class AbstractEntity { | ||||||
|     beforeSaving() { |     beforeSaving() { | ||||||
|         this.generateIdIfNecessary(); |         this.generateIdIfNecessary(); | ||||||
| @@ -62,6 +65,11 @@ class AbstractEntity { | |||||||
|         return this.getPojo(); |         return this.getPojo(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Saves entity - executes SQL, but doesn't commit the transaction on its own | ||||||
|  |      * | ||||||
|  |      * @returns {AbstractEntity} | ||||||
|  |      */ | ||||||
|     save() { |     save() { | ||||||
|         const entityName = this.constructor.entityName; |         const entityName = this.constructor.entityName; | ||||||
|         const primaryKeyName = this.constructor.primaryKeyName; |         const primaryKeyName = this.constructor.primaryKeyName; | ||||||
| @@ -100,6 +108,13 @@ class AbstractEntity { | |||||||
|         return this; |         return this; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Mark the entity as (soft) deleted. It will be completely erased later. | ||||||
|  |      * | ||||||
|  |      * This is a low level method, for notes and branches use `note.deleteNote()` and 'branch.deleteBranch()` instead. | ||||||
|  |      * | ||||||
|  |      * @param [deleteId=null] | ||||||
|  |      */ | ||||||
|     markAsDeleted(deleteId = null) { |     markAsDeleted(deleteId = null) { | ||||||
|         const entityId = this[this.constructor.primaryKeyName]; |         const entityId = this[this.constructor.primaryKeyName]; | ||||||
|         const entityName = this.constructor.entityName; |         const entityName = this.constructor.entityName; | ||||||
|   | |||||||
| @@ -9,6 +9,8 @@ const promotedAttributeDefinitionParser = require("../../services/promoted_attri | |||||||
| /** | /** | ||||||
|  * Attribute is an abstract concept which has two real uses - label (key - value pair) |  * Attribute is an abstract concept which has two real uses - label (key - value pair) | ||||||
|  * and relation (representing named relationship between source and target note) |  * and relation (representing named relationship between source and target note) | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class Attribute extends AbstractEntity { | class Attribute extends AbstractEntity { | ||||||
|     static get entityName() { return "attributes"; } |     static get entityName() { return "attributes"; } | ||||||
|   | |||||||
| @@ -4,10 +4,16 @@ const Note = require('./note'); | |||||||
| const AbstractEntity = require("./abstract_entity"); | const AbstractEntity = require("./abstract_entity"); | ||||||
| const sql = require("../../services/sql"); | const sql = require("../../services/sql"); | ||||||
| const dateUtils = require("../../services/date_utils"); | const dateUtils = require("../../services/date_utils"); | ||||||
|  | const utils = require("../../services/utils.js"); | ||||||
|  | const TaskContext = require("../../services/task_context.js"); | ||||||
|  | const cls = require("../../services/cls.js"); | ||||||
|  | const log = require("../../services/log.js"); | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple |  * Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple | ||||||
|  * parents. |  * parents. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class Branch extends AbstractEntity { | class Branch extends AbstractEntity { | ||||||
|     static get entityName() { return "branches"; } |     static get entityName() { return "branches"; } | ||||||
| @@ -112,6 +118,63 @@ class Branch extends AbstractEntity { | |||||||
|         return !(this.branchId in this.becca.branches); |         return !(this.branchId in this.becca.branches); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Delete a branch. If this is a last note's branch, delete the note as well. | ||||||
|  |      * | ||||||
|  |      * @param {string} [deleteId] - optional delete identified | ||||||
|  |      * @param {TaskContext} [taskContext] | ||||||
|  |      * | ||||||
|  |      * @return {boolean} - true if note has been deleted, false otherwise | ||||||
|  |      */ | ||||||
|  |     deleteBranch(deleteId, taskContext) { | ||||||
|  |         if (!deleteId) { | ||||||
|  |             deleteId = utils.randomString(10); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (!taskContext) { | ||||||
|  |             taskContext = new TaskContext('no-progress-reporting'); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         taskContext.increaseProgressCount(); | ||||||
|  |  | ||||||
|  |         if (this.branchId === 'root' | ||||||
|  |             || this.noteId === 'root' | ||||||
|  |             || this.noteId === cls.getHoistedNoteId()) { | ||||||
|  |  | ||||||
|  |             throw new Error("Can't delete root or hoisted branch/note"); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         this.markAsDeleted(deleteId); | ||||||
|  |  | ||||||
|  |         const note = this.getNote(); | ||||||
|  |         const notDeletedBranches = note.getParentBranches(); | ||||||
|  |  | ||||||
|  |         if (notDeletedBranches.length === 0) { | ||||||
|  |             for (const childBranch of note.getChildBranches()) { | ||||||
|  |                 childBranch.deleteBranch(deleteId, taskContext); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             // first delete children and then parent - this will show up better in recent changes | ||||||
|  |  | ||||||
|  |             log.info("Deleting note " + note.noteId); | ||||||
|  |  | ||||||
|  |             for (const attribute of note.getOwnedAttributes()) { | ||||||
|  |                 attribute.markAsDeleted(deleteId); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             for (const relation of note.getTargetRelations()) { | ||||||
|  |                 relation.markAsDeleted(deleteId); | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             note.markAsDeleted(deleteId); | ||||||
|  |  | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     beforeSaving() { |     beforeSaving() { | ||||||
|         if (this.notePosition === undefined || this.notePosition === null) { |         if (this.notePosition === undefined || this.notePosition === null) { | ||||||
|             // TODO finding new position can be refactored into becca |             // TODO finding new position can be refactored into becca | ||||||
|   | |||||||
| @@ -11,6 +11,8 @@ const AbstractEntity = require("./abstract_entity"); | |||||||
|  * |  * | ||||||
|  * The format user is presented with is "<etapiTokenId>_<tokenHash>". This is also called "authToken" to distinguish it |  * The format user is presented with is "<etapiTokenId>_<tokenHash>". This is also called "authToken" to distinguish it | ||||||
|  * from tokenHash and token. |  * from tokenHash and token. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class EtapiToken extends AbstractEntity { | class EtapiToken extends AbstractEntity { | ||||||
|     static get entityName() { return "etapi_tokens"; } |     static get entityName() { return "etapi_tokens"; } | ||||||
|   | |||||||
| @@ -8,12 +8,15 @@ const dateUtils = require('../../services/date_utils'); | |||||||
| const entityChangesService = require('../../services/entity_changes'); | const entityChangesService = require('../../services/entity_changes'); | ||||||
| const AbstractEntity = require("./abstract_entity"); | const AbstractEntity = require("./abstract_entity"); | ||||||
| const NoteRevision = require("./note_revision"); | const NoteRevision = require("./note_revision"); | ||||||
|  | const TaskContext = require("../../services/task_context.js"); | ||||||
|  |  | ||||||
| const LABEL = 'label'; | const LABEL = 'label'; | ||||||
| const RELATION = 'relation'; | const RELATION = 'relation'; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Trilium's main entity which can represent text note, image, code note, file attachment etc. |  * Trilium's main entity which can represent text note, image, code note, file attachment etc. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class Note extends AbstractEntity { | class Note extends AbstractEntity { | ||||||
|     static get entityName() { return "notes"; } |     static get entityName() { return "notes"; } | ||||||
| @@ -235,7 +238,7 @@ class Note extends AbstractEntity { | |||||||
|  |  | ||||||
|     setContent(content, ignoreMissingProtectedSession = false) { |     setContent(content, ignoreMissingProtectedSession = false) { | ||||||
|         if (content === null || content === undefined) { |         if (content === null || content === undefined) { | ||||||
|             throw new Error(`Cannot set null content to note ${this.noteId}`); |             throw new Error(`Cannot set null content to note '${this.noteId}'`); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if (this.isStringNote()) { |         if (this.isStringNote()) { | ||||||
| @@ -257,7 +260,7 @@ class Note extends AbstractEntity { | |||||||
|                 pojo.content = protectedSessionService.encrypt(pojo.content); |                 pojo.content = protectedSessionService.encrypt(pojo.content); | ||||||
|             } |             } | ||||||
|             else if (!ignoreMissingProtectedSession) { |             else if (!ignoreMissingProtectedSession) { | ||||||
|                 throw new Error(`Cannot update content of noteId=${this.noteId} since we're out of protected session.`); |                 throw new Error(`Cannot update content of noteId '${this.noteId}' since we're out of protected session.`); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -1123,6 +1126,26 @@ class Note extends AbstractEntity { | |||||||
|         return cloningService.cloneNoteToBranch(this.noteId, branch.branchId); |         return cloningService.cloneNoteToBranch(this.noteId, branch.branchId); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * (Soft) delete a note and all its descendants. | ||||||
|  |      * | ||||||
|  |      * @param {string} [deleteId] - optional delete identified | ||||||
|  |      * @param {TaskContext} [taskContext] | ||||||
|  |      */ | ||||||
|  |     deleteNote(deleteId, taskContext) { | ||||||
|  |         if (!deleteId) { | ||||||
|  |             deleteId = utils.randomString(10); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (!taskContext) { | ||||||
|  |             taskContext = new TaskContext('no-progress-reporting'); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         for (const branch of this.getParentBranches()) { | ||||||
|  |             branch.deleteBranch(deleteId, taskContext); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     decrypt() { |     decrypt() { | ||||||
|         if (this.isProtected && !this.isDecrypted && protectedSessionService.isProtectedSessionAvailable()) { |         if (this.isProtected && !this.isDecrypted && protectedSessionService.isProtectedSessionAvailable()) { | ||||||
|             try { |             try { | ||||||
|   | |||||||
| @@ -11,6 +11,8 @@ const AbstractEntity = require("./abstract_entity"); | |||||||
| /** | /** | ||||||
|  * NoteRevision represents snapshot of note's title and content at some point in the past. |  * NoteRevision represents snapshot of note's title and content at some point in the past. | ||||||
|  * It's used for seamless note versioning. |  * It's used for seamless note versioning. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class NoteRevision extends AbstractEntity { | class NoteRevision extends AbstractEntity { | ||||||
|     static get entityName() { return "note_revisions"; } |     static get entityName() { return "note_revisions"; } | ||||||
|   | |||||||
| @@ -5,6 +5,8 @@ const AbstractEntity = require("./abstract_entity"); | |||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Option represents name-value pair, either directly configurable by the user or some system property. |  * Option represents name-value pair, either directly configurable by the user or some system property. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class Option extends AbstractEntity { | class Option extends AbstractEntity { | ||||||
|     static get entityName() { return "options"; } |     static get entityName() { return "options"; } | ||||||
|   | |||||||
| @@ -5,6 +5,8 @@ const AbstractEntity = require("./abstract_entity"); | |||||||
|  |  | ||||||
| /** | /** | ||||||
|  * RecentNote represents recently visited note. |  * RecentNote represents recently visited note. | ||||||
|  |  * | ||||||
|  |  * @extends AbstractEntity | ||||||
|  */ |  */ | ||||||
| class RecentNote extends AbstractEntity { | class RecentNote extends AbstractEntity { | ||||||
|     static get entityName() { return "recent_notes"; } |     static get entityName() { return "recent_notes"; } | ||||||
|   | |||||||
| @@ -71,7 +71,7 @@ function register(router) { | |||||||
|             return res.sendStatus(204); |             return res.sendStatus(204); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         noteService.deleteBranch(branch, null, new TaskContext('no-progress-reporting')); |         branch.deleteBranch(); | ||||||
|  |  | ||||||
|         res.sendStatus(204); |         res.sendStatus(204); | ||||||
|     }); |     }); | ||||||
|   | |||||||
| @@ -98,7 +98,7 @@ function register(router) { | |||||||
|             return res.sendStatus(204); |             return res.sendStatus(204); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         noteService.deleteNote(note, null, new TaskContext('no-progress-reporting')); |         note.deleteNote(null, new TaskContext('no-progress-reporting')); | ||||||
|  |  | ||||||
|         res.sendStatus(204); |         res.sendStatus(204); | ||||||
|     }); |     }); | ||||||
|   | |||||||
| @@ -124,7 +124,7 @@ class NoteShort { | |||||||
|             return JSON.parse(content); |             return JSON.parse(content); | ||||||
|         } |         } | ||||||
|         catch (e) { |         catch (e) { | ||||||
|             console.log(`Cannot parse content of note ${this.noteId}: `, e.message); |             console.log(`Cannot parse content of note '${this.noteId}': `, e.message); | ||||||
|  |  | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -179,7 +179,7 @@ class Froca { | |||||||
|         const searchResultNoteIds = await server.get('search-note/' + note.noteId); |         const searchResultNoteIds = await server.get('search-note/' + note.noteId); | ||||||
|  |  | ||||||
|         if (!Array.isArray(searchResultNoteIds)) { |         if (!Array.isArray(searchResultNoteIds)) { | ||||||
|             throw new Error(`Search note ${note.noteId} failed: ${searchResultNoteIds}`); |             throw new Error(`Search note '${note.noteId}' failed: ${searchResultNoteIds}`); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // reset all the virtual branches from old search results |         // reset all the virtual branches from old search results | ||||||
| @@ -254,7 +254,7 @@ class Froca { | |||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|         else if (!noteId) { |         else if (!noteId) { | ||||||
|             console.trace(`Falsy noteId ${noteId}, returning null.`); |             console.trace(`Falsy noteId '${noteId}', returning null.`); | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -312,7 +312,7 @@ class Froca { | |||||||
|         if (!this.noteComplementPromises[noteId]) { |         if (!this.noteComplementPromises[noteId]) { | ||||||
|             this.noteComplementPromises[noteId] = server.get('notes/' + noteId) |             this.noteComplementPromises[noteId] = server.get('notes/' + noteId) | ||||||
|                 .then(row => new NoteComplement(row)) |                 .then(row => new NoteComplement(row)) | ||||||
|                 .catch(e => console.error(`Cannot get note complement for note ${noteId}`)); |                 .catch(e => console.error(`Cannot get note complement for note '${noteId}'`)); | ||||||
|  |  | ||||||
|             // we don't want to keep large payloads forever in memory so we clean that up quite quickly |             // we don't want to keep large payloads forever in memory so we clean that up quite quickly | ||||||
|             // this cache is more meant to share the data between different components within one business transaction (e.g. loading of the note into the tab context and all the components) |             // this cache is more meant to share the data between different components within one business transaction (e.g. loading of the note into the tab context and all the components) | ||||||
|   | |||||||
| @@ -63,6 +63,7 @@ async function mouseEnterHandler() { | |||||||
|             placement: 'auto', |             placement: 'auto', | ||||||
|             trigger: 'manual', |             trigger: 'manual', | ||||||
|             boundary: 'window', |             boundary: 'window', | ||||||
|  |             offset: "0, 20", // workaround for https://github.com/zadam/trilium/issues/2794 | ||||||
|             title: html, |             title: html, | ||||||
|             html: true, |             html: true, | ||||||
|             template: '<div class="tooltip note-tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>', |             template: '<div class="tooltip note-tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>', | ||||||
|   | |||||||
| @@ -71,7 +71,6 @@ export default class ButtonWidget extends NoteContextAwareWidget { | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         this.$widget |         this.$widget | ||||||
|             .attr("title", this.settings.title) |  | ||||||
|             .addClass(this.settings.icon); |             .addClass(this.settings.icon); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,5 +1,7 @@ | |||||||
| import ButtonWidget from "./button_widget.js"; | import ButtonWidget from "./button_widget.js"; | ||||||
| import appContext from "../../services/app_context.js"; | import appContext from "../../services/app_context.js"; | ||||||
|  | import attributeService from "../../services/attributes.js"; | ||||||
|  | import protectedSessionHolder from "../../services/protected_session_holder.js"; | ||||||
|  |  | ||||||
| export default class EditButton extends ButtonWidget { | export default class EditButton extends ButtonWidget { | ||||||
|     isEnabled() { |     isEnabled() { | ||||||
| @@ -22,9 +24,29 @@ export default class EditButton extends ButtonWidget { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     async refreshWithNote(note) { |     async refreshWithNote(note) { | ||||||
|  |         if (note.isProtected && !protectedSessionHolder.isProtectedSessionAvailable()) { | ||||||
|  |             this.toggleInt(false); | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             // prevent flickering by assuming hidden before async operation | ||||||
|  |             this.toggleInt(false); | ||||||
|  |  | ||||||
|             // can't do this in isEnabled() since isReadOnly is async |             // can't do this in isEnabled() since isReadOnly is async | ||||||
|             this.toggleInt(await this.noteContext.isReadOnly()); |             this.toggleInt(await this.noteContext.isReadOnly()); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         await super.refreshWithNote(note); |         await super.refreshWithNote(note); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     entitiesReloadedEvent({loadResults}) { | ||||||
|  |         if (loadResults.getAttributes().find( | ||||||
|  |             attr => attr.type === 'label' | ||||||
|  |                 && attr.name.toLowerCase().includes("readonly") | ||||||
|  |                 && attributeService.isAffecting(attr, this.note) | ||||||
|  |         )) { | ||||||
|  |             this.noteContext.readOnlyTemporarilyDisabled = false; | ||||||
|  |  | ||||||
|  |             this.refresh(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -191,7 +191,7 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget { | |||||||
|         await this.initialized; |         await this.initialized; | ||||||
|  |  | ||||||
|         this.textEditor.model.change(writer => { |         this.textEditor.model.change(writer => { | ||||||
|             const insertPosition = this.textEditor.model.document.selection.getFirstPosition(); |             const insertPosition = this.textEditor.model.document.selection.getLastPosition(); | ||||||
|             writer.insertText(text, insertPosition); |             writer.insertText(text, insertPosition); | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| import NoteContextAwareWidget from "../note_context_aware_widget.js"; | import NoteContextAwareWidget from "../note_context_aware_widget.js"; | ||||||
|  | import appContext from "../../services/app_context.js"; | ||||||
|  |  | ||||||
| export default class TypeWidget extends NoteContextAwareWidget { | export default class TypeWidget extends NoteContextAwareWidget { | ||||||
|     // for overriding |     // for overriding | ||||||
| @@ -34,7 +35,7 @@ export default class TypeWidget extends NoteContextAwareWidget { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     isActive() { |     isActive() { | ||||||
|         return this.$widget.is(":visible"); |         return this.$widget.is(":visible") && this.noteContext?.ntxId === appContext.tabManager.activeNtxId; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     getContent() {} |     getContent() {} | ||||||
|   | |||||||
| @@ -379,6 +379,10 @@ table.promoted-attributes-in-tooltip td, table.promoted-attributes-in-tooltip th | |||||||
|     font-size: var(--main-font-size) !important; |     font-size: var(--main-font-size) !important; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .tooltip .arrow { | ||||||
|  |     display: none; | ||||||
|  | } | ||||||
|  |  | ||||||
| .tooltip-inner { | .tooltip-inner { | ||||||
|     padding: 15px; |     padding: 15px; | ||||||
|     background-color: var(--tooltip-background-color) !important; |     background-color: var(--tooltip-background-color) !important; | ||||||
|   | |||||||
| @@ -194,7 +194,7 @@ function deleteBranch(req) { | |||||||
|     const taskContext = TaskContext.getInstance(req.query.taskId, 'delete-notes'); |     const taskContext = TaskContext.getInstance(req.query.taskId, 'delete-notes'); | ||||||
|  |  | ||||||
|     const deleteId = utils.randomString(10); |     const deleteId = utils.randomString(10); | ||||||
|     const noteDeleted = noteService.deleteBranch(branch, deleteId, taskContext); |     const noteDeleted = branch.deleteBranch(deleteId, taskContext); | ||||||
|  |  | ||||||
|     if (eraseNotes) { |     if (eraseNotes) { | ||||||
|         noteService.eraseNotesWithDeleteId(deleteId); |         noteService.eraseNotesWithDeleteId(deleteId); | ||||||
|   | |||||||
| @@ -138,7 +138,7 @@ function processContent(images, note, content) { | |||||||
|                 value: imageNote.noteId |                 value: imageNote.noteId | ||||||
|             }).save(); |             }).save(); | ||||||
|  |  | ||||||
|             log.info(`Replacing ${imageId} with ${url} in note ${note.noteId}`); |             log.info(`Replacing '${imageId}' with '${url}' in note '${note.noteId}'`); | ||||||
|  |  | ||||||
|             rewrittenContent = utils.replaceAll(rewrittenContent, imageId, url); |             rewrittenContent = utils.replaceAll(rewrittenContent, imageId, url); | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -73,7 +73,7 @@ function deleteNote(req) { | |||||||
|  |  | ||||||
|     const taskContext = TaskContext.getInstance(taskId, 'delete-notes'); |     const taskContext = TaskContext.getInstance(taskId, 'delete-notes'); | ||||||
|  |  | ||||||
|     noteService.deleteNote(note, deleteId, taskContext); |     note.deleteNote(deleteId, taskContext); | ||||||
|  |  | ||||||
|     if (eraseNotes) { |     if (eraseNotes) { | ||||||
|         noteService.eraseNotesWithDeleteId(deleteId); |         noteService.eraseNotesWithDeleteId(deleteId); | ||||||
| @@ -96,7 +96,7 @@ function sortChildNotes(req) { | |||||||
|     const noteId = req.params.noteId; |     const noteId = req.params.noteId; | ||||||
|     const {sortBy, sortDirection} = req.body; |     const {sortBy, sortDirection} = req.body; | ||||||
|  |  | ||||||
|     log.info(`Sorting ${noteId} children with ${sortBy} ${sortDirection}`); |     log.info(`Sorting '${noteId}' children with ${sortBy} ${sortDirection}`); | ||||||
|  |  | ||||||
|     const reverse = sortDirection === 'desc'; |     const reverse = sortDirection === 'desc'; | ||||||
|  |  | ||||||
| @@ -196,11 +196,11 @@ function changeTitle(req) { | |||||||
|     const note = becca.getNote(noteId); |     const note = becca.getNote(noteId); | ||||||
|  |  | ||||||
|     if (!note) { |     if (!note) { | ||||||
|         return [404, `Note ${noteId} has not been found`]; |         return [404, `Note '${noteId}' has not been found`]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if (!note.isContentAvailable()) { |     if (!note.isContentAvailable()) { | ||||||
|         return [400, `Note ${noteId} is not available for change`]; |         return [400, `Note '${noteId}' is not available for change`]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     const noteTitleChanged = note.title !== title; |     const noteTitleChanged = note.title !== title; | ||||||
| @@ -289,10 +289,10 @@ function uploadModifiedFile(req) { | |||||||
|     const note = becca.getNote(noteId); |     const note = becca.getNote(noteId); | ||||||
|  |  | ||||||
|     if (!note) { |     if (!note) { | ||||||
|         return [404, `Note ${noteId} has not been found`]; |         return [404, `Note '${noteId}' has not been found`]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     log.info(`Updating note ${noteId} with content from ${filePath}`); |     log.info(`Updating note '${noteId}' with content from ${filePath}`); | ||||||
|  |  | ||||||
|     noteRevisionService.createNoteRevision(note); |     noteRevisionService.createNoteRevision(note); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| module.exports = { buildDate:"2022-04-10T14:13:51+02:00", buildRevision: "a04becc4ec653e21c2c80aa9d9ef5b7c9a8e1aa8" }; | module.exports = { buildDate:"2022-05-01T23:18:35+02:00", buildRevision: "b3763eed610fa3f2aabbcbdbd21efca704a5dd08" }; | ||||||
|   | |||||||
| @@ -89,8 +89,7 @@ function ensureNoteIsAbsentFromParent(noteId, parentNoteId) { | |||||||
|             throw new Error(`Cannot remove branch ${branch.branchId} between child ${noteId} and parent ${parentNoteId} because this would delete the note as well.`); |             throw new Error(`Cannot remove branch ${branch.branchId} between child ${noteId} and parent ${parentNoteId} because this would delete the note as well.`); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         const deleteId = utils.randomString(10); |         branch.deleteBranch(); | ||||||
|         noteService.deleteBranch(branch, deleteId, new TaskContext()); |  | ||||||
|  |  | ||||||
|         log.info(`Ensured note ${noteId} is NOT in parent note ${parentNoteId}`); |         log.info(`Ensured note ${noteId} is NOT in parent note ${parentNoteId}`); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -6,6 +6,10 @@ const becca = require('../becca/becca'); | |||||||
| const Attribute = require('../becca/entities/attribute'); | const Attribute = require('../becca/entities/attribute'); | ||||||
|  |  | ||||||
| function runAttachedRelations(note, relationName, originEntity) { | function runAttachedRelations(note, relationName, originEntity) { | ||||||
|  |     if (!note) { | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // same script note can get here with multiple ways, but execute only once |     // same script note can get here with multiple ways, but execute only once | ||||||
|     const notesToRun = new Set( |     const notesToRun = new Set( | ||||||
|         note.getRelations(relationName) |         note.getRelations(relationName) | ||||||
|   | |||||||
| @@ -17,6 +17,7 @@ const becca = require('../becca/becca'); | |||||||
| const Branch = require('../becca/entities/branch'); | const Branch = require('../becca/entities/branch'); | ||||||
| const Note = require('../becca/entities/note'); | const Note = require('../becca/entities/note'); | ||||||
| const Attribute = require('../becca/entities/attribute'); | const Attribute = require('../becca/entities/attribute'); | ||||||
|  | const TaskContext = require("./task_context.js"); | ||||||
|  |  | ||||||
| function getNewNotePosition(parentNoteId) { | function getNewNotePosition(parentNoteId) { | ||||||
|     const note = becca.notes[parentNoteId]; |     const note = becca.notes[parentNoteId]; | ||||||
| @@ -138,7 +139,7 @@ function createNewNote(params) { | |||||||
|         triggerNoteTitleChanged(note); |         triggerNoteTitleChanged(note); | ||||||
|         triggerChildNoteCreated(note, parentNote); |         triggerChildNoteCreated(note, parentNote); | ||||||
|  |  | ||||||
|         log.info(`Created new note ${note.noteId}, branch ${branch.branchId} of type ${note.type}, mime ${note.mime}`); |         log.info(`Created new note '${note.noteId}', branch '${branch.branchId}' of type '${note.type}', mime '${note.mime}'`); | ||||||
|  |  | ||||||
|         return { |         return { | ||||||
|             note, |             note, | ||||||
| @@ -284,10 +285,10 @@ async function downloadImage(noteId, imageUrl) { | |||||||
|  |  | ||||||
|         imageUrlToNoteIdMapping[imageUrl] = note.noteId; |         imageUrlToNoteIdMapping[imageUrl] = note.noteId; | ||||||
|  |  | ||||||
|         log.info(`Download of ${imageUrl} succeeded and was saved as image note ${note.noteId}`); |         log.info(`Download of '${imageUrl}' succeeded and was saved as image note '${note.noteId}'`); | ||||||
|     } |     } | ||||||
|     catch (e) { |     catch (e) { | ||||||
|         log.error(`Download of ${imageUrl} for note ${noteId} failed with error: ${e.message} ${e.stack}`); |         log.error(`Download of '${imageUrl}' for note '${noteId}' failed with error: ${e.message} ${e.stack}`); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -372,7 +373,7 @@ function downloadImages(noteId, content) { | |||||||
|                 const origNote = becca.getNote(noteId); |                 const origNote = becca.getNote(noteId); | ||||||
|  |  | ||||||
|                 if (!origNote) { |                 if (!origNote) { | ||||||
|                     log.error(`Cannot find note ${noteId} to replace image link.`); |                     log.error(`Cannot find note '${noteId}' to replace image link.`); | ||||||
|                     return; |                     return; | ||||||
|                 } |                 } | ||||||
|  |  | ||||||
| @@ -393,7 +394,7 @@ function downloadImages(noteId, content) { | |||||||
|  |  | ||||||
|                     scanForLinks(origNote); |                     scanForLinks(origNote); | ||||||
|  |  | ||||||
|                     console.log(`Fixed the image links for note ${noteId} to the offline saved.`); |                     console.log(`Fixed the image links for note '${noteId}' to the offline saved.`); | ||||||
|                 } |                 } | ||||||
|             }); |             }); | ||||||
|         }, 5000); |         }, 5000); | ||||||
| @@ -490,7 +491,7 @@ function updateNote(noteId, noteUpdates) { | |||||||
|     const note = becca.getNote(noteId); |     const note = becca.getNote(noteId); | ||||||
|  |  | ||||||
|     if (!note.isContentAvailable()) { |     if (!note.isContentAvailable()) { | ||||||
|         throw new Error(`Note ${noteId} is not available for change!`); |         throw new Error(`Note '${noteId}' is not available for change!`); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     saveNoteRevision(note); |     saveNoteRevision(note); | ||||||
| @@ -524,69 +525,6 @@ function updateNote(noteId, noteUpdates) { | |||||||
|     }; |     }; | ||||||
| } | } | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * @param {Branch} branch |  | ||||||
|  * @param {string|null} deleteId |  | ||||||
|  * @param {TaskContext} taskContext |  | ||||||
|  * |  | ||||||
|  * @return {boolean} - true if note has been deleted, false otherwise |  | ||||||
|  */ |  | ||||||
| function deleteBranch(branch, deleteId, taskContext) { |  | ||||||
|     taskContext.increaseProgressCount(); |  | ||||||
|  |  | ||||||
|     if (!branch) { |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     if (branch.branchId === 'root' |  | ||||||
|         || branch.noteId === 'root' |  | ||||||
|         || branch.noteId === cls.getHoistedNoteId()) { |  | ||||||
|  |  | ||||||
|         throw new Error("Can't delete root or hoisted branch/note"); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     branch.markAsDeleted(deleteId); |  | ||||||
|  |  | ||||||
|     const note = branch.getNote(); |  | ||||||
|     const notDeletedBranches = note.getParentBranches(); |  | ||||||
|  |  | ||||||
|     if (notDeletedBranches.length === 0) { |  | ||||||
|         for (const childBranch of note.getChildBranches()) { |  | ||||||
|             deleteBranch(childBranch, deleteId, taskContext); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         // first delete children and then parent - this will show up better in recent changes |  | ||||||
|  |  | ||||||
|         log.info("Deleting note " + note.noteId); |  | ||||||
|  |  | ||||||
|         for (const attribute of note.getOwnedAttributes()) { |  | ||||||
|             attribute.markAsDeleted(deleteId); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         for (const relation of note.getTargetRelations()) { |  | ||||||
|             relation.markAsDeleted(deleteId); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         note.markAsDeleted(deleteId); |  | ||||||
|  |  | ||||||
|         return true; |  | ||||||
|     } |  | ||||||
|     else { |  | ||||||
|         return false; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * @param {Note} note |  | ||||||
|  * @param {string|null} deleteId |  | ||||||
|  * @param {TaskContext} taskContext |  | ||||||
|  */ |  | ||||||
| function deleteNote(note, deleteId, taskContext) { |  | ||||||
|     for (const branch of note.getParentBranches()) { |  | ||||||
|         deleteBranch(branch, deleteId, taskContext); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * @param {string} noteId |  * @param {string} noteId | ||||||
|  * @param {TaskContext} taskContext |  * @param {TaskContext} taskContext | ||||||
| @@ -595,7 +533,7 @@ function undeleteNote(noteId, taskContext) { | |||||||
|     const note = sql.getRow("SELECT * FROM notes WHERE noteId = ?", [noteId]); |     const note = sql.getRow("SELECT * FROM notes WHERE noteId = ?", [noteId]); | ||||||
|  |  | ||||||
|     if (!note.isDeleted) { |     if (!note.isDeleted) { | ||||||
|         log.error(`Note ${noteId} is not deleted and thus cannot be undeleted.`); |         log.error(`Note '${noteId}' is not deleted and thus cannot be undeleted.`); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -938,8 +876,6 @@ module.exports = { | |||||||
|     createNewNote, |     createNewNote, | ||||||
|     createNewNoteWithTarget, |     createNewNoteWithTarget, | ||||||
|     updateNote, |     updateNote, | ||||||
|     deleteBranch, |  | ||||||
|     deleteNote, |  | ||||||
|     undeleteNote, |     undeleteNote, | ||||||
|     protectNoteRecursively, |     protectNoteRecursively, | ||||||
|     scanForLinks, |     scanForLinks, | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ const utils = require("../../utils"); | |||||||
|  |  | ||||||
| // FIXME: create common subclass with NoteContentUnprotectedFulltextExp to avoid duplication | // FIXME: create common subclass with NoteContentUnprotectedFulltextExp to avoid duplication | ||||||
| class NoteContentProtectedFulltextExp extends Expression { | class NoteContentProtectedFulltextExp extends Expression { | ||||||
|     constructor(operator, tokens, raw) { |     constructor(operator, {tokens, raw, flatText}) { | ||||||
|         super(); |         super(); | ||||||
|  |  | ||||||
|         if (operator !== '*=*') { |         if (operator !== '*=*') { | ||||||
| @@ -19,6 +19,7 @@ class NoteContentProtectedFulltextExp extends Expression { | |||||||
|  |  | ||||||
|         this.tokens = tokens; |         this.tokens = tokens; | ||||||
|         this.raw = !!raw; |         this.raw = !!raw; | ||||||
|  |         this.flatText = !!flatText; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     execute(inputNoteSet) { |     execute(inputNoteSet) { | ||||||
| @@ -33,7 +34,7 @@ class NoteContentProtectedFulltextExp extends Expression { | |||||||
|         for (let {noteId, type, mime, content} of sql.iterateRows(` |         for (let {noteId, type, mime, content} of sql.iterateRows(` | ||||||
|                 SELECT noteId, type, mime, content  |                 SELECT noteId, type, mime, content  | ||||||
|                 FROM notes JOIN note_contents USING (noteId)  |                 FROM notes JOIN note_contents USING (noteId)  | ||||||
|                 WHERE type IN ('text', 'code') AND isDeleted = 0 AND isProtected = 1`)) { |                 WHERE type IN ('text', 'code', 'mermaid') AND isDeleted = 0 AND isProtected = 1`)) { | ||||||
|  |  | ||||||
|             if (!inputNoteSet.hasNoteId(noteId) || !(noteId in becca.notes)) { |             if (!inputNoteSet.hasNoteId(noteId) || !(noteId in becca.notes)) { | ||||||
|                 continue; |                 continue; | ||||||
| @@ -49,7 +50,17 @@ class NoteContentProtectedFulltextExp extends Expression { | |||||||
|  |  | ||||||
|             content = this.preprocessContent(content, type, mime); |             content = this.preprocessContent(content, type, mime); | ||||||
|  |  | ||||||
|             if (!this.tokens.find(token => !content.includes(token))) { |             const nonMatchingToken = this.tokens.find(token => | ||||||
|  |                 !content.includes(token) && | ||||||
|  |                 ( | ||||||
|  |                     // in case of default fulltext search we should consider both title, attrs and content | ||||||
|  |                     // so e.g. "hello world" should match when "hello" is in title and "world" in content | ||||||
|  |                     !this.flatText | ||||||
|  |                     || !becca.notes[noteId].getFlatText().includes(token) | ||||||
|  |                 ) | ||||||
|  |             ); | ||||||
|  |  | ||||||
|  |             if (!nonMatchingToken) { | ||||||
|                 resultNoteSet.add(becca.notes[noteId]); |                 resultNoteSet.add(becca.notes[noteId]); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ const utils = require("../../utils"); | |||||||
|  |  | ||||||
| // FIXME: create common subclass with NoteContentProtectedFulltextExp to avoid duplication | // FIXME: create common subclass with NoteContentProtectedFulltextExp to avoid duplication | ||||||
| class NoteContentUnprotectedFulltextExp extends Expression { | class NoteContentUnprotectedFulltextExp extends Expression { | ||||||
|     constructor(operator, tokens, raw) { |     constructor(operator, {tokens, raw, flatText}) { | ||||||
|         super(); |         super(); | ||||||
|  |  | ||||||
|         if (operator !== '*=*') { |         if (operator !== '*=*') { | ||||||
| @@ -17,6 +17,7 @@ class NoteContentUnprotectedFulltextExp extends Expression { | |||||||
|  |  | ||||||
|         this.tokens = tokens; |         this.tokens = tokens; | ||||||
|         this.raw = !!raw; |         this.raw = !!raw; | ||||||
|  |         this.flatText = !!flatText; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     execute(inputNoteSet) { |     execute(inputNoteSet) { | ||||||
| @@ -27,7 +28,7 @@ class NoteContentUnprotectedFulltextExp extends Expression { | |||||||
|         for (let {noteId, type, mime, content} of sql.iterateRows(` |         for (let {noteId, type, mime, content} of sql.iterateRows(` | ||||||
|                 SELECT noteId, type, mime, content  |                 SELECT noteId, type, mime, content  | ||||||
|                 FROM notes JOIN note_contents USING (noteId)  |                 FROM notes JOIN note_contents USING (noteId)  | ||||||
|                 WHERE type IN ('text', 'code') AND isDeleted = 0 AND isProtected = 0`)) { |                 WHERE type IN ('text', 'code', 'mermaid') AND isDeleted = 0 AND isProtected = 0`)) { | ||||||
|  |  | ||||||
|             if (!inputNoteSet.hasNoteId(noteId) || !(noteId in becca.notes)) { |             if (!inputNoteSet.hasNoteId(noteId) || !(noteId in becca.notes)) { | ||||||
|                 continue; |                 continue; | ||||||
| @@ -35,7 +36,17 @@ class NoteContentUnprotectedFulltextExp extends Expression { | |||||||
|  |  | ||||||
|             content = this.preprocessContent(content, type, mime); |             content = this.preprocessContent(content, type, mime); | ||||||
|  |  | ||||||
|             if (!this.tokens.find(token => !content.includes(token))) { |             const nonMatchingToken = this.tokens.find(token => | ||||||
|  |                 !content.includes(token) && | ||||||
|  |                 ( | ||||||
|  |                     // in case of default fulltext search we should consider both title, attrs and content | ||||||
|  |                     // so e.g. "hello world" should match when "hello" is in title and "world" in content | ||||||
|  |                     !this.flatText | ||||||
|  |                     || !becca.notes[noteId].getFlatText().includes(token) | ||||||
|  |                 ) | ||||||
|  |             ); | ||||||
|  |  | ||||||
|  |             if (!nonMatchingToken) { | ||||||
|                 resultNoteSet.add(becca.notes[noteId]); |                 resultNoteSet.add(becca.notes[noteId]); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -32,8 +32,8 @@ function getFulltext(tokens, searchContext) { | |||||||
|     if (!searchContext.fastSearch) { |     if (!searchContext.fastSearch) { | ||||||
|         return new OrExp([ |         return new OrExp([ | ||||||
|             new NoteFlatTextExp(tokens), |             new NoteFlatTextExp(tokens), | ||||||
|             new NoteContentProtectedFulltextExp('*=*', tokens), |             new NoteContentProtectedFulltextExp('*=*', {tokens, flatText: true}), | ||||||
|             new NoteContentUnprotectedFulltextExp('*=*', tokens) |             new NoteContentUnprotectedFulltextExp('*=*', {tokens, flatText: true}) | ||||||
|         ]); |         ]); | ||||||
|     } |     } | ||||||
|     else { |     else { | ||||||
| @@ -141,8 +141,8 @@ function getExpression(tokens, searchContext, level = 0) { | |||||||
|             i++; |             i++; | ||||||
|  |  | ||||||
|             return new OrExp([ |             return new OrExp([ | ||||||
|                 new NoteContentUnprotectedFulltextExp(operator, [tokens[i].token], raw), |                 new NoteContentUnprotectedFulltextExp(operator, {tokens: [tokens[i].token], raw }), | ||||||
|                 new NoteContentProtectedFulltextExp(operator, [tokens[i].token], raw) |                 new NoteContentProtectedFulltextExp(operator, {tokens: [tokens[i].token], raw }) | ||||||
|             ]); |             ]); | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -196,8 +196,8 @@ function getExpression(tokens, searchContext, level = 0) { | |||||||
|  |  | ||||||
|             return new OrExp([ |             return new OrExp([ | ||||||
|                 new PropertyComparisonExp(searchContext, 'title', '*=*', tokens[i].token), |                 new PropertyComparisonExp(searchContext, 'title', '*=*', tokens[i].token), | ||||||
|                 new NoteContentProtectedFulltextExp('*=*', [tokens[i].token]), |                 new NoteContentProtectedFulltextExp('*=*', {tokens: [tokens[i].token]}), | ||||||
|                 new NoteContentUnprotectedFulltextExp('*=*', [tokens[i].token]) |                 new NoteContentUnprotectedFulltextExp('*=*', {tokens: [tokens[i].token]}) | ||||||
|             ]); |             ]); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -62,21 +62,23 @@ function register(router) { | |||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     router.get('/share/:shareId', (req, res, next) => { |     router.get('/share/:shareId', (req, res, next) => { | ||||||
|         const {shareId} = req.params; |  | ||||||
|  |  | ||||||
|         shacaLoader.ensureLoad(); |         shacaLoader.ensureLoad(); | ||||||
|  |  | ||||||
|  |         const {shareId} = req.params; | ||||||
|  |  | ||||||
|         const note = shaca.aliasToNote[shareId] || shaca.notes[shareId]; |         const note = shaca.aliasToNote[shareId] || shaca.notes[shareId]; | ||||||
|  |  | ||||||
|         renderNote(note, res); |         renderNote(note, res); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     router.get('/share/api/notes/:noteId', (req, res, next) => { |     router.get('/share/api/notes/:noteId', (req, res, next) => { | ||||||
|  |         shacaLoader.ensureLoad(); | ||||||
|  |  | ||||||
|         const {noteId} = req.params; |         const {noteId} = req.params; | ||||||
|         const note = shaca.getNote(noteId); |         const note = shaca.getNote(noteId); | ||||||
|  |  | ||||||
|         if (!note) { |         if (!note) { | ||||||
|             return res.status(404).send(`Note ${noteId} not found`); |             return res.status(404).send(`Note '${noteId}' not found`); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         addNoIndexHeader(note, res); |         addNoIndexHeader(note, res); | ||||||
| @@ -85,11 +87,13 @@ function register(router) { | |||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     router.get('/share/api/notes/:noteId/download', (req, res, next) => { |     router.get('/share/api/notes/:noteId/download', (req, res, next) => { | ||||||
|  |         shacaLoader.ensureLoad(); | ||||||
|  |  | ||||||
|         const {noteId} = req.params; |         const {noteId} = req.params; | ||||||
|         const note = shaca.getNote(noteId); |         const note = shaca.getNote(noteId); | ||||||
|  |  | ||||||
|         if (!note) { |         if (!note) { | ||||||
|             return res.status(404).send(`Note ${noteId} not found`); |             return res.status(404).send(`Note '${noteId}' not found`); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         addNoIndexHeader(note, res); |         addNoIndexHeader(note, res); | ||||||
| @@ -107,10 +111,12 @@ function register(router) { | |||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     router.get('/share/api/images/:noteId/:filename', (req, res, next) => { |     router.get('/share/api/images/:noteId/:filename', (req, res, next) => { | ||||||
|  |         shacaLoader.ensureLoad(); | ||||||
|  |  | ||||||
|         const image = shaca.getNote(req.params.noteId); |         const image = shaca.getNote(req.params.noteId); | ||||||
|  |  | ||||||
|         if (!image) { |         if (!image) { | ||||||
|             return res.status(404).send(`Note ${noteId} not found`); |             return res.status(404).send(`Note '${req.params.noteId}' not found`); | ||||||
|         } |         } | ||||||
|         else if (image.type !== 'image') { |         else if (image.type !== 'image') { | ||||||
|             return res.status(400).send("Requested note is not an image"); |             return res.status(400).send("Requested note is not an image"); | ||||||
| @@ -118,18 +124,20 @@ function register(router) { | |||||||
|  |  | ||||||
|         addNoIndexHeader(image, res); |         addNoIndexHeader(image, res); | ||||||
|  |  | ||||||
|         res.set('Content-Type', image.mime); |         res.setHeader('Content-Type', image.mime); | ||||||
|  |  | ||||||
|         res.send(image.getContent()); |         res.send(image.getContent()); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     // used for PDF viewing |     // used for PDF viewing | ||||||
|     router.get('/share/api/notes/:noteId/view', (req, res, next) => { |     router.get('/share/api/notes/:noteId/view', (req, res, next) => { | ||||||
|  |         shacaLoader.ensureLoad(); | ||||||
|  |  | ||||||
|         const {noteId} = req.params; |         const {noteId} = req.params; | ||||||
|         const note = shaca.getNote(noteId); |         const note = shaca.getNote(noteId); | ||||||
|  |  | ||||||
|         if (!note) { |         if (!note) { | ||||||
|             return res.status(404).send(`Note ${noteId} not found`); |             return res.status(404).send(`Note '${noteId}' not found`); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         addNoIndexHeader(note, res); |         addNoIndexHeader(note, res); | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ class Attribute extends AbstractEntity { | |||||||
|             const linkedChildNote = this.note.getChildNotes().find(childNote => childNote.noteId === this.value); |             const linkedChildNote = this.note.getChildNotes().find(childNote => childNote.noteId === this.value); | ||||||
|  |  | ||||||
|             if (linkedChildNote) { |             if (linkedChildNote) { | ||||||
|                 const branch = this.shaca.getBranchFromChildAndParent(this.noteId, linkedChildNote.noteId); |                 const branch = this.shaca.getBranchFromChildAndParent(linkedChildNote.noteId, this.noteId); | ||||||
|  |  | ||||||
|                 branch.isHidden = true; |                 branch.isHidden = true; | ||||||
|             } |             } | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
| <html lang="en"> | <html lang="en"> | ||||||
| <head> | <head> | ||||||
|     <meta charset="utf-8"> |     <meta charset="utf-8"> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|     <% if (note.hasRelation("shareFavicon")) { %> |     <% if (note.hasRelation("shareFavicon")) { %> | ||||||
|     <link rel="shortcut icon" href="api/notes/<%= note.getRelation("shareFavicon").value %>/download"> |     <link rel="shortcut icon" href="api/notes/<%= note.getRelation("shareFavicon").value %>/download"> | ||||||
|     <% } else { %> |     <% } else { %> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user