Files
nginx-ui/app
Jacky 32d261d8df Cloudflare DNS comments (#1549)
* feat(dns): add comment support for Cloudflare DNS records

- Add Comment field to Record and RecordInput structs in provider.go
- Update Cloudflare provider to read/write comments on DNS records
- Add comment to frontend API types (DNSRecord, RecordPayload)
- Display Comment column in DNSRecordTable for Cloudflare domains
- Add Comment input field in DNSRecordForm for creating/editing records
- Comments are now visible and editable in the DNS management interface

Closes: feature request for Cloudflare DNS record comments

Co-authored-by: Jacky <me@jackyu.cn>

* fix(dns): decouple comment column visibility and preserve comments in DDNS updates

- Add separate showComment prop to DNSRecordTable component
- DNSRecordManager now passes showComment prop to the table
- Comment column visibility is now independent from proxied column
- DDNS update now preserves existing record.Comment to prevent
  silently clearing comments during IP address updates

Fixes Bugbot review issues:
- Comment column incorrectly coupled to proxied visibility
- DDNS updates silently clear Cloudflare record comments

Co-authored-by: Jacky <me@jackyu.cn>

* fix: resolve code duplication and missing comment field in DNS records

- Extract isCloudflare computed property to eliminate duplication between
  showProxiedToggle and showCommentField in DNSRecordManager.vue
- Add Comment field to recordRequest struct in dto.go
- Map Comment field in toRecordInput function to properly pass comments
  from frontend to the DNS provider layer

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-02-07 17:08:11 +08:00
..

Vue 3 + TypeScript + Vite

This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.

Type Support For .vue Imports in TS

Since TypeScript cannot handle type information for .vue imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in .vue imports (for example to get props validation when using manual h(...) calls), you can enable Volar's Take Over mode by following these steps:

  1. Run Extensions: Show Built-in Extensions from VS Code's command palette, look for TypeScript and JavaScript Language Features, then right click and select Disable (Workspace). By default, Take Over mode will enable itself if the default TypeScript extension is disabled.
  2. Reload the VS Code window by running Developer: Reload Window from the command palette.

You can learn more about Take Over mode here.

Project Setup

pnpm install

Note: The default target of the api proxy is http://localhost:9000, if you need to change this, create the .env file in root directory and set your target in it.

VITE_PROXY_TARGET=http://localhost:9001

Compile and Hot-Reload for Development

pnpm dev

Note: The default port of the dev server is 3002, if you need to change this, create the .env file in root directory and set your port in it.

VITE_PORT=3456

Code Style Check

pnpm lint

Type Check

pnpm typecheck

Compile and Minify for Production

pnpm build