Functioning password change

This commit is contained in:
Mo Bitar
2018-05-18 15:27:16 -05:00
parent d8fbab52bc
commit d7b9a021a4
11 changed files with 159 additions and 115 deletions

View File

@@ -76,42 +76,6 @@
%a.panel-row.condensed{"ng-click" => "openPasswordWizard('change-pw')"} 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-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()"}

View File

@@ -20,7 +20,7 @@
access to this note.
.modal.medium{"ng-if" => "renderData.showRenderModal", "ng-click" => "$event.stopPropagation();"}
.modal.medium-text{"ng-if" => "renderData.showRenderModal", "ng-click" => "$event.stopPropagation();"}
.content
.sn-component
.panel

View File

@@ -10,7 +10,7 @@
"has-button" => "selectedEditor == editor || defaultEditor == editor", "button-text" => "defaultEditor == editor ? 'Undefault' : 'Set Default'",
"button-action" => "toggleDefaultForEditor(editor)", "button-class" => "defaultEditor == editor ? 'warning' : 'info'"}
.column{"ng-if" => "component.conflict_of || shouldDisplayRunningLocallyLabel(editor)"}
%strong.red.medium{"ng-if" => "editor.conflict_of"} Conflicted copy
%strong.red.medium-text{"ng-if" => "editor.conflict_of"} Conflicted copy
.sublabel{"ng-if" => "shouldDisplayRunningLocallyLabel(editor)"} Running Locally
%a.no-decoration{"ng-if" => "editors.length == 0", "href" => "https://standardnotes.org/extensions", "target" => "blank"}
@@ -22,5 +22,5 @@
%menu-row{"ng-repeat" => "component in stack", "ng-click" => "selectComponent($event, component)", "title" => "component.name",
"circle" => "stackComponentEnabled(component) ? 'success' : 'danger'"}
.column{"ng-if" => "component.conflict_of || shouldDisplayRunningLocallyLabel(component)"}
%strong.red.medium{"ng-if" => "component.conflict_of"} Conflicted copy
%strong.red.medium-text{"ng-if" => "component.conflict_of"} Conflicted copy
.sublabel{"ng-if" => "shouldDisplayRunningLocallyLabel(component)"} Running Locally

View File

@@ -1,20 +1,24 @@
.modal.medium
.modal.small
.content
.sn-component
.panel
.header
%h1.title {{title}}
%a.close-button{"ng-click" => "close()"} Close
%a.close-button{"ng-click" => "dismiss()"} Close
.content
%div{"ng-if" => "step == 0"}
%div{"ng-if" => "changePassword"}
%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.
%h3.title.panel-row Change your password
%p Because your encryption key is based on your password, changing your password requires all your data to be re-encrypted using your new key.
%p This process will guide you through changing your password.
%p If you have many items, re-uploading your data can take several minutes. You must keep the application window open during this process.
%div{"ng-if" => "securityUpdate"}
%h3.title.panel-row Perform security update
%p Welcome to the security update process.
%p.info Press Continue to proceed.
.panel-row
%strong.info Press Continue to proceed.
.panel-section{"ng-if" => "step > 0"}
@@ -59,7 +63,20 @@
%p.panel-row.danger
Do not close this window until this process completes.
%p.panel-row
.spinner.small.inline.info.mr-5{"ng-if" => "formData.processing"}
.inline.bold{"ng-class" => "{'info' : !formData.statusError, 'error' : formData.statusError}"}
{{formData.status}}
%div{"ng-if" => "step == 5"}
%div{"ng-if" => "changePassword"}
%p.panel-row Your password has been successfully changed.
%div{"ng-if" => "securityUpdate"}
%p.panel-row The security update has been successfully applied to your account.
%p.panel-row You may now sign back in to all your devices and close this window.
.footer
%a.right{"ng-click" => "continue()", "ng-class" => "{'disabled' : lockContinue}"}
.spinner.small.inline.info{"ng-if" => "showSpinner", "style" => "margin-right: 5px;"}
.spinner.small.inline.info.mr-5{"ng-if" => "showSpinner"}
{{continueTitle}}

View File

@@ -44,16 +44,16 @@
.infinite-scroll#notes-scrollable{"infinite-scroll" => "ctrl.paginate()", "can-load" => "true", "threshold" => "200"}
.note{"ng-repeat" => "note in (ctrl.sortedNotes = (ctrl.tag.notes | filter: ctrl.filterNotes | sortBy: ctrl.sortBy | limitTo:ctrl.notesToDisplay)) track by note.uuid",
"ng-click" => "ctrl.selectNote(note, true)", "ng-class" => "{'selected' : ctrl.selectedNote == note}"}
%strong.red.medium{"ng-if" => "note.conflict_of"} Conflicted copy
%strong.red.medium{"ng-if" => "note.errorDecrypting"} Error decrypting
%strong.red.medium-text{"ng-if" => "note.conflict_of"} Conflicted copy
%strong.red.medium-text{"ng-if" => "note.errorDecrypting"} Error decrypting
.pinned.tinted{"ng-if" => "note.pinned", "ng-class" => "{'tinted-selected' : ctrl.selectedNote == note}"}
%i.icon.ion-bookmark
%strong.medium Pinned
%strong.medium-text Pinned
.archived.tinted{"ng-if" => "note.archived && !ctrl.tag.archiveTag", "ng-class" => "{'tinted-selected' : ctrl.selectedNote == note}"}
%i.icon.ion-ios-box
%strong.medium Archived
%strong.medium-text Archived
.tags-string{"ng-if" => "ctrl.shouldShowTags(note)"}
.faded {{note.savedTagsString || note.tagsString()}}

View File

@@ -22,8 +22,8 @@
"ng-change" => "ctrl.tagTitleDidChange(tag)", "ng-blur" => "ctrl.saveTag($event, tag)", "spellcheck" => "false"}
.count {{ctrl.noteCount(tag)}}
.red.small.bold{"ng-if" => "tag.conflict_of"} Conflicted copy
.red.small.bold{"ng-if" => "tag.errorDecrypting"} Error decrypting
.red.small-text.bold{"ng-if" => "tag.conflict_of"} Conflicted copy
.red.small-text.bold{"ng-if" => "tag.errorDecrypting"} Error decrypting
.menu{"ng-if" => "ctrl.selectedTag == tag"}
%a.item{"ng-click" => "ctrl.selectedRenameTag($event, tag)", "ng-if" => "!ctrl.editingTag"} Rename