feat: add PopupAd and AdminPopupAd interfaces with CRUD operations
- Introduced PopupAd and AdminPopupAd interfaces in common.ts. - Implemented encoding, decoding, and JSON conversion methods for both PopupAd and AdminPopupAd. - Added new RPC methods for managing PopupAds in admin.ts and me.ts, including list, create, update, and delete functionalities. - Integrated PopupAdsClient in grpcClient.ts for gRPC communication. - Updated auth store to handle real-time notifications for user-specific topics. - Modified tsconfig.json to include auto-imports and components type definitions.
This commit is contained in:
@@ -121,7 +121,8 @@
|
||||
"playerConfigs": "Player Configs",
|
||||
"domains": "Allowed Domains",
|
||||
"ads": "Ads & VAST",
|
||||
"danger": "Danger Zone"
|
||||
"danger": "Danger Zone",
|
||||
"popupAds": "Popup Ads"
|
||||
},
|
||||
"content": {
|
||||
"fallbackTitle": "Settings",
|
||||
@@ -157,6 +158,10 @@
|
||||
"danger": {
|
||||
"title": "Danger Zone",
|
||||
"subtitle": "Irreversible and destructive actions. Be careful!"
|
||||
},
|
||||
"popupAds": {
|
||||
"title": "Popup Ads",
|
||||
"subtitle": "Manage your popup ad settings and preferences."
|
||||
}
|
||||
},
|
||||
"notificationSettings": {
|
||||
@@ -501,6 +506,68 @@
|
||||
"failedDetail": "Failed to load or update VAST templates."
|
||||
}
|
||||
},
|
||||
"popupAds": {
|
||||
"createItem": "Add Popup Ad",
|
||||
"maxTriggersLabel": "Highest URL trigger limit per session ({{count}})",
|
||||
"emptyTitle": "No popup ads yet",
|
||||
"emptySubtitle": "Create a popup ad to start opening URLs or injecting scripts.",
|
||||
"types": {
|
||||
"url": "URL",
|
||||
"script": "Script"
|
||||
},
|
||||
"table": {
|
||||
"label": "Label",
|
||||
"type": "Type",
|
||||
"target": "Target",
|
||||
"maxTriggersPerSession": "Max triggers/session"
|
||||
},
|
||||
"dialog": {
|
||||
"createTitle": "Create Popup Ad",
|
||||
"editTitle": "Edit Popup Ad",
|
||||
"type": "Type",
|
||||
"label": "Label",
|
||||
"labelPlaceholder": "e.g., Ad Network 1",
|
||||
"url": "Destination URL",
|
||||
"urlPlaceholder": "https://example.com/landing-page",
|
||||
"script": "Script snippet",
|
||||
"scriptPlaceholder": "<script async src=\"//example.com/ad.js\"></script>",
|
||||
"maxTriggersPerSession": "Max popup triggers per session",
|
||||
"activeTitle": "Item status",
|
||||
"activeDescription": "Disable an item to keep it in the table without serving it.",
|
||||
"update": "Update",
|
||||
"create": "Create"
|
||||
},
|
||||
"info": {
|
||||
"urlTitle": "URL:",
|
||||
"urlDescription": "Opens in a new tab when viewer clicks.",
|
||||
"scriptTitle": "Script:",
|
||||
"scriptDescription": "Injects the script tag into the page (popunder networks, etc)."
|
||||
},
|
||||
"confirm": {
|
||||
"deleteMessage": "Are you sure you want to delete \"{{name}}\"?",
|
||||
"deleteHeader": "Delete Popup Ad",
|
||||
"deleteAccept": "Delete",
|
||||
"deleteReject": "Cancel"
|
||||
},
|
||||
"toast": {
|
||||
"labelRequiredSummary": "Label required",
|
||||
"labelRequiredDetail": "Please enter a label for this popup ad.",
|
||||
"valueRequiredSummary": "Value required",
|
||||
"valueRequiredDetail": "Please enter a URL or script snippet.",
|
||||
"maxTriggersRequiredSummary": "Trigger limit required",
|
||||
"maxTriggersRequiredDetail": "Please enter a max trigger count greater than 0 for URL popup ads.",
|
||||
"invalidUrlSummary": "Invalid URL",
|
||||
"invalidUrlDetail": "Please enter a valid URL.",
|
||||
"createdSummary": "Popup ad created",
|
||||
"createdDetail": "The popup ad has been added.",
|
||||
"updatedSummary": "Popup ad updated",
|
||||
"updatedDetail": "The popup ad has been updated.",
|
||||
"deletedSummary": "Popup ad deleted",
|
||||
"deletedDetail": "The popup ad has been removed.",
|
||||
"failedSummary": "Action failed",
|
||||
"failedDetail": "Failed to load or update popup ads."
|
||||
}
|
||||
},
|
||||
"profile": {
|
||||
"title": "Profile Information",
|
||||
"subtitle": "Manage your personal information and account details.",
|
||||
@@ -768,7 +835,7 @@
|
||||
},
|
||||
"overview": {
|
||||
"welcome": {
|
||||
"title": "Hello, {{{name}}}",
|
||||
"title": "Hello, {{name}}",
|
||||
"subtitle": "Here's what's happening with your content today."
|
||||
},
|
||||
"stats": {
|
||||
|
||||
@@ -121,7 +121,8 @@
|
||||
"playerConfigs": "Cấu hình trình phát",
|
||||
"domains": "Tên miền được phép",
|
||||
"ads": "Quảng cáo & VAST",
|
||||
"danger": "Vùng nguy hiểm"
|
||||
"danger": "Vùng nguy hiểm",
|
||||
"popupAds": "Popup Ads"
|
||||
},
|
||||
"content": {
|
||||
"fallbackTitle": "Cài đặt",
|
||||
@@ -157,6 +158,10 @@
|
||||
"danger": {
|
||||
"title": "Vùng nguy hiểm",
|
||||
"subtitle": "Hành động không thể hoàn tác và có tính phá hủy. Hãy cẩn thận!"
|
||||
},
|
||||
"popupAds": {
|
||||
"title": "Popup Ads",
|
||||
"subtitle": "Quản lý cài đặt và tùy chọn quảng cáo popup của bạn."
|
||||
}
|
||||
},
|
||||
"notificationSettings": {
|
||||
@@ -501,6 +506,68 @@
|
||||
"failedDetail": "Không thể tải hoặc cập nhật mẫu VAST."
|
||||
}
|
||||
},
|
||||
"popupAds": {
|
||||
"createItem": "Thêm popup ad",
|
||||
"maxTriggersLabel": "Giới hạn trigger URL cao nhất mỗi phiên ({{count}})",
|
||||
"emptyTitle": "Chưa có popup ad",
|
||||
"emptySubtitle": "Tạo popup ad để bắt đầu mở URL hoặc inject script.",
|
||||
"types": {
|
||||
"url": "URL",
|
||||
"script": "Script"
|
||||
},
|
||||
"table": {
|
||||
"label": "Nhãn",
|
||||
"type": "Loại",
|
||||
"target": "Đích",
|
||||
"maxTriggersPerSession": "Số trigger tối đa/phiên"
|
||||
},
|
||||
"dialog": {
|
||||
"createTitle": "Tạo popup ad",
|
||||
"editTitle": "Sửa popup ad",
|
||||
"type": "Loại",
|
||||
"label": "Nhãn",
|
||||
"labelPlaceholder": "ví dụ: Ad Network 1",
|
||||
"url": "URL đích",
|
||||
"urlPlaceholder": "https://example.com/landing-page",
|
||||
"script": "Đoạn script",
|
||||
"scriptPlaceholder": "<script async src=\"//example.com/ad.js\"></script>",
|
||||
"maxTriggersPerSession": "Số lần popup tối đa mỗi phiên",
|
||||
"activeTitle": "Trạng thái mục",
|
||||
"activeDescription": "Tắt một mục để giữ nó trong bảng mà không phân phối nó.",
|
||||
"update": "Cập nhật",
|
||||
"create": "Tạo"
|
||||
},
|
||||
"info": {
|
||||
"urlTitle": "URL:",
|
||||
"urlDescription": "Mở tab mới khi người xem nhấp.",
|
||||
"scriptTitle": "Script:",
|
||||
"scriptDescription": "Inject script tag vào trang cho các mạng popup/popunder."
|
||||
},
|
||||
"confirm": {
|
||||
"deleteMessage": "Bạn có chắc muốn xóa \"{{name}}\"?",
|
||||
"deleteHeader": "Xóa popup ad",
|
||||
"deleteAccept": "Xóa",
|
||||
"deleteReject": "Hủy"
|
||||
},
|
||||
"toast": {
|
||||
"labelRequiredSummary": "Thiếu nhãn",
|
||||
"labelRequiredDetail": "Vui lòng nhập nhãn cho popup ad này.",
|
||||
"valueRequiredSummary": "Thiếu giá trị",
|
||||
"valueRequiredDetail": "Vui lòng nhập URL hoặc đoạn script.",
|
||||
"maxTriggersRequiredSummary": "Thiếu giới hạn trigger",
|
||||
"maxTriggersRequiredDetail": "Vui lòng nhập số trigger lớn hơn 0 cho popup ad loại URL.",
|
||||
"invalidUrlSummary": "URL không hợp lệ",
|
||||
"invalidUrlDetail": "Vui lòng nhập URL hợp lệ.",
|
||||
"createdSummary": "Đã tạo popup ad",
|
||||
"createdDetail": "Popup ad đã được thêm.",
|
||||
"updatedSummary": "Đã cập nhật popup ad",
|
||||
"updatedDetail": "Popup ad đã được cập nhật.",
|
||||
"deletedSummary": "Đã xóa popup ad",
|
||||
"deletedDetail": "Popup ad đã được gỡ bỏ.",
|
||||
"failedSummary": "Thao tác thất bại",
|
||||
"failedDetail": "Không thể tải hoặc cập nhật popup ads."
|
||||
}
|
||||
},
|
||||
"profile": {
|
||||
"title": "Thông tin hồ sơ",
|
||||
"subtitle": "Quản lý thông tin cá nhân và chi tiết tài khoản của bạn.",
|
||||
@@ -767,7 +834,7 @@
|
||||
},
|
||||
"overview": {
|
||||
"welcome": {
|
||||
"title": "Xin chào, {{{name}}}",
|
||||
"title": "Xin chào, {{name}}",
|
||||
"subtitle": "Đây là tình hình nội dung của bạn hôm nay."
|
||||
},
|
||||
"stats": {
|
||||
|
||||
Reference in New Issue
Block a user