diff --git a/app/db/src/app/app-routing.module.ts b/app/db/src/app/app-routing.module.ts
index baded72a..51501b2f 100644
--- a/app/db/src/app/app-routing.module.ts
+++ b/app/db/src/app/app-routing.module.ts
@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { SearchPage } from './pages/search/search.page';
import { SavedPagesAdminPage } from './pages/saved-pages-admin/saved-pages-admin.page';
+import { NotesAdminPage } from './pages/notes-admin/notes-admin.page';
const routes: Routes = [
{
@@ -29,6 +30,11 @@ const routes: Routes = [
pathMatch: 'prefix',
component: SavedPagesAdminPage,
},
+ {
+ path: 'notes/admin',
+ pathMatch: 'prefix',
+ component: NotesAdminPage,
+ },
];
@NgModule({
diff --git a/app/db/src/app/app.component.html b/app/db/src/app/app.component.html
index e312ec0e..6d2fbf0e 100644
--- a/app/db/src/app/app.component.html
+++ b/app/db/src/app/app.component.html
@@ -13,9 +13,16 @@
search Search
+
library_books Page Adminall_inbox Manage Saved
+ Pages
+
+ library_books Manage Notes
+
helpHelp
@@ -27,8 +34,7 @@
*ngFor="let p of savedPages$ | async"
mat-list-item
[routerLink]="['page', p.id]"
- >library_books
- {{ p.title }}inbox {{ p.title }}
diff --git a/app/db/src/app/app.module.ts b/app/db/src/app/app.module.ts
index 727af822..0f319320 100644
--- a/app/db/src/app/app.module.ts
+++ b/app/db/src/app/app.module.ts
@@ -53,6 +53,8 @@ import { ClipboardModule } from '@angular/cdk/clipboard';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
+import { NotesAdminPage } from './pages/notes-admin/notes-admin.page';
+
import { SavedPagesAdminPage } from './pages/saved-pages-admin/saved-pages-admin.page';
import { SavedPageCardComponent } from './components/saved-page-card/saved-page-card.component';
@@ -77,6 +79,7 @@ import { AddToPageModalComponent } from './components/add-to-page-modal/add-to-p
@NgModule({
declarations: [
AppComponent,
+ NotesAdminPage,
SavedPagesAdminPage,
SavedPageCardComponent,
HelpModalComponent,
diff --git a/app/db/src/app/components/note/edit-modal/note-edit-modal.component.scss b/app/db/src/app/components/note/edit-modal/note-edit-modal.component.scss
index 37e015ef..93298ffc 100644
--- a/app/db/src/app/components/note/edit-modal/note-edit-modal.component.scss
+++ b/app/db/src/app/components/note/edit-modal/note-edit-modal.component.scss
@@ -9,6 +9,7 @@
width: 100%;
padding-left: 1rem;
font-size: 1.5rem;
+ overflow: hidden;
}
.mat-form-field {
diff --git a/app/db/src/app/components/note/note-card.component.html b/app/db/src/app/components/note/note-card.component.html
index 92b06fe8..f2cb7548 100644
--- a/app/db/src/app/components/note/note-card.component.html
+++ b/app/db/src/app/components/note/note-card.component.html
@@ -3,14 +3,17 @@
icon$ | async
}}
{{ cardItem.data.title }}
-
{{
@@ -24,15 +27,23 @@
-
- {{ ref.toString() }}
-
+
+
+ {{ ref.toString() }}
+
+
+
+ {{ ref.toString() }}
-
+
save
Add Card to Saved Page
-
- arrow_upward
- Move Card Up
-
-
- arrow_downward
- Move Card Down
-
+
+
+
+ arrow_upward
+ Move Card Up
+
+
+ arrow_downward
+ Move Card Down
+
+
diff --git a/app/db/src/app/components/note/note-card.component.ts b/app/db/src/app/components/note/note-card.component.ts
index b9d2e6bd..4dfbaae0 100644
--- a/app/db/src/app/components/note/note-card.component.ts
+++ b/app/db/src/app/components/note/note-card.component.ts
@@ -1,10 +1,11 @@
-import { Component, ViewChild, ElementRef, OnInit } from '@angular/core';
+import { Component, ViewChild, ElementRef, OnInit, Input } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { NoteEditModalComponent } from './edit-modal/note-edit-modal.component';
import { CardComponent } from '../../components/card.component';
import { AppService } from '../../services/app.service';
import { BibleReference } from '../../common/bible-reference';
import { NoteItem } from '../../models/note-state';
+import { OkCancelModalComponent, OkCancelResult } from '../ok-cancel-modal/ok-cancel-modal.component';
@Component({
selector: 'app-note-card',
@@ -14,6 +15,9 @@ import { NoteItem } from '../../models/note-state';
export class NoteCardComponent extends CardComponent {
@ViewChild('note') noteElement: ElementRef;
+ @Input()
+ inSearch = true;
+
constructor(protected elementRef: ElementRef, protected appService: AppService, public dialog: MatDialog) {
super(elementRef, dialog, appService);
@@ -41,6 +45,18 @@ export class NoteCardComponent extends CardComponent {
}
delete() {
- this.appService.deleteNote(this.cardItem.data as NoteItem);
+ this.dialog
+ .open(OkCancelModalComponent, {
+ data: {
+ title: 'Delete Note?',
+ content: `Do you want to permanently delete the note '${(this.cardItem.data as NoteItem).title}'?`,
+ },
+ })
+ .afterClosed()
+ .subscribe((ds: OkCancelResult) => {
+ if (ds.ok) {
+ this.appService.deleteNote(this.cardItem.data as NoteItem);
+ }
+ });
}
}
diff --git a/app/db/src/app/components/page-edit-modal/page-edit-modal.component.scss b/app/db/src/app/components/page-edit-modal/page-edit-modal.component.scss
index 4250d2f2..16a44874 100644
--- a/app/db/src/app/components/page-edit-modal/page-edit-modal.component.scss
+++ b/app/db/src/app/components/page-edit-modal/page-edit-modal.component.scss
@@ -9,6 +9,7 @@
width: 100%;
padding-left: 1rem;
font-size: 1.5rem;
+ overflow: hidden;
}
.mat-form-field {
diff --git a/app/db/src/app/components/settings/settings.component.html b/app/db/src/app/components/settings/settings.component.html
index b65b1ac6..636e5971 100644
--- a/app/db/src/app/components/settings/settings.component.html
+++ b/app/db/src/app/components/settings/settings.component.html
@@ -1,7 +1,7 @@
Page Settings
- save
+ create
Save Results as New Page
@@ -15,7 +15,7 @@
- create
+ note_add
Create a New Note
diff --git a/app/db/src/app/constants.ts b/app/db/src/app/constants.ts
index 19328708..97357841 100644
--- a/app/db/src/app/constants.ts
+++ b/app/db/src/app/constants.ts
@@ -1,9 +1,3 @@
-export const CardIcons = {
- Words: 'font_download',
- Passage: 'menu_book',
- Strongs: 'article',
-};
-
export const CardFonts = [
'Merriweather',
'PT Sans',
diff --git a/app/db/src/app/pages/notes-admin/notes-admin.page.html b/app/db/src/app/pages/notes-admin/notes-admin.page.html
new file mode 100644
index 00000000..020e64ce
--- /dev/null
+++ b/app/db/src/app/pages/notes-admin/notes-admin.page.html
@@ -0,0 +1,16 @@
+
+
+ menu
+
+ Manage Your Notes
+
+
diff --git a/app/db/src/app/pages/notes-admin/notes-admin.page.scss b/app/db/src/app/pages/notes-admin/notes-admin.page.scss
new file mode 100644
index 00000000..e161d074
--- /dev/null
+++ b/app/db/src/app/pages/notes-admin/notes-admin.page.scss
@@ -0,0 +1,20 @@
+mat-card {
+ max-width: 800px;
+ margin: 1.5rem auto;
+ padding: 0;
+}
+
+.page-title {
+ width: 100%;
+ position: relative;
+ margin-left: 0.8rem;
+ margin-right: 0.8rem;
+}
+
+.page-content {
+ padding: 0 1rem 0 1rem;
+ overflow-y: scroll;
+ height: calc(100vh - 66px);
+ width: calc(100% - 15px);
+ margin-top: 2px;
+}
diff --git a/app/db/src/app/pages/notes-admin/notes-admin.page.ts b/app/db/src/app/pages/notes-admin/notes-admin.page.ts
new file mode 100644
index 00000000..3a54ae94
--- /dev/null
+++ b/app/db/src/app/pages/notes-admin/notes-admin.page.ts
@@ -0,0 +1,33 @@
+import { Component, OnInit } from '@angular/core';
+import { AppService } from '../../services/app.service';
+import { NavService } from '../../services/nav.service';
+import { SubscriberBase } from '../../common/subscriber-base';
+import { CardItem, CardType } from 'src/app/models/card-state';
+
+@Component({
+ selector: 'app-notes-admin',
+ templateUrl: './notes-admin.page.html',
+ styleUrls: ['./notes-admin.page.scss'],
+})
+export class NotesAdminPage extends SubscriberBase implements OnInit {
+ notes$ = this.appService.select((state) =>
+ state.notes === null
+ ? null
+ : state.notes.value.map(
+ (o) =>
+ ({
+ qry: o.id,
+ data: o,
+ type: CardType.Note,
+ } as CardItem)
+ )
+ );
+
+ constructor(public navService: NavService, private appService: AppService) {
+ super();
+ }
+
+ ngOnInit() {
+ this.navService.closeNav(); // close the nav immediately.
+ }
+}
diff --git a/app/db/src/app/pages/saved-pages-admin/saved-pages-admin.page.html b/app/db/src/app/pages/saved-pages-admin/saved-pages-admin.page.html
index 236e957f..7489aa0d 100644
--- a/app/db/src/app/pages/saved-pages-admin/saved-pages-admin.page.html
+++ b/app/db/src/app/pages/saved-pages-admin/saved-pages-admin.page.html
@@ -2,7 +2,7 @@
menu
- Saved Pages Admin
+ Manage Your Saved Pages
diff --git a/app/db/src/app/services/app-state-initial-state.ts b/app/db/src/app/services/app-state-initial-state.ts
index 891ced5c..c87970c2 100644
--- a/app/db/src/app/services/app-state-initial-state.ts
+++ b/app/db/src/app/services/app-state-initial-state.ts
@@ -39,7 +39,7 @@ export const initialState: AppState = {
words: 'font_download',
passage: 'menu_book',
strongs: 'speaker_notes',
- note: 'text_snippet',
- savedPage: 'library_books',
+ note: 'note',
+ savedPage: 'inbox',
},
};
diff --git a/app/db/src/app/services/app-state-reducer.ts b/app/db/src/app/services/app-state-reducer.ts
index 631373ee..5a73f810 100644
--- a/app/db/src/app/services/app-state-reducer.ts
+++ b/app/db/src/app/services/app-state-reducer.ts
@@ -279,8 +279,31 @@ export function reducer(state: AppState, action: AppAction): AppState {
};
}
case 'REMOVE_CARD': {
+ // potentially remove card from a saved page.
+ const currentSavedPage =
+ state.currentSavedPage !== null
+ ? {
+ ...state.currentSavedPage,
+ queries: state.currentSavedPage.queries.filter((q) => q !== action.card),
+ }
+ : null;
+
+ const savedPages =
+ state.currentSavedPage !== null
+ ? new Storable(
+ state.savedPages.value.map((o) => {
+ if (o === state.currentSavedPage) {
+ return currentSavedPage;
+ }
+ return o;
+ })
+ )
+ : state.savedPages;
+
return {
...state,
+ currentSavedPage,
+ savedPages,
cards: [...state.cards.filter((c) => c !== action.card)],
};
}
@@ -298,6 +321,9 @@ export function reducer(state: AppState, action: AppAction): AppState {
user: action.user,
};
}
+
+ //#region Notes
+
case 'FIND_NOTES': {
const notes = state.notes.value
.filter((o) => o.title.search(action.qry) > -1)
@@ -442,5 +468,7 @@ export function reducer(state: AppState, action: AppAction): AppState {
savedPages,
};
}
+
+ //#endregion
}
}
diff --git a/app/db/src/app/services/app.service.ts b/app/db/src/app/services/app.service.ts
index f7c243c3..f0fbda63 100644
--- a/app/db/src/app/services/app.service.ts
+++ b/app/db/src/app/services/app.service.ts
@@ -57,6 +57,7 @@ export class AppService extends createStateService(reducer, initialState) {
card,
});
}
+
moveCard(card: CardItem, direction: MoveDirection) {
this.dispatch({
type: 'MOVE_CARD',