#editor-column.section.editor.sn-component(aria-label='Note') .sn-component .sk-app-bar.no-edges( ng-if='self.noteLocked', ng-init="self.lockText = 'Note Locked'", ng-mouseleave="self.lockText = 'Note Locked'", ng-mouseover="self.lockText = 'Unlock'" ) .left .sk-app-bar-item(ng-click='self.toggleLockNote()') .sk-label.warning i.icon.ion-locked | {{self.lockText}} #editor-title-bar.section-title-bar( ng-class="{'locked' : self.noteLocked}", ng-show='self.note && !self.note.errorDecrypting' ) .title input#note-title-editor.input( ng-blur='self.onTitleBlur()', ng-change='self.onTitleChange()', ng-disabled='self.noteLocked', ng-focus='self.onTitleFocus()', ng-keyup='$event.keyCode == 13 && self.onTitleEnter($event)', ng-model='self.editorValues.title', select-on-focus='true', spellcheck='false' ) #save-status .message( ng-class="{'warning sk-bold': self.state.syncTakingTooLong, 'danger sk-bold': self.state.saveError}" ) {{self.state.noteStatus.message}} .desc(ng-show='self.state.noteStatus.desc') {{self.state.noteStatus.desc}} .editor-tags #note-tags-component-container(ng-if='self.state.tagsComponent && !self.note.errorDecrypting') component-view.component-view( component-uuid='self.state.tagsComponent.uuid', ng-class="{'locked' : self.noteLocked}", ng-style="self.noteLocked && {'pointer-events' : 'none'}", application='self.application' ) input.tags-input( ng-blur='self.onTagsInputBlur()', ng-disabled='self.noteLocked', ng-if='!self.state.tagsComponent', ng-keyup='$event.keyCode == 13 && $event.target.blur();', ng-model='self.editorValues.tagsInputValue', placeholder='#tags', spellcheck='false', type='text' ) .sn-component(ng-if='self.note') #editor-menu-bar.sk-app-bar.no-edges .left .sk-app-bar-item( click-outside=`self.setMenuState('showOptionsMenu', false)`, is-open='self.state.showOptionsMenu', ng-class="{'selected' : self.state.showOptionsMenu}", ng-click="self.toggleMenu('showOptionsMenu')" ) .sk-label Options .sk-menu-panel.dropdown-menu(ng-if='self.state.showOptionsMenu') .sk-menu-panel-section .sk-menu-panel-header .sk-menu-panel-header-title Note Options menu-row( action='self.selectedMenuItem(true); self.togglePin()' desc="'Pin or unpin a note from the top of your list'", label="self.note.pinned ? 'Unpin' : 'Pin'" ) menu-row( action='self.selectedMenuItem(true); self.toggleArchiveNote()' desc="'Archive or unarchive a note from your Archived system tag'", label="self.note.archived ? 'Unarchive' : 'Archive'" ) menu-row( action='self.selectedMenuItem(true); self.toggleLockNote()' desc="'Locking notes prevents unintentional editing'", label="self.noteLocked ? 'Unlock' : 'Lock'" ) menu-row( action='self.selectedMenuItem(true); self.toggleProtectNote()' desc=`'Protecting a note will require credentials to view it'`, label="self.note.protected ? 'Unprotect' : 'Protect'" ) menu-row( action='self.selectedMenuItem(true); self.toggleNotePreview()' circle="self.note.hidePreview ? 'danger' : 'success'", circle-align="'right'", desc="'Hide or unhide the note preview from the list of notes'", label="'Preview'" ) menu-row( action='self.selectedMenuItem(); self.deleteNote()' desc="'Send this note to the trash'", label="'Move to Trash'", ng-show='!self.state.altKeyDown && !self.note.trashed && !self.note.errorDecrypting', stylekit-class="'warning'" ) menu-row( action='self.selectedMenuItem(); self.deleteNotePermanantely()' desc="'Delete this note permanently from all your devices'", label="'Delete Permanently'", ng-show='!self.note.trashed && self.note.errorDecrypting', stylekit-class="'danger'" ) div(ng-if='self.note.trashed || self.state.altKeyDown') menu-row( action='self.selectedMenuItem(true); self.restoreTrashedNote()' desc="'Undelete this note and restore it back into your notes'", label="'Restore'", ng-show='self.note.trashed', stylekit-class="'info'" ) menu-row( action='self.selectedMenuItem(true); self.deleteNotePermanantely()' desc="'Delete this note permanently from all your devices'", label="'Delete Permanently'", stylekit-class="'danger'" ) menu-row( action='self.selectedMenuItem(true); self.emptyTrash()' desc="'Permanently delete all notes in the trash'", label="'Empty Trash'", ng-show='self.note.trashed || !self.state.altKeyDown', stylekit-class="'danger'", subtitle="self.getTrashCount() + ' notes in trash'" ) .sk-menu-panel-section .sk-menu-panel-header .sk-menu-panel-header-title Global Display menu-row( action="self.selectedMenuItem(true); self.toggleWebPrefKey(self.prefKeyMonospace)" circle="self.state.monospaceFont ? 'success' : 'neutral'", desc="'Toggles the font style for the default editor'", disabled='self.state.editorComponent', label="'Monospace Font'", subtitle="self.state.editorComponent ? 'Not available with editor extensions' : null" ) menu-row( action="self.selectedMenuItem(true); self.toggleWebPrefKey(self.prefKeySpellcheck)" circle="self.state.spellcheck ? 'success' : 'neutral'", desc="'Toggles spellcheck for the default editor'", disabled='self.state.editorComponent', label="'Spellcheck'", subtitle=` self.state.editorComponent ? 'Not available with editor extensions' : (self.state.isDesktop ? 'May degrade editor performance' : null) `) menu-row( action="self.selectedMenuItem(true); self.toggleWebPrefKey(self.prefKeyMarginResizers)" circle="self.state.marginResizersEnabled ? 'success' : 'neutral'", desc="'Allows for editor left and right margins to be resized'", faded='!self.state.marginResizersEnabled', label="'Margin Resizers'" ) .sk-app-bar-item( click-outside=`self.setMenuState('showEditorMenu', false)` is-open='self.state.showEditorMenu', ng-class="{'selected' : self.state.showEditorMenu}", ng-click="self.toggleMenu('showEditorMenu')" ) .sk-label Editor editor-menu( callback='self.editorMenuOnSelect', current-item='self.note', ng-if='self.state.showEditorMenu', selected-editor-uuid='self.state.editorComponent && self.state.editorComponent.uuid', application='self.application' ) .sk-app-bar-item( click-outside=`self.setMenuState('showActionsMenu', false)`, is-open='self.state.showActionsMenu', ng-class="{'selected' : self.state.showActionsMenu}", ng-click="self.toggleMenu('showActionsMenu')" ) .sk-label Actions actions-menu( item='self.note', ng-if='self.state.showActionsMenu', application='self.application' ) .sk-app-bar-item( click-outside=`self.setMenuState('showHistoryMenu', false)`, is-open='self.state.showHistoryMenu', ng-class="{'selected' : self.state.showHistoryMenu}", ng-click="self.toggleMenu('showHistoryMenu')" ) .sk-label History history-menu( item='self.note', ng-if='self.state.showHistoryMenu', application='self.application' ) #editor-content.editor-content(ng-if='!self.note.errorDecrypting') panel-resizer.left( control='self.leftPanelPuppet', hoverable='true', min-width='300', ng-if='self.state.marginResizersEnabled', on-resize-finish='self.onPanelResizeFinish', panel-id="'editor-content'", property="'left'" ) component-view.component-view( component-uuid='self.state.editorComponent.uuid', ng-if='self.state.editorComponent && !self.state.editorUnloading', on-load='self.onEditorLoad', application='self.application' ) textarea#note-text-editor.editable.font-editor( dir='auto', ng-attr-spellcheck='{{self.state.spellcheck}}', ng-change='self.contentChanged()', ng-click='self.clickedTextArea()', ng-focus='self.onContentFocus()', ng-if='!self.state.editorComponent && !self.state.textareaUnloading', ng-model='self.editorValues.text', ng-model-options='{ debounce: self.state.editorDebounce}', ng-readonly='self.noteLocked', ng-trim='false' autocomplete='off' ) | {{self.onSystemEditorLoad()}} panel-resizer( control='self.rightPanelPuppet', hoverable='true', min-width='300', ng-if='self.state.marginResizersEnabled', on-resize-finish='self.onPanelResizeFinish', panel-id="'editor-content'", property="'right'" ) .section(ng-show='self.note.errorDecrypting') .sn-component#error-decrypting-container .sk-panel#error-decrypting-panel .sk-panel-header .sk-panel-header-title {{self.note.waitingForKey ? 'Waiting for Key' : 'Unable to Decrypt'}} .sk-panel-content .sk-panel-section p.sk-p(ng-if='self.note.waitingForKey') | This note is awaiting its encryption key to be ready. Please wait for syncing to complete | for this note to be decrypted. p.sk-p(ng-if='!self.note.waitingForKey') | There was an error decrypting this item. Ensure you are running the | latest version of this app, then sign out and sign back in to try again. #editor-pane-component-stack(ng-if='!self.note.errorDecrypting' ng-show='self.note') #component-stack-menu-bar.sk-app-bar.no-edges(ng-if='self.state.stackComponents.length') .left .sk-app-bar-item( ng-repeat='component in self.state.stackComponents track by component.uuid' ng-click='self.toggleStackComponentForCurrentItem(component)', ) .sk-app-bar-item-column .sk-circle.small( ng-class="{'info' : !self.stackComponentHidden(component) && component.active, 'neutral' : self.stackComponentHidden(component) || !component.active}" ) .sk-app-bar-item-column .sk-label {{component.name}} .sn-component component-view.component-view.component-stack-item( ng-repeat='component in self.state.stackComponents track by component.uuid', component-uuid='component.uuid', manual-dealloc='true', ng-show='!self.stackComponentHidden(component)', application='self.application' )