Cleaned folder heirarchy

This commit is contained in:
Mo Bitar
2018-01-19 12:42:44 -06:00
parent 5be2402f65
commit 5d43697ed8
86 changed files with 75 additions and 91 deletions

View File

@@ -1,188 +0,0 @@
.sn-component
.panel#account-panel
.header
%h1.title Account
%a.close-button{"ng-click" => "close()"} Close
.content
.panel-section.hero{"ng-if" => "!user && !formData.showLogin && !formData.showRegister && !formData.mfa"}
%h1.title Sign in or register to enable sync and end-to-end encryption.
.panel-row
.panel-row
.button-group.stretch
.button.info.featured{"ng-click" => "formData.showLogin = true"}
.label Sign In
.button.info.featured{"ng-click" => "formData.showRegister = true"}
.label Register
%p
Standard Notes is free on every platform, and comes standard with sync and encryption.
.panel-section{"ng-if" => "formData.showLogin || formData.showRegister"}
%h3.title.panel-row
{{formData.showLogin ? "Sign In" : "Register (free)"}}
%form.panel-form{"ng-submit" => "submitAuthForm()"}
%input{:placeholder => 'Email', :autofocus => 'autofocus', :name => 'email', :required => true, :type => 'email', 'ng-model' => 'formData.email'}
%input{:placeholder => 'Password', :name => 'password', :required => true, :type => 'password', 'ng-model' => 'formData.user_password'}
%input{:placeholder => 'Confirm Password', "ng-if" => "formData.showRegister", :name => 'password', :required => true, :type => 'password', 'ng-model' => 'formData.password_conf'}
%a.panel-row{"ng-click" => "formData.showAdvanced = !formData.showAdvanced"}
Advanced Options
.notification.info{"ng-if" => "formData.showRegister"}
%h2.title No Password Reset.
.text Because your notes are encrypted using your password, Standard Notes does not have a password reset option. You cannot forget your password.
.advanced-options.panel-row{"ng-if" => "formData.showAdvanced"}
.panel-column.stretch
%label Sync Server Domain
%input.form-control.mt-5{:name => 'server', :placeholder => 'Server URL', :required => true, :type => 'text', 'ng-model' => 'formData.url'}
.button-group.stretch.panel-row.form-submit
%button.button.info.featured{"type" => "submit"}
.label {{formData.showLogin ? "Sign In" : "Register"}}
%label
%input{"type" => "checkbox", "ng-model" => "formData.ephemeral", "ng-true-value" => "false", "ng-false-value" => "true"}
Stay signed in
%label{"ng-if" => "notesAndTagsCount() > 0"}
%input{"type" => "checkbox", "ng-model" => "formData.mergeLocal", "ng-bind" => "true", "ng-change" => "mergeLocalChanged()"}
Merge local data ({{notesAndTagsCount()}} notes and tags)
%em.block.center-align.mt-10{"ng-if" => "formData.status", "style" => "font-size: 14px;"}
{{formData.status}}
.panel-section{"ng-if" => "formData.mfa"}
%form{"ng-submit" => "submitMfaForm()"}
%p {{formData.mfa.message}}
%input.form-control.mt-10{:placeholder => "Enter Code", "sn-autofocus" => "true", "should-focus" => "true", :autofocus => "true", :name => 'mfa', :required => true, 'ng-model' => 'formData.userMfaCode'}
.button-group.stretch.panel-row.form-submit
%button.button.info.featured{"type" => "submit"}
.label Sign In
%div{"ng-if" => "!formData.showLogin && !formData.showRegister && !formData.mfa"}
.panel-section{"ng-if" => "user"}
.panel-row
%h2.title.wrap {{user.email}}
.horizontal-group{"delay-hide" => "true", "show" => "syncStatus.syncOpInProgress || syncStatus.needsMoreSync", "delay" => "1000"}
.spinner.small.info
.sublabel
{{"Syncing" + (syncStatus.total > 0 ? ":" : "")}}
%span{"ng-if" => "syncStatus.total > 0"} {{syncStatus.current}}/{{syncStatus.total}}
.subtitle.danger.panel-row{"ng-if" => "syncStatus.error"} Error syncing: {{syncStatus.error.message}}
.subtitle.subtle.normal {{server}}
.panel-row
%a.panel-row.condensed{"ng-click" => "newPasswordData.changePassword = !newPasswordData.changePassword"} Change Password
.notification.warning{"ng-if" => "newPasswordData.changePassword"}
%h1.title Change Password
.text
%p Since your encryption key is based on your password, changing your password requires all your notes and tags to be re-encrypted using your new key.
%p If you have thousands of items, this can take several minutes — you must keep the application window open during this process.
%p After changing your password, you must log out of all other applications currently signed in to your account.
%p.bold It is highly recommended you download a backup of your data before proceeding.
.panel-row{"ng-if" => "!newPasswordData.status"}
.horizontal-group{"ng-if" => "!newPasswordData.showForm"}
%a.red{"ng-click" => "showPasswordChangeForm()"} Continue
%a{"ng-click" => "newPasswordData.changePassword = false; newPasswordData.showForm = false"} Cancel
.panel-row{"ng-if" => "newPasswordData.showForm"}
%form.panel-form.stretch
%input{:type => 'password', "ng-model" => "newPasswordData.newPassword", "placeholder" => "Enter new password"}
%input{:type => 'password', "ng-model" => "newPasswordData.newPasswordConfirmation", "placeholder" => "Confirm new password"}
.button-group.stretch.panel-row.form-submit
.button.info{"type" => "submit", "ng-click" => "submitPasswordChange()"}
.label Submit
%a{"ng-click" => "newPasswordData.changePassword = false; newPasswordData.showForm = false"} Cancel
%p.italic.mt-10{"ng-if" => "newPasswordData.status"} {{newPasswordData.status}}
%a.panel-row.condensed{"ng-click" => "showAdvanced = !showAdvanced"} Advanced
%div{"ng-if" => "showAdvanced"}
%a.panel-row{"ng-click" => "reencryptPressed()"} Resync All Items
%a.panel-row.condensed{"ng-if" => "securityUpdateAvailable()", "ng-click" => "clickedSecurityUpdate()"} Security Update Available
.notification.default{"ng-if" => "securityUpdateData.showForm"}
%p
%a{"href" => "https://standardnotes.org/help/security-update", "target" => "_blank"} Learn more.
%form.panel-form.stretch{"ng-if" => "!securityUpdateData.processing", "ng-submit" => "submitSecurityUpdateForm()"}
%p Enter your password to update:
%input.panel-row{:type => 'password', "ng-model" => "securityUpdateData.password", "placeholder" => "Enter password"}
.button-group.stretch.panel-row.form-submit
%button.button.info{"ng-type" => "submit"}
.label Update
.panel-row{"ng-if" => "securityUpdateData.processing"}
%p.info Processing...
.panel-section
%h3.title.panel-row Encryption
%h5.subtitle.info.panel-row{"ng-if" => "encryptionEnabled()"}
{{encryptionStatusForNotes()}}
%p
{{encryptionStatusString()}}
.panel-section
%h3.title.panel-row Passcode Lock
%div{"ng-if" => "!hasPasscode() && passcodeOptionAvailable()"}
.panel-row{"ng-if" => "!formData.showPasscodeForm"}
.button.info{"ng-click" => "addPasscodeClicked(); $event.stopPropagation();"}
.label Add Passcode
%p Add an app passcode to lock the app and encrypt on-device key storage.
%form{"ng-if" => "formData.showPasscodeForm", "ng-submit" => "submitPasscodeForm()"}
%input.form-control{:type => 'password', "ng-model" => "formData.passcode", "placeholder" => "Passcode", "sn-autofocus" => "true", "should-focus" => "true"}
%input.form-control{:type => 'password', "ng-model" => "formData.confirmPasscode", "placeholder" => "Confirm Passcode"}
.button-group.stretch.panel-row.form-submit
%button.button.info{"type" => "submit"}
.label Set Passcode
%a.panel-row{"ng-click" => "formData.showPasscodeForm = false"} Cancel
.panel-row{"ng-if" => "hasPasscode()"}
%p
Passcode lock is enabled.
%span{"ng-if" => "isDesktopApplication()"} Your passcode will be required on new sessions after app quit.
%a.block.danger{"ng-click" => "removePasscodePressed()"} Remove Passcode
.panel-row{"ng-if" => "!passcodeOptionAvailable()"}
%p Passcode lock is only available to permanent sessions. (You chose not to stay signed in.)
.panel-section{"ng-if" => "!importData.loading"}
%h3.title Data Backups
%form.panel-form{"ng-if" => "encryptedBackupsAvailable()"}
.input-group
%label
%input{"type" => "radio", "ng-model" => "archiveFormData.encrypted", "ng-value" => "true", "ng-change" => "archiveFormData.encrypted = true"}
Encrypted
%label
%input{"type" => "radio", "ng-model" => "archiveFormData.encrypted", "ng-value" => "false", "ng-change" => "archiveFormData.encrypted = false"}
Decrypted
.button-group
.button.info{"ng-click" => "downloadDataArchive()", "ng-class" => "{'mt-5' : !user}"}
.label Download Backup
%label.button.info
%input{"type" => "file", "style" => "display: none;", "file-change" => "->", "handler" => "importFileSelected(files)"}
.label Import From Backup
%div{"ng-if" => "importData.requestPassword"}
%form.panel-form.stretch{"ng-submit" => "submitImportPassword()"}
%p Enter the account password associated with the import file.
%input.form-control.mt-5{:type => 'password', "placeholder" => "Enter File Account Password", "ng-model" => "importData.password", "autofocus" => "true"}
.button-group.stretch.panel-row.form-submit
%button.button.info{"type" => "submit"}
.label Decrypt & Import
.panel-row
.spinner.small.info{"ng-if" => "importData.loading"}
.footer
%a.right{"ng-if" => "formData.showLogin || formData.showRegister", "ng-click" => "formData.showLogin = false; formData.showRegister = false;"}
Cancel
%a.right{"ng-if" => "!formData.showLogin && !formData.showRegister", "ng-click" => "destroyLocalData()"}
{{ user ? "Sign out and clear local data" : "Clear all local data" }}

View File

@@ -1,32 +0,0 @@
.sn-component
.menu-panel.dropdown-menu
%a.no-decoration{"ng-if" => "extensions.length == 0", "href" => "https://standardnotes.org/extensions", "target" => "blank"}
%menu-row{"title" => "'Download Actions'"}
%div{"ng-repeat" => "extension in extensions"}
.header{"ng-click" => "extension.hide = !extension.hide; $event.stopPropagation();"}
.column
%h4.title {{extension.name}}
.spinner.small.loading{"ng-if" => "extension.loading"}
%div{"ng-if" => "extension.hide"} …
%menu-row{"ng-if" => "!extension.hide", "ng-repeat" => "action in extension.actionsWithContextForItem(item)",
"ng-click" => "executeAction(action, extension); $event.stopPropagation();", "title" => "action.label", "subtitle" => "action.desc",
"spinner-class" => "action.running ? 'info' : null", "sub-rows" => "action.subrows"}
.sublabel{"ng-if" => "action.access_type"}
Uses
%strong {{action.access_type}}
access to this note.
.modal.medium{"ng-if" => "renderData.showRenderModal", "ng-click" => "$event.stopPropagation();"}
.content
.sn-component
.panel
.header
%h1.title Preview
%a.close-button.info{"ng-click" => "renderData.showRenderModal = false; $event.stopPropagation();"} Close
.content.selectable
%h2 {{renderData.title}}
%p.normal{"style" => "white-space: pre-wrap; font-family: monospace; font-size: 16px;"} {{renderData.text}}

View File

@@ -1,11 +0,0 @@
.background{"ng-click" => "dismiss()"}
.content
.sn-component
.panel{"ng-attr-id" => "component-{{component.uuid}}"}
.header
%h1.title
{{component.name}}
%span.subtle.subtitle{"ng-if" => "component.runningLocally"} | Desktop Mode
%a.close-button.info{"ng-click" => "dismiss()"} Close
%component-view.component-view{"component" => "component"}

View File

@@ -1,6 +0,0 @@
%iframe{"ng-if" => "component",
"ng-attr-id" => "component-{{component.uuid}}",
"ng-src" => "{{getUrl() | trusted}}", "frameBorder" => "0",
"sandbox" => "allow-scripts allow-top-navigation-by-user-activation allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-modals allow-forms",
"data-component-id" => "{{component.uuid}}"}
Loading

View File

@@ -1,29 +0,0 @@
.sn-component
.menu-panel.dropdown-menu
.section
.header
%h4.title Note Editor
%menu-row{"title" => "'Plain Editor'", "circle" => "selectedEditor == null && 'success'", "ng-click" => "selectComponent($event, null)"}
%menu-row{"ng-repeat" => "editor in editors", "ng-click" => "selectComponent($event, editor)", "title" => "editor.name",
"circle" => "selectedEditor === editor && 'success'",
"has-button" => "selectedEditor == editor || defaultEditor == editor", "button-text" => "defaultEditor == editor ? 'Undefault' : 'Set Default'",
"button-action" => "toggleDefaultForEditor(editor)", "button-class" => "defaultEditor == editor ? 'warning' : 'info'"}
.row{"ng-if" => "component.conflict_of || offlineAvailableForComponent(editor)"}
.column
%strong.red.medium{"ng-if" => "editor.conflict_of"} Conflicted copy
.sublabel{"ng-if" => "offlineAvailableForComponent(editor)"}
Available Offline
%a.no-decoration{"ng-if" => "editors.length == 0", "href" => "https://standardnotes.org/extensions", "target" => "blank"}
%menu-row{"title" => "'Download More Editors'"}
.section{"ng-if" => "stack.length > 0"}
.header
%h4.title Editor Stack
%menu-row{"ng-repeat" => "component in stack", "ng-click" => "selectComponent($event, component)", "title" => "component.name",
"circle" => "component.active ? 'success' : 'danger'"}
.row{"ng-if" => "component.conflict_of || offlineAvailableForComponent(component)"}
.column
%strong.red.medium{"ng-if" => "component.conflict_of"} Conflicted copy
.sublabel{"ng-if" => "offlineAvailableForComponent(component)"}
Available Offline

View File

@@ -1,138 +0,0 @@
.panel#global-ext-menu
.panel-body
.container
.float-group.h20
%h1.tinted.pull-left Extensions
%a.block.pull-right.dashboard-link{"href" => "https://dashboard.standardnotes.org", "target" => "_blank"} Open Dashboard
%div.clear{"ng-if" => "!actionsManager.extensions.length && !themeManager.themes.length && !componentManager.components.length"}
%p Customize your experience with editors, themes, and actions.
.tinted-box.mt-10
%h3 Available as part of the Extended subscription.
%p.mt-5 Note history
%p.mt-5 Automated backups
%p.mt-5 Editors, themes, and actions
%a{"href" => "https://standardnotes.org/extensions", "target" => "_blank"}
%button.mt-10
%h3 Learn More
%div{"ng-if" => "themeManager.themes.length > 0"}
.header.container.section-margin
%h2 Themes
%ul
%li{"ng-repeat" => "theme in themeManager.themes | orderBy: 'name'", "ng-click" => "clickedExtension(theme)"}
.container
%h3
%input.bold{"ng-if" => "theme.rename", "ng-model" => "theme.tempName", "ng-keyup" => "$event.keyCode == 13 && submitExtensionRename(theme);", "sn-autofocus" => "true", "should-focus" => "true"}
%span{"ng-if" => "!theme.rename"} {{theme.name}}
-# %a{"ng-if" => "!themeManager.isThemeActive(theme)", "ng-click" => "themeManager.activateTheme(theme); $event.stopPropagation();"} Activate
-# %a{"ng-if" => "themeManager.isThemeActive(theme)", "ng-click" => "themeManager.deactivateTheme(theme); $event.stopPropagation();"} Deactivate
.mt-3{"ng-if" => "theme.showDetails"}
.link-group
%a{"ng-click" => "renameExtension(theme); $event.stopPropagation();"} Rename
%a{"ng-click" => "theme.showLink = !theme.showLink; $event.stopPropagation();"} Show Link
%a.red{"ng-click" => "deleteTheme(theme); $event.stopPropagation();"} Delete
%p.small.selectable.wrap{"ng-if" => "theme.showLink"}
{{theme.url}}
%div{"ng-if" => "actionsManager.extensions.length"}
.header.container.section-margin
%h2 Actions
%p{"style" => "margin-top: 3px;"} Choose "Actions" in the note editor to use installed actions.
%ul
%li{"ng-repeat" => "extension in actionsManager.extensions | orderBy: 'name'", "ng-init" => "extension.formData = {}", "ng-click" => "clickedExtension(extension)"}
.container
%h3
%input.bold{"ng-if" => "extension.rename", "ng-model" => "extension.tempName", "ng-keyup" => "$event.keyCode == 13 && submitExtensionRename(extension);", "sn-autofocus" => "true", "should-focus" => "true"}
%span{"ng-if" => "!extension.rename"} {{extension.name}}
%p.small{"ng-if" => "extension.description"} {{extension.description}}
%div{"ng-if" => "extension.showDetails"}
.mt-10
%label.block Access Type
%label.normal.block{"ng-click" => " $event.stopPropagation();"}
%input{"type" => "radio", "ng-model" => "extension.encrypted", "ng-value" => "true", "ng-change" => "changeExtensionEncryptionFormat(true, extension);"}
Encrypted
%label.normal.block{"ng-click" => " $event.stopPropagation();"}
%input{"type" => "radio", "ng-model" => "extension.encrypted", "ng-value" => "false", "ng-change" => "changeExtensionEncryptionFormat(false, extension);"}
Decrypted
.small-v-space
%ul{"ng-repeat" => "action in extension.actionsInGlobalContext()"}
%li
%label.block {{action.label}}
%em{"style" => "font-style: italic;"} {{action.desc}}
%em{"ng-if" => "action.repeat_mode == 'watch'"}
Repeats when a change is made to your items.
%em{"ng-if" => "action.repeat_mode == 'loop'"}
Repeats at most once every {{action.repeat_timeout}} seconds
%div
%a{"ng-click" => "action.showPermissions = !action.showPermissions"} {{action.showPermissions ? "Hide permissions" : "Show permissions"}}
%div{"ng-if" => "action.showPermissions"}
{{action.permissionsString()}}
%label.block.normal {{action.encryptionModeString()}}
%div
.mt-5{"ng-if" => "action.repeat_mode"}
%button.light.tinted{"ng-if" => "actionsManager.isRepeatActionEnabled(action)", "ng-click" => "actionsManager.disableRepeatAction(action, extension); $event.stopPropagation();"} Disable
%button.light.tinted{"ng-if" => "!actionsManager.isRepeatActionEnabled(action)", "ng-click" => "actionsManager.enableRepeatAction(action, extension); $event.stopPropagation();"} Enable
%button.light.mt-10{"ng-if" => "!action.running && !action.repeat_mode", "ng-click" => "selectedAction(action, extension); $event.stopPropagation();"}
Perform Action
.spinner.mb-5.block{"ng-if" => "action.running"}
%p.mb-5.mt-5.small{"ng-if" => "!action.error && action.lastExecuted && !action.running"}
Last run {{action.lastExecuted | appDateTime}}
%label.red{"ng-if" => "action.error"}
Error performing action.
%a.block.mt-5{"ng-click" => "renameExtension(extension); $event.stopPropagation();"} Rename
%a.block.mt-5{"ng-click" => "extension.showURL = !extension.showURL; $event.stopPropagation();"} Show Link
%p.wrap.selectable.small{"ng-if" => "extension.showURL"} {{extension.url}}
%a.block.mt-5{"ng-click" => "deleteActionExtension(extension); $event.stopPropagation();"} Delete
%div{"ng-if" => "componentManager.components.length > 0"}
.header.container.section-margin
%h2 Components
%ul
%li{"ng-repeat" => "component in componentManager.components | orderBy: 'name'", "ng-click" => "clickedExtension(component)"}
.container
%h3
%input.bold{"ng-if" => "component.rename", "ng-model" => "component.tempName", "ng-keyup" => "$event.keyCode == 13 && submitExtensionRename(component);", "sn-autofocus" => "true", "should-focus" => "true"}
%span{"ng-if" => "!component.rename"} {{component.name}}
%div{"ng-if" => "component.isEditor()"}
%a{"ng-if" => "!component.isDefaultEditor()", "ng-click" => "makeEditorDefault(component); $event.stopPropagation();"} Make Default
%a{"ng-if" => "component.isDefaultEditor()", "ng-click" => "removeEditorDefault(component); $event.stopPropagation();"} Remove Default
%div{"ng-if" => "!component.isEditor()"}
%a{"ng-if" => "!componentManager.isComponentActive(component)", "ng-click" => "componentManager.activateComponent(component); $event.stopPropagation();"} Activate
%a{"ng-if" => "componentManager.isComponentActive(component)", "ng-click" => "componentManager.deactivateComponent(component); $event.stopPropagation();"} Deactivate
.mt-3{"ng-if" => "component.showDetails"}
.link-group
%a{"ng-click" => "renameExtension(component); $event.stopPropagation();"} Rename
%a{"ng-click" => "component.showLink = !component.showLink; $event.stopPropagation();"} Show Link
%a{"ng-if" => "component.permissions.length", "ng-click" => "revokePermissions(component); $event.stopPropagation();"} Revoke Permissions
%a.red{"ng-click" => "deleteComponent(component); $event.stopPropagation();"} Delete
%p.small.selectable.wrap{"ng-if" => "component.showLink"}
{{component.url}}
%div{"ng-if" => "serverExtensions.length > 0"}
.header.container.section-margin
%h2 Server Extensions
%ul
%li{"ng-repeat" => "ext in serverExtensions", "ng-click" => "ext.showDetails = !ext.showDetails"}
.container
%strong.red.medium{"ng-if" => "ext.conflict_of"} Conflicted copy
%h3 {{nameForServerExtension(ext)}}
%div.mt-3{"ng-if" => "ext.showDetails"}
.link-group
%a{"ng-click" => "ext.showUrl = !ext.showUrl; $event.stopPropagation();"} Show Link
%a.red{ "ng-click" => "deleteServerExt(ext); $event.stopPropagation();"} Delete
.wrap.mt-5.selectable{"ng-if" => "ext.showUrl"} {{ext.url}}
.container.section-margin
%h2.tinted Install
%p.faded Enter an install link
%form.mt-10.mb-10
%input.form-control{:autofocus => 'autofocus', :name => 'url', :required => true, :autocomplete => "off",
:type => 'url', 'ng-model' => 'formData.installLink', "ng-keyup" => "$event.keyCode == 13 && submitInstallLink();"}
%p.tinted{"ng-if" => "formData.successfullyInstalled"} Successfully installed extension.

View File

@@ -1,21 +0,0 @@
.row
.column
.left
.column{"ng-if" => "circle"}
.circle.small{"ng-class" => "circle"}
.column
.label
{{title}}
.sublabel{"ng-if" => "subtitle"}
{{subtitle}}
%ng-transclude
.subrows{"ng-if" => "subRows && subRows.length > 0"}
%menu-row{"ng-repeat" => "row in subRows", "ng-click" => "row.onClick($event); $event.stopPropagation();",
"title" => "row.title", "subtitle" => "row.subtitle", "spinner-class" => "row.spinnerClass"}
.column{"ng-if" => "hasButton"}
.button.info{"ng-click" => "clickButton($event)", "ng-class" => "buttonClass"}
{{buttonText}}
.column{"ng-if" => "spinnerClass"}
.spinner.small{"ng-class" => "spinnerClass"}

View File

@@ -1 +0,0 @@
.panel-resizer-column

View File

@@ -1,23 +0,0 @@
.background{"ng-click" => "deny()"}
.content#permissions-modal
.sn-component
.panel
.header
%h1.title Activate Extension
%a.close-button.info{"ng-click" => "deny()"} Cancel
.content
.panel-section
.panel-row
%h3
%strong {{component.name}}
would like to interact with your
%span{"ng-repeat" => "permission in formattedPermissions"}
{{permission}}.
.panel-row
%p
Extensions use an offline messaging system to communicate. Learn more at
%a{"href" => "https://standardnotes.org/permissions", "target" => "_blank"} https://standardnotes.org/permissions.
.footer
.button.info.big.block.bold{"ng-click" => "accept()"} Continue