parsa aghaei
713a714dd2
fix(admin-panel): add RTL direction to Toaster and skip refresh when unauthenticated
Deploy Canina / deploy (push) Failing after 29s
2026-08-08 18:18:27 +03:30
parsa aghaei
ea3bdf1ea3
feat(enamad): dynamic enamad HTML embedding with exact code fallback & admin edit support
Deploy Canina / deploy (push) Failing after 29s
2026-08-08 18:12:42 +03:30
parsa aghaei
74b3d24622
fix(api/auth): allow public GET on ui-texts & scientific-terms, fix refresh attempt loop, remove duplicate error toasts and prevent unwanted modal popups
Deploy Canina / deploy (push) Failing after 28s
2026-08-08 18:11:17 +03:30
9f11d8fb2d
chore(workspace): eradicate all tsc errors and eslint warnings across frontend, admin, and backend
Deploy Canina / deploy (push) Failing after 29s
2026-08-07 07:39:26 +03:30
f70c1fe3c2
feat(admin): implement Phase B management modules based on frontend integration contract
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 23:58:10 +03:30
102494cef0
import for useeffect added to sidebar
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 22:33:12 +03:30
ad3f149789
feat(devops,docs,verify): implement Phase 4 CI pipeline, OpenAPI synchronization, and E2E verification matrix
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 22:27:56 +03:30
27abaa3e05
fix(admin): use type-only import for ComponentType in adminRoutes.tsx
Deploy Canina / deploy (push) Failing after 28s
2026-08-06 22:05:21 +03:30
eaa2621a17
feat(admin): implement Phase 3 Admin SPA Router and Dual-Token Auth integration
2026-08-06 22:02:39 +03:30
parsa aghaei
bac9a02c49
fix(reports): add optional value property to TopCouponItem interface [TASK-26.20]
Deploy Canina / deploy (push) Failing after 27s
2026-08-05 15:48:51 +03:30
parsa aghaei
053d6f06d8
fix(types): resolve type errors in ReportData, SmsService, and GetProductsDto
Deploy Canina / deploy (push) Waiting to run
2026-08-05 15:48:11 +03:30
parsa aghaei
187aa7c962
feat: add excel export to reports and video view counter increment [TASK-26.20]
Deploy Canina / deploy (push) Waiting to run
2026-08-05 14:42:38 +03:30
parsa aghaei
7f3c04acf5
fix(auth): complete logout state cleanup and admin protected route token validation [TASK-26.8] [TASK-26.9]
2026-08-05 14:39:31 +03:30
parsa aghaei
ce30ade808
feat: complete all remaining backlog tasks 25.1 to 25.14
Deploy Canina / deploy (push) Waiting to run
2026-08-05 14:37:44 +03:30
parsa aghaei
070c68e4c9
feat(admin): complete full user management page with detail modal and profile edit [TASK-25.3]
2026-08-05 14:28:42 +03:30
parsa aghaei
81a2837c04
feat: restore profile pets dropdown, fix logout handler, cleanup task titles, fix maintenance guard, add catalog settings & shipping fee calculation
Deploy Canina / deploy (push) Waiting to run
2026-08-05 14:17:13 +03:30
parsa aghaei
b6453d05b9
fix(admin): fix Topbar profile dropdown and logout action [TASK-26.1]
Deploy Canina / deploy (push) Failing after 28s
2026-08-03 17:23:16 +03:30
parsa aghaei
71ff923d35
fix(admin): relocate dosage logic to general tab & clean up syntax
2026-08-03 16:53:40 +03:30
parsa aghaei
c6aa77f7c9
feat(admin): add product buy price field, dual price/percentage margin calculator, and security sanitization [TASK-BUYPRICE]
2026-08-03 12:04:27 +03:30
parsa aghaei
38261c2f76
fix(admin): update Category resolution type check in Products.tsx
2026-08-03 12:02:46 +03:30
parsa aghaei
68c7656964
fix(admin): safely resolve category name for Category | string union type on product list row
2026-08-03 12:00:27 +03:30
parsa aghaei
bf213bb05d
fix(admin): resolve mediaImageError state and category name type errors in Products.tsx
2026-08-03 11:58:06 +03:30
parsa aghaei
262c759055
fix(admin): use onMouseDown for symptom autocomplete options to prevent focus blur loss
2026-08-03 11:55:47 +03:30
parsa aghaei
9cc1b74d72
feat(admin): add Info Tooltips and flexible discount rule settings to Coupons manager [TASK-23.1, TASK-24.1]
2026-08-03 11:52:32 +03:30
parsa aghaei
c3ca9ccaa2
feat(admin): support dual URL link and Media Manager picker for multimedia attachments [TASK-22.1]
2026-08-03 11:51:48 +03:30
parsa aghaei
8505081b2e
feat(admin): add selective auto-complete symptoms tagging to product editor [TASK-20.1]
2026-08-03 11:50:39 +03:30
parsa aghaei
e30452d6cb
feat(admin): add Dosage Calculator Fields logic builder in product editor [TASK-18.1]
2026-08-03 11:49:58 +03:30
parsa aghaei
2f37d0a92c
feat(catalog/maintenance): add granular sub-settings for Catalog Mode and Maintenance Page redirect [TASK-17.1]
2026-08-03 11:49:38 +03:30
parsa aghaei
d52d1e57f2
feat(auth/contact/sms): sync contact submissions in admin, refine SMS error logs, trigger Auth Modal on 401 [TASK-13.1, TASK-14.1, TASK-15.1]
2026-08-03 11:47:50 +03:30
parsa aghaei
7e072793eb
fix(types): allow File or ChangeEvent in handleFileUpload and ensure safe localStorage in userStore
2026-08-03 10:16:57 +03:30
parsa aghaei
c1b2f416ed
fix(lint&types): resolve all lint warnings, typecheck errors and effect state updates across frontend application and admin panel
2026-08-03 10:13:11 +03:30
parsa aghaei
920dd532e8
fix(admin-panel): resolve all ESLint errors, types, and hooks lifecycle warnings
2026-08-02 17:08:01 +03:30
parsa aghaei
a1f0640483
fix(linter): resolve all linter rules and type errors across 3 subprojects
2026-08-02 09:39:53 +03:30
parsa aghaei
d784f3fcc7
feat(admin): update dashboard real analytics & wiki related products (TASK-2.21, TASK-2.22, TASK-2.23)
2026-08-02 09:28:17 +03:30
parsa aghaei
03d7bb2f68
feat(admin): add topbar user profile dropdown & realtime notifications (TASK-2.17, TASK-2.19, TASK-2.20)
2026-08-02 09:26:56 +03:30
parsa aghaei
88521c6bac
feat(settings): add Maintenance Mode, Catalog Mode, Brand Identity & UI Text management (TASK-2.14, TASK-2.15, TASK-2.16)
2026-08-02 09:26:06 +03:30
parsa aghaei
38c1e287dc
feat(admin): pagination in media gallery & standard reusable components (TASK-2.8, TASK-2.10, TASK-2.12)
2026-08-02 09:25:01 +03:30
parsa aghaei
e2e9615bd8
feat(media): implement persistent storage & media SEO fields (altText, title, description, caption) (TASK-2.5, TASK-2.6)
2026-08-02 09:23:30 +03:30
parsa aghaei
357fb73d5e
feat(product): add product gallery images and multimedia fields podcastUrl/videoUrl/pdfUrl (TASK-2.2, TASK-2.3, TASK-2.4)
2026-08-02 09:21:27 +03:30
parsa aghaei
f693b05390
feat(admin): replace browser alert/confirm with toasts & modal dialogs (TASK-2.13) and add Drag & Drop upload (TASK-2.1)
2026-08-02 09:19:33 +03:30
parsa aghaei
9870516256
feat: add BackButton, protect UserDashboard auth, fix product loading metadata title and add WebOTP auto-submit
2026-08-01 18:32:33 +03:30
parsa aghaei
2ce24b0473
fix(admin): cleanup price display input, upgrade pagination component and extend roles guard for CMS & B2B
2026-08-01 18:30:14 +03:30
parsa aghaei
2aea3bded4
feat(contact): implement contact form submission, admin management and dynamic contact info
2026-08-01 18:28:19 +03:30
parsa aghaei
7bf6c47ee6
feat: B2B wholesale pricing per product & discount setting, dynamic payment gateways enable/disable & coming soon badges, B2B phone verification, trust seals menu link, dynamic contact info
Deploy Canina / deploy (push) Failing after 15s
2026-08-01 12:47:41 +03:30
parsa aghaei
05fe9b5594
fix(build): add devDependencies flag to Dockerfile for vite build
Deploy Canina / deploy (push) Successful in 4m56s
2026-08-01 11:22:55 +03:30
parsa aghaei
9c8286c63f
fix(admin): resolve 500 on missing product update and add direct image URL & paste support
Deploy Canina / deploy (push) Has been cancelled
2026-07-29 16:42:23 +03:30
parsa aghaei
a3291cc468
feat(agency): implement Farsi error handling, trust seals page, and MeliPayamak SMS integration
Deploy Canina / deploy (push) Has been cancelled
2026-07-29 16:40:42 +03:30
parsa aghaei
501addc909
fix: CI/CD pipeline, dynamic API URLs, Dockerfile fixes
...
Deploy Canina / deploy (push) Successful in 5m39s
- Backend Dockerfile: add chown for node_modules (Prisma permissions fix)
- Frontend Dockerfile: add ARG/ENV for NEXT_PUBLIC_API_URL, VITE_API_URL
- nginx.conf: template with __PLACEHOLDERS__ for per-env substitution
- deploy.yml: SSH keepalive, sudo for VPN
- api.ts: dynamic API URL via env vars instead of hardcoded
- next.config.ts: rewrite only in development mode
- scripts: deploy.sh, compose.stage.yml, compose.prod.yml
2026-07-28 16:37:05 +03:30
parsa aghaei
027f169830
fix(api): update API base URL to use env vars and target api.canina.ir / stageapi.canina.ir
Deploy Canina / deploy (push) Has been cancelled
2026-07-27 19:14:35 +03:30
parsa aghaei
5c4a553f0c
fix(catalog-hscroll-cms-buttons): add sleek custom horizontal scrollbar for catalog categories and fix high-contrast purple styling for admin CMS buttons
2026-07-27 12:36:23 +03:30
parsa aghaei
3e9fffe71f
feat(cms-builder-videos-hydration-catalog): resolve IDE Prisma types, fix Header hydration error, add Media Upload & Aparat embed to Admin Videos, fix Catalog scrollbar/spacing, and overhaul CMS into section-by-section Visual Page Builder
2026-07-27 12:25:36 +03:30
parsa aghaei
52f0caccfc
feat(videos): add Video module in NestJS, build Video CRUD in Admin Panel, sync dynamic video fetching on frontend, and update catalog links to /catalog
2026-07-27 11:54:16 +03:30
parsa aghaei
85d5a11a5e
feat(refill): overhaul subscription model to Smart Course Reservation & 5% Next-Order Loyalty Voucher reward
2026-07-27 11:46:45 +03:30
parsa aghaei
b5650c4cbb
feat(refill): map refill state in cartStore, clarify free loyalty 5% discount UX, and render Refill badges across full app and admin
2026-07-27 11:39:23 +03:30
parsa aghaei
24c361c4ff
feat(admin): overhaul orders management page with interactive modal, postal tracking code editor, inline status selector and invoice print
2026-07-27 11:27:47 +03:30
parsa aghaei
55f5a5570c
fix(prisma,admin,auth): regenerate prisma client for isRefill, make charity round step configurable in admin, and fix root cause pet store reset
2026-07-26 20:32:15 +03:30
parsa aghaei
4979d4120c
fix(checkout,orders,admin): resolve guest checkout address bug, persist refill and charity in DB, and fix admin media thumbnail cropping
2026-07-26 20:11:26 +03:30
parsa aghaei
510c2f90de
feat(admin): add WholesaleApplications page for B2B clinic license review and role approval
2026-07-26 19:37:01 +03:30
parsa aghaei
a999627d28
feat(admin): build CMS management page for dynamic Hero Banners and Vet Testimonials
2026-07-26 19:31:36 +03:30
parsa aghaei
3cdf51f056
feat(admin): add wholesale user verification & role upgrade capabilities [TASK-109]
2026-07-26 14:58:08 +03:30
parsa aghaei
fd45910387
feat(admin): implement live global search, fixed position sidebar, click-to-navigate dashboard cards, and new orders count badge on sidebar
Deploy Canina / deploy (push) Failing after 2m37s
2026-07-15 19:33:33 +03:30
parsa aghaei
72650dba36
fix(admin/ui): resolve tooltip overlaps by opening downwards, fix layout shifts with fixed modal content height, and add getProductImageUrl helper to dynamically resolve hardcoded dev base image URLs
2026-07-15 18:26:58 +03:30
parsa aghaei
4860a0e2e3
feat(admin/seo): sticky google SERP simulator, tooltip hints on all fields, broken image layout fix, dynamic view online url helper and map slug parameter in application
2026-07-15 18:17:44 +03:30
parsa aghaei
ac4813ebde
feat(admin/seo): add Google SERP Simulator in SEO tab, View Online deep link in modal header & seed scientific taglines in database
2026-07-15 17:56:37 +03:30
parsa aghaei
8345410376
feat(admin): implement symptoms management in admin panel product form
2026-07-15 17:49:03 +03:30
parsa aghaei
4676f3a592
feat: phase2 - split product names (nameFa/nameEn) across frontend cards, admin panel, search, and cart
2026-07-15 14:33:31 +03:30
parsa aghaei
4d14885feb
feat: complete currency, font, new pages, footer logo, dynamic PDP layout and custom dosage titles
2026-07-14 20:03:25 +03:30
DevOps
a5b1b31ef8
ci: trigger deploy after SSH config fix
Deploy Canina / deploy (push) Failing after 1s
2026-07-13 13:13:52 +00:00
DevOps
1b2040c880
fix: production URLs for admin panel, seed __dirname, nginx.conf
Deploy Canina / deploy (push) Failing after 8m3s
2026-07-13 11:20:43 +00:00
parsa aghaei
5fe1b8f285
fix: move @import tailwindcss to top of index.css to restore styles on Vite 8
Deploy Canina / deploy (push) Failing after 5m2s
2026-07-13 11:32:23 +03:30
parsa aghaei
60939f14ea
chore: remove committed build artifacts (node_modules, dist, .next)
...
- Remove node_modules, dist, .next from git tracking
- Add .next and *.tsbuildinfo to .gitignore
- Remove Iranian mirrors from Dockerfiles (arvancloud.ir)
- Add npm ci step for dependency installation
- Ready for VPN-based internet access workflow
2026-07-12 13:24:33 +03:30
parsa aghaei
508356b8d3
feat: add Persian fonts, fix UI bugs, improve frontend quality
...
- Add local Persian fonts: Vazirmatn, Sahel, Shabnam, Lalezar, IranNastaliq
- Configure @font-face in globals.css with all font weights
- Set Vazirmatn as primary font, Lalezar for headings, Sahel for alt text
- Fix Hero image loading with crossOrigin and error fallback
- Fix SmartAdvisor disabled button contrast (WCAG compliance)
- Add visible labels for form inputs in SmartAdvisor step 1
- Fix UserDashboard null safety for walletBalance
- Fix announcement bar hydration mismatch (loading state guard)
- Fix UserDashboard null checks for profile fields
- Improve overall frontend robustness and data-loading guards
2026-07-11 19:48:43 +03:30
parsa aghaei
40d750ad4b
fix: hero image configurable via uiText + seed no longer overwrites admin values
...
- Hero.tsx reads hero_image_url from uiText store first, falls back to banners then default
- Seed script now only creates keys that don't exist (no overwrite)
- Added hero_image_url key to seed + admin panel UI texts groups
- Reverted DEFAULT_TEXTS initialization (caused hydration mismatch)
- settingsStore back to empty init, fetchSettings populates from API
2026-07-11 18:25:59 +03:30
parsa aghaei
53301705da
feat: add Media Manager page to admin panel
...
- Standalone gallery page at /media with grid view
- Upload via button, drag & drop, or Ctrl+V paste
- Delete and copy URL per image
- Full-size image preview modal
- File info (name, size, date)
- Search/filter by filename
2026-07-11 17:24:25 +03:30
parsa aghaei
1a0c98a34e
feat: dynamic UI texts system + admin panel editor + Vazirmatn local font + bug fixes
...
- Add getText() system for all homepage sections (Header, Hero, FeaturedProducts, SmartAdvisor, VetGallery, Footer)
- Add UITexts admin page in frontend/admin-panel with search, group collapse, per-key save
- Add seed-ui-texts.ts with 102 texts in 9 groups
- Add local VazirmatnVariable.woff2 font, remove CDN + Inter references
- Fix hero image path, productService return type { data, meta }
- Fix ArchivePage pagination + CATEGORIES list + breadcrumbs
- Fix BlogPage/Wiki page links + brightness-0 invert removal
- Fix IngredientWiki search + product links + placeholder
- Fix all getProducts() callers for { data } destructuring
- Fix sitemap.ts, CartDrawer, B2BPortal, CheckoutPage type issues
- Add .gitignore for /fonts/ and /backend/uploads/
2026-07-11 17:19:55 +03:30
parsa aghaei
3aebb9e176
fix(admin): show original filename and selected state in image gallery
...
- Add filename label and upload date under each thumbnail in MediaSelector
- Highlight currently selected image with purple border and badge
- Add selectedUrl prop to MediaSelector for visual indication
- Show image filename in product form Media tab
- Add helper text for clipboard paste and gallery selection
2026-07-11 15:45:17 +03:30
parsa aghaei
7615aa0e51
fix: resolve seed encoding, search param, and wiki data source issues
...
- Fix seed-products.ts TS error (implicit any) and BOM handling
- Re-run full seed to restore correct Persian encoding in DB
- Fix productService query→search param mismatch
- Fix IngredientWiki hardcoded port 4000→use settingsStore
- Restore seed-products-data.json from git after accidental corruption
2026-07-11 15:40:49 +03:30
parsa aghaei
cd17a532d9
fix: resolve backend TS compilation errors, startup order, and add clipboard paste upload
...
- Fix products.service.ts: ingredients -> ingredientList (Prisma relation name)
- Fix seed-blogs.ts: template literal refactor (array join) to avoid esbuild parse error
- Fix seed-custom.ts: category string -> connectOrCreate relation
- Add start-dev.js: sequential startup (backend first, then frontends)
- Add Ctrl+V paste upload to admin MediaSelector component
- Create missing images/vets/ and images/slider/ directories
2026-07-11 13:51:12 +03:30
parsa aghaei
3dedc89ee1
تغییرات کلی در backend و frontend
2026-07-11 12:30:17 +03:30
1c07efcc91
design: update color palette to match official brand and add gold top banner
2026-07-10 17:30:01 +03:30
f69537a688
feat: rename brand from canina to canino across codebase
2026-07-10 16:32:31 +03:30
2851ef8a25
feat: complete backend swagger annotations, admin pages pagination, and frontend application fixes
2026-07-10 16:13:52 +03:30
82ab454647
Fix Admin panel categories modal, add error handling, enforce cursor-pointer globally
2026-06-12 21:57:09 +03:30
69502fc380
feat: implement advanced reports, pagination for all tables, global settings, and discounts modules
2026-06-12 16:28:06 +03:30
a7ebb8d792
feat: complete admin panel major functionalities including responsive layout, recharts, custom modals, inline editing, and loading states
2026-06-12 16:19:57 +03:30
ee041d4e52
fix: resolve Hyper-V reserved port collisions and Tailwind v4 CSS
2026-06-12 14:18:55 +03:30
fa7333e93f
fix: update postcss config and lockfiles
2026-06-12 14:09:30 +03:30
d430a341f0
fix: resolve unclosed block in index.css
2026-06-12 14:00:36 +03:30
0b698859d9
fix: resolve linter error in products page
2026-06-12 13:41:06 +03:30
beb8317fad
feat: add order management page
2026-06-12 13:36:54 +03:30
060dc39fdd
feat: add product catalog management page
2026-06-12 13:36:17 +03:30
aea6fa4127
feat: add user management page
2026-06-12 13:35:42 +03:30
4dc8786847
feat: add admin login page
2026-06-12 13:35:05 +03:30
222581c6a3
feat: setup admin layout and base routing
2026-06-12 13:34:25 +03:30
7fcfbda8cd
chore: configure tailwindcss for admin-panel
2026-06-12 13:30:25 +03:30
95887738ea
chore: initialize admin-panel react project
2026-06-12 13:25:34 +03:30