.header .header-content .menu.left .items .item.account %div{"ng-click" => "ctrl.accountMenuPressed()"} %div{"ng-if" => "ctrl.user.email"} Account %div{"ng-if" => "!ctrl.user.email"} Sign in or Register .panel.panel-default.account-panel.panel-right{"ng-if" => "ctrl.showAccountMenu"} .panel-body .account-items .account-item.registration-login{"ng-if" => "!ctrl.user.email"} .account-item .meta-container .title Server .desc Enter your Standard File server address, or use the default. .action-container %form.account-form{'ng-submit' => 'ctrl.changeServer()', 'name' => "serverChangeForm"} .form-tag.has-feedback %input.form-control{:name => 'server', :placeholder => 'Server URL', :required => true, :type => 'text', 'ng-model' => 'ctrl.serverData.url'} %button.btn.dark-button.btn-block{:type => 'submit', "data-style" => "expand-right", "data-size" => "s", "state" => "buttonState"} %span.ladda-label Set Server .meta-container .title Sign in or Register .desc %form.account-form{'name' => "loginForm"} .form-tag.has-feedback %input.form-control.login-input{:autofocus => 'autofocus', :name => 'email', :placeholder => 'Email', :required => true, :type => 'email', 'ng-model' => 'ctrl.loginData.email'} .form-tag.has-feedback %input.form-control.login-input{:placeholder => 'Password', :name => 'password', :required => true, :type => 'password', 'ng-model' => 'ctrl.loginData.user_password'} -# .checkbox{"ng-if" => "ctrl.hasLocalData()"} -# %label -# %input{"type" => "checkbox", "ng-model" => "ctrl.user.shouldMerge", "ng-bind" => "true", "ng-change" => "ctrl.mergeLocalChanged()"} -# Merge local notes %button.btn.dark-button.half-button{"ng-click" => "ctrl.loginSubmitPressed()", "data-style" => "expand-right", "data-size" => "s", "state" => "buttonState"} %span Sign In %button.btn.dark-button.half-button{"ng-click" => "ctrl.submitRegistrationForm()", "data-style" => "expand-right", "data-size" => "s", "state" => "buttonState"} %span Register %br .login-forgot{"style" => "padding-top: 4px;"} %a.btn.btn-link{"ng-click" => "ctrl.showResetForm = !ctrl.showResetForm"} Passwords cannot be forgotten. .panel-status-text{"ng-if" => "ctrl.loginData.status", "style" => "font-size: 14px;"} {{ctrl.loginData.status}} %div{"ng-if" => "ctrl.showResetForm"} %p{"style" => "font-size: 13px; text-align: center;"} Because notes are locally encrypted using a secret key derived from your password, there's no way to decrypt these notes if you forget your password. For this reason, Standard Notes cannot offer a password reset option. You must make sure to store or remember your password. .account-item{"ng-if" => "ctrl.user.email"} .email {{ctrl.user.email}} .links{"ng-if" => "ctrl.user.email"} .link-item %a{"ng-click" => "ctrl.changePasswordPressed()"} Change Password %form.account-form{"ng-if" => "ctrl.showNewPasswordForm", 'ng-submit' => 'ctrl.submitPasswordChange()', 'name' => "passwordChangeForm"} .form-tag.has-feedback %input.form-control.login-input{:autofocus => 'autofocus', :name => 'current', :placeholder => 'Current password', :required => true, :type => 'password', 'ng-model' => 'ctrl.passwordChangeData.current_password'} .form-tag.has-feedback %input.form-control.login-input{:placeholder => 'New password', :name => 'password', :required => true, :type => 'password', 'ng-model' => 'ctrl.passwordChangeData.new_password', "autocomplete" => "new-password"} .form-tag.has-feedback %input.form-control.login-input{:placeholder => 'Confirm password', :name => 'password', :required => true, :type => 'password', 'ng-model' => 'ctrl.passwordChangeData.new_password_confirmation', "autocomplete" => "new-password"} %button.btn.dark-button.btn-block{:type => 'submit', "data-style" => "expand-right", "data-size" => "s", "state" => "buttonState"} %span.ladda-label Change Password .panel-status-text{"ng-if" => "ctrl.passwordChangeData.status", "style" => "font-size: 14px;"} {{ctrl.passwordChangeData.status}} .link-item %a{"ng-click" => "ctrl.signOutPressed()"} Sign Out .meta-container .title Local Encryption .desc Notes are encrypted locally before being sent to the server. Neither the server owner nor an intrusive entity can decrypt your locally encrypted notes. .action-container %span.status-title Status: {{ctrl.encryptionStatusForNotes()}} (shared notes not encrypted) .account-item{"ng-if" => "ctrl.user.email"} .meta-container .title Data Archives .desc Note: data archives that you download using the link below are decrypted before save. You should take care to store them in a safe location. .action-container %a{"ng-click" => "ctrl.downloadDataArchive()"} Download Latest Data Archive %br %label#import-archive %input{"type" => "file", "style" => "display: none;", "file-change" => "->", "handler" => "ctrl.importFileSelected(files)"} %a.disabled %span Import Data from Archive .item %a{"ng-click" => "ctrl.toggleExtensions()"} Extensions .panel.panel-default.account-panel.panel-right.extensions-panel{"ng-if" => "ctrl.showExtensionsMenu"} .panel-body .registered-extensions{"ng-if" => "ctrl.extensionManager.extensions.length"} .extension{"ng-repeat" => "extension in ctrl.extensionManager.extensions"} .name {{extension.name}} .subtitle Available Actions .actions .action{"ng-repeat" => "action in extension.actions"} .name {{action.label}} .desc{"style" => "font-style: italic;"} {{action.desc}} .execute-type{"ng-if" => "action.repeatable"} Repeats at most once every {{action.repeatFrequency}} seconds .last-run{"ng-if" => "action.lastExecuted"} Last executed {{action.lastExecuted | appDate}} .permissions %a{"ng-click" => "action.showPermissions = !action.showPermissions"} {{action.showPermissions ? "Hide permissions" : "Show permissions"}} .permission-model{"ng-if" => "action.showPermissions", "ng-repeat" => "structure in action.structures"} %span{"style" => "font-weight: bold;"} {{structure.type}}s: %span{"ng-repeat" => "field in structure.fields"} {{field.name}} ({{field.modifies ? "readwrite" : "read"}}) .execute %a{"ng-click" => "ctrl.selectedAction(action, extension)"} %span{"ng-if" => "action.repeatable"} %span{"ng-if" => "ctrl.extensionManager.isRepeatActionEnabled(action)", "ng-click" => "ctrl.extensionManager.disableRepeatAction(action, extension)"} Disable %span{"ng-if" => "!ctrl.extensionManager.isRepeatActionEnabled(action)", "ng-click" => "ctrl.extensionManager.enableRepeatAction(action, extension)"} Enable %span{"ng-if" => "!action.repeatable"} Perform Action .extension-link %a{"ng-click" => "ctrl.toggleExtensionForm()"} Add new extension %form.extension-form{"ng-if" => "ctrl.showNewExtensionForm"} .form-tag.has-feedback %input.form-control{:autofocus => 'autofocus', :name => 'url', :placeholder => 'Extension URL', :required => true, :type => 'text', 'ng-model' => 'ctrl.newExtensionData.url'} %button.btn.dark-button.btn-block{:type => 'submit', "data-style" => "expand-right", "data-size" => "s", "state" => "buttonState"} %span.ladda-label{"ng-click" => "ctrl.submitNewExtensionForm()"} Add Extension .extension-link %a{"ng-click" => "ctrl.reloadExtensionsPressed()", "ng-if" => "ctrl.extensionManager.extensions.length > 0"} Reload all extensions .item %a{"href" => "https://standardnotes.org", "target" => "_blank"} Help .menu.right .items .item.last-refreshed{"ng-if" => "ctrl.lastSyncDate"} %span{"ng-if" => "!ctrl.isRefreshing"} Last refreshed {{ctrl.lastSyncDate | appDateTime}} %span{"ng-if" => "ctrl.isRefreshing"} .spinner .item{"ng-click" => "ctrl.refreshData()"} Refresh