* 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 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}}
* 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
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: 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>
Translated using Weblate (Turkish)
Currently translated at 19.5% (41 of 210 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 33.3% (70 of 210 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (210 of 210 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (210 of 210 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (210 of 210 strings)
Translated using Weblate (Turkish)
Currently translated at 1.4% (3 of 210 strings)
Translated using Weblate (Turkish)
Currently translated at 0.4% (1 of 210 strings)
Translated using Weblate (Turkish)
Currently translated at 0.0% (0 of 0 strings)
Added translation using Weblate (Turkish)
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (210 of 210 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 91.4% (192 of 210 strings)
Translate-URL: https://hosted.weblate.org/projects/memos/web/es/
Translate-URL: https://hosted.weblate.org/projects/memos/web/nl/
Translate-URL: https://hosted.weblate.org/projects/memos/web/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/memos/web/sv/
Translate-URL: https://hosted.weblate.org/projects/memos/web/tr/
Translate-URL: https://hosted.weblate.org/projects/memos/web/zh_Hant/
Translation: memos/web
Co-authored-by: Felipe Nogueira <contato.fnog@gmail.com>
Co-authored-by: Jasper Platenburg <jasperdgp@outlook.com>
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Co-authored-by: Onur Ravli <onur@ravli.co>
Co-authored-by: SiriYang <www.yangxinruei@qq.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translated using Weblate (Portuguese (Brazil))
Currently translated at 25.7% (54 of 210 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 0.0% (0 of 0 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (210 of 210 strings)
Added translation using Weblate (Portuguese (Brazil))
Translate-URL: https://hosted.weblate.org/projects/memos/web/pl/
Translate-URL: https://hosted.weblate.org/projects/memos/web/pt_BR/
Translation: memos/web
Co-authored-by: Felipe Nogueira <contato.fnog@gmail.com>
Co-authored-by: Piotr Wik <p_00@o2.pl>
Translated using Weblate (Polish)
Currently translated at 99.0% (208 of 210 strings)
Translate-URL: https://hosted.weblate.org/projects/memos/web/pl/
Translation: memos/web
Co-authored-by: Piotr Wik <p_00@o2.pl>
Translated using Weblate (Polish)
Currently translated at 97.1% (204 of 210 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (210 of 210 strings)
Translate-URL: https://hosted.weblate.org/projects/memos/web/pl/
Translate-URL: https://hosted.weblate.org/projects/memos/web/zh_Hant/
Translation: memos/web
Co-authored-by: Piotr Wik <p_00@o2.pl>
Co-authored-by: SiriYang <www.yangxinruei@qq.com>
Translated using Weblate (Chinese (Traditional))
Currently translated at 94.2% (198 of 210 strings)
Translate-URL: https://hosted.weblate.org/projects/memos/web/zh_Hant/
Translation: memos/web
Co-authored-by: SiriYang <www.yangxinruei@qq.com>
Translated using Weblate (Polish)
Currently translated at 79.5% (167 of 210 strings)
Translated using Weblate (Polish)
Currently translated at 0.0% (0 of 0 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (210 of 210 strings)
Added translation using Weblate (Polish)
Translated using Weblate (Korean)
Currently translated at 98.5% (210 of 213 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 97.1% (207 of 213 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 92.0% (196 of 213 strings)
Translated using Weblate (Vietnamese)
Currently translated at 89.2% (190 of 213 strings)
Translated using Weblate (Ukrainian)
Currently translated at 91.5% (195 of 213 strings)
Translated using Weblate (Russian)
Currently translated at 91.5% (195 of 213 strings)
Translated using Weblate (Italian)
Currently translated at 91.5% (195 of 213 strings)
Translated using Weblate (French)
Currently translated at 90.1% (192 of 213 strings)
Translated using Weblate (Spanish)
Currently translated at 91.5% (195 of 213 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (210 of 210 strings)
Deleted translation using Weblate (English (United States))
Translated using Weblate (English (United States))
Currently translated at 0.0% (0 of 0 strings)
Added translation using Weblate (English (United States))
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (210 of 210 strings)
Translated using Weblate (Korean)
Currently translated at 98.5% (207 of 210 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 97.6% (205 of 210 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 93.3% (196 of 210 strings)
Translated using Weblate (Vietnamese)
Currently translated at 90.4% (190 of 210 strings)
Translated using Weblate (Ukrainian)
Currently translated at 92.8% (195 of 210 strings)
Translated using Weblate (Swedish)
Currently translated at 92.8% (195 of 210 strings)
Translated using Weblate (Russian)
Currently translated at 92.8% (195 of 210 strings)
Translated using Weblate (Dutch)
Currently translated at 85.7% (180 of 210 strings)
Translated using Weblate (Italian)
Currently translated at 92.8% (195 of 210 strings)
Translated using Weblate (French)
Currently translated at 91.4% (192 of 210 strings)
Translated using Weblate (Spanish)
Currently translated at 92.8% (195 of 210 strings)
Translated using Weblate (German)
Currently translated at 91.4% (192 of 210 strings)
Translate-URL: https://hosted.weblate.org/projects/memos/web/de/
Translate-URL: https://hosted.weblate.org/projects/memos/web/en_US/
Translate-URL: https://hosted.weblate.org/projects/memos/web/es/
Translate-URL: https://hosted.weblate.org/projects/memos/web/fr/
Translate-URL: https://hosted.weblate.org/projects/memos/web/it/
Translate-URL: https://hosted.weblate.org/projects/memos/web/ko/
Translate-URL: https://hosted.weblate.org/projects/memos/web/nl/
Translate-URL: https://hosted.weblate.org/projects/memos/web/pl/
Translate-URL: https://hosted.weblate.org/projects/memos/web/ru/
Translate-URL: https://hosted.weblate.org/projects/memos/web/sv/
Translate-URL: https://hosted.weblate.org/projects/memos/web/uk/
Translate-URL: https://hosted.weblate.org/projects/memos/web/vi/
Translate-URL: https://hosted.weblate.org/projects/memos/web/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/memos/web/zh_Hant/
Translation: memos/web
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Co-authored-by: Piotr Wik <p_00@o2.pl>
Co-authored-by: Yoshino-s <cy-cui@outlook.com>
Co-authored-by: boojack <stevenlgtm@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
* feat(system): support for disabling public memos
* fix(web/editor): set visibility to private on disabled public memos
* feat(server/memo): find/check if public memos are disabled
* fix(server/memo): handle error for finding system error
* fix(server/memo): unmarshal visiblity when getting system settings
* chore(web): move side effect imports to end
* Update memo.go
---------
Co-authored-by: boojack <stevenlgtm@gmail.com>