147 lines
10 KiB
Plaintext
147 lines
10 KiB
Plaintext
.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 <a href="https://standardfile.org" target="_blank">Standard File</a> 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 <strong>must</strong> 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
|
|
.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-if" => "action.actionType == 'all'"} all {{" | "}}
|
|
%span{"ng-if" => "action.actionType == 'watch'"} changes {{" | "}}
|
|
%span {{structure.mode}}
|
|
%span {{" | "}}
|
|
%span {{structure.decrypted ? "decrypted" : "encrypted"}}
|
|
.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 && !action.running"}
|
|
Run
|
|
%span{"ng-if" => "action.running"}
|
|
.spinner{"style" => "margin-top: 3px;"}
|
|
.last-run{"ng-if" => "action.lastExecuted && !action.running"}
|
|
Last executed {{action.lastExecuted | appDateTime}}
|
|
|
|
.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
|