* feat: make filtering case insensitive
* fix: wrong letter case when accepting suggestion
* refactor: wrap textarea in TagSuggestions
* fix: less styles not matching common-editor-inputer
* refactor: use explanatory const names for tested value in conditional checks
* feat: style highlighted option
* feat: handle down/up arrow keys
* feat: handle enter or tab to trigger autocomplete
* fix: wrong import
* fix: tab key adding whitespace after auto-completion
* fix: starting a note with a tag
* fix: close on escape
* refactor: early version of removed wrapping and children prop
* refactor: remove unnecessary return false
* refactor: finished rewriting to not wrap editor
* Update de.json
I used the en.json as a template and translated it (german language)
* Update de.json
* Update de.json
* Update de.json
* Update de.json
---------
Co-authored-by: boojack <stevenlgtm@gmail.com>
Minor spelling and wording changes
I went through some of english and german localizations to correct or add minor things.
Added `invalid-tag-name` to json. Which also means it should be translated elsewhere.
* feat: figure out how to read caret position
* feat: figure out how to read caret position
* feat: create and style Editor/TagSuggestions.txs
* feat: progress on detect when to show and hide
* feat: progress on when to show and hide and setting position
* feat: toggling and exact placement done
* fix: pnpm lock problems
* feat: filter suggestions by partially typed tag name
* style: prettier
* chore: add types package for textarea-caret
* feat: handle option click
* style: prettier
* style: reorder imports
Co-authored-by: boojack <stevenlgtm@gmail.com>
---------
Co-authored-by: boojack <stevenlgtm@gmail.com>
* system setting to disable password login
* fix linter warning
* fix indentation warning
* Prohibit disable-password-login if no identity providers are configured
* Warnings and explicit confirmation when en-/disabling password-login
- Disabling password login now gives a warning and requires a second
confirmation which needs to be explicitly typed.
- (Re)Enabling password login now also gives a simple warning.
- Removing an identity provider while password-login is disabled now
also warns about possible problems.
* Fix formatting
* Fix code-style
---------
Co-authored-by: traumweh <5042134-traumweh@users.noreply.gitlab.com>
I think free means freedom, not freemiam.
Fixed some strange expressions in the heatmap section.
Added spaces before and after English words that are in Japanese sentences.
It is strange to translate "about" as "Notes について". However, if we define "について" as "about", the sentence becomes "について Memos". It is better not to translate here.
* #1952 Fix incorrect localization key for sign-up failure message
* feat: add typeScript support to enforce valid translation keys
* feat: add typeScript support to enforce valid translation keys
* fix lint errors
* fix lint error
* chore: Disallow destructuring 't' from useTranslation
This commit adds a linting rule to disallow the destructuring of the 't' property from the result of the useTranslation function call. The no-restricted-syntax rule in the ESLint configuration has been updated to enforce this restriction. The intention is to promote alternative approaches like using the useTranslate hook for localization.
* fix: typo fixed for memoChat
* fix: copy code button toast message
Refactored the code for the "Copy Code" button to utilize i18 strings for displaying the success message. Replaced the hard-coded value with the appropriate i18 string "Code copied successfully."
* fix: #1980 disable selection of future dates in daily review section
* #1952 Fix incorrect localization key for sign-up failure message
* feat: add typeScript support to enforce valid translation keys
* feat: add typeScript support to enforce valid translation keys
* fix lint errors
* fix lint error
* chore: Disallow destructuring 't' from useTranslation
This commit adds a linting rule to disallow the destructuring of the 't' property from the result of the useTranslation function call. The no-restricted-syntax rule in the ESLint configuration has been updated to enforce this restriction. The intention is to promote alternative approaches like using the useTranslate hook for localization.
* fix: typo fixed for memoChat
* fix: copy code button toast message
Refactored the code for the "Copy Code" button to utilize i18 strings for displaying the success message. Replaced the hard-coded value with the appropriate i18 string "Code copied successfully."
* Add suppport for tap to reload on PWA
* Clean empty className
* Move click event to site title
---------
Co-authored-by: Athurg Feng <athurg@gooth.org>
* Add support for download resource from link
* Parse external link and add file ext name from mime info
* Add zh-Hans locale for `download-link`
* fix typo on code and comments
* Update server/resource.go
---------
Co-authored-by: Athurg Feng <athurg@gooth.org>
Co-authored-by: boojack <stevenlgtm@gmail.com>
* Fix copy-to-clipboard not works well in Safari
* Fix typescript type check failure
* Remove global copy inject in home page
---------
Co-authored-by: Athurg Feng <athurg@gooth.org>
* Add support to fetch devProxyServer from environment
* Add docker compose file for developer
---------
Co-authored-by: Athurg Feng <athurg@gooth.org>
* Change all `Robot` to `Bot`
* Change all `r` of `Bot` to `b`
* Change `Robot` to `bot` in comments
* Fix typo
---------
Co-authored-by: Athurg Feng <athurg@gooth.org>
* feat(#1568): Added "ask ai" section session splitting function
Added "ask ai" section session splitting function
Optimize the "ask ai" dialogue style
* fix(#1568): Fix wrong attribute "appearance"
* fix(#1568): Add ts type define
* fix(#1568): Add ts type define
* fix(#1568): Resolve the issue of components not being stretched when only user input is available
* feat(#1568): New session automatic switching function
* refactor(#1729): remove unused code
* feat(#1568): New Remove Session Function
New Remove Session Function
Rename some methods
* Add retry wait for telegram.GetUpdates
* Add support to set telegram robot token from UI
* Change validator of UserSettingTelegramUserID
* Add support to set telegram user id from UI
* Fix typescript check
* Add validator for SystemSettingTelegramRobotTokenName
* Optimize error notice while config telegram params
* Change for review
* Fix telegram user id could not be empty
* Fix telegram robot could not be empty
* Fix for eslint (again)
* Update web/src/components/Settings/SystemSection.tsx
---------
Co-authored-by: Athurg Feng <athurg@gooth.org>
Co-authored-by: boojack <stevenlgtm@gmail.com>
* Add support for `publicid` in PathTemplate
* Use `publicid` by default instead of `filename` in filesystem
* Fix blank string of `systemSettingLocalStoragePath` affect incorrectly
* Add ext name to compatible with OS's preview
* Optimize code for systemSettingLocalStoragePath empty
---------
Co-authored-by: Athurg Feng <athurg@gooth.org>
* Add image thumbnail instead of an icon
* Change thumbnail size of dashboard to fixed
* Fix for eslint-checks
* Fix for eslint-checks
* Replace css with tailwind
* Remove the parent div used for style
* Show preview while click on the resource
* Change for review Suggested by @Zeng1998
---------
Co-authored-by: Athurg Feng <athurg@gooth.org>
* Add a common function for resize image blob
* Auto generate thumbnail for image resources
* Auto thumbnail support for fetch image resources
* Add support for image thumbnail in view
* Fix missing error check
* Fix es-lint check
* Fix uncontrolled data used in path expression
* Remove thumbnail while origin resource been deleted
* Change the thumbnail's storage path
---------
Co-authored-by: Athurg Feng <athurg@gooth.org>
* fix: unexpected empty lines when copying-pasting
* add ref
* feat: support to filter plain link
* eslint
* fix the typo
* fix the typo
* unified the import path
* Add preliminar Windows support for both
development and production environments.
Default profile.Data will be set to "C:\ProgramData\memos" on Windows.
Folder will be created if it does not exist, as this behavior is
expected for Windows applications.
System service installation can be achieved with third-party tools,
explained in docs/windows-service.md.
Not sure if it's worth using https://github.com/kardianos/service
to make service support built-in.
This could be a nice addition alongside #1583 (add Windows artifacts)
* feat: improve Windows support
- Fix local file storage path handling on Windows
- Improve Windows dev script
* feat: add max upload size setting to UI & more
- feat: add max upload size setting to UI
- feat: max upload size setting is checked on UI during upload,
but also enforced by the server
- fix: overflowing mobile layout for Create SSO, Create Storage
and other Settings dialogs
- feat: add HelpButton component with some links to docs were appropriate
- remove LearnMore component in favor of HelpButton
- refactor: change some if/else to switch statements
- refactor: inline some err == nil checks
! Existing databases without the new setting 'max-upload-size-mib'
will show an upload error, but this can be user-fixed by simply
setting the value on system settings UI.
* improvements requested by @boojack
* update zh-Hans translations
* minor update
* update instruction part
* print json_value for debugging purpose
* update post requests related
* machine translate with chunks to get around {{field}}
Hiding dialogs result in the body to stay frozen due to mounting behaviour of the dialog, but using 'X' button hides the dialog and won't let user scroll any further. Removing overflow behaviour during hiding procedure will improve User Experience.
* Add option to hide Ask AI and update dev version
* Fix formatting according to eslint
* Replace option to hide Ask AI with auto hiding based on config
* Fix golangci-lint errors
* Remove showAskAI logic from OpenAPI
* feat: improve i18n support as a whole
- Remove dayjs in favor of /helpers/datetime.ts, which uses
Intl.DateTimeFormat and Date. Dayjs is not exactly i18n friendly
and has several locale related opened issues.
- Move/refactor date/time code from /helpers/utils.ts to
/helpers/datetime.ts.
- Fix Daily Review weekday not changing according to selected date.
- Localize Daily review weekday and month.
- Load i18n listed strings from /locales/{locale}.json in a dynamic way.
This makes much easier to add new locales, by just adding a properly
named json file and listing it only in /web/src/i18n.ts and
/api/user_setting.go.
- Fallback languages are now set in /web/src/i18n.ts.
- Full language codes are now preffered, but they fallback to 2-letter
codes when not available.
- The locale dropdown is now populated dynamically from the available
locales. Locale names are populated by the browser via
Intl.DisplayNames(locale).
- /web/src/i18n.ts now exports a type TLocale from availableLocales
array. This is used only by findNearestLanguageMatch(). As I was unable
to use this type in ".d.ts" files, I switched the Locale type from
/web/src/types/i18n.d.ts to string.
- Move pretty much all hardcoded text strings to i18n strings.
- Add pt-BR translation.
- Remove site.ts and move its content to a i18n string.
- Rename zh.json to zh-Hans.json to get the correct language name on
selector dropdown.
- Remove pt_BR.json and replace with pt-BR.json.
- Some minor layout spacing fixes to accommodate larger texts.
- Improve some error messages.
* Delete .yarnrc.yml
* Delete package-lock.json
* fix: 158:28 error Insert `⏎` prettier/prettier
* add i18n
* add base e2e test
* add multiple test for e2e
* extract the funciton of write memo
* change test sturct
* deteled unused dir
* use fixture
* add fixture
* restruced the project
* feat: add workflow
* feat: change playwright test position
* feat: change playwright test position
* using yarn intead of npm
* change install method
* only enable sign in test
* adjust the order of test
* change report pos
* fix style of e2e workflow
* add review test
* unify locale
* randome write content
* change report pos
* reduce unused wait time
* reduce unused folder
* stash
* merge upstream locale
* change test name
* add test item
* change action name
* add lanuage setting
* add shotscreen
* change name of test
* fix the error of import dep
* fix the error of import dep
* fix the error of filename
* fix the format of workflow
* fix the name error of test case
* feat: change the describe of test case
* feat: remove unused test
* feat: change the fixtures name
* feat: remove unused config
* feat: change docker action
* feat: change the generate method
* feat: extrace screenshot
* feat: change extra path
* feat: change extra path
* feat: screenshot and upload
* feat: change upload filename
* feat: change login method
* feat: change e2e method
* feat: change e2e test
* feat: add wait for login
---------
Co-authored-by: CorrectRoadH <a778917369@gmail.comå>
refactor and update ko.json
- added missing translation keys into ko.json
- synced the JSON key order of ko.json with en.json
- removed unused translation data
* feat: add support for resource page on frontend
* [WIP]feat: add backend support for limit and offset search
* feat: add reducer to add resource
* support fetch all resource when first search
* beautify the fetch ui
* restore file
* feat: add all resource before clear resource
* eslint
* i18n
* chore:change the nane
* chore: change the name of param
* eslint
* feat: setIsComplete to true when first loading resource fully
* fix the bug of fetch
* feat change finally to then
* feat: add await and async to clear and search
* feat: return all resource when fetch
* chore: change variable name
* Update web/src/pages/ResourcesDashboard.tsx
Co-authored-by: boojack <stevenlgtm@gmail.com>
* fix missing const value
---------
Co-authored-by: boojack <stevenlgtm@gmail.com>
* stash: file upload
* feat: add style button
* feat: add style of list
* feat: add checkbox for list
* feat: support file upload by drag
* feat: beautify the ui
* feat: support file upload
* stash
* fix: the resource is incorrectly when upload multiple files
* feat: beautify the ui
* chore: reduce unused line
* stash
* chore: deleted unused line
* chore: deleted unused line
* chore
* chore: change the function declare
* feat: support to prompt file is too large
* feat:drop prompt to cover all element
* fix: eslint
* fix: the name of i18n
* chore: refactor the import deps
* feat: beautify the ui
* feat: support the style of button
* feat: beautify the switch ui
* chore: refactor the component
* chore: refactor the resource item dropdown
* feat: use memo to reduce unused computing in drop
* feat: use memo to reduce the calc of resource list
* chore:change name
* Update web/src/locales/en.json
Co-authored-by: boojack <stevenlgtm@gmail.com>
* chore: the import of deps
* fix: the window size of fecting data
* feat: support to save the state of style
* remove pnpm-lock
* merge main
* chore: simpify the statement
* fix: delete conflict marker
* feat: add i18n for select
* feat:support dark mode
* eslint
* feat: add more file icon
* feat: delete the storage of resource style
* Update web/src/components/ResourceCover.tsx
Co-authored-by: boojack <stevenlgtm@gmail.com>
---------
Co-authored-by: boojack <stevenlgtm@gmail.com>
* stash: file upload
* feat: add style button
* feat: add style of list
* feat: add checkbox for list
* feat: support file upload by drag
* feat: beautify the ui
* feat: support file upload
* stash
* fix: the resource is incorrectly when upload multiple files
* feat: beautify the ui
* chore: reduce unused line
* stash
* chore: deleted unused line
* chore: deleted unused line
* chore
* chore: change the function declare
* feat: support to prompt file is too large
* feat:drop prompt to cover all element
* fix: eslint
* fix: the name of i18n
* chore: refactor the import deps
* feat: beautify the ui
* feat: support the style of button
* feat: beautify the switch ui
* chore: refactor the component
* chore: refactor the resource item dropdown
* feat: use memo to reduce unused computing in drop
* feat: use memo to reduce the calc of resource list
* chore:change name
* Update web/src/locales/en.json
Co-authored-by: boojack <stevenlgtm@gmail.com>
* chore: the import of deps
* fix: the window size of fecting data
* feat: support to save the state of style
* remove pnpm-lock
* merge main
* chore: simpify the statement
* fix: delete conflict marker
* feat: add i18n for select
* feat:support dark mode
* eslint
* feat: delete the storage of resource style
---------
Co-authored-by: boojack <stevenlgtm@gmail.com>
* stash: file upload
* feat: support file upload by drag
* feat: beautify the ui
* feat: support file upload
* stash
* fix: the resource is incorrectly when upload multiple files
* feat: beautify the ui
* chore: reduce unused line
* stash
* chore: deleted unused line
* chore: deleted unused line
* chore
* chore: change the function declare
* feat: support to prompt file is too large
* feat:drop prompt to cover all element
* fix: eslint
* fix: the name of i18n
* chore: refactor the import deps
* feat: beautify the ui
* Update web/src/locales/en.json
Co-authored-by: boojack <stevenlgtm@gmail.com>
* chore: the import of deps
* fix: the window size of fecting data
---------
Co-authored-by: boojack <stevenlgtm@gmail.com>
* feat: refator the file dashboard
* feat: support select resouce file
* feat: suppor delete select files
* feat: support share menu, implement rename and delete
* chore: change the color of hover
* chore: refator file dashboard to page
* feat: add i18n for button
* feat: beautify the button
* fix: the error position of button
* feat: only select when click circle instead of whole card
* feat: beautify file dashboard
* chore: factor the filecard code
* feat: using dropdown component intead of component
* feat: add i18n for delete selected resource button
* feat: delete the unused style of title
* chore: refactor file cover
* feat: support more type file cover
* feat: use memo to reduce unused computing in filecover
* feat: when no file be selected, click the delete will error
* feat: store the select resource id instead of source to save memory
* chore: delete unused code
* feat: refactor the file card
* chore: delete unused style file
* chore: change file to resource
* chore: delete unused import
* chore: fix the typo
* fix: the error of handle check click
* fix: the error of handle of uncheck
* chore: change the name of selectList to selectedList
* chore: change the name of selectList to selectedList
* chore: change the name of selectList to selectedList
* chore: delete unused import
* feat: support Responsive Design
* feat: min display two card in a line
* feat: adjust the num of a line in responsive design
* feat: adjust the num of a line to 6 when using md
* feat: add the color of hover source card when dark
* chore: refactor resource cover css to reduce code
* chore: delete unnessnary change
* chore: change the type of callback function
* chore: delete unused css code
* feat: add zh-hant i18n
* feat: change the position of buttons
* feat: add title for the icon button
* feat: add opacity for icon
* feat: refactor searchbar
* feat:move Debounce to search
* feat: new resource search bar
* feat: reduce the size of cover
* support file search
* Update web/src/pages/ResourcesDashboard.tsx
Co-authored-by: boojack <stevenlgtm@gmail.com>
* Update web/src/components/ResourceCard.tsx
Co-authored-by: boojack <stevenlgtm@gmail.com>
* chore: reduce css code
* feat: support lowcase and uppercase search
* chore: reserve the searchbar
* feat: refator resource Search bar
* chore: change the param name
* feat: resource bar support dark mode
* feat: beautify the UI of dashboard
* chore: extract positionClassName from actionsClassName
* feat: reduce the length of search bar
---------
Co-authored-by: boojack <stevenlgtm@gmail.com>
* feat: Allow users to customize the refresh time for Daily Reviews
* feat: Allow users to customize the refresh time for Daily Reviews. Lint fix
* feat: Allow users to customize the refresh time for Daily Reviews. change daily review time offset to include only hour
* feat: Allow users to customize the refresh time for Daily Reviews. Retrigger to try CodeQL pass.
---------
Co-authored-by: Aswath S <aswath.s@thoughtworks.com>