mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	Compare commits
	
		
			92 Commits
		
	
	
		
			v0.48.0-be
			...
			v0.48.6-do
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | ed5eb5c6db | ||
|  | acb50f44a1 | ||
|  | c946030106 | ||
|  | df0411197b | ||
|  | 600c16551a | ||
|  | 5710c9e997 | ||
|  | 550a9fa711 | ||
|  | 51348cfbad | ||
|  | 7400a6723e | ||
|  | e57dee2f14 | ||
|  | b02a5b872a | ||
|  | 4733de23ba | ||
|  | 57b7f6199e | ||
|  | a9df0c485f | ||
|  | 21dedff9bf | ||
|  | 6f60cf1a86 | ||
|  | 930d29d64a | ||
|  | c345e7031b | ||
|  | fc46398a3c | ||
|  | 7e41226549 | ||
|  | b0c0ed8512 | ||
|  | 5978447185 | ||
|  | ec4d445f97 | ||
|  | e378435fbe | ||
|  | e4dca4750f | ||
|  | 311b98ffcb | ||
|  | 126f41ae5e | ||
|  | 4b1678c416 | ||
|  | da74272f13 | ||
|  | 9ce224d4c5 | ||
|  | ce57a13002 | ||
|  | e42357f1f8 | ||
|  | ab7d121290 | ||
|  | 5209583a73 | ||
|  | 35fc4ba9a4 | ||
|  | 7f9019322b | ||
|  | 8a455e83f0 | ||
|  | 79b8d91025 | ||
|  | bcabe5786f | ||
|  | a7d3dafcf1 | ||
|  | e6af84df39 | ||
|  | 674172f0b8 | ||
|  | 7ec20f9384 | ||
|  | 6135de8507 | ||
|  | 63b0d30e74 | ||
|  | 9e29fba8da | ||
|  | 8910ae92c7 | ||
|  | 3413074235 | ||
|  | 33aa72eb97 | ||
|  | 6e0a65b59c | ||
|  | 56e49cfc19 | ||
|  | af40d73cee | ||
|  | 50b7063811 | ||
|  | ee1b377bc2 | ||
|  | 51dfe8bb14 | ||
|  | e426ee3e4f | ||
|  | a434aa113d | ||
|  | 3b551e3e4d | ||
|  | 3d98644bf6 | ||
|  | a22e4d60b6 | ||
|  | 069fbee3a6 | ||
|  | 8b21867c5c | ||
|  | 2cc4367b37 | ||
|  | 241d1b1035 | ||
|  | 449081807e | ||
|  | dc0d6d24bd | ||
|  | 4111a2f0e8 | ||
|  | 8ef4b2bf50 | ||
|  | 53875d26bc | ||
|  | f505f9d65a | ||
|  | 6434889cd6 | ||
|  | 21d2ca3c54 | ||
|  | 64a3a8b561 | ||
|  | 6738f2cd24 | ||
|  | 1cdd644b8f | ||
|  | f5dc05e79a | ||
|  | e2c37a6f8c | ||
|  | cfea2440fb | ||
|  | 23e34e8c02 | ||
|  | 8bd7b657f8 | ||
|  | 899d9e65fd | ||
|  | ec732c0a98 | ||
|  | 66797f34c4 | ||
|  | 1ad25b063d | ||
|  | e09b2902fa | ||
|  | f6776df645 | ||
|  | f0c672445d | ||
|  | a033ddfcb7 | ||
|  | d02d846024 | ||
|  | a8b6538c4e | ||
|  | 4eb4a44331 | ||
|  | c1e1f3df24 | 
							
								
								
									
										63
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| name: Bug Report | ||||
| description: Report a bug | ||||
| title: "(Bug report) " | ||||
| labels: "Type: Bug" | ||||
| body: | ||||
| - type: checkboxes | ||||
|   attributes: | ||||
|     label: Preflight Checklist | ||||
|     description: Please ensure you've completed all of the following. | ||||
|     options: | ||||
|       - label: I have searched the [issue tracker](https://www.github.com/zadam/trilium/issues) for a bug report that matches the one I want to file, without success. | ||||
|         required: true | ||||
| - type: input | ||||
|   attributes: | ||||
|     label: Trilium Version | ||||
|     description: What version of Trilium are you using? | ||||
|     placeholder: 0.48.0-beta | ||||
|   validations: | ||||
|     required: true | ||||
| - type: dropdown | ||||
|   attributes: | ||||
|     label: What operating system are you using? | ||||
|     options: | ||||
|       - Windows | ||||
|       - macOS | ||||
|       - Ubuntu | ||||
|       - Other Linux | ||||
|       - Other (specify below) | ||||
|   validations: | ||||
|     required: true | ||||
| - type: dropdown | ||||
|   attributes: | ||||
|     label: What is your setup?  | ||||
|     description: https://github.com/zadam/trilium/wiki#choose-the-setup | ||||
|     options: | ||||
|       - Local (no sync) | ||||
|       - Local + server sync | ||||
|       - Server access only | ||||
|   validations: | ||||
|     required: true | ||||
| - type: input | ||||
|   attributes: | ||||
|     label: Operating System Version | ||||
|     description: What operating system version are you using? On Windows, click Start button > Settings > System > About. On macOS, click the Apple Menu > About This Mac. On Linux, use lsb_release or uname -a. | ||||
|     placeholder: "e.g. Windows 10 version 1909, macOS Catalina 10.15.7, or Ubuntu 20.04" | ||||
|   validations: | ||||
|     required: true | ||||
| - type: textarea | ||||
|   attributes: | ||||
|     label: Expected Behavior | ||||
|     description: A clear and concise description of what you expected to happen. | ||||
|   validations: | ||||
|     required: true | ||||
| - type: textarea | ||||
|   attributes: | ||||
|     label: Actual Behavior | ||||
|     description: A clear description of what actually happens. | ||||
|   validations: | ||||
|     required: true | ||||
| - type: textarea | ||||
|   attributes: | ||||
|     label: Additional Information | ||||
|     description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here. | ||||
							
								
								
									
										22
									
								
								.github/ISSUE_TEMPLATE/feature_request.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.github/ISSUE_TEMPLATE/feature_request.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| name: Feature Request | ||||
| description: Report a bug | ||||
| title: "(Feature request) " | ||||
| labels: "Type: Enhancement" | ||||
| body: | ||||
| - type: checkboxes | ||||
|   attributes: | ||||
|     label: Preflight Checklist | ||||
|     description: Please ensure you've completed all of the following. | ||||
|     options: | ||||
|       - label: I have searched the [issue tracker](https://www.github.com/zadam/trilium/issues) for a feature request that matches the one I want to file, without success. | ||||
|         required: true | ||||
| - type: textarea | ||||
|   attributes: | ||||
|     label: Describe feature | ||||
|     description: A clear and concise description of what you want to be added.. | ||||
|   validations: | ||||
|     required: true | ||||
| - type: textarea | ||||
|   attributes: | ||||
|     label: Additional Information | ||||
|     description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here. | ||||
							
								
								
									
										53
									
								
								.github/workflows/docker.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								.github/workflows/docker.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| name: Publish Docker image | ||||
| on: | ||||
|   push: | ||||
|     tags: [v*] | ||||
| jobs: | ||||
|   push_to_registries: | ||||
|     name: Push Docker image to multiple registries | ||||
|     runs-on: ubuntu-latest | ||||
|     permissions: | ||||
|       packages: write | ||||
|       contents: read | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v2 | ||||
|       - name: Set up QEMU | ||||
|         uses: docker/setup-qemu-action@v1 | ||||
|       - name: Docker meta | ||||
|         id: meta | ||||
|         uses: docker/metadata-action@v3 | ||||
|         with: | ||||
|           images: | | ||||
|             zadam/trilium | ||||
|             ghcr.io/zadam/trilium | ||||
|           tags: | | ||||
|             type=semver,pattern={{version}} | ||||
|             type=semver,pattern={{major}}.{{minor}}-latest | ||||
|             type=match,pattern=(\d+.\d+).\d+\-beta,enable=${{ endsWith(github.ref, 'beta') }},group=1,suffix=-latest | ||||
|       - name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v1 | ||||
|         with: | ||||
|           install: true | ||||
|       - name: Log in to Docker Hub | ||||
|         uses: docker/login-action@v1 | ||||
|         with: | ||||
|           username: ${{ secrets.DOCKER_USERNAME }} | ||||
|           password: ${{ secrets.DOCKER_PASSWORD }} | ||||
|       - name: Log in to GitHub Docker Registry | ||||
|         uses: docker/login-action@v1 | ||||
|         with: | ||||
|           registry: ghcr.io | ||||
|           username: ${{ github.repository_owner }} | ||||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
|       - name: Create server-package.json | ||||
|         run: cat package.json | grep -v electron > server-package.json | ||||
|       - name: Build and Push | ||||
|         uses: docker/build-push-action@v2.7.0 | ||||
|         with: | ||||
|           context: . | ||||
|           platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 | ||||
|           push: true | ||||
|           cache-from: type=registry,ref=zadam/trilium:buildcache | ||||
|           cache-to: type=registry,ref=zadam/trilium:buildcache,mode=max | ||||
|           tags: ${{ steps.meta.outputs.tags }} | ||||
| @@ -2,10 +2,10 @@ image: | ||||
|   file: .gitpod.dockerfile | ||||
|  | ||||
| tasks: | ||||
|     - before: nvm install 10 && nvm use 10 | ||||
|     - before: nvm install 14.18.1 && nvm use 14.18.1 | ||||
|       init: npm install | ||||
|       command: npm run start-server | ||||
|  | ||||
| ports: | ||||
|     - port: 8080 | ||||
|       onOpen: open-preview | ||||
|       onOpen: open-preview | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| FROM node:14.17.6-alpine | ||||
| FROM node:14.18.1-alpine | ||||
|  | ||||
| # Create app directory | ||||
| WORKDIR /usr/src/app | ||||
| @@ -16,7 +16,7 @@ RUN set -x \ | ||||
|         make \ | ||||
|         nasm \ | ||||
|         libpng-dev \ | ||||
|         python \ | ||||
|         python3 \ | ||||
|     && npm install --production \ | ||||
|     && apk del .build-dependencies | ||||
|  | ||||
|   | ||||
| @@ -4,4 +4,19 @@ echo "Packaging debian x64 distribution..." | ||||
|  | ||||
| VERSION=`jq -r ".version" package.json` | ||||
|  | ||||
| ./node_modules/.bin/electron-installer-debian --config bin/deb-options.json --options.version=${VERSION} --arch amd64 | ||||
| ./node_modules/.bin/electron-installer-debian --config bin/deb-options.json --options.version=${VERSION} --arch amd64 | ||||
|  | ||||
|  | ||||
| # hacky stop-gag measure to produce debian compatible XZ compressed debs until this is fixed: https://github.com/electron-userland/electron-installer-debian/issues/272 | ||||
| cd dist | ||||
| ar x trilium_${VERSION}_amd64.deb | ||||
| rm trilium_${VERSION}_amd64.deb | ||||
| # recompress | ||||
| < control.tar.zst zstd -d | xz > control.tar.xz | ||||
| < data.tar.zst zstd -d | xz > data.tar.xz | ||||
| # create deb archive (I really do not know, what argument "sdsd" is for but something is required for ar to create the archive as desired) | ||||
| ar -m -c -a sdsd trilium_${VERSION}_amd64.deb debian-binary control.tar.xz data.tar.xz | ||||
|  | ||||
| rm control* data* debian-binary | ||||
|  | ||||
| echo "Converted to XZ deb" | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| PKG_DIR=dist/trilium-linux-x64-server | ||||
| NODE_VERSION=14.17.6 | ||||
| NODE_VERSION=14.18.1 | ||||
|  | ||||
| if [ "$1" != "DONTCOPY" ] | ||||
| then | ||||
|   | ||||
| @@ -5,7 +5,7 @@ if [[ $# -eq 0 ]] ; then | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| n exec 14.17.6 npm run webpack | ||||
| n exec 14.18.1 npm run webpack | ||||
|  | ||||
| DIR=$1 | ||||
|  | ||||
| @@ -27,7 +27,7 @@ cp -r electron.js $DIR/ | ||||
| cp webpack-* $DIR/ | ||||
|  | ||||
| # run in subshell (so we return to original dir) | ||||
| (cd $DIR && n exec 14.17.6 npm install --only=prod) | ||||
| (cd $DIR && n exec 14.18.1 npm install --only=prod) | ||||
|  | ||||
| # cleanup of useless files in dependencies | ||||
| rm -r $DIR/node_modules/image-q/demo | ||||
|   | ||||
| @@ -69,13 +69,3 @@ gh release create "$TAG" \ | ||||
|     "dist/$WINDOWS_X64_BUILD" \ | ||||
|     "dist/$MAC_X64_BUILD" \ | ||||
|     "dist/$SERVER_BUILD" | ||||
|  | ||||
| echo "Building docker image" | ||||
|  | ||||
| bin/build-docker.sh $VERSION | ||||
|  | ||||
| echo "Pushing docker image to dockerhub" | ||||
|  | ||||
| bin/push-docker-image.sh $VERSION | ||||
|  | ||||
| echo "Release finished!" | ||||
|   | ||||
| @@ -139,6 +139,214 @@ | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="apiTokenId"><span class="type-signature"></span>apiTokenId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_api_token.js.html">becca/entities/api_token.js</a>, <a href="becca_entities_api_token.js.html#line18">line 18</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="token"><span class="type-signature"></span>token<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_api_token.js.html">becca/entities/api_token.js</a>, <a href="becca_entities_api_token.js.html#line20">line 20</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateCreated"><span class="type-signature"></span>utcDateCreated<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_api_token.js.html">becca/entities/api_token.js</a>, <a href="becca_entities_api_token.js.html#line22">line 22</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
| @@ -155,7 +363,7 @@ | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -30,7 +30,8 @@ | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>Attribute<span class="signature">()</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">Attribute is key value pair owned by a note.</div> | ||||
|             <div class="class-description">Attribute is an abstract concept which has two real uses - label (key - value pair) | ||||
| and relation (representing named relationship between source and target note)</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
| @@ -64,268 +65,6 @@ | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5 class="subsection-title">Properties:</h5> | ||||
|  | ||||
|      | ||||
|  | ||||
| <table class="props"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>attributeId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>noteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>type</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>name</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>value</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>position</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isInheritable</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isDeleted</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>deleteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
| | | ||||
|  | ||||
| <span class="param-type">null</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">ID identifying delete transaction</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>utcDateModified</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|     </tbody> | ||||
| </table> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
| @@ -355,7 +94,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line25">line 25</a> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line13">line 13</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -389,16 +128,55 @@ | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Extends</h3> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="attributeId"><span class="type-signature"></span>attributeId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li><a href="Entity.html">Entity</a></li> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -411,6 +189,504 @@ | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="isInheritable"><span class="type-signature"></span>isInheritable<span class="type-signature"> :boolean</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="name"><span class="type-signature"></span>name<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="position"><span class="type-signature"></span>position<span class="type-signature"> :int</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="value"><span class="type-signature"></span>value<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -470,7 +746,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line43">line 43</a> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line112">line 112</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -575,7 +851,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="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#line119">line 119</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -680,7 +956,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line65">line 65</a> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line134">line 134</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -744,13 +1020,13 @@ | ||||
| </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="ApiToken.html">ApiToken</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="Entity.html">Entity</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="ApiToken.html">ApiToken</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="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.6</a> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
|   | ||||
| @@ -5913,7 +5913,7 @@ exists, then we'll use that transaction. | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -30,8 +30,8 @@ | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>Branch<span class="signature">()</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">Branch represents note's placement in the tree - it's essentially pair of noteId and parentNoteId. | ||||
| Each note can have multiple (at least one) branches, meaning it can be placed into multiple places in the tree.</div> | ||||
|             <div class="class-description">Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple | ||||
| parents.</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
| @@ -65,268 +65,6 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5 class="subsection-title">Properties:</h5> | ||||
|  | ||||
|      | ||||
|  | ||||
| <table class="props"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>branchId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">primary key, immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>noteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>parentNoteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>notePosition</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>prefix</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isExpanded</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isDeleted</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>deleteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
| | | ||||
|  | ||||
| <span class="param-type">null</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">ID identifying delete transaction</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>utcDateModified</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>utcDateCreated</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|     </tbody> | ||||
| </table> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
| @@ -356,7 +94,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line24">line 24</a> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line12">line 12</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -390,16 +128,45 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Extends</h3> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="branchId"><span class="type-signature"></span>branchId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li><a href="Entity.html">Entity</a></li> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -415,23 +182,37 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Methods</h3> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <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#line43">line 43</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="getNote"><span class="type-signature"></span>getNote<span class="signature">()</span><span class="type-signature"> → {<a href="Note.html">Note</a>|null}</span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <h4 class="name" id="childNote"><span class="type-signature"></span>childNote<span class="type-signature"></span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -471,7 +252,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line31">line 31</a> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line85">line 85</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -487,58 +268,215 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <h5>Returns:</h5> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="isExpanded"><span class="type-signature"></span>isExpanded<span class="type-signature"> :boolean</span></h4> | ||||
|  | ||||
|  | ||||
| <dl> | ||||
|     <dt> | ||||
|         Type | ||||
|     </dt> | ||||
|     <dd> | ||||
|          | ||||
| <span class="param-type"><a href="Note.html">Note</a></span> | ||||
| | | ||||
|  | ||||
| <span class="param-type">null</span> | ||||
|  | ||||
|  | ||||
|     </dd> | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <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#line53">line 53</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="getParentNote"><span class="type-signature"></span>getParentNote<span class="signature">()</span><span class="type-signature"> → {<a href="Note.html">Note</a>|null}</span></h4> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <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#line45">line 45</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="notePosition"><span class="type-signature"></span>notePosition<span class="type-signature"> :int</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <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#line51">line 51</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="parentNote"><span class="type-signature"></span>parentNote<span class="type-signature"></span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -576,7 +514,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line36">line 36</a> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line99">line 99</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -592,42 +530,213 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <h5>Returns:</h5> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="parentNoteId"><span class="type-signature"></span>parentNoteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
| <dl> | ||||
|     <dt> | ||||
|         Type | ||||
|     </dt> | ||||
|     <dd> | ||||
|          | ||||
| <span class="param-type"><a href="Note.html">Note</a></span> | ||||
| | | ||||
|  | ||||
| <span class="param-type">null</span> | ||||
|  | ||||
|  | ||||
|     </dd> | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <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#line47">line 47</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="prefix"><span class="type-signature"></span>prefix<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <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#line49">line 49</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <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#line55">line 55</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -643,13 +752,13 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
| </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="ApiToken.html">ApiToken</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="Entity.html">Entity</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="ApiToken.html">ApiToken</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="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.6</a> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
|   | ||||
| @@ -1,227 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Class: Entity</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: Entity</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <section> | ||||
|  | ||||
| <header> | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>Entity<span class="signature">(row<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|      | ||||
| </header> | ||||
|  | ||||
| <article> | ||||
|     <div class="container-overview"> | ||||
|      | ||||
|          | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="Entity"><span class="type-signature"></span>new Entity<span class="signature">(row<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <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>row</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">object</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|                 <td class="attributes"> | ||||
|                  | ||||
|                     <optional><br> | ||||
|                  | ||||
|  | ||||
|                  | ||||
|  | ||||
|                  | ||||
|                 </td> | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">database row representing given entity</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|     </tbody> | ||||
| </table> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_entity.js.html">entities/entity.js</a>, <a href="entities_entity.js.html#line10">line 10</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </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="ApiToken.html">ApiToken</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="Entity.html">Entity</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.6</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,389 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Class: Image</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: Image</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <section> | ||||
|  | ||||
| <header> | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>Image<span class="signature">(imageId, format, checksum, name, data, isDeleted, dateModified, dateCreated)</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">This class represents image data.</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
|  | ||||
| <article> | ||||
|     <div class="container-overview"> | ||||
|      | ||||
|          | ||||
|  | ||||
|      | ||||
|     <h2>Constructor</h2> | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="Image"><span class="type-signature"></span>new Image<span class="signature">(imageId, format, checksum, name, data, isDeleted, dateModified, dateCreated)</span><span class="type-signature"></span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Parameters:</h5> | ||||
|      | ||||
|  | ||||
| <table class="params"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>imageId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>format</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>checksum</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>name</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>data</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">blob</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isDeleted</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>dateModified</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>dateCreated</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </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="entities_image.js.html">entities/image.js</a>, <a href="entities_image.js.html#line20">line 20</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Extends</h3> | ||||
|  | ||||
|          | ||||
|  | ||||
|  | ||||
|     <ul> | ||||
|         <li><a href="Entity.html">Entity</a></li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </article> | ||||
|  | ||||
| </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</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="Entity.html">Entity</a></li><li><a href="Image.html">Image</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteImage.html">NoteImage</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/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Oct 07 2018 16:26:59 GMT+0200 (CEST) | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,367 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Class: Link</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: Link</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <section> | ||||
|  | ||||
| <header> | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>Link<span class="signature">(linkId, noteId, targetNoteId, type, isDeleted, utcDateModified, utcDateCreated)</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">This class represents link from one note to another in the form of hyperlink or image reference. Note that | ||||
| this is different concept than attribute/relation.</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
|  | ||||
| <article> | ||||
|     <div class="container-overview"> | ||||
|      | ||||
|          | ||||
|  | ||||
|      | ||||
|     <h2>Constructor</h2> | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="Link"><span class="type-signature"></span>new Link<span class="signature">(linkId, noteId, targetNoteId, type, isDeleted, utcDateModified, utcDateCreated)</span><span class="type-signature"></span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Parameters:</h5> | ||||
|      | ||||
|  | ||||
| <table class="params"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>linkId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>noteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>targetNoteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>type</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isDeleted</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>utcDateModified</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>utcDateCreated</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </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="entities_link.js.html">entities/link.js</a>, <a href="entities_link.js.html#line21">line 21</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Extends</h3> | ||||
|  | ||||
|          | ||||
|  | ||||
|  | ||||
|     <ul> | ||||
|         <li><a href="Entity.html">Entity</a></li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </article> | ||||
|  | ||||
| </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</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="Entity.html">Entity</a></li><li><a href="Link.html">Link</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/jsdoc3/jsdoc">JSDoc 3.5.5</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,343 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Class: NoteImage</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: NoteImage</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <section> | ||||
|  | ||||
| <header> | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>NoteImage<span class="signature">(noteImageId, noteId, imageId, isDeleted, dateModified, dateCreated)</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">This class represents image's placement in the note(s). One image may be placed into several notes.</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
|  | ||||
| <article> | ||||
|     <div class="container-overview"> | ||||
|      | ||||
|          | ||||
|  | ||||
|      | ||||
|     <h2>Constructor</h2> | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="NoteImage"><span class="type-signature"></span>new NoteImage<span class="signature">(noteImageId, noteId, imageId, isDeleted, dateModified, dateCreated)</span><span class="type-signature"></span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Parameters:</h5> | ||||
|      | ||||
|  | ||||
| <table class="params"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>noteImageId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>noteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>imageId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isDeleted</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>dateModified</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>dateCreated</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </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="entities_note_image.js.html">entities/note_image.js</a>, <a href="entities_note_image.js.html#line19">line 19</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Extends</h3> | ||||
|  | ||||
|          | ||||
|  | ||||
|  | ||||
|     <ul> | ||||
|         <li><a href="Entity.html">Entity</a></li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </article> | ||||
|  | ||||
| </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</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="Entity.html">Entity</a></li><li><a href="Image.html">Image</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteImage.html">NoteImage</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/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Oct 07 2018 16:26:59 GMT+0200 (CEST) | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -30,7 +30,8 @@ | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>NoteRevision<span class="signature">()</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">NoteRevision represents snapshot of note's title and content at some point in the past. It's used for seamless note versioning.</div> | ||||
|             <div class="class-description">NoteRevision represents snapshot of note's title and content at some point in the past. | ||||
| It's used for seamless note versioning.</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
| @@ -93,7 +94,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line14">line 14</a> | ||||
|         <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -143,13 +144,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="contentLength"><span class="type-signature"></span>contentLength<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="contentLength"><span class="type-signature"></span>contentLength<span class="type-signature"> :number</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">number</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -183,7 +194,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line45">line 45</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> | ||||
|      | ||||
|  | ||||
| @@ -201,13 +212,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="dateCreated"><span class="type-signature"></span>dateCreated<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="dateCreated"><span class="type-signature"></span>dateCreated<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -241,7 +262,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line37">line 37</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> | ||||
|      | ||||
|  | ||||
| @@ -259,13 +280,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="dateLastEdited"><span class="type-signature"></span>dateLastEdited<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="dateLastEdited"><span class="type-signature"></span>dateLastEdited<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -299,7 +330,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line35">line 35</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> | ||||
|      | ||||
|  | ||||
| @@ -317,13 +348,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="isProtected"><span class="type-signature"></span>isProtected<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="isProtected"><span class="type-signature"></span>isProtected<span class="type-signature"> :boolean</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -357,7 +398,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line31">line 31</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> | ||||
|      | ||||
|  | ||||
| @@ -375,13 +416,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="mime"><span class="type-signature"></span>mime<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="mime"><span class="type-signature"></span>mime<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -415,7 +466,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line29">line 29</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> | ||||
|      | ||||
|  | ||||
| @@ -433,13 +484,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -473,7 +534,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line25">line 25</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> | ||||
|      | ||||
|  | ||||
| @@ -491,13 +552,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteRevisionId"><span class="type-signature"></span>noteRevisionId<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="noteRevisionId"><span class="type-signature"></span>noteRevisionId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -531,7 +602,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line23">line 23</a> | ||||
|         <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -549,13 +620,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="title"><span class="type-signature"></span>title<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="title"><span class="type-signature"></span>title<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -589,7 +670,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line33">line 33</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> | ||||
|      | ||||
|  | ||||
| @@ -607,13 +688,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -647,7 +738,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line27">line 27</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> | ||||
|      | ||||
|  | ||||
| @@ -665,13 +756,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateCreated"><span class="type-signature"></span>utcDateCreated<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="utcDateCreated"><span class="type-signature"></span>utcDateCreated<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -705,7 +806,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line41">line 41</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> | ||||
|      | ||||
|  | ||||
| @@ -723,13 +824,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateLastEdited"><span class="type-signature"></span>utcDateLastEdited<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="utcDateLastEdited"><span class="type-signature"></span>utcDateLastEdited<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -763,7 +874,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line39">line 39</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> | ||||
|      | ||||
|  | ||||
| @@ -781,13 +892,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -821,7 +942,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line43">line 43</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> | ||||
|      | ||||
|  | ||||
| @@ -897,7 +1018,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line76">line 76</a> | ||||
|         <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -999,7 +1120,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line140">line 140</a> | ||||
|         <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1101,7 +1222,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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#line62">line 62</a> | ||||
|         <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1169,7 +1290,7 @@ | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -139,6 +139,282 @@ | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="isSynced"><span class="type-signature"></span>isSynced<span class="type-signature"> :boolean</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="name"><span class="type-signature"></span>name<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="value"><span class="type-signature"></span>value<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
| @@ -155,7 +431,7 @@ | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -139,6 +139,214 @@ | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="notePath"><span class="type-signature"></span>notePath<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateCreated"><span class="type-signature"></span>utcDateCreated<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <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> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
| @@ -155,7 +363,7 @@ | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -1,472 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: backend_script_api.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: backend_script_api.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>const log = require('./log'); | ||||
| const noteService = require('./notes'); | ||||
| const sql = require('./sql'); | ||||
| const utils = require('./utils'); | ||||
| const attributeService = require('./attributes'); | ||||
| const dateNoteService = require('./date_notes'); | ||||
| const treeService = require('./tree'); | ||||
| const config = require('./config'); | ||||
| const axios = require('axios'); | ||||
| const dayjs = require('dayjs'); | ||||
| const xml2js = require('xml2js'); | ||||
| const cloningService = require('./cloning'); | ||||
| const appInfo = require('./app_info'); | ||||
| const searchService = require('./search/services/search'); | ||||
| const SearchContext = require("./search/search_context"); | ||||
| const becca = require("../becca/becca"); | ||||
|  | ||||
| /** | ||||
|  * This is the main backend API interface for scripts. It's published in the local "api" object. | ||||
|  * | ||||
|  * @constructor | ||||
|  * @hideconstructor | ||||
|  */ | ||||
| function BackendScriptApi(currentNote, apiParams) { | ||||
|     /** @property {Note} note where script started executing */ | ||||
|     this.startNote = apiParams.startNote; | ||||
|     /** @property {Note} note where script is currently executing. Don't mix this up with concept of active note */ | ||||
|     this.currentNote = currentNote; | ||||
|     /** @property {Entity} entity whose event triggered this executions */ | ||||
|     this.originEntity = apiParams.originEntity; | ||||
|  | ||||
|     for (const key in apiParams) { | ||||
|         this[key] = apiParams[key]; | ||||
|     } | ||||
|  | ||||
|     /** @property {axios} Axios library for HTTP requests. See https://axios-http.com/ for documentation */ | ||||
|     this.axios = axios; | ||||
|     /** @property {dayjs} day.js library for date manipulation. See https://day.js.org/ for documentation */ | ||||
|     this.dayjs = dayjs; | ||||
|     /** @property {axios} xml2js library for XML parsing. See https://github.com/Leonidas-from-XIV/node-xml2js for documentation */ | ||||
|     this.xml2js = xml2js; | ||||
|  | ||||
|     // DEPRECATED - use direct api.unescapeHtml | ||||
|     this.utils = { | ||||
|         unescapeHtml: utils.unescapeHtml | ||||
|     }; | ||||
|  | ||||
|     /** | ||||
|      * Instance name identifies particular Trilium instance. It can be useful for scripts | ||||
|      * if some action needs to happen on only one specific instance. | ||||
|      * | ||||
|      * @returns {string|null} | ||||
|      */ | ||||
|     this.getInstanceName = () => config.General ? config.General.instanceName : null; | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * @param {string} noteId | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     this.getNote = becca.getNote; | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * @param {string} branchId | ||||
|      * @returns {Branch|null} | ||||
|      */ | ||||
|     this.getBranch = becca.getBranch; | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * @param {string} attributeId | ||||
|      * @returns {Attribute|null} | ||||
|      */ | ||||
|     this.getAttribute = becca.getAttribute; | ||||
|  | ||||
|     /** | ||||
|      * This is a powerful search method - you can search by attributes and their values, e.g.: | ||||
|      * "#dateModified =* MONTH AND #log". See full documentation for all options at: https://github.com/zadam/trilium/wiki/Search | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} query | ||||
|      * @param {Object} [searchParams] | ||||
|      * @returns {Note[]} | ||||
|      */ | ||||
|     this.searchForNotes = (query, searchParams = {}) => { | ||||
|         if (searchParams.includeArchivedNotes === undefined) { | ||||
|             searchParams.includeArchivedNotes = true; | ||||
|         } | ||||
|  | ||||
|         if (searchParams.ignoreHoistedNote === undefined) { | ||||
|             searchParams.ignoreHoistedNote = true; | ||||
|         } | ||||
|  | ||||
|         const noteIds = searchService.findResultsWithQuery(query, new SearchContext(searchParams)) | ||||
|             .map(sr => sr.noteId); | ||||
|  | ||||
|         return becca.getNotes(noteIds); | ||||
|     }; | ||||
|  | ||||
|     /** | ||||
|      * This is a powerful search method - you can search by attributes and their values, e.g.: | ||||
|      * "#dateModified =* MONTH AND #log". See full documentation for all options at: https://github.com/zadam/trilium/wiki/Search | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} query | ||||
|      * @param {Object} [searchParams] | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     this.searchForNote = (query, searchParams = {}) => { | ||||
|         const notes = this.searchForNotes(query, searchParams); | ||||
|  | ||||
|         return notes.length > 0 ? notes[0] : null; | ||||
|     }; | ||||
|  | ||||
|     /** | ||||
|      * Retrieves notes with given label name & value | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} name - attribute name | ||||
|      * @param {string} [value] - attribute value | ||||
|      * @returns {Note[]} | ||||
|      */ | ||||
|     this.getNotesWithLabel = attributeService.getNotesWithLabel; | ||||
|  | ||||
|     /** | ||||
|      * Retrieves first note with given label name & value | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} name - attribute name | ||||
|      * @param {string} [value] - attribute value | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     this.getNoteWithLabel = attributeService.getNoteWithLabel; | ||||
|  | ||||
|     /** | ||||
|      * If there's no branch between note and parent note, create one. Otherwise do nothing. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} noteId | ||||
|      * @param {string} parentNoteId | ||||
|      * @param {string} prefix - if branch will be create between note and parent note, set this prefix | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     this.ensureNoteIsPresentInParent = cloningService.ensureNoteIsPresentInParent; | ||||
|  | ||||
|     /** | ||||
|      * If there's a branch between note and parent note, remove it. Otherwise do nothing. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} noteId | ||||
|      * @param {string} parentNoteId | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     this.ensureNoteIsAbsentFromParent = cloningService.ensureNoteIsAbsentFromParent; | ||||
|  | ||||
|     /** | ||||
|      * Based on the value, either create or remove branch between note and parent note. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {boolean} present - true if we want the branch to exist, false if we want it gone | ||||
|      * @param {string} noteId | ||||
|      * @param {string} parentNoteId | ||||
|      * @param {string} prefix - if branch will be create between note and parent note, set this prefix | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     this.toggleNoteInParent = cloningService.toggleNoteInParent; | ||||
|  | ||||
|     /** | ||||
|      * @typedef {object} CreateNoteAttribute | ||||
|      * @property {string} type - attribute type - label, relation etc. | ||||
|      * @property {string} name - attribute name | ||||
|      * @property {string} [value] - attribute value | ||||
|      */ | ||||
|  | ||||
|     /** | ||||
|      * Create text note. See also createNewNote() for more options. | ||||
|      * | ||||
|      * @param {string} parentNoteId | ||||
|      * @param {string} title | ||||
|      * @param {string} content | ||||
|      * @return {{note: Note, branch: Branch}} - object having "note" and "branch" keys representing respective objects | ||||
|      */ | ||||
|     this.createTextNote = (parentNoteId, title, content = '') => noteService.createNewNote({ | ||||
|         parentNoteId, | ||||
|         title, | ||||
|         content, | ||||
|         type: 'text' | ||||
|     }); | ||||
|  | ||||
|     /** | ||||
|      * Create data note - data in this context means object serializable to JSON. Created note will be of type 'code' and | ||||
|      * JSON MIME type. See also createNewNote() for more options. | ||||
|      * | ||||
|      * @param {string} parentNoteId | ||||
|      * @param {string} title | ||||
|      * @param {object} content | ||||
|      * @return {{note: Note, branch: Branch}} object having "note" and "branch" keys representing respective objects | ||||
|      */ | ||||
|     this.createDataNote = (parentNoteId, title, content = {}) => noteService.createNewNote({ | ||||
|         parentNoteId, | ||||
|         title, | ||||
|         content: JSON.stringify(content, null, '\t'), | ||||
|         type: 'code', | ||||
|         mime: 'application/json' | ||||
|     }); | ||||
|  | ||||
|     /** | ||||
|      * @typedef {object} CreateNewNoteParams | ||||
|      * @property {string} parentNoteId - MANDATORY | ||||
|      * @property {string} title - MANDATORY | ||||
|      * @property {string|buffer} content - MANDATORY | ||||
|      * @property {string} type - text, code, file, image, search, book, relation-map - MANDATORY | ||||
|      * @property {string} mime - value is derived from default mimes for type | ||||
|      * @property {boolean} isProtected - default is false | ||||
|      * @property {boolean} isExpanded - default is false | ||||
|      * @property {string} prefix - default is empty string | ||||
|      * @property {int} notePosition - default is last existing notePosition in a parent + 10 | ||||
|      */ | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * | ||||
|      * @param {CreateNewNoteParams} [params] | ||||
|      * @returns {{note: Note, branch: Branch}} object contains newly created entities note and branch | ||||
|      */ | ||||
|     this.createNewNote = noteService.createNewNote; | ||||
|  | ||||
|     /** | ||||
|      * @typedef {object} CreateNoteAttribute | ||||
|      * @property {string} type - attribute type - label, relation etc. | ||||
|      * @property {string} name - attribute name | ||||
|      * @property {string} [value] - attribute value | ||||
|      */ | ||||
|  | ||||
|     /** | ||||
|      * @typedef {object} CreateNoteExtraOptions | ||||
|      * @property {boolean} [json=false] - should the note be JSON | ||||
|      * @property {boolean} [isProtected=false] - should the note be protected | ||||
|      * @property {string} [type='text'] - note type | ||||
|      * @property {string} [mime='text/html'] - MIME type of the note | ||||
|      * @property {CreateNoteAttribute[]} [attributes=[]] - attributes to be created for this note | ||||
|      */ | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * @deprecated please use createTextNote() with similar API for simpler use cases or createNewNote() for more complex needs | ||||
|      * | ||||
|      * @param {string} parentNoteId - create new note under this parent | ||||
|      * @param {string} title | ||||
|      * @param {string} [content=""] | ||||
|      * @param {CreateNoteExtraOptions} [extraOptions={}] | ||||
|      * @returns {{note: Note, branch: Branch}} object contains newly created entities note and branch | ||||
|      */ | ||||
|     this.createNote = (parentNoteId, title, content = "", extraOptions= {}) => { | ||||
|         extraOptions.parentNoteId = parentNoteId; | ||||
|         extraOptions.title = title; | ||||
|  | ||||
|         const parentNote = becca.getNote(parentNoteId); | ||||
|  | ||||
|         // code note type can be inherited, otherwise text is default | ||||
|         extraOptions.type = parentNote.type === 'code' ? 'code' : 'text'; | ||||
|         extraOptions.mime = parentNote.type === 'code' ? parentNote.mime : 'text/html'; | ||||
|  | ||||
|         if (extraOptions.json) { | ||||
|             extraOptions.content = JSON.stringify(content || {}, null, '\t'); | ||||
|             extraOptions.type = 'code'; | ||||
|             extraOptions.mime = 'application/json'; | ||||
|         } | ||||
|         else { | ||||
|             extraOptions.content = content; | ||||
|         } | ||||
|  | ||||
|         return sql.transactional(() => { | ||||
|             const {note, branch} = noteService.createNewNote(extraOptions); | ||||
|  | ||||
|             for (const attr of extraOptions.attributes || []) { | ||||
|                 attributeService.createAttribute({ | ||||
|                     noteId: note.noteId, | ||||
|                     type: attr.type, | ||||
|                     name: attr.name, | ||||
|                     value: attr.value, | ||||
|                     isInheritable: !!attr.isInheritable | ||||
|                 }); | ||||
|             } | ||||
|  | ||||
|             return {note, branch}; | ||||
|         }); | ||||
|     }; | ||||
|  | ||||
|     /** | ||||
|      * Log given message to trilium logs. | ||||
|      * | ||||
|      * @param message | ||||
|      */ | ||||
|     this.log = message => log.info(`Script "${currentNote.title}" (${currentNote.noteId}): ${message}`); | ||||
|  | ||||
|     /** | ||||
|      * Returns root note of the calendar. | ||||
|      * | ||||
|      * @method | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     this.getRootCalendarNote = dateNoteService.getRootCalendarNote; | ||||
|  | ||||
|     /** | ||||
|      * Returns day note for given date. If such note doesn't exist, it is created. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} date in YYYY-MM-DD format | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     this.getDateNote = dateNoteService.getDateNote; | ||||
|  | ||||
|     /** | ||||
|      * Returns today's day note. If such note doesn't exist, it is created. | ||||
|      * | ||||
|      * @method | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     this.getTodayNote = dateNoteService.getTodayNote; | ||||
|  | ||||
|     /** | ||||
|      * Returns note for the first date of the week of the given date. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} date in YYYY-MM-DD format | ||||
|      * @param {object} options - "startOfTheWeek" - either "monday" (default) or "sunday" | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     this.getWeekNote = dateNoteService.getWeekNote; | ||||
|  | ||||
|     /** | ||||
|      * Returns month note for given date. If such note doesn't exist, it is created. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} date in YYYY-MM format | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     this.getMonthNote = dateNoteService.getMonthNote; | ||||
|  | ||||
|     /** | ||||
|      * Returns year note for given year. If such note doesn't exist, it is created. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} year in YYYY format | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     this.getYearNote = dateNoteService.getYearNote; | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * @param {string} parentNoteId - this note's child notes will be sorted | ||||
|      */ | ||||
|     this.sortNotesByTitle = parentNoteId => treeService.sortNotes(parentNoteId); | ||||
|  | ||||
|     /** | ||||
|      * This method finds note by its noteId and prefix and either sets it to the given parentNoteId | ||||
|      * or removes the branch (if parentNoteId is not given). | ||||
|      * | ||||
|      * This method looks similar to toggleNoteInParent() but differs because we're looking up branch by prefix. | ||||
|      * | ||||
|      * @method | ||||
|      * @deprecated - this method is pretty confusing and serves specialized purpose only | ||||
|      * @param {string} noteId | ||||
|      * @param {string} prefix | ||||
|      * @param {string|null} parentNoteId | ||||
|      */ | ||||
|     this.setNoteToParent = treeService.setNoteToParent; | ||||
|  | ||||
|     /** | ||||
|      * This functions wraps code which is supposed to be running in transaction. If transaction already | ||||
|      * exists, then we'll use that transaction. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {function} func | ||||
|      * @returns {?} result of func callback | ||||
|      */ | ||||
|     this.transactional = sql.transactional; | ||||
|  | ||||
|     /** | ||||
|      * Return randomly generated string of given length. This random string generation is NOT cryptographically secure. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {number} length of the string | ||||
|      * @returns {string} random string | ||||
|      */ | ||||
|     this.randomString = utils.randomString; | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * @param {string} string to escape | ||||
|      * @returns {string} escaped string | ||||
|      */ | ||||
|     this.escapeHtml = utils.escapeHtml; | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * @param {string} string to unescape | ||||
|      * @returns {string} unescaped string | ||||
|      */ | ||||
|     this.unescapeHtml = utils.unescapeHtml; | ||||
|  | ||||
|     /** | ||||
|      * @property {module:sql} sql | ||||
|      */ | ||||
|     this.sql = sql; | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * @deprecated - this is now no-op since all the changes should be gracefully handled per widget | ||||
|      */ | ||||
|     this.refreshTree = () => {}; | ||||
|  | ||||
|     /** | ||||
|      * @return {{syncVersion, appVersion, buildRevision, dbVersion, dataDirectory, buildDate}|*} - object representing basic info about running Trilium version | ||||
|      */ | ||||
|     this.getAppInfo = () => appInfo | ||||
| } | ||||
|  | ||||
| module.exports = BackendScriptApi; | ||||
| </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="BackendScriptApi.html">BackendScriptApi</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.7</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -42,8 +42,11 @@ class ApiToken extends AbstractEntity { | ||||
|     constructor(row) { | ||||
|         super(); | ||||
|  | ||||
|         /** @type {string} */ | ||||
|         this.apiTokenId = row.apiTokenId; | ||||
|         /** @type {string} */ | ||||
|         this.token = row.token; | ||||
|         /** @type {string} */ | ||||
|         this.utcDateCreated = row.utcDateCreated || dateUtils.utcNowDateTime(); | ||||
|     } | ||||
|  | ||||
| @@ -67,7 +70,7 @@ module.exports = ApiToken; | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -34,6 +34,10 @@ const sql = require("../../services/sql.js"); | ||||
| const dateUtils = require("../../services/date_utils.js"); | ||||
| const promotedAttributeDefinitionParser = require("../../services/promoted_attribute_definition_parser"); | ||||
|  | ||||
| /** | ||||
|  * Attribute is an abstract concept which has two real uses - label (key - value pair) | ||||
|  * and relation (representing named relationship between source and target note) | ||||
|  */ | ||||
| class Attribute extends AbstractEntity { | ||||
|     static get entityName() { return "attributes"; } | ||||
|     static get primaryKeyName() { return "attributeId"; } | ||||
| @@ -64,21 +68,21 @@ class Attribute extends AbstractEntity { | ||||
|     } | ||||
|  | ||||
|     update([attributeId, noteId, type, name, value, isInheritable, position, utcDateModified]) { | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.attributeId = attributeId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.type = type; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.name = name; | ||||
|         /** @param {int} */ | ||||
|         /** @type {int} */ | ||||
|         this.position = position; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.value = value; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isInheritable = !!isInheritable; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = utcDateModified; | ||||
|  | ||||
|         return this; | ||||
| @@ -91,7 +95,7 @@ class Attribute extends AbstractEntity { | ||||
|  | ||||
|         if (!(this.noteId in this.becca.notes)) { | ||||
|             // entities can come out of order in sync, create skeleton which will be filled later | ||||
|             this.becca.notes[this.noteId] = new Note({noteId: this.noteId}); | ||||
|             this.becca.addNote(this.noteId, new Note({noteId: this.noteId})); | ||||
|         } | ||||
|  | ||||
|         this.becca.notes[this.noteId].ownedAttributes.push(this); | ||||
| @@ -173,6 +177,10 @@ class Attribute extends AbstractEntity { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     get isDeleted() { | ||||
|         return !(this.attributeId in this.becca.attributes); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (!this.value) { | ||||
|             if (this.type === 'relation') { | ||||
| @@ -237,7 +245,7 @@ module.exports = Attribute; | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -33,6 +33,10 @@ const AbstractEntity = require("./abstract_entity.js"); | ||||
| const sql = require("../../services/sql.js"); | ||||
| const dateUtils = require("../../services/date_utils.js"); | ||||
|  | ||||
| /** | ||||
|  * Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple | ||||
|  * parents. | ||||
|  */ | ||||
| class Branch extends AbstractEntity { | ||||
|     static get entityName() { return "branches"; } | ||||
|     static get primaryKeyName() { return "branchId"; } | ||||
| @@ -63,19 +67,19 @@ class Branch extends AbstractEntity { | ||||
|     } | ||||
|  | ||||
|     update([branchId, noteId, parentNoteId, prefix, notePosition, isExpanded, utcDateModified]) { | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.branchId = branchId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.parentNoteId = parentNoteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.prefix = prefix; | ||||
|         /** @param {int} */ | ||||
|         /** @type {int} */ | ||||
|         this.notePosition = notePosition; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isExpanded = !!isExpanded; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = utcDateModified; | ||||
|  | ||||
|         return this; | ||||
| @@ -89,20 +93,27 @@ class Branch extends AbstractEntity { | ||||
|         const childNote = this.childNote; | ||||
|         const parentNote = this.parentNote; | ||||
|  | ||||
|         childNote.parents.push(parentNote); | ||||
|         childNote.parentBranches.push(this); | ||||
|         if (!childNote.parents.includes(parentNote)) { | ||||
|             childNote.parents.push(parentNote); | ||||
|         } | ||||
|  | ||||
|         parentNote.children.push(childNote); | ||||
|         if (!childNote.parentBranches.includes(this)) { | ||||
|             childNote.parentBranches.push(this); | ||||
|         } | ||||
|  | ||||
|         if (!parentNote.children.includes(childNote)) { | ||||
|             parentNote.children.push(childNote); | ||||
|         } | ||||
|  | ||||
|         this.becca.branches[this.branchId] = this; | ||||
|         this.becca.childParentToBranch[`${this.noteId}-${this.parentNoteId}`] = this; | ||||
|     } | ||||
|  | ||||
|     /** @return {Note} */ | ||||
|     /** @returns {Note} */ | ||||
|     get childNote() { | ||||
|         if (!(this.noteId in this.becca.notes)) { | ||||
|             // entities can come out of order in sync, create skeleton which will be filled later | ||||
|             this.becca.notes[this.noteId] = new Note({noteId: this.noteId}); | ||||
|             this.becca.addNote(this.noteId, new Note({noteId: this.noteId})); | ||||
|         } | ||||
|  | ||||
|         return this.becca.notes[this.noteId]; | ||||
| @@ -112,16 +123,20 @@ class Branch extends AbstractEntity { | ||||
|         return this.childNote; | ||||
|     } | ||||
|  | ||||
|     /** @return {Note} */ | ||||
|     /** @returns {Note} */ | ||||
|     get parentNote() { | ||||
|         if (!(this.parentNoteId in this.becca.notes)) { | ||||
|             // entities can come out of order in sync, create skeleton which will be filled later | ||||
|             this.becca.notes[this.parentNoteId] = new Note({noteId: this.parentNoteId}); | ||||
|             this.becca.addNote(this.parentNoteId, new Note({noteId: this.parentNoteId})); | ||||
|         } | ||||
|  | ||||
|         return this.becca.notes[this.parentNoteId]; | ||||
|     } | ||||
|  | ||||
|     get isDeleted() { | ||||
|         return !(this.branchId in this.becca.branches); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (this.notePosition === undefined || this.notePosition === null) { | ||||
|             // TODO finding new position can be refactored into becca | ||||
| @@ -177,7 +192,7 @@ module.exports = Branch; | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -40,6 +40,9 @@ const NoteRevision = require("./note_revision.js"); | ||||
| const LABEL = 'label'; | ||||
| const RELATION = 'relation'; | ||||
|  | ||||
| /** | ||||
|  * Trilium's main entity which can represent text note, image, code note, file attachment etc. | ||||
|  */ | ||||
| class Note extends AbstractEntity { | ||||
|     static get entityName() { return "notes"; } | ||||
|     static get primaryKeyName() { return "noteId"; } | ||||
| @@ -73,68 +76,80 @@ class Note extends AbstractEntity { | ||||
|     update([noteId, title, type, mime, isProtected, dateCreated, dateModified, utcDateCreated, utcDateModified]) { | ||||
|         // ------ Database persisted attributes ------ | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.title = title; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isProtected = !!isProtected; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.type = type; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.mime = mime; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateCreated = dateCreated || dateUtils.localNowDateTime(); | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateModified = dateModified; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateCreated = utcDateCreated || dateUtils.utcNowDateTime(); | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = utcDateModified; | ||||
|  | ||||
|         // ------ Derived attributes ------ | ||||
|  | ||||
|         /** @param {boolean} */ | ||||
|         this.isDecrypted = !this.isProtected; | ||||
|         /** @type {boolean} */ | ||||
|         this.isDecrypted = !this.noteId || !this.isProtected; | ||||
|  | ||||
|         this.decrypt(); | ||||
|  | ||||
|         /** @param {string|null} */ | ||||
|         /** @type {string|null} */ | ||||
|         this.flatTextCache = null; | ||||
|  | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     init() { | ||||
|         /** @param {Branch[]} */ | ||||
|         /** @type {Branch[]} */ | ||||
|         this.parentBranches = []; | ||||
|         /** @param {Note[]} */ | ||||
|         /** @type {Note[]} */ | ||||
|         this.parents = []; | ||||
|         /** @param {Note[]} */ | ||||
|         /** @type {Note[]} */ | ||||
|         this.children = []; | ||||
|         /** @param {Attribute[]} */ | ||||
|         /** @type {Attribute[]} */ | ||||
|         this.ownedAttributes = []; | ||||
|  | ||||
|         /** @param {Attribute[]|null} */ | ||||
|         /** @type {Attribute[]|null} | ||||
|          * @private */ | ||||
|         this.__attributeCache = null; | ||||
|         /** @param {Attribute[]|null} */ | ||||
|         /** @type {Attribute[]|null} | ||||
|          * @private*/ | ||||
|         this.inheritableAttributeCache = null; | ||||
|  | ||||
|         /** @param {Attribute[]} */ | ||||
|         /** @type {Attribute[]} */ | ||||
|         this.targetRelations = []; | ||||
|  | ||||
|         this.becca.notes[this.noteId] = this; | ||||
|         this.becca.addNote(this.noteId, this); | ||||
|  | ||||
|         /** @param {Note[]|null} */ | ||||
|         /** @type {Note[]|null} | ||||
|          * @private */ | ||||
|         this.ancestorCache = null; | ||||
|  | ||||
|         // following attributes are filled during searching from database | ||||
|  | ||||
|         /** @param {int} size of the content in bytes */ | ||||
|         /** | ||||
|          * size of the content in bytes | ||||
|          * @type {int|null} | ||||
|          */ | ||||
|         this.contentSize = null; | ||||
|         /** @param {int} size of the content and note revision contents in bytes */ | ||||
|         /** | ||||
|          * size of the content and note revision contents in bytes | ||||
|          * @type {int|null} | ||||
|          */ | ||||
|         this.noteSize = null; | ||||
|         /** @param {int} number of note revisions for this note */ | ||||
|         /** | ||||
|          * number of note revisions for this note | ||||
|          * @type {int|null} | ||||
|          */ | ||||
|         this.revisionCount = null; | ||||
|     } | ||||
|  | ||||
| @@ -144,26 +159,32 @@ class Note extends AbstractEntity { | ||||
|             || protectedSessionService.isProtectedSessionAvailable() | ||||
|     } | ||||
|  | ||||
|     /** @returns {Branch[]} */ | ||||
|     getParentBranches() { | ||||
|         return this.parentBranches; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Branch[]} */ | ||||
|     getBranches() { | ||||
|         return this.parentBranches; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Note[]} */ | ||||
|     getParentNotes() { | ||||
|         return this.parents; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Note[]} */ | ||||
|     getChildNotes() { | ||||
|         return this.children; | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} */ | ||||
|     hasChildren() { | ||||
|         return this.children && this.children.length > 0; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Branch[]} */ | ||||
|     getChildBranches() { | ||||
|         return this.children.map(childNote => this.becca.getBranchFromChildAndParent(childNote.noteId, this.noteId)); | ||||
|     } | ||||
| @@ -398,7 +419,7 @@ class Note extends AbstractEntity { | ||||
|         return this.__attributeCache; | ||||
|     } | ||||
|  | ||||
|     /** @return {Attribute[]} */ | ||||
|     /** @returns {Attribute[]} */ | ||||
|     __getInheritableAttributes(path) { | ||||
|         if (path.includes(this.noteId)) { | ||||
|             return []; | ||||
| @@ -639,7 +660,7 @@ class Note extends AbstractEntity { | ||||
|  | ||||
|     // will sort the parents so that non-search & non-archived are first and archived at the end | ||||
|     // this is done so that non-search & non-archived paths are always explored as first when looking for note path | ||||
|     resortParents() { | ||||
|     sortParents() { | ||||
|         this.parentBranches.sort((a, b) => | ||||
|             a.branchId.startsWith('virt-') | ||||
|             || a.parentNote.hasInheritableOwnedArchivedLabel() ? 1 : -1); | ||||
| @@ -749,28 +770,38 @@ class Note extends AbstractEntity { | ||||
|         return !!this.targetRelations.find(rel => rel.name === 'template'); | ||||
|     } | ||||
|  | ||||
|     /** @return {Note[]} */ | ||||
|     /** @returns {Note[]} */ | ||||
|     getSubtreeNotesIncludingTemplated() { | ||||
|         const arr = [[this]]; | ||||
|         const set = new Set(); | ||||
|  | ||||
|         for (const childNote of this.children) { | ||||
|             arr.push(childNote.getSubtreeNotesIncludingTemplated()); | ||||
|         } | ||||
|         function inner(note) { | ||||
|             if (set.has(note)) { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|         for (const targetRelation of this.targetRelations) { | ||||
|             if (targetRelation.name === 'template') { | ||||
|                 const note = targetRelation.note; | ||||
|             set.add(note); | ||||
|  | ||||
|                 if (note) { | ||||
|                     arr.push(note.getSubtreeNotesIncludingTemplated()); | ||||
|             for (const childNote of note.children) { | ||||
|                 inner(childNote); | ||||
|             } | ||||
|  | ||||
|             for (const targetRelation of note.targetRelations) { | ||||
|                 if (targetRelation.name === 'template') { | ||||
|                     const targetNote = targetRelation.note; | ||||
|  | ||||
|                     if (targetNote) { | ||||
|                         inner(targetNote); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return arr.flat(); | ||||
|         inner(this); | ||||
|  | ||||
|         return Array.from(set); | ||||
|     } | ||||
|  | ||||
|     /** @return {Note[]} */ | ||||
|     /** @returns {Note[]} */ | ||||
|     getSubtreeNotes(includeArchived = true) { | ||||
|         const noteSet = new Set(); | ||||
|  | ||||
| @@ -791,9 +822,9 @@ class Note extends AbstractEntity { | ||||
|         return Array.from(noteSet); | ||||
|     } | ||||
|  | ||||
|     /** @return {String[]} */ | ||||
|     getSubtreeNoteIds() { | ||||
|         return this.getSubtreeNotes().map(note => note.noteId); | ||||
|     /** @returns {String[]} */ | ||||
|     getSubtreeNoteIds(includeArchived = true) { | ||||
|         return this.getSubtreeNotes(includeArchived).map(note => note.noteId); | ||||
|     } | ||||
|  | ||||
|     getDescendantNoteIds() { | ||||
| @@ -848,6 +879,7 @@ class Note extends AbstractEntity { | ||||
|         return this.getAttributes().length; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Note[]} */ | ||||
|     getAncestors() { | ||||
|         if (!this.ancestorCache) { | ||||
|             const noteIds = new Set(); | ||||
| @@ -871,11 +903,22 @@ class Note extends AbstractEntity { | ||||
|         return this.ancestorCache; | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} */ | ||||
|     hasAncestor(ancestorNoteId) { | ||||
|         for (const ancestorNote of this.getAncestors()) { | ||||
|             if (ancestorNote.noteId === ancestorNoteId) { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     getTargetRelations() { | ||||
|         return this.targetRelations; | ||||
|     } | ||||
|  | ||||
|     /** @return {Note[]} - returns only notes which are templated, does not include their subtrees | ||||
|     /** @returns {Note[]} - returns only notes which are templated, does not include their subtrees | ||||
|      *                     in effect returns notes which are influenced by note's non-inheritable attributes */ | ||||
|     getTemplatedNotes() { | ||||
|         const arr = [this]; | ||||
| @@ -1112,10 +1155,14 @@ class Note extends AbstractEntity { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     get isDeleted() { | ||||
|         return !(this.noteId in this.becca.notes); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         super.beforeSaving(); | ||||
|  | ||||
|         this.becca.notes[this.noteId] = this; | ||||
|         this.becca.addNote(this.noteId, this); | ||||
|  | ||||
|         this.dateModified = dateUtils.localNowDateTime(); | ||||
|         this.utcDateModified = dateUtils.utcNowDateTime(); | ||||
| @@ -1164,7 +1211,7 @@ module.exports = Note; | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -37,7 +37,8 @@ const entityChangesService = require('../../services/entity_changes'); | ||||
| const AbstractEntity = require("./abstract_entity.js"); | ||||
|  | ||||
| /** | ||||
|  * NoteRevision represents snapshot of note's title and content at some point in the past. It's used for seamless note versioning. | ||||
|  * NoteRevision represents snapshot of note's title and content at some point in the past. | ||||
|  * It's used for seamless note versioning. | ||||
|  */ | ||||
| class NoteRevision extends AbstractEntity { | ||||
|     static get entityName() { return "note_revisions"; } | ||||
| @@ -47,29 +48,29 @@ class NoteRevision extends AbstractEntity { | ||||
|     constructor(row) { | ||||
|         super(); | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteRevisionId = row.noteRevisionId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.type = row.type; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.mime = row.mime; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isProtected = !!row.isProtected; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.title = row.title; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateLastEdited = row.dateLastEdited; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateCreated = row.dateCreated; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateLastEdited = row.utcDateLastEdited; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateCreated = row.utcDateCreated; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = row.utcDateModified; | ||||
|         /** @param {number} */ | ||||
|         /** @type {number} */ | ||||
|         this.contentLength = row.contentLength; | ||||
|  | ||||
|         if (this.isProtected) { | ||||
| @@ -77,7 +78,7 @@ class NoteRevision extends AbstractEntity { | ||||
|                 this.title = protectedSessionService.decryptString(this.title); | ||||
|             } | ||||
|             else { | ||||
|                 this.title = "[Protected]"; | ||||
|                 this.title = "[protected]"; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| @@ -194,12 +195,14 @@ class NoteRevision extends AbstractEntity { | ||||
|             utcDateLastEdited: this.utcDateLastEdited, | ||||
|             utcDateCreated: this.utcDateCreated, | ||||
|             utcDateModified: this.utcDateModified, | ||||
|             content: this.content, | ||||
|             contentLength: this.contentLength | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     getPojoToSave() { | ||||
|         const pojo = this.getPojo(); | ||||
|         delete pojo.content; // not getting persisted | ||||
|         delete pojo.contentLength; // not getting persisted | ||||
|  | ||||
|         if (pojo.isProtected) { | ||||
| @@ -227,7 +230,7 @@ module.exports = NoteRevision; | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -42,9 +42,13 @@ class Option extends AbstractEntity { | ||||
|     constructor(row) { | ||||
|         super(); | ||||
|  | ||||
|         /** @type {string} */ | ||||
|         this.name = row.name; | ||||
|         /** @type {string} */ | ||||
|         this.value = row.value; | ||||
|         /** @type {boolean} */ | ||||
|         this.isSynced = !!row.isSynced; | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = row.utcDateModified; | ||||
|  | ||||
|         this.becca.options[this.name] = this; | ||||
| @@ -79,7 +83,7 @@ module.exports = Option; | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -41,8 +41,11 @@ class RecentNote extends AbstractEntity { | ||||
|     constructor(row) { | ||||
|         super(); | ||||
|  | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @type {string} */ | ||||
|         this.notePath = row.notePath; | ||||
|         /** @type {string} */ | ||||
|         this.utcDateCreated = row.utcDateCreated || dateUtils.utcNowDateTime(); | ||||
|     } | ||||
|  | ||||
| @@ -66,7 +69,7 @@ module.exports = RecentNote; | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -1,84 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/api_token.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: entities/api_token.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| const Entity = require('./entity'); | ||||
| const dateUtils = require('../services/date_utils'); | ||||
|  | ||||
| /** | ||||
|  * ApiToken is an entity representing token used to authenticate against Trilium API from client applications. Currently used only by Trilium Sender. | ||||
|  * | ||||
|  * @property {string} apiTokenId - primary key | ||||
|  * @property {string} token | ||||
|  * @property {boolean} isDeleted - true if API token is deleted | ||||
|  * @property {string} utcDateCreated | ||||
|  * | ||||
|  * @extends Entity | ||||
|  */ | ||||
| class ApiToken extends Entity { | ||||
|     static get entityName() { return "api_tokens"; } | ||||
|     static get primaryKeyName() { return "apiTokenId"; } | ||||
|     static get hashedProperties() { return ["apiTokenId", "token", "utcDateCreated", "isDeleted"]; } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (!this.isDeleted) { | ||||
|             this.isDeleted = false; | ||||
|         } | ||||
|  | ||||
|         if (!this.utcDateCreated) { | ||||
|             this.utcDateCreated = dateUtils.utcNowDateTime(); | ||||
|         } | ||||
|  | ||||
|         super.beforeSaving(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = ApiToken;</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="ApiToken.html">ApiToken</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="Entity.html">Entity</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.6</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,175 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/attribute.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: entities/attribute.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
|  | ||||
| const Entity = require('./entity'); | ||||
| const dateUtils = require('../services/date_utils'); | ||||
| const sql = require('../services/sql'); | ||||
| const promotedAttributeDefinitionParser = require("../services/promoted_attribute_definition_parser"); | ||||
|  | ||||
| /** | ||||
|  * Attribute is key value pair owned by a note. | ||||
|  * | ||||
|  * @property {string} attributeId - immutable | ||||
|  * @property {string} noteId - immutable | ||||
|  * @property {string} type - immutable | ||||
|  * @property {string} name - immutable | ||||
|  * @property {string} value | ||||
|  * @property {int} position | ||||
|  * @property {boolean} isInheritable - immutable | ||||
|  * @property {boolean} isDeleted | ||||
|  * @property {string|null} deleteId - ID identifying delete transaction | ||||
|  * @property {string} utcDateModified | ||||
|  * | ||||
|  * @extends Entity | ||||
|  */ | ||||
| class Attribute extends Entity { | ||||
|     static get entityName() { return "attributes"; } | ||||
|     static get primaryKeyName() { return "attributeId"; } | ||||
|     static get hashedProperties() { return ["attributeId", "noteId", "type", "name", "value", "isInheritable", "isDeleted"]; } | ||||
|  | ||||
|     constructor(row) { | ||||
|         super(row); | ||||
|  | ||||
|         this.isInheritable = !!this.isInheritable; | ||||
|     } | ||||
|  | ||||
|     isAutoLink() { | ||||
|         return this.type === 'relation' && ['internalLink', 'imageLink', 'relationMapLink', 'includeNoteLink'].includes(this.name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     getNote() { | ||||
|         return this.repository.getNote(this.noteId); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     getTargetNote() { | ||||
|         if (this.type !== 'relation') { | ||||
|             throw new Error(`Attribute ${this.attributeId} is not relation`); | ||||
|         } | ||||
|  | ||||
|         if (!this.value) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         return this.repository.getNote(this.value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return {boolean} | ||||
|      */ | ||||
|     isDefinition() { | ||||
|         return this.type === 'label' && (this.name.startsWith('label:') || this.name.startsWith('relation:')); | ||||
|     } | ||||
|  | ||||
|     getDefinition() { | ||||
|         return promotedAttributeDefinitionParser.parse(this.value); | ||||
|     } | ||||
|  | ||||
|     getDefinedName() { | ||||
|         if (this.type === 'label' && this.name.startsWith('label:')) { | ||||
|             return this.name.substr(6); | ||||
|         } else if (this.type === 'label' && this.name.startsWith('relation:')) { | ||||
|             return this.name.substr(9); | ||||
|         } else { | ||||
|             return this.name; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (!this.value) { | ||||
|             if (this.type === 'relation') { | ||||
|                 throw new Error(`Cannot save relation ${this.name} since it does not target any note.`); | ||||
|             } | ||||
|  | ||||
|             // null value isn't allowed | ||||
|             this.value = ""; | ||||
|         } | ||||
|  | ||||
|         if (this.position === undefined) { | ||||
|             this.position = 1 + sql.getValue(`SELECT COALESCE(MAX(position), 0) FROM attributes WHERE noteId = ?`, [this.noteId]); | ||||
|         } | ||||
|  | ||||
|         if (!this.isInheritable) { | ||||
|             this.isInheritable = false; | ||||
|         } | ||||
|  | ||||
|         if (!this.isDeleted) { | ||||
|             this.isDeleted = false; | ||||
|         } | ||||
|  | ||||
|         super.beforeSaving(); | ||||
|  | ||||
|         this.utcDateModified = dateUtils.utcNowDateTime(); | ||||
|     } | ||||
|  | ||||
|     createClone(type, name, value, isInheritable) { | ||||
|         return new Attribute({ | ||||
|             noteId: this.noteId, | ||||
|             type: type, | ||||
|             name: name, | ||||
|             value: value, | ||||
|             position: this.position, | ||||
|             isInheritable: isInheritable, | ||||
|             isDeleted: false, | ||||
|             utcDateModified: this.utcDateModified | ||||
|         }); | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = Attribute; | ||||
| </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="ApiToken.html">ApiToken</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="Entity.html">Entity</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.6</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,128 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/branch.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: entities/branch.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| const Entity = require('./entity'); | ||||
| const dateUtils = require('../services/date_utils'); | ||||
| const sql = require('../services/sql'); | ||||
|  | ||||
| /** | ||||
|  * Branch represents note's placement in the tree - it's essentially pair of noteId and parentNoteId. | ||||
|  * Each note can have multiple (at least one) branches, meaning it can be placed into multiple places in the tree. | ||||
|  * | ||||
|  * @property {string} branchId - primary key, immutable | ||||
|  * @property {string} noteId - immutable | ||||
|  * @property {string} parentNoteId - immutable | ||||
|  * @property {int} notePosition | ||||
|  * @property {string} prefix | ||||
|  * @property {boolean} isExpanded | ||||
|  * @property {boolean} isDeleted | ||||
|  * @property {string|null} deleteId - ID identifying delete transaction | ||||
|  * @property {string} utcDateModified | ||||
|  * @property {string} utcDateCreated | ||||
|  * | ||||
|  * @extends Entity | ||||
|  */ | ||||
| class Branch extends Entity { | ||||
|     static get entityName() { return "branches"; } | ||||
|     static get primaryKeyName() { return "branchId"; } | ||||
|     // notePosition is not part of hash because it would produce a lot of updates in case of reordering | ||||
|     static get hashedProperties() { return ["branchId", "noteId", "parentNoteId", "isDeleted", "deleteId", "prefix"]; } | ||||
|  | ||||
|     /** @returns {Note|null} */ | ||||
|     getNote() { | ||||
|         return this.repository.getNote(this.noteId); | ||||
|     } | ||||
|  | ||||
|     /** @returns {Note|null} */ | ||||
|     getParentNote() { | ||||
|         return this.repository.getNote(this.parentNoteId); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (this.notePosition === undefined || this.notePosition === null) { | ||||
|             const maxNotePos = sql.getValue('SELECT MAX(notePosition) FROM branches WHERE parentNoteId = ? AND isDeleted = 0', [this.parentNoteId]); | ||||
|             this.notePosition = maxNotePos === null ? 0 : maxNotePos + 10; | ||||
|         } | ||||
|  | ||||
|         if (!this.isExpanded) { | ||||
|             this.isExpanded = false; | ||||
|         } | ||||
|  | ||||
|         if (!this.isDeleted) { | ||||
|             this.isDeleted = false; | ||||
|         } | ||||
|  | ||||
|         if (!this.utcDateCreated) { | ||||
|             this.utcDateCreated = dateUtils.utcNowDateTime(); | ||||
|         } | ||||
|  | ||||
|         super.beforeSaving(); | ||||
|  | ||||
|         this.utcDateModified = dateUtils.utcNowDateTime(); | ||||
|     } | ||||
|  | ||||
|     createClone(parentNoteId, notePosition) { | ||||
|         return new Branch({ | ||||
|             noteId: this.noteId, | ||||
|             parentNoteId: parentNoteId, | ||||
|             notePosition: notePosition, | ||||
|             prefix: this.prefix, | ||||
|             isExpanded: this.isExpanded, | ||||
|             isDeleted: false, | ||||
|             utcDateCreated: this.utcDateCreated, | ||||
|             utcDateModified: this.utcDateModified | ||||
|         }); | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = Branch; | ||||
| </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="ApiToken.html">ApiToken</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="Entity.html">Entity</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.6</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,113 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/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: entities/entity.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| const utils = require('../services/utils'); | ||||
| let repo = null; | ||||
|  | ||||
| class Entity { | ||||
|     /** | ||||
|      * @param {object} [row] - database row representing given entity | ||||
|      */ | ||||
|     constructor(row = {}) { | ||||
|         for (const key in row) { | ||||
|             // ! is used when joint-fetching notes and note_contents objects for performance | ||||
|             if (!key.startsWith('!')) { | ||||
|                 this[key] = row[key]; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if ('isDeleted' in this && this.constructor.entityName !== 'recent_notes') { | ||||
|             this.isDeleted = !!this.isDeleted; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         this.generateIdIfNecessary(); | ||||
|     } | ||||
|  | ||||
|     generateIdIfNecessary() { | ||||
|         if (!this[this.constructor.primaryKeyName]) { | ||||
|             this[this.constructor.primaryKeyName] = utils.newEntityId(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     generateHash() { | ||||
|         let contentToHash = ""; | ||||
|  | ||||
|         for (const propertyName of this.constructor.hashedProperties) { | ||||
|             contentToHash += "|" + this[propertyName]; | ||||
|         } | ||||
|  | ||||
|         return utils.hash(contentToHash).substr(0, 10); | ||||
|     } | ||||
|  | ||||
|     getUtcDateChanged() { | ||||
|         return this.utcDateModified || this.utcDateCreated; | ||||
|     } | ||||
|  | ||||
|     get repository() { | ||||
|         if (!repo) { | ||||
|             repo = require('../services/repository'); | ||||
|         } | ||||
|  | ||||
|         return repo; | ||||
|     } | ||||
|  | ||||
|     save() { | ||||
|         this.repository.updateEntity(this); | ||||
|  | ||||
|         return this; | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = Entity; | ||||
| </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="ApiToken.html">ApiToken</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="Entity.html">Entity</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.6</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,92 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/image.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: entities/image.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| const Entity = require('./entity'); | ||||
| const dateUtils = require('../services/date_utils'); | ||||
|  | ||||
| /** | ||||
|  * This class represents image data. | ||||
|  * | ||||
|  * @param {string} imageId | ||||
|  * @param {string} format | ||||
|  * @param {string} checksum | ||||
|  * @param {string} name | ||||
|  * @param {blob} data | ||||
|  * @param {boolean} isDeleted | ||||
|  * @param {string} dateModified | ||||
|  * @param {string} dateCreated | ||||
|  * | ||||
|  * @extends Entity | ||||
|  */ | ||||
| class Image extends Entity { | ||||
|     static get entityName() { return "images"; } | ||||
|     static get primaryKeyName() { return "imageId"; } | ||||
|     static get hashedProperties() { return ["imageId", "format", "checksum", "name", "isDeleted", "dateCreated"]; } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (!this.isDeleted) { | ||||
|             this.isDeleted = false; | ||||
|         } | ||||
|  | ||||
|         if (!this.dateCreated) { | ||||
|             this.dateCreated = dateUtils.nowDate(); | ||||
|         } | ||||
|  | ||||
|         super.beforeSaving(); | ||||
|  | ||||
|         if (this.isChanged) { | ||||
|             this.dateModified = dateUtils.nowDate(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = Image;</code></pre> | ||||
|         </article> | ||||
|     </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</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="Entity.html">Entity</a></li><li><a href="Image.html">Image</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteImage.html">NoteImage</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/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Oct 07 2018 16:26:59 GMT+0200 (CEST) | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,101 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/link.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: entities/link.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| const Entity = require('./entity'); | ||||
| const repository = require('../services/repository'); | ||||
| const dateUtils = require('../services/date_utils'); | ||||
|  | ||||
| /** | ||||
|  * This class represents link from one note to another in the form of hyperlink or image reference. Note that | ||||
|  * this is different concept than attribute/relation. | ||||
|  * | ||||
|  * @param {string} linkId | ||||
|  * @param {string} noteId | ||||
|  * @param {string} targetNoteId | ||||
|  * @param {string} type | ||||
|  * @param {boolean} isDeleted | ||||
|  * @param {string} utcDateModified | ||||
|  * @param {string} utcDateCreated | ||||
|  * | ||||
|  * @extends Entity | ||||
|  */ | ||||
| class Link extends Entity { | ||||
|     static get entityName() { return "links"; } | ||||
|     static get primaryKeyName() { return "linkId"; } | ||||
|     static get hashedProperties() { return ["linkId", "noteId", "targetNoteId", "type", "isDeleted", "utcDateCreated", "utcDateModified"]; } | ||||
|  | ||||
|     async getNote() { | ||||
|         return await repository.getEntity("SELECT * FROM notes WHERE noteId = ?", [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     async getTargetNote() { | ||||
|         return await repository.getEntity("SELECT * FROM notes WHERE noteId = ?", [this.targetNoteId]); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (!this.isDeleted) { | ||||
|             this.isDeleted = false; | ||||
|         } | ||||
|  | ||||
|         if (!this.utcDateCreated) { | ||||
|             this.utcDateCreated = dateUtils.utcNowDateTime(); | ||||
|         } | ||||
|  | ||||
|         super.beforeSaving(); | ||||
|  | ||||
|         if (this.isChanged) { | ||||
|             this.utcDateModified = dateUtils.utcNowDateTime(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = Link;</code></pre> | ||||
|         </article> | ||||
|     </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</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="Entity.html">Entity</a></li><li><a href="Link.html">Link</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/jsdoc3/jsdoc">JSDoc 3.5.5</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,993 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/note.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: entities/note.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| const Entity = require('./entity'); | ||||
| const Attribute = require('./attribute'); | ||||
| const protectedSessionService = require('../services/protected_session'); | ||||
| const sql = require('../services/sql'); | ||||
| const utils = require('../services/utils'); | ||||
| const dateUtils = require('../services/date_utils'); | ||||
| const entityChangesService = require('../services/entity_changes.js'); | ||||
|  | ||||
| const LABEL = 'label'; | ||||
| const RELATION = 'relation'; | ||||
|  | ||||
| /** | ||||
|  * This represents a Note which is a central object in the Trilium Notes project. | ||||
|  * | ||||
|  * @property {string} noteId - primary key | ||||
|  * @property {string} type - one of "text", "code", "file" or "render" | ||||
|  * @property {string} mime - MIME type, e.g. "text/html" | ||||
|  * @property {string} title - note title | ||||
|  * @property {boolean} isProtected - true if note is protected | ||||
|  * @property {boolean} isDeleted - true if note is deleted | ||||
|  * @property {string|null} deleteId - ID identifying delete transaction | ||||
|  * @property {string} dateCreated - local date time (with offset) | ||||
|  * @property {string} dateModified - local date time (with offset) | ||||
|  * @property {string} utcDateCreated | ||||
|  * @property {string} utcDateModified | ||||
|  * | ||||
|  * @extends Entity | ||||
|  */ | ||||
| class Note extends Entity { | ||||
|     static get entityName() { return "notes"; } | ||||
|     static get primaryKeyName() { return "noteId"; } | ||||
|     static get hashedProperties() { return ["noteId", "title", "type", "mime", "isProtected", "isDeleted", "deleteId"]; } | ||||
|  | ||||
|     /** | ||||
|      * @param row - object containing database row from "notes" table | ||||
|      */ | ||||
|     constructor(row) { | ||||
|         super(row); | ||||
|  | ||||
|         this.isProtected = !!this.isProtected; | ||||
|         /* true if content is either not encrypted | ||||
|          * or encrypted, but with available protected session (so effectively decrypted) */ | ||||
|         this.isContentAvailable = true; | ||||
|  | ||||
|         // check if there's noteId, otherwise this is a new entity which wasn't encrypted yet | ||||
|         if (this.isProtected && this.noteId) { | ||||
|             this.isContentAvailable = protectedSessionService.isProtectedSessionAvailable(); | ||||
|  | ||||
|             if (this.isContentAvailable) { | ||||
|                 try { | ||||
|                     this.title = protectedSessionService.decryptString(this.title); | ||||
|                 } | ||||
|                 catch (e) { | ||||
|                     throw new Error(`Could not decrypt title of note ${this.noteId}: ${e.message} ${e.stack}`) | ||||
|                 } | ||||
|             } | ||||
|             else { | ||||
|                 this.title = "[protected]"; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|      * Note content has quite special handling - it's not a separate entity, but a lazily loaded | ||||
|      * part of Note entity with it's own sync. Reasons behind this hybrid design has been: | ||||
|      * | ||||
|      * - content can be quite large and it's not necessary to load it / fill memory for any note access even if we don't need a content, especially for bulk operations like search | ||||
|      * - changes in the note metadata or title should not trigger note content sync (so we keep separate utcDateModified and entity changes records) | ||||
|      * - but to the user note content and title changes are one and the same - single dateModified (so all changes must go through Note and content is not a separate entity) | ||||
|      */ | ||||
|  | ||||
|     /** @returns {*} */ | ||||
|     getContent(silentNotFoundError = false) { | ||||
|         if (this.content === undefined) { | ||||
|             const row = sql.getRow(`SELECT content FROM note_contents WHERE noteId = ?`, [this.noteId]); | ||||
|  | ||||
|             if (!row) { | ||||
|                 if (silentNotFoundError) { | ||||
|                     return undefined; | ||||
|                 } | ||||
|                 else { | ||||
|                     throw new Error("Cannot find note content for noteId=" + this.noteId); | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             this.content = row.content; | ||||
|  | ||||
|             if (this.isProtected) { | ||||
|                 if (this.isContentAvailable) { | ||||
|                     this.content = this.content === null ? null : protectedSessionService.decrypt(this.content); | ||||
|                 } | ||||
|                 else { | ||||
|                     this.content = ""; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if (this.isStringNote()) { | ||||
|             return this.content === null | ||||
|                 ? "" | ||||
|                 : this.content.toString("UTF-8"); | ||||
|         } | ||||
|         else { | ||||
|             return this.content; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** @returns {{contentLength, dateModified, utcDateModified}} */ | ||||
|     getContentMetadata() { | ||||
|         return sql.getRow(` | ||||
|             SELECT  | ||||
|                 LENGTH(content) AS contentLength,  | ||||
|                 dateModified, | ||||
|                 utcDateModified  | ||||
|             FROM note_contents  | ||||
|             WHERE noteId = ?`, [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     /** @returns {*} */ | ||||
|     getJsonContent() { | ||||
|         const content = this.getContent(); | ||||
|  | ||||
|         if (!content || !content.trim()) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         return JSON.parse(content); | ||||
|     } | ||||
|  | ||||
|     setContent(content) { | ||||
|         if (content === null || content === undefined) { | ||||
|             throw new Error(`Cannot set null content to note ${this.noteId}`); | ||||
|         } | ||||
|  | ||||
|         if (this.isStringNote()) { | ||||
|             content = content.toString(); | ||||
|         } | ||||
|         else { | ||||
|             content = Buffer.isBuffer(content) ? content : Buffer.from(content); | ||||
|         } | ||||
|  | ||||
|         this.content = content; | ||||
|  | ||||
|         const pojo = { | ||||
|             noteId: this.noteId, | ||||
|             content: content, | ||||
|             dateModified: dateUtils.localNowDateTime(), | ||||
|             utcDateModified: dateUtils.utcNowDateTime() | ||||
|         }; | ||||
|  | ||||
|         if (this.isProtected) { | ||||
|             if (this.isContentAvailable) { | ||||
|                 pojo.content = protectedSessionService.encrypt(pojo.content); | ||||
|             } | ||||
|             else { | ||||
|                 throw new Error(`Cannot update content of noteId=${this.noteId} since we're out of protected session.`); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         sql.upsert("note_contents", "noteId", pojo); | ||||
|  | ||||
|         const hash = utils.hash(this.noteId + "|" + pojo.content.toString()); | ||||
|  | ||||
|         entityChangesService.addEntityChange({ | ||||
|             entityName: 'note_contents', | ||||
|             entityId: this.noteId, | ||||
|             hash: hash, | ||||
|             isErased: false, | ||||
|             utcDateChanged: pojo.utcDateModified | ||||
|         }, null); | ||||
|     } | ||||
|  | ||||
|     setJsonContent(content) { | ||||
|         this.setContent(JSON.stringify(content, null, '\t')); | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} true if this note is the root of the note tree. Root note has "root" noteId */ | ||||
|     isRoot() { | ||||
|         return this.noteId === 'root'; | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} true if this note is of application/json content type */ | ||||
|     isJson() { | ||||
|         return this.mime === "application/json"; | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} true if this note is JavaScript (code or attachment) */ | ||||
|     isJavaScript() { | ||||
|         return (this.type === "code" || this.type === "file") | ||||
|             && (this.mime.startsWith("application/javascript") | ||||
|                 || this.mime === "application/x-javascript" | ||||
|                 || this.mime === "text/javascript"); | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} true if this note is HTML */ | ||||
|     isHtml() { | ||||
|         return (this.type === "code" || this.type === "file" || this.type === "render") && this.mime === "text/html"; | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} true if the note has string content (not binary) */ | ||||
|     isStringNote() { | ||||
|         return utils.isStringNote(this.type, this.mime); | ||||
|     } | ||||
|  | ||||
|     /** @returns {string} JS script environment - either "frontend" or "backend" */ | ||||
|     getScriptEnv() { | ||||
|         if (this.isHtml() || (this.isJavaScript() && this.mime.endsWith('env=frontend'))) { | ||||
|             return "frontend"; | ||||
|         } | ||||
|  | ||||
|         if (this.type === 'render') { | ||||
|             return "frontend"; | ||||
|         } | ||||
|  | ||||
|         if (this.isJavaScript() && this.mime.endsWith('env=backend')) { | ||||
|             return "backend"; | ||||
|         } | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     loadOwnedAttributesToCache() { | ||||
|         this.__ownedAttributeCache = this.repository.getEntities(`SELECT * FROM attributes WHERE isDeleted = 0 AND noteId = ?`, [this.noteId]); | ||||
|         return this.__ownedAttributeCache; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * This method is a faster variant of getAttributes() which looks for only owned attributes. | ||||
|      * Use when inheritance is not needed and/or in batch/performance sensitive operations. | ||||
|      * | ||||
|      * @param {string} [type] - (optional) attribute type to filter | ||||
|      * @param {string} [name] - (optional) attribute name to filter | ||||
|      * @returns {Attribute[]} note's "owned" attributes - excluding inherited ones | ||||
|      */ | ||||
|     getOwnedAttributes(type, name) { | ||||
|         if (!this.__ownedAttributeCache) { | ||||
|             this.loadOwnedAttributesToCache(); | ||||
|         } | ||||
|  | ||||
|         if (type && name) { | ||||
|             return this.__ownedAttributeCache.filter(attr => attr.type === type && attr.name === name); | ||||
|         } | ||||
|         else if (type) { | ||||
|             return this.__ownedAttributeCache.filter(attr => attr.type === type); | ||||
|         } | ||||
|         else if (name) { | ||||
|             return this.__ownedAttributeCache.filter(attr => attr.name === name); | ||||
|         } | ||||
|         else { | ||||
|             return this.__ownedAttributeCache.slice(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @returns {Attribute} attribute belonging to this specific note (excludes inherited attributes) | ||||
|      * | ||||
|      * This method can be significantly faster than the getAttribute() | ||||
|      */ | ||||
|     getOwnedAttribute(type, name) { | ||||
|         const attrs = this.getOwnedAttributes(type, name); | ||||
|  | ||||
|         return attrs.length > 0 ? attrs[0] : null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @returns {Attribute[]} relations targetting this specific note | ||||
|      */ | ||||
|     getTargetRelations() { | ||||
|         return this.repository.getEntities("SELECT * FROM attributes WHERE type = 'relation' AND isDeleted = 0 AND value = ?", [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} [type] - (optional) attribute type to filter | ||||
|      * @param {string} [name] - (optional) attribute name to filter | ||||
|      * @returns {Attribute[]} all note's attributes, including inherited ones | ||||
|      */ | ||||
|     getAttributes(type, name) { | ||||
|         if (!this.__attributeCache) { | ||||
|             this.loadAttributesToCache(); | ||||
|         } | ||||
|  | ||||
|         if (type && name) { | ||||
|             return this.__attributeCache.filter(attr => attr.type === type && attr.name === name); | ||||
|         } | ||||
|         else if (type) { | ||||
|             return this.__attributeCache.filter(attr => attr.type === type); | ||||
|         } | ||||
|         else if (name) { | ||||
|             return this.__attributeCache.filter(attr => attr.name === name); | ||||
|         } | ||||
|         else { | ||||
|             return this.__attributeCache.slice(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} [name] - label name to filter | ||||
|      * @returns {Attribute[]} all note's labels (attributes with type label), including inherited ones | ||||
|      */ | ||||
|     getLabels(name) { | ||||
|         return this.getAttributes(LABEL, name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} [name] - label name to filter | ||||
|      * @returns {Attribute[]} all note's labels (attributes with type label), excluding inherited ones | ||||
|      */ | ||||
|     getOwnedLabels(name) { | ||||
|         return this.getOwnedAttributes(LABEL, name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} [name] - relation name to filter | ||||
|      * @returns {Attribute[]} all note's relations (attributes with type relation), including inherited ones | ||||
|      */ | ||||
|     getRelations(name) { | ||||
|         return this.getAttributes(RELATION, name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} [name] - relation name to filter | ||||
|      * @returns {Attribute[]} all note's relations (attributes with type relation), excluding inherited ones | ||||
|      */ | ||||
|     getOwnedRelations(name) { | ||||
|         return this.getOwnedAttributes(RELATION, name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} [name] - relation name to filter | ||||
|      * @returns {Note[]} | ||||
|      */ | ||||
|     getRelationTargets(name) { | ||||
|         const relations = this.getRelations(name); | ||||
|         const targets = []; | ||||
|  | ||||
|         for (const relation of relations) { | ||||
|             targets.push(relation.getTargetNote()); | ||||
|         } | ||||
|  | ||||
|         return targets; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Clear note's attributes cache to force fresh reload for next attribute request. | ||||
|      * Cache is note instance scoped. | ||||
|      */ | ||||
|     invalidateAttributeCache() { | ||||
|         this.__attributeCache = null; | ||||
|         this.__ownedAttributeCache = null; | ||||
|     } | ||||
|  | ||||
|     loadAttributesToCache() { | ||||
|         const attributes = this.repository.getEntities(` | ||||
|             WITH RECURSIVE | ||||
|             tree(noteId, level) AS ( | ||||
|                 SELECT ?, 0 | ||||
|                 UNION | ||||
|                 SELECT branches.parentNoteId, tree.level + 1  | ||||
|                     FROM branches | ||||
|                     JOIN tree ON branches.noteId = tree.noteId | ||||
|                 WHERE branches.isDeleted = 0 | ||||
|             ), | ||||
|             treeWithAttrs(noteId, level) AS ( | ||||
|                 SELECT * FROM tree | ||||
|                 UNION | ||||
|                 SELECT attributes.value, treeWithAttrs.level FROM attributes | ||||
|                      JOIN treeWithAttrs ON treeWithAttrs.noteId = attributes.noteId | ||||
|                 WHERE attributes.isDeleted = 0 | ||||
|                   AND attributes.type = 'relation' | ||||
|                   AND attributes.name = 'template' | ||||
|                 ) | ||||
|             SELECT attributes.* FROM attributes JOIN treeWithAttrs ON attributes.noteId = treeWithAttrs.noteId | ||||
|             WHERE attributes.isDeleted = 0 AND (attributes.isInheritable = 1 OR treeWithAttrs.level = 0) | ||||
|             ORDER BY level, noteId, position`, [this.noteId]); | ||||
|         // attributes are ordered so that "closest" attributes are first | ||||
|         // we order by noteId so that attributes from same note stay together. Actual noteId ordering doesn't matter. | ||||
|  | ||||
|         const filteredAttributes = attributes.filter((attr, index) => { | ||||
|             // if this exact attribute already appears then don't include it (can happen via cloning) | ||||
|             if (attributes.findIndex(it => it.attributeId === attr.attributeId) !== index) { | ||||
|                 return false; | ||||
|             } | ||||
|  | ||||
|             // FIXME: this code is quite questionable, one problem is that other caches (Froca, Becca) have nothing like that | ||||
|             if (attr.isDefinition()) { | ||||
|                 const firstDefinitionIndex = attributes.findIndex(el => el.type === attr.type && el.name === attr.name); | ||||
|  | ||||
|                 // keep only if this element is the first definition for this type & name | ||||
|                 return firstDefinitionIndex === index; | ||||
|             } | ||||
|             else { | ||||
|                 const definitionAttr = attributes.find(el => el.type === 'label' && el.name === attr.type + ':' + attr.name); | ||||
|  | ||||
|                 if (!definitionAttr) { | ||||
|                     return true; | ||||
|                 } | ||||
|  | ||||
|                 const definition = definitionAttr.getDefinition(); | ||||
|  | ||||
|                 if (definition.multiplicity === 'multi') { | ||||
|                     return true; | ||||
|                 } | ||||
|                 else { | ||||
|                     const firstAttrIndex = attributes.findIndex(el => el.type === attr.type && el.name === attr.name); | ||||
|  | ||||
|                     // in case of single-valued attribute we'll keep it only if it's first (closest) | ||||
|                     return firstAttrIndex === index; | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|  | ||||
|         this.__attributeCache = filteredAttributes; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} type - attribute type (label, relation, etc.) | ||||
|      * @param {string} name - attribute name | ||||
|      * @returns {boolean} true if note has an attribute with given type and name (including inherited) | ||||
|      */ | ||||
|     hasAttribute(type, name) { | ||||
|         return !!this.getAttribute(type, name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} type - attribute type (label, relation, etc.) | ||||
|      * @param {string} name - attribute name | ||||
|      * @returns {boolean} true if note has an attribute with given type and name (excluding inherited) | ||||
|      */ | ||||
|     hasOwnedAttribute(type, name) { | ||||
|         return !!this.getOwnedAttribute(type, name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} type - attribute type (label, relation, etc.) | ||||
|      * @param {string} name - attribute name | ||||
|      * @returns {Attribute} attribute of given type and name. If there's more such attributes, first is  returned. Returns null if there's no such attribute belonging to this note. | ||||
|      */ | ||||
|     getAttribute(type, name) { | ||||
|         const attributes = this.getAttributes(); | ||||
|  | ||||
|         return attributes.find(attr => attr.type === type && attr.name === name); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} type - attribute type (label, relation, etc.) | ||||
|      * @param {string} name - attribute name | ||||
|      * @returns {string|null} attribute value of given type and name or null if no such attribute exists. | ||||
|      */ | ||||
|     getAttributeValue(type, name) { | ||||
|         const attr = this.getAttribute(type, name); | ||||
|  | ||||
|         return attr ? attr.value : null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} type - attribute type (label, relation, etc.) | ||||
|      * @param {string} name - attribute name | ||||
|      * @returns {string|null} attribute value of given type and name or null if no such attribute exists. | ||||
|      */ | ||||
|     getOwnedAttributeValue(type, name) { | ||||
|         const attr = this.getOwnedAttribute(type, name); | ||||
|  | ||||
|         return attr ? attr.value : null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Based on enabled, attribute is either set or removed. | ||||
|      * | ||||
|      * @param {string} type - attribute type ('relation', 'label' etc.) | ||||
|      * @param {boolean} enabled - toggle On or Off | ||||
|      * @param {string} name - attribute name | ||||
|      * @param {string} [value] - attribute value (optional) | ||||
|      */ | ||||
|     toggleAttribute(type, enabled, name, value) { | ||||
|         if (enabled) { | ||||
|             this.setAttribute(type, name, value); | ||||
|         } | ||||
|         else { | ||||
|             this.removeAttribute(type, name, value); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Update's given attribute's value or creates it if it doesn't exist | ||||
|      * | ||||
|      * @param {string} type - attribute type (label, relation, etc.) | ||||
|      * @param {string} name - attribute name | ||||
|      * @param {string} [value] - attribute value (optional) | ||||
|      */ | ||||
|     setAttribute(type, name, value) { | ||||
|         const attributes = this.loadOwnedAttributesToCache(); | ||||
|         let attr = attributes.find(attr => attr.type === type && attr.name === name); | ||||
|  | ||||
|         if (attr) { | ||||
|             if (attr.value !== value) { | ||||
|                 attr.value = value; | ||||
|                 attr.save(); | ||||
|  | ||||
|                 this.invalidateAttributeCache(); | ||||
|             } | ||||
|         } | ||||
|         else { | ||||
|             attr = new Attribute({ | ||||
|                 noteId: this.noteId, | ||||
|                 type: type, | ||||
|                 name: name, | ||||
|                 value: value !== undefined ? value : "" | ||||
|             }); | ||||
|  | ||||
|             attr.save(); | ||||
|  | ||||
|             this.invalidateAttributeCache(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Removes given attribute name-value pair if it exists. | ||||
|      * | ||||
|      * @param {string} type - attribute type (label, relation, etc.) | ||||
|      * @param {string} name - attribute name | ||||
|      * @param {string} [value] - attribute value (optional) | ||||
|      */ | ||||
|     removeAttribute(type, name, value) { | ||||
|         const attributes = this.loadOwnedAttributesToCache(); | ||||
|  | ||||
|         for (const attribute of attributes) { | ||||
|             if (attribute.type === type && attribute.name === name && (value === undefined || value === attribute.value)) { | ||||
|                 attribute.isDeleted = true; | ||||
|                 attribute.save(); | ||||
|  | ||||
|                 this.invalidateAttributeCache(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return {Attribute} | ||||
|      */ | ||||
|     addAttribute(type, name, value = "", isInheritable = false, position = 1000) { | ||||
|         const attr = new Attribute({ | ||||
|             noteId: this.noteId, | ||||
|             type: type, | ||||
|             name: name, | ||||
|             value: value, | ||||
|             isInheritable: isInheritable, | ||||
|             position: position | ||||
|         }); | ||||
|  | ||||
|         attr.save(); | ||||
|  | ||||
|         this.invalidateAttributeCache(); | ||||
|  | ||||
|         return attr; | ||||
|     } | ||||
|  | ||||
|     addLabel(name, value = "", isInheritable = false) { | ||||
|         return this.addAttribute(LABEL, name, value, isInheritable); | ||||
|     } | ||||
|  | ||||
|     addRelation(name, targetNoteId, isInheritable = false) { | ||||
|         return this.addAttribute(RELATION, name, targetNoteId, isInheritable); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - label name | ||||
|      * @returns {boolean} true if label exists (including inherited) | ||||
|      */ | ||||
|     hasLabel(name) { return this.hasAttribute(LABEL, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - label name | ||||
|      * @returns {boolean} true if label exists (excluding inherited) | ||||
|      */ | ||||
|     hasOwnedLabel(name) { return this.hasOwnedAttribute(LABEL, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - relation name | ||||
|      * @returns {boolean} true if relation exists (including inherited) | ||||
|      */ | ||||
|     hasRelation(name) { return this.hasAttribute(RELATION, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - relation name | ||||
|      * @returns {boolean} true if relation exists (excluding inherited) | ||||
|      */ | ||||
|     hasOwnedRelation(name) { return this.hasOwnedAttribute(RELATION, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - label name | ||||
|      * @returns {Attribute|null} label if it exists, null otherwise | ||||
|      */ | ||||
|     getLabel(name) { return this.getAttribute(LABEL, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - label name | ||||
|      * @returns {Attribute|null} label if it exists, null otherwise | ||||
|      */ | ||||
|     getOwnedLabel(name) { return this.getOwnedAttribute(LABEL, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - relation name | ||||
|      * @returns {Attribute|null} relation if it exists, null otherwise | ||||
|      */ | ||||
|     getRelation(name) { return this.getAttribute(RELATION, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - relation name | ||||
|      * @returns {Attribute|null} relation if it exists, null otherwise | ||||
|      */ | ||||
|     getOwnedRelation(name) { return this.getOwnedAttribute(RELATION, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - label name | ||||
|      * @returns {string|null} label value if label exists, null otherwise | ||||
|      */ | ||||
|     getLabelValue(name) { return this.getAttributeValue(LABEL, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - label name | ||||
|      * @returns {string|null} label value if label exists, null otherwise | ||||
|      */ | ||||
|     getOwnedLabelValue(name) { return this.getOwnedAttributeValue(LABEL, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - relation name | ||||
|      * @returns {string|null} relation value if relation exists, null otherwise | ||||
|      */ | ||||
|     getRelationValue(name) { return this.getAttributeValue(RELATION, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name - relation name | ||||
|      * @returns {string|null} relation value if relation exists, null otherwise | ||||
|      */ | ||||
|     getOwnedRelationValue(name) { return this.getOwnedAttributeValue(RELATION, name); } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name | ||||
|      * @returns {Note|null} target note of the relation or null (if target is empty or note was not found) | ||||
|      */ | ||||
|     getRelationTarget(name) { | ||||
|         const relation = this.getRelation(name); | ||||
|  | ||||
|         return relation ? this.repository.getNote(relation.value) : null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param {string} name | ||||
|      * @returns {Note|null} target note of the relation or null (if target is empty or note was not found) | ||||
|      */ | ||||
|     getOwnedRelationTarget(name) { | ||||
|         const relation = this.getOwnedRelation(name); | ||||
|  | ||||
|         return relation ? this.repository.getNote(relation.value) : null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Based on enabled, label is either set or removed. | ||||
|      * | ||||
|      * @param {boolean} enabled - toggle On or Off | ||||
|      * @param {string} name - label name | ||||
|      * @param {string} [value] - label value (optional) | ||||
|      */ | ||||
|     toggleLabel(enabled, name, value) { return this.toggleAttribute(LABEL, enabled, name, value); } | ||||
|  | ||||
|     /** | ||||
|      * Based on enabled, relation is either set or removed. | ||||
|      * | ||||
|      * @param {boolean} enabled - toggle On or Off | ||||
|      * @param {string} name - relation name | ||||
|      * @param {string} [value] - relation value (noteId) | ||||
|      */ | ||||
|     toggleRelation(enabled, name, value) { return this.toggleAttribute(RELATION, enabled, name, value); } | ||||
|  | ||||
|     /** | ||||
|      * Update's given label's value or creates it if it doesn't exist | ||||
|      * | ||||
|      * @param {string} name - label name | ||||
|      * @param {string} [value] - label value | ||||
|      */ | ||||
|     setLabel(name, value) { return this.setAttribute(LABEL, name, value); } | ||||
|  | ||||
|     /** | ||||
|      * Update's given relation's value or creates it if it doesn't exist | ||||
|      * | ||||
|      * @param {string} name - relation name | ||||
|      * @param {string} value - relation value (noteId) | ||||
|      */ | ||||
|     setRelation(name, value) { return this.setAttribute(RELATION, name, value); } | ||||
|  | ||||
|     /** | ||||
|      * Remove label name-value pair, if it exists. | ||||
|      * | ||||
|      * @param {string} name - label name | ||||
|      * @param {string} [value] - label value | ||||
|      */ | ||||
|     removeLabel(name, value) { return this.removeAttribute(LABEL, name, value); } | ||||
|  | ||||
|     /** | ||||
|      * Remove relation name-value pair, if it exists. | ||||
|      * | ||||
|      * @param {string} name - relation name | ||||
|      * @param {string} [value] - relation value (noteId) | ||||
|      */ | ||||
|     removeRelation(name, value) { return this.removeAttribute(RELATION, name, value); } | ||||
|  | ||||
|     /** | ||||
|      * @return {string[]} return list of all descendant noteIds of this note. Returning just noteIds because number of notes can be huge. Includes also this note's noteId | ||||
|      */ | ||||
|     getDescendantNoteIds() { | ||||
|         return sql.getColumn(` | ||||
|             WITH RECURSIVE | ||||
|             tree(noteId) AS ( | ||||
|                 SELECT ? | ||||
|                 UNION | ||||
|                 SELECT branches.noteId FROM branches | ||||
|                     JOIN tree ON branches.parentNoteId = tree.noteId | ||||
|                     JOIN notes ON notes.noteId = branches.noteId | ||||
|                 WHERE notes.isDeleted = 0 | ||||
|                   AND branches.isDeleted = 0 | ||||
|             ) | ||||
|             SELECT noteId FROM tree`, [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Finds descendant notes with given attribute name and value. Only own attributes are considered, not inherited ones | ||||
|      * | ||||
|      * @param {string} type - attribute type (label, relation, etc.) | ||||
|      * @param {string} name - attribute name | ||||
|      * @param {string} [value] - attribute value | ||||
|      * @returns {Note[]} | ||||
|      */ | ||||
|     getDescendantNotesWithAttribute(type, name, value) { | ||||
|         const params = [this.noteId, name]; | ||||
|         let valueCondition = ""; | ||||
|  | ||||
|         if (value !== undefined) { | ||||
|             params.push(value); | ||||
|             valueCondition = " AND attributes.value = ?"; | ||||
|         } | ||||
|  | ||||
|         const notes = this.repository.getEntities(` | ||||
|             WITH RECURSIVE | ||||
|             tree(noteId) AS ( | ||||
|                 SELECT ? | ||||
|                 UNION | ||||
|                 SELECT branches.noteId FROM branches | ||||
|                     JOIN tree ON branches.parentNoteId = tree.noteId | ||||
|                     JOIN notes ON notes.noteId = branches.noteId | ||||
|                 WHERE notes.isDeleted = 0 | ||||
|                   AND branches.isDeleted = 0 | ||||
|             ) | ||||
|             SELECT notes.* FROM notes  | ||||
|             JOIN tree ON tree.noteId = notes.noteId | ||||
|             JOIN attributes ON attributes.noteId = notes.noteId | ||||
|             WHERE attributes.isDeleted = 0  | ||||
|               AND attributes.name = ? | ||||
|               ${valueCondition}  | ||||
|             ORDER BY noteId, position`, params); | ||||
|  | ||||
|         return notes; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Finds descendant notes with given label name and value. Only own labels are considered, not inherited ones | ||||
|      * | ||||
|      * @param {string} name - label name | ||||
|      * @param {string} [value] - label value | ||||
|      * @returns {Note[]} | ||||
|      */ | ||||
|     getDescendantNotesWithLabel(name, value) { return this.getDescendantNotesWithAttribute(LABEL, name, value); } | ||||
|  | ||||
|     /** | ||||
|      * Finds descendant notes with given relation name and value. Only own relations are considered, not inherited ones | ||||
|      * | ||||
|      * @param {string} name - relation name | ||||
|      * @param {string} [value] - relation value | ||||
|      * @returns {Note[]} | ||||
|      */ | ||||
|     getDescendantNotesWithRelation(name, value) { return this.getDescendantNotesWithAttribute(RELATION, name, value); } | ||||
|  | ||||
|     /** | ||||
|      * Returns note revisions of this note. | ||||
|      * | ||||
|      * @returns {NoteRevision[]} | ||||
|      */ | ||||
|     getRevisions() { | ||||
|         return this.repository.getEntities("SELECT * FROM note_revisions WHERE noteId = ?", [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get list of links coming out of this note. | ||||
|      * | ||||
|      * @deprecated - not intended for general use | ||||
|      * @returns {Attribute[]} | ||||
|      */ | ||||
|     getLinks() { | ||||
|         return this.repository.getEntities(` | ||||
|             SELECT *  | ||||
|             FROM attributes  | ||||
|             WHERE noteId = ? AND  | ||||
|                   isDeleted = 0 AND | ||||
|                   type = 'relation' AND | ||||
|                   name IN ('internalLink', 'imageLink', 'relationMapLink', 'includeNoteLink')`, [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @returns {Branch[]} | ||||
|      */ | ||||
|     getBranches() { | ||||
|         return this.repository.getEntities("SELECT * FROM branches WHERE isDeleted = 0 AND noteId = ?", [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @returns {boolean} - true if note has children | ||||
|      */ | ||||
|     hasChildren() { | ||||
|         return this.getChildNotes().length > 0; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @returns {Note[]} child notes of this note | ||||
|      */ | ||||
|     getChildNotes() { | ||||
|         return this.repository.getEntities(` | ||||
|           SELECT notes.*  | ||||
|           FROM branches  | ||||
|             JOIN notes USING(noteId)  | ||||
|           WHERE notes.isDeleted = 0 | ||||
|                 AND branches.isDeleted = 0 | ||||
|                 AND branches.parentNoteId = ? | ||||
|           ORDER BY branches.notePosition`, [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @returns {Branch[]} child branches of this note | ||||
|      */ | ||||
|     getChildBranches() { | ||||
|         return this.repository.getEntities(` | ||||
|           SELECT branches.*  | ||||
|           FROM branches  | ||||
|           WHERE branches.isDeleted = 0 | ||||
|                 AND branches.parentNoteId = ? | ||||
|           ORDER BY branches.notePosition`, [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @returns {Note[]} parent notes of this note (note can have multiple parents because of cloning) | ||||
|      */ | ||||
|     getParentNotes() { | ||||
|         return this.repository.getEntities(` | ||||
|           SELECT parent_notes.*  | ||||
|           FROM  | ||||
|             branches AS child_tree  | ||||
|             JOIN notes AS parent_notes ON parent_notes.noteId = child_tree.parentNoteId  | ||||
|           WHERE child_tree.noteId = ? | ||||
|                 AND child_tree.isDeleted = 0 | ||||
|                 AND parent_notes.isDeleted = 0`, [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return {string[][]} - array of notePaths (each represented by array of noteIds constituting the particular note path) | ||||
|      */ | ||||
|     getAllNotePaths() { | ||||
|         if (this.noteId === 'root') { | ||||
|             return [['root']]; | ||||
|         } | ||||
|  | ||||
|         const notePaths = []; | ||||
|  | ||||
|         for (const parentNote of this.getParentNotes()) { | ||||
|             for (const parentPath of parentNote.getAllNotePaths()) { | ||||
|                 parentPath.push(this.noteId); | ||||
|                 notePaths.push(parentPath); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return notePaths; | ||||
|     } | ||||
|  | ||||
|     getRelationDefinitions() { | ||||
|         return this.getLabels() | ||||
|             .filter(l => l.name.startsWith("relation:")); | ||||
|     } | ||||
|  | ||||
|     getLabelDefinitions() { | ||||
|         return this.getLabels() | ||||
|             .filter(l => l.name.startsWith("relation:")); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param ancestorNoteId | ||||
|      * @return {boolean} - true if ancestorNoteId occurs in at least one of the note's paths | ||||
|      */ | ||||
|     isDescendantOfNote(ancestorNoteId) { | ||||
|         const notePaths = this.getAllNotePaths(); | ||||
|  | ||||
|         return notePaths.some(path => path.includes(ancestorNoteId)); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (!this.isDeleted) { | ||||
|             this.isDeleted = false; | ||||
|         } | ||||
|  | ||||
|         if (!this.dateCreated) { | ||||
|             this.dateCreated = dateUtils.localNowDateTime(); | ||||
|         } | ||||
|  | ||||
|         if (!this.utcDateCreated) { | ||||
|             this.utcDateCreated = dateUtils.utcNowDateTime(); | ||||
|         } | ||||
|  | ||||
|         super.beforeSaving(); | ||||
|  | ||||
|         this.dateModified = dateUtils.localNowDateTime(); | ||||
|         this.utcDateModified = dateUtils.utcNowDateTime(); | ||||
|     } | ||||
|  | ||||
|     // cannot be static! | ||||
|     updatePojo(pojo) { | ||||
|         if (pojo.isProtected) { | ||||
|             if (this.isContentAvailable) { | ||||
|                 pojo.title = protectedSessionService.encrypt(pojo.title); | ||||
|             } | ||||
|             else { | ||||
|                 // updating protected note outside of protected session means we will keep original ciphertexts | ||||
|                 delete pojo.title; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         delete pojo.isContentAvailable; | ||||
|         delete pojo.__attributeCache; | ||||
|         delete pojo.__ownedAttributeCache; | ||||
|         delete pojo.content; | ||||
|         /** zero references to contentHash, probably can be removed */ | ||||
|         delete pojo.contentHash; | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = Note; | ||||
| </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="ApiToken.html">ApiToken</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="Entity.html">Entity</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.6</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,99 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/note_image.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: entities/note_image.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| const Entity = require('./entity'); | ||||
| const repository = require('../services/repository'); | ||||
| const dateUtils = require('../services/date_utils'); | ||||
|  | ||||
| /** | ||||
|  * This class represents image's placement in the note(s). One image may be placed into several notes. | ||||
|  * | ||||
|  * @param {string} noteImageId | ||||
|  * @param {string} noteId | ||||
|  * @param {string} imageId | ||||
|  * @param {boolean} isDeleted | ||||
|  * @param {string} dateModified | ||||
|  * @param {string} dateCreated | ||||
|  * | ||||
|  * @extends Entity | ||||
|  */ | ||||
| class NoteImage extends Entity { | ||||
|     static get entityName() { return "note_images"; } | ||||
|     static get primaryKeyName() { return "noteImageId"; } | ||||
|     static get hashedProperties() { return ["noteImageId", "noteId", "imageId", "isDeleted", "dateCreated"]; } | ||||
|  | ||||
|     async getNote() { | ||||
|         return await repository.getEntity("SELECT * FROM notes WHERE noteId = ?", [this.noteId]); | ||||
|     } | ||||
|  | ||||
|     async getImage() { | ||||
|         return await repository.getEntity("SELECT * FROM images WHERE imageId = ?", [this.imageId]); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (!this.isDeleted) { | ||||
|             this.isDeleted = false; | ||||
|         } | ||||
|  | ||||
|         if (!this.dateCreated) { | ||||
|             this.dateCreated = dateUtils.nowDate(); | ||||
|         } | ||||
|  | ||||
|         super.beforeSaving(); | ||||
|  | ||||
|         if (this.isChanged) { | ||||
|             this.dateModified = dateUtils.nowDate(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = NoteImage;</code></pre> | ||||
|         </article> | ||||
|     </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</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="Entity.html">Entity</a></li><li><a href="Image.html">Image</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteImage.html">NoteImage</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/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Oct 07 2018 16:26:59 GMT+0200 (CEST) | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,204 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/note_revision.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: entities/note_revision.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| const Entity = require('./entity'); | ||||
| const protectedSessionService = require('../services/protected_session'); | ||||
| const utils = require('../services/utils'); | ||||
| const sql = require('../services/sql'); | ||||
| const dateUtils = require('../services/date_utils'); | ||||
| const entityChangesService = require('../services/entity_changes.js'); | ||||
|  | ||||
| /** | ||||
|  * NoteRevision represents snapshot of note's title and content at some point in the past. It's used for seamless note versioning. | ||||
|  * | ||||
|  * @property {string} noteRevisionId | ||||
|  * @property {string} noteId | ||||
|  * @property {string} type | ||||
|  * @property {string} mime | ||||
|  * @property {string} title | ||||
|  * @property {boolean} isProtected | ||||
|  * @property {string} dateLastEdited | ||||
|  * @property {string} dateCreated | ||||
|  * @property {string} utcDateLastEdited | ||||
|  * @property {string} utcDateCreated | ||||
|  * @property {string} utcDateModified | ||||
|  * | ||||
|  * @extends Entity | ||||
|  */ | ||||
| class NoteRevision extends Entity { | ||||
|     static get entityName() { return "note_revisions"; } | ||||
|     static get primaryKeyName() { return "noteRevisionId"; } | ||||
|     static get hashedProperties() { return ["noteRevisionId", "noteId", "title", "isProtected", "dateLastEdited", "dateCreated", "utcDateLastEdited", "utcDateCreated", "utcDateModified"]; } | ||||
|  | ||||
|     constructor(row) { | ||||
|         super(row); | ||||
|  | ||||
|         this.isProtected = !!this.isProtected; | ||||
|  | ||||
|         if (this.isProtected) { | ||||
|             if (protectedSessionService.isProtectedSessionAvailable()) { | ||||
|                 this.title = protectedSessionService.decryptString(this.title); | ||||
|             } | ||||
|             else { | ||||
|                 this.title = "[Protected]"; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     getNote() { | ||||
|         return this.repository.getNote(this.noteId); | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} true if the note has string content (not binary) */ | ||||
|     isStringNote() { | ||||
|         return utils.isStringNote(this.type, this.mime); | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|      * Note revision content has quite special handling - it's not a separate entity, but a lazily loaded | ||||
|      * part of NoteRevision entity with it's own sync. Reason behind this hybrid design is that | ||||
|      * content can be quite large and it's not necessary to load it / fill memory for any note access even | ||||
|      * if we don't need a content, especially for bulk operations like search. | ||||
|      * | ||||
|      * This is the same approach as is used for Note's content. | ||||
|      */ | ||||
|  | ||||
|     /** @returns {*} */ | ||||
|     getContent(silentNotFoundError = false) { | ||||
|         if (this.content === undefined) { | ||||
|             const res = sql.getRow(`SELECT content FROM note_revision_contents WHERE noteRevisionId = ?`, [this.noteRevisionId]); | ||||
|  | ||||
|             if (!res) { | ||||
|                 if (silentNotFoundError) { | ||||
|                     return undefined; | ||||
|                 } | ||||
|                 else { | ||||
|                     throw new Error("Cannot find note revision content for noteRevisionId=" + this.noteRevisionId); | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             this.content = res.content; | ||||
|             if (this.isProtected) { | ||||
|                 if (protectedSessionService.isProtectedSessionAvailable()) { | ||||
|                     this.content = protectedSessionService.decrypt(this.content); | ||||
|                 } | ||||
|                 else { | ||||
|                     this.content = ""; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if (this.isStringNote()) { | ||||
|             return this.content === null | ||||
|                 ? "" | ||||
|                 : this.content.toString("UTF-8"); | ||||
|         } | ||||
|         else { | ||||
|             return this.content; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     setContent(content) { | ||||
|         this.content = content; | ||||
|  | ||||
|         const pojo = { | ||||
|             noteRevisionId: this.noteRevisionId, | ||||
|             content: content, | ||||
|             utcDateModified: dateUtils.utcNowDateTime() | ||||
|         }; | ||||
|  | ||||
|         if (this.isProtected) { | ||||
|             if (protectedSessionService.isProtectedSessionAvailable()) { | ||||
|                 pojo.content = protectedSessionService.encrypt(pojo.content); | ||||
|             } | ||||
|             else { | ||||
|                 throw new Error(`Cannot update content of noteRevisionId=${this.noteRevisionId} since we're out of protected session.`); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         sql.upsert("note_revision_contents", "noteRevisionId", pojo); | ||||
|  | ||||
|         const hash = utils.hash(this.noteRevisionId + "|" + content); | ||||
|  | ||||
|         entityChangesService.addEntityChange({ | ||||
|             entityName: 'note_revision_contents', | ||||
|             entityId: this.noteRevisionId, | ||||
|             hash: hash, | ||||
|             isErased: false, | ||||
|             utcDateChanged: this.getUtcDateChanged() | ||||
|         }, null); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         super.beforeSaving(); | ||||
|  | ||||
|         this.utcDateModified = dateUtils.utcNowDateTime(); | ||||
|     } | ||||
|  | ||||
|     // cannot be static! | ||||
|     updatePojo(pojo) { | ||||
|         if (pojo.isProtected) { | ||||
|             if (protectedSessionService.isProtectedSessionAvailable()) { | ||||
|                 pojo.title = protectedSessionService.encrypt(pojo.title); | ||||
|             } | ||||
|             else { | ||||
|                 // updating protected note outside of protected session means we will keep original ciphertexts | ||||
|                 delete pojo.title; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         delete pojo.content; | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = NoteRevision; | ||||
| </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="ApiToken.html">ApiToken</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="Entity.html">Entity</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.6</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,90 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/option.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: entities/option.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| const Entity = require('./entity'); | ||||
| const dateUtils = require('../services/date_utils'); | ||||
|  | ||||
| /** | ||||
|  * Option represents name-value pair, either directly configurable by the user or some system property. | ||||
|  * | ||||
|  * @property {string} name | ||||
|  * @property {string} value | ||||
|  * @property {boolean} isSynced | ||||
|  * @property {string} utcDateModified | ||||
|  * @property {string} utcDateCreated | ||||
|  * | ||||
|  * @extends Entity | ||||
|  */ | ||||
| class Option extends Entity { | ||||
|     static get entityName() { return "options"; } | ||||
|     static get primaryKeyName() { return "name"; } | ||||
|     static get hashedProperties() { return ["name", "value"]; } | ||||
|  | ||||
|     constructor(row) { | ||||
|         super(row); | ||||
|  | ||||
|         this.isSynced = !!this.isSynced; | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (!this.utcDateCreated) { | ||||
|             this.utcDateCreated = dateUtils.utcNowDateTime(); | ||||
|         } | ||||
|  | ||||
|         super.beforeSaving(); | ||||
|  | ||||
|         this.utcDateModified = dateUtils.utcNowDateTime(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = Option; | ||||
| </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="ApiToken.html">ApiToken</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="Entity.html">Entity</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.6</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,79 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/recent_note.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: entities/recent_note.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| const Entity = require('./entity'); | ||||
| const dateUtils = require('../services/date_utils'); | ||||
|  | ||||
| /** | ||||
|  * RecentNote represents recently visited note. | ||||
|  * | ||||
|  * @property {string} noteId | ||||
|  * @property {string} notePath | ||||
|  * @property {string} utcDateCreated | ||||
|  * | ||||
|  * @extends Entity | ||||
|  */ | ||||
| class RecentNote extends Entity { | ||||
|     static get entityName() { return "recent_notes"; } | ||||
|     static get primaryKeyName() { return "noteId"; } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (!this.utcDateCreated) { | ||||
|             this.utcDateCreated = dateUtils.utcNowDateTime(); | ||||
|         } | ||||
|  | ||||
|         super.beforeSaving(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = RecentNote; | ||||
| </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="ApiToken.html">ApiToken</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="Entity.html">Entity</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.6</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1083,7 +1083,7 @@ | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -50,7 +50,7 @@ | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -1252,7 +1252,7 @@ | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -86,21 +86,21 @@ function BackendScriptApi(currentNote, apiParams) { | ||||
|      * @param {string} noteId | ||||
|      * @returns {Note|null} | ||||
|      */ | ||||
|     this.getNote = becca.getNote; | ||||
|     this.getNote = noteId => becca.getNote(noteId); | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * @param {string} branchId | ||||
|      * @returns {Branch|null} | ||||
|      */ | ||||
|     this.getBranch = becca.getBranch; | ||||
|     this.getBranch = branchId => becca.getBranch(branchId); | ||||
|  | ||||
|     /** | ||||
|      * @method | ||||
|      * @param {string} attributeId | ||||
|      * @returns {Attribute|null} | ||||
|      */ | ||||
|     this.getAttribute = becca.getAttribute; | ||||
|     this.getAttribute = attributeId => becca.getAttribute(attributeId); | ||||
|  | ||||
|     /** | ||||
|      * This is a powerful search method - you can search by attributes and their values, e.g.: | ||||
| @@ -457,7 +457,7 @@ module.exports = BackendScriptApi; | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -395,7 +395,7 @@ module.exports = { | ||||
| </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="ApiToken.html">ApiToken</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</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="ApiToken.html">ApiToken</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="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"> | ||||
|   | ||||
| @@ -1,410 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: sql.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: sql.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>"use strict"; | ||||
|  | ||||
| /** | ||||
|  * @module sql | ||||
|  */ | ||||
|  | ||||
| const log = require('./log'); | ||||
| const Database = require('better-sqlite3'); | ||||
| const dataDir = require('./data_dir'); | ||||
| const cls = require('./cls'); | ||||
|  | ||||
| const dbConnection = new Database(dataDir.DOCUMENT_PATH); | ||||
| dbConnection.pragma('journal_mode = WAL'); | ||||
|  | ||||
| [`exit`, `SIGINT`, `SIGUSR1`, `SIGUSR2`, `SIGTERM`].forEach(eventType => { | ||||
|     process.on(eventType, () => { | ||||
|         if (dbConnection) { | ||||
|             // closing connection is especially important to fold -wal file into the main DB file | ||||
|             // (see https://sqlite.org/tempfiles.html for details) | ||||
|             dbConnection.close(); | ||||
|         } | ||||
|     }); | ||||
| }); | ||||
|  | ||||
| function insert(tableName, rec, replace = false) { | ||||
|     const keys = Object.keys(rec); | ||||
|     if (keys.length === 0) { | ||||
|         log.error("Can't insert empty object into table " + tableName); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     const columns = keys.join(", "); | ||||
|     const questionMarks = keys.map(p => "?").join(", "); | ||||
|  | ||||
|     const query = "INSERT " + (replace ? "OR REPLACE" : "") + " INTO " + tableName + "(" + columns + ") VALUES (" + questionMarks + ")"; | ||||
|  | ||||
|     const res = execute(query, Object.values(rec)); | ||||
|  | ||||
|     return res ? res.lastInsertRowid : null; | ||||
| } | ||||
|  | ||||
| function replace(tableName, rec) { | ||||
|     return insert(tableName, rec, true); | ||||
| } | ||||
|  | ||||
| function upsert(tableName, primaryKey, rec) { | ||||
|     const keys = Object.keys(rec); | ||||
|     if (keys.length === 0) { | ||||
|         log.error("Can't upsert empty object into table " + tableName); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     const columns = keys.join(", "); | ||||
|  | ||||
|     const questionMarks = keys.map(colName => "@" + colName).join(", "); | ||||
|  | ||||
|     const updateMarks = keys.map(colName => `${colName} = @${colName}`).join(", "); | ||||
|  | ||||
|     const query = `INSERT INTO ${tableName} (${columns}) VALUES (${questionMarks})  | ||||
|                    ON CONFLICT (${primaryKey}) DO UPDATE SET ${updateMarks}`; | ||||
|  | ||||
|     for (const idx in rec) { | ||||
|         if (rec[idx] === true || rec[idx] === false) { | ||||
|             rec[idx] = rec[idx] ? 1 : 0; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     execute(query, rec); | ||||
| } | ||||
|  | ||||
| const statementCache = {}; | ||||
|  | ||||
| function stmt(sql) { | ||||
|     if (!(sql in statementCache)) { | ||||
|         statementCache[sql] = dbConnection.prepare(sql); | ||||
|     } | ||||
|  | ||||
|     return statementCache[sql]; | ||||
| } | ||||
|  | ||||
| function getRow(query, params = []) { | ||||
|     return wrap(query, s => s.get(params)); | ||||
| } | ||||
|  | ||||
| function getRowOrNull(query, params = []) { | ||||
|     const all = getRows(query, params); | ||||
|  | ||||
|     return all.length > 0 ? all[0] : null; | ||||
| } | ||||
|  | ||||
| function getValue(query, params = []) { | ||||
|     const row = getRowOrNull(query, params); | ||||
|  | ||||
|     if (!row) { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     return row[Object.keys(row)[0]]; | ||||
| } | ||||
|  | ||||
| // smaller values can result in better performance due to better usage of statement cache | ||||
| const PARAM_LIMIT = 100; | ||||
|  | ||||
| function getManyRows(query, params) { | ||||
|     let results = []; | ||||
|  | ||||
|     while (params.length > 0) { | ||||
|         const curParams = params.slice(0, Math.min(params.length, PARAM_LIMIT)); | ||||
|         params = params.slice(curParams.length); | ||||
|  | ||||
|         const curParamsObj = {}; | ||||
|  | ||||
|         let j = 1; | ||||
|         for (const param of curParams) { | ||||
|             curParamsObj['param' + j++] = param; | ||||
|         } | ||||
|  | ||||
|         let i = 1; | ||||
|         const questionMarks = curParams.map(() => ":param" + i++).join(","); | ||||
|         const curQuery = query.replace(/\?\?\?/g, questionMarks); | ||||
|  | ||||
|         const statement = curParams.length === PARAM_LIMIT | ||||
|             ? stmt(curQuery) | ||||
|             : dbConnection.prepare(curQuery); | ||||
|  | ||||
|         const subResults = statement.all(curParamsObj); | ||||
|         results = results.concat(subResults); | ||||
|     } | ||||
|  | ||||
|     return results; | ||||
| } | ||||
|  | ||||
| function getRows(query, params = []) { | ||||
|     return wrap(query, s => s.all(params)); | ||||
| } | ||||
|  | ||||
| function getRawRows(query, params = []) { | ||||
|     return wrap(query, s => s.raw().all(params)); | ||||
| } | ||||
|  | ||||
| function iterateRows(query, params = []) { | ||||
|     return stmt(query).iterate(params); | ||||
| } | ||||
|  | ||||
| function getMap(query, params = []) { | ||||
|     const map = {}; | ||||
|     const results = getRows(query, params); | ||||
|  | ||||
|     for (const row of results) { | ||||
|         const keys = Object.keys(row); | ||||
|  | ||||
|         map[row[keys[0]]] = row[keys[1]]; | ||||
|     } | ||||
|  | ||||
|     return map; | ||||
| } | ||||
|  | ||||
| function getColumn(query, params = []) { | ||||
|     const list = []; | ||||
|     const result = getRows(query, params); | ||||
|  | ||||
|     if (result.length === 0) { | ||||
|         return list; | ||||
|     } | ||||
|  | ||||
|     const key = Object.keys(result[0])[0]; | ||||
|  | ||||
|     for (const row of result) { | ||||
|         list.push(row[key]); | ||||
|     } | ||||
|  | ||||
|     return list; | ||||
| } | ||||
|  | ||||
| function execute(query, params = []) { | ||||
|     return wrap(query, s => s.run(params)); | ||||
| } | ||||
|  | ||||
| function executeWithoutTransaction(query, params = []) { | ||||
|     dbConnection.run(query, params); | ||||
| } | ||||
|  | ||||
| function executeMany(query, params) { | ||||
|     while (params.length > 0) { | ||||
|         const curParams = params.slice(0, Math.min(params.length, PARAM_LIMIT)); | ||||
|         params = params.slice(curParams.length); | ||||
|  | ||||
|         const curParamsObj = {}; | ||||
|  | ||||
|         let j = 1; | ||||
|         for (const param of curParams) { | ||||
|             curParamsObj['param' + j++] = param; | ||||
|         } | ||||
|  | ||||
|         let i = 1; | ||||
|         const questionMarks = curParams.map(() => ":param" + i++).join(","); | ||||
|         const curQuery = query.replace(/\?\?\?/g, questionMarks); | ||||
|  | ||||
|         dbConnection.prepare(curQuery).run(curParamsObj); | ||||
|     } | ||||
| } | ||||
|  | ||||
| function executeScript(query) { | ||||
|     return dbConnection.exec(query); | ||||
| } | ||||
|  | ||||
| function wrap(query, func) { | ||||
|     const startTimestamp = Date.now(); | ||||
|     let result; | ||||
|  | ||||
|     try { | ||||
|         result = func(stmt(query)); | ||||
|     } | ||||
|     catch (e) { | ||||
|         if (e.message.includes("The database connection is not open")) { | ||||
|             // this often happens on killing the app which puts these alerts in front of user | ||||
|             // in these cases error should be simply ignored. | ||||
|             console.log(e.message); | ||||
|  | ||||
|             return null | ||||
|         } | ||||
|  | ||||
|         throw e; | ||||
|     } | ||||
|  | ||||
|     const milliseconds = Date.now() - startTimestamp; | ||||
|  | ||||
|     if (milliseconds >= 20) { | ||||
|         if (query.includes("WITH RECURSIVE")) { | ||||
|             log.info(`Slow recursive query took ${milliseconds}ms.`); | ||||
|         } | ||||
|         else { | ||||
|             log.info(`Slow query took ${milliseconds}ms: ${query.trim().replace(/\s+/g, " ")}`); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| function transactional(func) { | ||||
|     try { | ||||
|         const ret = dbConnection.transaction(func).deferred(); | ||||
|  | ||||
|         if (!dbConnection.inTransaction) { // i.e. transaction was really committed (and not just savepoint released) | ||||
|             require('./ws').sendTransactionEntityChangesToAllClients(); | ||||
|         } | ||||
|  | ||||
|         return ret; | ||||
|     } | ||||
|     catch (e) { | ||||
|         const entityChanges = cls.getAndClearEntityChangeIds(); | ||||
|  | ||||
|         if (entityChanges.length > 0) { | ||||
|             log.info("Transaction rollback dirtied the becca, forcing reload."); | ||||
|  | ||||
|             require('../becca/becca_loader').load(); | ||||
|         } | ||||
|  | ||||
|         throw e; | ||||
|     } | ||||
| } | ||||
|  | ||||
| function fillParamList(paramIds, truncate = true) { | ||||
|     if (paramIds.length === 0) { | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if (truncate) { | ||||
|         execute("DELETE FROM param_list"); | ||||
|     } | ||||
|  | ||||
|     paramIds = Array.from(new Set(paramIds)); | ||||
|  | ||||
|     if (paramIds.length > 30000) { | ||||
|         fillParamList(paramIds.slice(30000), false); | ||||
|  | ||||
|         paramIds = paramIds.slice(0, 30000); | ||||
|     } | ||||
|  | ||||
|     // doing it manually to avoid this showing up on the sloq query list | ||||
|     const s = stmt(`INSERT INTO param_list VALUES ` + paramIds.map(paramId => `(?)`).join(','), paramIds); | ||||
|  | ||||
|     s.run(paramIds); | ||||
| } | ||||
|  | ||||
| module.exports = { | ||||
|     dbConnection, | ||||
|     insert, | ||||
|     replace, | ||||
|  | ||||
|     /** | ||||
|      * Get single value from the given query - first column from first returned row. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} query - SQL query with ? used as parameter placeholder | ||||
|      * @param {object[]} [params] - array of params if needed | ||||
|      * @return [object] - single value | ||||
|      */ | ||||
|     getValue, | ||||
|  | ||||
|     /** | ||||
|      * Get first returned row. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} query - SQL query with ? used as parameter placeholder | ||||
|      * @param {object[]} [params] - array of params if needed | ||||
|      * @return {object} - map of column name to column value | ||||
|      */ | ||||
|     getRow, | ||||
|     getRowOrNull, | ||||
|  | ||||
|     /** | ||||
|      * Get all returned rows. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} query - SQL query with ? used as parameter placeholder | ||||
|      * @param {object[]} [params] - array of params if needed | ||||
|      * @return {object[]} - array of all rows, each row is a map of column name to column value | ||||
|      */ | ||||
|     getRows, | ||||
|     getRawRows, | ||||
|     iterateRows, | ||||
|     getManyRows, | ||||
|  | ||||
|     /** | ||||
|      * Get a map of first column mapping to second column. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} query - SQL query with ? used as parameter placeholder | ||||
|      * @param {object[]} [params] - array of params if needed | ||||
|      * @return {object} - map of first column to second column | ||||
|      */ | ||||
|     getMap, | ||||
|  | ||||
|     /** | ||||
|      * Get a first column in an array. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} query - SQL query with ? used as parameter placeholder | ||||
|      * @param {object[]} [params] - array of params if needed | ||||
|      * @return {object[]} - array of first column of all returned rows | ||||
|      */ | ||||
|     getColumn, | ||||
|  | ||||
|     /** | ||||
|      * Execute SQL | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} query - SQL query with ? used as parameter placeholder | ||||
|      * @param {object[]} [params] - array of params if needed | ||||
|      */ | ||||
|     execute, | ||||
|     executeWithoutTransaction, | ||||
|     executeMany, | ||||
|     executeScript, | ||||
|     transactional, | ||||
|     upsert, | ||||
|     fillParamList | ||||
| }; | ||||
| </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="BackendScriptApi.html">BackendScriptApi</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.7</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										757
									
								
								docs/frontend_api/Attribute.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										757
									
								
								docs/frontend_api/Attribute.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,757 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Class: Attribute</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: Attribute</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <section> | ||||
|  | ||||
| <header> | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>Attribute<span class="signature">()</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">Attribute is an abstract concept which has two real uses - label (key - value pair) | ||||
| and relation (representing named relationship between source and target note)</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
|  | ||||
| <article> | ||||
|     <div class="container-overview"> | ||||
|      | ||||
|          | ||||
|  | ||||
|      | ||||
|     <h2>Constructor</h2> | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="Attribute"><span class="type-signature"></span>new Attribute<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="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line7">line 7</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="attributeId"><span class="type-signature"></span>attributeId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line16">line 16</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="isInheritable"><span class="type-signature"></span>isInheritable<span class="type-signature"> :boolean</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line28">line 28</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="name"><span class="type-signature"></span>name<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line22">line 22</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line18">line 18</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="position"><span class="type-signature"></span>position<span class="type-signature"> :int</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line26">line 26</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line20">line 20</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="value"><span class="type-signature"></span>value<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line24">line 24</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Methods</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="getNote"><span class="type-signature"></span>getNote<span class="signature">()</span><span class="type-signature"> → {<a href="NoteShort.html">NoteShort</a>}</span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line32">line 32</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <h5>Returns:</h5> | ||||
|  | ||||
|          | ||||
|  | ||||
|  | ||||
| <dl> | ||||
|     <dt> | ||||
|         Type | ||||
|     </dt> | ||||
|     <dd> | ||||
|          | ||||
| <span class="param-type"><a href="NoteShort.html">NoteShort</a></span> | ||||
|  | ||||
|  | ||||
|     </dd> | ||||
| </dl> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </article> | ||||
|  | ||||
| </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|  | ||||
| <footer> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -30,7 +30,8 @@ | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>Branch<span class="signature">()</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">Represents mapping between note and parent note</div> | ||||
|             <div class="class-description">Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple | ||||
| parents.</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
| @@ -93,7 +94,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line2">line 2</a> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line5">line 5</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -143,244 +144,26 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="branchId"><span class="type-signature"></span>branchId<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="branchId"><span class="type-signature"></span>branchId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <div class="description"> | ||||
|     primary key | ||||
| </div> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line11">line 11</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <h4 class="name" id="fromSearchNote"><span class="type-signature"></span>fromSearchNote<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="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line23">line 23</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="isExpanded"><span class="type-signature"></span>isExpanded<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="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line21">line 21</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<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="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line13">line 13</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="notePosition"><span class="type-signature"></span>notePosition<span class="type-signature"></span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -433,13 +216,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="parentNoteId"><span class="type-signature"></span>parentNoteId<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="fromSearchNote"><span class="type-signature"></span>fromSearchNote<span class="type-signature"> :boolean</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -473,7 +266,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line15">line 15</a> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line29">line 29</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -491,13 +284,91 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="prefix"><span class="type-signature"></span>prefix<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="isExpanded"><span class="type-signature"></span>isExpanded<span class="type-signature"> :boolean</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line27">line 27</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -548,6 +419,210 @@ | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="notePosition"><span class="type-signature"></span>notePosition<span class="type-signature"> :int</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line23">line 23</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="parentNoteId"><span class="type-signature"></span>parentNoteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line21">line 21</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="prefix"><span class="type-signature"></span>prefix<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line25">line 25</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -607,7 +682,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line27">line 27</a> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line33">line 33</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -709,7 +784,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line32">line 32</a> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line38">line 38</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -811,7 +886,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line37">line 37</a> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line43">line 43</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -913,7 +988,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line42">line 42</a> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line48">line 48</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -981,7 +1056,7 @@ | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
| @@ -1928,7 +1928,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line437">line 437</a> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line446">line 446</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -3147,7 +3147,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line406">line 406</a> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line415">line 415</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -3635,6 +3635,161 @@ otherwise (by e.g. createNoteLink()) | ||||
|  | ||||
|  | ||||
|  | ||||
| <h5>Returns:</h5> | ||||
|  | ||||
|          | ||||
|  | ||||
|  | ||||
| <dl> | ||||
|     <dt> | ||||
|         Type | ||||
|     </dt> | ||||
|     <dd> | ||||
|          | ||||
| <span class="param-type">Promise.<<a href="NoteShort.html">NoteShort</a>></span> | ||||
|  | ||||
|  | ||||
|     </dd> | ||||
| </dl> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="getWeekNote"><span class="type-signature"></span>getWeekNote<span class="signature">(date)</span><span class="type-signature"> → {Promise.<<a href="NoteShort.html">NoteShort</a>>}</span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
| <div class="description"> | ||||
|     Returns date-note for the first date of the week of the given date. If it doesn't exist, it is automatically created. | ||||
| </div> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Parameters:</h5> | ||||
|      | ||||
|  | ||||
| <table class="params"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>date</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">e.g. "2019-04-29"</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|     </tbody> | ||||
| </table> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line406">line 406</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <h5>Returns:</h5> | ||||
|  | ||||
|          | ||||
| @@ -3765,7 +3920,7 @@ otherwise (by e.g. createNoteLink()) | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line415">line 415</a> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line424">line 424</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4651,7 +4806,7 @@ otherwise (by e.g. createNoteLink()) | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line464">line 464</a> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line473">line 473</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4805,7 +4960,7 @@ otherwise (by e.g. createNoteLink()) | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line455">line 455</a> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line464">line 464</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5746,7 +5901,7 @@ Internally this serializes the anonymous function into string and sends it to ba | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line424">line 424</a> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line433">line 433</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6263,7 +6418,7 @@ Typical use case is when new note has been created, we should wait until it is s | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line448">line 448</a> | ||||
|         <a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line457">line 457</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6309,7 +6464,7 @@ Typical use case is when new note has been created, we should wait until it is s | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,280 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Class: KeyboardActions</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: KeyboardActions</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <section> | ||||
|  | ||||
| <header> | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>KeyboardActions<span class="signature">()</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">blaa vlaa</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
|  | ||||
| <article> | ||||
|     <div class="container-overview"> | ||||
|      | ||||
|          | ||||
|  | ||||
|      | ||||
|     <h2>Constructor</h2> | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="KeyboardActions"><span class="type-signature"></span>new KeyboardActions<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="services_keyboard_actions.js.html">services/keyboard_action.js</a>, <a href="services_keyboard_actions.js.html#line5">line 5</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="JUMP_TO"><span class="type-signature"></span>JUMP_TO<span class="type-signature"></span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5 class="subsection-title">Properties:</h5> | ||||
|  | ||||
|      | ||||
|  | ||||
| <table class="props"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </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="services_keyboard_actions.js.html">services/keyboard_action.js</a>, <a href="services_keyboard_actions.js.html#line7">line 7</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </article> | ||||
|  | ||||
| </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="KeyboardActions.html">KeyboardActions</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</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.3</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -143,13 +143,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="combinedDateModified"><span class="type-signature"></span>combinedDateModified<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="combinedDateModified"><span class="type-signature"></span>combinedDateModified<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -183,7 +193,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line32">line 32</a> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line33">line 33</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -201,13 +211,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="combinedUtcDateModified"><span class="type-signature"></span>combinedUtcDateModified<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="combinedUtcDateModified"><span class="type-signature"></span>combinedUtcDateModified<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -241,7 +261,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line35">line 35</a> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line36">line 36</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -259,14 +279,28 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="content"><span class="type-signature"></span>content<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="content"><span class="type-signature"></span>content<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <div class="description"> | ||||
|     can either contain the whole content (in e.g. string notes), only part (large text notes) or nothing at all (binary notes, images) | ||||
| </div> | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -299,7 +333,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line12">line 12</a> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line13">line 13</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -317,13 +351,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="contentLength"><span class="type-signature"></span>contentLength<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="contentLength"><span class="type-signature"></span>contentLength<span class="type-signature"> :int</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -357,7 +401,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line15">line 15</a> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line16">line 16</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -375,13 +419,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="dateCreated"><span class="type-signature"></span>dateCreated<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="dateCreated"><span class="type-signature"></span>dateCreated<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -415,7 +469,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line18">line 18</a> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line19">line 19</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -433,13 +487,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="dateModified"><span class="type-signature"></span>dateModified<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="dateModified"><span class="type-signature"></span>dateModified<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -473,7 +537,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line21">line 21</a> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line22">line 22</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -491,13 +555,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -549,13 +623,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateCreated"><span class="type-signature"></span>utcDateCreated<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="utcDateCreated"><span class="type-signature"></span>utcDateCreated<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -589,7 +673,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line24">line 24</a> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line25">line 25</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -607,13 +691,23 @@ | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -647,7 +741,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line27">line 27</a> | ||||
|         <a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line28">line 28</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -681,7 +775,7 @@ | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
| @@ -1,464 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Class: NoteFull</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: NoteFull</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <section> | ||||
|  | ||||
| <header> | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>NoteFull<span class="signature">()</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">Represents full note, specifically including note's content.</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
|  | ||||
| <article> | ||||
|     <div class="container-overview"> | ||||
|      | ||||
|          | ||||
|  | ||||
|      | ||||
|     <h2>Constructor</h2> | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="NoteFull"><span class="type-signature"></span>new NoteFull<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="entities_note_full.js.html">entities/note_full.js</a>, <a href="entities_note_full.js.html#line7">line 7</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="content"><span class="type-signature"></span>content<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="entities_note_full.js.html">entities/note_full.js</a>, <a href="entities_note_full.js.html#line11">line 11</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="dateCreated"><span class="type-signature"></span>dateCreated<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="entities_note_full.js.html">entities/note_full.js</a>, <a href="entities_note_full.js.html#line14">line 14</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="dateModified"><span class="type-signature"></span>dateModified<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="entities_note_full.js.html">entities/note_full.js</a>, <a href="entities_note_full.js.html#line17">line 17</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateCreated"><span class="type-signature"></span>utcDateCreated<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="entities_note_full.js.html">entities/note_full.js</a>, <a href="entities_note_full.js.html#line20">line 20</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<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="entities_note_full.js.html">entities/note_full.js</a>, <a href="entities_note_full.js.html#line23">line 23</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </article> | ||||
|  | ||||
| </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</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.3</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -421,13 +421,23 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="isProtected"><span class="type-signature"></span>isProtected<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="isProtected"><span class="type-signature"></span>isProtected<span class="type-signature"> :boolean</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -479,14 +489,28 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="mime"><span class="type-signature"></span>mime<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="mime"><span class="type-signature"></span>mime<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <div class="description"> | ||||
|     content-type, e.g. "application/json" | ||||
| </div> | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -519,7 +543,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line65">line 65</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line71">line 71</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -537,13 +561,23 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -799,13 +833,23 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="title"><span class="type-signature"></span>title<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="title"><span class="type-signature"></span>title<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -857,14 +901,28 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"></span></h4> | ||||
| <h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <div class="description"> | ||||
|     one of 'text', 'code', 'file' or 'render' | ||||
| </div> | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -897,7 +955,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line63">line 63</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line66">line 66</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1045,7 +1103,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line469">line 469</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line475">line 475</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1245,7 +1303,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line210">line 210</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line216">line 216</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1423,7 +1481,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line491">line 491</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line497">line 497</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1529,7 +1587,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line133">line 133</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line139">line 139</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1631,7 +1689,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line128">line 128</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line134">line 134</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1733,7 +1791,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line145">line 145</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line151">line 151</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1835,7 +1893,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line183">line 183</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line189">line 189</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1937,7 +1995,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line188">line 188</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line194">line 194</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2088,7 +2146,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line531">line 531</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line537">line 537</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2255,7 +2313,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line358">line 358</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line364">line 364</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2410,7 +2468,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line555">line 555</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line561">line 561</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2520,7 +2578,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line680">line 680</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line683">line 683</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2694,7 +2752,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line458">line 458</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line464">line 464</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2894,7 +2952,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line197">line 197</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line203">line 203</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -3072,7 +3130,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line480">line 480</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line486">line 486</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -3227,7 +3285,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line525">line 525</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line531">line 531</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -3394,7 +3452,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line350">line 350</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line356">line 356</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -3549,7 +3607,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line549">line 549</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line555">line 555</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -3704,7 +3762,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line537">line 537</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line543">line 543</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -3871,7 +3929,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line423">line 423</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line429">line 429</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4026,7 +4084,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line561">line 561</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line567">line 567</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4132,7 +4190,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line153">line 153</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line159">line 159</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4234,7 +4292,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line158">line 158</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line164">line 164</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4385,7 +4443,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line543">line 543</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line549">line 549</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4552,7 +4610,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line431">line 431</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line437">line 437</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4707,7 +4765,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line573">line 573</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line579">line 579</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4877,7 +4935,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line583">line 583</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line589">line 589</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5028,7 +5086,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line567">line 567</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line573">line 573</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5134,7 +5192,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line724">line 724</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line727">line 727</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5247,7 +5305,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line659">line 659</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line662">line 662</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5353,7 +5411,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line669">line 669</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line672">line 672</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5455,7 +5513,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line597">line 597</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line603">line 603</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5629,7 +5687,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line440">line 440</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line446">line 446</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5735,7 +5793,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line140">line 140</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line146">line 146</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5886,7 +5944,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line507">line 507</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line513">line 513</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6064,7 +6122,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line449">line 449</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line455">line 455</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6219,7 +6277,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line501">line 501</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line507">line 507</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6374,7 +6432,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line513">line 513</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line519">line 519</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6529,7 +6587,7 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line519">line 519</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line525">line 525</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6594,11 +6652,6 @@ This note's representation is used in note tree and is kept in Froca.</div> | ||||
|  | ||||
|  | ||||
|  | ||||
| <div class="description"> | ||||
|     Clear note's attributes cache to force fresh reload for next attribute request. | ||||
| Cache is note instance scoped. | ||||
| </div> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -6628,6 +6681,8 @@ Cache is note instance scoped. | ||||
|      | ||||
|  | ||||
|      | ||||
|         <dt class="important tag-deprecated">Deprecated:</dt><dd><ul class="dummy"><li>NOOP</li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
| @@ -6640,7 +6695,7 @@ Cache is note instance scoped. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line650">line 650</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line655">line 655</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6724,7 +6779,7 @@ Cache is note instance scoped. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line719">line 719</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line722">line 722</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6830,7 +6885,7 @@ Cache is note instance scoped. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line711">line 711</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line714">line 714</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6936,7 +6991,7 @@ Cache is note instance scoped. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line103">line 103</a> | ||||
|         <a href="entities_note_short.js.html">entities/note_short.js</a>, <a href="entities_note_short.js.html#line109">line 109</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -7000,7 +7055,7 @@ Cache is note instance scoped. | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
| @@ -1,85 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: branch.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: branch.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>/** Represents mapping between note and parent note */ | ||||
| class Branch { | ||||
|     constructor(froca, row) { | ||||
|         this.froca = froca; | ||||
|         /** @param {string} primary key */ | ||||
|         this.branchId = row.branchId; | ||||
|         /** @param {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         this.note = null; | ||||
|         /** @param {string} */ | ||||
|         this.parentNoteId = row.parentNoteId; | ||||
|         /** @param {int} */ | ||||
|         this.notePosition = row.notePosition; | ||||
|         /** @param {string} */ | ||||
|         this.prefix = row.prefix; | ||||
|         /** @param {boolean} */ | ||||
|         this.isExpanded = row.isExpanded; | ||||
|     } | ||||
|  | ||||
|     /** @returns {NoteShort} */ | ||||
|     async getNote() { | ||||
|         return await this.froca.getNote(this.noteId); | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} true if it's top level, meaning its parent is root note */ | ||||
|     isTopLevel() { | ||||
|         return this.parentNoteId === 'root'; | ||||
|     } | ||||
|  | ||||
|     get toString() { | ||||
|         return `Branch(branchId=${this.branchId})`; | ||||
|     } | ||||
| } | ||||
|  | ||||
| export default Branch;</code></pre> | ||||
|         </article> | ||||
|     </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|  | ||||
| <footer> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Thu Aug 23 2018 12:50:56 GMT+0200 (CEST) | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -28,6 +28,10 @@ | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>import promotedAttributeDefinitionParser from '../services/promoted_attribute_definition_parser.js'; | ||||
|  | ||||
| /** | ||||
|  * Attribute is an abstract concept which has two real uses - label (key - value pair) | ||||
|  * and relation (representing named relationship between source and target note) | ||||
|  */ | ||||
| class Attribute { | ||||
|     constructor(froca, row) { | ||||
|         this.froca = froca; | ||||
| @@ -36,19 +40,19 @@ class Attribute { | ||||
|     } | ||||
|  | ||||
|     update(row) { | ||||
|         /** @param {string} attributeId */ | ||||
|         /** @type {string} */ | ||||
|         this.attributeId = row.attributeId; | ||||
|         /** @param {string} noteId */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @param {string} type */ | ||||
|         /** @type {string} */ | ||||
|         this.type = row.type; | ||||
|         /** @param {string} name */ | ||||
|         /** @type {string} */ | ||||
|         this.name = row.name; | ||||
|         /** @param {string} value */ | ||||
|         /** @type {string} */ | ||||
|         this.value = row.value; | ||||
|         /** @param {int} position */ | ||||
|         /** @type {int} */ | ||||
|         this.position = row.position; | ||||
|         /** @param {boolean} isInheritable */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isInheritable = !!row.isInheritable; | ||||
|     } | ||||
|  | ||||
| @@ -100,7 +104,7 @@ export default Attribute; | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
| @@ -26,7 +26,10 @@ | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>/** Represents mapping between note and parent note */ | ||||
|             <pre class="prettyprint source linenums"><code>/** | ||||
|  * Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple | ||||
|  * parents. | ||||
|  */ | ||||
| class Branch { | ||||
|     constructor(froca, row) { | ||||
|         this.froca = froca; | ||||
| @@ -35,19 +38,22 @@ class Branch { | ||||
|     } | ||||
|  | ||||
|     update(row) { | ||||
|         /** @param {string} primary key */ | ||||
|         /** | ||||
|          * primary key | ||||
|          * @type {string} | ||||
|          */ | ||||
|         this.branchId = row.branchId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.parentNoteId = row.parentNoteId; | ||||
|         /** @param {int} */ | ||||
|         /** @type {int} */ | ||||
|         this.notePosition = row.notePosition; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.prefix = row.prefix; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isExpanded = !!row.isExpanded; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.fromSearchNote = !!row.fromSearchNote; | ||||
|     } | ||||
|  | ||||
| @@ -87,7 +93,7 @@ export default Branch; | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
| @@ -31,35 +31,36 @@ | ||||
|  */ | ||||
| class NoteComplement { | ||||
|     constructor(row) { | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|  | ||||
|         /** | ||||
|          * @param {string} - can either contain the whole content (in e.g. string notes), only part (large text notes) or nothing at all (binary notes, images) | ||||
|          * can either contain the whole content (in e.g. string notes), only part (large text notes) or nothing at all (binary notes, images) | ||||
|          * @type {string} | ||||
|          */ | ||||
|         this.content = row.content; | ||||
|  | ||||
|         /** @param {int} */ | ||||
|         /** @type {int} */ | ||||
|         this.contentLength = row.contentLength; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateCreated = row.dateCreated; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateModified = row.dateModified; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateCreated = row.utcDateCreated; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = row.utcDateModified; | ||||
|  | ||||
|         // "combined" date modified give larger out of note's and note_content's dateModified | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.combinedDateModified = row.combinedDateModified; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.combinedUtcDateModified = row.combinedUtcDateModified; | ||||
|     } | ||||
| } | ||||
| @@ -75,7 +76,7 @@ export default NoteComplement; | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
| @@ -1,83 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: entities/note_full.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: entities/note_full.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>import NoteShort from './note_short.js'; | ||||
|  | ||||
| /** | ||||
|  * Represents full note, specifically including note's content. | ||||
|  */ | ||||
| class NoteFull extends NoteShort { | ||||
|     constructor(froca, row, noteShort) { | ||||
|         super(froca, row, []); | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         this.content = row.content; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         this.dateCreated = row.dateCreated; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         this.dateModified = row.dateModified; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         this.utcDateCreated = row.utcDateCreated; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         this.utcDateModified = row.utcDateModified; | ||||
|  | ||||
|         /* ugly */ | ||||
|         this.parents = noteShort.parents; | ||||
|         this.parentToBranch = noteShort.parentToBranch; | ||||
|         this.children = noteShort.children; | ||||
|         this.childToBranch = noteShort.childToBranch; | ||||
|     } | ||||
| } | ||||
|  | ||||
| export default NoteFull;</code></pre> | ||||
|         </article> | ||||
|     </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</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.3</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -81,15 +81,21 @@ class NoteShort { | ||||
|     } | ||||
|  | ||||
|     update(row) { | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.title = row.title; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isProtected = !!row.isProtected; | ||||
|         /** @param {string} one of 'text', 'code', 'file' or 'render' */ | ||||
|         /** | ||||
|          * one of 'text', 'code', 'file' or 'render' | ||||
|          * @type {string} | ||||
|          */ | ||||
|         this.type = row.type; | ||||
|         /** @param {string} content-type, e.g. "application/json" */ | ||||
|         /** | ||||
|          * content-type, e.g. "application/json" | ||||
|          * @type {string} | ||||
|          */ | ||||
|         this.mime = row.mime; | ||||
|     } | ||||
|  | ||||
| @@ -672,12 +678,9 @@ class NoteShort { | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Clear note's attributes cache to force fresh reload for next attribute request. | ||||
|      * Cache is note instance scoped. | ||||
|      * @deprecated NOOP | ||||
|      */ | ||||
|     invalidateAttributeCache() { | ||||
|         this.__attributeCache = null; | ||||
|     } | ||||
|     invalidateAttributeCache() {} | ||||
|  | ||||
|     /** | ||||
|      * Get relations which target this note | ||||
| @@ -709,7 +712,7 @@ class NoteShort { | ||||
|         return await this.froca.getNoteComplement(this.noteId); | ||||
|     } | ||||
|  | ||||
|     get toString() { | ||||
|     toString() { | ||||
|         return `Note(noteId=${this.noteId}, title=${this.title})`; | ||||
|     } | ||||
|  | ||||
| @@ -796,7 +799,7 @@ export default NoteShort; | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
| @@ -425,7 +425,7 @@ | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
| @@ -50,7 +50,7 @@ | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
| @@ -1,280 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Class: exports</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: exports</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <section> | ||||
|  | ||||
| <header> | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>exports<span class="signature">()</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">blaa vlaa</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
|  | ||||
| <article> | ||||
|     <div class="container-overview"> | ||||
|      | ||||
|          | ||||
|  | ||||
|      | ||||
|     <h2>Constructor</h2> | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="exports"><span class="type-signature"></span>new exports<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="services_keyboard_actions.js.html">services/keyboard_action.js</a>, <a href="services_keyboard_actions.js.html#line5">line 5</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="JUMP_TO"><span class="type-signature"></span>JUMP_TO<span class="type-signature"></span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5 class="subsection-title">Properties:</h5> | ||||
|  | ||||
|      | ||||
|  | ||||
| <table class="props"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </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="services_keyboard_actions.js.html">services/keyboard_action.js</a>, <a href="services_keyboard_actions.js.html#line7">line 7</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </article> | ||||
|  | ||||
| </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="module.exports.html">exports</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</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.3</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,73 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: note_full.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: note_full.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>import NoteShort from './note_short.js'; | ||||
|  | ||||
| /** | ||||
|  * Represents full note, specifically including note's content. | ||||
|  */ | ||||
| class NoteFull extends NoteShort { | ||||
|     constructor(froca, row) { | ||||
|         super(froca, row); | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         this.content = row.content; | ||||
|  | ||||
|         if (this.content !== "" && this.isJson()) { | ||||
|             try { | ||||
|                 /** @param {object} */ | ||||
|                 this.jsonContent = JSON.parse(this.content); | ||||
|             } | ||||
|             catch(e) {} | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export default NoteFull;</code></pre> | ||||
|         </article> | ||||
|     </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|  | ||||
| <footer> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Thu Aug 23 2018 12:50:56 GMT+0200 (CEST) | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,137 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: note_short.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: note_short.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>/** | ||||
|  * This note's representation is used in note tree and is kept in Froca. | ||||
|  * Its notable omission is the note content. | ||||
|  */ | ||||
| class NoteShort { | ||||
|     constructor(froca, row) { | ||||
|         this.froca = froca; | ||||
|         /** @param {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @param {string} */ | ||||
|         this.title = row.title; | ||||
|         /** @param {boolean} */ | ||||
|         this.isProtected = row.isProtected; | ||||
|         /** @param {string} one of 'text', 'code', 'file' or 'render' */ | ||||
|         this.type = row.type; | ||||
|         /** @param {string} content-type, e.g. "application/json" */ | ||||
|         this.mime = row.mime; | ||||
|         /** @param {boolean} */ | ||||
|         this.archived = row.archived; | ||||
|         this.cssClass = row.cssClass; | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} */ | ||||
|     isJson() { | ||||
|         return this.mime === "application/json"; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Promise<Array.<Branch>>} */ | ||||
|     async getBranches() { | ||||
|         const branchIds = this.froca.parents[this.noteId].map( | ||||
|             parentNoteId => this.froca.getBranchIdByChildParent(this.noteId, parentNoteId)); | ||||
|  | ||||
|         return this.froca.getBranches(branchIds); | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} */ | ||||
|     hasChildren() { | ||||
|         return this.froca.children[this.noteId] | ||||
|             && this.froca.children[this.noteId].length > 0; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Promise<Array.<Branch>>} */ | ||||
|     async getChildBranches() { | ||||
|         if (!this.froca.children[this.noteId]) { | ||||
|             return []; | ||||
|         } | ||||
|  | ||||
|         const branchIds = this.froca.children[this.noteId].map( | ||||
|             childNoteId => this.froca.getBranchIdByChildParent(childNoteId, this.noteId)); | ||||
|  | ||||
|         return await this.froca.getBranches(branchIds); | ||||
|     } | ||||
|  | ||||
|     /** @returns {Array.<string>} */ | ||||
|     getParentNoteIds() { | ||||
|         return this.froca.parents[this.noteId] || []; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Promise<Array.<NoteShort>>} */ | ||||
|     async getParentNotes() { | ||||
|         return await this.froca.getNotes(this.getParentNoteIds()); | ||||
|     } | ||||
|  | ||||
|     /** @returns {Array.<string>} */ | ||||
|     getChildNoteIds() { | ||||
|         return this.froca.children[this.noteId] || []; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Promise<Array.<NoteShort>>} */ | ||||
|     async getChildNotes() { | ||||
|         return await this.froca.getNotes(this.getChildNoteIds()); | ||||
|     } | ||||
|  | ||||
|     get toString() { | ||||
|         return `Note(noteId=${this.noteId}, title=${this.title})`; | ||||
|     } | ||||
|  | ||||
|     get dto() { | ||||
|         const dto = Object.assign({}, this); | ||||
|         delete dto.froca; | ||||
|         delete dto.archived; | ||||
|  | ||||
|         return dto; | ||||
|     } | ||||
| } | ||||
|  | ||||
| export default NoteShort;</code></pre> | ||||
|         </article> | ||||
|     </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|  | ||||
| <footer> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Thu Aug 23 2018 12:50:56 GMT+0200 (CEST) | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -424,6 +424,15 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, $contain | ||||
|      */ | ||||
|     this.getDateNote = dateNotesService.getDateNote; | ||||
|  | ||||
|     /** | ||||
|      * Returns date-note for the first date of the week of the given date. If it doesn't exist, it is automatically created. | ||||
|      * | ||||
|      * @method | ||||
|      * @param {string} date - e.g. "2019-04-29" | ||||
|      * @return {Promise<NoteShort>} | ||||
|      */ | ||||
|      this.getWeekNote = dateNotesService.getWeekNote; | ||||
|  | ||||
|     /** | ||||
|      * Returns month-note. If it doesn't exist, it is automatically created. | ||||
|      * | ||||
| @@ -503,7 +512,7 @@ export default FrontendScriptApi; | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
| @@ -1,280 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: services/keyboard_action.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: services/keyboard_action.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>/** | ||||
|  * blaa vlaa | ||||
|  */ | ||||
| class KeyboardAction { | ||||
|     constructor(params) { | ||||
|         this.optionName = params.optionName; | ||||
|     } | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Open "Jump to note" dialog | ||||
|  * @static | ||||
|  */ | ||||
| KeyboardAction.JumpToNote = new KeyboardAction({ | ||||
| 	optionName: "JumpToNote", | ||||
| 	defaultShortcuts: "mod+j", | ||||
| 	description: 'Open "Jump to note" dialog' | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.MarkdownToHTML = new KeyboardAction({ | ||||
| 	optionName: "MarkdownToHTML", | ||||
| 	defaultShortcuts: "mod+return" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.NewTab = new KeyboardAction({ | ||||
| 	optionName: "NewTab", | ||||
| 	defaultShortcuts: "mod+t" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.CloseTab = new KeyboardAction({ | ||||
| 	optionName: "CloseTab", | ||||
| 	defaultShortcuts: "mod+w" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.NextTab = new KeyboardAction({ | ||||
| 	optionName: "NextTab", | ||||
| 	defaultShortcuts: "mod+tab" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.PreviousTab = new KeyboardAction({ | ||||
| 	optionName: "PreviousTab", | ||||
| 	defaultShortcuts: "mod+shift+tab" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.CreateNoteAfter = new KeyboardAction({ | ||||
| 	optionName: "CreateNoteAfter", | ||||
| 	defaultShortcuts: "mod+o" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.CreateNoteInto = new KeyboardAction({ | ||||
| 	optionName: "CreateNoteInto", | ||||
| 	defaultShortcuts: "mod+p" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ScrollToActiveNote = new KeyboardAction({ | ||||
| 	optionName: "ScrollToActiveNote", | ||||
| 	defaultShortcuts: "mod+." | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.CollapseTree = new KeyboardAction({ | ||||
| 	optionName: "CollapseTree", | ||||
| 	defaultShortcuts: "alt+c" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.RunSQL = new KeyboardAction({ | ||||
| 	optionName: "RunSQL", | ||||
| 	defaultShortcuts: "mod+return" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.FocusNote = new KeyboardAction({ | ||||
| 	optionName: "FocusNote", | ||||
| 	defaultShortcuts: "return" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.RunCurrentNote = new KeyboardAction({ | ||||
| 	optionName: "RunCurrentNote", | ||||
| 	defaultShortcuts: "mod+return" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ClipboardCopy = new KeyboardAction({ | ||||
| 	optionName: "ClipboardCopy", | ||||
| 	defaultShortcuts: "mod+c" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ClipboardPaste = new KeyboardAction({ | ||||
| 	optionName: "ClipboardPaste", | ||||
| 	defaultShortcuts: "mod+v" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ClipboardCut = new KeyboardAction({ | ||||
| 	optionName: "ClipboardCut", | ||||
| 	defaultShortcuts: "mod+x" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.SelectAllNotesInParent = new KeyboardAction({ | ||||
| 	optionName: "SelectAllNotesInParent", | ||||
| 	defaultShortcuts: "mod+a" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.Undo = new KeyboardAction({ | ||||
| 	optionName: "Undo", | ||||
| 	defaultShortcuts: "mod+z" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.Redo = new KeyboardAction({ | ||||
| 	optionName: "Redo", | ||||
| 	defaultShortcuts: "mod+y" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.AddLinkToText = new KeyboardAction({ | ||||
| 	optionName: "AddLinkToText", | ||||
| 	defaultShortcuts: "mod+l" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.CloneNotesTo = new KeyboardAction({ | ||||
| 	optionName: "CloneNotesTo", | ||||
| 	defaultShortcuts: "mod+shift+c" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.MoveNotesTo = new KeyboardAction({ | ||||
| 	optionName: "MoveNotesTo", | ||||
| 	defaultShortcuts: "mod+shift+c" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.SearchNotes = new KeyboardAction({ | ||||
| 	optionName: "SearchNotes", | ||||
| 	defaultShortcuts: "mod+s" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ShowAttributes = new KeyboardAction({ | ||||
| 	optionName: "ShowAttributes", | ||||
| 	defaultShortcuts: "alt+a" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ShowHelp = new KeyboardAction({ | ||||
| 	optionName: "ShowHelp", | ||||
| 	defaultShortcuts: "f1" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.OpenSQLConsole = new KeyboardAction({ | ||||
| 	optionName: "OpenSQLConsole", | ||||
| 	defaultShortcuts: "alt+o" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.BackInNoteHistory = new KeyboardAction({ | ||||
| 	optionName: "BackInNoteHistory", | ||||
| 	defaultShortcuts: "alt+left" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ForwardInNoteHistory = new KeyboardAction({ | ||||
| 	optionName: "ForwardInNoteHistory", | ||||
| 	defaultShortcuts: "alt+right" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ToggleZenMode = new KeyboardAction({ | ||||
| 	optionName: "ToggleZenMode", | ||||
| 	defaultShortcuts: "alt+m" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.InsertDateTime = new KeyboardAction({ | ||||
| 	optionName: "InsertDateTime", | ||||
| 	defaultShortcuts: "alt+t" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ReloadApp = new KeyboardAction({ | ||||
|     optionName: "ReloadApp", | ||||
|     defaultShortcuts: ["f5", "mod+r"] | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.OpenDevTools = new KeyboardAction({ | ||||
| 	optionName: "OpenDevTools", | ||||
| 	defaultShortcuts: "mod+shift+i" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.FindInText = new KeyboardAction({ | ||||
| 	optionName: "FindInText", | ||||
| 	defaultShortcuts: "mod+f" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ToggleFullscreen = new KeyboardAction({ | ||||
| 	optionName: "ToggleFullscreen", | ||||
| 	defaultShortcuts: "f11" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ZoomOut = new KeyboardAction({ | ||||
| 	optionName: "ZoomOut", | ||||
| 	defaultShortcuts: "mod+-" | ||||
| }); | ||||
|  | ||||
| /** @static */ | ||||
| KeyboardAction.ZoomIn = new KeyboardAction({ | ||||
| 	optionName: "ZoomIn", | ||||
| 	defaultShortcuts: "mod+=" | ||||
| }); | ||||
|  | ||||
| export default KeyboardAction;</code></pre> | ||||
|         </article> | ||||
|     </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="KeyboardAction.html">KeyboardAction</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</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.3</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,61 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Source: services/keyboard_action.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: services/keyboard_action.js</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     <section> | ||||
|         <article> | ||||
|             <pre class="prettyprint source linenums"><code>/** | ||||
|  * blaa vlaa | ||||
|  */ | ||||
| class KeyboardActions { | ||||
|     constructor() { | ||||
|         /** @property {string} */ | ||||
|         this.JUMP_TO = ""; | ||||
|     } | ||||
| } | ||||
|  | ||||
| export default KeyboardActions;</code></pre> | ||||
|         </article> | ||||
|     </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="KeyboardActions.html">KeyboardActions</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</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.3</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
| @@ -75,7 +75,7 @@ export default class CollapsibleWidget extends NoteContextAwareWidget { | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Attribute.html">Attribute</a></li><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#doRenderBody">doRenderBody</a></li></ul> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|   | ||||
							
								
								
									
										67
									
								
								images/icon.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								images/icon.svg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <svg | ||||
|    xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||
|    xmlns:cc="http://creativecommons.org/ns#" | ||||
|    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    width="210mm" | ||||
|    height="297mm" | ||||
|    viewBox="0 0 210 297" | ||||
|    version="1.1" | ||||
|    id="svg2163" | ||||
|    inkscape:version="1.0.2 (e86c870879, 2021-01-15)" | ||||
|    sodipodi:docname="cropped.svg"> | ||||
|   <defs | ||||
|      id="defs2157" /> | ||||
|   <sodipodi:namedview | ||||
|      id="base" | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#666666" | ||||
|      borderopacity="1.0" | ||||
|      inkscape:pageopacity="0.0" | ||||
|      inkscape:pageshadow="2" | ||||
|      inkscape:zoom="1.5099157" | ||||
|      inkscape:cx="386.95033" | ||||
|      inkscape:cy="314.49555" | ||||
|      inkscape:document-units="mm" | ||||
|      inkscape:current-layer="layer1" | ||||
|      inkscape:document-rotation="0" | ||||
|      showgrid="false" | ||||
|      inkscape:window-width="1245" | ||||
|      inkscape:window-height="846" | ||||
|      inkscape:window-x="60" | ||||
|      inkscape:window-y="0" | ||||
|      inkscape:window-maximized="0" /> | ||||
|   <metadata | ||||
|      id="metadata2160"> | ||||
|     <rdf:RDF> | ||||
|       <cc:Work | ||||
|          rdf:about=""> | ||||
|         <dc:format>image/svg+xml</dc:format> | ||||
|         <dc:type | ||||
|            rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | ||||
|         <dc:title></dc:title> | ||||
|       </cc:Work> | ||||
|     </rdf:RDF> | ||||
|   </metadata> | ||||
|   <g | ||||
|      inkscape:label="Ebene 1" | ||||
|      inkscape:groupmode="layer" | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        d="m 139.19968,46.483949 c -5.40456,-0.16722 -8.20491,2.3622 -8.88118,2.5968 0.61524,-1.16523 1.02694,-1.89936 2.60032,-3.53766 -5.35164,-0.0561 -10.31381,1.10208 -14.09982,4.64397 -5.07788,4.75015 -4.68312,8.68574 -4.69335,8.66634 0.001,0.002 -0.80116,-2.56646 -1.04176,-5.31354 -5.52591,7.64928 -7.70784,17.78459 -3.51825,25.34532 2.60068,-6.2738 6.73029,-11.68083 12.0523,-15.9445 0.17533,-4.47393 1.9752,-8.25394 4.82,-11.04477 -2.56716,3.0727 -3.69993,6.57331 -3.58563,10.10144 6.19019,-4.61821 13.77738,-7.6962 22.11141,-8.7062 -6.03391,1.10878 -11.50091,3.51367 -16.27929,6.7938 2.99085,1.36595 6.40645,1.58009 9.99631,0.32984 -3.4417,1.6129 -7.26228,1.87678 -11.12731,0.47202 -3.43041,2.51213 -6.48124,5.4804 -9.10343,8.74254 4.65525,1.52188 9.74725,1.2072 14.81455,-1.37548 -4.65173,3.00461 -10.11661,4.13138 -15.95614,2.85185 -2.32798,3.1242 -4.2792,6.47983 -5.80426,9.93811 1.87855,1.385 10.03089,5.73052 24.01465,-4.58153 -1.9745,-0.58349 -3.5747,-1.40864 -3.57541,-1.41005 0.0445,0.0198 1.4411,0.14817 5.52556,-2.2987 3.61104,-2.11173 6.71724,-5.9369 9.0103,-8.91434 -1.95051,-0.71861 -3.46957,-1.47285 -3.47028,-1.47461 -0.001,-10e-4 2.5206,0.16968 6.4322,-2.8247 3.48897,-2.67088 7.38399,-6.54261 7.39599,-6.43325 0.0247,0.0233 -8.59226,-6.3433 -17.63748,-6.6227" | ||||
|        style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0352778" | ||||
|        id="path1983" /> | ||||
|     <path | ||||
|        d="m 76.908921,60.394149 c 4.10149,-1.19228 6.7131,0.18422 7.27437,0.22948 -0.68748,-0.76706 -1.13907,-1.24548 -2.64709,-2.18406 4.08133,-1.09739 8.09089,-1.19268 11.64521,0.76111 4.7672,2.6204 5.19783,5.69818 5.20227,5.68151 -8.1e-4,0.002 0.13467,-2.11419 -0.19274,-4.25578 5.649429,4.74214 9.204969,12.03797 7.409049,18.6271 -3.15635,-4.27007 -7.320749,-7.57773 -12.183899,-9.77927 -0.96691,-3.37555 -3.04709,-5.90265 -5.74177,-7.46934 2.535,1.83627 4.0527,4.28158 4.62244,6.9933 -5.59297,-2.30039 -11.96698,-3.15163 -18.52727,-2.27895 4.82002,-0.34383 15.0298,0.35455 23.31423,7.22913 -3.27571,2.07767 -7.22761,2.84155 -11.58272,1.87121 4.116,1.37333 8.50418,1.15576 12.73066,-0.97074 2.361629,1.92282 4.478499,4.09616 6.288529,6.4319 -1.1786,1.42613 -6.602629,6.34494 -19.214749,1.23993 1.40117,-0.83377 2.47089,-1.77831 2.47129,-1.7795 -0.0302,0.0238 -1.07415,0.39703 -4.65308,-0.66304 -3.15394,-0.89808 -6.24094,-3.20205 -8.54894,-5.02006 1.35762,-0.93183 2.37896,-1.80609 2.37896,-1.80768 3.9e-4,-8.1e-4 -1.89551,0.62612 -5.44379,-0.88538 -3.16522,-1.34871 -6.86431,-3.53238 -6.85302,-3.44662 -0.0145,0.0226 5.38855,-6.52877 12.25206,-8.52425" | ||||
|        style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.040011" | ||||
|        id="path1985" /> | ||||
|     <path | ||||
|        d="m 106.35028,116.78676 c -2.99089,-2.78316 -3.11891,-5.61706 -3.35465,-6.10128 -0.30328,0.94728 -0.48119,1.55657 -0.5271,3.26459 -2.902599,-2.81363 -4.935969,-6.06629 -5.042799,-9.9638 -0.14303,-5.226251 2.20774,-7.111581 2.19185,-7.106711 0.002,0 -1.82455,0.94068 -3.44692,2.27518 1.19194,-7.00825 5.529279,-13.56279 11.887189,-15.36164 -2.01438,4.72154 -2.73705,9.79389 -2.19847,14.89152 -2.33709,2.474751 -3.42573,5.443121 -3.41602,8.440321 0.29225,-2.99941 1.58705,-5.46485 3.56567,-7.282331 0.81185,5.747411 3.21074,11.417161 7.13399,16.382681 -2.63507,-3.79648 -7.03025,-12.54682 -5.34828,-22.784661 3.32507,1.66359 5.88686,4.53616 7.20241,8.603531 -0.86349,-4.070921 -3.18336,-7.574601 -7.01259,-9.996131 0.44853,-2.89963 1.2255,-5.72253 2.28632,-8.37424 1.76099,0.26123 8.49766,2.27917 10.39682,15.19844 -1.37647,-0.73844 -2.68363,-1.14912 -2.68496,-1.14868 0.0349,0.0129 0.85422,0.68654 1.7164,4.159181 0.78977,3.04292 0.37789,6.72937 -0.0102,9.53311 -1.43739,-0.65417 -2.66244,-1.05988 -2.66332,-1.059 -0.001,0 1.44445,1.24891 1.91637,4.92099 0.42071,3.27585 0.40659,7.40616 0.47236,7.35418 0.026,8.4e-4 -8.0584,-1.18846 -13.06411,-5.84525" | ||||
|        style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0442482" | ||||
|        id="path1987" /> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 5.4 KiB | 
							
								
								
									
										602
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										602
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										22
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								package.json
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|   "name": "trilium", | ||||
|   "productName": "Trilium Notes", | ||||
|   "description": "Trilium Notes", | ||||
|   "version": "0.48.0-beta", | ||||
|   "version": "0.48.6", | ||||
|   "license": "AGPL-3.0-only", | ||||
|   "main": "electron.js", | ||||
|   "bin": { | ||||
| @@ -15,8 +15,8 @@ | ||||
|   "scripts": { | ||||
|     "start-server": "cross-env TRILIUM_ENV=dev node ./src/www", | ||||
|     "start-electron": "cross-env TRILIUM_ENV=dev electron --inspect=5858 .", | ||||
|     "build-backend-docs": "./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": "./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-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-docs": "npm run build-backend-docs && npm run build-frontend-docs", | ||||
|     "webpack": "npx webpack -c webpack-desktop.config.js && npx webpack -c webpack-mobile.config.js && npx webpack -c webpack-setup.config.js", | ||||
|     "test": "jasmine", | ||||
| @@ -26,7 +26,7 @@ | ||||
|   "dependencies": { | ||||
|     "archiver": "5.3.0", | ||||
|     "async-mutex": "0.3.2", | ||||
|     "axios": "0.22.0", | ||||
|     "axios": "0.23.0", | ||||
|     "better-sqlite3": "7.4.3", | ||||
|     "body-parser": "1.19.0", | ||||
|     "chokidar": "3.5.2", | ||||
| @@ -42,7 +42,7 @@ | ||||
|     "electron-window-state": "5.0.3", | ||||
|     "express": "4.17.1", | ||||
|     "express-partial-content": "^1.0.2", | ||||
|     "express-rate-limit": "5.4.1", | ||||
|     "express-rate-limit": "5.5.0", | ||||
|     "express-session": "1.17.2", | ||||
|     "fs-extra": "10.0.0", | ||||
|     "helmet": "4.6.0", | ||||
| @@ -56,7 +56,7 @@ | ||||
|     "is-svg": "4.3.1", | ||||
|     "jimp": "0.16.1", | ||||
|     "joplin-turndown-plugin-gfm": "1.0.12", | ||||
|     "jsdom": "17.0.0", | ||||
|     "jsdom": "18.0.0", | ||||
|     "mime-types": "2.1.33", | ||||
|     "multer": "1.4.3", | ||||
|     "node-abi": "3.2.0", | ||||
| @@ -66,7 +66,7 @@ | ||||
|     "request": "^2.88.2", | ||||
|     "rimraf": "3.0.2", | ||||
|     "sanitize-filename": "1.6.3", | ||||
|     "sanitize-html": "2.5.1", | ||||
|     "sanitize-html": "2.5.2", | ||||
|     "sax": "1.2.4", | ||||
|     "semver": "7.3.5", | ||||
|     "serve-favicon": "2.5.0", | ||||
| @@ -81,16 +81,16 @@ | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "cross-env": "7.0.3", | ||||
|     "electron": "13.5.1", | ||||
|     "electron-builder": "22.11.7", | ||||
|     "electron": "13.6.1", | ||||
|     "electron-builder": "22.13.1", | ||||
|     "electron-packager": "15.4.0", | ||||
|     "electron-rebuild": "3.2.3", | ||||
|     "esm": "3.2.25", | ||||
|     "jasmine": "3.9.0", | ||||
|     "jasmine": "3.10.0", | ||||
|     "jsdoc": "3.6.7", | ||||
|     "lorem-ipsum": "2.0.4", | ||||
|     "rcedit": "3.0.1", | ||||
|     "webpack": "5.58.0", | ||||
|     "webpack": "5.58.2", | ||||
|     "webpack-cli": "4.9.0" | ||||
|   }, | ||||
|   "optionalDependencies": { | ||||
|   | ||||
| @@ -4,7 +4,7 @@ const Attribute = require('../../src/becca/entities/attribute.js'); | ||||
| const becca = require('../../src/becca/becca.js'); | ||||
| const randtoken = require('rand-token').generator({source: 'crypto'}); | ||||
|  | ||||
| /** @return {Note} */ | ||||
| /** @returns {Note} */ | ||||
| function findNoteByTitle(searchResults, title) { | ||||
|     return searchResults | ||||
|         .map(sr => becca.notes[sr.noteId]) | ||||
|   | ||||
| @@ -1,8 +1,6 @@ | ||||
| "use strict"; | ||||
|  | ||||
| const sql = require("../services/sql.js"); | ||||
| const NoteRevision = require("./entities/note_revision.js"); | ||||
| const RecentNote = require("./entities/recent_note.js"); | ||||
| const NoteSet = require("../services/search/note_set"); | ||||
|  | ||||
| class Becca { | ||||
| @@ -27,7 +25,7 @@ class Becca { | ||||
|         this.loaded = false; | ||||
|     } | ||||
|  | ||||
|     /** @return {Attribute[]} */ | ||||
|     /** @returns {Attribute[]} */ | ||||
|     findAttributes(type, name) { | ||||
|         name = name.trim().toLowerCase(); | ||||
|  | ||||
| @@ -38,7 +36,7 @@ class Becca { | ||||
|         return this.attributeIndex[`${type}-${name}`] || []; | ||||
|     } | ||||
|  | ||||
|     /** @return {Attribute[]} */ | ||||
|     /** @returns {Attribute[]} */ | ||||
|     findAttributesWithPrefix(type, name) { | ||||
|         const resArr = []; | ||||
|         const key = `${type}-${name}`; | ||||
| @@ -102,6 +100,7 @@ class Becca { | ||||
|     getNoteRevision(noteRevisionId) { | ||||
|         const row = sql.getRow("SELECT * FROM note_revisions WHERE noteRevisionId = ?", [noteRevisionId]); | ||||
|  | ||||
|         const NoteRevision = require("./entities/note_revision.js"); // avoiding circular dependency problems | ||||
|         return row ? new NoteRevision(row) : null; | ||||
|     } | ||||
|  | ||||
| @@ -131,12 +130,14 @@ class Becca { | ||||
|     getRecentNotesFromQuery(query, params = []) { | ||||
|         const rows = sql.getRows(query, params); | ||||
|  | ||||
|         const RecentNote = require("./entities/recent_note.js"); // avoiding circular dependency problems | ||||
|         return rows.map(row => new RecentNote(row)); | ||||
|     } | ||||
|  | ||||
|     getNoteRevisionsFromQuery(query, params = []) { | ||||
|         const rows = sql.getRows(query, params); | ||||
|  | ||||
|         const NoteRevision = require("./entities/note_revision.js"); // avoiding circular dependency problems | ||||
|         return rows.map(row => new NoteRevision(row)); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -45,6 +45,10 @@ function load() { | ||||
|         new Option(row); | ||||
|     } | ||||
|  | ||||
|     for (const noteId in becca.notes) { | ||||
|         becca.notes[noteId].sortParents(); | ||||
|     } | ||||
|  | ||||
|     becca.loaded = true; | ||||
|  | ||||
|     log.info(`Becca (note cache) load took ${Date.now() - start}ms`); | ||||
| @@ -66,7 +70,7 @@ function postProcessEntityUpdate(entityName, entity) { | ||||
|     } | ||||
| } | ||||
|  | ||||
| eventService.subscribe([eventService.ENTITY_CHANGE_SYNCED],  ({entityName, entityRow}) => { | ||||
| eventService.subscribeBeccaLoader([eventService.ENTITY_CHANGE_SYNCED],  ({entityName, entityRow}) => { | ||||
|     if (!becca.loaded) { | ||||
|         return; | ||||
|     } | ||||
| @@ -89,7 +93,7 @@ eventService.subscribe([eventService.ENTITY_CHANGE_SYNCED],  ({entityName, entit | ||||
|     postProcessEntityUpdate(entityName, entityRow); | ||||
| }); | ||||
|  | ||||
| eventService.subscribe(eventService.ENTITY_CHANGED,  ({entityName, entity}) => { | ||||
| eventService.subscribeBeccaLoader(eventService.ENTITY_CHANGED,  ({entityName, entity}) => { | ||||
|     if (!becca.loaded) { | ||||
|         return; | ||||
|     } | ||||
| @@ -97,7 +101,7 @@ eventService.subscribe(eventService.ENTITY_CHANGED,  ({entityName, entity}) => { | ||||
|     postProcessEntityUpdate(entityName, entity); | ||||
| }); | ||||
|  | ||||
| eventService.subscribe([eventService.ENTITY_DELETED, eventService.ENTITY_DELETE_SYNCED],  ({entityName, entityId}) => { | ||||
| eventService.subscribeBeccaLoader([eventService.ENTITY_DELETED, eventService.ENTITY_DELETE_SYNCED],  ({entityName, entityId}) => { | ||||
|     if (!becca.loaded) { | ||||
|         return; | ||||
|     } | ||||
| @@ -151,7 +155,7 @@ function branchUpdated(branch) { | ||||
|  | ||||
|     if (childNote) { | ||||
|         childNote.flatTextCache = null; | ||||
|         childNote.resortParents(); | ||||
|         childNote.sortParents(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -216,7 +220,7 @@ function noteReorderingUpdated(branchIdList) { | ||||
|     } | ||||
| } | ||||
|  | ||||
| eventService.subscribe(eventService.ENTER_PROTECTED_SESSION, () => { | ||||
| eventService.subscribeBeccaLoader(eventService.ENTER_PROTECTED_SESSION, () => { | ||||
|     try { | ||||
|         becca.decryptProtectedNotes(); | ||||
|     } | ||||
| @@ -225,7 +229,7 @@ eventService.subscribe(eventService.ENTER_PROTECTED_SESSION, () => { | ||||
|     } | ||||
| }); | ||||
|  | ||||
| eventService.subscribe(eventService.LEAVE_PROTECTED_SESSION, load); | ||||
| eventService.subscribeBeccaLoader(eventService.LEAVE_PROTECTED_SESSION, load); | ||||
|  | ||||
| module.exports = { | ||||
|     load, | ||||
|   | ||||
| @@ -125,7 +125,7 @@ function getNoteTitleForPath(notePathArray) { | ||||
|  | ||||
| /** | ||||
|  * Returns notePath for noteId from cache. Note hoisting is respected. | ||||
|  * Archived notes are also returned, but non-archived paths are preferred if available | ||||
|  * Archived (and hidden) notes are also returned, but non-archived paths are preferred if available | ||||
|  * - this means that archived paths is returned only if there's no non-archived path | ||||
|  * - you can check whether returned path is archived using isArchived | ||||
|  */ | ||||
| @@ -140,10 +140,6 @@ function getSomePathInner(note, path, respectHoisting) { | ||||
|         path.push(note.noteId); | ||||
|         path.reverse(); | ||||
|  | ||||
|         if (path.includes("hidden")) { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         if (respectHoisting && !path.includes(cls.getHoistedNoteId())) { | ||||
|             return false; | ||||
|         } | ||||
|   | ||||
| @@ -14,8 +14,11 @@ class ApiToken extends AbstractEntity { | ||||
|     constructor(row) { | ||||
|         super(); | ||||
|  | ||||
|         /** @type {string} */ | ||||
|         this.apiTokenId = row.apiTokenId; | ||||
|         /** @type {string} */ | ||||
|         this.token = row.token; | ||||
|         /** @type {string} */ | ||||
|         this.utcDateCreated = row.utcDateCreated || dateUtils.utcNowDateTime(); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -6,6 +6,10 @@ const sql = require("../../services/sql.js"); | ||||
| const dateUtils = require("../../services/date_utils.js"); | ||||
| const promotedAttributeDefinitionParser = require("../../services/promoted_attribute_definition_parser"); | ||||
|  | ||||
| /** | ||||
|  * Attribute is an abstract concept which has two real uses - label (key - value pair) | ||||
|  * and relation (representing named relationship between source and target note) | ||||
|  */ | ||||
| class Attribute extends AbstractEntity { | ||||
|     static get entityName() { return "attributes"; } | ||||
|     static get primaryKeyName() { return "attributeId"; } | ||||
| @@ -36,21 +40,21 @@ class Attribute extends AbstractEntity { | ||||
|     } | ||||
|  | ||||
|     update([attributeId, noteId, type, name, value, isInheritable, position, utcDateModified]) { | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.attributeId = attributeId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.type = type; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.name = name; | ||||
|         /** @param {int} */ | ||||
|         /** @type {int} */ | ||||
|         this.position = position; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.value = value; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isInheritable = !!isInheritable; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = utcDateModified; | ||||
|  | ||||
|         return this; | ||||
| @@ -145,6 +149,10 @@ class Attribute extends AbstractEntity { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     get isDeleted() { | ||||
|         return !(this.attributeId in this.becca.attributes); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (!this.value) { | ||||
|             if (this.type === 'relation') { | ||||
|   | ||||
| @@ -5,6 +5,10 @@ const AbstractEntity = require("./abstract_entity.js"); | ||||
| const sql = require("../../services/sql.js"); | ||||
| const dateUtils = require("../../services/date_utils.js"); | ||||
|  | ||||
| /** | ||||
|  * Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple | ||||
|  * parents. | ||||
|  */ | ||||
| class Branch extends AbstractEntity { | ||||
|     static get entityName() { return "branches"; } | ||||
|     static get primaryKeyName() { return "branchId"; } | ||||
| @@ -35,19 +39,19 @@ class Branch extends AbstractEntity { | ||||
|     } | ||||
|  | ||||
|     update([branchId, noteId, parentNoteId, prefix, notePosition, isExpanded, utcDateModified]) { | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.branchId = branchId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.parentNoteId = parentNoteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.prefix = prefix; | ||||
|         /** @param {int} */ | ||||
|         /** @type {int} */ | ||||
|         this.notePosition = notePosition; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isExpanded = !!isExpanded; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = utcDateModified; | ||||
|  | ||||
|         return this; | ||||
| @@ -77,7 +81,7 @@ class Branch extends AbstractEntity { | ||||
|         this.becca.childParentToBranch[`${this.noteId}-${this.parentNoteId}`] = this; | ||||
|     } | ||||
|  | ||||
|     /** @return {Note} */ | ||||
|     /** @returns {Note} */ | ||||
|     get childNote() { | ||||
|         if (!(this.noteId in this.becca.notes)) { | ||||
|             // entities can come out of order in sync, create skeleton which will be filled later | ||||
| @@ -91,7 +95,7 @@ class Branch extends AbstractEntity { | ||||
|         return this.childNote; | ||||
|     } | ||||
|  | ||||
|     /** @return {Note} */ | ||||
|     /** @returns {Note} */ | ||||
|     get parentNote() { | ||||
|         if (!(this.parentNoteId in this.becca.notes)) { | ||||
|             // entities can come out of order in sync, create skeleton which will be filled later | ||||
| @@ -101,6 +105,10 @@ class Branch extends AbstractEntity { | ||||
|         return this.becca.notes[this.parentNoteId]; | ||||
|     } | ||||
|  | ||||
|     get isDeleted() { | ||||
|         return !(this.branchId in this.becca.branches); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         if (this.notePosition === undefined || this.notePosition === null) { | ||||
|             // TODO finding new position can be refactored into becca | ||||
|   | ||||
| @@ -12,6 +12,9 @@ const NoteRevision = require("./note_revision.js"); | ||||
| const LABEL = 'label'; | ||||
| const RELATION = 'relation'; | ||||
|  | ||||
| /** | ||||
|  * Trilium's main entity which can represent text note, image, code note, file attachment etc. | ||||
|  */ | ||||
| class Note extends AbstractEntity { | ||||
|     static get entityName() { return "notes"; } | ||||
|     static get primaryKeyName() { return "noteId"; } | ||||
| @@ -45,68 +48,80 @@ class Note extends AbstractEntity { | ||||
|     update([noteId, title, type, mime, isProtected, dateCreated, dateModified, utcDateCreated, utcDateModified]) { | ||||
|         // ------ Database persisted attributes ------ | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.title = title; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isProtected = !!isProtected; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.type = type; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.mime = mime; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateCreated = dateCreated || dateUtils.localNowDateTime(); | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateModified = dateModified; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateCreated = utcDateCreated || dateUtils.utcNowDateTime(); | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = utcDateModified; | ||||
|  | ||||
|         // ------ Derived attributes ------ | ||||
|  | ||||
|         /** @param {boolean} */ | ||||
|         this.isDecrypted = !this.isProtected; | ||||
|         /** @type {boolean} */ | ||||
|         this.isDecrypted = !this.noteId || !this.isProtected; | ||||
|  | ||||
|         this.decrypt(); | ||||
|  | ||||
|         /** @param {string|null} */ | ||||
|         /** @type {string|null} */ | ||||
|         this.flatTextCache = null; | ||||
|  | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     init() { | ||||
|         /** @param {Branch[]} */ | ||||
|         /** @type {Branch[]} */ | ||||
|         this.parentBranches = []; | ||||
|         /** @param {Note[]} */ | ||||
|         /** @type {Note[]} */ | ||||
|         this.parents = []; | ||||
|         /** @param {Note[]} */ | ||||
|         /** @type {Note[]} */ | ||||
|         this.children = []; | ||||
|         /** @param {Attribute[]} */ | ||||
|         /** @type {Attribute[]} */ | ||||
|         this.ownedAttributes = []; | ||||
|  | ||||
|         /** @param {Attribute[]|null} */ | ||||
|         /** @type {Attribute[]|null} | ||||
|          * @private */ | ||||
|         this.__attributeCache = null; | ||||
|         /** @param {Attribute[]|null} */ | ||||
|         /** @type {Attribute[]|null} | ||||
|          * @private*/ | ||||
|         this.inheritableAttributeCache = null; | ||||
|  | ||||
|         /** @param {Attribute[]} */ | ||||
|         /** @type {Attribute[]} */ | ||||
|         this.targetRelations = []; | ||||
|  | ||||
|         this.becca.addNote(this.noteId, this); | ||||
|  | ||||
|         /** @param {Note[]|null} */ | ||||
|         /** @type {Note[]|null} | ||||
|          * @private */ | ||||
|         this.ancestorCache = null; | ||||
|  | ||||
|         // following attributes are filled during searching from database | ||||
|  | ||||
|         /** @param {int} size of the content in bytes */ | ||||
|         /** | ||||
|          * size of the content in bytes | ||||
|          * @type {int|null} | ||||
|          */ | ||||
|         this.contentSize = null; | ||||
|         /** @param {int} size of the content and note revision contents in bytes */ | ||||
|         /** | ||||
|          * size of the content and note revision contents in bytes | ||||
|          * @type {int|null} | ||||
|          */ | ||||
|         this.noteSize = null; | ||||
|         /** @param {int} number of note revisions for this note */ | ||||
|         /** | ||||
|          * number of note revisions for this note | ||||
|          * @type {int|null} | ||||
|          */ | ||||
|         this.revisionCount = null; | ||||
|     } | ||||
|  | ||||
| @@ -116,26 +131,32 @@ class Note extends AbstractEntity { | ||||
|             || protectedSessionService.isProtectedSessionAvailable() | ||||
|     } | ||||
|  | ||||
|     /** @returns {Branch[]} */ | ||||
|     getParentBranches() { | ||||
|         return this.parentBranches; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Branch[]} */ | ||||
|     getBranches() { | ||||
|         return this.parentBranches; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Note[]} */ | ||||
|     getParentNotes() { | ||||
|         return this.parents; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Note[]} */ | ||||
|     getChildNotes() { | ||||
|         return this.children; | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} */ | ||||
|     hasChildren() { | ||||
|         return this.children && this.children.length > 0; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Branch[]} */ | ||||
|     getChildBranches() { | ||||
|         return this.children.map(childNote => this.becca.getBranchFromChildAndParent(childNote.noteId, this.noteId)); | ||||
|     } | ||||
| @@ -370,7 +391,7 @@ class Note extends AbstractEntity { | ||||
|         return this.__attributeCache; | ||||
|     } | ||||
|  | ||||
|     /** @return {Attribute[]} */ | ||||
|     /** @returns {Attribute[]} */ | ||||
|     __getInheritableAttributes(path) { | ||||
|         if (path.includes(this.noteId)) { | ||||
|             return []; | ||||
| @@ -611,7 +632,7 @@ class Note extends AbstractEntity { | ||||
|  | ||||
|     // will sort the parents so that non-search & non-archived are first and archived at the end | ||||
|     // this is done so that non-search & non-archived paths are always explored as first when looking for note path | ||||
|     resortParents() { | ||||
|     sortParents() { | ||||
|         this.parentBranches.sort((a, b) => | ||||
|             a.branchId.startsWith('virt-') | ||||
|             || a.parentNote.hasInheritableOwnedArchivedLabel() ? 1 : -1); | ||||
| @@ -721,28 +742,38 @@ class Note extends AbstractEntity { | ||||
|         return !!this.targetRelations.find(rel => rel.name === 'template'); | ||||
|     } | ||||
|  | ||||
|     /** @return {Note[]} */ | ||||
|     /** @returns {Note[]} */ | ||||
|     getSubtreeNotesIncludingTemplated() { | ||||
|         const arr = [[this]]; | ||||
|         const set = new Set(); | ||||
|  | ||||
|         for (const childNote of this.children) { | ||||
|             arr.push(childNote.getSubtreeNotesIncludingTemplated()); | ||||
|         } | ||||
|         function inner(note) { | ||||
|             if (set.has(note)) { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|         for (const targetRelation of this.targetRelations) { | ||||
|             if (targetRelation.name === 'template') { | ||||
|                 const note = targetRelation.note; | ||||
|             set.add(note); | ||||
|  | ||||
|                 if (note) { | ||||
|                     arr.push(note.getSubtreeNotesIncludingTemplated()); | ||||
|             for (const childNote of note.children) { | ||||
|                 inner(childNote); | ||||
|             } | ||||
|  | ||||
|             for (const targetRelation of note.targetRelations) { | ||||
|                 if (targetRelation.name === 'template') { | ||||
|                     const targetNote = targetRelation.note; | ||||
|  | ||||
|                     if (targetNote) { | ||||
|                         inner(targetNote); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return arr.flat(); | ||||
|         inner(this); | ||||
|  | ||||
|         return Array.from(set); | ||||
|     } | ||||
|  | ||||
|     /** @return {Note[]} */ | ||||
|     /** @returns {Note[]} */ | ||||
|     getSubtreeNotes(includeArchived = true) { | ||||
|         const noteSet = new Set(); | ||||
|  | ||||
| @@ -763,9 +794,9 @@ class Note extends AbstractEntity { | ||||
|         return Array.from(noteSet); | ||||
|     } | ||||
|  | ||||
|     /** @return {String[]} */ | ||||
|     getSubtreeNoteIds() { | ||||
|         return this.getSubtreeNotes().map(note => note.noteId); | ||||
|     /** @returns {String[]} */ | ||||
|     getSubtreeNoteIds(includeArchived = true) { | ||||
|         return this.getSubtreeNotes(includeArchived).map(note => note.noteId); | ||||
|     } | ||||
|  | ||||
|     getDescendantNoteIds() { | ||||
| @@ -820,6 +851,7 @@ class Note extends AbstractEntity { | ||||
|         return this.getAttributes().length; | ||||
|     } | ||||
|  | ||||
|     /** @returns {Note[]} */ | ||||
|     getAncestors() { | ||||
|         if (!this.ancestorCache) { | ||||
|             const noteIds = new Set(); | ||||
| @@ -843,11 +875,22 @@ class Note extends AbstractEntity { | ||||
|         return this.ancestorCache; | ||||
|     } | ||||
|  | ||||
|     /** @returns {boolean} */ | ||||
|     hasAncestor(ancestorNoteId) { | ||||
|         for (const ancestorNote of this.getAncestors()) { | ||||
|             if (ancestorNote.noteId === ancestorNoteId) { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     getTargetRelations() { | ||||
|         return this.targetRelations; | ||||
|     } | ||||
|  | ||||
|     /** @return {Note[]} - returns only notes which are templated, does not include their subtrees | ||||
|     /** @returns {Note[]} - returns only notes which are templated, does not include their subtrees | ||||
|      *                     in effect returns notes which are influenced by note's non-inheritable attributes */ | ||||
|     getTemplatedNotes() { | ||||
|         const arr = [this]; | ||||
| @@ -1084,6 +1127,10 @@ class Note extends AbstractEntity { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     get isDeleted() { | ||||
|         return !(this.noteId in this.becca.notes); | ||||
|     } | ||||
|  | ||||
|     beforeSaving() { | ||||
|         super.beforeSaving(); | ||||
|  | ||||
|   | ||||
| @@ -9,7 +9,8 @@ const entityChangesService = require('../../services/entity_changes'); | ||||
| const AbstractEntity = require("./abstract_entity.js"); | ||||
|  | ||||
| /** | ||||
|  * NoteRevision represents snapshot of note's title and content at some point in the past. It's used for seamless note versioning. | ||||
|  * NoteRevision represents snapshot of note's title and content at some point in the past. | ||||
|  * It's used for seamless note versioning. | ||||
|  */ | ||||
| class NoteRevision extends AbstractEntity { | ||||
|     static get entityName() { return "note_revisions"; } | ||||
| @@ -19,29 +20,29 @@ class NoteRevision extends AbstractEntity { | ||||
|     constructor(row) { | ||||
|         super(); | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteRevisionId = row.noteRevisionId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.type = row.type; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.mime = row.mime; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isProtected = !!row.isProtected; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.title = row.title; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateLastEdited = row.dateLastEdited; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateCreated = row.dateCreated; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateLastEdited = row.utcDateLastEdited; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateCreated = row.utcDateCreated; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = row.utcDateModified; | ||||
|         /** @param {number} */ | ||||
|         /** @type {number} */ | ||||
|         this.contentLength = row.contentLength; | ||||
|  | ||||
|         if (this.isProtected) { | ||||
| @@ -49,7 +50,7 @@ class NoteRevision extends AbstractEntity { | ||||
|                 this.title = protectedSessionService.decryptString(this.title); | ||||
|             } | ||||
|             else { | ||||
|                 this.title = "[Protected]"; | ||||
|                 this.title = "[protected]"; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -14,9 +14,13 @@ class Option extends AbstractEntity { | ||||
|     constructor(row) { | ||||
|         super(); | ||||
|  | ||||
|         /** @type {string} */ | ||||
|         this.name = row.name; | ||||
|         /** @type {string} */ | ||||
|         this.value = row.value; | ||||
|         /** @type {boolean} */ | ||||
|         this.isSynced = !!row.isSynced; | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = row.utcDateModified; | ||||
|  | ||||
|         this.becca.options[this.name] = this; | ||||
|   | ||||
| @@ -13,8 +13,11 @@ class RecentNote extends AbstractEntity { | ||||
|     constructor(row) { | ||||
|         super(); | ||||
|  | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @type {string} */ | ||||
|         this.notePath = row.notePath; | ||||
|         /** @type {string} */ | ||||
|         this.utcDateCreated = row.utcDateCreated || dateUtils.utcNowDateTime(); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -178,10 +178,10 @@ function buildDateLimits(baseNote) { | ||||
|     const dateCreatedTs = dateUtils.parseDateTime(baseNote.utcDateCreated).getTime(); | ||||
|  | ||||
|     return { | ||||
|         minDate: dateUtils.utcDateStr(new Date(dateCreatedTs - 3600 * 1000)), | ||||
|         minExcludedDate: dateUtils.utcDateStr(new Date(dateCreatedTs - 5 * 1000)), | ||||
|         maxExcludedDate: dateUtils.utcDateStr(new Date(dateCreatedTs + 5 * 1000)), | ||||
|         maxDate: dateUtils.utcDateStr(new Date(dateCreatedTs + 3600 * 1000)), | ||||
|         minDate: dateUtils.utcDateTimeStr(new Date(dateCreatedTs - 3600 * 1000)), | ||||
|         minExcludedDate: dateUtils.utcDateTimeStr(new Date(dateCreatedTs - 5 * 1000)), | ||||
|         maxExcludedDate: dateUtils.utcDateTimeStr(new Date(dateCreatedTs + 5 * 1000)), | ||||
|         maxDate: dateUtils.utcDateTimeStr(new Date(dateCreatedTs + 3600 * 1000)), | ||||
|     }; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -11,13 +11,14 @@ export async function showDialog() { | ||||
|     utils.openDialog($dialog); | ||||
|  | ||||
|     (await Promise.all([ | ||||
|         import('./options/advanced.js'), | ||||
|         import('./options/appearance.js'), | ||||
|         import('./options/shortcuts.js'), | ||||
|         import('./options/code_notes.js'), | ||||
|         import('./options/credentials.js'), | ||||
|         import('./options/other.js'), | ||||
|         import('./options/backup.js'), | ||||
|         import('./options/sync.js'), | ||||
|         import('./options/keyboard_shortcuts.js'), | ||||
|         import('./options/other.js'), | ||||
|         import('./options/advanced.js') | ||||
|     ])) | ||||
|         .map(m => new m.default) | ||||
|         .forEach(tab => { | ||||
| @@ -25,4 +26,4 @@ export async function showDialog() { | ||||
|                 tab.optionsLoaded(options) | ||||
|             } | ||||
|         }); | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -24,12 +24,6 @@ const TPL = ` | ||||
|  | ||||
| <button id="anonymize-button" class="btn">Save anonymized database</button><br/><br/> | ||||
|  | ||||
| <h4>Backup database</h4> | ||||
|  | ||||
| <p>Trilium has automatic backup (daily, weekly, monthly), but you can also trigger a manual backup here.</p> | ||||
|  | ||||
| <button id="backup-database-button" class="btn">Backup database now</button><br/><br/> | ||||
|  | ||||
| <h4>Vacuum database</h4> | ||||
|  | ||||
| <p>This will rebuild the database which will typically result in a smaller database file. No data will be actually changed.</p> | ||||
| @@ -70,12 +64,6 @@ export default class AdvancedOptions { | ||||
|             } | ||||
|         }); | ||||
|  | ||||
|         this.$backupDatabaseButton.on('click', async () => { | ||||
|             const {backupFile} = await server.post('database/backup-database'); | ||||
|  | ||||
|             toastService.showMessage("Database has been backed up to " + backupFile, 10000); | ||||
|         }); | ||||
|  | ||||
|         this.$vacuumDatabaseButton.on('click', async () => { | ||||
|             await server.post('database/vacuum-database'); | ||||
|  | ||||
|   | ||||
| @@ -163,7 +163,23 @@ const TPL = ` | ||||
|      | ||||
|     <p> | ||||
|         To apply font changes, click on  | ||||
|         <button class="btn btn-micro" id="reload-frontend-button">reload frontend</button> | ||||
|         <button class="btn btn-micro reload-frontend-button">reload frontend</button> | ||||
|     </p> | ||||
|      | ||||
|     <h4>Content width</h4> | ||||
|      | ||||
|     <p>Trilium by default limits max content width to improve readability for maximized screens on wide screens.</p> | ||||
|  | ||||
|     <div class="form-group row"> | ||||
|         <div class="col-4"> | ||||
|             <label for="max-content-width">Max content width in pixels</label> | ||||
|             <input type="number" min="200" step="10" class="form-control" id="max-content-width"> | ||||
|         </div> | ||||
|     </div> | ||||
|      | ||||
|     <p> | ||||
|         To content width changes, click on  | ||||
|         <button class="btn btn-micro reload-frontend-button">reload frontend</button> | ||||
|     </p> | ||||
| </form>`; | ||||
|  | ||||
| @@ -192,7 +208,7 @@ export default class ApperanceOptions { | ||||
|         this.$monospaceFontSize = $("#monospace-font-size"); | ||||
|         this.$monospaceFontFamily = $("#monospace-font-family"); | ||||
|  | ||||
|         $("#reload-frontend-button").on("click", () => utils.reloadFrontendApp("font changes")); | ||||
|         $(".reload-frontend-button").on("click", () => utils.reloadFrontendApp("changes from appearance options")); | ||||
|  | ||||
|         this.$body = $("body"); | ||||
|  | ||||
| @@ -238,6 +254,14 @@ export default class ApperanceOptions { | ||||
|         for (const optionName of optionsToSave) { | ||||
|             this['$' + optionName].on('change', () => server.put(`options/${optionName}/${this['$' + optionName].val()}`)); | ||||
|         } | ||||
|  | ||||
|         this.$maxContentWidth = $("#max-content-width"); | ||||
|  | ||||
|         this.$maxContentWidth.on('change', async () => { | ||||
|             const maxContentWidth = this.$maxContentWidth.val(); | ||||
|  | ||||
|             await server.put('options/maxContentWidth/' + maxContentWidth); | ||||
|         }) | ||||
|     } | ||||
|  | ||||
|     toggleBodyClass(prefix, value) { | ||||
| @@ -292,6 +316,8 @@ export default class ApperanceOptions { | ||||
|  | ||||
|         this.$monospaceFontSize.val(options.monospaceFontSize); | ||||
|         this.fillFontFamilyOptions(this.$monospaceFontFamily, options.monospaceFontFamily); | ||||
|  | ||||
|         this.$maxContentWidth.val(options.maxContentWidth); | ||||
|     } | ||||
|  | ||||
|     fillFontFamilyOptions($select, currentValue) { | ||||
|   | ||||
							
								
								
									
										78
									
								
								src/public/app/dialogs/options/backup.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								src/public/app/dialogs/options/backup.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| import server from "../../services/server.js"; | ||||
| import toastService from "../../services/toast.js"; | ||||
|  | ||||
| const TPL = ` | ||||
| <h4>Automatic backup</h4> | ||||
|  | ||||
| <p>Trilium can back up the database automatically:</p> | ||||
|  | ||||
| <div class="custom-control custom-checkbox"> | ||||
|     <input type="checkbox" class="custom-control-input" id="daily-backup-enabled"> | ||||
|     <label class="custom-control-label" for="daily-backup-enabled">Enable daily backup</label> | ||||
| </div> | ||||
|  | ||||
| <div class="custom-control custom-checkbox"> | ||||
|     <input type="checkbox" class="custom-control-input" id="weekly-backup-enabled"> | ||||
|     <label class="custom-control-label" for="weekly-backup-enabled">Enable weekly backup</label> | ||||
| </div> | ||||
|  | ||||
| <div class="custom-control custom-checkbox"> | ||||
|     <input type="checkbox" class="custom-control-input" id="monthly-backup-enabled"> | ||||
|     <label class="custom-control-label" for="monthly-backup-enabled">Enable monthly backup</label> | ||||
| </div> | ||||
|  | ||||
| <br/> | ||||
|  | ||||
| <p>It's recommended to keep the backup turned on, but this can make application startup slow with large databases and/or slow storage devices.</p> | ||||
|  | ||||
| <br/> | ||||
|  | ||||
| <h4>Backup now</h4> | ||||
|  | ||||
| <button id="backup-database-button" class="btn">Backup database now</button><br/><br/> | ||||
| `; | ||||
|  | ||||
| export default class BackupOptions { | ||||
|     constructor() { | ||||
|         $("#options-backup").html(TPL); | ||||
|  | ||||
|         this.$backupDatabaseButton = $("#backup-database-button"); | ||||
|  | ||||
|         this.$backupDatabaseButton.on('click', async () => { | ||||
|             const {backupFile} = await server.post('database/backup-database'); | ||||
|  | ||||
|             toastService.showMessage("Database has been backed up to " + backupFile, 10000); | ||||
|         }); | ||||
|  | ||||
|         this.$dailyBackupEnabled = $("#daily-backup-enabled"); | ||||
|         this.$weeklyBackupEnabled = $("#weekly-backup-enabled"); | ||||
|         this.$monthlyBackupEnabled = $("#monthly-backup-enabled"); | ||||
|  | ||||
|         this.$dailyBackupEnabled.on('change', () => { | ||||
|             const opts = { 'dailyBackupEnabled': this.$dailyBackupEnabled.is(":checked") ? "true" : "false" }; | ||||
|             server.put('options', opts).then(() => toastService.showMessage("Options change have been saved.")); | ||||
|  | ||||
|             return false; | ||||
|         }); | ||||
|  | ||||
|         this.$weeklyBackupEnabled.on('change', () => { | ||||
|             const opts = { 'weeklyBackupEnabled': this.$weeklyBackupEnabled.is(":checked") ? "true" : "false" }; | ||||
|             server.put('options', opts).then(() => toastService.showMessage("Options change have been saved.")); | ||||
|  | ||||
|             return false; | ||||
|         }); | ||||
|  | ||||
|         this.$monthlyBackupEnabled.on('change', () => { | ||||
|             const opts = { 'monthlyBackupEnabled': this.$monthlyBackupEnabled.is(":checked") ? "true" : "false" }; | ||||
|             server.put('options', opts).then(() => toastService.showMessage("Options change have been saved.")); | ||||
|  | ||||
|             return false; | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     optionsLoaded(options) { | ||||
|         this.$dailyBackupEnabled.prop("checked", options['dailyBackupEnabled'] === 'true'); | ||||
|         this.$weeklyBackupEnabled.prop("checked", options['weeklyBackupEnabled'] === 'true'); | ||||
|         this.$monthlyBackupEnabled.prop("checked", options['monthlyBackupEnabled'] === 'true'); | ||||
|     } | ||||
| } | ||||
| @@ -35,7 +35,7 @@ let globActions; | ||||
| 
 | ||||
| export default class KeyboardShortcutsOptions { | ||||
|     constructor() { | ||||
|         $("#options-keyboard-shortcuts").html(TPL); | ||||
|         $("#options-shortcuts").html(TPL); | ||||
| 
 | ||||
|         $("#options-keyboard-shortcuts-reload-app").on("click", () => utils.reloadFrontendApp()); | ||||
| 
 | ||||
| @@ -1,5 +1,9 @@ | ||||
| import promotedAttributeDefinitionParser from '../services/promoted_attribute_definition_parser.js'; | ||||
|  | ||||
| /** | ||||
|  * Attribute is an abstract concept which has two real uses - label (key - value pair) | ||||
|  * and relation (representing named relationship between source and target note) | ||||
|  */ | ||||
| class Attribute { | ||||
|     constructor(froca, row) { | ||||
|         this.froca = froca; | ||||
| @@ -8,19 +12,19 @@ class Attribute { | ||||
|     } | ||||
|  | ||||
|     update(row) { | ||||
|         /** @param {string} attributeId */ | ||||
|         /** @type {string} */ | ||||
|         this.attributeId = row.attributeId; | ||||
|         /** @param {string} noteId */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @param {string} type */ | ||||
|         /** @type {string} */ | ||||
|         this.type = row.type; | ||||
|         /** @param {string} name */ | ||||
|         /** @type {string} */ | ||||
|         this.name = row.name; | ||||
|         /** @param {string} value */ | ||||
|         /** @type {string} */ | ||||
|         this.value = row.value; | ||||
|         /** @param {int} position */ | ||||
|         /** @type {int} */ | ||||
|         this.position = row.position; | ||||
|         /** @param {boolean} isInheritable */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isInheritable = !!row.isInheritable; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,7 @@ | ||||
| /** Represents mapping between note and parent note */ | ||||
| /** | ||||
|  * Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple | ||||
|  * parents. | ||||
|  */ | ||||
| class Branch { | ||||
|     constructor(froca, row) { | ||||
|         this.froca = froca; | ||||
| @@ -7,19 +10,22 @@ class Branch { | ||||
|     } | ||||
|  | ||||
|     update(row) { | ||||
|         /** @param {string} primary key */ | ||||
|         /** | ||||
|          * primary key | ||||
|          * @type {string} | ||||
|          */ | ||||
|         this.branchId = row.branchId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.parentNoteId = row.parentNoteId; | ||||
|         /** @param {int} */ | ||||
|         /** @type {int} */ | ||||
|         this.notePosition = row.notePosition; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.prefix = row.prefix; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isExpanded = !!row.isExpanded; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.fromSearchNote = !!row.fromSearchNote; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -3,35 +3,36 @@ | ||||
|  */ | ||||
| class NoteComplement { | ||||
|     constructor(row) { | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|  | ||||
|         /** | ||||
|          * @param {string} - can either contain the whole content (in e.g. string notes), only part (large text notes) or nothing at all (binary notes, images) | ||||
|          * can either contain the whole content (in e.g. string notes), only part (large text notes) or nothing at all (binary notes, images) | ||||
|          * @type {string} | ||||
|          */ | ||||
|         this.content = row.content; | ||||
|  | ||||
|         /** @param {int} */ | ||||
|         /** @type {int} */ | ||||
|         this.contentLength = row.contentLength; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateCreated = row.dateCreated; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.dateModified = row.dateModified; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateCreated = row.utcDateCreated; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.utcDateModified = row.utcDateModified; | ||||
|  | ||||
|         // "combined" date modified give larger out of note's and note_content's dateModified | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.combinedDateModified = row.combinedDateModified; | ||||
|  | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.combinedUtcDateModified = row.combinedUtcDateModified; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -53,15 +53,21 @@ class NoteShort { | ||||
|     } | ||||
|  | ||||
|     update(row) { | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.noteId = row.noteId; | ||||
|         /** @param {string} */ | ||||
|         /** @type {string} */ | ||||
|         this.title = row.title; | ||||
|         /** @param {boolean} */ | ||||
|         /** @type {boolean} */ | ||||
|         this.isProtected = !!row.isProtected; | ||||
|         /** @param {string} one of 'text', 'code', 'file' or 'render' */ | ||||
|         /** | ||||
|          * one of 'text', 'code', 'file' or 'render' | ||||
|          * @type {string} | ||||
|          */ | ||||
|         this.type = row.type; | ||||
|         /** @param {string} content-type, e.g. "application/json" */ | ||||
|         /** | ||||
|          * content-type, e.g. "application/json" | ||||
|          * @type {string} | ||||
|          */ | ||||
|         this.mime = row.mime; | ||||
|     } | ||||
|  | ||||
| @@ -644,12 +650,9 @@ class NoteShort { | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Clear note's attributes cache to force fresh reload for next attribute request. | ||||
|      * Cache is note instance scoped. | ||||
|      * @deprecated NOOP | ||||
|      */ | ||||
|     invalidateAttributeCache() { | ||||
|         this.__attributeCache = null; | ||||
|     } | ||||
|     invalidateAttributeCache() {} | ||||
|  | ||||
|     /** | ||||
|      * Get relations which target this note | ||||
| @@ -681,7 +684,7 @@ class NoteShort { | ||||
|         return await this.froca.getNoteComplement(this.noteId); | ||||
|     } | ||||
|  | ||||
|     get toString() { | ||||
|     toString() { | ||||
|         return `Note(noteId=${this.noteId}, title=${this.title})`; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -126,13 +126,13 @@ export default class DesktopLayout { | ||||
|                                 .child( | ||||
|                                     new RibbonContainer() | ||||
|                                         .ribbon(new SearchDefinitionWidget()) | ||||
|                                         .ribbon(new BasicPropertiesWidget()) | ||||
|                                         .ribbon(new EditedNotesWidget()) | ||||
|                                         .ribbon(new BookPropertiesWidget()) | ||||
|                                         .ribbon(new NotePropertiesWidget()) | ||||
|                                         .ribbon(new FilePropertiesWidget()) | ||||
|                                         .ribbon(new ImagePropertiesWidget()) | ||||
|                                         .ribbon(new PromotedAttributesWidget()) | ||||
|                                         .ribbon(new BasicPropertiesWidget()) | ||||
|                                         .ribbon(new OwnedAttributeListWidget()) | ||||
|                                         .ribbon(new InheritedAttributesWidget()) | ||||
|                                         .ribbon(new NotePathsWidget()) | ||||
|   | ||||
| @@ -36,6 +36,7 @@ const FANCYTREE_CSS = ` | ||||
|     margin-top: 55px; | ||||
|     overflow-y: auto; | ||||
|     contain: content; | ||||
|     padding-left: 10px; | ||||
| } | ||||
|  | ||||
| .fancytree-custom-icon { | ||||
| @@ -57,6 +58,7 @@ const FANCYTREE_CSS = ` | ||||
|  | ||||
| span.fancytree-expander { | ||||
|     width: 24px !important; | ||||
|     margin-right: 5px; | ||||
| } | ||||
|  | ||||
| .fancytree-loading span.fancytree-expander { | ||||
| @@ -98,18 +100,24 @@ export default class MobileLayout { | ||||
|             .child(new ScreenContainer("detail", "column") | ||||
|                 .class("d-sm-flex d-md-flex d-lg-flex d-xl-flex col-12 col-sm-7 col-md-8 col-lg-8") | ||||
|                 .css('max-height', '100%') | ||||
|                 .child(new FlexContainer('row').overflowing().filling() | ||||
|                 .child(new FlexContainer('row').overflowing().contentSized() | ||||
|                     .css('font-size', 'larger') | ||||
|                     .css('align-items', 'center') | ||||
|                     .child(new MobileDetailMenuWidget()) | ||||
|                     .child(new NoteTitleWidget()) | ||||
|                     .child(new CloseDetailButtonWidget())) | ||||
|                     .child(new MobileDetailMenuWidget().contentSized()) | ||||
|                     .child(new NoteTitleWidget() | ||||
|                         .contentSized() | ||||
|                         .css("position: relative;") | ||||
|                         .css("top: 5px;") | ||||
|                     ) | ||||
|                     .child(new CloseDetailButtonWidget().contentSized())) | ||||
|                 .child( | ||||
|                     new ScrollingContainer() | ||||
|                         .filling() | ||||
|                         .overflowing() | ||||
|                         .contentSized() | ||||
|                         .child( | ||||
|                             new NoteDetailWidget() | ||||
|                                 .css('padding', '5px 20px 10px 0') | ||||
|                                 .css('contain', 'content') | ||||
|                         ) | ||||
|                 ) | ||||
|             ); | ||||
|   | ||||
| @@ -79,12 +79,12 @@ class AppContext extends Component { | ||||
|         this.triggerEvent('initialRenderComplete'); | ||||
|     } | ||||
|  | ||||
|     /** @return {Promise} */ | ||||
|     /** @returns {Promise} */ | ||||
|     triggerEvent(name, data) { | ||||
|         return this.handleEvent(name, data); | ||||
|     } | ||||
|  | ||||
|     /** @return {Promise} */ | ||||
|     /** @returns {Promise} */ | ||||
|     triggerCommand(name, data = {}) { | ||||
|         for (const executor of this.executors) { | ||||
|             const fun = executor[name + "Command"]; | ||||
|   | ||||
| @@ -109,6 +109,10 @@ async function deleteNotes(branchIdsToDelete) { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if (eraseNotes) { | ||||
|         utils.reloadFrontendApp("erasing notes requires reload"); | ||||
|     } | ||||
|  | ||||
|     return true; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -97,7 +97,7 @@ class ContextMenu { | ||||
|                     .append($link) | ||||
|                     // important to use mousedown instead of click since the former does not change focus | ||||
|                     // (especially important for focused text for spell check) | ||||
|                     .on('mousedown', (e) => { | ||||
|                     .on('mousedown', e => { | ||||
|                         e.stopPropagation(); | ||||
|  | ||||
|                         this.hide(); | ||||
|   | ||||
| @@ -2,19 +2,19 @@ import froca from "./froca.js"; | ||||
| import server from "./server.js"; | ||||
| import ws from "./ws.js"; | ||||
|  | ||||
| /** @return {NoteShort} */ | ||||
| /** @returns {NoteShort} */ | ||||
| async function getInboxNote() { | ||||
|     const note = await server.get('special-notes/inbox/' + dayjs().format("YYYY-MM-DD"), "date-note"); | ||||
|  | ||||
|     return await froca.getNote(note.noteId); | ||||
| } | ||||
|  | ||||
| /** @return {NoteShort} */ | ||||
| /** @returns {NoteShort} */ | ||||
| async function getTodayNote() { | ||||
|     return await getDateNote(dayjs().format("YYYY-MM-DD")); | ||||
| } | ||||
|  | ||||
| /** @return {NoteShort} */ | ||||
| /** @returns {NoteShort} */ | ||||
| async function getDateNote(date) { | ||||
|     const note = await server.get('special-notes/date/' + date, "date-note"); | ||||
|  | ||||
| @@ -23,7 +23,16 @@ async function getDateNote(date) { | ||||
|     return await froca.getNote(note.noteId); | ||||
| } | ||||
|  | ||||
| /** @return {NoteShort} */ | ||||
| /** @returns {NoteShort} */ | ||||
| async function getWeekNote(date) { | ||||
|     const note = await server.get('special-notes/week/' + date, "date-note"); | ||||
|  | ||||
|     await ws.waitForMaxKnownEntityChangeId(); | ||||
|  | ||||
|     return await froca.getNote(note.noteId); | ||||
| } | ||||
|  | ||||
| /** @returns {NoteShort} */ | ||||
| async function getMonthNote(month) { | ||||
|     const note = await server.get('special-notes/month/' + month, "date-note"); | ||||
|  | ||||
| @@ -32,7 +41,7 @@ async function getMonthNote(month) { | ||||
|     return await froca.getNote(note.noteId); | ||||
| } | ||||
|  | ||||
| /** @return {NoteShort} */ | ||||
| /** @returns {NoteShort} */ | ||||
| async function getYearNote(year) { | ||||
|     const note = await server.get('special-notes/year/' + year, "date-note"); | ||||
|  | ||||
| @@ -41,7 +50,7 @@ async function getYearNote(year) { | ||||
|     return await froca.getNote(note.noteId); | ||||
| } | ||||
|  | ||||
| /** @return {NoteShort} */ | ||||
| /** @returns {NoteShort} */ | ||||
| async function createSqlConsole() { | ||||
|     const note = await server.post('special-notes/sql-console'); | ||||
|  | ||||
| @@ -50,7 +59,7 @@ async function createSqlConsole() { | ||||
|     return await froca.getNote(note.noteId); | ||||
| } | ||||
|  | ||||
| /** @return {NoteShort} */ | ||||
| /** @returns {NoteShort} */ | ||||
| async function createSearchNote(opts = {}) { | ||||
|     const note = await server.post('special-notes/search-note', opts); | ||||
|  | ||||
| @@ -63,6 +72,7 @@ export default { | ||||
|     getInboxNote, | ||||
|     getTodayNote, | ||||
|     getDateNote, | ||||
|     getWeekNote, | ||||
|     getMonthNote, | ||||
|     getYearNote, | ||||
|     createSqlConsole, | ||||
|   | ||||
| @@ -172,6 +172,12 @@ export default class Entrypoints extends Component { | ||||
|         utils.reloadFrontendApp("Switching to desktop version"); | ||||
|     } | ||||
|  | ||||
|     async switchToMobileVersionCommand() { | ||||
|         utils.setCookie('trilium-device', 'mobile'); | ||||
|  | ||||
|         utils.reloadFrontendApp("Switching to mobile version"); | ||||
|     } | ||||
|  | ||||
|     async openInWindowCommand({notePath, hoistedNoteId}) { | ||||
|         if (!hoistedNoteId) { | ||||
|             hoistedNoteId = 'root'; | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user