masoodafar-web
e6d1d833ec
fix: update GW_URL in backoffice deployment to correct endpoint
Build and Deploy to Production / build-and-deploy (push) Successful in 15m40s
2026-03-15 13:04:13 +03:30
masoodafar-web
c0c7bb3ac5
fix: resolve MudBlazor v8 breaking changes (MUD0002 warnings)
...
Build and Deploy to Production / build-and-deploy (push) Successful in 16m3s
- MudListItem: Selected → Class with conditional CSS
- MudTextField: Dense → Margin="Margin.Dense"
- MudSwitch: remove HelperText (merged into Label)
- MudDatePicker: remove T parameter (no longer generic in v8)
2026-03-15 11:58:37 +03:30
masoodafar-web
d0fe99492d
fix: update proto to 0.0.192 on production (merge conflict chose wrong version)
2026-03-15 05:29:46 +03:30
masoodafar-web
d38f50584c
fix: resolve version conflict for Foursat.CMSMicroservice.Protobuf package
Build and Deploy to Production / build-and-deploy (push) Failing after 13m13s
2026-03-15 03:21:52 +03:30
masoodafar-web
1c67d7798a
Merge branch 'kub-stage' into production
2026-03-15 03:21:44 +03:30
masoodafar-web
2a7bb0592d
feat: add K8s deployment manifest with GW_URL and BLAZOR_ENVIRONMENT
...
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 15m26s
- Create k8s/staging/backoffice-deployment.yaml with env vars:
GW_URL=https://cms.se.kbs1.ir (injected into appsettings at startup)
BLAZOR_ENVIRONMENT=Staging
- Update CI/CD to apply K8s manifests on deploy (like CMS does)
- This makes configuration persistent across CI/CD deployments
2026-03-15 03:11:38 +03:30
masoodafar-web
9699833ac9
fix: exclude appsettings from service worker cache
...
Build and Deploy to Kubernetes / build-and-deploy (push) Has been cancelled
appsettings*.json files were cached by the service worker, causing
stale GwUrl (cms.kbs1.ir) to persist in the browser even after the
server files were updated. Now appsettings files are always fetched
fresh from the server, where the entrypoint injects the correct GW_URL.
2026-03-15 03:07:14 +03:30
masoodafar-web
b3e6066c90
fix: don't send expired JWT tokens with gRPC requests
...
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 15m19s
AppTokenProvider now checks token expiry before returning it.
Expired tokens are removed from localStorage and not sent.
This fixes 401 errors on anonymous endpoints (login/OTP) caused by
the gRPC channel attaching an old expired Bearer token to every request.
CMS validates the token even on unauthenticated endpoints and rejects
expired ones with 401.
2026-03-15 01:39:27 +03:30
masoodafar-web
148b8e4011
fix: inject GwUrl into appsettings at container startup
...
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 15m1s
The blazor-environment header is stripped by the Blazor WASM service
worker cache, causing Blazor to fall back to Production environment
and load appsettings.Production.json (GwUrl=https://cms.kbs1.ir ).
Fix: use sed in docker-entrypoint.sh to replace GwUrl in ALL
appsettings*.json files at container startup with the GW_URL env var.
Default GW_URL=https://cms.se.kbs1.ir for staging deployment.
2026-03-15 00:42:38 +03:30
masoodafar-web
1ef5edf939
fix: add blazor-environment header to nginx for staging config
...
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 14m30s
BackOffice WASM app defaulted to Production environment because
nginx didn't set the blazor-environment response header. This caused
the app to load appsettings.Production.json (GwUrl=https://cms.kbs1.ir )
instead of appsettings.Staging.json (GwUrl=https://cms.se.kbs1.ir ),
resulting in 401 gRPC errors on the login page.
- Add docker-entrypoint.sh that generates nginx config with blazor-environment header
- Default BLAZOR_ENVIRONMENT=Staging (configurable via K8s env var)
- This ensures the WASM app loads the correct staging configuration
2026-03-15 00:19:04 +03:30
masoodafar-web
76dbee7d41
ci: retry - pushed missing 9.0.12 SDK packages to Nexus
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 14m27s
2026-03-12 07:01:46 +03:30
masoodafar-web
148a9e0493
fix: remove local nupkg source from NuGet.config (breaks Docker builds)
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 11m28s
2026-03-12 02:28:07 +03:30
masoodafar-web
851a1bbc4f
ci: retry build - all NuGet packages pushed to Nexus
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 1m21s
2026-03-12 01:14:19 +03:30
masoodafar-web
aa1d21a616
Revert "fix: bypass broken Nexus, use nuget.org + local proto build"
...
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 1m28s
This reverts commit 7147e9930f .
2026-03-12 00:06:24 +03:30
masoodafar-web
7147e9930f
fix: bypass broken Nexus, use nuget.org + local proto build
...
- NuGet.config: nuget.org for standard packages, local nupkg for proto
- Dockerfile: COPY nupkg/ before restore
- CI: build proto from CMS source before Docker build
2026-03-12 00:03:49 +03:30
masoodafar-web
85208da1b5
feat: manual payment - replace amount with package selector
...
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 1m39s
- Remove manual amount input field
- Add package selector dropdown (shows name + price)
- Pre-select base package, show price in alert
- Validate package selection before submit
- Send package_id to CMS, proto NuGet 0.0.192
2026-03-11 23:44:36 +03:30
masoodafar-web
ea7414dc7f
fix: update Foursat.CMSMicroservice.Protobuf package version to 0.0.191
Build and Deploy to Production / build-and-deploy (push) Successful in 8m40s
2026-02-28 05:07:46 +03:30
masoodafar-web
a450d9a001
Merge branch 'kub-stage' into production
Build and Deploy to Production / build-and-deploy (push) Failing after 2m41s
2026-02-28 04:46:38 +03:30
masoodafar-web
92c992249e
F4: ستون پکیج در CSV، اصلاح rename UserWalletChangeLog→UserWalletHistory
...
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 3m8s
- WithdrawalRequests: اضافه شدن PackageName به مدل و CSV
- ManualPayments: اضافه شدن ستون پکیج به CSV
- ConfigureService: اصلاح using و DI برای UserWalletHistory
- WalletManagementPage: اصلاح تمام رفرنسهای UserWalletChangeLog
- NuGet: v0.0.189
2026-02-27 08:58:44 +03:30
masoodafar-web
6939780cd1
feat(Q28): UI Guidance alerts across BackOffice (G8-G13)
...
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 2m38s
Q28: Added informational/warning alerts to 6 BO pages:
G8: PackageCRUD — price change impact warning
G9: ClubFeatures — feature matrix explanation
G10: ManualPayments — package price matching warning
G11: Commission Dashboard+Payouts — independent pool info
G13: ClubMembers — package filter guidance
2026-02-27 05:41:03 +03:30
masoodafar-web
e6cf90e3fa
fix: ManualPaymentDialog — remove hardcoded 56M, enable Amount field
...
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 2m44s
- Default amount set to 0 (admin must enter)
- Amount field now editable with Required validation
2026-02-27 02:45:11 +03:30
masoodafar-web
e0203541bf
feat(F2+T4.13): ChangeNetworkParent dialog + PackageFeature checkbox matrix
...
Build and Deploy to Kubernetes / build-and-deploy (push) Failing after 2m32s
F2: ChangeNetworkParent UI
- Add ChangeParentDialog with parent ID, leg, reason fields
- Add 'تغییر والد' button to UserNetworkInfo operations
T4.13: PackageFeature checkbox matrix
- Update NuGet to v0.0.188
- Add ClubFeature checkbox list to CreateDialog and UpdateDialog
- Load features via ConfigClient.GetClubFeaturesAsync
- Sync selected FeatureIds to proto request on save
2026-02-26 22:00:20 +03:30
masoodafar-web
8be98ae33e
feat(commission): add per-package filtering to commission pages
...
- New PackageSelect component: reusable dropdown for package filtering
- UserPayouts: add package filter + package column with MudChip
- BalancesReport: add package filter + package column with MudChip
- Update NuGet Foursat.CMSMicroservice.Protobuf to v0.0.187
2026-02-26 21:08:16 +03:30
masoodafar-web
c96377a674
Phase 8d: NuGet bump 0.0.185 → 0.0.186 (proto cleanup)
2026-02-26 18:00:47 +03:30
masoodafar-web
89f5241680
Phase 8b: Expand Package CRUD with all package-based fields
...
- CreateDialog: Add 12 new fields (SortOrder, ActivationFee, DiscountMultiplier,
MagicWalletMultiplier, MagicWalletMaxDeposit, MagicWalletMaxCredit,
MaxBalancesPerLeg, MaxNetworkLevel, IsActive, IsBasePackage,
SupportsDirectPurchase, SupportsDayaPurchase)
- UpdateDialog: Same 12 new fields added
- PackageMainPage grid: Add Price, SortOrder, IsActive, IsBasePackage columns
- Dialog size: Small → Medium for expanded forms
- CreateNew defaults: IsActive=true, DiscountMultiplier=2.0, etc.
- Fix HasPurchasedGoldenPackage → HasPurchasedPackage in UserNetworkInfo
- NuGet: 0.0.184 → 0.0.185 + local feed source
2026-02-26 17:44:53 +03:30
masoodafar-web
f1b0085181
Cleanup: Rename 'پکیج طلایی' → 'خرید پکیج' in UserNetworkInfo
2026-02-26 02:03:26 +03:30
masoodafar-web
60c91438ec
fix: rename wallet labels — اصلی، اعتباری، پاداش تیمی
...
Build and Deploy to Production / build-and-deploy (push) Successful in 11m53s
- شبکه → پاداش تیمی (WalletManagement, ManualPayments)
- تخفیف → اعتباری (ManualPayments, OrderDetails, DiscountOrders)
- طلایی → پاداش تیمی (WithdrawalReports)
Files: WalletManagementPage, ManualPayments, ManualPaymentDialog,
WithdrawalReports, DiscountOrdersMainPage, OrderDetailsDialog
2026-02-23 23:26:59 +03:30
masoodafar-web
172101d0ab
fix: rename wallet labels — اصلی، اعتباری، پاداش تیمی
...
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 9m58s
- شبکه → پاداش تیمی (WalletManagement, ManualPayments)
- تخفیف → اعتباری (ManualPayments, OrderDetails, DiscountOrders)
- طلایی → پاداش تیمی (WithdrawalReports)
Files: WalletManagementPage, ManualPayments, ManualPaymentDialog,
WithdrawalReports, DiscountOrdersMainPage, OrderDetailsDialog
2026-02-23 23:24:41 +03:30
masoodafar-web
1d8f34ae6c
chore: prevent appsettings.Production.json from merging — keep ours strategy
Build and Deploy to Production / build-and-deploy (push) Successful in 8m7s
2026-02-23 00:03:28 +03:30
masoodafar-web
76b7211a5c
chore: prevent appsettings.Production.json from merging — keep ours strategy
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 7m43s
2026-02-23 00:03:14 +03:30
masoodafar-web
fe72774d08
feat: ActivateClubDialog — dropdown پکیج + حذف مدت زمان + ForceActivation
...
Build and Deploy to Kubernetes / build-and-deploy (push) Has been cancelled
- جایگزینی MudNumericField پکیج با MudSelect dropdown (لود از سرور)
- حذف فیلد مدت زمان (DurationMonths) — عضویت باشگاه زمانی نیست
- ارسال ForceActivation=true در request (bypass order validation)
- اضافه کردن PackageContract client injection
- Proto NuGet بروزرسانی به 0.0.184
2026-02-22 23:51:55 +03:30
masoodafar-web
bdea2e8aef
Merge branch 'kub-stage' into production
Build and Deploy to Production / build-and-deploy (push) Successful in 7m46s
2026-02-22 22:23:35 +03:30
masoodafar-web
0386a2b1aa
feat: club UserAutoComplete + member filter + wallet user name display
...
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 7m59s
- ActivateClubDialog: replaced numeric UserId input with UserAutoComplete
- ClubMembers: added UserAutoComplete filter in toolbar, wired to proto user_id
- WalletManagementPage: display user name + ID instead of just UserId
- Updated proto NuGet to 0.0.183 (user_name field)
2026-02-22 22:03:27 +03:30
masoodafar-web
8f29fbaf71
fix: replace ریال with تومان across all 30 admin UI files
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 7m55s
2026-02-22 21:30:47 +03:30
masoodafar-web
7a62e3caac
docs: move docs to totalDoc, replace with placeholders
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 10m16s
2026-02-18 21:44:14 +03:30
masoodafar-web
4eaca9bc4c
docs: update changelog with phase 16 (site pages) and phase 17 (inventory UX)
Build and Deploy to Kubernetes / build-and-deploy (push) Has been cancelled
2026-02-18 01:05:51 +03:30
masoodafar-web
e541aec115
merge: kub-stage → production (discount autocomplete + smart AddStockDialog + site pages admin)
Build and Deploy to Production / build-and-deploy (push) Successful in 8m9s
2026-02-18 01:01:29 +03:30
masoodafar-web
c9affe62bd
feat: smart product autocomplete for inventory dialogs
...
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m14s
- DiscountProductsAutoComplete: new autocomplete component for discount
products with search/debounce (mirrors ProductsAutoComplete pattern)
- AddStockDialog: replace manual product ID input with smart autocomplete
- When 'regular product' selected → shows ProductsAutoComplete
- When 'discount product' selected → shows DiscountProductsAutoComplete
- Admin never has to type product IDs manually
- Product type selector controls which autocomplete is shown
- Validates product selection before submit
2026-02-18 00:43:12 +03:30
masoodafar-web
6147499f9c
feat: replace raw JSON editor with Shopify-style typed settings editors
...
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m7s
- Create PageSettingsModels.cs: typed DTOs for landing, about, contact, licenses
- LandingSettingsEditor: accordion sections for hero buttons, trust badges, steps,
features, stats, testimonials, FAQs, CTA — all with add/remove list management
- AboutSettingsEditor: vision/mission text + icon fields + section titles
- ContactSettingsEditor: address, phone, email, working hours + social media links
- LicensesSettingsEditor: page description + display style selector
- PageSettingsEditDialog: auto-switch editor by PageKey, JSON↔Model serialize/deserialize
- Fallback to raw JSON textarea for unknown page keys
2026-02-17 23:50:34 +03:30
masoodafar-web
3409133757
feat: Add SitePageSettings management UI
...
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 8m21s
- ISitePageSettingsService + SitePageSettingsService (gRPC client)
- PageSettingsManagementPage: 4 cards for fixed pages
- PageSettingsEditDialog: edit title, hero, meta, settingsJson
- PageImagesDialog: CRUD for page images (licenses, team, values)
- PageImageEditDialog: add/edit single image with upload
- Proto NuGet updated to 0.0.180
- NavMenu: added link to page settings
2026-02-17 22:34:59 +03:30
masoodafar-web
af51c02d3d
chore: clean up commented-out GwUrl lines in appsettings
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 7m16s
2026-02-17 02:56:07 +03:30
masoodafar-web
b9171d548b
docs: فاز ۱۵.۴-۱۵.۶ — K8S_SERVER, appsettings.Production, nginx image fix
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 7m42s
2026-02-17 02:11:49 +03:30
masoodafar-web
743403e4d4
fix: nginx image path library/nginx:alpine → nginx:alpine on production
Build and Deploy to Production / build-and-deploy (push) Successful in 7m20s
2026-02-17 02:09:03 +03:30
masoodafar-web
44fd5f29d9
merge: kub-stage into production — fix prod workflow + appsettings GwUrl=cms.kbs2.ir
Build and Deploy to Production / build-and-deploy (push) Has been cancelled
2026-02-17 02:00:29 +03:30
masoodafar-web
e7bed65149
fix: production deployment — appsettings.Production.json + fix K8S_SERVER + set image
...
Build and Deploy to Kubernetes / build-and-deploy (push) Has been cancelled
- appsettings.Production.json: GwUrl=cms.kbs1.ir
- prod-deploy.yml: K8S_SERVER 194.5.195.53 → 45.149.79.127
- prod-deploy.yml: kubectl set image instead of rollout restart
2026-02-17 01:58:36 +03:30
masoodafar-web
6fc00e134f
docs: اضافه شدن فاز ۱۵ به CHANGELOG — Production Deploy, فیکس cross-deploy, Proto v0.0.179
2026-02-17 01:44:25 +03:30
masoodafar-web
fac3d2c85e
Fix production workflow: use SERVER_PASSWORD, add docker login, use set image for deploy
Build and Deploy to Production / build-and-deploy (push) Failing after 6m25s
2026-02-17 01:24:32 +03:30
masoodafar-web
51c20116a7
Remove staging workflow files from production branch to prevent cross-deployment
2026-02-17 01:16:13 +03:30
masoodafar-web
4454b8dd3a
Merge branch 'kub-stage' into production
...
Build and Deploy to Production / build-and-deploy (push) Failing after 6s
Features merged:
- Discount shop management (CRUD, inventory, bulk edit)
- Blog and content management improvements
- Docker build fixes (NuGet package reference)
- UI improvements across multiple components
Production workflow and Dockerfile preserved.
2026-02-17 00:57:14 +03:30
masoodafar-web
aea614e095
docs: add Phase 14 — Docker build + deployment fixes
Build and Deploy to Kubernetes / build-and-deploy (push) Successful in 7m36s
2026-02-16 02:23:42 +03:30