CSS cleanups

This commit is contained in:
Mo Bitar
2018-01-17 12:04:29 -06:00
parent 0b430d4d08
commit 0cf13ad28b
20 changed files with 136 additions and 369 deletions

View File

@@ -25,7 +25,9 @@ angular.module('app.frontend')
.controller('FooterCtrl', function ($rootScope, authManager, modelManager, $timeout, dbManager,
syncManager, storageManager, passcodeManager, componentManager, singletonManager, packageManager) {
this.user = authManager.user;
this.getUser = function() {
return authManager.user;
}
this.updateOfflineStatus = function() {
this.offline = authManager.offline();
@@ -110,14 +112,14 @@ angular.module('app.frontend')
this.rooms = _.uniq(this.rooms.concat(incomingRooms)).filter((candidate) => {return !candidate.deleted});
});
componentManager.registerHandler({identifier: "roomBar", areas: ["rooms"], activationHandler: (component) => {
componentManager.registerHandler({identifier: "roomBar", areas: ["rooms", "modal"], activationHandler: (component) => {
if(component.active) {
// Show room, if it was not activated manually (in the event of event from componentManager)
if(!component.showRoom) {
if(component.area == "rooms" && !component.showRoom) {
this.selectRoom(component);
}
$timeout(() => {
var lastSize = component.getRoomLastSize();
var lastSize = component.getLastSize();
if(lastSize) {
componentManager.handleSetSizeEvent(component, lastSize);
}
@@ -125,7 +127,7 @@ angular.module('app.frontend')
}
}, actionHandler: (component, action, data) => {
if(action == "set-size") {
component.setRoomLastSize(data);
component.setLastSize(data);
}
}});

View File

@@ -83,12 +83,12 @@ class Component extends Item {
return this.getAppDataItem("defaultEditor") == true;
}
setRoomLastSize(size) {
this.setAppDataItem("lastRoomSize", size);
setLastSize(size) {
this.setAppDataItem("lastSize", size);
}
getRoomLastSize() {
return this.getAppDataItem("lastRoomSize");
getLastSize() {
return this.getAppDataItem("lastSize");
}

View File

@@ -738,7 +738,11 @@ class ComponentManager {
setSize(iframe, data);
} else {
var container = document.getElementById("component-" + component.uuid);
setSize(container, data);
if(container) {
// in the case of Modals, sometimes they may be "active" because they were so in another session,
// but no longer actually visible. So check to make sure the container exists
setSize(container, data);
}
}
}

View File

@@ -1,6 +1,6 @@
angular
.module('app.frontend')
.directive('mbAutofocus', ['$timeout', function($timeout) {
.directive('snAutofocus', ['$timeout', function($timeout) {
return {
restrict: 'A',
scope: {

View File

@@ -33,7 +33,13 @@ class AccountMenu {
$scope.submitPasswordChange = function() {
if($scope.newPasswordData.newPassword != $scope.newPasswordData.newPasswordConfirmation) {
let newPass = $scope.newPasswordData.newPassword;
if(!newPass || newPass.length == 0) {
return;
}
if(newPass != $scope.newPasswordData.newPasswordConfirmation) {
alert("Your new password does not match its confirmation.");
$scope.newPasswordData.status = null;
return;
@@ -51,7 +57,7 @@ class AccountMenu {
// perform a sync beforehand to pull in any last minutes changes before we change the encryption key (and thus cant decrypt new changes)
syncManager.sync(function(response){
authManager.changePassword(email, $scope.newPasswordData.newPassword, function(response){
authManager.changePassword(email, newPass, function(response){
if(response.error) {
alert("There was an error changing your password. Please try again.");
$scope.newPasswordData.status = null;
@@ -84,6 +90,10 @@ class AccountMenu {
}
$scope.submitAuthForm = function() {
console.log("Submitting auth form");
if(!$scope.formData.email || !$scope.formData.user_password) {
return;
}
if($scope.formData.showLogin) {
$scope.login();
} else {
@@ -92,6 +102,7 @@ class AccountMenu {
}
$scope.login = function(extraParams) {
console.log("Logging in");
$scope.formData.status = "Generating Login Keys...";
$timeout(function(){
authManager.login($scope.formData.url, $scope.formData.email, $scope.formData.user_password, $scope.formData.ephemeral, extraParams,
@@ -99,7 +110,7 @@ class AccountMenu {
if(!response || response.error) {
$scope.formData.status = null;
var error = response ? response.error : {message: "An unknown error occured."}
if(error.tag == "mfa-required") {
if(error.tag == "mfa-required" || error.tag == "mfa-invalid") {
$timeout(() => {
$scope.formData.showLogin = false;
$scope.formData.mfa = error;
@@ -539,13 +550,6 @@ class AccountMenu {
$scope.formData.showPasscodeForm = false;
var offline = authManager.offline();
// Allow UI to update before showing alert
setTimeout(function () {
var message = "You've succesfully set an app passcode.";
if(offline) { message += " Your items will now be encrypted using this passcode."; }
alert(message);
}, 10);
if(offline) {
// Allows desktop to make backup file
$rootScope.$broadcast("major-data-change");

View File

@@ -431,7 +431,7 @@ class ModelManager {
"SN|Editor" : "editor",
"SN|Theme" : "theme",
"SF|Extension" : "server extension",
"SF|MFA" : "server multi-factor authentication setting"
"SF|MFA" : "two-factor authentication setting"
}[contentType];
}

View File

@@ -80,8 +80,6 @@ class SyncManager {
// use a copy, as alternating uuid will affect array
var originalItems = this.modelManager.allItems.slice();
console.log("markAllItemsDirtyAndSaveOffline", originalItems);
var block = () => {
var allItems = this.modelManager.allItems;
for(var item of allItems) {

View File

@@ -14,6 +14,7 @@
font-size: 16px;
display: flex;
align-items: center;
justify-content: center;
.background {
position: absolute;
@@ -22,30 +23,11 @@
height: 100%;
}
.content {
// box-shadow: 0 3px 3px rgba(0, 0, 0, 0.175);
border: 1px solid rgba(black, 0.1);
background-color: white;
width: 300px;
// height: 500px;
margin: auto;
padding: 10px 30px;
padding-bottom: 30px;
// position: absolute;
// top: 0; left: 0; bottom: 0; right: 0;
overflow-y: scroll;
.panel {
width: 315px;
p {
margin-bottom: 8px;
margin-top: 0;
}
h3 {
margin-bottom: 0;
}
h4 {
margin-bottom: 6px;
.header {
justify-content: center;
}
}
}

View File

@@ -49,6 +49,7 @@
width: auto;
padding: 0;
padding-bottom: 0;
min-width: 300px;
}
}

View File

@@ -1,31 +1,3 @@
.selectable {
user-select: text !important;
}
.clear {
clear: both;
}
.pull-left {
float: left !important;
}
.pull-right {
float: right !important;
}
.mt-1 {
margin-top: 1px !important;
}
.mt-2 {
margin-top: 2px !important;
}
.mt-3 {
margin-top: 3px !important;
}
.mt-5 {
margin-top: 5px !important;
}
@@ -34,66 +6,6 @@
margin-top: 10px !important;
}
.mt-15 {
margin-top: 15px !important;
}
.mt-20 {
margin-top: 20px !important;
}
.mt-25 {
margin-top: 25px !important;
}
.mt-50 {
margin-top: 50px !important;
}
.mt-100 {
margin-top: 100px !important;
}
.mb-0 {
margin-bottom: 0px !important;
}
.mb-5 {
margin-bottom: 5px !important;
}
.mb-10 {
margin-bottom: 10px !important;
}
.mr-5 {
margin-right: 5px;
}
.mr-10 {
margin-right: 10px;
}
.mr-15 {
margin-right: 15px;
}
.mr-20 {
margin-right: 20px;
}
.ml-2 {
margin-left: 2px;
}
.pb-0 {
padding-bottom: 0px !important;
}
.pt-5 {
padding-top: 5px;
}
.faded {
opacity: 0.5;
}
@@ -102,11 +14,6 @@
text-align: center !important;
}
.center {
margin-left: auto !important;
margin-right: auto !important;
}
.block {
display: block !important;
}
@@ -116,59 +23,14 @@
word-break: break-all;
}
.one-line-overflow {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.small-v-space {
height: 6px;
display: block;
}
.medium-v-space {
height: 12px;
display: block;
}
.large-v-space {
height: 24px;
display: block;
}
.small-padding {
padding: 5px !important;
}
.medium-padding {
padding: 10px !important;
}
.pb-4 {
padding-bottom: 4px !important;
}
.pb-6 {
padding-bottom: 6px !important;
}
.pb-10 {
padding-bottom: 10px !important;
}
.large-padding {
padding: 22px !important;
}
.red {
color: red !important;
}
.orange {
color: orange !important;
}
.bold {
font-weight: bold !important;
}
@@ -184,115 +46,3 @@
.medium {
font-size: 14px !important;
}
.inline {
display: inline-block !important;
&.top {
vertical-align: top;
}
&.middle {
vertical-align: middle;
}
}
button {
cursor: pointer;
}
input.form-control {
margin-bottom: 10px;
border-radius: 0px;
min-height: 39px;
font-size: 14px;
padding-left: 6px;
}
button {
border: none;
@mixin wide-button() {
font-weight: bold;
text-align: center;
padding: 10px;
font-size: 16px;
// min-width: 200px;
&:hover {
text-decoration: underline;
}
}
&.black {
@include wide-button();
background-color: black;
color: white;
}
&.white {
@include wide-button();
background-color: white;
color: black;
border: 1px solid rgba(gray, 0.2);
}
}
.gray-bg {
background-color: #f6f6f6;
border: 1px solid #f2f2f2;
}
.white-bg {
background-color: white;
border: 1px solid rgba(gray, 0.2);
}
.col-container {
// white-space: nowrap;
}
@mixin col() {
display: inline-block;
vertical-align: top;
white-space: normal;
}
.col-10 {
width: 10%;
@include col();
}
.col-15 {
width: 15%;
@include col();
}
.col-20 {
width: 20%;
@include col();
}
.col-45 {
width: 45%;
@include col();
}
.col-50 {
width: 50%;
@include col();
}
.col-80 {
width: 80%;
@include col();
}
.relative {
position: relative !important;
}
.absolute {
position: absolute !important;
}

View File

@@ -1,6 +1,18 @@
.panel {
color: black;
input {
min-height: 39px;
}
.button-group.stretch {
.button:not(.featured) {
// Default buttons that are not featured and stretched should have larger vertical padding
padding: 9px;
}
}
a {
color: $blue-color;
}

View File

@@ -18,10 +18,10 @@
Standard Notes is free on every platform, and comes standard with sync and encryption.
.panel-section{"ng-if" => "formData.showLogin || formData.showRegister"}
%h3.title
%h3.title.panel-row
{{formData.showLogin ? "Sign In" : "Register (free)"}}
%form.panel-form
%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'}
@@ -32,13 +32,13 @@
%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
%label.pull-left Sync Server Domain
.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.info.featured{"ng-click" => "submitAuthForm()"}
{{formData.showLogin ? "Sign In" : "Register"}}
%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"}
@@ -47,15 +47,18 @@
%input{"type" => "checkbox", "ng-model" => "formData.mergeLocal", "ng-bind" => "true", "ng-change" => "mergeLocalChanged()"}
Merge local data ({{notesAndTagsCount()}} notes and tags)
%form.mt-5{"ng-if" => "formData.mfa"}
%p {{formData.mfa.message}}
%input.form-control.mt-10{:autofocus => "true", :name => 'mfa', :required => true, 'ng-model' => 'formData.userMfaCode'}
%button.ui-button.block.mt-10{"ng-click" => "submitMfaForm()"} {{"Sign In"}}
%em.block.center-align.mt-10{"ng-if" => "formData.status", "style" => "font-size: 14px;"}
{{formData.status}}
%div{"ng-if" => "!formData.showLogin && !formData.showRegister"}
.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}}
@@ -72,23 +75,26 @@
.panel-row
%a.panel-row.condensed{"ng-click" => "newPasswordData.changePassword = !newPasswordData.changePassword"} Change Password
.notification.default{"ng-if" => "newPasswordData.changePassword"}
%h1.title Change Password (Beta)
.notification.warning{"ng-if" => "newPasswordData.changePassword"}
%h1.title Change Password
.text
%p.mt-10 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.mt-5 If you have thousands of items, this can take several minutes — you must keep the application window open during this process.
%p.mt-5 After changing your password, you must log out of all other applications currently signed in to your account.
%p.bold.mt-5 It is highly recommended you download a backup of your data before proceeding.
%div.mt-10{"ng-if" => "!newPasswordData.status"}
%a.red.mr-5{"ng-if" => "!newPasswordData.showForm", "ng-click" => "showPasswordChangeForm()"} Continue
%a{"ng-click" => "newPasswordData.changePassword = false; newPasswordData.showForm = false"} Cancel
%div.mt-10{"ng-if" => "newPasswordData.showForm"}
%form
%input.form-control{:type => 'password', "ng-model" => "newPasswordData.newPassword", "placeholder" => "Enter new password"}
%input.form-control{:type => 'password', "ng-model" => "newPasswordData.newPasswordConfirmation", "placeholder" => "Confirm new password"}
%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}}
@@ -98,18 +104,18 @@
%a.panel-row{"ng-click" => "reencryptPressed()"} Resync All Items
%div{"ng-if" => "securityUpdateAvailable()"}
%a.block.mt-5{"ng-click" => "clickedSecurityUpdate()"} Security Update Available
%section.gray-bg.mt-10.medium-padding{"ng-if" => "securityUpdateData.showForm"}
%p
%a{"href" => "https://standardnotes.org/help/security-update", "target" => "_blank"} Learn more.
%div.mt-10{"ng-if" => "!securityUpdateData.processing"}
%p.bold Enter your password to update:
%form.mt-5
%input.form-control{:type => 'password', "ng-model" => "securityUpdateData.password", "placeholder" => "Enter password"}
%button.ui-button.block{"ng-click" => "submitSecurityUpdateForm()"} Update
%div.mt-5{"ng-if" => "securityUpdateData.processing"}
%p.tinted Processing...
%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
@@ -122,25 +128,26 @@
.panel-section
%h3.title.panel-row Passcode Lock
%div{"ng-if" => "!hasPasscode() && passcodeOptionAvailable()"}
.panel-row
.button.info{"ng-click" => "addPasscodeClicked(); $event.stopPropagation();", "ng-if" => "!formData.showPasscodeForm"}
.panel-row{"ng-if" => "!formData.showPasscodeForm"}
.button.info{"ng-click" => "addPasscodeClicked(); $event.stopPropagation();"}
.label Add Passcode
.panel-row
%p Add an app passcode to lock the app and encrypt on-device key storage.
%p Add an app passcode to lock the app and encrypt on-device key storage.
%form.mt-5{"ng-if" => "formData.showPasscodeForm", "ng-submit" => "submitPasscodeForm()"}
%input.form-control.mt-10{:type => 'password', "ng-model" => "formData.passcode", "placeholder" => "Passcode", "autofocus" => "true"}
%input.form-control.mt-10{:type => 'password', "ng-model" => "formData.confirmPasscode", "placeholder" => "Confirm Passcode"}
%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.info{"type" => "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.mt-5{"ng-click" => "removePasscodePressed()"} Remove Passcode
%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.)
@@ -166,12 +173,14 @@
.label Import From Backup
%div{"ng-if" => "importData.requestPassword"}
%form.panel-form{"ng-submit" => "submitImportPassword()"}
%form.panel-form.stretch{"ng-submit" => "submitImportPassword()"}
%p Enter the account password associated with the import file.
%input.form-control.mt-5{:type => 'password', "ng-model" => "importData.password", "autofocus" => "true"}
%button.standard.ui-button.block.tinted.mt-5{"type" => "submit"} Decrypt & Import
.spinner.mt-10{"ng-if" => "importData.loading"}
%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

View File

@@ -1,6 +1,6 @@
%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",
"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

@@ -22,7 +22,7 @@
%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);", "mb-autofocus" => "true", "should-focus" => "true"}
%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
@@ -44,7 +44,7 @@
%li{"ng-repeat" => "extension in extensionManager.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);", "mb-autofocus" => "true", "should-focus" => "true"}
%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"}
@@ -97,7 +97,7 @@
%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);", "mb-autofocus" => "true", "should-focus" => "true"}
%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()"}

View File

@@ -5,7 +5,7 @@
"ng-change" => "ctrl.nameChanged()", "ng-focus" => "ctrl.onNameFocus()", "ng-blur" => "ctrl.onNameBlur()",
"select-on-click" => "true"}
#save-status{"ng-class" => "{'red bold': ctrl.saveError, 'orange bold': ctrl.syncTakingTooLong}", "ng-bind-html" => "ctrl.noteStatus"}
#save-status{"ng-class" => "{'red bold': ctrl.saveError, 'warning bold': ctrl.syncTakingTooLong}", "ng-bind-html" => "ctrl.noteStatus"}
.editor-tags
#note-tags-component-container{"ng-if" => "ctrl.tagsComponent"}

View File

@@ -3,7 +3,7 @@
.left
.item{"click-outside" => "ctrl.showAccountMenu = false;", "is-open" => "ctrl.showAccountMenu"}
.column
.circle.small{"ng-class" => "ctrl.error ? 'danger' : (ctrl.user ? 'info' : 'default')"}
.circle.small{"ng-class" => "ctrl.error ? 'danger' : (ctrl.getUser() ? 'info' : 'default')"}
.column{"ng-click" => "ctrl.accountMenuPressed()"}
.label.title{"ng-class" => "{red: ctrl.error}"} Account
%account-menu{"ng-if" => "ctrl.showAccountMenu", "on-successful-auth" => "ctrl.onAuthSuccess", "close-function" => "ctrl.closeAccountMenu"}

View File

@@ -1,9 +1,14 @@
#lock-screen
.content
%h3.center-align Passcode Required
%form.mt-20{"ng-submit" => "submitPasscodeForm()"}
%input.form-control.mt-10{:type => 'password',
"ng-model" => "formData.passcode", "autofocus" => "true",
"placeholder" => "Enter Passcode", "autocomplete" => "new-password"}
%button.standard.ui-button.block.tinted.mt-5{"type" => "submit"} Unlock
#lock-screen.sn-component
.panel
.header
%h1.title Passcode Required
.content
.panel-section
%form.panel-form.panel-row{"ng-submit" => "submitPasscodeForm()"}
.panel-column.stretch
%input.panel-row{:type => 'password',
"ng-model" => "formData.passcode", "autofocus" => "true", "sn-autofocus" => "true", "should-focus" => "true",
"placeholder" => "Enter Passcode", "autocomplete" => "new-password"}
.button-group.stretch.panel-row.form-submit
%button.button.info{"type" => "submit"}
.label Unlock

View File

@@ -15,7 +15,7 @@
.tag{"ng-repeat" => "tag in ctrl.tags track by tag.uuid", "ng-click" => "ctrl.selectTag(tag)", "ng-class" => "{'selected' : ctrl.selectedTag == tag}"}
.info
%input.title{"ng-attr-id" => "tag-{{tag.uuid}}", "ng-click" => "ctrl.selectTag(tag)", "ng-model" => "tag.title",
"ng-keyup" => "$event.keyCode == 13 && ctrl.saveTag($event, tag)", "mb-autofocus" => "true", "should-focus" => "ctrl.newTag || ctrl.editingTag == tag",
"ng-keyup" => "$event.keyCode == 13 && ctrl.saveTag($event, tag)", "sn-autofocus" => "true", "should-focus" => "ctrl.newTag || ctrl.editingTag == tag",
"ng-change" => "ctrl.tagTitleDidChange(tag)", "ng-blur" => "ctrl.saveTag($event, tag)", "spellcheck" => "false"}
.count {{ctrl.noteCount(tag)}}

8
package-lock.json generated
View File

@@ -1,5 +1,5 @@
{
"name": "neeto",
"name": "standard-notes",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
@@ -5781,9 +5781,9 @@
"dev": true
},
"sn-stylekit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sn-stylekit/-/sn-stylekit-1.0.1.tgz",
"integrity": "sha512-tmtTUI5Vahsl6WjGL8rvCzi4BIqKz3F7e7y7MgLXM0zvxi3+IObgwDJXEUSHboXkC1RGSEM0mq+yJlyt2DY0+A=="
"version": "1.0.115",
"resolved": "https://registry.npmjs.org/sn-stylekit/-/sn-stylekit-1.0.115.tgz",
"integrity": "sha512-NsOS+sJoLBexantCSU/kwFWoRquAVDWs/+lxPQ1UHhEFh2Gj8G7q3omZmmbesTnHvL0vf+XK55Ne8sr50ZWJag=="
},
"snake-case": {
"version": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",

View File

@@ -36,6 +36,6 @@
},
"license": "GPL-3.0",
"dependencies": {
"sn-stylekit": "^1.0.1"
"sn-stylekit": "^1.0.115"
}
}