mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	refactored layouts for extra window
This commit is contained in:
		@@ -1,8 +1,8 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
<dataSource name="document.db">
 | 
					<dataSource name="document.db">
 | 
				
			||||||
  <database-model serializer="dbm" dbms="SQLITE" family-id="SQLITE" format-version="4.17">
 | 
					  <database-model serializer="dbm" dbms="SQLITE" family-id="SQLITE" format-version="4.18">
 | 
				
			||||||
    <root id="1">
 | 
					    <root id="1">
 | 
				
			||||||
      <ServerVersion>3.25.1</ServerVersion>
 | 
					      <ServerVersion>3.16.1</ServerVersion>
 | 
				
			||||||
    </root>
 | 
					    </root>
 | 
				
			||||||
    <schema id="2" parent="1" name="main">
 | 
					    <schema id="2" parent="1" name="main">
 | 
				
			||||||
      <Current>1</Current>
 | 
					      <Current>1</Current>
 | 
				
			||||||
@@ -57,6 +57,7 @@
 | 
				
			|||||||
    <index id="24" parent="6" name="sqlite_autoindex_api_tokens_1">
 | 
					    <index id="24" parent="6" name="sqlite_autoindex_api_tokens_1">
 | 
				
			||||||
      <NameSurrogate>1</NameSurrogate>
 | 
					      <NameSurrogate>1</NameSurrogate>
 | 
				
			||||||
      <ColNames>apiTokenId</ColNames>
 | 
					      <ColNames>apiTokenId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="25" parent="6">
 | 
					    <key id="25" parent="6">
 | 
				
			||||||
@@ -130,17 +131,21 @@
 | 
				
			|||||||
    <index id="38" parent="7" name="sqlite_autoindex_attributes_1">
 | 
					    <index id="38" parent="7" name="sqlite_autoindex_attributes_1">
 | 
				
			||||||
      <NameSurrogate>1</NameSurrogate>
 | 
					      <NameSurrogate>1</NameSurrogate>
 | 
				
			||||||
      <ColNames>attributeId</ColNames>
 | 
					      <ColNames>attributeId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="39" parent="7" name="IDX_attributes_noteId_index">
 | 
					    <index id="39" parent="7" name="IDX_attributes_noteId_index">
 | 
				
			||||||
      <ColNames>noteId</ColNames>
 | 
					      <ColNames>noteId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="40" parent="7" name="IDX_attributes_name_value">
 | 
					    <index id="40" parent="7" name="IDX_attributes_name_value">
 | 
				
			||||||
      <ColNames>name
 | 
					      <ColNames>name
 | 
				
			||||||
value</ColNames>
 | 
					value</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="41" parent="7" name="IDX_attributes_value_index">
 | 
					    <index id="41" parent="7" name="IDX_attributes_value_index">
 | 
				
			||||||
      <ColNames>value</ColNames>
 | 
					      <ColNames>value</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="42" parent="7">
 | 
					    <key id="42" parent="7">
 | 
				
			||||||
      <ColNames>attributeId</ColNames>
 | 
					      <ColNames>attributeId</ColNames>
 | 
				
			||||||
@@ -207,14 +212,17 @@ value</ColNames>
 | 
				
			|||||||
    <index id="54" parent="8" name="sqlite_autoindex_branches_1">
 | 
					    <index id="54" parent="8" name="sqlite_autoindex_branches_1">
 | 
				
			||||||
      <NameSurrogate>1</NameSurrogate>
 | 
					      <NameSurrogate>1</NameSurrogate>
 | 
				
			||||||
      <ColNames>branchId</ColNames>
 | 
					      <ColNames>branchId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="55" parent="8" name="IDX_branches_noteId_parentNoteId">
 | 
					    <index id="55" parent="8" name="IDX_branches_noteId_parentNoteId">
 | 
				
			||||||
      <ColNames>noteId
 | 
					      <ColNames>noteId
 | 
				
			||||||
parentNoteId</ColNames>
 | 
					parentNoteId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="56" parent="8" name="IDX_branches_parentNoteId">
 | 
					    <index id="56" parent="8" name="IDX_branches_parentNoteId">
 | 
				
			||||||
      <ColNames>parentNoteId</ColNames>
 | 
					      <ColNames>parentNoteId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="57" parent="8">
 | 
					    <key id="57" parent="8">
 | 
				
			||||||
      <ColNames>branchId</ColNames>
 | 
					      <ColNames>branchId</ColNames>
 | 
				
			||||||
@@ -245,6 +253,7 @@ parentNoteId</ColNames>
 | 
				
			|||||||
    <index id="62" parent="9" name="sqlite_autoindex_note_contents_1">
 | 
					    <index id="62" parent="9" name="sqlite_autoindex_note_contents_1">
 | 
				
			||||||
      <NameSurrogate>1</NameSurrogate>
 | 
					      <NameSurrogate>1</NameSurrogate>
 | 
				
			||||||
      <ColNames>noteId</ColNames>
 | 
					      <ColNames>noteId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="63" parent="9">
 | 
					    <key id="63" parent="9">
 | 
				
			||||||
@@ -275,6 +284,7 @@ parentNoteId</ColNames>
 | 
				
			|||||||
    <index id="68" parent="10" name="sqlite_autoindex_note_revision_contents_1">
 | 
					    <index id="68" parent="10" name="sqlite_autoindex_note_revision_contents_1">
 | 
				
			||||||
      <NameSurrogate>1</NameSurrogate>
 | 
					      <NameSurrogate>1</NameSurrogate>
 | 
				
			||||||
      <ColNames>noteRevisionId</ColNames>
 | 
					      <ColNames>noteRevisionId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="69" parent="10">
 | 
					    <key id="69" parent="10">
 | 
				
			||||||
@@ -359,22 +369,28 @@ parentNoteId</ColNames>
 | 
				
			|||||||
    <index id="84" parent="11" name="sqlite_autoindex_note_revisions_1">
 | 
					    <index id="84" parent="11" name="sqlite_autoindex_note_revisions_1">
 | 
				
			||||||
      <NameSurrogate>1</NameSurrogate>
 | 
					      <NameSurrogate>1</NameSurrogate>
 | 
				
			||||||
      <ColNames>noteRevisionId</ColNames>
 | 
					      <ColNames>noteRevisionId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="85" parent="11" name="IDX_note_revisions_noteId">
 | 
					    <index id="85" parent="11" name="IDX_note_revisions_noteId">
 | 
				
			||||||
      <ColNames>noteId</ColNames>
 | 
					      <ColNames>noteId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="86" parent="11" name="IDX_note_revisions_utcDateLastEdited">
 | 
					    <index id="86" parent="11" name="IDX_note_revisions_utcDateLastEdited">
 | 
				
			||||||
      <ColNames>utcDateLastEdited</ColNames>
 | 
					      <ColNames>utcDateLastEdited</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="87" parent="11" name="IDX_note_revisions_utcDateCreated">
 | 
					    <index id="87" parent="11" name="IDX_note_revisions_utcDateCreated">
 | 
				
			||||||
      <ColNames>utcDateCreated</ColNames>
 | 
					      <ColNames>utcDateCreated</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="88" parent="11" name="IDX_note_revisions_dateLastEdited">
 | 
					    <index id="88" parent="11" name="IDX_note_revisions_dateLastEdited">
 | 
				
			||||||
      <ColNames>dateLastEdited</ColNames>
 | 
					      <ColNames>dateLastEdited</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="89" parent="11" name="IDX_note_revisions_dateCreated">
 | 
					    <index id="89" parent="11" name="IDX_note_revisions_dateCreated">
 | 
				
			||||||
      <ColNames>dateCreated</ColNames>
 | 
					      <ColNames>dateCreated</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="90" parent="11">
 | 
					    <key id="90" parent="11">
 | 
				
			||||||
      <ColNames>noteRevisionId</ColNames>
 | 
					      <ColNames>noteRevisionId</ColNames>
 | 
				
			||||||
@@ -461,28 +477,36 @@ parentNoteId</ColNames>
 | 
				
			|||||||
    <index id="105" parent="12" name="sqlite_autoindex_notes_1">
 | 
					    <index id="105" parent="12" name="sqlite_autoindex_notes_1">
 | 
				
			||||||
      <NameSurrogate>1</NameSurrogate>
 | 
					      <NameSurrogate>1</NameSurrogate>
 | 
				
			||||||
      <ColNames>noteId</ColNames>
 | 
					      <ColNames>noteId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="106" parent="12" name="IDX_notes_title">
 | 
					    <index id="106" parent="12" name="IDX_notes_title">
 | 
				
			||||||
      <ColNames>title</ColNames>
 | 
					      <ColNames>title</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="107" parent="12" name="IDX_notes_type">
 | 
					    <index id="107" parent="12" name="IDX_notes_type">
 | 
				
			||||||
      <ColNames>type</ColNames>
 | 
					      <ColNames>type</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="108" parent="12" name="IDX_notes_isDeleted">
 | 
					    <index id="108" parent="12" name="IDX_notes_isDeleted">
 | 
				
			||||||
      <ColNames>isDeleted</ColNames>
 | 
					      <ColNames>isDeleted</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="109" parent="12" name="IDX_notes_dateCreated">
 | 
					    <index id="109" parent="12" name="IDX_notes_dateCreated">
 | 
				
			||||||
      <ColNames>dateCreated</ColNames>
 | 
					      <ColNames>dateCreated</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="110" parent="12" name="IDX_notes_dateModified">
 | 
					    <index id="110" parent="12" name="IDX_notes_dateModified">
 | 
				
			||||||
      <ColNames>dateModified</ColNames>
 | 
					      <ColNames>dateModified</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="111" parent="12" name="IDX_notes_utcDateCreated">
 | 
					    <index id="111" parent="12" name="IDX_notes_utcDateCreated">
 | 
				
			||||||
      <ColNames>utcDateCreated</ColNames>
 | 
					      <ColNames>utcDateCreated</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="112" parent="12" name="IDX_notes_utcDateModified">
 | 
					    <index id="112" parent="12" name="IDX_notes_utcDateModified">
 | 
				
			||||||
      <ColNames>utcDateModified</ColNames>
 | 
					      <ColNames>utcDateModified</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="113" parent="12">
 | 
					    <key id="113" parent="12">
 | 
				
			||||||
      <ColNames>noteId</ColNames>
 | 
					      <ColNames>noteId</ColNames>
 | 
				
			||||||
@@ -523,6 +547,7 @@ parentNoteId</ColNames>
 | 
				
			|||||||
    <index id="120" parent="13" name="sqlite_autoindex_options_1">
 | 
					    <index id="120" parent="13" name="sqlite_autoindex_options_1">
 | 
				
			||||||
      <NameSurrogate>1</NameSurrogate>
 | 
					      <NameSurrogate>1</NameSurrogate>
 | 
				
			||||||
      <ColNames>name</ColNames>
 | 
					      <ColNames>name</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="121" parent="13">
 | 
					    <key id="121" parent="13">
 | 
				
			||||||
@@ -558,6 +583,7 @@ parentNoteId</ColNames>
 | 
				
			|||||||
    <index id="127" parent="14" name="sqlite_autoindex_recent_notes_1">
 | 
					    <index id="127" parent="14" name="sqlite_autoindex_recent_notes_1">
 | 
				
			||||||
      <NameSurrogate>1</NameSurrogate>
 | 
					      <NameSurrogate>1</NameSurrogate>
 | 
				
			||||||
      <ColNames>noteId</ColNames>
 | 
					      <ColNames>noteId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="128" parent="14">
 | 
					    <key id="128" parent="14">
 | 
				
			||||||
@@ -578,10 +604,12 @@ parentNoteId</ColNames>
 | 
				
			|||||||
    <index id="131" parent="15" name="sqlite_autoindex_source_ids_1">
 | 
					    <index id="131" parent="15" name="sqlite_autoindex_source_ids_1">
 | 
				
			||||||
      <NameSurrogate>1</NameSurrogate>
 | 
					      <NameSurrogate>1</NameSurrogate>
 | 
				
			||||||
      <ColNames>sourceId</ColNames>
 | 
					      <ColNames>sourceId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="132" parent="15" name="IDX_source_ids_utcDateCreated">
 | 
					    <index id="132" parent="15" name="IDX_source_ids_utcDateCreated">
 | 
				
			||||||
      <ColNames>utcDateCreated</ColNames>
 | 
					      <ColNames>utcDateCreated</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="133" parent="15">
 | 
					    <key id="133" parent="15">
 | 
				
			||||||
      <ColNames>sourceId</ColNames>
 | 
					      <ColNames>sourceId</ColNames>
 | 
				
			||||||
@@ -602,7 +630,7 @@ parentNoteId</ColNames>
 | 
				
			|||||||
    </column>
 | 
					    </column>
 | 
				
			||||||
    <column id="137" parent="16" name="rootpage">
 | 
					    <column id="137" parent="16" name="rootpage">
 | 
				
			||||||
      <Position>4</Position>
 | 
					      <Position>4</Position>
 | 
				
			||||||
      <DataType>int|0s</DataType>
 | 
					      <DataType>integer|0s</DataType>
 | 
				
			||||||
    </column>
 | 
					    </column>
 | 
				
			||||||
    <column id="138" parent="16" name="sql">
 | 
					    <column id="138" parent="16" name="sql">
 | 
				
			||||||
      <Position>5</Position>
 | 
					      <Position>5</Position>
 | 
				
			||||||
@@ -649,10 +677,12 @@ parentNoteId</ColNames>
 | 
				
			|||||||
    <index id="147" parent="18" name="IDX_sync_entityName_entityId">
 | 
					    <index id="147" parent="18" name="IDX_sync_entityName_entityId">
 | 
				
			||||||
      <ColNames>entityName
 | 
					      <ColNames>entityName
 | 
				
			||||||
entityId</ColNames>
 | 
					entityId</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
      <Unique>1</Unique>
 | 
					      <Unique>1</Unique>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <index id="148" parent="18" name="IDX_sync_utcSyncDate">
 | 
					    <index id="148" parent="18" name="IDX_sync_utcSyncDate">
 | 
				
			||||||
      <ColNames>utcSyncDate</ColNames>
 | 
					      <ColNames>utcSyncDate</ColNames>
 | 
				
			||||||
 | 
					      <ColumnCollations></ColumnCollations>
 | 
				
			||||||
    </index>
 | 
					    </index>
 | 
				
			||||||
    <key id="149" parent="18">
 | 
					    <key id="149" parent="18">
 | 
				
			||||||
      <ColNames>id</ColNames>
 | 
					      <ColNames>id</ColNames>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										86
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										86
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -3327,9 +3327,12 @@
 | 
				
			|||||||
      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
 | 
					      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "ejs": {
 | 
					    "ejs": {
 | 
				
			||||||
      "version": "3.0.2",
 | 
					      "version": "3.1.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-IncmUpn1yN84hy2shb0POJ80FWrfGNY0cxO9f4v+/sG7qcBvAtVWUA1IdzY/8EYUmOVhoKJVdJjNd3AZcnxOjA=="
 | 
					      "integrity": "sha512-zFuywxrAWtX5Mk2KAuoJNkXXbfezpNA0v7i+YC971QORguPekpjpAgeOv99YWSdKXwj7JxI2QAWDeDkE8fWtXw==",
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "jake": "^10.6.1"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "electron": {
 | 
					    "electron": {
 | 
				
			||||||
      "version": "9.0.0-beta.18",
 | 
					      "version": "9.0.0-beta.18",
 | 
				
			||||||
@@ -4445,6 +4448,14 @@
 | 
				
			|||||||
        "typedarray-to-buffer": "^3.1.5"
 | 
					        "typedarray-to-buffer": "^3.1.5"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "filelist": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==",
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "minimatch": "^3.0.4"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "filename-regex": {
 | 
					    "filename-regex": {
 | 
				
			||||||
      "version": "2.0.1",
 | 
					      "version": "2.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
 | 
				
			||||||
@@ -6146,6 +6157,55 @@
 | 
				
			|||||||
        "is-object": "^1.0.1"
 | 
					        "is-object": "^1.0.1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "jake": {
 | 
				
			||||||
 | 
					      "version": "10.6.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/jake/-/jake-10.6.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-pHUK3+V0BjOb1XSi95rbBksrMdIqLVC9bJqDnshVyleYsET3H0XAq+3VB2E3notcYvv4wRdRHn13p7vobG+wfQ==",
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "async": "0.9.x",
 | 
				
			||||||
 | 
					        "chalk": "^2.4.2",
 | 
				
			||||||
 | 
					        "filelist": "^1.0.1",
 | 
				
			||||||
 | 
					        "minimatch": "^3.0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "ansi-styles": {
 | 
				
			||||||
 | 
					          "version": "3.2.1",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "color-convert": "^1.9.0"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "async": {
 | 
				
			||||||
 | 
					          "version": "0.9.2",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "chalk": {
 | 
				
			||||||
 | 
					          "version": "2.4.2",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "ansi-styles": "^3.2.1",
 | 
				
			||||||
 | 
					            "escape-string-regexp": "^1.0.5",
 | 
				
			||||||
 | 
					            "supports-color": "^5.3.0"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "has-flag": {
 | 
				
			||||||
 | 
					          "version": "3.0.0",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "supports-color": {
 | 
				
			||||||
 | 
					          "version": "5.5.0",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "has-flag": "^3.0.0"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "jest-worker": {
 | 
					    "jest-worker": {
 | 
				
			||||||
      "version": "25.4.0",
 | 
					      "version": "25.4.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.4.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.4.0.tgz",
 | 
				
			||||||
@@ -7017,17 +7077,17 @@
 | 
				
			|||||||
      "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
 | 
					      "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "mime-types": {
 | 
					    "mime-types": {
 | 
				
			||||||
      "version": "2.1.26",
 | 
					      "version": "2.1.27",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
 | 
				
			||||||
      "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
 | 
					      "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "mime-db": "1.43.0"
 | 
					        "mime-db": "1.44.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "mime-db": {
 | 
					        "mime-db": {
 | 
				
			||||||
          "version": "1.43.0",
 | 
					          "version": "1.44.0",
 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
 | 
					          "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
 | 
				
			||||||
          "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
 | 
					          "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -11850,9 +11910,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "ws": {
 | 
					    "ws": {
 | 
				
			||||||
      "version": "7.2.3",
 | 
					      "version": "7.2.5",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.5.tgz",
 | 
				
			||||||
      "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ=="
 | 
					      "integrity": "sha512-C34cIU4+DB2vMyAbmEKossWq2ZQDr6QEyuuCzWrM9zfw1sGc0mYiJ0UnG9zzNykt49C2Fi34hvr2vssFQRS6EA=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "x-xss-protection": {
 | 
					    "x-xss-protection": {
 | 
				
			||||||
      "version": "1.3.0",
 | 
					      "version": "1.3.0",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,7 +30,7 @@
 | 
				
			|||||||
    "csurf": "1.11.0",
 | 
					    "csurf": "1.11.0",
 | 
				
			||||||
    "dayjs": "1.8.25",
 | 
					    "dayjs": "1.8.25",
 | 
				
			||||||
    "debug": "4.1.1",
 | 
					    "debug": "4.1.1",
 | 
				
			||||||
    "ejs": "3.0.2",
 | 
					    "ejs": "3.1.2",
 | 
				
			||||||
    "electron-debug": "3.0.1",
 | 
					    "electron-debug": "3.0.1",
 | 
				
			||||||
    "electron-dl": "3.0.0",
 | 
					    "electron-dl": "3.0.0",
 | 
				
			||||||
    "electron-find": "1.0.6",
 | 
					    "electron-find": "1.0.6",
 | 
				
			||||||
@@ -52,7 +52,7 @@
 | 
				
			|||||||
    "ini": "1.3.5",
 | 
					    "ini": "1.3.5",
 | 
				
			||||||
    "is-svg": "4.2.1",
 | 
					    "is-svg": "4.2.1",
 | 
				
			||||||
    "jimp": "0.10.3",
 | 
					    "jimp": "0.10.3",
 | 
				
			||||||
    "mime-types": "2.1.26",
 | 
					    "mime-types": "2.1.27",
 | 
				
			||||||
    "multer": "1.4.2",
 | 
					    "multer": "1.4.2",
 | 
				
			||||||
    "node-abi": "2.16.0",
 | 
					    "node-abi": "2.16.0",
 | 
				
			||||||
    "open": "7.0.3",
 | 
					    "open": "7.0.3",
 | 
				
			||||||
@@ -73,7 +73,7 @@
 | 
				
			|||||||
    "turndown": "6.0.0",
 | 
					    "turndown": "6.0.0",
 | 
				
			||||||
    "turndown-plugin-gfm": "1.0.2",
 | 
					    "turndown-plugin-gfm": "1.0.2",
 | 
				
			||||||
    "unescape": "1.0.1",
 | 
					    "unescape": "1.0.1",
 | 
				
			||||||
    "ws": "7.2.3",
 | 
					    "ws": "7.2.5",
 | 
				
			||||||
    "yauzl": "^2.10.0",
 | 
					    "yauzl": "^2.10.0",
 | 
				
			||||||
    "yazl": "^2.5.1"
 | 
					    "yazl": "^2.5.1"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,8 +5,9 @@ import bundleService from "./services/bundle.js";
 | 
				
			|||||||
import noteAutocompleteService from './services/note_autocomplete.js';
 | 
					import noteAutocompleteService from './services/note_autocomplete.js';
 | 
				
			||||||
import macInit from './services/mac_init.js';
 | 
					import macInit from './services/mac_init.js';
 | 
				
			||||||
import contextMenu from "./services/context_menu.js";
 | 
					import contextMenu from "./services/context_menu.js";
 | 
				
			||||||
import DesktopLayout from "./widgets/desktop_layout.js";
 | 
					import DesktopMainWindowLayout from "./layouts/desktop_main_window_layout.js";
 | 
				
			||||||
import glob from "./services/glob.js";
 | 
					import glob from "./services/glob.js";
 | 
				
			||||||
 | 
					import DesktopExtraWindowLayout from "./layouts/desktop_extra_window_layout.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
glob.setupGlobs();
 | 
					glob.setupGlobs();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -23,9 +24,11 @@ $('[data-toggle="tooltip"]').tooltip({
 | 
				
			|||||||
macInit.init();
 | 
					macInit.init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bundleService.getWidgetBundlesByParent().then(widgetBundles => {
 | 
					bundleService.getWidgetBundlesByParent().then(widgetBundles => {
 | 
				
			||||||
    const desktopLayout = new DesktopLayout(widgetBundles);
 | 
					    const layout = window.glob.isMainWindow
 | 
				
			||||||
 | 
					        ? new DesktopMainWindowLayout(widgetBundles)
 | 
				
			||||||
 | 
					        : new DesktopExtraWindowLayout(widgetBundles);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    appContext.setLayout(desktopLayout);
 | 
					    appContext.setLayout(layout);
 | 
				
			||||||
    appContext.start();
 | 
					    appContext.start();
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,144 +0,0 @@
 | 
				
			|||||||
import appContext from "./services/app_context.js";
 | 
					 | 
				
			||||||
import utils from './services/utils.js';
 | 
					 | 
				
			||||||
import noteTooltipService from './services/note_tooltip.js';
 | 
					 | 
				
			||||||
import bundleService from "./services/bundle.js";
 | 
					 | 
				
			||||||
import noteAutocompleteService from './services/note_autocomplete.js';
 | 
					 | 
				
			||||||
import macInit from './services/mac_init.js';
 | 
					 | 
				
			||||||
import contextMenu from "./services/context_menu.js";
 | 
					 | 
				
			||||||
import ExtraLayout from "./widgets/extra_layout.js";
 | 
					 | 
				
			||||||
import glob from "./services/glob.js";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
glob.setupGlobs();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (utils.isElectron()) {
 | 
					 | 
				
			||||||
    utils.dynamicRequire('electron').ipcRenderer.on('globalShortcut', async function(event, actionName) {
 | 
					 | 
				
			||||||
        appContext.triggerCommand(actionName);
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$('[data-toggle="tooltip"]').tooltip({
 | 
					 | 
				
			||||||
    html: true
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
macInit.init();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bundleService.getWidgetBundlesByParent().then(widgetBundles => {
 | 
					 | 
				
			||||||
    const extraLayout = new ExtraLayout(widgetBundles);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    appContext.setLayout(extraLayout);
 | 
					 | 
				
			||||||
    appContext.start(false);
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
noteTooltipService.setupGlobalTooltip();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
noteAutocompleteService.init();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (utils.isElectron()) {
 | 
					 | 
				
			||||||
    const electron = utils.dynamicRequire('electron');
 | 
					 | 
				
			||||||
    const {webContents} = electron.remote.getCurrentWindow();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    webContents.on('context-menu', (event, params) => {
 | 
					 | 
				
			||||||
        const {editFlags} = params;
 | 
					 | 
				
			||||||
        const hasText = params.selectionText.trim().length > 0;
 | 
					 | 
				
			||||||
        const isMac = process.platform === "darwin";
 | 
					 | 
				
			||||||
        const platformModifier = isMac ? 'Meta' : 'Ctrl';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        const items = [];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (params.misspelledWord) {
 | 
					 | 
				
			||||||
            for (const suggestion of params.dictionarySuggestions) {
 | 
					 | 
				
			||||||
                items.push({
 | 
					 | 
				
			||||||
                    title: suggestion,
 | 
					 | 
				
			||||||
                    command: "replaceMisspelling",
 | 
					 | 
				
			||||||
                    spellingSuggestion: suggestion,
 | 
					 | 
				
			||||||
                    uiIcon: "empty"
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            items.push({
 | 
					 | 
				
			||||||
                title: `Add "${params.misspelledWord}" to dictionary`,
 | 
					 | 
				
			||||||
                uiIcon: "plus",
 | 
					 | 
				
			||||||
                handler: () => webContents.session.addWordToSpellCheckerDictionary(params.misspelledWord)
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            items.push({ title: `----` });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (params.isEditable) {
 | 
					 | 
				
			||||||
            items.push({
 | 
					 | 
				
			||||||
                enabled: editFlags.canCut && hasText,
 | 
					 | 
				
			||||||
                title: `Cut <kbd>${platformModifier}+X`,
 | 
					 | 
				
			||||||
                uiIcon: "cut",
 | 
					 | 
				
			||||||
                handler: () => webContents.cut()
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (params.isEditable || hasText) {
 | 
					 | 
				
			||||||
            items.push({
 | 
					 | 
				
			||||||
                enabled: editFlags.canCopy && hasText,
 | 
					 | 
				
			||||||
                title: `Copy <kbd>${platformModifier}+C`,
 | 
					 | 
				
			||||||
                uiIcon: "copy",
 | 
					 | 
				
			||||||
                handler: () => webContents.copy()
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (params.linkURL.length !== 0 && params.mediaType === 'none') {
 | 
					 | 
				
			||||||
            items.push({
 | 
					 | 
				
			||||||
                title: `Copy link`,
 | 
					 | 
				
			||||||
                uiIcon: "copy",
 | 
					 | 
				
			||||||
                handler: () => {
 | 
					 | 
				
			||||||
                    electron.clipboard.write({
 | 
					 | 
				
			||||||
                        bookmark: params.linkText,
 | 
					 | 
				
			||||||
                        text: params.linkURL
 | 
					 | 
				
			||||||
                    });
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (params.isEditable) {
 | 
					 | 
				
			||||||
            items.push({
 | 
					 | 
				
			||||||
                enabled: editFlags.canPaste,
 | 
					 | 
				
			||||||
                title: `Paste <kbd>${platformModifier}+V`,
 | 
					 | 
				
			||||||
                uiIcon: "paste",
 | 
					 | 
				
			||||||
                handler: () => webContents.paste()
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (params.isEditable) {
 | 
					 | 
				
			||||||
            items.push({
 | 
					 | 
				
			||||||
                enabled: editFlags.canPaste,
 | 
					 | 
				
			||||||
                title: `Paste as plain text <kbd>${platformModifier}+Shift+V`,
 | 
					 | 
				
			||||||
                uiIcon: "paste",
 | 
					 | 
				
			||||||
                handler: () => webContents.pasteAndMatchStyle()
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (hasText) {
 | 
					 | 
				
			||||||
            const shortenedSelection = params.selectionText.length > 15
 | 
					 | 
				
			||||||
                ? (params.selectionText.substr(0, 13) + "…")
 | 
					 | 
				
			||||||
                : params.selectionText;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            items.push({
 | 
					 | 
				
			||||||
                enabled: editFlags.canPaste,
 | 
					 | 
				
			||||||
                title: `Search for "${shortenedSelection}" with DuckDuckGo`,
 | 
					 | 
				
			||||||
                uiIcon: "search-alt",
 | 
					 | 
				
			||||||
                handler: () => electron.shell.openExternal(`https://duckduckgo.com/?q=${encodeURIComponent(params.selectionText)}`)
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (items.length === 0) {
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        contextMenu.show({
 | 
					 | 
				
			||||||
            x: params.x,
 | 
					 | 
				
			||||||
            y: params.y,
 | 
					 | 
				
			||||||
            items,
 | 
					 | 
				
			||||||
            selectMenuItemHandler: ({command, spellingSuggestion}) => {
 | 
					 | 
				
			||||||
                if (command === 'replaceMisspelling') {
 | 
					 | 
				
			||||||
                    webContents.insertText(spellingSuggestion);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,18 +1,18 @@
 | 
				
			|||||||
import FlexContainer from "./flex_container.js";
 | 
					import FlexContainer from "../widgets/flex_container.js";
 | 
				
			||||||
import GlobalMenuWidget from "./global_menu.js";
 | 
					import GlobalMenuWidget from "../widgets/global_menu.js";
 | 
				
			||||||
import TabRowWidget from "./tab_row.js";
 | 
					import TabRowWidget from "../widgets/tab_row.js";
 | 
				
			||||||
import TitleBarButtonsWidget from "./title_bar_buttons.js";
 | 
					import TitleBarButtonsWidget from "../widgets/title_bar_buttons.js";
 | 
				
			||||||
import NoteTreeWidget from "./note_tree.js";
 | 
					import NoteTreeWidget from "../widgets/note_tree.js";
 | 
				
			||||||
import TabCachingWidget from "./tab_caching_widget.js";
 | 
					import TabCachingWidget from "../widgets/tab_caching_widget.js";
 | 
				
			||||||
import NoteTitleWidget from "./note_title.js";
 | 
					import NoteTitleWidget from "../widgets/note_title.js";
 | 
				
			||||||
import RunScriptButtonsWidget from "./run_script_buttons.js";
 | 
					import RunScriptButtonsWidget from "../widgets/run_script_buttons.js";
 | 
				
			||||||
import ProtectedNoteSwitchWidget from "./protected_note_switch.js";
 | 
					import ProtectedNoteSwitchWidget from "../widgets/protected_note_switch.js";
 | 
				
			||||||
import NoteTypeWidget from "./note_type.js";
 | 
					import NoteTypeWidget from "../widgets/note_type.js";
 | 
				
			||||||
import NoteActionsWidget from "./note_actions.js";
 | 
					import NoteActionsWidget from "../widgets/note_actions.js";
 | 
				
			||||||
import PromotedAttributesWidget from "./promoted_attributes.js";
 | 
					import PromotedAttributesWidget from "../widgets/promoted_attributes.js";
 | 
				
			||||||
import NoteDetailWidget from "./note_detail.js";
 | 
					import NoteDetailWidget from "../widgets/note_detail.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class ExtraLayout {
 | 
					export default class DesktopExtraWindowLayout {
 | 
				
			||||||
    constructor(customWidgets) {
 | 
					    constructor(customWidgets) {
 | 
				
			||||||
        this.customWidgets = customWidgets;
 | 
					        this.customWidgets = customWidgets;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1,30 +1,30 @@
 | 
				
			|||||||
import FlexContainer from "./flex_container.js";
 | 
					import FlexContainer from "../widgets/flex_container.js";
 | 
				
			||||||
import GlobalMenuWidget from "./global_menu.js";
 | 
					import GlobalMenuWidget from "../widgets/global_menu.js";
 | 
				
			||||||
import TabRowWidget from "./tab_row.js";
 | 
					import TabRowWidget from "../widgets/tab_row.js";
 | 
				
			||||||
import TitleBarButtonsWidget from "./title_bar_buttons.js";
 | 
					import TitleBarButtonsWidget from "../widgets/title_bar_buttons.js";
 | 
				
			||||||
import StandardTopWidget from "./standard_top_widget.js";
 | 
					import StandardTopWidget from "../widgets/standard_top_widget.js";
 | 
				
			||||||
import SidePaneContainer from "./side_pane_container.js";
 | 
					import SidePaneContainer from "../widgets/side_pane_container.js";
 | 
				
			||||||
import GlobalButtonsWidget from "./global_buttons.js";
 | 
					import GlobalButtonsWidget from "../widgets/global_buttons.js";
 | 
				
			||||||
import SearchBoxWidget from "./search_box.js";
 | 
					import SearchBoxWidget from "../widgets/search_box.js";
 | 
				
			||||||
import SearchResultsWidget from "./search_results.js";
 | 
					import SearchResultsWidget from "../widgets/search_results.js";
 | 
				
			||||||
import NoteTreeWidget from "./note_tree.js";
 | 
					import NoteTreeWidget from "../widgets/note_tree.js";
 | 
				
			||||||
import TabCachingWidget from "./tab_caching_widget.js";
 | 
					import TabCachingWidget from "../widgets/tab_caching_widget.js";
 | 
				
			||||||
import NotePathsWidget from "./note_paths.js";
 | 
					import NotePathsWidget from "../widgets/note_paths.js";
 | 
				
			||||||
import NoteTitleWidget from "./note_title.js";
 | 
					import NoteTitleWidget from "../widgets/note_title.js";
 | 
				
			||||||
import RunScriptButtonsWidget from "./run_script_buttons.js";
 | 
					import RunScriptButtonsWidget from "../widgets/run_script_buttons.js";
 | 
				
			||||||
import ProtectedNoteSwitchWidget from "./protected_note_switch.js";
 | 
					import ProtectedNoteSwitchWidget from "../widgets/protected_note_switch.js";
 | 
				
			||||||
import NoteTypeWidget from "./note_type.js";
 | 
					import NoteTypeWidget from "../widgets/note_type.js";
 | 
				
			||||||
import NoteActionsWidget from "./note_actions.js";
 | 
					import NoteActionsWidget from "../widgets/note_actions.js";
 | 
				
			||||||
import PromotedAttributesWidget from "./promoted_attributes.js";
 | 
					import PromotedAttributesWidget from "../widgets/promoted_attributes.js";
 | 
				
			||||||
import NoteDetailWidget from "./note_detail.js";
 | 
					import NoteDetailWidget from "../widgets/note_detail.js";
 | 
				
			||||||
import NoteInfoWidget from "./note_info.js";
 | 
					import NoteInfoWidget from "../widgets/note_info.js";
 | 
				
			||||||
import CalendarWidget from "./calendar.js";
 | 
					import CalendarWidget from "../widgets/calendar.js";
 | 
				
			||||||
import AttributesWidget from "./attributes.js";
 | 
					import AttributesWidget from "../widgets/attributes.js";
 | 
				
			||||||
import LinkMapWidget from "./link_map.js";
 | 
					import LinkMapWidget from "../widgets/link_map.js";
 | 
				
			||||||
import NoteRevisionsWidget from "./note_revisions.js";
 | 
					import NoteRevisionsWidget from "../widgets/note_revisions.js";
 | 
				
			||||||
import SimilarNotesWidget from "./similar_notes.js";
 | 
					import SimilarNotesWidget from "../widgets/similar_notes.js";
 | 
				
			||||||
import WhatLinksHereWidget from "./what_links_here.js";
 | 
					import WhatLinksHereWidget from "../widgets/what_links_here.js";
 | 
				
			||||||
import SidePaneToggles from "./side_pane_toggles.js";
 | 
					import SidePaneToggles from "../widgets/side_pane_toggles.js";
 | 
				
			||||||
import appContext from "../services/app_context.js";
 | 
					import appContext from "../services/app_context.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const RIGHT_PANE_CSS = `
 | 
					const RIGHT_PANE_CSS = `
 | 
				
			||||||
@@ -98,7 +98,7 @@ const RIGHT_PANE_CSS = `
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
</style>`;
 | 
					</style>`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class DesktopLayout {
 | 
					export default class DesktopMainWindowLayout {
 | 
				
			||||||
    constructor(customWidgets) {
 | 
					    constructor(customWidgets) {
 | 
				
			||||||
        this.customWidgets = customWidgets;
 | 
					        this.customWidgets = customWidgets;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1,11 +1,11 @@
 | 
				
			|||||||
import FlexContainer from "./flex_container.js";
 | 
					import FlexContainer from "../widgets/flex_container.js";
 | 
				
			||||||
import NoteTitleWidget from "./note_title.js";
 | 
					import NoteTitleWidget from "../widgets/note_title.js";
 | 
				
			||||||
import NoteDetailWidget from "./note_detail.js";
 | 
					import NoteDetailWidget from "../widgets/note_detail.js";
 | 
				
			||||||
import NoteTreeWidget from "./note_tree.js";
 | 
					import NoteTreeWidget from "../widgets/note_tree.js";
 | 
				
			||||||
import MobileGlobalButtonsWidget from "./mobile_global_buttons.js";
 | 
					import MobileGlobalButtonsWidget from "../widgets/mobile_global_buttons.js";
 | 
				
			||||||
import CloseDetailButtonWidget from "./close_detail_button.js";
 | 
					import CloseDetailButtonWidget from "../widgets/close_detail_button.js";
 | 
				
			||||||
import MobileDetailMenuWidget from "./mobile_detail_menu.js";
 | 
					import MobileDetailMenuWidget from "../widgets/mobile_detail_menu.js";
 | 
				
			||||||
import ScreenContainer from "./screen_container.js";
 | 
					import ScreenContainer from "../widgets/screen_container.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const MOBILE_CSS = `
 | 
					const MOBILE_CSS = `
 | 
				
			||||||
<style>
 | 
					<style>
 | 
				
			||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
import appContext from "./services/app_context.js";
 | 
					import appContext from "./services/app_context.js";
 | 
				
			||||||
import MobileLayout from "./widgets/mobile_layout.js";
 | 
					import MobileLayout from "./layouts/mobile_layout.js";
 | 
				
			||||||
import glob from "./services/glob.js";
 | 
					import glob from "./services/glob.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
glob.setupGlobs();
 | 
					glob.setupGlobs();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,18 +13,24 @@ import MobileScreenSwitcherExecutor from "../widgets/mobile_screen_switcher.js";
 | 
				
			|||||||
import MainTreeExecutors from "./main_tree_executors.js";
 | 
					import MainTreeExecutors from "./main_tree_executors.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AppContext extends Component {
 | 
					class AppContext extends Component {
 | 
				
			||||||
 | 
					    constructor(isMainWindow) {
 | 
				
			||||||
 | 
					        super();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.isMainWindow = isMainWindow;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    setLayout(layout) {
 | 
					    setLayout(layout) {
 | 
				
			||||||
        this.layout = layout;
 | 
					        this.layout = layout;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async start(loadExistingTabs = true) {
 | 
					    async start() {
 | 
				
			||||||
        await Promise.all([treeCache.initializedPromise, options.initializedPromise]);
 | 
					        await Promise.all([treeCache.initializedPromise, options.initializedPromise]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $("#loading-indicator").hide();
 | 
					        $("#loading-indicator").hide();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.showWidgets();
 | 
					        this.showWidgets();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.tabManager.loadTabs(loadExistingTabs);
 | 
					        this.tabManager.loadTabs();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (utils.isDesktop()) {
 | 
					        if (utils.isDesktop()) {
 | 
				
			||||||
            setTimeout(() => bundleService.executeStartupBundles(), 2000);
 | 
					            setTimeout(() => bundleService.executeStartupBundles(), 2000);
 | 
				
			||||||
@@ -115,7 +121,7 @@ class AppContext extends Component {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const appContext = new AppContext();
 | 
					const appContext = new AppContext(window.glob.isMainWindow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// we should save all outstanding changes before the page/app is closed
 | 
					// we should save all outstanding changes before the page/app is closed
 | 
				
			||||||
$(window).on('beforeunload', () => {
 | 
					$(window).on('beforeunload', () => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ import treeCache from "./tree_cache.js";
 | 
				
			|||||||
import treeService from "./tree.js";
 | 
					import treeService from "./tree.js";
 | 
				
			||||||
import utils from "./utils.js";
 | 
					import utils from "./utils.js";
 | 
				
			||||||
import TabContext from "./tab_context.js";
 | 
					import TabContext from "./tab_context.js";
 | 
				
			||||||
 | 
					import appContext from "./app_context.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class TabManager extends Component {
 | 
					export default class TabManager extends Component {
 | 
				
			||||||
    constructor() {
 | 
					    constructor() {
 | 
				
			||||||
@@ -14,6 +15,10 @@ export default class TabManager extends Component {
 | 
				
			|||||||
        this.activeTabId = null;
 | 
					        this.activeTabId = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        this.tabsUpdate = new SpacedUpdate(async () => {
 | 
					        this.tabsUpdate = new SpacedUpdate(async () => {
 | 
				
			||||||
 | 
					            if (!appContext.isMainWindow) {
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            const openTabs = this.tabContexts
 | 
					            const openTabs = this.tabContexts
 | 
				
			||||||
                .map(tc => tc.getTabState())
 | 
					                .map(tc => tc.getTabState())
 | 
				
			||||||
                .filter(t => !!t);
 | 
					                .filter(t => !!t);
 | 
				
			||||||
@@ -29,8 +34,8 @@ export default class TabManager extends Component {
 | 
				
			|||||||
        return this.children;
 | 
					        return this.children;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async loadTabs(loadExistingTabs) {
 | 
					    async loadTabs() {
 | 
				
			||||||
        const openTabs = loadExistingTabs
 | 
					        const tabsToOpen = appContext.isMainWindow
 | 
				
			||||||
            ? (options.getJson('openTabs') || [])
 | 
					            ? (options.getJson('openTabs') || [])
 | 
				
			||||||
            : [];
 | 
					            : [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -41,17 +46,17 @@ export default class TabManager extends Component {
 | 
				
			|||||||
            const noteId = treeService.getNoteIdFromNotePath(notePath);
 | 
					            const noteId = treeService.getNoteIdFromNotePath(notePath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (noteId && await treeCache.noteExists(noteId)) {
 | 
					            if (noteId && await treeCache.noteExists(noteId)) {
 | 
				
			||||||
                for (const tab of openTabs) {
 | 
					                for (const tab of tabsToOpen) {
 | 
				
			||||||
                    tab.active = false;
 | 
					                    tab.active = false;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                const foundTab = openTabs.find(tab => noteId === treeService.getNoteIdFromNotePath(tab.notePath));
 | 
					                const foundTab = tabsToOpen.find(tab => noteId === treeService.getNoteIdFromNotePath(tab.notePath));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (foundTab) {
 | 
					                if (foundTab) {
 | 
				
			||||||
                    foundTab.active = true;
 | 
					                    foundTab.active = true;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else {
 | 
					                else {
 | 
				
			||||||
                    openTabs.push({
 | 
					                    tabsToOpen.push({
 | 
				
			||||||
                        notePath: notePath,
 | 
					                        notePath: notePath,
 | 
				
			||||||
                        active: true
 | 
					                        active: true
 | 
				
			||||||
                    });
 | 
					                    });
 | 
				
			||||||
@@ -61,7 +66,7 @@ export default class TabManager extends Component {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        let filteredTabs = [];
 | 
					        let filteredTabs = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (const openTab of openTabs) {
 | 
					        for (const openTab of tabsToOpen) {
 | 
				
			||||||
            const noteId = treeService.getNoteIdFromNotePath(openTab.notePath);
 | 
					            const noteId = treeService.getNoteIdFromNotePath(openTab.notePath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (await treeCache.noteExists(noteId)) {
 | 
					            if (await treeCache.noteExists(noteId)) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,10 +13,6 @@ async function index(req, res) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    let view = req.cookies['trilium-device'] === 'mobile' ? 'mobile' : 'desktop';
 | 
					    let view = req.cookies['trilium-device'] === 'mobile' ? 'mobile' : 'desktop';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (req.query.extra) {
 | 
					 | 
				
			||||||
        view = 'extra';
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const csrfToken = req.csrfToken();
 | 
					    const csrfToken = req.csrfToken();
 | 
				
			||||||
    log.info(`Generated CSRF token ${csrfToken} with secret ${res.getHeader('set-cookie')}`);
 | 
					    log.info(`Generated CSRF token ${csrfToken} with secret ${res.getHeader('set-cookie')}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -30,7 +26,8 @@ async function index(req, res) {
 | 
				
			|||||||
        maxSyncIdAtLoad: await sql.getValue("SELECT MAX(id) FROM sync"),
 | 
					        maxSyncIdAtLoad: await sql.getValue("SELECT MAX(id) FROM sync"),
 | 
				
			||||||
        instanceName: config.General ? config.General.instanceName : null,
 | 
					        instanceName: config.General ? config.General.instanceName : null,
 | 
				
			||||||
        appCssNoteIds: await getAppCssNoteIds(),
 | 
					        appCssNoteIds: await getAppCssNoteIds(),
 | 
				
			||||||
        isDev: env.isDev()
 | 
					        isDev: env.isDev(),
 | 
				
			||||||
 | 
					        isMainWindow: !req.query.extra
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,7 +35,7 @@ module.exports = function(filters, selectedColumns = 'notes.*') {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            // forcing to use particular index since SQLite query planner would often choose something pretty bad
 | 
					            // forcing to use particular index since SQLite query planner would often choose something pretty bad
 | 
				
			||||||
            joins[alias] = `LEFT JOIN attributes AS ${alias} INDEXED BY IDX_attributes_noteId_index `
 | 
					            joins[alias] = `LEFT JOIN attributes AS ${alias} INDEXED BY IDX_attributes_noteId_index `
 | 
				
			||||||
                + `ON ${alias}.noteId = notes.noteId AND ${alias}.isDeleted = 0`
 | 
					                + `ON ${alias}.noteId = notes.noteId AND ${alias}.isDeleted = 0 `
 | 
				
			||||||
                + `AND ${alias}.name = '${property}' `;
 | 
					                + `AND ${alias}.name = '${property}' `;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            accessor = `${alias}.value`;
 | 
					            accessor = `${alias}.value`;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,8 +46,9 @@
 | 
				
			|||||||
        maxSyncIdAtLoad: <%= maxSyncIdAtLoad %>,
 | 
					        maxSyncIdAtLoad: <%= maxSyncIdAtLoad %>,
 | 
				
			||||||
        instanceName: '<%= instanceName %>',
 | 
					        instanceName: '<%= instanceName %>',
 | 
				
			||||||
        csrfToken: '<%= csrfToken %>',
 | 
					        csrfToken: '<%= csrfToken %>',
 | 
				
			||||||
        isDev: '<%= isDev %>',
 | 
					        isDev: <%= isDev %>,
 | 
				
			||||||
        appCssNoteIds: <%- JSON.stringify(appCssNoteIds) %>
 | 
					        appCssNoteIds: <%- JSON.stringify(appCssNoteIds) %>,
 | 
				
			||||||
 | 
					        isMainWindow: <%= isMainWindow %>
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,83 +0,0 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					 | 
				
			||||||
<html lang="en">
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
    <meta charset="utf-8">
 | 
					 | 
				
			||||||
    <link rel="shortcut icon" href="favicon.ico">
 | 
					 | 
				
			||||||
    <title>Trilium Notes</title>
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
<body class="desktop theme-<%= theme %>" style="display: none; --main-font-size: <%= mainFontSize %>%; --tree-font-size: <%= treeFontSize %>%; --detail-font-size: <%= detailFontSize %>%;">
 | 
					 | 
				
			||||||
<noscript>Trilium requires JavaScript to be enabled.</noscript>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div id="toast-container" class="d-flex flex-column justify-content-center align-items-center"></div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="dropdown-menu dropdown-menu-sm" id="context-menu-container"></div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<%- include('dialogs/about.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/add_link.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/attributes.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/branch_prefix.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/export.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/import.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/jump_to_note.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/markdown_import.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/note_revisions.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/note_source.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/options.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/protected_session_password.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/recent_changes.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/sql_console.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/info.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/prompt.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/confirm.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/help.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/note_info.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/link_map.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/clone_to.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/move_to.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/backend_log.ejs') %>
 | 
					 | 
				
			||||||
<%- include('dialogs/include_note.ejs') %>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script type="text/javascript">
 | 
					 | 
				
			||||||
    window.baseApiUrl = 'api/';
 | 
					 | 
				
			||||||
    window.device = "desktop";
 | 
					 | 
				
			||||||
    window.glob = {
 | 
					 | 
				
			||||||
        activeDialog: null,
 | 
					 | 
				
			||||||
        sourceId: '<%= sourceId %>',
 | 
					 | 
				
			||||||
        maxSyncIdAtLoad: <%= maxSyncIdAtLoad %>,
 | 
					 | 
				
			||||||
        instanceName: '<%= instanceName %>',
 | 
					 | 
				
			||||||
        csrfToken: '<%= csrfToken %>',
 | 
					 | 
				
			||||||
        isDev: '<%= isDev %>',
 | 
					 | 
				
			||||||
        appCssNoteIds: <%- JSON.stringify(appCssNoteIds) %>
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<!-- Required for correct loading of scripts in Electron -->
 | 
					 | 
				
			||||||
<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script src="libraries/jquery.min.js"></script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<link href="libraries/bootstrap/css/bootstrap.min.css" rel="stylesheet">
 | 
					 | 
				
			||||||
<script src="libraries/bootstrap/js/bootstrap.bundle.min.js"></script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<link href="libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script src="libraries/jquery.hotkeys.js"></script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script src="libraries/autocomplete.jquery.min.js"></script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script src="libraries/dayjs.min.js"></script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<link href="stylesheets/themes.css" rel="stylesheet">
 | 
					 | 
				
			||||||
<link href="stylesheets/style.css" rel="stylesheet">
 | 
					 | 
				
			||||||
<link href="stylesheets/detail.css" rel="stylesheet">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script src="app/extra.js" crossorigin type="module"></script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<link rel="stylesheet" type="text/css" href="libraries/boxicons/css/boxicons.min.css">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
    $("body").show();
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -114,7 +114,7 @@
 | 
				
			|||||||
        maxSyncIdAtLoad: <%= maxSyncIdAtLoad %>,
 | 
					        maxSyncIdAtLoad: <%= maxSyncIdAtLoad %>,
 | 
				
			||||||
        instanceName: '<%= instanceName %>',
 | 
					        instanceName: '<%= instanceName %>',
 | 
				
			||||||
        csrfToken: '<%= csrfToken %>',
 | 
					        csrfToken: '<%= csrfToken %>',
 | 
				
			||||||
        isDev: '<%= isDev %>',
 | 
					        isDev: <%= isDev %>,
 | 
				
			||||||
        appCssNoteIds: <%- JSON.stringify(appCssNoteIds) %>
 | 
					        appCssNoteIds: <%- JSON.stringify(appCssNoteIds) %>
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user