feat: add custom note title format pref (#1678)

This commit is contained in:
Aman Harwara
2022-09-29 20:10:05 +05:30
committed by GitHub
parent d7a90c4d91
commit 11dd39c126
16 changed files with 252 additions and 62 deletions

View File

@@ -31,6 +31,8 @@ import { SelectedItemsController } from '../SelectedItemsController'
import { NotesController } from '../NotesController'
import { NoteTagsController } from '../NoteTagsController'
import { formatDateAndTimeForNote } from '@/Utils/DateUtils'
import { PrefDefaults } from '@/Constants/PrefDefaults'
import dayjs from 'dayjs'
const MinNoteCellHeight = 51.0
const DefaultListNumNotes = 20
@@ -351,7 +353,7 @@ export class ItemListController extends AbstractViewController implements Intern
const shouldShowArchivedNotes =
this.navigationController.isInSystemView(SystemViewId.ArchivedNotes) ||
this.searchOptionsController.includeArchived ||
this.application.getPreference(PrefKey.NotesShowArchived, false)
this.application.getPreference(PrefKey.NotesShowArchived, PrefDefaults[PrefKey.NotesShowArchived])
return (activeItem?.trashed && !shouldShowTrashedNotes) || (activeItem?.archived && !shouldShowArchivedNotes)
}
@@ -421,23 +423,49 @@ export class ItemListController extends AbstractViewController implements Intern
const currentSortBy = this.displayOptions.sortBy
let sortBy = this.application.getPreference(PrefKey.SortNotesBy, CollectionSort.CreatedAt)
let sortBy = this.application.getPreference(PrefKey.SortNotesBy, PrefDefaults[PrefKey.SortNotesBy])
if (sortBy === CollectionSort.UpdatedAt || (sortBy as string) === 'client_updated_at') {
sortBy = CollectionSort.UpdatedAt
}
newDisplayOptions.sortBy = sortBy
newDisplayOptions.sortDirection =
this.application.getPreference(PrefKey.SortNotesReverse, false) === false ? 'dsc' : 'asc'
newDisplayOptions.includeArchived = this.application.getPreference(PrefKey.NotesShowArchived, false)
newDisplayOptions.includeTrashed = this.application.getPreference(PrefKey.NotesShowTrashed, false) as boolean
newDisplayOptions.includePinned = !this.application.getPreference(PrefKey.NotesHidePinned, false)
newDisplayOptions.includeProtected = !this.application.getPreference(PrefKey.NotesHideProtected, false)
this.application.getPreference(PrefKey.SortNotesReverse, PrefDefaults[PrefKey.SortNotesReverse]) === false
? 'dsc'
: 'asc'
newDisplayOptions.includeArchived = this.application.getPreference(
PrefKey.NotesShowArchived,
PrefDefaults[PrefKey.NotesShowArchived],
)
newDisplayOptions.includeTrashed = this.application.getPreference(
PrefKey.NotesShowTrashed,
PrefDefaults[PrefKey.NotesShowTrashed],
) as boolean
newDisplayOptions.includePinned = !this.application.getPreference(
PrefKey.NotesHidePinned,
PrefDefaults[PrefKey.NotesHidePinned],
)
newDisplayOptions.includeProtected = !this.application.getPreference(
PrefKey.NotesHideProtected,
PrefDefaults[PrefKey.NotesHideProtected],
)
newWebDisplayOptions.hideNotePreview = this.application.getPreference(PrefKey.NotesHideNotePreview, false)
newWebDisplayOptions.hideDate = this.application.getPreference(PrefKey.NotesHideDate, false)
newWebDisplayOptions.hideTags = this.application.getPreference(PrefKey.NotesHideTags, true)
newWebDisplayOptions.hideEditorIcon = this.application.getPreference(PrefKey.NotesHideEditorIcon, false)
newWebDisplayOptions.hideNotePreview = this.application.getPreference(
PrefKey.NotesHideNotePreview,
PrefDefaults[PrefKey.NotesHideNotePreview],
)
newWebDisplayOptions.hideDate = this.application.getPreference(
PrefKey.NotesHideDate,
PrefDefaults[PrefKey.NotesHideDate],
)
newWebDisplayOptions.hideTags = this.application.getPreference(
PrefKey.NotesHideTags,
PrefDefaults[PrefKey.NotesHideTags],
)
newWebDisplayOptions.hideEditorIcon = this.application.getPreference(
PrefKey.NotesHideEditorIcon,
PrefDefaults[PrefKey.NotesHideEditorIcon],
)
const displayOptionsChanged =
newDisplayOptions.sortBy !== this.displayOptions.sortBy ||
@@ -494,13 +522,19 @@ export class ItemListController extends AbstractViewController implements Intern
const titleFormat = this.application.getPreference(
PrefKey.NewNoteTitleFormat,
NewNoteTitleFormat.CurrentDateAndTime,
PrefDefaults[PrefKey.NewNoteTitleFormat],
)
let title = formatDateAndTimeForNote(new Date())
if (titleFormat === NewNoteTitleFormat.CurrentNoteCount) {
title = `Note ${this.notes.length + 1}`
} else if (titleFormat === NewNoteTitleFormat.CustomFormat) {
const customFormat = this.application.getPreference(
PrefKey.CustomNoteTitleFormat,
PrefDefaults[PrefKey.CustomNoteTitleFormat],
)
title = dayjs().format(customFormat)
} else if (titleFormat === NewNoteTitleFormat.Empty) {
title = ''
}