* Add 'hidden' field to comment and reply requests
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Add support for filtering comments with hidden
* Specify hidden=false and approved=true for anonymous users
* Set default hidden flag only if null in comments
* Add 'private reply' option to comment modals
* Add private tag for hidden comments and replies
* Allow hiding comments only
* Enhance comment visibility logic to allow owners to view hidden comments
* Remove hidden input for reply form
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Refine i18n
Signed-off-by: Ryan Wang <i@ryanc.cc>
---------
Signed-off-by: Ryan Wang <i@ryanc.cc>
Co-authored-by: John Niang <johnniang@foxmail.com>
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.21.x
#### What this PR does / why we need it:
Support async permission checks in route menu generator
example:
```ts
{
path: "",
name: "Foo",
component: Foo,
meta: {
title: "Foo",
searchable: true,
permissions: async () => {
const { data } = await checkPermission();
return data;
},
menu: {
name: "Foo",
group: "content",
icon: markRaw(MingcuteBook2Line),
priority: 4,
mobile: false,
},
},
}
```
#### Which issue(s) this PR fixes:
Fixes #
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
开发者相关:路由的权限检查支持函数
```
#### What type of PR is this?
/area ui
/area editor
/kind feature
/milestone 2.21.x
#### What this PR does / why we need it:
Support transfer external assets in the editor to the attachment library. Currently, it supports individual images, videos, and audio files.
<img width="845" height="167" alt="image" src="https://github.com/user-attachments/assets/930c6207-60f5-491a-afbd-c3f75b0d76a6" />
in progress:
- [ ] Batch transferring of all external assets.
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/2335
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
支持转存编辑器中的外部资源到附件库
```
#### What type of PR is this?
/kind bug
/area editor
#### What this PR does / why we need it:
将粘贴图片上传的选项,改为仅支持单个文件,此举可以解决会将 excel 转为图片的问题。
#### How to test it?
在文章中粘贴 excel 表格中的内容,查看是否转为表格。
#### Does this PR introduce a user-facing change?
```release-note
解决将粘贴 Excel 内容会变为图片的问题。
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.21.x
#### What this PR does / why we need it:
Comments now support rich text format display.
Still need to:
1. Test for XSS vulnerabilities
2. Optimize content styling
3. Editor
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/7671
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
评论内容支持以富文本格式显示
```
#### What type of PR is this?
/area core
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
This PR optimizes SEO tag generation with the following changes:
1. Site description and keywords settings now only apply to the homepage and are no longer inserted on other pages.
2. Added meta description tags for category archive pages, using the category description as content.
3. Improved the help text descriptions for SEO options in system settings.
#### Which issue(s) this PR fixes:
Fixes#7662
#### Does this PR introduce a user-facing change?
```release-note
优化页面的 SEO 标签的生成
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
This PR adds frontend support for checking if an slug already exists when creating post categories and tags.
<img width="701" alt="image" src="https://github.com/user-attachments/assets/050c2fc3-b82c-42f1-b58e-cf12c6852959" />
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/3172
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
创建文章分类和标签时支持检查别名是否已存在
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.21.x
#### What this PR does / why we need it:
Add thumbnail records viewing feature. The main goal is to keep track of failed thumbnail generations, making it easier to check if thumbnails were generated correctly and retry if needed.
<img width="1009" height="859" alt="image" src="https://github.com/user-attachments/assets/d968e416-0b88-45bf-a554-a0c1abcf97a0" />
<img width="1014" height="952" alt="image" src="https://github.com/user-attachments/assets/c5d1a11b-7acc-4ab5-a2da-cf9467cb6b70" />
#### Which issue(s) this PR fixes:
Fixes #
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
支持查看附件缩略图记录
```
* Support batch enable and disable
* documentation update
* Update ui/src/locales/en.yaml
Co-authored-by: Ryan Wang <i@ryanc.cc>
* Update ui/src/locales/zh-CN.yaml
Co-authored-by: Ryan Wang <i@ryanc.cc>
* Update ui/src/locales/zh-CN.yaml
Co-authored-by: Ryan Wang <i@ryanc.cc>
* Update ui/src/locales/zh-TW.yaml
Co-authored-by: Ryan Wang <i@ryanc.cc>
* Update ui/src/locales/zh-TW.yaml
Co-authored-by: Ryan Wang <i@ryanc.cc>
* batch handling and code reuse
* 1.还原批量删除的分批请求修改
2.使判断当前user启停用状态时条件更加宽松,以解决新增用户后该属性undefined而被过滤的问题。(之前测试时用的数据是之前构建并使用过单独启\禁用的)
---------
Co-authored-by: Ryan Wang <i@ryanc.cc>
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.21.x
#### What this PR does / why we need it:
Prevent code input content from being obscured in fullscreen mode
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/7574
#### Does this PR introduce a user-facing change?
```release-note
修复代码输入框在全屏时,底部内容被遮挡的问题。
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
Upgrade Prettier and related plugins, and simplify Prettier configuration.
Now, formatting for all packages will be managed by Prettier in the project root directory.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
Migrate to ESLint 9, use flat config file, and simplify ESLint configuration.
Now, linting for all packages will be managed by the configuration in the project root directory.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
None
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.21.x
#### What this PR does / why we need it:
Add support for copying full path ina attachment details modal.
<img width="1023" alt="image" src="https://github.com/user-attachments/assets/1b337655-e774-4c8a-8a32-3dac83cb77b2" />
#### Does this PR introduce a user-facing change?
```release-note
支持在附件详情弹窗中复制完整的附件地址。
```
#### What type of PR is this?
/area ui
/kind cleanup
/milestone 2.21.x
#### What this PR does / why we need it:
Remove vite build warnings about external libs.
<img width="1051" alt="image" src="https://github.com/user-attachments/assets/ae3e2471-37d5-481b-9a5f-281a6bfc3094" />
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.21.x
#### What this PR does / why we need it:
Encode post cover image URLs to prevent loading issue
<img width="736" alt="image" src="https://github.com/user-attachments/assets/0f298c64-37b3-4692-bdfa-922fd0e37dd9" />
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
Optimize the file suffixes of global dependencies by using content hashes instead of random strings. This ensures that when dependencies do not change, the output filenames remain the same after building, resulting in better cache utilization.
#### Does this PR introduce a user-facing change?
```release-note
优化 Console 的全局依赖文件名,以获得更好的缓存利用率。
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.21.x
#### What this PR does / why we need it:
Add iframe widget for dashboard
<img width="1212" alt="image" src="https://github.com/user-attachments/assets/e31bb9f2-5120-4565-ad2d-cf878b4c9d53" />
#### Does this PR introduce a user-facing change?
```release-note
为仪表盘添加网页嵌入小部件
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
Add empty state for some dashboard widgets
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
Refine i18n for dashboard widgets config form.
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/7508
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
1. Add ghost variant
2. Improve icon style
3. Refactoring css using scss functions
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind feature
/area ui
/milestone 2.21.x
#### What this PR does / why we need it:
<img width="508" alt="image" src="https://github.com/user-attachments/assets/3d7a9ac0-1e0a-4a4f-a658-03af7ff89904" />
#### Which issue(s) this PR fixes:
Fixes#7437
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
文章管理列表支持显示封面图
```
#### What type of PR is this?
/area ui
/kind feautre
/milestone 2.21.x
#### What this PR does / why we need it:
This PR adds a core Dashboard Widget called Stack Widget, which is used to stack a batch of components in the same location and supports manual or automatic switching.
<img width="737" alt="image" src="https://github.com/user-attachments/assets/de448cd8-cf62-4608-8523-88395298e734" />
<img width="827" alt="image" src="https://github.com/user-attachments/assets/fecaf637-9cb8-444a-888b-0ee2a9700bc7" />
#### Which issue(s) this PR fixes:
Fixes #
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
为仪表盘添加堆叠小部件
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
<img width="1202" alt="image" src="https://github.com/user-attachments/assets/cac050d2-b984-4b48-afe0-e18db220ec19" />
#### Does this PR introduce a user-facing change?
```release-note
将 Console 端文章列表的发布时间改为语义化时间
```
* refactor: redesign ui of comment management page
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Add comment detail modal
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Add reply detail modal
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Improve ui
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Add pending comments widget
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Improve ui
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Improve ui
Signed-off-by: Ryan Wang <i@ryanc.cc>
---------
Signed-off-by: Ryan Wang <i@ryanc.cc>
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.21.x
#### What this PR does / why we need it:
As per the title, the time shown in the plugin list is the installation time of the plugin. For usage purposes, this time seems to have no meaning or reference value.
#### Which issue(s) this PR fixes:
Fixes#7493
#### Does this PR introduce a user-facing change?
```release-note
移除插件列表的时间字段,并在插件详情中显示安装时间。
```
* fix: exclude reserved users from global search results
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Use labelSelector
Signed-off-by: Ryan Wang <i@ryanc.cc>
---------
Signed-off-by: Ryan Wang <i@ryanc.cc>
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.21.x
#### What this PR does / why we need it:
Resolve ui issue of global search component cause by https://github.com/halo-dev/halo/pull/7383
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/7478
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
修复 2.21.0-alpha.1 中 Console 的全局搜索样式问题。
```
* refactor: improve entity component layout for better device responsiveness
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Resolve CSS style conflicts
Signed-off-by: Ryan Wang <i@ryanc.cc>
* Update missing translaions
Signed-off-by: Ryan Wang <i@ryanc.cc>
---------
Signed-off-by: Ryan Wang <i@ryanc.cc>
#### What type of PR is this?
/kind feature
#### What this PR does / why we need it:
标签支持根据文章量排序
#### Does this PR introduce a user-facing change?
```release-note
标签支持根据文章量排序
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.20.x
#### What this PR does / why we need it:
Add support for batch deletion and batch marking as read for notifications in the UC.
<img width="763" alt="image" src="https://github.com/user-attachments/assets/a470ae2d-c4d2-4e6c-8c05-76f9f29e378d" />
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/7164
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
个人中心的消息管理支持批量删除和批量标记为已读
```
#### What type of PR is this?
/kind bug
/area editor
/milestone 2.20.x
#### What this PR does / why we need it:
解决默认编辑器中,粘贴后的图片,按下回车可能会导致重复触发上传的问题。
#### How to test it?
1. 在默认编辑器中粘贴一个图片。
2. 在图片前进行回车换行。
3. 查看图片是否被重复上传。
#### Which issue(s) this PR fixes:
Fixes#7206
#### Does this PR introduce a user-facing change?
```release-note
解决默认编辑器中附件会重复上传的问题
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.20.x
#### What this PR does / why we need it:
<img width="519" alt="image" src="https://github.com/user-attachments/assets/7c1f5636-ef85-489e-80ac-5199acf234a3" />
#### Which issue(s) this PR fixes:
Fixes#7260
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
在两步验证配置界面添加设备丢失相关的提示
```
#### What type of PR is this?
/kind feature
/milestone 2.20.x
/area ui
#### What this PR does / why we need it:
<img width="586" alt="image" src="https://github.com/user-attachments/assets/48d07035-7cb0-4e08-a7c1-4a5d91069d41" />
#### Which issue(s) this PR fixes:
Fixes#7267
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
支持批量撤销其他设备的登录状态
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.20.x
#### What this PR does / why we need it:
Added three Node.js scripts to help manage YAML translation files:
1. `find_missing_translations.mjs`: Identifies missing translations by comparing language files with the English base file and generates _missing_translations_*.yaml files.
2. `apply_missing_translations.mjs`: Merges translated entries from missing translation files into the main language files, while preserving untranslated entries for future work.
3. `fix_translations.mjs`: Removes keys that exist in language files but not in the English base file.
Usage Example:
```
# Find missing translations
node scripts/find_missing_translations.mjs
# Apply only the translated entries
node scripts/apply_missing_translations.mjs
# Remove extra keys
node scripts/fix_translations.mjs
```
These scripts streamline the translation workflow and help maintain consistency across language files.
#### Which issue(s) this PR fixes:
None
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.20.x
#### What this PR does / why we need it:
Optimize axios interceptor text/html content type detection
<img width="1461" alt="image" src="https://github.com/user-attachments/assets/6bb59a1d-81cc-4ea2-ac61-17e30eab4281" />
#### Does this PR introduce a user-facing change?
```release-note
None
```