* 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
* 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
* 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>
* 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>
* 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>