<template>
- <div class="flex h-full items-center justify-center">
- <div class="flex max-w-[500px] flex-1 flex-col items-center">
+ <div class="flex h-full justify-center">
+ <div class="flex max-w-[500px] flex-1 flex-col items-center pt-[25vh]">
<Logo class="mb-5" />
<SearchInput class="mb-5 shadow-[0_0_20px] shadow-theme-shadow" />
<LoadingIndicator
>
<p
v-if="notes.length > 0"
- class="mb-2 text-xs font-bold text-theme-text-very-muted"
+ class="mb-2 text-xs font-bold uppercase text-theme-text-very-muted"
>
- RECENTLY MODIFIED
+ {{ globalStore.config.quickAccessTitle }}
</p>
<RouterLink
v-for="note in notes"
import { onMounted, ref, watch } from "vue";
import { RouterLink } from "vue-router";
-import { mdiPencil } from "@mdi/js";
import { apiErrorHandler, getNotes } from "../api.js";
import CustomButton from "../components/CustomButton.vue";
import LoadingIndicator from "../components/LoadingIndicator.vue";
const globalStore = useGlobalStore();
const loadingIndicator = ref();
-const noNotesMessage =
- "Click the 'New Note' button at the top of the page to get started.";
const notes = ref([]);
const toast = useToast();
function init() {
- if (globalStore.config.hideRecentlyModified) {
+ if (globalStore.config.quickAccessHide) {
return;
}
- getNotes("*", "lastModified", "desc", 5)
+ getNotes(
+ globalStore.config.quickAccessTerm,
+ globalStore.config.quickAccessSort,
+ globalStore.config.quickAccessOrder,
+ globalStore.config.quickAccessLimit,
+ )
.then((data) => {
notes.value = data;
- if (notes.value.length > 0) {
- loadingIndicator.value.setLoaded();
- } else {
- loadingIndicator.value.setFailed(noNotesMessage, mdiPencil);
- }
+ loadingIndicator.value.setLoaded();
})
.catch((error) => {
loadingIndicator.value.setFailed();
def __init__(self) -> None:\r
logger.debug("Loading global config...")\r
self.auth_type: AuthType = self._load_auth_type()\r
- self.hide_recently_modified: bool = self._load_hide_recently_modified()\r
+ self.quick_access_hide: bool = self._quick_access_hide()\r
+ self.quick_access_title: str = self._quick_access_title()\r
+ self.quick_access_term: str = self._quick_access_term()\r
+ self.quick_access_sort: str = self._quick_access_sort()\r
+ self.quick_access_order: str = self._quick_access_order()\r
+ self.quick_access_limit: int = self._quick_access_limit()\r
self.path_prefix: str = self._load_path_prefix()\r
\r
def load_auth(self):\r
sys.exit(1)\r
return auth_type\r
\r
- def _load_hide_recently_modified(self):\r
- key = "FLATNOTES_HIDE_RECENTLY_MODIFIED"\r
- return get_env(key, mandatory=False, default=False, cast_bool=True)\r
+ def _quick_access_hide(self):\r
+ key = "FLATNOTES_QUICK_ACCESS_HIDE"\r
+ value = get_env(key, mandatory=False, default=False, cast_bool=True)\r
+ if value is False:\r
+ depricated_key = "FLATNOTES_HIDE_RECENTLY_MODIFIED"\r
+ value = get_env(\r
+ depricated_key, mandatory=False, default=False, cast_bool=True\r
+ )\r
+ if value is True:\r
+ logger.warning(\r
+ f"{depricated_key} is depricated. Please use {key} instead."\r
+ )\r
+ return value\r
+\r
+ def _quick_access_title(self):\r
+ key = "FLATNOTES_QUICK_ACCESS_TITLE"\r
+ return get_env(key, mandatory=False, default="RECENTLY MODIFIED")\r
+\r
+ def _quick_access_term(self):\r
+ key = "FLATNOTES_QUICK_ACCESS_TERM"\r
+ return get_env(key, mandatory=False, default="*")\r
+\r
+ def _quick_access_sort(self):\r
+ key = "FLATNOTES_QUICK_ACCESS_SORT"\r
+ value = get_env(key, mandatory=False, default="lastModified")\r
+ valid_values = ["score", "title", "lastModified"]\r
+ if value not in valid_values:\r
+ logger.error(\r
+ f"Invalid value '{value}' for {key}. "\r
+ + "Must be one of: "\r
+ + ", ".join(valid_values)\r
+ )\r
+ sys.exit(1)\r
+ return value\r
+\r
+ def _quick_access_order(self):\r
+ key = "FLATNOTES_QUICK_ACCESS_ORDER"\r
+ value = get_env(key, mandatory=False, default="desc")\r
+ valid_values = ["asc", "desc"]\r
+ if value not in valid_values:\r
+ logger.error(\r
+ f"Invalid value '{value}' for {key}. "\r
+ + "Must be one of: "\r
+ + ", ".join(valid_values)\r
+ )\r
+ sys.exit(1)\r
+ return value\r
+\r
+ def _quick_access_limit(self):\r
+ key = "FLATNOTES_QUICK_ACCESS_LIMIT"\r
+ return get_env(key, mandatory=False, default=5, cast_int=True)\r
\r
def _load_path_prefix(self):\r
key = "FLATNOTES_PATH_PREFIX"\r
\r
class GlobalConfigResponseModel(CustomBaseModel):\r
auth_type: AuthType\r
- hide_recently_modified: bool\r
+ quick_access_hide: bool\r
+ quick_access_title: str\r
+ quick_access_term: str\r
+ quick_access_sort: str\r
+ quick_access_order: str\r
+ quick_access_limit: int\r
"""Retrieve server-side config required for the UI."""\r
return GlobalConfigResponseModel(\r
auth_type=global_config.auth_type,\r
- hide_recently_modified=global_config.hide_recently_modified,\r
+ quick_access_hide=global_config.quick_access_hide,\r
+ quick_access_title=global_config.quick_access_title,\r
+ quick_access_term=global_config.quick_access_term,\r
+ quick_access_sort=global_config.quick_access_sort,\r
+ quick_access_order=global_config.quick_access_order,\r
+ quick_access_limit=global_config.quick_access_limit,\r
)\r
\r
\r