Note panel options menu with archived

This commit is contained in:
Mo Bitar
2017-10-15 17:39:51 -05:00
parent 650464d474
commit 0838f927ab
6 changed files with 79 additions and 30 deletions

View File

@@ -53,15 +53,25 @@ angular.module('app.frontend')
this.notesToDisplay += 20 this.notesToDisplay += 20
} }
this.sortByTitle = function() { this.optionsSubtitle = function() {
var base = "Sort |"; var base = "Sorting by";
if(this.sortBy == "created_at") { if(this.sortBy == "created_at") {
return base + " Date added"; base += " date added";
} else if(this.sortBy == "updated_at") { } else if(this.sortBy == "updated_at") {
return base + " Date modifed"; base += " date modifed";
} else if(this.sortBy == "title") { } else if(this.sortBy == "title") {
return base + " Title"; base += " title";
} }
if(this.showArchived && !this.tag.archiveTag) {
base += " | Including archived"
}
return base;
}
this.toggleShowArchived = function() {
this.showArchived = !this.showArchived;
} }
this.tagDidChange = function(tag, oldTag) { this.tagDidChange = function(tag, oldTag) {
@@ -114,11 +124,13 @@ angular.module('app.frontend')
this.filterNotes = function(note) { this.filterNotes = function(note) {
if(this.tag.archiveTag) { if(this.tag.archiveTag) {
return note.archived; note.visible = note.archived;
return note.visible;
} }
if(note.archived) { if(note.archived && !this.showArchived) {
return false; note.visible = false;
return note.visible;
} }
var filterText = this.noteFilter.text.toLowerCase(); var filterText = this.noteFilter.text.toLowerCase();

View File

@@ -35,6 +35,7 @@ angular.module('app.frontend')
} }
items = items || []; items = items || [];
console.log("Sorting", items.length, "items");
return items.sort(function(a, b){ return items.sort(function(a, b){
return sortValueFn(a, b); return sortValueFn(a, b);
}) })

View File

@@ -25,6 +25,25 @@ ul.section-menu-bar {
font-weight: bold; font-weight: bold;
user-select: none; user-select: none;
&.full-width {
width: 100%;
}
&.item-with-subtitle {
label {
// float: left;
margin-right: 8px;
}
.subtitle {
margin-top: 1px;
opacity: 0.5;
font-weight: normal;
font-size: 12px;
}
}
&.selected { &.selected {
background-color: $blue-color; background-color: $blue-color;
border-radius: 1px; border-radius: 1px;

View File

@@ -6,7 +6,7 @@
max-width: 350px; max-width: 350px;
min-width: 170px; min-width: 170px;
$notes-title-bar-height: 130px; $notes-title-bar-height: 147px;
#notes-title-bar { #notes-title-bar {
color: rgba(black, 0.40); color: rgba(black, 0.40);
@@ -26,11 +26,11 @@
right: 14px; right: 14px;
} }
#tag-menu-bar { #notes-menu-bar {
position: relative; position: relative;
margin: 0 -14px; margin: 0 -14px;
margin-top: 14px; margin-top: 14px;
// padding-left: 4px; height: 45px;
width: auto; width: auto;
} }

View File

@@ -156,9 +156,10 @@
.fake-link.tinted Import Data from Archive .fake-link.tinted Import Data from Archive
%div{"ng-if" => "importData.requestPassword"} %div{"ng-if" => "importData.requestPassword"}
%p Enter the account password associated with the import file. %form{"ng-submit" => "submitImportPassword()"}
%input.form-control.mt-5{:type => 'password', "ng-model" => "importData.password", "autofocus" => "true"} %p Enter the account password associated with the import file.
%button.standard.ui-button.block.tinted.mt-5{"ng-click" => "submitImportPassword()"} Decrypt & Import %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
%p.mt-5{"ng-if" => "user"} Notes are downloaded in the Standard File format, which allows you to re-import back into this app easily. To download as plain text files, choose "Decrypted". %p.mt-5{"ng-if" => "user"} Notes are downloaded in the Standard File format, which allows you to re-import back into this app easily. To download as plain text files, choose "Decrypted".

View File

@@ -7,23 +7,35 @@
.filter-section .filter-section
%input.filter-bar{"select-on-click" => "true", "ng-model" => "ctrl.noteFilter.text", "placeholder" => "Search", "ng-change" => "ctrl.filterTextChanged()", "lowercase" => "true"} %input.filter-bar{"select-on-click" => "true", "ng-model" => "ctrl.noteFilter.text", "placeholder" => "Search", "ng-change" => "ctrl.filterTextChanged()", "lowercase" => "true"}
#search-clear-button{"ng-if" => "ctrl.noteFilter.text", "ng-click" => "ctrl.noteFilter.text = ''; ctrl.filterTextChanged()"} ✕ #search-clear-button{"ng-if" => "ctrl.noteFilter.text", "ng-click" => "ctrl.noteFilter.text = ''; ctrl.filterTextChanged()"} ✕
%ul.section-menu-bar#tag-menu-bar %ul.section-menu-bar#notes-menu-bar
%li{"ng-class" => "{'selected' : ctrl.showMenu}"} %li.item-with-subtitle{"ng-class" => "{'selected' : ctrl.showMenu}"}
%label{"ng-click" => "ctrl.showMenu = !ctrl.showMenu"} {{ctrl.sortByTitle()}} .wrapper{"ng-click" => "ctrl.showMenu = !ctrl.showMenu"}
%label Options
.subtitle {{ctrl.optionsSubtitle()}}
%ul.dropdown-menu{"ng-if" => "ctrl.showMenu"} .sectioned-menu.dropdown-menu{"ng-if" => "ctrl.showMenu"}
%li %ul
%label{"ng-click" => "ctrl.selectedMenuItem($event); ctrl.selectedSortByCreated()"} .header
%span.top.mt-5.mr-5{"ng-if" => "ctrl.sortBy == 'created_at'"} ✓ .title Sort by
By date added %li{"ng-click" => "ctrl.selectedMenuItem($event); ctrl.selectedSortByCreated()"}
%li %label
%label{"ng-click" => "ctrl.selectedMenuItem($event); ctrl.selectedSortByUpdated()"} %span.top.mt-5.mr-5{"ng-if" => "ctrl.sortBy == 'created_at'"} ✓
%span.top.mt-5.mr-5{"ng-if" => "ctrl.sortBy == 'updated_at'"} ✓ By date added
By date modified %li{"ng-click" => "ctrl.selectedMenuItem($event); ctrl.selectedSortByUpdated()"}
%li %label
%label{"ng-click" => "ctrl.selectedMenuItem($event); ctrl.selectedSortByTitle()"} %span.top.mt-5.mr-5{"ng-if" => "ctrl.sortBy == 'updated_at'"} ✓
%span.top.mt-5.mr-5{"ng-if" => "ctrl.sortBy == 'title'"} ✓ By date modified
By title %li{"ng-click" => "ctrl.selectedMenuItem($event); ctrl.selectedSortByTitle()"}
%label
%span.top.mt-5.mr-5{"ng-if" => "ctrl.sortBy == 'title'"} ✓
By title
%ul{"ng-if" => "!ctrl.tag.archiveTag"}
.header
.title Archives
%li{"ng-click" => "ctrl.selectedMenuItem($event); ctrl.toggleShowArchived()"}
%label
%span.top.mt-5.mr-5{"ng-if" => "ctrl.showArchived == true"} ✓
Show archived notes
.scrollable .scrollable
.infinite-scroll{"infinite-scroll" => "ctrl.paginate()", "can-load" => "true", "threshold" => "200"} .infinite-scroll{"infinite-scroll" => "ctrl.paginate()", "can-load" => "true", "threshold" => "200"}
@@ -36,6 +48,10 @@
%i.icon.ion-ios-flag %i.icon.ion-ios-flag
%strong.medium Pinned %strong.medium 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
.tags-string{"ng-if" => "ctrl.tag.all"} .tags-string{"ng-if" => "ctrl.tag.all"}
.faded {{note.tagsString()}} .faded {{note.tagsString()}}