feat(admin): wire management modules to live backend and add UGC role

This commit is contained in:
Ashwin Kumar 2026-04-02 13:09:42 +02:00
parent 82036a0608
commit 8345d6574c
45 changed files with 6145 additions and 812 deletions

View file

@ -0,0 +1,3 @@
[ 32561ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:3000/login:0
[ 93139ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://127.0.0.1:3000/api/gateway/users/auth/internal/login:0
[ 93459ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://127.0.0.1:3000/api/gateway/auth/internal/login:0

View file

@ -0,0 +1 @@
[ 1124ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:3000/login?from=%2Fadmin%2Fexternal-dashboard-management:0

View file

@ -0,0 +1,2 @@
[ 627ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://127.0.0.1:3000/api/gateway/api/auth/session:0
[ 742ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:3000/login?from=%2Fadmin%2Fexternal-dashboard-management:0

View file

@ -0,0 +1,7 @@
- main [ref=e3]:
- generic [ref=e5]:
- img "NXTGAUGE" [ref=e6]
- heading "Admin Access" [level=1] [ref=e7]
- paragraph [ref=e8]: Secure sign-in and runtime control center for NXTGAUGE operations.
- link "Sign In" [ref=e10] [cursor=pointer]:
- /url: /login

View file

@ -0,0 +1,45 @@
- main [ref=e11]:
- generic [ref=e13]:
- generic [ref=e14]:
- img "NXTGAUGE" [ref=e16]
- generic [ref=e17]:
- paragraph [ref=e18]: Internal Admin Portal
- heading "Dashboard Access For Operations Team" [level=1] [ref=e20]:
- text: Dashboard Access
- text: For Operations Team
- paragraph [ref=e21]: Sign in to manage roles, approvals, user operations, and runtime module configuration from one control center.
- generic [ref=e22]:
- generic [ref=e23]:
- paragraph [ref=e24]: Access Control
- paragraph [ref=e25]: Role Management
- generic [ref=e26]:
- paragraph [ref=e27]: Workflows
- paragraph [ref=e28]: Approvals & Verification
- generic [ref=e29]:
- paragraph [ref=e30]: Operations
- paragraph [ref=e31]: Users & Companies
- generic [ref=e32]:
- paragraph [ref=e33]: Runtime
- paragraph [ref=e34]: Module Visibility
- paragraph [ref=e35]: Secured with internal access policies. Authorized personnel only.
- generic [ref=e36]:
- generic [ref=e37]:
- img "NXTGAUGE" [ref=e38]
- generic [ref=e39]: Admin
- generic [ref=e40]:
- heading "Sign In" [level=2] [ref=e41]
- paragraph [ref=e42]: Internal team access only.
- generic [ref=e43]:
- generic [ref=e44]:
- generic [ref=e45]: Email
- textbox "Enter your email" [ref=e46]
- generic [ref=e47]:
- generic [ref=e48]:
- generic [ref=e49]: Password
- button "Forgot?" [ref=e50]
- generic [ref=e51]:
- textbox "Enter your password" [ref=e52]
- button [ref=e53]:
- img [ref=e54]
- button "Sign In" [ref=e57]
- paragraph [ref=e58]: Secure login with internal access policies.

View file

@ -0,0 +1,46 @@
- main [ref=e11]:
- generic [ref=e13]:
- generic [ref=e14]:
- img "NXTGAUGE" [ref=e16]
- generic [ref=e17]:
- paragraph [ref=e18]: Internal Admin Portal
- heading "Dashboard Access For Operations Team" [level=1] [ref=e20]:
- text: Dashboard Access
- text: For Operations Team
- paragraph [ref=e21]: Sign in to manage roles, approvals, user operations, and runtime module configuration from one control center.
- generic [ref=e22]:
- generic [ref=e23]:
- paragraph [ref=e24]: Access Control
- paragraph [ref=e25]: Role Management
- generic [ref=e26]:
- paragraph [ref=e27]: Workflows
- paragraph [ref=e28]: Approvals & Verification
- generic [ref=e29]:
- paragraph [ref=e30]: Operations
- paragraph [ref=e31]: Users & Companies
- generic [ref=e32]:
- paragraph [ref=e33]: Runtime
- paragraph [ref=e34]: Module Visibility
- paragraph [ref=e35]: Secured with internal access policies. Authorized personnel only.
- generic [ref=e36]:
- generic [ref=e37]:
- img "NXTGAUGE" [ref=e38]
- generic [ref=e39]: Admin
- generic [ref=e40]:
- heading "Sign In" [level=2] [ref=e41]
- paragraph [ref=e42]: Internal team access only.
- generic [ref=e43]:
- generic [ref=e44]:
- generic [ref=e45]: Email
- textbox "Enter your email" [ref=e46]: admin@nxtgauge.com
- generic [ref=e47]:
- generic [ref=e48]:
- generic [ref=e49]: Password
- button "Forgot?" [ref=e50]
- generic [ref=e51]:
- textbox "Enter your password" [ref=e52]: admin123
- button [ref=e53]:
- img [ref=e54]
- paragraph [ref=e59]: Invalid credentials
- button "Sign In" [ref=e57]
- paragraph [ref=e58]: Secure login with internal access policies.

View file

@ -0,0 +1 @@
- generic [ref=e4]: Checking session…

View file

@ -0,0 +1 @@
- generic [ref=e4]: Checking session…

View file

@ -0,0 +1,229 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e282]:
- button "All Dashboards" [ref=e283] [cursor=pointer]
- button "Create Dashboard" [ref=e284] [cursor=pointer]
- generic [ref=e285]:
- generic [ref=e286]:
- textbox "Search dashboards..." [ref=e287]
- button "Sort" [ref=e289] [cursor=pointer]:
- img [ref=e290]
- text: Sort
- button "Filters" [ref=e294] [cursor=pointer]:
- img [ref=e295]
- text: Filters
- button "Export" [ref=e297] [cursor=pointer]:
- img [ref=e298]
- text: Export
- table [ref=e302]:
- rowgroup [ref=e303]:
- row "Name Code Role Widgets Status Updated Actions" [ref=e304]:
- columnheader "Name" [ref=e305]
- columnheader "Code" [ref=e306]
- columnheader "Role" [ref=e307]
- columnheader "Widgets" [ref=e308]
- columnheader "Status" [ref=e309]
- columnheader "Updated" [ref=e310]
- columnheader "Actions" [ref=e311]
- rowgroup [ref=e312]:
- row "Loading dashboards..." [ref=e313]:
- cell "Loading dashboards..." [ref=e314]

View file

@ -0,0 +1,331 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e443]:
- generic [ref=e444]:
- paragraph [ref=e445]: Edit External Dashboard
- button "Back" [ref=e446] [cursor=pointer]
- generic [ref=e447]:
- button "General" [ref=e448] [cursor=pointer]
- button "Tabs" [ref=e449] [cursor=pointer]
- button "Sidebar" [ref=e450] [cursor=pointer]
- button "Fields" [ref=e451] [cursor=pointer]
- button "Preview" [ref=e452] [cursor=pointer]: Preview
- generic [ref=e456]:
- generic [ref=e457]:
- paragraph [ref=e458]: Actual End-User Dashboard UI Preview
- generic [ref=e459]: Active
- generic [ref=e460]:
- complementary [ref=e461]:
- img "Nxtgauge" [ref=e463]
- generic [ref=e464]:
- button "My Dashboard" [ref=e465] [cursor=pointer]:
- img [ref=e466]
- text: My Dashboard
- button "My Profile" [ref=e471] [cursor=pointer]:
- img [ref=e472]
- text: My Profile
- button "My Portfolio" [ref=e476] [cursor=pointer]:
- img [ref=e477]
- text: My Portfolio
- button "Leads" [ref=e481] [cursor=pointer]:
- img [ref=e482]
- text: Leads
- button "My Responses" [ref=e486] [cursor=pointer]:
- img [ref=e487]
- text: My Responses
- button "Credits" [ref=e490] [cursor=pointer]:
- img [ref=e491]
- text: Credits
- button "Explore Nxtgauge" [ref=e496] [cursor=pointer]:
- img [ref=e497]
- text: Explore Nxtgauge
- button "Verification" [ref=e500] [cursor=pointer]:
- img [ref=e501]
- text: Verification
- button "Help Center" [ref=e504] [cursor=pointer]:
- img [ref=e505]
- text: Help Center
- button "Settings" [ref=e507] [cursor=pointer]:
- img [ref=e508]
- text: Settings
- button "Switch Services" [ref=e511] [cursor=pointer]:
- img [ref=e512]
- text: Switch Services
- button "Logout" [ref=e517] [cursor=pointer]:
- img [ref=e518]
- text: Logout
- main [ref=e521]:
- generic [ref=e522]:
- generic [ref=e524]:
- img [ref=e525]
- textbox "Search resources..." [ref=e528]
- generic [ref=e529]:
- button [ref=e530] [cursor=pointer]:
- img [ref=e531]
- button [ref=e534] [cursor=pointer]:
- img [ref=e535]
- button [ref=e538] [cursor=pointer]:
- img [ref=e539]
- generic [ref=e542]:
- generic [ref=e543]:
- paragraph [ref=e544]: Current View
- paragraph [ref=e545]: Photographer Profile
- paragraph [ref=e546]: Manage your photography details, pricing, portfolio, and documents.
- generic [ref=e547]:
- button "Basic Info" [ref=e548] [cursor=pointer]
- button "Photography Details" [ref=e549] [cursor=pointer]
- button "Services & Pricing" [ref=e550] [cursor=pointer]
- button "Portfolio" [ref=e551] [cursor=pointer]
- button "Documents" [ref=e552] [cursor=pointer]
- button "Settings" [ref=e553] [cursor=pointer]
- generic [ref=e555]:
- generic [ref=e556]:
- generic [ref=e557]:
- paragraph [ref=e558]: Basic Info
- generic [ref=e559]: 8 fields
- generic [ref=e560]:
- generic [ref=e561]:
- generic [ref=e562]:
- paragraph [ref=e563]: Full Name*
- generic [ref=e565]: Enter full name
- generic [ref=e566]:
- paragraph [ref=e567]: Brand Name*
- generic [ref=e569]: Enter brand name
- generic [ref=e570]:
- paragraph [ref=e571]: Email Address*
- generic [ref=e573]: Enter email address
- generic [ref=e574]:
- paragraph [ref=e575]: Mobile Number*
- generic [ref=e577]: Enter mobile number
- generic [ref=e578]:
- generic [ref=e579]:
- paragraph [ref=e580]: City*
- generic [ref=e582]: Enter city
- generic [ref=e583]:
- paragraph [ref=e584]: State*
- generic [ref=e586]: Enter state
- generic [ref=e587]:
- paragraph [ref=e588]: Country*
- generic [ref=e589]:
- generic [ref=e590]: Select country
- generic [ref=e591]:
- generic [ref=e592]:
- paragraph [ref=e593]: PIN Code*
- generic [ref=e595]: Enter 6-digit pincode
- generic [ref=e596]:
- button "Cancel" [ref=e597]
- button "Save Changes" [ref=e598]
- generic [ref=e599]:
- paragraph [ref=e600]: Profile Completeness
- paragraph [ref=e601]: 87%
- paragraph [ref=e604]: Active Section
- paragraph [ref=e605]: Basic Info
- paragraph [ref=e606]: Mandatory Fields
- paragraph [ref=e607]: "8"
- paragraph [ref=e608]: Marked with *
- paragraph [ref=e609]: Manage your photography details, pricing, portfolio, and documents.
- generic [ref=e610]:
- button "Save Changes" [ref=e611]
- button "Reset" [ref=e612]
- generic [ref=e613]:
- button "Cancel" [ref=e614] [cursor=pointer]
- button "Update Dashboard" [ref=e615] [cursor=pointer]

View file

@ -0,0 +1,568 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e443]:
- generic [ref=e444]:
- paragraph [ref=e445]: Edit External Dashboard
- button "Back" [ref=e446] [cursor=pointer]
- generic [ref=e447]:
- button "General" [ref=e448] [cursor=pointer]
- button "Tabs" [ref=e449] [cursor=pointer]
- button "Sidebar" [ref=e450] [cursor=pointer]
- button "Fields" [ref=e451] [cursor=pointer]
- button "Preview" [ref=e452] [cursor=pointer]: Preview
- generic [ref=e456]:
- generic [ref=e457]:
- paragraph [ref=e458]: Actual End-User Dashboard UI Preview
- generic [ref=e459]: Active
- generic [ref=e460]:
- complementary [ref=e461]:
- img "Nxtgauge" [ref=e463]
- generic [ref=e464]:
- button "My Dashboard" [ref=e465] [cursor=pointer]:
- img [ref=e466]
- text: My Dashboard
- button "My Profile" [ref=e471] [cursor=pointer]:
- img [ref=e472]
- text: My Profile
- button "My Portfolio" [active] [ref=e476] [cursor=pointer]:
- img [ref=e477]
- text: My Portfolio
- button "Leads" [ref=e481] [cursor=pointer]:
- img [ref=e482]
- text: Leads
- button "My Responses" [ref=e486] [cursor=pointer]:
- img [ref=e487]
- text: My Responses
- button "Credits" [ref=e490] [cursor=pointer]:
- img [ref=e491]
- text: Credits
- button "Explore Nxtgauge" [ref=e496] [cursor=pointer]:
- img [ref=e497]
- text: Explore Nxtgauge
- button "Verification" [ref=e500] [cursor=pointer]:
- img [ref=e501]
- text: Verification
- button "Help Center" [ref=e504] [cursor=pointer]:
- img [ref=e505]
- text: Help Center
- button "Settings" [ref=e507] [cursor=pointer]:
- img [ref=e508]
- text: Settings
- button "Switch Services" [ref=e511] [cursor=pointer]:
- img [ref=e512]
- text: Switch Services
- button "Logout" [ref=e517] [cursor=pointer]:
- img [ref=e518]
- text: Logout
- main [ref=e521]:
- generic [ref=e522]:
- generic [ref=e524]:
- img [ref=e525]
- textbox "Search resources..." [ref=e528]
- generic [ref=e529]:
- button [ref=e530] [cursor=pointer]:
- img [ref=e531]
- button [ref=e534] [cursor=pointer]:
- img [ref=e535]
- button [ref=e538] [cursor=pointer]:
- img [ref=e539]
- generic [ref=e542]:
- generic [ref=e543]:
- paragraph [ref=e544]: Current View
- paragraph [ref=e545]: Photographer Portfolio
- paragraph [ref=e546]: Manage your public portfolio, showcase your work, and control what service seekers see before they accept your contact request.
- generic [ref=e616]:
- button "Overview Summary" [ref=e617] [cursor=pointer]:
- img [ref=e619]
- generic [ref=e624]:
- generic [ref=e625]: Overview
- generic [ref=e626]: Summary
- button "About Profile" [ref=e627] [cursor=pointer]:
- img [ref=e629]
- generic [ref=e633]:
- generic [ref=e634]: About
- generic [ref=e635]: Profile
- button "Services & Pricing Pricing" [ref=e636] [cursor=pointer]:
- img [ref=e638]
- generic [ref=e643]:
- generic [ref=e644]: Services & Pricing
- generic [ref=e645]: Pricing
- button "Portfolio Gallery Work" [ref=e646] [cursor=pointer]:
- img [ref=e648]
- generic [ref=e652]:
- generic [ref=e653]: Portfolio Gallery
- generic [ref=e654]: Work
- button "Experience & Equipment History" [ref=e655] [cursor=pointer]:
- img [ref=e657]
- generic [ref=e661]:
- generic [ref=e662]: Experience & Equipment
- generic [ref=e663]: History
- button "Testimonials Locked" [disabled] [ref=e664]:
- img [ref=e666]
- generic [ref=e668]:
- generic [ref=e669]: Testimonials
- generic [ref=e670]: Locked
- button "Faqs Answers" [ref=e671] [cursor=pointer]:
- img [ref=e673]
- generic [ref=e676]:
- generic [ref=e677]: Faqs
- generic [ref=e678]: Answers
- generic [ref=e679]:
- generic [ref=e680]:
- generic [ref=e682]:
- generic [ref=e683]:
- generic [ref=e684]:
- paragraph [ref=e685]: Alex Morgan
- generic [ref=e686]: Verified
- generic [ref=e687]: Top Response Rate
- generic [ref=e688]: Portfolio UI v2
- paragraph [ref=e689]: Photographer
- generic [ref=e690]:
- generic [ref=e691]: "Area: Mumbai Region"
- generic [ref=e692]: "Place: Andheri East, Mumbai"
- generic [ref=e693]: "Travel: Mumbai, Navi Mumbai, Thane, Pune"
- generic [ref=e694]:
- button "Edit Portfolio" [ref=e695] [cursor=pointer]
- button "Preview Portfolio" [ref=e696] [cursor=pointer]
- generic [ref=e697]:
- generic [ref=e698]:
- paragraph [ref=e699]: Shoots Done
- paragraph [ref=e700]: "248"
- generic [ref=e701]:
- paragraph [ref=e702]: Years Exp
- paragraph [ref=e703]: 7+
- generic [ref=e704]:
- paragraph [ref=e705]: Verified Pro
- paragraph [ref=e706]: Verified
- generic [ref=e707]:
- paragraph [ref=e708]: Last Delivery
- paragraph [ref=e709]: 2 days
- generic [ref=e710]:
- paragraph [ref=e711]: Will Travel
- paragraph [ref=e712]: "Yes"
- generic [ref=e713]:
- generic [ref=e714]:
- generic [ref=e715]:
- paragraph [ref=e716]: Profile Strength
- paragraph [ref=e717]: 92%
- paragraph [ref=e718]: Complete and visible
- img [ref=e720]
- generic [ref=e723]:
- generic [ref=e724]:
- paragraph [ref=e725]: Win Momentum
- paragraph [ref=e726]: +18%
- paragraph [ref=e727]: Last 30 days
- img [ref=e729]
- generic [ref=e732]:
- generic [ref=e733]:
- paragraph [ref=e734]: Featured Status
- paragraph [ref=e735]: "Yes"
- paragraph [ref=e736]: Recommended in search
- img [ref=e738]
- generic [ref=e741]:
- generic [ref=e742]:
- paragraph [ref=e743]: Avg. Reply Time
- paragraph [ref=e744]: 2 hrs
- paragraph [ref=e745]: Fast responder
- img [ref=e747]
- generic [ref=e749]:
- generic [ref=e750]:
- paragraph [ref=e752]:
- img [ref=e753]
- text: About
- generic [ref=e757]:
- paragraph [ref=e758]: Professional photographer with 7+ years of experience delivering high-quality work across India. Committed to excellence, creativity, and client satisfaction on every project.
- generic [ref=e759]:
- generic [ref=e760]: Fast response within 2 hours
- generic [ref=e761]: Clear scope & milestone planning
- generic [ref=e762]: Delivery-first execution
- generic [ref=e763]:
- generic [ref=e764]:
- paragraph [ref=e765]: Years Exp
- paragraph [ref=e766]: 7+
- generic [ref=e767]:
- paragraph [ref=e768]: Projects
- paragraph [ref=e769]: "248"
- generic [ref=e770]:
- paragraph [ref=e771]: Rating
- paragraph [ref=e772]: "4.9"
- generic [ref=e773]:
- paragraph [ref=e774]: Reviews
- paragraph [ref=e775]: "128"
- generic [ref=e776]:
- paragraph [ref=e778]:
- img [ref=e779]
- text: Specialties
- generic [ref=e784]:
- generic [ref=e785]: Wedding
- generic [ref=e786]: Pre-Wedding
- generic [ref=e787]: Candid
- generic [ref=e788]: Event
- generic [ref=e789]: Portrait
- generic [ref=e790]: Lifestyle
- generic [ref=e791]:
- paragraph [ref=e792]: Languages
- generic [ref=e793]:
- generic [ref=e794]: English
- generic [ref=e795]: Hindi
- generic [ref=e796]: Marathi
- paragraph [ref=e797]: Service Areas
- generic [ref=e798]:
- generic [ref=e799]: Mumbai
- generic [ref=e800]: Pune
- generic [ref=e801]: Thane
- generic [ref=e802]: Nashik
- generic [ref=e803]:
- generic [ref=e804]:
- paragraph [ref=e805]:
- img [ref=e806]
- text: Services & Pricing
- generic [ref=e811]: Transparent Pricing
- generic [ref=e812]:
- generic [ref=e813]:
- paragraph [ref=e814]: Essential
- paragraph [ref=e815]: ₹15,000
- generic [ref=e816]:
- generic [ref=e817]:
- img [ref=e818]
- text: 4-hour shoot
- generic [ref=e821]:
- img [ref=e822]
- text: 100 edited photos
- generic [ref=e825]:
- img [ref=e826]
- text: Online gallery
- generic [ref=e829]:
- img [ref=e830]
- text: 1 location
- generic [ref=e833]:
- generic [ref=e834]: Most Chosen
- paragraph [ref=e835]: Premium
- paragraph [ref=e836]: ₹28,000
- generic [ref=e837]:
- generic [ref=e838]:
- img [ref=e839]
- text: 8-hour shoot
- generic [ref=e842]:
- img [ref=e843]
- text: 250 edited photos
- generic [ref=e846]:
- img [ref=e847]
- text: Online gallery
- generic [ref=e850]:
- img [ref=e851]
- text: 2 locations
- generic [ref=e854]:
- img [ref=e855]
- text: Drone shots
- generic [ref=e858]:
- paragraph [ref=e859]: Signature
- paragraph [ref=e860]: ₹50,000
- generic [ref=e861]:
- generic [ref=e862]:
- img [ref=e863]
- text: Full-day shoot
- generic [ref=e866]:
- img [ref=e867]
- text: 500 edited photos
- generic [ref=e870]:
- img [ref=e871]
- text: USB delivery
- generic [ref=e874]:
- img [ref=e875]
- text: 3 locations
- generic [ref=e878]:
- img [ref=e879]
- text: Drone + Reel
- generic [ref=e882]:
- generic [ref=e883]:
- paragraph [ref=e884]:
- img [ref=e885]
- text: Portfolio Gallery
- button "Upload Images" [ref=e889] [cursor=pointer]
- generic [ref=e890]:
- generic [ref=e891]:
- img [ref=e892]
- generic [ref=e896]: Campaign Shot
- generic [ref=e897]:
- img [ref=e898]
- generic [ref=e902]: Result Highlight
- generic [ref=e903]:
- img [ref=e904]
- generic [ref=e908]: Before/After
- generic [ref=e909]:
- img [ref=e910]
- generic [ref=e914]: Client Output
- generic [ref=e915]:
- img [ref=e916]
- generic [ref=e920]: Style Board
- generic [ref=e921]:
- img [ref=e922]
- generic [ref=e926]: Final Delivery
- generic [ref=e927]:
- img [ref=e928]
- generic [ref=e932]: Portfolio Select
- generic [ref=e933]:
- img [ref=e934]
- generic [ref=e938]: Recent Work
- generic [ref=e939]:
- paragraph [ref=e941]:
- img [ref=e942]
- text: Experience & Equipment
- generic [ref=e946]:
- paragraph [ref=e947]: Camera & Equipment
- generic [ref=e948]:
- generic [ref=e949]: Wedding
- generic [ref=e950]: Pre-Wedding
- generic [ref=e951]: Candid
- generic [ref=e952]: Event
- generic [ref=e953]: Portrait
- generic [ref=e954]: Lifestyle
- generic [ref=e955]:
- generic [ref=e956]:
- paragraph [ref=e958]: "2018"
- paragraph [ref=e959]: Started professional career as Photographer
- generic [ref=e960]:
- paragraph [ref=e962]: "2020"
- paragraph [ref=e963]: Completed 100+ successful projects
- generic [ref=e964]:
- paragraph [ref=e966]: "2022"
- paragraph [ref=e967]: Won regional industry recognition
- generic [ref=e968]:
- paragraph [ref=e970]: "2024"
- paragraph [ref=e971]: Joined Nxtgauge marketplace
- generic [ref=e972]:
- generic [ref=e973]:
- paragraph [ref=e974]:
- img [ref=e975]
- text: Testimonials
- generic [ref=e977]: Locked For New Profiles
- generic [ref=e979]:
- paragraph [ref=e980]: Testimonials will be activated automatically.
- paragraph [ref=e981]:
- text: New professionals unlock testimonials after completing at least
- strong [ref=e982]: 3 jobs
- text: and receiving at least
- strong [ref=e983]: 2 customer feedback entries
- text: .
- paragraph [ref=e984]: "Current progress: 1 jobs completed • 0 feedback received"
- generic [ref=e985]:
- paragraph [ref=e987]:
- img [ref=e988]
- text: Frequently Asked Questions
- generic [ref=e991]:
- button "Do you travel for shoots?" [ref=e992] [cursor=pointer]:
- generic [ref=e993]: Do you travel for shoots?
- img [ref=e994]
- paragraph [ref=e997]: Yes, I cover Pan-India and select international locations. Travel charges apply beyond 50km.
- button "How long before I receive the final photos?" [ref=e999] [cursor=pointer]:
- generic [ref=e1000]: How long before I receive the final photos?
- img [ref=e1001]
- button "What equipment do you use?" [ref=e1004] [cursor=pointer]:
- generic [ref=e1005]: What equipment do you use?
- img [ref=e1006]
- button "Do you provide raw files?" [ref=e1009] [cursor=pointer]:
- generic [ref=e1010]: Do you provide raw files?
- img [ref=e1011]
- generic [ref=e613]:
- button "Cancel" [ref=e614] [cursor=pointer]
- button "Update Dashboard" [ref=e615] [cursor=pointer]

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

View file

@ -0,0 +1,229 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e282]:
- button "All Dashboards" [ref=e283] [cursor=pointer]
- button "Create Dashboard" [ref=e284] [cursor=pointer]
- generic [ref=e285]:
- generic [ref=e286]:
- textbox "Search dashboards..." [ref=e287]
- button "Sort" [ref=e289] [cursor=pointer]:
- img [ref=e290]
- text: Sort
- button "Filters" [ref=e294] [cursor=pointer]:
- img [ref=e295]
- text: Filters
- button "Export" [ref=e297] [cursor=pointer]:
- img [ref=e298]
- text: Export
- table [ref=e302]:
- rowgroup [ref=e303]:
- row "Name Code Role Widgets Status Updated Actions" [ref=e304]:
- columnheader "Name" [ref=e305]
- columnheader "Code" [ref=e306]
- columnheader "Role" [ref=e307]
- columnheader "Widgets" [ref=e308]
- columnheader "Status" [ref=e309]
- columnheader "Updated" [ref=e310]
- columnheader "Actions" [ref=e311]
- rowgroup [ref=e312]:
- row "Loading dashboards..." [ref=e313]:
- cell "Loading dashboards..." [ref=e314]

View file

@ -0,0 +1,331 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e443]:
- generic [ref=e444]:
- paragraph [ref=e445]: Edit External Dashboard
- button "Back" [ref=e446] [cursor=pointer]
- generic [ref=e447]:
- button "General" [ref=e448] [cursor=pointer]
- button "Tabs" [ref=e449] [cursor=pointer]
- button "Sidebar" [ref=e450] [cursor=pointer]
- button "Fields" [ref=e451] [cursor=pointer]
- button "Preview" [ref=e452] [cursor=pointer]: Preview
- generic [ref=e456]:
- generic [ref=e457]:
- paragraph [ref=e458]: Actual End-User Dashboard UI Preview
- generic [ref=e459]: Active
- generic [ref=e460]:
- complementary [ref=e461]:
- img "Nxtgauge" [ref=e463]
- generic [ref=e464]:
- button "My Dashboard" [ref=e465] [cursor=pointer]:
- img [ref=e466]
- text: My Dashboard
- button "My Profile" [ref=e471] [cursor=pointer]:
- img [ref=e472]
- text: My Profile
- button "My Portfolio" [ref=e476] [cursor=pointer]:
- img [ref=e477]
- text: My Portfolio
- button "Leads" [ref=e481] [cursor=pointer]:
- img [ref=e482]
- text: Leads
- button "My Responses" [ref=e486] [cursor=pointer]:
- img [ref=e487]
- text: My Responses
- button "Credits" [ref=e490] [cursor=pointer]:
- img [ref=e491]
- text: Credits
- button "Explore Nxtgauge" [ref=e496] [cursor=pointer]:
- img [ref=e497]
- text: Explore Nxtgauge
- button "Verification" [ref=e500] [cursor=pointer]:
- img [ref=e501]
- text: Verification
- button "Help Center" [ref=e504] [cursor=pointer]:
- img [ref=e505]
- text: Help Center
- button "Settings" [ref=e507] [cursor=pointer]:
- img [ref=e508]
- text: Settings
- button "Switch Services" [ref=e511] [cursor=pointer]:
- img [ref=e512]
- text: Switch Services
- button "Logout" [ref=e517] [cursor=pointer]:
- img [ref=e518]
- text: Logout
- main [ref=e521]:
- generic [ref=e522]:
- generic [ref=e524]:
- img [ref=e525]
- textbox "Search resources..." [ref=e528]
- generic [ref=e529]:
- button [ref=e530] [cursor=pointer]:
- img [ref=e531]
- button [ref=e534] [cursor=pointer]:
- img [ref=e535]
- button [ref=e538] [cursor=pointer]:
- img [ref=e539]
- generic [ref=e542]:
- generic [ref=e543]:
- paragraph [ref=e544]: Current View
- paragraph [ref=e545]: Photographer Profile
- paragraph [ref=e546]: Manage your photography details, pricing, portfolio, and documents.
- generic [ref=e547]:
- button "Basic Info" [ref=e548] [cursor=pointer]
- button "Photography Details" [ref=e549] [cursor=pointer]
- button "Services & Pricing" [ref=e550] [cursor=pointer]
- button "Portfolio" [ref=e551] [cursor=pointer]
- button "Documents" [ref=e552] [cursor=pointer]
- button "Settings" [ref=e553] [cursor=pointer]
- generic [ref=e555]:
- generic [ref=e556]:
- generic [ref=e557]:
- paragraph [ref=e558]: Basic Info
- generic [ref=e559]: 8 fields
- generic [ref=e560]:
- generic [ref=e561]:
- generic [ref=e562]:
- paragraph [ref=e563]: Full Name*
- generic [ref=e565]: Enter full name
- generic [ref=e566]:
- paragraph [ref=e567]: Brand Name*
- generic [ref=e569]: Enter brand name
- generic [ref=e570]:
- paragraph [ref=e571]: Email Address*
- generic [ref=e573]: Enter email address
- generic [ref=e574]:
- paragraph [ref=e575]: Mobile Number*
- generic [ref=e577]: Enter mobile number
- generic [ref=e578]:
- generic [ref=e579]:
- paragraph [ref=e580]: City*
- generic [ref=e582]: Enter city
- generic [ref=e583]:
- paragraph [ref=e584]: State*
- generic [ref=e586]: Enter state
- generic [ref=e587]:
- paragraph [ref=e588]: Country*
- generic [ref=e589]:
- generic [ref=e590]: Select country
- generic [ref=e591]:
- generic [ref=e592]:
- paragraph [ref=e593]: PIN Code*
- generic [ref=e595]: Enter 6-digit pincode
- generic [ref=e596]:
- button "Cancel" [ref=e597]
- button "Save Changes" [ref=e598]
- generic [ref=e599]:
- paragraph [ref=e600]: Profile Completeness
- paragraph [ref=e601]: 87%
- paragraph [ref=e604]: Active Section
- paragraph [ref=e605]: Basic Info
- paragraph [ref=e606]: Mandatory Fields
- paragraph [ref=e607]: "8"
- paragraph [ref=e608]: Marked with *
- paragraph [ref=e609]: Manage your photography details, pricing, portfolio, and documents.
- generic [ref=e610]:
- button "Save Changes" [ref=e611]
- button "Reset" [ref=e612]
- generic [ref=e613]:
- button "Cancel" [ref=e614] [cursor=pointer]
- button "Update Dashboard" [ref=e615] [cursor=pointer]

View file

@ -0,0 +1,568 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e443]:
- generic [ref=e444]:
- paragraph [ref=e445]: Edit External Dashboard
- button "Back" [ref=e446] [cursor=pointer]
- generic [ref=e447]:
- button "General" [ref=e448] [cursor=pointer]
- button "Tabs" [ref=e449] [cursor=pointer]
- button "Sidebar" [ref=e450] [cursor=pointer]
- button "Fields" [ref=e451] [cursor=pointer]
- button "Preview" [ref=e452] [cursor=pointer]: Preview
- generic [ref=e456]:
- generic [ref=e457]:
- paragraph [ref=e458]: Actual End-User Dashboard UI Preview
- generic [ref=e459]: Active
- generic [ref=e460]:
- complementary [ref=e461]:
- img "Nxtgauge" [ref=e463]
- generic [ref=e464]:
- button "My Dashboard" [ref=e465] [cursor=pointer]:
- img [ref=e466]
- text: My Dashboard
- button "My Profile" [ref=e471] [cursor=pointer]:
- img [ref=e472]
- text: My Profile
- button "My Portfolio" [active] [ref=e476] [cursor=pointer]:
- img [ref=e477]
- text: My Portfolio
- button "Leads" [ref=e481] [cursor=pointer]:
- img [ref=e482]
- text: Leads
- button "My Responses" [ref=e486] [cursor=pointer]:
- img [ref=e487]
- text: My Responses
- button "Credits" [ref=e490] [cursor=pointer]:
- img [ref=e491]
- text: Credits
- button "Explore Nxtgauge" [ref=e496] [cursor=pointer]:
- img [ref=e497]
- text: Explore Nxtgauge
- button "Verification" [ref=e500] [cursor=pointer]:
- img [ref=e501]
- text: Verification
- button "Help Center" [ref=e504] [cursor=pointer]:
- img [ref=e505]
- text: Help Center
- button "Settings" [ref=e507] [cursor=pointer]:
- img [ref=e508]
- text: Settings
- button "Switch Services" [ref=e511] [cursor=pointer]:
- img [ref=e512]
- text: Switch Services
- button "Logout" [ref=e517] [cursor=pointer]:
- img [ref=e518]
- text: Logout
- main [ref=e521]:
- generic [ref=e522]:
- generic [ref=e524]:
- img [ref=e525]
- textbox "Search resources..." [ref=e528]
- generic [ref=e529]:
- button [ref=e530] [cursor=pointer]:
- img [ref=e531]
- button [ref=e534] [cursor=pointer]:
- img [ref=e535]
- button [ref=e538] [cursor=pointer]:
- img [ref=e539]
- generic [ref=e542]:
- generic [ref=e543]:
- paragraph [ref=e544]: Current View
- paragraph [ref=e545]: Photographer Portfolio
- paragraph [ref=e546]: Manage your public portfolio, showcase your work, and control what service seekers see before they accept your contact request.
- generic [ref=e616]:
- button "Overview Summary" [ref=e617] [cursor=pointer]:
- img [ref=e619]
- generic [ref=e624]:
- generic [ref=e625]: Overview
- generic [ref=e626]: Summary
- button "About Profile" [ref=e627] [cursor=pointer]:
- img [ref=e629]
- generic [ref=e633]:
- generic [ref=e634]: About
- generic [ref=e635]: Profile
- button "Services & Pricing Pricing" [ref=e636] [cursor=pointer]:
- img [ref=e638]
- generic [ref=e643]:
- generic [ref=e644]: Services & Pricing
- generic [ref=e645]: Pricing
- button "Portfolio Gallery Work" [ref=e646] [cursor=pointer]:
- img [ref=e648]
- generic [ref=e652]:
- generic [ref=e653]: Portfolio Gallery
- generic [ref=e654]: Work
- button "Experience & Equipment History" [ref=e655] [cursor=pointer]:
- img [ref=e657]
- generic [ref=e661]:
- generic [ref=e662]: Experience & Equipment
- generic [ref=e663]: History
- button "Testimonials Locked" [disabled] [ref=e664]:
- img [ref=e666]
- generic [ref=e668]:
- generic [ref=e669]: Testimonials
- generic [ref=e670]: Locked
- button "Faqs Answers" [ref=e671] [cursor=pointer]:
- img [ref=e673]
- generic [ref=e676]:
- generic [ref=e677]: Faqs
- generic [ref=e678]: Answers
- generic [ref=e679]:
- generic [ref=e680]:
- generic [ref=e682]:
- generic [ref=e683]:
- generic [ref=e684]:
- paragraph [ref=e685]: Alex Morgan
- generic [ref=e686]: Verified
- generic [ref=e687]: Top Response Rate
- generic [ref=e688]: Portfolio UI v2
- paragraph [ref=e689]: Photographer
- generic [ref=e690]:
- generic [ref=e691]: "Area: Mumbai Region"
- generic [ref=e692]: "Place: Andheri East, Mumbai"
- generic [ref=e693]: "Travel: Mumbai, Navi Mumbai, Thane, Pune"
- generic [ref=e694]:
- button "Edit Portfolio" [ref=e695] [cursor=pointer]
- button "Preview Portfolio" [ref=e696] [cursor=pointer]
- generic [ref=e697]:
- generic [ref=e698]:
- paragraph [ref=e699]: Shoots Done
- paragraph [ref=e700]: "248"
- generic [ref=e701]:
- paragraph [ref=e702]: Years Exp
- paragraph [ref=e703]: 7+
- generic [ref=e704]:
- paragraph [ref=e705]: Verified Pro
- paragraph [ref=e706]: Verified
- generic [ref=e707]:
- paragraph [ref=e708]: Last Delivery
- paragraph [ref=e709]: 2 days
- generic [ref=e710]:
- paragraph [ref=e711]: Will Travel
- paragraph [ref=e712]: "Yes"
- generic [ref=e713]:
- generic [ref=e714]:
- generic [ref=e715]:
- paragraph [ref=e716]: Profile Strength
- paragraph [ref=e717]: 92%
- paragraph [ref=e718]: Complete and visible
- img [ref=e720]
- generic [ref=e723]:
- generic [ref=e724]:
- paragraph [ref=e725]: Win Momentum
- paragraph [ref=e726]: +18%
- paragraph [ref=e727]: Last 30 days
- img [ref=e729]
- generic [ref=e732]:
- generic [ref=e733]:
- paragraph [ref=e734]: Featured Status
- paragraph [ref=e735]: "Yes"
- paragraph [ref=e736]: Recommended in search
- img [ref=e738]
- generic [ref=e741]:
- generic [ref=e742]:
- paragraph [ref=e743]: Avg. Reply Time
- paragraph [ref=e744]: 2 hrs
- paragraph [ref=e745]: Fast responder
- img [ref=e747]
- generic [ref=e749]:
- generic [ref=e750]:
- paragraph [ref=e752]:
- img [ref=e753]
- text: About
- generic [ref=e757]:
- paragraph [ref=e758]: Professional photographer with 7+ years of experience delivering high-quality work across India. Committed to excellence, creativity, and client satisfaction on every project.
- generic [ref=e759]:
- generic [ref=e760]: Fast response within 2 hours
- generic [ref=e761]: Clear scope & milestone planning
- generic [ref=e762]: Delivery-first execution
- generic [ref=e763]:
- generic [ref=e764]:
- paragraph [ref=e765]: Years Exp
- paragraph [ref=e766]: 7+
- generic [ref=e767]:
- paragraph [ref=e768]: Projects
- paragraph [ref=e769]: "248"
- generic [ref=e770]:
- paragraph [ref=e771]: Rating
- paragraph [ref=e772]: "4.9"
- generic [ref=e773]:
- paragraph [ref=e774]: Reviews
- paragraph [ref=e775]: "128"
- generic [ref=e776]:
- paragraph [ref=e778]:
- img [ref=e779]
- text: Specialties
- generic [ref=e784]:
- generic [ref=e785]: Wedding
- generic [ref=e786]: Pre-Wedding
- generic [ref=e787]: Candid
- generic [ref=e788]: Event
- generic [ref=e789]: Portrait
- generic [ref=e790]: Lifestyle
- generic [ref=e791]:
- paragraph [ref=e792]: Languages
- generic [ref=e793]:
- generic [ref=e794]: English
- generic [ref=e795]: Hindi
- generic [ref=e796]: Marathi
- paragraph [ref=e797]: Service Areas
- generic [ref=e798]:
- generic [ref=e799]: Mumbai
- generic [ref=e800]: Pune
- generic [ref=e801]: Thane
- generic [ref=e802]: Nashik
- generic [ref=e803]:
- generic [ref=e804]:
- paragraph [ref=e805]:
- img [ref=e806]
- text: Services & Pricing
- generic [ref=e811]: Transparent Pricing
- generic [ref=e812]:
- generic [ref=e813]:
- paragraph [ref=e814]: Essential
- paragraph [ref=e815]: ₹15,000
- generic [ref=e816]:
- generic [ref=e817]:
- img [ref=e818]
- text: 4-hour shoot
- generic [ref=e821]:
- img [ref=e822]
- text: 100 edited photos
- generic [ref=e825]:
- img [ref=e826]
- text: Online gallery
- generic [ref=e829]:
- img [ref=e830]
- text: 1 location
- generic [ref=e833]:
- generic [ref=e834]: Most Chosen
- paragraph [ref=e835]: Premium
- paragraph [ref=e836]: ₹28,000
- generic [ref=e837]:
- generic [ref=e838]:
- img [ref=e839]
- text: 8-hour shoot
- generic [ref=e842]:
- img [ref=e843]
- text: 250 edited photos
- generic [ref=e846]:
- img [ref=e847]
- text: Online gallery
- generic [ref=e850]:
- img [ref=e851]
- text: 2 locations
- generic [ref=e854]:
- img [ref=e855]
- text: Drone shots
- generic [ref=e858]:
- paragraph [ref=e859]: Signature
- paragraph [ref=e860]: ₹50,000
- generic [ref=e861]:
- generic [ref=e862]:
- img [ref=e863]
- text: Full-day shoot
- generic [ref=e866]:
- img [ref=e867]
- text: 500 edited photos
- generic [ref=e870]:
- img [ref=e871]
- text: USB delivery
- generic [ref=e874]:
- img [ref=e875]
- text: 3 locations
- generic [ref=e878]:
- img [ref=e879]
- text: Drone + Reel
- generic [ref=e882]:
- generic [ref=e883]:
- paragraph [ref=e884]:
- img [ref=e885]
- text: Portfolio Gallery
- button "Upload Images" [ref=e889] [cursor=pointer]
- generic [ref=e890]:
- generic [ref=e891]:
- img [ref=e892]
- generic [ref=e896]: Campaign Shot
- generic [ref=e897]:
- img [ref=e898]
- generic [ref=e902]: Result Highlight
- generic [ref=e903]:
- img [ref=e904]
- generic [ref=e908]: Before/After
- generic [ref=e909]:
- img [ref=e910]
- generic [ref=e914]: Client Output
- generic [ref=e915]:
- img [ref=e916]
- generic [ref=e920]: Style Board
- generic [ref=e921]:
- img [ref=e922]
- generic [ref=e926]: Final Delivery
- generic [ref=e927]:
- img [ref=e928]
- generic [ref=e932]: Portfolio Select
- generic [ref=e933]:
- img [ref=e934]
- generic [ref=e938]: Recent Work
- generic [ref=e939]:
- paragraph [ref=e941]:
- img [ref=e942]
- text: Experience & Equipment
- generic [ref=e946]:
- paragraph [ref=e947]: Camera & Equipment
- generic [ref=e948]:
- generic [ref=e949]: Wedding
- generic [ref=e950]: Pre-Wedding
- generic [ref=e951]: Candid
- generic [ref=e952]: Event
- generic [ref=e953]: Portrait
- generic [ref=e954]: Lifestyle
- generic [ref=e955]:
- generic [ref=e956]:
- paragraph [ref=e958]: "2018"
- paragraph [ref=e959]: Started professional career as Photographer
- generic [ref=e960]:
- paragraph [ref=e962]: "2020"
- paragraph [ref=e963]: Completed 100+ successful projects
- generic [ref=e964]:
- paragraph [ref=e966]: "2022"
- paragraph [ref=e967]: Won regional industry recognition
- generic [ref=e968]:
- paragraph [ref=e970]: "2024"
- paragraph [ref=e971]: Joined Nxtgauge marketplace
- generic [ref=e972]:
- generic [ref=e973]:
- paragraph [ref=e974]:
- img [ref=e975]
- text: Testimonials
- generic [ref=e977]: Locked For New Profiles
- generic [ref=e979]:
- paragraph [ref=e980]: Testimonials will be activated automatically.
- paragraph [ref=e981]:
- text: New professionals unlock testimonials after completing at least
- strong [ref=e982]: 3 jobs
- text: and receiving at least
- strong [ref=e983]: 2 customer feedback entries
- text: .
- paragraph [ref=e984]: "Current progress: 1 jobs completed • 0 feedback received"
- generic [ref=e985]:
- paragraph [ref=e987]:
- img [ref=e988]
- text: Frequently Asked Questions
- generic [ref=e991]:
- button "Do you travel for shoots?" [ref=e992] [cursor=pointer]:
- generic [ref=e993]: Do you travel for shoots?
- img [ref=e994]
- paragraph [ref=e997]: Yes, I cover Pan-India and select international locations. Travel charges apply beyond 50km.
- button "How long before I receive the final photos?" [ref=e999] [cursor=pointer]:
- generic [ref=e1000]: How long before I receive the final photos?
- img [ref=e1001]
- button "What equipment do you use?" [ref=e1004] [cursor=pointer]:
- generic [ref=e1005]: What equipment do you use?
- img [ref=e1006]
- button "Do you provide raw files?" [ref=e1009] [cursor=pointer]:
- generic [ref=e1010]: Do you provide raw files?
- img [ref=e1011]
- generic [ref=e613]:
- button "Cancel" [ref=e614] [cursor=pointer]
- button "Update Dashboard" [ref=e615] [cursor=pointer]

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

View file

@ -0,0 +1,229 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e282]:
- button "All Dashboards" [ref=e283] [cursor=pointer]
- button "Create Dashboard" [ref=e284] [cursor=pointer]
- generic [ref=e285]:
- generic [ref=e286]:
- textbox "Search dashboards..." [ref=e287]
- button "Sort" [ref=e289] [cursor=pointer]:
- img [ref=e290]
- text: Sort
- button "Filters" [ref=e294] [cursor=pointer]:
- img [ref=e295]
- text: Filters
- button "Export" [ref=e297] [cursor=pointer]:
- img [ref=e298]
- text: Export
- table [ref=e302]:
- rowgroup [ref=e303]:
- row "Name Code Role Widgets Status Updated Actions" [ref=e304]:
- columnheader "Name" [ref=e305]
- columnheader "Code" [ref=e306]
- columnheader "Role" [ref=e307]
- columnheader "Widgets" [ref=e308]
- columnheader "Status" [ref=e309]
- columnheader "Updated" [ref=e310]
- columnheader "Actions" [ref=e311]
- rowgroup [ref=e312]:
- row "Loading dashboards..." [ref=e313]:
- cell "Loading dashboards..." [ref=e314]

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

View file

@ -0,0 +1,331 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e443]:
- generic [ref=e444]:
- paragraph [ref=e445]: Edit External Dashboard
- button "Back" [ref=e446] [cursor=pointer]
- generic [ref=e447]:
- button "General" [ref=e448] [cursor=pointer]
- button "Tabs" [ref=e449] [cursor=pointer]
- button "Sidebar" [ref=e450] [cursor=pointer]
- button "Fields" [ref=e451] [cursor=pointer]
- button "Preview" [ref=e452] [cursor=pointer]: Preview
- generic [ref=e456]:
- generic [ref=e457]:
- paragraph [ref=e458]: Actual End-User Dashboard UI Preview
- generic [ref=e459]: Active
- generic [ref=e460]:
- complementary [ref=e461]:
- img "Nxtgauge" [ref=e463]
- generic [ref=e464]:
- button "My Dashboard" [ref=e465] [cursor=pointer]:
- img [ref=e466]
- text: My Dashboard
- button "My Profile" [ref=e471] [cursor=pointer]:
- img [ref=e472]
- text: My Profile
- button "My Portfolio" [ref=e476] [cursor=pointer]:
- img [ref=e477]
- text: My Portfolio
- button "Leads" [ref=e481] [cursor=pointer]:
- img [ref=e482]
- text: Leads
- button "My Responses" [ref=e486] [cursor=pointer]:
- img [ref=e487]
- text: My Responses
- button "Credits" [ref=e490] [cursor=pointer]:
- img [ref=e491]
- text: Credits
- button "Explore Nxtgauge" [ref=e496] [cursor=pointer]:
- img [ref=e497]
- text: Explore Nxtgauge
- button "Verification" [ref=e500] [cursor=pointer]:
- img [ref=e501]
- text: Verification
- button "Help Center" [ref=e504] [cursor=pointer]:
- img [ref=e505]
- text: Help Center
- button "Settings" [ref=e507] [cursor=pointer]:
- img [ref=e508]
- text: Settings
- button "Switch Services" [ref=e511] [cursor=pointer]:
- img [ref=e512]
- text: Switch Services
- button "Logout" [ref=e517] [cursor=pointer]:
- img [ref=e518]
- text: Logout
- main [ref=e521]:
- generic [ref=e522]:
- generic [ref=e524]:
- img [ref=e525]
- textbox "Search resources..." [ref=e528]
- generic [ref=e529]:
- button [ref=e530] [cursor=pointer]:
- img [ref=e531]
- button [ref=e534] [cursor=pointer]:
- img [ref=e535]
- button [ref=e538] [cursor=pointer]:
- img [ref=e539]
- generic [ref=e542]:
- generic [ref=e543]:
- paragraph [ref=e544]: Current View
- paragraph [ref=e545]: Graphic Designer Profile
- paragraph [ref=e546]: Manage design profile, service pricing, portfolio assets, and documents.
- generic [ref=e547]:
- button "Basic Info" [ref=e548] [cursor=pointer]
- button "Design Profile" [ref=e549] [cursor=pointer]
- button "Services & Pricing" [ref=e550] [cursor=pointer]
- button "Portfolio" [ref=e551] [cursor=pointer]
- button "Documents" [ref=e552] [cursor=pointer]
- button "Settings" [ref=e553] [cursor=pointer]
- generic [ref=e555]:
- generic [ref=e556]:
- generic [ref=e557]:
- paragraph [ref=e558]: Basic Info
- generic [ref=e559]: 8 fields
- generic [ref=e560]:
- generic [ref=e561]:
- generic [ref=e562]:
- paragraph [ref=e563]: Full Name*
- generic [ref=e565]: Enter full name
- generic [ref=e566]:
- paragraph [ref=e567]: Brand Name*
- generic [ref=e569]: Enter brand name
- generic [ref=e570]:
- paragraph [ref=e571]: Email Address*
- generic [ref=e573]: Enter email address
- generic [ref=e574]:
- paragraph [ref=e575]: Mobile Number*
- generic [ref=e577]: Enter mobile number
- generic [ref=e578]:
- generic [ref=e579]:
- paragraph [ref=e580]: City*
- generic [ref=e582]: Enter city
- generic [ref=e583]:
- paragraph [ref=e584]: State*
- generic [ref=e586]: Enter state
- generic [ref=e587]:
- paragraph [ref=e588]: Country*
- generic [ref=e589]:
- generic [ref=e590]: Select country
- generic [ref=e591]:
- generic [ref=e592]:
- paragraph [ref=e593]: PIN Code*
- generic [ref=e595]: Enter 6-digit pincode
- generic [ref=e596]:
- button "Cancel" [ref=e597]
- button "Save Changes" [ref=e598]
- generic [ref=e599]:
- paragraph [ref=e600]: Profile Completeness
- paragraph [ref=e601]: 87%
- paragraph [ref=e604]: Active Section
- paragraph [ref=e605]: Basic Info
- paragraph [ref=e606]: Mandatory Fields
- paragraph [ref=e607]: "8"
- paragraph [ref=e608]: Marked with *
- paragraph [ref=e609]: Manage design profile, service pricing, portfolio assets, and documents.
- generic [ref=e610]:
- button "Save Changes" [ref=e611]
- button "Reset" [ref=e612]
- generic [ref=e613]:
- button "Cancel" [ref=e614] [cursor=pointer]
- button "Update Dashboard" [ref=e615] [cursor=pointer]

View file

@ -0,0 +1,562 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e443]:
- generic [ref=e444]:
- paragraph [ref=e445]: Edit External Dashboard
- button "Back" [ref=e446] [cursor=pointer]
- generic [ref=e447]:
- button "General" [ref=e448] [cursor=pointer]
- button "Tabs" [ref=e449] [cursor=pointer]
- button "Sidebar" [ref=e450] [cursor=pointer]
- button "Fields" [ref=e451] [cursor=pointer]
- button "Preview" [ref=e452] [cursor=pointer]: Preview
- generic [ref=e456]:
- generic [ref=e457]:
- paragraph [ref=e458]: Actual End-User Dashboard UI Preview
- generic [ref=e459]: Active
- generic [ref=e460]:
- complementary [ref=e461]:
- img "Nxtgauge" [ref=e463]
- generic [ref=e464]:
- button "My Dashboard" [ref=e465] [cursor=pointer]:
- img [ref=e466]
- text: My Dashboard
- button "My Profile" [ref=e471] [cursor=pointer]:
- img [ref=e472]
- text: My Profile
- button "My Portfolio" [active] [ref=e476] [cursor=pointer]:
- img [ref=e477]
- text: My Portfolio
- button "Leads" [ref=e481] [cursor=pointer]:
- img [ref=e482]
- text: Leads
- button "My Responses" [ref=e486] [cursor=pointer]:
- img [ref=e487]
- text: My Responses
- button "Credits" [ref=e490] [cursor=pointer]:
- img [ref=e491]
- text: Credits
- button "Explore Nxtgauge" [ref=e496] [cursor=pointer]:
- img [ref=e497]
- text: Explore Nxtgauge
- button "Verification" [ref=e500] [cursor=pointer]:
- img [ref=e501]
- text: Verification
- button "Help Center" [ref=e504] [cursor=pointer]:
- img [ref=e505]
- text: Help Center
- button "Settings" [ref=e507] [cursor=pointer]:
- img [ref=e508]
- text: Settings
- button "Switch Services" [ref=e511] [cursor=pointer]:
- img [ref=e512]
- text: Switch Services
- button "Logout" [ref=e517] [cursor=pointer]:
- img [ref=e518]
- text: Logout
- main [ref=e521]:
- generic [ref=e522]:
- generic [ref=e524]:
- img [ref=e525]
- textbox "Search resources..." [ref=e528]
- generic [ref=e529]:
- button [ref=e530] [cursor=pointer]:
- img [ref=e531]
- button [ref=e534] [cursor=pointer]:
- img [ref=e535]
- button [ref=e538] [cursor=pointer]:
- img [ref=e539]
- generic [ref=e542]:
- generic [ref=e543]:
- paragraph [ref=e544]: Current View
- paragraph [ref=e545]: Graphic Designer Portfolio
- paragraph [ref=e546]: Manage your public portfolio, showcase your work, and control what service seekers see before they accept your contact request.
- generic [ref=e616]:
- button "Overview Summary" [ref=e617] [cursor=pointer]:
- img [ref=e619]
- generic [ref=e624]:
- generic [ref=e625]: Overview
- generic [ref=e626]: Summary
- button "About Profile" [ref=e627] [cursor=pointer]:
- img [ref=e629]
- generic [ref=e633]:
- generic [ref=e634]: About
- generic [ref=e635]: Profile
- button "Services & Pricing Pricing" [ref=e636] [cursor=pointer]:
- img [ref=e638]
- generic [ref=e643]:
- generic [ref=e644]: Services & Pricing
- generic [ref=e645]: Pricing
- button "Portfolio Work" [ref=e646] [cursor=pointer]:
- img [ref=e648]
- generic [ref=e652]:
- generic [ref=e653]: Portfolio
- generic [ref=e654]: Work
- button "Experience & Tools History" [ref=e655] [cursor=pointer]:
- img [ref=e657]
- generic [ref=e661]:
- generic [ref=e662]: Experience & Tools
- generic [ref=e663]: History
- button "Testimonials Locked" [disabled] [ref=e664]:
- img [ref=e666]
- generic [ref=e668]:
- generic [ref=e669]: Testimonials
- generic [ref=e670]: Locked
- button "Faqs Answers" [ref=e671] [cursor=pointer]:
- img [ref=e673]
- generic [ref=e676]:
- generic [ref=e677]: Faqs
- generic [ref=e678]: Answers
- generic [ref=e679]:
- generic [ref=e680]:
- generic [ref=e682]:
- generic [ref=e683]:
- generic [ref=e684]:
- paragraph [ref=e685]: Alex Morgan
- generic [ref=e686]: Verified
- generic [ref=e687]: Top Response Rate
- generic [ref=e688]: Portfolio UI v2
- paragraph [ref=e689]: Graphic Designer
- generic [ref=e690]:
- generic [ref=e691]: "Area: Mumbai Region"
- generic [ref=e692]: "Place: Andheri East, Mumbai"
- generic [ref=e693]: "Travel: Mumbai, Navi Mumbai, Thane, Pune"
- generic [ref=e694]:
- button "Edit Portfolio" [ref=e695] [cursor=pointer]
- button "Preview Portfolio" [ref=e696] [cursor=pointer]
- generic [ref=e697]:
- generic [ref=e698]:
- paragraph [ref=e699]: Projects Done
- paragraph [ref=e700]: "248"
- generic [ref=e701]:
- paragraph [ref=e702]: Years Exp
- paragraph [ref=e703]: 7+
- generic [ref=e704]:
- paragraph [ref=e705]: Verified Pro
- paragraph [ref=e706]: Verified
- generic [ref=e707]:
- paragraph [ref=e708]: Last Delivery
- paragraph [ref=e709]: 2 days
- generic [ref=e710]:
- paragraph [ref=e711]: Remote OK
- paragraph [ref=e712]: "Yes"
- generic [ref=e713]:
- generic [ref=e714]:
- generic [ref=e715]:
- paragraph [ref=e716]: Profile Strength
- paragraph [ref=e717]: 92%
- paragraph [ref=e718]: Complete and visible
- img [ref=e720]
- generic [ref=e723]:
- generic [ref=e724]:
- paragraph [ref=e725]: Win Momentum
- paragraph [ref=e726]: +18%
- paragraph [ref=e727]: Last 30 days
- img [ref=e729]
- generic [ref=e732]:
- generic [ref=e733]:
- paragraph [ref=e734]: Featured Status
- paragraph [ref=e735]: "Yes"
- paragraph [ref=e736]: Recommended in search
- img [ref=e738]
- generic [ref=e741]:
- generic [ref=e742]:
- paragraph [ref=e743]: Avg. Reply Time
- paragraph [ref=e744]: 2 hrs
- paragraph [ref=e745]: Fast responder
- img [ref=e747]
- generic [ref=e749]:
- generic [ref=e750]:
- paragraph [ref=e752]:
- img [ref=e753]
- text: About
- generic [ref=e757]:
- paragraph [ref=e758]: Professional graphic designer with 7+ years of experience delivering high-quality work across India. Committed to excellence, creativity, and client satisfaction on every project.
- generic [ref=e759]:
- generic [ref=e760]: Fast response within 2 hours
- generic [ref=e761]: Clear scope & milestone planning
- generic [ref=e762]: Delivery-first execution
- generic [ref=e763]:
- generic [ref=e764]:
- paragraph [ref=e765]: Years Exp
- paragraph [ref=e766]: 7+
- generic [ref=e767]:
- paragraph [ref=e768]: Projects
- paragraph [ref=e769]: "248"
- generic [ref=e770]:
- paragraph [ref=e771]: Rating
- paragraph [ref=e772]: "4.9"
- generic [ref=e773]:
- paragraph [ref=e774]: Reviews
- paragraph [ref=e775]: "128"
- generic [ref=e776]:
- paragraph [ref=e778]:
- img [ref=e779]
- text: Specialties
- generic [ref=e784]:
- generic [ref=e785]: Brand Identity
- generic [ref=e786]: UI/UX Design
- generic [ref=e787]: Print
- generic [ref=e788]: Social Media
- generic [ref=e789]: Motion
- generic [ref=e790]: Packaging
- generic [ref=e791]:
- paragraph [ref=e792]: Languages
- generic [ref=e793]:
- generic [ref=e794]: English
- generic [ref=e795]: Hindi
- generic [ref=e796]: Marathi
- paragraph [ref=e797]: Service Areas
- generic [ref=e798]:
- generic [ref=e799]: Mumbai
- generic [ref=e800]: Pune
- generic [ref=e801]: Thane
- generic [ref=e802]: Nashik
- generic [ref=e803]:
- generic [ref=e804]:
- paragraph [ref=e805]:
- img [ref=e806]
- text: Services & Pricing
- generic [ref=e811]: Transparent Pricing
- generic [ref=e812]:
- generic [ref=e813]:
- paragraph [ref=e814]: Logo Pack
- paragraph [ref=e815]: ₹8,000
- generic [ref=e816]:
- generic [ref=e817]:
- img [ref=e818]
- text: 3 logo concepts
- generic [ref=e821]:
- img [ref=e822]
- text: 2 revisions
- generic [ref=e825]:
- img [ref=e826]
- text: All file formats
- generic [ref=e829]:
- img [ref=e830]
- text: Usage rights
- generic [ref=e833]:
- generic [ref=e834]: Most Chosen
- paragraph [ref=e835]: Brand Kit
- paragraph [ref=e836]: ₹22,000
- generic [ref=e837]:
- generic [ref=e838]:
- img [ref=e839]
- text: Logo + palette
- generic [ref=e842]:
- img [ref=e843]
- text: Typography
- generic [ref=e846]:
- img [ref=e847]
- text: Brand guidelines
- generic [ref=e850]:
- img [ref=e851]
- text: Social templates
- generic [ref=e854]:
- paragraph [ref=e855]: Full Identity
- paragraph [ref=e856]: ₹45,000
- generic [ref=e857]:
- generic [ref=e858]:
- img [ref=e859]
- text: Complete brand
- generic [ref=e862]:
- img [ref=e863]
- text: UI kit
- generic [ref=e866]:
- img [ref=e867]
- text: Print collateral
- generic [ref=e870]:
- img [ref=e871]
- text: Motion logo
- generic [ref=e874]:
- generic [ref=e875]:
- paragraph [ref=e876]:
- img [ref=e877]
- text: Portfolio
- button "Upload Images" [ref=e881] [cursor=pointer]
- generic [ref=e882]:
- generic [ref=e883]:
- img [ref=e884]
- generic [ref=e888]: Campaign Shot
- generic [ref=e889]:
- img [ref=e890]
- generic [ref=e894]: Result Highlight
- generic [ref=e895]:
- img [ref=e896]
- generic [ref=e900]: Before/After
- generic [ref=e901]:
- img [ref=e902]
- generic [ref=e906]: Client Output
- generic [ref=e907]:
- img [ref=e908]
- generic [ref=e912]: Style Board
- generic [ref=e913]:
- img [ref=e914]
- generic [ref=e918]: Final Delivery
- generic [ref=e919]:
- img [ref=e920]
- generic [ref=e924]: Portfolio Select
- generic [ref=e925]:
- img [ref=e926]
- generic [ref=e930]: Recent Work
- generic [ref=e931]:
- paragraph [ref=e933]:
- img [ref=e934]
- text: Experience & Tools
- generic [ref=e938]:
- paragraph [ref=e939]: Design Tools
- generic [ref=e940]:
- generic [ref=e941]: Brand Identity
- generic [ref=e942]: UI/UX Design
- generic [ref=e943]: Print
- generic [ref=e944]: Social Media
- generic [ref=e945]: Motion
- generic [ref=e946]: Packaging
- generic [ref=e947]:
- generic [ref=e948]:
- paragraph [ref=e950]: "2018"
- paragraph [ref=e951]: Started professional career as Graphic Designer
- generic [ref=e952]:
- paragraph [ref=e954]: "2020"
- paragraph [ref=e955]: Completed 100+ successful projects
- generic [ref=e956]:
- paragraph [ref=e958]: "2022"
- paragraph [ref=e959]: Won regional industry recognition
- generic [ref=e960]:
- paragraph [ref=e962]: "2024"
- paragraph [ref=e963]: Joined Nxtgauge marketplace
- generic [ref=e964]:
- generic [ref=e965]:
- paragraph [ref=e966]:
- img [ref=e967]
- text: Testimonials
- generic [ref=e969]: Locked For New Profiles
- generic [ref=e971]:
- paragraph [ref=e972]: Testimonials will be activated automatically.
- paragraph [ref=e973]:
- text: New professionals unlock testimonials after completing at least
- strong [ref=e974]: 3 jobs
- text: and receiving at least
- strong [ref=e975]: 2 customer feedback entries
- text: .
- paragraph [ref=e976]: "Current progress: 1 jobs completed • 0 feedback received"
- generic [ref=e977]:
- paragraph [ref=e979]:
- img [ref=e980]
- text: Frequently Asked Questions
- generic [ref=e983]:
- button "What file formats do you deliver?" [ref=e984] [cursor=pointer]:
- generic [ref=e985]: What file formats do you deliver?
- img [ref=e986]
- paragraph [ref=e989]: Final files in AI, PDF, PNG, SVG, and any format required. Print-ready and web-optimised variants included.
- button "Do you create brand guidelines?" [ref=e991] [cursor=pointer]:
- generic [ref=e992]: Do you create brand guidelines?
- img [ref=e993]
- button "How many concepts do you provide initially?" [ref=e996] [cursor=pointer]:
- generic [ref=e997]: How many concepts do you provide initially?
- img [ref=e998]
- button "Do you handle printing coordination?" [ref=e1001] [cursor=pointer]:
- generic [ref=e1002]: Do you handle printing coordination?
- img [ref=e1003]
- generic [ref=e613]:
- button "Cancel" [ref=e614] [cursor=pointer]
- button "Update Dashboard" [ref=e615] [cursor=pointer]

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

View file

@ -0,0 +1,229 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e282]:
- button "All Dashboards" [ref=e283] [cursor=pointer]
- button "Create Dashboard" [ref=e284] [cursor=pointer]
- generic [ref=e285]:
- generic [ref=e286]:
- textbox "Search dashboards..." [ref=e287]
- button "Sort" [ref=e289] [cursor=pointer]:
- img [ref=e290]
- text: Sort
- button "Filters" [ref=e294] [cursor=pointer]:
- img [ref=e295]
- text: Filters
- button "Export" [ref=e297] [cursor=pointer]:
- img [ref=e298]
- text: Export
- table [ref=e302]:
- rowgroup [ref=e303]:
- row "Name Code Role Widgets Status Updated Actions" [ref=e304]:
- columnheader "Name" [ref=e305]
- columnheader "Code" [ref=e306]
- columnheader "Role" [ref=e307]
- columnheader "Widgets" [ref=e308]
- columnheader "Status" [ref=e309]
- columnheader "Updated" [ref=e310]
- columnheader "Actions" [ref=e311]
- rowgroup [ref=e312]:
- row "Loading dashboards..." [ref=e313]:
- cell "Loading dashboards..." [ref=e314]

View file

@ -0,0 +1,331 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e443]:
- generic [ref=e444]:
- paragraph [ref=e445]: Edit External Dashboard
- button "Back" [ref=e446] [cursor=pointer]
- generic [ref=e447]:
- button "General" [ref=e448] [cursor=pointer]
- button "Tabs" [ref=e449] [cursor=pointer]
- button "Sidebar" [ref=e450] [cursor=pointer]
- button "Fields" [ref=e451] [cursor=pointer]
- button "Preview" [ref=e452] [cursor=pointer]: Preview
- generic [ref=e456]:
- generic [ref=e457]:
- paragraph [ref=e458]: Actual End-User Dashboard UI Preview
- generic [ref=e459]: Active
- generic [ref=e460]:
- complementary [ref=e461]:
- img "Nxtgauge" [ref=e463]
- generic [ref=e464]:
- button "My Dashboard" [ref=e465] [cursor=pointer]:
- img [ref=e466]
- text: My Dashboard
- button "My Profile" [ref=e471] [cursor=pointer]:
- img [ref=e472]
- text: My Profile
- button "My Portfolio" [ref=e476] [cursor=pointer]:
- img [ref=e477]
- text: My Portfolio
- button "Leads" [ref=e481] [cursor=pointer]:
- img [ref=e482]
- text: Leads
- button "My Responses" [ref=e486] [cursor=pointer]:
- img [ref=e487]
- text: My Responses
- button "Credits" [ref=e490] [cursor=pointer]:
- img [ref=e491]
- text: Credits
- button "Explore Nxtgauge" [ref=e496] [cursor=pointer]:
- img [ref=e497]
- text: Explore Nxtgauge
- button "Verification" [ref=e500] [cursor=pointer]:
- img [ref=e501]
- text: Verification
- button "Help Center" [ref=e504] [cursor=pointer]:
- img [ref=e505]
- text: Help Center
- button "Settings" [ref=e507] [cursor=pointer]:
- img [ref=e508]
- text: Settings
- button "Switch Services" [ref=e511] [cursor=pointer]:
- img [ref=e512]
- text: Switch Services
- button "Logout" [ref=e517] [cursor=pointer]:
- img [ref=e518]
- text: Logout
- main [ref=e521]:
- generic [ref=e522]:
- generic [ref=e524]:
- img [ref=e525]
- textbox "Search resources..." [ref=e528]
- generic [ref=e529]:
- button [ref=e530] [cursor=pointer]:
- img [ref=e531]
- button [ref=e534] [cursor=pointer]:
- img [ref=e535]
- button [ref=e538] [cursor=pointer]:
- img [ref=e539]
- generic [ref=e542]:
- generic [ref=e543]:
- paragraph [ref=e544]: Current View
- paragraph [ref=e545]: Graphic Designer Profile
- paragraph [ref=e546]: Manage design profile, service pricing, portfolio assets, and documents.
- generic [ref=e547]:
- button "Basic Info" [ref=e548] [cursor=pointer]
- button "Design Profile" [ref=e549] [cursor=pointer]
- button "Services & Pricing" [ref=e550] [cursor=pointer]
- button "Portfolio" [ref=e551] [cursor=pointer]
- button "Documents" [ref=e552] [cursor=pointer]
- button "Settings" [ref=e553] [cursor=pointer]
- generic [ref=e555]:
- generic [ref=e556]:
- generic [ref=e557]:
- paragraph [ref=e558]: Basic Info
- generic [ref=e559]: 8 fields
- generic [ref=e560]:
- generic [ref=e561]:
- generic [ref=e562]:
- paragraph [ref=e563]: Full Name*
- generic [ref=e565]: Enter full name
- generic [ref=e566]:
- paragraph [ref=e567]: Brand Name*
- generic [ref=e569]: Enter brand name
- generic [ref=e570]:
- paragraph [ref=e571]: Email Address*
- generic [ref=e573]: Enter email address
- generic [ref=e574]:
- paragraph [ref=e575]: Mobile Number*
- generic [ref=e577]: Enter mobile number
- generic [ref=e578]:
- generic [ref=e579]:
- paragraph [ref=e580]: City*
- generic [ref=e582]: Enter city
- generic [ref=e583]:
- paragraph [ref=e584]: State*
- generic [ref=e586]: Enter state
- generic [ref=e587]:
- paragraph [ref=e588]: Country*
- generic [ref=e589]:
- generic [ref=e590]: Select country
- generic [ref=e591]:
- generic [ref=e592]:
- paragraph [ref=e593]: PIN Code*
- generic [ref=e595]: Enter 6-digit pincode
- generic [ref=e596]:
- button "Cancel" [ref=e597]
- button "Save Changes" [ref=e598]
- generic [ref=e599]:
- paragraph [ref=e600]: Profile Completeness
- paragraph [ref=e601]: 87%
- paragraph [ref=e604]: Active Section
- paragraph [ref=e605]: Basic Info
- paragraph [ref=e606]: Mandatory Fields
- paragraph [ref=e607]: "8"
- paragraph [ref=e608]: Marked with *
- paragraph [ref=e609]: Manage design profile, service pricing, portfolio assets, and documents.
- generic [ref=e610]:
- button "Save Changes" [ref=e611]
- button "Reset" [ref=e612]
- generic [ref=e613]:
- button "Cancel" [ref=e614] [cursor=pointer]
- button "Update Dashboard" [ref=e615] [cursor=pointer]

View file

@ -0,0 +1,562 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e443]:
- generic [ref=e444]:
- paragraph [ref=e445]: Edit External Dashboard
- button "Back" [ref=e446] [cursor=pointer]
- generic [ref=e447]:
- button "General" [ref=e448] [cursor=pointer]
- button "Tabs" [ref=e449] [cursor=pointer]
- button "Sidebar" [ref=e450] [cursor=pointer]
- button "Fields" [ref=e451] [cursor=pointer]
- button "Preview" [ref=e452] [cursor=pointer]: Preview
- generic [ref=e456]:
- generic [ref=e457]:
- paragraph [ref=e458]: Actual End-User Dashboard UI Preview
- generic [ref=e459]: Active
- generic [ref=e460]:
- complementary [ref=e461]:
- img "Nxtgauge" [ref=e463]
- generic [ref=e464]:
- button "My Dashboard" [ref=e465] [cursor=pointer]:
- img [ref=e466]
- text: My Dashboard
- button "My Profile" [ref=e471] [cursor=pointer]:
- img [ref=e472]
- text: My Profile
- button "My Portfolio" [active] [ref=e476] [cursor=pointer]:
- img [ref=e477]
- text: My Portfolio
- button "Leads" [ref=e481] [cursor=pointer]:
- img [ref=e482]
- text: Leads
- button "My Responses" [ref=e486] [cursor=pointer]:
- img [ref=e487]
- text: My Responses
- button "Credits" [ref=e490] [cursor=pointer]:
- img [ref=e491]
- text: Credits
- button "Explore Nxtgauge" [ref=e496] [cursor=pointer]:
- img [ref=e497]
- text: Explore Nxtgauge
- button "Verification" [ref=e500] [cursor=pointer]:
- img [ref=e501]
- text: Verification
- button "Help Center" [ref=e504] [cursor=pointer]:
- img [ref=e505]
- text: Help Center
- button "Settings" [ref=e507] [cursor=pointer]:
- img [ref=e508]
- text: Settings
- button "Switch Services" [ref=e511] [cursor=pointer]:
- img [ref=e512]
- text: Switch Services
- button "Logout" [ref=e517] [cursor=pointer]:
- img [ref=e518]
- text: Logout
- main [ref=e521]:
- generic [ref=e522]:
- generic [ref=e524]:
- img [ref=e525]
- textbox "Search resources..." [ref=e528]
- generic [ref=e529]:
- button [ref=e530] [cursor=pointer]:
- img [ref=e531]
- button [ref=e534] [cursor=pointer]:
- img [ref=e535]
- button [ref=e538] [cursor=pointer]:
- img [ref=e539]
- generic [ref=e542]:
- generic [ref=e543]:
- paragraph [ref=e544]: Current View
- paragraph [ref=e545]: Graphic Designer Portfolio
- paragraph [ref=e546]: Manage your public portfolio, showcase your work, and control what service seekers see before they accept your contact request.
- generic [ref=e616]:
- button "Overview Summary" [ref=e617] [cursor=pointer]:
- img [ref=e619]
- generic [ref=e624]:
- generic [ref=e625]: Overview
- generic [ref=e626]: Summary
- button "About Profile" [ref=e627] [cursor=pointer]:
- img [ref=e629]
- generic [ref=e633]:
- generic [ref=e634]: About
- generic [ref=e635]: Profile
- button "Services & Pricing Pricing" [ref=e636] [cursor=pointer]:
- img [ref=e638]
- generic [ref=e643]:
- generic [ref=e644]: Services & Pricing
- generic [ref=e645]: Pricing
- button "Portfolio Work" [ref=e646] [cursor=pointer]:
- img [ref=e648]
- generic [ref=e652]:
- generic [ref=e653]: Portfolio
- generic [ref=e654]: Work
- button "Experience & Tools History" [ref=e655] [cursor=pointer]:
- img [ref=e657]
- generic [ref=e661]:
- generic [ref=e662]: Experience & Tools
- generic [ref=e663]: History
- button "Testimonials Locked" [disabled] [ref=e664]:
- img [ref=e666]
- generic [ref=e668]:
- generic [ref=e669]: Testimonials
- generic [ref=e670]: Locked
- button "Faqs Answers" [ref=e671] [cursor=pointer]:
- img [ref=e673]
- generic [ref=e676]:
- generic [ref=e677]: Faqs
- generic [ref=e678]: Answers
- generic [ref=e679]:
- generic [ref=e680]:
- generic [ref=e682]:
- generic [ref=e683]:
- generic [ref=e684]:
- paragraph [ref=e685]: Alex Morgan
- generic [ref=e686]: Verified
- generic [ref=e687]: Top Response Rate
- generic [ref=e688]: Portfolio UI v2
- paragraph [ref=e689]: Graphic Designer
- generic [ref=e690]:
- generic [ref=e691]: "Area: Mumbai Region"
- generic [ref=e692]: "Place: Andheri East, Mumbai"
- generic [ref=e693]: "Travel: Mumbai, Navi Mumbai, Thane, Pune"
- generic [ref=e694]:
- button "Edit Portfolio" [ref=e695] [cursor=pointer]
- button "Preview Portfolio" [ref=e696] [cursor=pointer]
- generic [ref=e697]:
- generic [ref=e698]:
- paragraph [ref=e699]: Projects Done
- paragraph [ref=e700]: "248"
- generic [ref=e701]:
- paragraph [ref=e702]: Years Exp
- paragraph [ref=e703]: 7+
- generic [ref=e704]:
- paragraph [ref=e705]: Verified Pro
- paragraph [ref=e706]: Verified
- generic [ref=e707]:
- paragraph [ref=e708]: Last Delivery
- paragraph [ref=e709]: 2 days
- generic [ref=e710]:
- paragraph [ref=e711]: Remote OK
- paragraph [ref=e712]: "Yes"
- generic [ref=e713]:
- generic [ref=e714]:
- generic [ref=e715]:
- paragraph [ref=e716]: Profile Strength
- paragraph [ref=e717]: 92%
- paragraph [ref=e718]: Complete and visible
- img [ref=e720]
- generic [ref=e723]:
- generic [ref=e724]:
- paragraph [ref=e725]: Win Momentum
- paragraph [ref=e726]: +18%
- paragraph [ref=e727]: Last 30 days
- img [ref=e729]
- generic [ref=e732]:
- generic [ref=e733]:
- paragraph [ref=e734]: Featured Status
- paragraph [ref=e735]: "Yes"
- paragraph [ref=e736]: Recommended in search
- img [ref=e738]
- generic [ref=e741]:
- generic [ref=e742]:
- paragraph [ref=e743]: Avg. Reply Time
- paragraph [ref=e744]: 2 hrs
- paragraph [ref=e745]: Fast responder
- img [ref=e747]
- generic [ref=e749]:
- generic [ref=e750]:
- paragraph [ref=e752]:
- img [ref=e753]
- text: About
- generic [ref=e757]:
- paragraph [ref=e758]: Professional graphic designer with 7+ years of experience delivering high-quality work across India. Committed to excellence, creativity, and client satisfaction on every project.
- generic [ref=e759]:
- generic [ref=e760]: Fast response within 2 hours
- generic [ref=e761]: Clear scope & milestone planning
- generic [ref=e762]: Delivery-first execution
- generic [ref=e763]:
- generic [ref=e764]:
- paragraph [ref=e765]: Years Exp
- paragraph [ref=e766]: 7+
- generic [ref=e767]:
- paragraph [ref=e768]: Projects
- paragraph [ref=e769]: "248"
- generic [ref=e770]:
- paragraph [ref=e771]: Rating
- paragraph [ref=e772]: "4.9"
- generic [ref=e773]:
- paragraph [ref=e774]: Reviews
- paragraph [ref=e775]: "128"
- generic [ref=e776]:
- paragraph [ref=e778]:
- img [ref=e779]
- text: Specialties
- generic [ref=e784]:
- generic [ref=e785]: Brand Identity
- generic [ref=e786]: UI/UX Design
- generic [ref=e787]: Print
- generic [ref=e788]: Social Media
- generic [ref=e789]: Motion
- generic [ref=e790]: Packaging
- generic [ref=e791]:
- paragraph [ref=e792]: Languages
- generic [ref=e793]:
- generic [ref=e794]: English
- generic [ref=e795]: Hindi
- generic [ref=e796]: Marathi
- paragraph [ref=e797]: Service Areas
- generic [ref=e798]:
- generic [ref=e799]: Mumbai
- generic [ref=e800]: Pune
- generic [ref=e801]: Thane
- generic [ref=e802]: Nashik
- generic [ref=e803]:
- generic [ref=e804]:
- paragraph [ref=e805]:
- img [ref=e806]
- text: Services & Pricing
- generic [ref=e811]: Transparent Pricing
- generic [ref=e812]:
- generic [ref=e813]:
- paragraph [ref=e814]: Logo Pack
- paragraph [ref=e815]: ₹8,000
- generic [ref=e816]:
- generic [ref=e817]:
- img [ref=e818]
- text: 3 logo concepts
- generic [ref=e821]:
- img [ref=e822]
- text: 2 revisions
- generic [ref=e825]:
- img [ref=e826]
- text: All file formats
- generic [ref=e829]:
- img [ref=e830]
- text: Usage rights
- generic [ref=e833]:
- generic [ref=e834]: Most Chosen
- paragraph [ref=e835]: Brand Kit
- paragraph [ref=e836]: ₹22,000
- generic [ref=e837]:
- generic [ref=e838]:
- img [ref=e839]
- text: Logo + palette
- generic [ref=e842]:
- img [ref=e843]
- text: Typography
- generic [ref=e846]:
- img [ref=e847]
- text: Brand guidelines
- generic [ref=e850]:
- img [ref=e851]
- text: Social templates
- generic [ref=e854]:
- paragraph [ref=e855]: Full Identity
- paragraph [ref=e856]: ₹45,000
- generic [ref=e857]:
- generic [ref=e858]:
- img [ref=e859]
- text: Complete brand
- generic [ref=e862]:
- img [ref=e863]
- text: UI kit
- generic [ref=e866]:
- img [ref=e867]
- text: Print collateral
- generic [ref=e870]:
- img [ref=e871]
- text: Motion logo
- generic [ref=e874]:
- generic [ref=e875]:
- paragraph [ref=e876]:
- img [ref=e877]
- text: Portfolio
- button "Upload Images" [ref=e881] [cursor=pointer]
- generic [ref=e882]:
- generic [ref=e883]:
- img [ref=e884]
- generic [ref=e888]: Campaign Shot
- generic [ref=e889]:
- img [ref=e890]
- generic [ref=e894]: Result Highlight
- generic [ref=e895]:
- img [ref=e896]
- generic [ref=e900]: Before/After
- generic [ref=e901]:
- img [ref=e902]
- generic [ref=e906]: Client Output
- generic [ref=e907]:
- img [ref=e908]
- generic [ref=e912]: Style Board
- generic [ref=e913]:
- img [ref=e914]
- generic [ref=e918]: Final Delivery
- generic [ref=e919]:
- img [ref=e920]
- generic [ref=e924]: Portfolio Select
- generic [ref=e925]:
- img [ref=e926]
- generic [ref=e930]: Recent Work
- generic [ref=e931]:
- paragraph [ref=e933]:
- img [ref=e934]
- text: Experience & Tools
- generic [ref=e938]:
- paragraph [ref=e939]: Design Tools
- generic [ref=e940]:
- generic [ref=e941]: Brand Identity
- generic [ref=e942]: UI/UX Design
- generic [ref=e943]: Print
- generic [ref=e944]: Social Media
- generic [ref=e945]: Motion
- generic [ref=e946]: Packaging
- generic [ref=e947]:
- generic [ref=e948]:
- paragraph [ref=e950]: "2018"
- paragraph [ref=e951]: Started professional career as Graphic Designer
- generic [ref=e952]:
- paragraph [ref=e954]: "2020"
- paragraph [ref=e955]: Completed 100+ successful projects
- generic [ref=e956]:
- paragraph [ref=e958]: "2022"
- paragraph [ref=e959]: Won regional industry recognition
- generic [ref=e960]:
- paragraph [ref=e962]: "2024"
- paragraph [ref=e963]: Joined Nxtgauge marketplace
- generic [ref=e964]:
- generic [ref=e965]:
- paragraph [ref=e966]:
- img [ref=e967]
- text: Testimonials
- generic [ref=e969]: Locked For New Profiles
- generic [ref=e971]:
- paragraph [ref=e972]: Testimonials will be activated automatically.
- paragraph [ref=e973]:
- text: New professionals unlock testimonials after completing at least
- strong [ref=e974]: 3 jobs
- text: and receiving at least
- strong [ref=e975]: 2 customer feedback entries
- text: .
- paragraph [ref=e976]: "Current progress: 1 jobs completed • 0 feedback received"
- generic [ref=e977]:
- paragraph [ref=e979]:
- img [ref=e980]
- text: Frequently Asked Questions
- generic [ref=e983]:
- button "What file formats do you deliver?" [ref=e984] [cursor=pointer]:
- generic [ref=e985]: What file formats do you deliver?
- img [ref=e986]
- paragraph [ref=e989]: Final files in AI, PDF, PNG, SVG, and any format required. Print-ready and web-optimised variants included.
- button "Do you create brand guidelines?" [ref=e991] [cursor=pointer]:
- generic [ref=e992]: Do you create brand guidelines?
- img [ref=e993]
- button "How many concepts do you provide initially?" [ref=e996] [cursor=pointer]:
- generic [ref=e997]: How many concepts do you provide initially?
- img [ref=e998]
- button "Do you handle printing coordination?" [ref=e1001] [cursor=pointer]:
- generic [ref=e1002]: Do you handle printing coordination?
- img [ref=e1003]
- generic [ref=e613]:
- button "Cancel" [ref=e614] [cursor=pointer]
- button "Update Dashboard" [ref=e615] [cursor=pointer]

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

View file

@ -0,0 +1,229 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e282]:
- button "All Dashboards" [ref=e283] [cursor=pointer]
- button "Create Dashboard" [ref=e284] [cursor=pointer]
- generic [ref=e285]:
- generic [ref=e286]:
- textbox "Search dashboards..." [ref=e287]
- button "Sort" [ref=e289] [cursor=pointer]:
- img [ref=e290]
- text: Sort
- button "Filters" [ref=e294] [cursor=pointer]:
- img [ref=e295]
- text: Filters
- button "Export" [ref=e297] [cursor=pointer]:
- img [ref=e298]
- text: Export
- table [ref=e302]:
- rowgroup [ref=e303]:
- row "Name Code Role Widgets Status Updated Actions" [ref=e304]:
- columnheader "Name" [ref=e305]
- columnheader "Code" [ref=e306]
- columnheader "Role" [ref=e307]
- columnheader "Widgets" [ref=e308]
- columnheader "Status" [ref=e309]
- columnheader "Updated" [ref=e310]
- columnheader "Actions" [ref=e311]
- rowgroup [ref=e312]:
- row "Loading dashboards..." [ref=e313]:
- cell "Loading dashboards..." [ref=e314]

View file

@ -0,0 +1,331 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e443]:
- generic [ref=e444]:
- paragraph [ref=e445]: Edit External Dashboard
- button "Back" [ref=e446] [cursor=pointer]
- generic [ref=e447]:
- button "General" [ref=e448] [cursor=pointer]
- button "Tabs" [ref=e449] [cursor=pointer]
- button "Sidebar" [ref=e450] [cursor=pointer]
- button "Fields" [ref=e451] [cursor=pointer]
- button "Preview" [ref=e452] [cursor=pointer]: Preview
- generic [ref=e456]:
- generic [ref=e457]:
- paragraph [ref=e458]: Actual End-User Dashboard UI Preview
- generic [ref=e459]: Active
- generic [ref=e460]:
- complementary [ref=e461]:
- img "Nxtgauge" [ref=e463]
- generic [ref=e464]:
- button "My Dashboard" [ref=e465] [cursor=pointer]:
- img [ref=e466]
- text: My Dashboard
- button "My Profile" [ref=e471] [cursor=pointer]:
- img [ref=e472]
- text: My Profile
- button "My Portfolio" [ref=e476] [cursor=pointer]:
- img [ref=e477]
- text: My Portfolio
- button "Leads" [ref=e481] [cursor=pointer]:
- img [ref=e482]
- text: Leads
- button "My Responses" [ref=e486] [cursor=pointer]:
- img [ref=e487]
- text: My Responses
- button "Credits" [ref=e490] [cursor=pointer]:
- img [ref=e491]
- text: Credits
- button "Explore Nxtgauge" [ref=e496] [cursor=pointer]:
- img [ref=e497]
- text: Explore Nxtgauge
- button "Verification" [ref=e500] [cursor=pointer]:
- img [ref=e501]
- text: Verification
- button "Help Center" [ref=e504] [cursor=pointer]:
- img [ref=e505]
- text: Help Center
- button "Settings" [ref=e507] [cursor=pointer]:
- img [ref=e508]
- text: Settings
- button "Switch Services" [ref=e511] [cursor=pointer]:
- img [ref=e512]
- text: Switch Services
- button "Logout" [ref=e517] [cursor=pointer]:
- img [ref=e518]
- text: Logout
- main [ref=e521]:
- generic [ref=e522]:
- generic [ref=e524]:
- img [ref=e525]
- textbox "Search resources..." [ref=e528]
- generic [ref=e529]:
- button [ref=e530] [cursor=pointer]:
- img [ref=e531]
- button [ref=e534] [cursor=pointer]:
- img [ref=e535]
- button [ref=e538] [cursor=pointer]:
- img [ref=e539]
- generic [ref=e542]:
- generic [ref=e543]:
- paragraph [ref=e544]: Current View
- paragraph [ref=e545]: Graphic Designer Profile
- paragraph [ref=e546]: Manage design profile, service pricing, portfolio assets, and documents.
- generic [ref=e547]:
- button "Basic Info" [ref=e548] [cursor=pointer]
- button "Design Profile" [ref=e549] [cursor=pointer]
- button "Services & Pricing" [ref=e550] [cursor=pointer]
- button "Portfolio" [ref=e551] [cursor=pointer]
- button "Documents" [ref=e552] [cursor=pointer]
- button "Settings" [ref=e553] [cursor=pointer]
- generic [ref=e555]:
- generic [ref=e556]:
- generic [ref=e557]:
- paragraph [ref=e558]: Basic Info
- generic [ref=e559]: 8 fields
- generic [ref=e560]:
- generic [ref=e561]:
- generic [ref=e562]:
- paragraph [ref=e563]: Full Name*
- generic [ref=e565]: Enter full name
- generic [ref=e566]:
- paragraph [ref=e567]: Brand Name*
- generic [ref=e569]: Enter brand name
- generic [ref=e570]:
- paragraph [ref=e571]: Email Address*
- generic [ref=e573]: Enter email address
- generic [ref=e574]:
- paragraph [ref=e575]: Mobile Number*
- generic [ref=e577]: Enter mobile number
- generic [ref=e578]:
- generic [ref=e579]:
- paragraph [ref=e580]: City*
- generic [ref=e582]: Enter city
- generic [ref=e583]:
- paragraph [ref=e584]: State*
- generic [ref=e586]: Enter state
- generic [ref=e587]:
- paragraph [ref=e588]: Country*
- generic [ref=e589]:
- generic [ref=e590]: Select country
- generic [ref=e591]:
- generic [ref=e592]:
- paragraph [ref=e593]: PIN Code*
- generic [ref=e595]: Enter 6-digit pincode
- generic [ref=e596]:
- button "Cancel" [ref=e597]
- button "Save Changes" [ref=e598]
- generic [ref=e599]:
- paragraph [ref=e600]: Profile Completeness
- paragraph [ref=e601]: 87%
- paragraph [ref=e604]: Active Section
- paragraph [ref=e605]: Basic Info
- paragraph [ref=e606]: Mandatory Fields
- paragraph [ref=e607]: "8"
- paragraph [ref=e608]: Marked with *
- paragraph [ref=e609]: Manage design profile, service pricing, portfolio assets, and documents.
- generic [ref=e610]:
- button "Save Changes" [ref=e611]
- button "Reset" [ref=e612]
- generic [ref=e613]:
- button "Cancel" [ref=e614] [cursor=pointer]
- button "Update Dashboard" [ref=e615] [cursor=pointer]

View file

@ -0,0 +1,519 @@
- generic [ref=e4]:
- complementary [ref=e6]:
- generic [ref=e7]:
- link "Nxtgauge" [ref=e8] [cursor=pointer]:
- /url: /admin
- img "Nxtgauge" [ref=e9]
- button "Collapse sidebar" [ref=e10] [cursor=pointer]:
- img [ref=e11]
- navigation [ref=e13]:
- link "Dashboard" [ref=e15] [cursor=pointer]:
- /url: /admin
- img [ref=e16]
- generic [ref=e21]: Dashboard
- generic [ref=e23]:
- link "Department Management" [ref=e24] [cursor=pointer]:
- /url: /admin/department
- img [ref=e25]
- generic [ref=e29]: Department Management
- link "Designation Management" [ref=e30] [cursor=pointer]:
- /url: /admin/designation
- img [ref=e31]
- generic [ref=e34]: Designation Management
- link "Internal Role Management" [ref=e35] [cursor=pointer]:
- /url: /admin/roles
- img [ref=e36]
- generic [ref=e39]: Internal Role Management
- link "Employee Management" [ref=e40] [cursor=pointer]:
- /url: /admin/employees
- img [ref=e41]
- generic [ref=e46]: Employee Management
- generic [ref=e48]:
- link "External Role Management" [ref=e49] [cursor=pointer]:
- /url: /admin/external-roles
- img [ref=e50]
- generic [ref=e53]: External Role Management
- link "External Onboarding Management" [ref=e54] [cursor=pointer]:
- /url: /admin/onboarding-management
- img [ref=e55]
- generic [ref=e58]: External Onboarding Management
- link "Internal Dashboard Management" [ref=e59] [cursor=pointer]:
- /url: /admin/internal-dashboard-management
- img [ref=e60]
- generic [ref=e65]: Internal Dashboard Management
- link "External Dashboard Management" [ref=e66] [cursor=pointer]:
- /url: /admin/external-dashboard-management
- img [ref=e67]
- generic [ref=e72]: External Dashboard Management
- generic [ref=e74]:
- link "Verification Management" [ref=e75] [cursor=pointer]:
- /url: /admin/verification
- img [ref=e76]
- generic [ref=e79]: Verification Management
- link "Approval Management" [ref=e80] [cursor=pointer]:
- /url: /admin/approval
- img [ref=e81]
- generic [ref=e84]: Approval Management
- generic [ref=e86]:
- link "Users Management" [ref=e87] [cursor=pointer]:
- /url: /admin/users
- img [ref=e88]
- generic [ref=e93]: Users Management
- link "Company Management" [ref=e94] [cursor=pointer]:
- /url: /admin/company
- img [ref=e95]
- generic [ref=e99]: Company Management
- link "Candidate Management" [ref=e100] [cursor=pointer]:
- /url: /admin/candidate
- img [ref=e101]
- generic [ref=e105]: Candidate Management
- link "Customer Management" [ref=e106] [cursor=pointer]:
- /url: /admin/customer
- img [ref=e107]
- generic [ref=e111]: Customer Management
- generic [ref=e113]:
- link "Photographer Management" [ref=e114] [cursor=pointer]:
- /url: /admin/photographer
- img [ref=e115]
- generic [ref=e118]: Photographer Management
- link "Makeup Artist Management" [ref=e119] [cursor=pointer]:
- /url: /admin/makeup-artist
- img [ref=e120]
- generic [ref=e126]: Makeup Artist Management
- link "Tutors Management" [ref=e127] [cursor=pointer]:
- /url: /admin/tutors
- img [ref=e128]
- generic [ref=e130]: Tutors Management
- link "Developers Management" [ref=e131] [cursor=pointer]:
- /url: /admin/developers
- img [ref=e132]
- generic [ref=e136]: Developers Management
- link "Video Editor Management" [ref=e137] [cursor=pointer]:
- /url: /admin/video-editors
- img [ref=e138]
- generic [ref=e140]: Video Editor Management
- link "Fitness Trainer Management" [ref=e141] [cursor=pointer]:
- /url: /admin/fitness-trainers
- img [ref=e142]
- generic [ref=e144]: Fitness Trainer Management
- link "Catering Services Management" [ref=e145] [cursor=pointer]:
- /url: /admin/catering-services
- img [ref=e146]
- generic [ref=e149]: Catering Services Management
- link "Graphics Designer Management" [ref=e150] [cursor=pointer]:
- /url: /admin/graphic-designers
- img [ref=e151]
- generic [ref=e156]: Graphics Designer Management
- link "Social Media Manager Management" [ref=e157] [cursor=pointer]:
- /url: /admin/social-media-managers
- img [ref=e158]
- generic [ref=e161]: Social Media Manager Management
- generic [ref=e163]:
- link "Jobs Management" [ref=e164] [cursor=pointer]:
- /url: /admin/jobs
- img [ref=e165]
- generic [ref=e169]: Jobs Management
- link "Leads Management" [ref=e170] [cursor=pointer]:
- /url: /admin/leads
- img [ref=e171]
- generic [ref=e175]: Leads Management
- link "Applications Management" [ref=e176] [cursor=pointer]:
- /url: /admin/applications
- img [ref=e177]
- generic [ref=e180]: Applications Management
- link "Responses Management" [ref=e181] [cursor=pointer]:
- /url: /admin/responses
- img [ref=e182]
- generic [ref=e185]: Responses Management
- generic [ref=e187]:
- link "Pricing Management" [ref=e188] [cursor=pointer]:
- /url: /admin/pricing
- img [ref=e189]
- generic [ref=e193]: Pricing Management
- link "Credit Management" [ref=e194] [cursor=pointer]:
- /url: /admin/credit
- img [ref=e195]
- generic [ref=e197]: Credit Management
- link "Coupon Management" [ref=e198] [cursor=pointer]:
- /url: /admin/coupon
- img [ref=e199]
- generic [ref=e202]: Coupon Management
- link "Discount Management" [ref=e203] [cursor=pointer]:
- /url: /admin/discount
- img [ref=e204]
- generic [ref=e208]: Discount Management
- link "Tax Management" [ref=e209] [cursor=pointer]:
- /url: /admin/tax
- img [ref=e210]
- generic [ref=e213]: Tax Management
- link "Order Management" [ref=e214] [cursor=pointer]:
- /url: /admin/order
- img [ref=e215]
- generic [ref=e219]: Order Management
- link "Invoice Management" [ref=e220] [cursor=pointer]:
- /url: /admin/invoice
- img [ref=e221]
- generic [ref=e225]: Invoice Management
- generic [ref=e227]:
- link "Knowledge Base Management" [ref=e228] [cursor=pointer]:
- /url: /admin/kb
- img [ref=e229]
- generic [ref=e231]: Knowledge Base Management
- link "Notifications" [ref=e232] [cursor=pointer]:
- /url: /admin/notifications
- img [ref=e233]
- generic [ref=e236]: Notifications
- link "Review Management" [ref=e237] [cursor=pointer]:
- /url: /admin/review
- img [ref=e238]
- generic [ref=e240]: Review Management
- link "Support Management" [ref=e241] [cursor=pointer]:
- /url: /admin/support
- img [ref=e242]
- generic [ref=e244]: Support Management
- link "Report Management" [ref=e245] [cursor=pointer]:
- /url: /admin/report
- img [ref=e246]
- generic [ref=e248]: Report Management
- link "Ledger Management" [ref=e249] [cursor=pointer]:
- /url: /admin/ledger
- img [ref=e250]
- generic [ref=e253]: Ledger Management
- generic [ref=e254]:
- banner [ref=e255]:
- generic [ref=e257]:
- button "Toggle theme" [ref=e258] [cursor=pointer]:
- img [ref=e259]
- button "Notifications" [ref=e261] [cursor=pointer]:
- img [ref=e262]
- button "Settings" [ref=e265] [cursor=pointer]:
- img [ref=e266]
- button "User menu" [ref=e270] [cursor=pointer]:
- generic [ref=e271]: AD
- generic [ref=e272]:
- paragraph [ref=e273]: Admin User
- paragraph [ref=e274]: Super Admin
- button "Logout" [ref=e275] [cursor=pointer]
- main [ref=e277]:
- generic [ref=e278]:
- generic [ref=e279]:
- heading "External Dashboard Management" [level=1] [ref=e280]
- paragraph [ref=e281]: Create dashboards with tabs, sidebar and fields, then preview before saving.
- generic [ref=e443]:
- generic [ref=e444]:
- paragraph [ref=e445]: Edit External Dashboard
- button "Back" [ref=e446] [cursor=pointer]
- generic [ref=e447]:
- button "General" [ref=e448] [cursor=pointer]
- button "Tabs" [ref=e449] [cursor=pointer]
- button "Sidebar" [ref=e450] [cursor=pointer]
- button "Fields" [ref=e451] [cursor=pointer]
- button "Preview" [ref=e452] [cursor=pointer]: Preview
- generic [ref=e456]:
- generic [ref=e457]:
- paragraph [ref=e458]: Actual End-User Dashboard UI Preview
- generic [ref=e459]: Active
- generic [ref=e460]:
- complementary [ref=e461]:
- img "Nxtgauge" [ref=e463]
- generic [ref=e464]:
- button "My Dashboard" [ref=e465] [cursor=pointer]:
- img [ref=e466]
- text: My Dashboard
- button "My Profile" [ref=e471] [cursor=pointer]:
- img [ref=e472]
- text: My Profile
- button "My Portfolio" [active] [ref=e476] [cursor=pointer]:
- img [ref=e477]
- text: My Portfolio
- button "Leads" [ref=e481] [cursor=pointer]:
- img [ref=e482]
- text: Leads
- button "My Responses" [ref=e486] [cursor=pointer]:
- img [ref=e487]
- text: My Responses
- button "Credits" [ref=e490] [cursor=pointer]:
- img [ref=e491]
- text: Credits
- button "Explore Nxtgauge" [ref=e496] [cursor=pointer]:
- img [ref=e497]
- text: Explore Nxtgauge
- button "Verification" [ref=e500] [cursor=pointer]:
- img [ref=e501]
- text: Verification
- button "Help Center" [ref=e504] [cursor=pointer]:
- img [ref=e505]
- text: Help Center
- button "Settings" [ref=e507] [cursor=pointer]:
- img [ref=e508]
- text: Settings
- button "Switch Services" [ref=e511] [cursor=pointer]:
- img [ref=e512]
- text: Switch Services
- button "Logout" [ref=e517] [cursor=pointer]:
- img [ref=e518]
- text: Logout
- main [ref=e521]:
- generic [ref=e522]:
- generic [ref=e524]:
- img [ref=e525]
- textbox "Search resources..." [ref=e528]
- generic [ref=e529]:
- button [ref=e530] [cursor=pointer]:
- img [ref=e531]
- button [ref=e534] [cursor=pointer]:
- img [ref=e535]
- button [ref=e538] [cursor=pointer]:
- img [ref=e539]
- generic [ref=e542]:
- generic [ref=e543]:
- paragraph [ref=e544]: Current View
- paragraph [ref=e545]: Graphic Designer Portfolio
- paragraph [ref=e546]: Manage your public portfolio, showcase your work, and control what service seekers see before they accept your contact request.
- generic [ref=e616]:
- button "Overview" [ref=e617] [cursor=pointer]:
- img [ref=e619]
- generic [ref=e624]: Overview
- button "About" [ref=e625] [cursor=pointer]:
- img [ref=e627]
- generic [ref=e631]: About
- button "Services & Pricing" [ref=e632] [cursor=pointer]:
- img [ref=e634]
- generic [ref=e639]: Services & Pricing
- button "Portfolio" [ref=e640] [cursor=pointer]:
- img [ref=e642]
- generic [ref=e646]: Portfolio
- button "Experience & Tools" [ref=e647] [cursor=pointer]:
- img [ref=e649]
- generic [ref=e653]: Experience & Tools
- button "Testimonials · Locked" [disabled] [ref=e654]:
- img [ref=e656]
- generic [ref=e658]: Testimonials · Locked
- button "Faqs" [ref=e659] [cursor=pointer]:
- img [ref=e661]
- generic [ref=e664]: Faqs
- generic [ref=e665]:
- generic [ref=e666]:
- generic [ref=e668]:
- generic [ref=e669]:
- generic [ref=e670]:
- paragraph [ref=e671]: Alex Morgan
- generic [ref=e672]: Verified
- generic [ref=e673]: Top Response Rate
- paragraph [ref=e674]: Graphic Designer
- generic [ref=e675]:
- generic [ref=e676]: "Area: Mumbai Region"
- generic [ref=e677]: "Place: Andheri East, Mumbai"
- generic [ref=e678]: "Travel: Mumbai, Navi Mumbai, Thane, Pune"
- generic [ref=e679]:
- button "Edit Portfolio" [ref=e680] [cursor=pointer]
- button "Preview Portfolio" [ref=e681] [cursor=pointer]
- generic [ref=e682]:
- generic [ref=e683]:
- paragraph [ref=e684]: Projects Done
- paragraph [ref=e685]: "248"
- generic [ref=e686]:
- paragraph [ref=e687]: Years Exp
- paragraph [ref=e688]: 7+
- generic [ref=e689]:
- paragraph [ref=e690]: Verified Pro
- paragraph [ref=e691]: Verified
- generic [ref=e692]:
- paragraph [ref=e693]: Last Delivery
- paragraph [ref=e694]: 2 days
- generic [ref=e695]:
- generic [ref=e696]:
- paragraph [ref=e698]:
- img [ref=e699]
- text: About
- generic [ref=e703]:
- paragraph [ref=e704]: Professional graphic designer with 7+ years of experience delivering high-quality work across India. Committed to excellence, creativity, and client satisfaction on every project.
- generic [ref=e705]:
- generic [ref=e706]: Fast response within 2 hours
- generic [ref=e707]: Clear scope & milestone planning
- generic [ref=e708]: Delivery-first execution
- generic [ref=e709]:
- generic [ref=e710]:
- paragraph [ref=e711]: Years Exp
- paragraph [ref=e712]: 7+
- generic [ref=e713]:
- paragraph [ref=e714]: Projects
- paragraph [ref=e715]: "248"
- generic [ref=e716]:
- paragraph [ref=e717]: Rating
- paragraph [ref=e718]: "4.9"
- generic [ref=e719]:
- paragraph [ref=e720]: Reviews
- paragraph [ref=e721]: "128"
- generic [ref=e722]:
- paragraph [ref=e724]:
- img [ref=e725]
- text: Specialties
- generic [ref=e730]:
- generic [ref=e731]: Brand Identity
- generic [ref=e732]: UI/UX Design
- generic [ref=e733]: Print
- generic [ref=e734]: Social Media
- generic [ref=e735]: Motion
- generic [ref=e736]: Packaging
- generic [ref=e737]:
- paragraph [ref=e738]: Languages
- generic [ref=e739]:
- generic [ref=e740]: English
- generic [ref=e741]: Hindi
- generic [ref=e742]: Marathi
- paragraph [ref=e743]: Service Areas
- generic [ref=e744]:
- generic [ref=e745]: Mumbai
- generic [ref=e746]: Pune
- generic [ref=e747]: Thane
- generic [ref=e748]: Nashik
- generic [ref=e749]:
- generic [ref=e750]:
- paragraph [ref=e751]:
- img [ref=e752]
- text: Services & Pricing
- generic [ref=e757]: Transparent Pricing
- generic [ref=e758]:
- generic [ref=e759]:
- paragraph [ref=e760]: Logo Pack
- paragraph [ref=e761]: ₹8,000
- generic [ref=e762]:
- generic [ref=e763]:
- img [ref=e764]
- text: 3 logo concepts
- generic [ref=e767]:
- img [ref=e768]
- text: 2 revisions
- generic [ref=e771]:
- img [ref=e772]
- text: All file formats
- generic [ref=e775]:
- img [ref=e776]
- text: Usage rights
- generic [ref=e779]:
- generic [ref=e780]: Most Chosen
- paragraph [ref=e781]: Brand Kit
- paragraph [ref=e782]: ₹22,000
- generic [ref=e783]:
- generic [ref=e784]:
- img [ref=e785]
- text: Logo + palette
- generic [ref=e788]:
- img [ref=e789]
- text: Typography
- generic [ref=e792]:
- img [ref=e793]
- text: Brand guidelines
- generic [ref=e796]:
- img [ref=e797]
- text: Social templates
- generic [ref=e800]:
- paragraph [ref=e801]: Full Identity
- paragraph [ref=e802]: ₹45,000
- generic [ref=e803]:
- generic [ref=e804]:
- img [ref=e805]
- text: Complete brand
- generic [ref=e808]:
- img [ref=e809]
- text: UI kit
- generic [ref=e812]:
- img [ref=e813]
- text: Print collateral
- generic [ref=e816]:
- img [ref=e817]
- text: Motion logo
- generic [ref=e820]:
- generic [ref=e821]:
- paragraph [ref=e822]:
- img [ref=e823]
- text: Portfolio
- button "Upload Images" [ref=e827] [cursor=pointer]
- generic [ref=e828]:
- generic [ref=e829]:
- img [ref=e830]
- generic [ref=e834]: Campaign Shot
- generic [ref=e835]:
- img [ref=e836]
- generic [ref=e840]: Result Highlight
- generic [ref=e841]:
- img [ref=e842]
- generic [ref=e846]: Before/After
- generic [ref=e847]:
- img [ref=e848]
- generic [ref=e852]: Client Output
- generic [ref=e853]:
- img [ref=e854]
- generic [ref=e858]: Style Board
- generic [ref=e859]:
- img [ref=e860]
- generic [ref=e864]: Final Delivery
- generic [ref=e865]:
- img [ref=e866]
- generic [ref=e870]: Portfolio Select
- generic [ref=e871]:
- img [ref=e872]
- generic [ref=e876]: Recent Work
- generic [ref=e877]:
- paragraph [ref=e879]:
- img [ref=e880]
- text: Experience & Tools
- generic [ref=e884]:
- paragraph [ref=e885]: Design Tools
- generic [ref=e886]:
- generic [ref=e887]: Brand Identity
- generic [ref=e888]: UI/UX Design
- generic [ref=e889]: Print
- generic [ref=e890]: Social Media
- generic [ref=e891]: Motion
- generic [ref=e892]: Packaging
- generic [ref=e893]:
- generic [ref=e894]:
- paragraph [ref=e896]: "2018"
- paragraph [ref=e897]: Started professional career as Graphic Designer
- generic [ref=e898]:
- paragraph [ref=e900]: "2020"
- paragraph [ref=e901]: Completed 100+ successful projects
- generic [ref=e902]:
- paragraph [ref=e904]: "2022"
- paragraph [ref=e905]: Won regional industry recognition
- generic [ref=e906]:
- paragraph [ref=e908]: "2024"
- paragraph [ref=e909]: Joined Nxtgauge marketplace
- generic [ref=e910]:
- generic [ref=e911]:
- paragraph [ref=e912]:
- img [ref=e913]
- text: Testimonials
- generic [ref=e915]: Locked For New Profiles
- generic [ref=e917]:
- paragraph [ref=e918]: Testimonials will be activated automatically.
- paragraph [ref=e919]:
- text: New professionals unlock testimonials after completing at least
- strong [ref=e920]: 3 jobs
- text: and receiving at least
- strong [ref=e921]: 2 customer feedback entries
- text: .
- paragraph [ref=e922]: "Current progress: 1 jobs completed • 0 feedback received"
- generic [ref=e923]:
- paragraph [ref=e925]:
- img [ref=e926]
- text: Frequently Asked Questions
- generic [ref=e929]:
- button "What file formats do you deliver?" [ref=e930] [cursor=pointer]:
- generic [ref=e931]: What file formats do you deliver?
- img [ref=e932]
- paragraph [ref=e935]: Final files in AI, PDF, PNG, SVG, and any format required. Print-ready and web-optimised variants included.
- button "Do you create brand guidelines?" [ref=e937] [cursor=pointer]:
- generic [ref=e938]: Do you create brand guidelines?
- img [ref=e939]
- button "How many concepts do you provide initially?" [ref=e942] [cursor=pointer]:
- generic [ref=e943]: How many concepts do you provide initially?
- img [ref=e944]
- button "Do you handle printing coordination?" [ref=e947] [cursor=pointer]:
- generic [ref=e948]: Do you handle printing coordination?
- img [ref=e949]
- generic [ref=e613]:
- button "Cancel" [ref=e614] [cursor=pointer]
- button "Update Dashboard" [ref=e615] [cursor=pointer]

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

View file

@ -7,7 +7,7 @@ import {
WalletCards, CreditCard, Tag, Percent, Receipt, ShoppingCart,
FileCheck, Star, HeadphonesIcon, BarChart3,
ChevronLeft, BadgeCheck, Activity, Film, Utensils, PenTool,
Megaphone, Bell,
Megaphone, Bell, Video,
} from 'lucide-solid';
type NavItem = {
@ -54,6 +54,7 @@ const GROUPS: NavItem[][] = [
{ href: '/admin/catering-services', label: 'Catering Services Management', icon: Utensils, moduleKeys: ['CATERING_SERVICES_MANAGEMENT', 'CATERING_SERVICES'] },
{ href: '/admin/graphic-designers', label: 'Graphics Designer Management', icon: PenTool, moduleKeys: ['GRAPHIC_DESIGNER_MANAGEMENT', 'GRAPHIC_DESIGNERS'] },
{ href: '/admin/social-media-managers', label: 'Social Media Manager Management', icon: Megaphone, moduleKeys: ['SOCIAL_MEDIA_MANAGEMENT', 'SOCIAL_MEDIA_MANAGER_MANAGEMENT', 'SOCIAL_MEDIA_MANAGERS'] },
{ href: '/admin/ugc-content-creator', label: 'UGC Content Creator Management', icon: Video, moduleKeys: ['UGC_CONTENT_CREATOR_MANAGEMENT', 'UGC_CONTENT_CREATOR'] },
],
[
{ href: '/admin/jobs', label: 'Jobs Management', icon: BriefcaseBusiness, moduleKeys: ['JOBS_MANAGEMENT', 'JOBS'] },

View file

@ -8,7 +8,7 @@ type SortMode = 'newest' | 'oldest' | 'name_asc' | 'name_desc';
async function fetchUsers(role: string): Promise<any[]> {
try {
const res = await fetch(`${API}/api/admin/users?role=${encodeURIComponent(role)}`);
const res = await fetch(`${API}/api/admin/users?role=${role.toUpperCase()}`);
if (!res.ok) throw new Error('Failed to load');
const data = await res.json();
return Array.isArray(data) ? data : (data.users || []);

View file

@ -149,134 +149,7 @@ function extractDocuments(source: any): ApprovalDocument[] {
});
}
const FALLBACK_APPROVAL_ROWS: ApprovalRecord[] = [
{
id: 'AP-P-92841',
name: 'Profile Approval - Sarah Jenkins (Demo)',
applicantName: 'Sarah Jenkins (Demo)',
approvalType: 'PROFILE',
userType: 'PROFESSIONAL',
roleTags: ['Photographer'],
primaryService: 'Photography',
area: 'T. Nagar, Chennai',
submittedDate: '2026-04-01',
verificationStatus: 'VERIFIED',
assignedApprover: 'Unassigned',
priority: 'MEDIUM',
status: 'PENDING',
updatedAt: '2026-04-01',
sourceKey: 'fallback:profile:92841',
submittedFields: [
{ label: 'Name / Title', value: 'Sarah Jenkins' },
{ label: 'Email', value: 'sarah.jenkins@nxtgauge.com' },
{ label: 'Mobile', value: '+91 90000 00001' },
{ label: 'Area', value: 'T. Nagar' },
{ label: 'Place', value: 'Chennai' },
],
documents: [
{ id: 'identity-proof', title: 'Identity Proof', type: 'IMAGE', url: '/nxtgauge-logo.png', status: 'SUBMITTED' },
{ id: 'address-proof', title: 'Address Proof', type: 'PDF', url: '/nxtgauge-icon.png', status: 'SUBMITTED' },
],
},
{
id: 'AP-F-92835',
name: 'Portfolio Approval - Marcus Davis (Demo)',
applicantName: 'Marcus Davis (Demo)',
approvalType: 'PORTFOLIO',
userType: 'PROFESSIONAL',
roleTags: ['Graphic Designer'],
primaryService: 'Design Portfolio',
area: 'Velachery, Chennai',
submittedDate: '2026-04-01',
verificationStatus: 'VERIFIED',
assignedApprover: 'Unassigned',
priority: 'HIGH',
status: 'PENDING',
updatedAt: '2026-04-01',
sourceKey: 'fallback:portfolio:92835',
submittedFields: [
{ label: 'Name / Title', value: 'Marcus Davis' },
{ label: 'Role / Category', value: 'Graphic Designer' },
{ label: 'Area', value: 'Velachery' },
{ label: 'Description', value: 'Portfolio submitted for verification.' },
],
documents: [
{ id: 'portfolio-1', title: 'Portfolio Image 1', type: 'IMAGE', url: '/nxtgauge-logo.png', status: 'SUBMITTED' },
{ id: 'portfolio-2', title: 'Portfolio Image 2', type: 'IMAGE', url: '/nxtgauge-icon.png', status: 'SUBMITTED' },
],
},
{
id: 'AP-B-92839',
name: 'Business Approval - Zenith Tech Hub (Demo)',
applicantName: 'Zenith Tech Hub (Demo)',
approvalType: 'BUSINESS',
userType: 'COMPANY',
roleTags: ['Company'],
primaryService: 'Hiring Company',
area: 'Guindy, Chennai',
submittedDate: '2026-03-31',
verificationStatus: 'VERIFIED',
assignedApprover: 'Unassigned',
priority: 'HIGH',
status: 'PENDING',
updatedAt: '2026-03-31',
sourceKey: 'fallback:company:92839',
submittedFields: [
{ label: 'Name / Title', value: 'Zenith Tech Hub' },
{ label: 'Email', value: 'admin@zenithtechhub.com' },
{ label: 'Area', value: 'Guindy' },
{ label: 'Place', value: 'Chennai' },
],
documents: [
{ id: 'gst-certificate', title: 'GST Certificate', type: 'PDF', url: '/nxtgauge-logo.png', status: 'SUBMITTED' },
{ id: 'incorporation', title: 'Incorporation Certificate', type: 'PDF', url: '/nxtgauge-icon.png', status: 'SUBMITTED' },
],
},
{
id: 'AP-R-92812',
name: 'Requirement Approval - Luxury Wedding Shoot (Demo)',
applicantName: 'Luxury Wedding Shoot (Demo)',
approvalType: 'REQUIREMENT',
userType: 'CUSTOMER',
roleTags: ['Service Seeker', 'Photographer'],
primaryService: 'Service Requirement',
area: 'Adyar, Chennai',
submittedDate: '2026-03-30',
verificationStatus: 'FLAGGED',
assignedApprover: 'Unassigned',
priority: 'CRITICAL',
status: 'ESCALATED',
updatedAt: '2026-03-30',
sourceKey: 'fallback:requirement:92812',
submittedFields: [
{ label: 'Name / Title', value: 'Luxury Wedding Shoot' },
{ label: 'Role / Category', value: 'Photographer' },
{ label: 'Area', value: 'Adyar' },
{ label: 'Description', value: 'Need urgent premium wedding photography team.' },
],
documents: [
{ id: 'requirement-brief', title: 'Requirement Brief', type: 'PDF', url: '/nxtgauge-logo.png', status: 'SUBMITTED' },
{ id: 'reference-moodboard', title: 'Reference Moodboard', type: 'IMAGE', url: '/nxtgauge-icon.png', status: 'SUBMITTED' },
],
},
];
function mergeWithFallbackRows(sourceRows: ApprovalRecord[]): ApprovalRecord[] {
const merged = [...sourceRows];
for (const demo of FALLBACK_APPROVAL_ROWS) {
const duplicate = merged.some((row) => {
const rowKey = String(row.sourceKey || '').toLowerCase();
const rowName = String(row.applicantName || '').toLowerCase();
const rowType = String(row.approvalType || '').toLowerCase();
const demoName = String(demo.applicantName || '').toLowerCase();
const demoType = String(demo.approvalType || '').toLowerCase();
if (rowKey.startsWith('fallback:')) return rowKey === String(demo.sourceKey || '').toLowerCase();
return rowName === demoName && rowType === demoType;
});
if (!duplicate) merged.push(demo);
}
return merged;
}
function verificationToApprovalType(requestType: ApprovalQueueItem['requestType']): ApprovalRecord['approvalType'] {
if (requestType === 'Portfolio Approval') return 'PORTFOLIO';
@ -503,11 +376,10 @@ export default function ApprovalManagementPage() {
return arr.findIndex((candidate) => (candidate.sourceKey || candidate.id) === key) === index;
});
const withDemo = mergeWithFallbackRows(deduped);
setRows(withDemo.length ? withDemo : FALLBACK_APPROVAL_ROWS);
setRows(deduped);
} catch (e: any) {
setRows(FALLBACK_APPROVAL_ROWS);
setError(e?.message || 'Could not reach approvals API. Showing demo approval queue data.');
setRows([]);
setError(e?.message || 'Could not reach approvals API.');
}
};

View file

@ -14,12 +14,6 @@ type CandidateRecord = CrudRecord & {
registeredDate?: string;
};
const FALLBACK_CANDIDATES: CandidateRecord[] = [
{ id: 'c1', name: 'Arjun Sharma', email: 'arjun.s@example.com', phone: '+91 98765 43210', location: 'Mumbai', experience: '5 years', status: 'ACTIVE', registeredDate: '2026-01-15', updatedAt: '2026-03-27' },
{ id: 'c2', name: 'Priya Nair', email: 'priya.n@example.com', phone: '+91 98765 43211', location: 'Bangalore', experience: '3 years', status: 'ACTIVE', registeredDate: '2026-02-10', updatedAt: '2026-03-27' },
{ id: 'c3', name: 'Rahul Verma', email: 'rahul.v@example.com', phone: '+91 98765 43212', location: 'Delhi', experience: '1 year', status: 'PENDING', registeredDate: '2026-03-05', updatedAt: '2026-03-27' },
];
function StatusBadge(props: { status: string }) {
const active = () => props.status === 'ACTIVE';
const pending = () => props.status === 'PENDING';
@ -47,21 +41,23 @@ export default function CandidateManagementPage() {
const load = async () => {
try {
const res = await fetch(`${API}/api/admin/users?role=job_seeker`);
if (!res.ok) throw new Error();
const res = await fetch(`${API}/api/admin/users?role=JOB_SEEKER`);
if (!res.ok) throw new Error('Fetch failed');
const data = await res.json();
const list = Array.isArray(data) ? data : (data.users || []);
if (list.length === 0) setRows(FALLBACK_CANDIDATES);
else setRows(list.map((u: any) => ({
const list = (Array.isArray(data) ? data : []).map((u: any) => ({
id: u.id,
name: u.name || u.full_name || '—',
name: u.full_name || u.email.split('@')[0],
email: u.email,
status: (u.status || 'ACTIVE').toUpperCase(),
updatedAt: u.updated_at || '',
registeredDate: u.created_at ? new Date(u.created_at).toLocaleDateString() : '—'
} as CandidateRecord)));
} catch {
setRows(FALLBACK_CANDIDATES);
registeredDate: u.created_at ? new Date(u.created_at).toLocaleDateString() : '—',
updatedAt: u.updated_at || u.created_at || '—',
location: 'Not Specified',
experience: 'Not Specified'
} as CandidateRecord));
setRows(list);
} catch (e) {
console.error('Candidate load error:', e);
setRows([]);
}
};
@ -72,7 +68,7 @@ export default function CandidateManagementPage() {
if (statusFilter() !== 'all') r = r.filter((d) => d.status === statusFilter().toUpperCase());
const q = search().toLowerCase();
if (q) {
r = r.filter(r => r.name.toLowerCase().includes(q) || r.email.toLowerCase().includes(q));
r = r.filter(it => it.name.toLowerCase().includes(q) || it.email.toLowerCase().includes(q));
}
const sorted = [...r];
const mode = sortBy();

View file

@ -1,65 +1,60 @@
import { For, Show, createMemo, createSignal, onMount } from 'solid-js';
import AdminShell from '~/components/AdminShell';
import type { CrudRecord } from '~/lib/admin/types';
const API = '/api/gateway';
type CompanyRecord = CrudRecord & {
industry?: string;
city?: string;
email?: string;
status: 'ACTIVE' | 'INACTIVE' | 'PENDING' | 'SUSPENDED';
type AdminContact = {
name: string;
email: string;
phone: string;
};
const FALLBACK_COMPANIES: CompanyRecord[] = [
{ id: 'cp1', name: 'Tech Solutions Inc', industry: 'Software', city: 'Mumbai', email: 'contact@techsolutions.com', status: 'ACTIVE', updatedAt: '2026-03-27' },
{ id: 'cp2', name: 'Creative Designs', industry: 'Design', city: 'Bangalore', email: 'hello@creativedesigns.in', status: 'ACTIVE', updatedAt: '2026-03-27' },
{ id: 'cp3', name: 'Global Logistics', industry: 'Logistics', city: 'Chennai', email: 'info@globallogistics.com', status: 'PENDING', updatedAt: '2026-03-27' },
];
function StatusBadge(props: { status: string }) {
const active = () => props.status === 'ACTIVE';
const pending = () => props.status === 'PENDING';
return (
<span style={`display:inline-flex;align-items:center;border-radius:9999px;border:1px solid ${active() ? '#FFD8C2' : pending() ? '#F6D78F' : '#D1D5DB'};background:${active() ? '#FFF1EB' : pending() ? '#FFF3D6' : '#F3F4F6'};color:${active() ? '#FF5E13' : pending() ? '#B7791F' : '#4B5563'};padding:2px 10px;font-size:12px;font-weight:500`}>
<span style={`display:inline-block;width:6px;height:6px;border-radius:50%;background:${active() ? '#FF5E13' : pending() ? '#B7791F' : '#9CA3AF'};margin-right:5px;flex-shrink:0`} />
{props.status.charAt(0) + props.status.slice(1).toLowerCase()}
</span>
);
}
type CompanyRecord = {
id: string;
companyCode: string;
name: string;
registrationNumber: string;
industry: string;
location: string;
joinedOn: string;
adminContact: AdminContact;
accountStatus: string;
verificationStatus: string;
subscriptionType: string;
jobPostingsCount: number;
totalHires: number;
updatedAt: string;
};
export default function CompanyManagementPage() {
const [view, setView] = createSignal<'list' | 'detail' | 'form'>('list');
const [listTab, setListTab] = createSignal<'all' | 'create' | 'view'>('all');
const [detailTab, setDetailTab] = createSignal<'overview' | 'employees' | 'verification'>('overview');
const [rows, setRows] = createSignal<CompanyRecord[]>([]);
const [search, setSearch] = createSignal('');
const [statusFilter, setStatusFilter] = createSignal('all');
const [sortBy, setSortBy] = createSignal<'name_asc' | 'name_desc' | 'industry_asc' | 'industry_desc'>('name_asc');
const [sortMenuOpen, setSortMenuOpen] = createSignal(false);
const [filterMenuOpen, setFilterMenuOpen] = createSignal(false);
const [rows, setRows] = createSignal<CompanyRecord[]>([]);
const [selectedCompany, setSelectedCompany] = createSignal<CompanyRecord | null>(null);
const [openMenuId, setOpenMenuId] = createSignal<string | null>(null);
const [sortBy, setSortBy] = createSignal('name_asc');
const load = async () => {
try {
const res = await fetch(`${API}/api/admin/companies`);
if (!res.ok) throw new Error();
const data = await res.json();
const list = Array.isArray(data) ? data : (data.companies || []);
if (list.length === 0) setRows(FALLBACK_COMPANIES);
else setRows(list.map((c: any) => ({
const r = await fetch('/api/admin/companies');
if (!r.ok) throw new Error('Failed to fetch companies');
const data = await r.json();
const mapped: CompanyRecord[] = data.map((c: any) => ({
id: c.id,
name: c.company_name || c.companyName || c.name || '—',
industry: c.industry,
city: c.city,
email: c.email,
status: (c.status || 'ACTIVE').toUpperCase(),
updatedAt: c.updated_at || c.createdAt || ''
} as CompanyRecord)));
} catch {
setRows(FALLBACK_COMPANIES);
companyCode: c.id.slice(0, 8).toUpperCase(),
name: c.company_name,
registrationNumber: c.registration_number || 'Pending Registration',
industry: c.industry || 'Not Specified',
location: 'Not Specified',
joinedOn: new Date(c.created_at).toLocaleDateString(),
adminContact: { name: 'Company Admin', email: '...', phone: '...' },
accountStatus: c.status.toUpperCase(),
verificationStatus: c.status === 'APPROVED' ? 'VERIFIED' : 'PENDING',
subscriptionType: 'STANDARD',
jobPostingsCount: 0,
totalHires: 0,
updatedAt: c.updated_at,
}));
setRows(mapped);
} catch (e) {
console.error(e);
setRows([]);
}
};
@ -67,231 +62,77 @@ export default function CompanyManagementPage() {
const filteredRows = createMemo(() => {
let r = rows();
if (statusFilter() !== 'all') r = r.filter((d) => d.status === statusFilter().toUpperCase());
if (statusFilter() !== 'all') r = r.filter((d) => d.accountStatus === statusFilter().toUpperCase());
const q = search().toLowerCase();
if (q) {
r = r.filter(r => r.name.toLowerCase().includes(q) || (r.email || '').toLowerCase().includes(q));
r = r.filter(it => it.name.toLowerCase().includes(q) || it.companyCode.toLowerCase().includes(q));
}
const sorted = [...r];
const mode = sortBy();
sorted.sort((a, b) => {
if (mode === 'name_desc') return b.name.localeCompare(a.name);
if (mode === 'industry_desc') return (b.industry || '').localeCompare(a.industry || '');
if (mode === 'industry_asc') return (a.industry || '').localeCompare(b.industry || '');
if (sortBy() === 'name_desc') return b.name.localeCompare(a.name);
return a.name.localeCompare(b.name);
});
return sorted;
});
const exportCsv = () => {
const headers = ['Company Name', 'Industry', 'City', 'Email', 'Status'];
const body = filteredRows().map((row) => [
row.name || '',
row.industry || '',
row.city || '',
row.email || '',
row.status || '',
]);
const csv = [headers, ...body]
.map((line) => line.map((cell) => `"${String(cell).replace(/"/g, '""')}"`).join(','))
.join('\n');
const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = 'companies.csv';
link.click();
URL.revokeObjectURL(url);
};
const openDetail = (row: CompanyRecord) => { setSelectedCompany(row); setListTab('view'); setOpenMenuId(null); };
return (
<AdminShell>
<div class="w-full space-y-6 pb-8">
<div style="margin-bottom: 1.5rem">
<h1 class="text-[28px] font-bold leading-tight text-[#111827]">Company Management</h1>
<p class="mt-1 text-[14px] text-[#6B7280]">Manage and monitor all corporate accounts and business entities</p>
<div class="flex items-center justify-between">
<div>
<h1 class="text-2xl font-bold text-[#111827]">Companies Management</h1>
<p class="text-sm text-[#6B7280]">Manage all registered companies and their verification status.</p>
</div>
</div>
{/* ── LIST VIEW ── */}
<div>
{/* Tabs */}
<div style="margin-top:24px;display:flex;align-items:center;gap:24px;border-bottom:1px solid #E5E7EB">
{([
{ key: 'all', label: 'All Companies', action: () => { setListTab('all'); setStatusFilter('all'); } },
{ key: 'create', label: 'Create Company', action: () => { setListTab('create'); setView('form'); } },
{ key: 'view', label: 'View Profile', action: () => setListTab('view') },
] as const).map((tab) => (
<button
type="button"
onClick={tab.action}
style={`padding-bottom:12px;font-size:14px;font-weight:500;background:none;border:none;cursor:pointer;${listTab() === tab.key ? 'color:#FF5E13;border-bottom:2px solid #FF5E13;margin-bottom:-1px' : 'color:#6B7280'}`}
>
{tab.label}
</button>
))}
</div>
<div class="flex items-center gap-4 bg-white p-4 rounded-xl border border-[#E5E7EB]">
<input
type="text"
placeholder="Search company..."
class="flex-1 h-10 px-4 rounded-lg border border-[#E5E7EB] outline-none focus:border-[#FF5E13]"
value={search()}
onInput={(e) => setSearch(e.currentTarget.value)}
/>
<select
class="h-10 px-4 rounded-lg border border-[#E5E7EB] outline-none"
value={statusFilter()}
onChange={(e) => setStatusFilter(e.currentTarget.value)}
>
<option value="all">All Status</option>
<option value="pending">Pending</option>
<option value="active">Active</option>
<option value="suspended">Suspended</option>
</select>
</div>
{/* View Profile panel */}
<Show when={listTab() === 'view'}>
<Show
when={!selectedCompany()}
>
<div style="margin-top:24px;border-radius:16px;border:1px solid #E5E7EB;background:white;padding:48px 24px;text-align:center">
<p style="font-size:15px;font-weight:600;color:#111827">No company selected</p>
<p style="margin-top:6px;font-size:13px;color:#6B7280">Click the <strong></strong> menu on any company row and choose <strong>View Profile</strong>.</p>
</div>
</Show>
<Show when={selectedCompany()}>
<div style="margin-top:24px;border-radius:16px;border:1px solid #E5E7EB;background:white;box-shadow:0 1px 4px rgba(0,0,0,0.06);overflow:hidden">
<div style="padding:20px 24px;border-bottom:1px solid #E5E7EB;display:flex;align-items:center;justify-content:space-between">
<div>
<h2 style="font-size:18px;font-weight:700;color:#111827">{selectedCompany()!.name}</h2>
<p style="margin-top:2px;font-size:13px;color:#6B7280">{selectedCompany()!.industry} {selectedCompany()!.city}</p>
</div>
<StatusBadge status={selectedCompany()!.status} />
</div>
<div style="display:flex;align-items:center;gap:4px;border-bottom:1px solid #E5E7EB;padding:0 24px;background:#FAFAFA">
{(['overview', 'employees', 'verification'] as const).map((tab, i) => {
const labels = ['Overview', 'Employee List', 'Verification'];
const active = () => detailTab() === tab;
return (
<button type="button" onClick={() => setDetailTab(tab)} style={`position:relative;padding:14px 12px;font-size:13px;font-weight:600;background:none;border:none;cursor:pointer;color:${active() ? '#FF5E13' : '#6B7280'}`}>
{labels[i]}
<Show when={active()}><span style="position:absolute;left:0;right:0;bottom:0;height:2px;background:#FF5E13;border-radius:2px 2px 0 0" /></Show>
</button>
);
})}
</div>
<div style="padding:24px">
<Show when={detailTab() === 'overview'}>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:24px">
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:20px">
<h3 style="font-size:14px;font-weight:700;color:#111827;margin-bottom:16px">Company Profile</h3>
<div style="display:flex;flex-direction:column;gap:12px">
{[
{ l: 'Industry', v: selectedCompany()!.industry || '—' },
{ l: 'City', v: selectedCompany()!.city || '—' },
{ l: 'Email', v: selectedCompany()!.email || '—' },
{ l: 'Last Updated', v: selectedCompany()!.updatedAt || '—' },
].map(item => (
<div style="display:flex;justify-content:space-between">
<span style="font-size:13px;color:#6B7280">{item.l}</span>
<span style="font-size:13px;font-weight:600;color:#111827">{item.v}</span>
</div>
))}
</div>
</div>
</div>
</Show>
</div>
<div style="display:flex;align-items:center;gap:10px;padding:14px 24px;border-top:1px solid #E5E7EB">
<button type="button" style="height:36px;border-radius:8px;background:#0D0D2A;padding:0 16px;font-size:13px;font-weight:600;color:white;border:none;cursor:pointer">Edit Company</button>
<button type="button" onClick={() => { setSelectedCompany(null); setListTab('all'); }} style="height:36px;border-radius:8px;border:1px solid #E5E7EB;background:white;padding:0 16px;font-size:13px;font-weight:600;color:#374151;cursor:pointer">Back to List</button>
</div>
</div>
</Show>
</Show>
<div style={{ display: listTab() === 'view' ? 'none' : 'block' }}>
<div style="margin-top:1.5rem;margin-left:-24px;margin-right:-24px;border-radius:0;border-left:none;border-right:none;overflow:hidden;border-top:1px solid #E5E7EB;border-bottom:1px solid #E5E7EB;background:white;box-shadow:0 1px 3px rgba(0,0,0,0.06)">
<div style="display:flex;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid #F3F4F6">
<input
value={search()}
onInput={(e) => setSearch(e.currentTarget.value)}
placeholder="Search companies..."
style="height:34px;flex:1;border-radius:8px;border:1px solid #E5E7EB;background:white;padding:0 12px;font-size:13px;color:#111827;outline:none"
/>
<div style="position:relative">
<button
type="button"
onClick={() => { setSortMenuOpen((v) => !v); setFilterMenuOpen(false); }}
style="display:inline-flex;height:34px;align-items:center;gap:6px;border-radius:8px;border:1px solid #E5E7EB;background:white;padding:0 12px;font-size:12px;font-weight:500;color:#374151;cursor:pointer"
>
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 4v13"/><path d="m3 13 4 4 4-4"/><path d="M17 20V7"/><path d="m21 11-4-4-4 4"/></svg>
Sort
</button>
<Show when={sortMenuOpen()}>
<div style="position:absolute;left:0;top:38px;z-index:30;min-width:200px;border-radius:12px;border:1px solid #E5E7EB;background:white;padding:6px;box-shadow:0 4px 16px rgba(0,0,0,0.1)">
{(['name_asc', 'name_desc', 'industry_asc', 'industry_desc'] as const).map((s, i) => (
<button type="button" onClick={() => { setSortBy(s); setSortMenuOpen(false); }} style={`display:block;width:100%;border-radius:8px;padding:8px 12px;text-align:left;font-size:13px;background:none;border:none;cursor:pointer;color:${sortBy() === s ? '#FF5E13' : '#374151'};background:${sortBy() === s ? '#FFF1EB' : 'transparent'}`}>
{['Name (A-Z)', 'Name (Z-A)', 'Industry (A-Z)', 'Industry (Z-A)'][i]}
</button>
))}
</div>
</Show>
</div>
<div style="position:relative">
<button
type="button"
onClick={() => { setFilterMenuOpen((v) => !v); setSortMenuOpen(false); }}
style="display:inline-flex;height:34px;align-items:center;gap:6px;border-radius:8px;border:1px solid #E5E7EB;background:white;padding:0 12px;font-size:12px;font-weight:500;color:#374151;cursor:pointer"
>
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 5h18M6 12h12M10 19h4"/></svg>
Filters
</button>
<Show when={filterMenuOpen()}>
<div style="position:absolute;left:0;top:38px;z-index:30;min-width:160px;border-radius:12px;border:1px solid #E5E7EB;background:white;padding:6px;box-shadow:0 4px 16px rgba(0,0,0,0.1)">
{(['all', 'active', 'pending', 'inactive'] as const).map((s) => (
<button type="button" onClick={() => { setStatusFilter(s); setFilterMenuOpen(false); }} style={`display:block;width:100%;border-radius:8px;padding:8px 12px;text-align:left;font-size:13px;background:none;border:none;cursor:pointer;color:${statusFilter() === s ? '#FF5E13' : '#374151'};background:${statusFilter() === s ? '#FFF1EB' : 'transparent'}`}>
{s === 'all' ? 'All Status' : s === 'active' ? 'Active' : s === 'pending' ? 'Pending' : 'Inactive'}
</button>
))}
</div>
</Show>
</div>
<button
type="button"
onClick={exportCsv}
style="display:inline-flex;height:34px;align-items:center;gap:6px;border-radius:8px;border:1px solid #D1D5DB;background:#fff;padding:0 12px;font-size:12px;font-weight:600;color:#0f172a;cursor:pointer"
>
Export
</button>
</div>
<div class="overflow-x-auto">
<table class="min-w-full">
<thead>
<tr style="background:#0D0D2A;text-align:left">
{['Company Name', 'Industry', 'City', 'Email', 'Status', 'Actions'].map(h => (
<th style="padding:10px 20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:#FFFFFF;white-space:nowrap">{h}</th>
))}
</tr>
</thead>
<tbody>
<For each={filteredRows()}>
{(row) => (
<tr style="border-bottom:1px solid #F3F4F6" class="hover:bg-[#FAFAFA] transition-colors">
<td style="padding:12px 20px;font-size:14px;font-weight:600;color:#111827">{row.name}</td>
<td style="padding:12px 20px;font-size:13px;color:#6B7280">{row.industry || '—'}</td>
<td style="padding:12px 20px;font-size:13px;color:#6B7280">{row.city || '—'}</td>
<td style="padding:12px 20px;font-size:13px;color:#6B7280">{row.email || '—'}</td>
<td style="padding:12px 20px"><StatusBadge status={row.status} /></td>
<td style="padding:12px 20px;position:relative">
<button type="button" onClick={() => setOpenMenuId(openMenuId() === row.id ? null : row.id)} style="display:inline-flex;height:32px;width:32px;align-items:center;justify-content:center;border-radius:8px;color:#9CA3AF;background:none;border:none;cursor:pointer">
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><circle cx="12" cy="5" r="1.5"/><circle cx="12" cy="12" r="1.5"/><circle cx="12" cy="19" r="1.5"/></svg>
</button>
<Show when={openMenuId() === row.id}>
<div style="position:absolute;right:20px;top:44px;z-index:20;width:180px;border-radius:12px;border:1px solid #E5E7EB;background:white;padding:6px;box-shadow:0 4px 20px rgba(0,0,0,0.12)">
<button type="button" onClick={() => openDetail(row)} style="display:flex;width:100%;align-items:center;gap:10px;border-radius:8px;padding:8px 12px;font-size:13px;color:#374151;background:none;border:none;cursor:pointer;text-align:left">View Profile</button>
<button type="button" style="display:flex;width:100%;align-items:center;gap:10px;border-radius:8px;padding:8px 12px;font-size:13px;color:#374151;background:none;border:none;cursor:pointer;text-align:left">Edit Company</button>
<button type="button" style="display:flex;width:100%;align-items:center;gap:10px;border-radius:8px;padding:8px 12px;font-size:13px;color:#DC2626;background:none;border:none;cursor:pointer;text-align:left">Deactivate</button>
</div>
</Show>
</td>
</tr>
)}
</For>
</tbody>
</table>
</div>
</div>
</div>
<div class="bg-white rounded-xl border border-[#E5E7EB] overflow-hidden">
<table class="min-w-full divide-y divide-[#E5E7EB]">
<thead class="bg-[#F9FAFB]">
<tr>
<th class="px-6 py-3 text-left text-xs font-semibold text-[#4B5563] uppercase tracking-wider">Company</th>
<th class="px-6 py-3 text-left text-xs font-semibold text-[#4B5563] uppercase tracking-wider">Industry</th>
<th class="px-6 py-3 text-left text-xs font-semibold text-[#4B5563] uppercase tracking-wider">Status</th>
<th class="px-6 py-3 text-left text-xs font-semibold text-[#4B5563] uppercase tracking-wider">Joined</th>
</tr>
</thead>
<tbody class="divide-y divide-[#E5E7EB]">
<For each={filteredRows()}>{(c) => (
<tr>
<td class="px-6 py-4">
<div class="font-semibold text-[#111827]">{c.name}</div>
<div class="text-xs text-[#6B7280]">{c.companyCode}</div>
</td>
<td class="px-6 py-4 text-sm text-[#4B5563]">{c.industry}</td>
<td class="px-6 py-4">
<span class={`px-2 py-1 text-xs font-bold rounded-full ${c.accountStatus === 'ACTIVE' ? 'bg-green-100 text-green-700' : 'bg-yellow-100 text-yellow-700'}`}>
{c.accountStatus}
</span>
</td>
<td class="px-6 py-4 text-sm text-[#4B5563]">{c.joinedOn}</td>
</tr>
)}</For>
</tbody>
</table>
</div>
</div>
</AdminShell>

View file

@ -13,12 +13,6 @@ type CustomerRecord = CrudRecord & {
registeredDate?: string;
};
const FALLBACK_CUSTOMERS: CustomerRecord[] = [
{ id: 'cs1', name: 'Arjun Sharma', email: 'arjun.s@example.com', phone: '+91 98765 43210', location: 'Mumbai', totalOrders: 12, status: 'ACTIVE', registeredDate: '2026-01-15', updatedAt: '2026-03-27' },
{ id: 'cs2', name: 'Priya Nair', email: 'priya.n@example.com', phone: '+91 98765 43211', location: 'Bangalore', totalOrders: 5, status: 'ACTIVE', registeredDate: '2026-02-10', updatedAt: '2026-03-27' },
{ id: 'cs3', name: 'Rahul Verma', email: 'rahul.v@example.com', phone: '+91 98765 43212', location: 'Delhi', totalOrders: 0, status: 'PENDING', registeredDate: '2026-03-05', updatedAt: '2026-03-27' },
];
function StatusBadge(props: { status: string }) {
const active = () => props.status === 'ACTIVE';
const pending = () => props.status === 'PENDING';
@ -46,22 +40,23 @@ export default function CustomerManagementPage() {
const load = async () => {
try {
const res = await fetch(`${API}/api/admin/users?role=customer`);
if (!res.ok) throw new Error();
const res = await fetch(`${API}/api/admin/users?role=CUSTOMER`);
if (!res.ok) throw new Error('Fetch failed');
const data = await res.json();
const list = Array.isArray(data) ? data : (data.users || []);
if (list.length === 0) setRows(FALLBACK_CUSTOMERS);
else setRows(list.map((u: any) => ({
const list = (Array.isArray(data) ? data : []).map((u: any) => ({
id: u.id,
name: u.name || u.full_name || '—',
name: u.full_name || u.email.split('@')[0],
email: u.email,
status: (u.status || 'ACTIVE').toUpperCase(),
updatedAt: u.updated_at || '',
registeredDate: u.created_at ? new Date(u.created_at).toLocaleDateString() : '—',
totalOrders: u.total_orders || 0
} as CustomerRecord)));
} catch {
setRows(FALLBACK_CUSTOMERS);
updatedAt: u.updated_at || u.created_at || '—',
location: 'Not Specified',
totalOrders: 0
} as CustomerRecord));
setRows(list);
} catch (e) {
console.error('Customer load error:', e);
setRows([]);
}
};
@ -72,7 +67,7 @@ export default function CustomerManagementPage() {
if (statusFilter() !== 'all') r = r.filter((d) => d.status === statusFilter().toUpperCase());
const q = search().toLowerCase();
if (q) {
r = r.filter(r => r.name.toLowerCase().includes(q) || r.email.toLowerCase().includes(q));
r = r.filter(it => it.name.toLowerCase().includes(q) || it.email.toLowerCase().includes(q));
}
const sorted = [...r];
const mode = sortBy();

View file

@ -157,68 +157,7 @@ export default function CreateEmployeePage() {
const accessToken = typeof sessionStorage !== 'undefined'
? (sessionStorage.getItem('nxtgauge_admin_access_token') || '').trim()
: '';
const getUsersByEmail = async () => {
const userRes = await fetch(`${API}/api/admin/users?q=${encodeURIComponent(email().trim())}&per_page=100`, {
headers: {
Accept: 'application/json',
...(accessToken ? { Authorization: `Bearer ${accessToken}` } : {}),
},
credentials: 'include',
}).catch(() => null);
const userPayload = await userRes?.json().catch(() => null);
const users = Array.isArray(userPayload)
? userPayload
: Array.isArray(userPayload?.users)
? userPayload.users
: Array.isArray(userPayload?.items)
? userPayload.items
: [];
const exact = users.find((u: any) => String(u?.email || '').trim().toLowerCase() === email().trim().toLowerCase());
const resolvedId =
userPayload?.user?.id
|| userPayload?.data?.user?.id
|| userPayload?.data?.id
|| exact?.id
|| userPayload?.id
|| users?.[0]?.id;
return resolvedId;
};
let userId = await getUsersByEmail();
if (!userId && createLoginCreds()) {
const regRes = await fetch(`${API}/auth/register`, {
method: 'POST',
headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
credentials: 'include',
body: JSON.stringify({
full_name: fullName().trim() || email().trim(),
email: email().trim().toLowerCase(),
password: loginPassword().trim(),
}),
});
const regRaw = await regRes.text();
let regPayload: any = {};
if (regRaw) {
try { regPayload = JSON.parse(regRaw); } catch { regPayload = { message: regRaw }; }
}
if (!regRes.ok && (regPayload?.code || '').toString().toUpperCase() !== 'EMAIL_EXISTS') {
throw new Error(regPayload?.error || regPayload?.message || `Failed to create login credentials (${regRes.status})`);
}
userId =
regPayload?.user_id
|| regPayload?.id
|| regPayload?.user?.id
|| regPayload?.data?.user?.id
|| regPayload?.data?.id;
if (!userId) {
userId = await getUsersByEmail();
}
}
if (!userId) throw new Error('Unable to resolve or create login user for this employee.');
const res = await fetch(`${API}/api/admin/employees`, {
const res = await fetch(`${API}/api/admin/employees/provision`, {
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
@ -227,16 +166,19 @@ export default function CreateEmployeePage() {
method: 'POST',
credentials: 'include',
body: JSON.stringify({
user_id: userId,
email: email().trim(),
full_name: fullName().trim(),
role_id: roleId(),
department_id: deptId(),
designation_id: desigId(),
employee_code: employeeCode() || undefined,
generate_login: createLoginCreds(),
password: createLoginCreds() ? loginPassword().trim() : undefined,
}),
});
if (!res.ok) {
const body = await res.json().catch(() => ({}));
throw new Error((body as any).message || 'Failed to create employee');
throw new Error((body as any).error || (body as any).message || 'Failed to create employee');
}
navigate('/admin/employees');
} catch (err: any) {

View file

@ -64,7 +64,8 @@ const USER_TYPE_OPTIONS = ['COMPANY', 'CANDIDATE', 'PHOTOGRAPHER', 'MAKEUP_ARTIS
const ONBOARDING_SCHEMAS = [
'company_onboarding_v1', 'job_seeker_onboarding_v1', 'customer_onboarding_v1', 'photographer_onboarding_v1',
'makeup_artist_onboarding_v1', 'tutor_onboarding_v1', 'developer_onboarding_v1', 'video_editor_onboarding_v1', 'ugc_content_creator_onboarding_v1'
'makeup_artist_onboarding_v1', 'tutor_onboarding_v1', 'developer_onboarding_v1', 'video_editor_onboarding_v1',
'ugc_content_creator_onboarding_v1'
];
const MODULES_BY_VERTICAL = {
@ -173,7 +174,13 @@ export default function ExternalRoleManagementPage() {
const [reqOnbAppr, setReqOnbAppr] = createSignal(true);
const [reqLeadAppr, setReqLeadAppr] = createSignal(false);
const [reqJobAppr, setReqJobAppr] = createSignal(false);
const [limitsJson, setLimitsJson] = createSignal('{}');
// Structured Limits
const [limitMaxLeadRequests, setLimitMaxLeadRequests] = createSignal(20);
const [limitMaxLeadAcceptances, setLimitMaxLeadAcceptances] = createSignal(10);
const [limitMaxActiveRequirements, setLimitMaxActiveRequirements] = createSignal(2);
const [limitMonthlyFreeJobs, setLimitMonthlyFreeJobs] = createSignal(1);
const [status, setStatus] = createSignal<'ACTIVE' | 'INACTIVE'>('ACTIVE');
const [isSaving, setIsSaving] = createSignal(false);
const [error, setError] = createSignal('');
@ -268,7 +275,8 @@ export default function ExternalRoleManagementPage() {
const resetForm = () => {
setEditingId(null); setName(''); setCode(''); setVertical('marketplace'); setCategory('provider');
setAssignedUserTypes([]); setOnboardingId(ONBOARDING_SCHEMAS[0]); setEnabledModules([]); setPermissions({});
setReqOnbAppr(true); setReqLeadAppr(false); setReqJobAppr(false); setLimitsJson('{}');
setReqOnbAppr(true); setReqLeadAppr(false); setReqJobAppr(false);
setLimitMaxLeadRequests(20); setLimitMaxLeadAcceptances(10); setLimitMaxActiveRequirements(2); setLimitMonthlyFreeJobs(1);
setStatus('ACTIVE'); setFormTab('general');
setSearchParams({ view: undefined, editingId: undefined });
};
@ -287,7 +295,19 @@ export default function ExternalRoleManagementPage() {
setCategory(row.category); setAssignedUserTypes(row.assignedUserTypes || []); setOnboardingId(row.onboardingSchemaId);
setEnabledModules(row.modules); setPermissions(row.permissions);
setReqOnbAppr(row.requiresOnboardingApproval); setReqLeadAppr(row.requiresLeadApproval);
setReqJobAppr(row.requiresJobApproval); setLimitsJson(row.featureLimits);
setReqJobAppr(row.requiresJobApproval);
// Parse limits
try {
const parsed = JSON.parse(row.featureLimits || '{}');
setLimitMaxLeadRequests(parsed.maxLeadRequests ?? 20);
setLimitMaxLeadAcceptances(parsed.maxLeadAcceptances ?? 10);
setLimitMaxActiveRequirements(parsed.maxActiveRequirements ?? 2);
setLimitMonthlyFreeJobs(parsed.monthlyFreeJobs ?? 1);
} catch {
setLimitMaxLeadRequests(20); setLimitMaxLeadAcceptances(10); setLimitMaxActiveRequirements(2); setLimitMonthlyFreeJobs(1);
}
setStatus(row.status); setView('form'); setOpenMenuId(null);
};
@ -328,11 +348,6 @@ export default function ExternalRoleManagementPage() {
setFormTab('general');
return;
}
if (!validateJson(limitsJson())) {
setError('Invalid JSON in feature limits.');
setFormTab('settings');
return;
}
setIsSaving(true);
setError('');
@ -353,7 +368,12 @@ export default function ExternalRoleManagementPage() {
lead: reqLeadAppr(),
job: reqJobAppr(),
},
feature_limits: JSON.parse(limitsJson()),
feature_limits: {
maxLeadRequests: limitMaxLeadRequests(),
maxLeadAcceptances: limitMaxLeadAcceptances(),
maxActiveRequirements: limitMaxActiveRequirements(),
monthlyFreeJobs: limitMonthlyFreeJobs(),
},
};
const endpoint = editingId()
? `${API}/api/admin/roles/${editingId()}`
@ -853,11 +873,27 @@ export default function ExternalRoleManagementPage() {
</div>
</div>
<div>
<FormInput label="Feature Limits (JSON)" type="textarea" value={limitsJson()} onInput={setLimitsJson} placeholder='{"maxActiveJobs": 5, "maxApplications": 10}' />
<Show when={limitsJson().trim() && !validateJson(limitsJson())}>
<p style="margin-top:4px;font-size:12px;color:#DC2626;font-weight:500">Invalid JSON format</p>
</Show>
<h3 style="font-size:14px;font-weight:700;color:#111827;margin-bottom:12px">Marketplace & Job Limits</h3>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:20px;background:#F9FAFB;border-radius:12px;border:1px solid #E5E7EB">
<label style="display:block">
<span style="font-size:12px;font-weight:600;color:#6B7280">Max Requests per Lead</span>
<input type="number" value={limitMaxLeadRequests()} onInput={e => setLimitMaxLeadRequests(parseInt(e.currentTarget.value) || 0)} style="display:block;margin-top:6px;height:36px;width:100%;border-radius:8px;border:1px solid #E5E7EB;padding:0 12px;font-size:13px" />
</label>
<label style="display:block">
<span style="font-size:12px;font-weight:600;color:#6B7280">Max Acceptances per Lead</span>
<input type="number" value={limitMaxLeadAcceptances()} onInput={e => setLimitMaxLeadAcceptances(parseInt(e.currentTarget.value) || 0)} style="display:block;margin-top:6px;height:36px;width:100%;border-radius:8px;border:1px solid #E5E7EB;padding:0 12px;font-size:13px" />
</label>
<label style="display:block">
<span style="font-size:12px;font-weight:600;color:#6B7280">Max Active Requirements</span>
<input type="number" value={limitMaxActiveRequirements()} onInput={e => setLimitMaxActiveRequirements(parseInt(e.currentTarget.value) || 0)} style="display:block;margin-top:6px;height:36px;width:100%;border-radius:8px;border:1px solid #E5E7EB;padding:0 12px;font-size:13px" />
</label>
<label style="display:block">
<span style="font-size:12px;font-weight:600;color:#6B7280">Monthly Free Job Posts (refill)</span>
<input type="number" value={limitMonthlyFreeJobs()} onInput={e => setLimitMonthlyFreeJobs(parseInt(e.currentTarget.value) || 0)} style="display:block;margin-top:6px;height:36px;width:100%;border-radius:8px;border:1px solid #E5E7EB;padding:0 12px;font-size:13px" />
</label>
</div>
</div>
<div style="display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;background:#F9FAFB;border:1px solid #E5E7EB;max-width:400px">

View file

@ -1,4 +1,4 @@
import { For, Show, createEffect, createMemo, createSignal, onCleanup, onMount } from 'solid-js';
import { For, Show, createEffect, createMemo, createSignal, onCleanup, onMount, createResource } from 'solid-js';
import { useSearchParams } from '@solidjs/router';
import {
BarChart3,
@ -25,6 +25,23 @@ import {
import type { RuntimeDashboardLayout } from '~/lib/runtime/types';
import { loadAdminDashboardLayout, saveAdminDashboardLayout } from '~/lib/runtime/storage';
const API = import.meta.env.VITE_API_BASE_URL || 'http://localhost:8000';
async function fetchMetrics() {
const accessToken = typeof sessionStorage !== 'undefined'
? (sessionStorage.getItem('nxtgauge_admin_access_token') || '').trim()
: '';
const res = await fetch(`${API}/api/admin/dashboard/metrics`, {
headers: {
Accept: 'application/json',
...(accessToken ? { Authorization: `Bearer ${accessToken}` } : {}),
},
credentials: 'include',
});
if (!res.ok) throw new Error('Failed to load metrics');
return res.json();
}
type WidgetStateKind = 'live' | 'empty' | 'pending';
type WidgetType = 'summary' | 'analytics';
type SortMode = 'layout' | 'name' | 'status';
@ -191,11 +208,13 @@ function PendingPreview() {
);
}
function LivePreview() {
function LivePreview(props: { value?: string; trend?: string; trendUp?: boolean }) {
return (
<div class="flex h-full flex-col items-center justify-center">
<p class="text-[26px] font-bold leading-none text-[#111827]">12,458</p>
<p class="mt-2 inline-flex items-center gap-1 text-xs font-semibold text-[#FA5014]"> +12.5%</p>
<p class="text-[26px] font-bold leading-none text-[#111827]">{props.value || '0'}</p>
<p class="mt-2 inline-flex items-center gap-1 text-xs font-semibold text-[#FA5014]">
{props.trendUp ? '↗' : '↘'} {props.trend || '0%'}
</p>
</div>
);
}
@ -216,6 +235,25 @@ export default function AdminHomePage() {
const [sortMode, setSortMode] = createSignal<SortMode>('layout');
const [gridLayout, setGridLayout] = createSignal<GridLayoutMode>('3x4');
const [metrics] = createResource(fetchMetrics);
const getWidgetState = (key: string) => {
if (key.startsWith('kpi_')) {
const idMap: Record<string, string> = {
kpi_total_users: 'users',
kpi_active_companies: 'companies',
kpi_open_leads: 'leads',
kpi_credits_purchased: 'credits',
};
if (metrics.loading) return { state: 'pending', statusLabel: 'Loading...' };
const m = metrics()?.kpis?.find((k: any) => k.id === idMap[key]);
if (m) return { state: 'live', statusLabel: 'Live Data', data: m };
return { state: 'empty', statusLabel: 'No Data' };
}
const meta = WIDGET_META[key];
return { state: meta?.state || 'empty', statusLabel: meta?.statusLabel || 'No Data' };
};
const orderedWidgets = createMemo(() => {
const current = layout();
const rows = current.order
@ -243,9 +281,9 @@ export default function AdminHomePage() {
next.sort((a, b) => {
if (mode === 'name') return a.title.localeCompare(b.title);
const rank = (key: string) => {
const state = WIDGET_META[key]?.state || 'empty';
if (state === 'live') return 1;
if (state === 'empty') return 2;
const info = getWidgetState(key);
if (info.state === 'live') return 1;
if (info.state === 'empty') return 2;
return 3;
};
return rank(a.widgetKey) - rank(b.widgetKey);
@ -420,7 +458,8 @@ export default function AdminHomePage() {
{(definition) => {
const visible = () => layout().visibility[definition.widgetKey] !== false;
const meta = WIDGET_META[definition.widgetKey];
const state = meta?.state || 'empty';
const stateInfo = getWidgetState(definition.widgetKey);
const state = stateInfo.state;
return (
<div class="flex items-center justify-between gap-4 rounded-xl border border-[#E5E7EB] bg-[#F9FAFB] px-4 py-4">
@ -434,8 +473,8 @@ export default function AdminHomePage() {
</div>
</div>
<div class="flex shrink-0 items-center gap-2">
<span class={`hidden rounded-full border px-2 py-0.5 text-[10px] font-semibold sm:inline-flex ${badgeClass(state)}`}>
{meta?.statusLabel || 'No Data'}
<span class={`hidden rounded-full border px-2 py-0.5 text-[10px] font-semibold sm:inline-flex ${badgeClass(state as WidgetStateKind)}`}>
{stateInfo.statusLabel}
</span>
<button
type="button"
@ -466,7 +505,8 @@ export default function AdminHomePage() {
<For each={orderedWidgets()}>
{(definition) => {
const meta = WIDGET_META[definition.widgetKey];
const state = meta?.state || 'empty';
const stateInfo = getWidgetState(definition.widgetKey);
const state = stateInfo.state;
const isOpenMenu = () => openMenuId() === definition.widgetKey;
return (
@ -522,7 +562,7 @@ export default function AdminHomePage() {
<h3 class="text-center text-[15px] font-semibold text-[#111827]">{definition.title}</h3>
<div class="mt-4 h-[116px] w-full max-w-[210px] rounded-xl border border-[#E5E7EB] bg-[#F9FAFB] p-4">
<Show when={state === 'live'}>
<LivePreview />
<LivePreview value={stateInfo.data?.value} trend={stateInfo.data?.trend} trendUp={stateInfo.data?.trendUp} />
</Show>
<Show when={state === 'empty'}>
<EmptyPreview />
@ -531,8 +571,8 @@ export default function AdminHomePage() {
<PendingPreview />
</Show>
</div>
<span class={`mt-4 inline-flex rounded-full border px-2 py-1 text-[11px] font-semibold ${badgeClass(state)}`}>
{meta?.statusLabel || 'No Data'}
<span class={`mt-4 inline-flex rounded-full border px-2 py-1 text-[11px] font-semibold ${badgeClass(state as WidgetStateKind)}`}>
{stateInfo.statusLabel}
</span>
</div>
</section>

View file

@ -13,12 +13,6 @@ type JobRecord = CrudRecord & {
postedDate?: string;
};
const FALLBACK_JOBS: JobRecord[] = [
{ id: 'j1', name: 'Senior UI/UX Designer', title: 'Senior UI/UX Designer', company: 'Creative Designs', location: 'Remote', rate: '₹800₹1200/hr', status: 'ACTIVE', postedDate: '2026-03-25', updatedAt: '2026-03-27' },
{ id: 'j2', name: 'Full Stack Developer', title: 'Full Stack Developer', company: 'Tech Solutions Inc', location: 'Mumbai', rate: '₹1000₹1500/hr', status: 'PENDING_APPROVAL', postedDate: '2026-03-24', updatedAt: '2026-03-27' },
{ id: 'j3', name: 'Marketing Specialist', title: 'Marketing Specialist', company: 'Global Brands', location: 'Delhi', rate: '₹500₹700/hr', status: 'DRAFT', postedDate: '2026-03-26', updatedAt: '2026-03-27' },
];
function StatusBadge(props: { status: string }) {
const getColors = () => {
switch (props.status) {
@ -56,11 +50,10 @@ export default function JobsManagementPage() {
const load = async () => {
try {
const res = await fetch(`${API}/api/jobs?limit=100`);
if (!res.ok) throw new Error();
if (!res.ok) throw new Error('Fetch failed');
const data = await res.json();
const list = Array.isArray(data) ? data : (data.jobs || []);
if (list.length === 0) setRows(FALLBACK_JOBS);
else setRows(list.map(j => ({
setRows(list.map((j: any) => ({
id: j.id,
name: j.title || '—',
title: j.title || '—',
@ -71,8 +64,9 @@ export default function JobsManagementPage() {
postedDate: j.created_at ? new Date(j.created_at).toLocaleDateString() : '—',
updatedAt: j.updated_at || ''
} as JobRecord)));
} catch {
setRows(FALLBACK_JOBS);
} catch (e) {
console.error('Jobs load error:', e);
setRows([]);
}
};
@ -92,7 +86,7 @@ export default function JobsManagementPage() {
list = list.filter((r) => r.status === map[statusFilter()]);
}
const q = search().toLowerCase();
if (q) list = list.filter(r => r.title.toLowerCase().includes(q) || r.company?.toLowerCase().includes(q));
if (q) list = list.filter(r => r.title.toLowerCase().includes(q) || (r.company || '').toLowerCase().includes(q));
const sorted = [...list];
sorted.sort((a, b) => {
if (sortBy() === 'title_asc') return a.title.localeCompare(b.title);
@ -102,8 +96,7 @@ export default function JobsManagementPage() {
if (sortBy() === 'posted_oldest') return aDate - bDate;
return bDate - aDate;
});
list = sorted;
return list;
return sorted;
});
const exportCsv = () => {

View file

@ -7,7 +7,7 @@ const API = '/api/gateway';
const ROLE_OPTIONS = [
'company', 'job_seeker', 'customer', 'photographer', 'video_editor',
'graphic_designer', 'social_media_manager', 'fitness_trainer',
'catering_services', 'makeup_artist', 'tutor', 'developer',
'catering_services', 'makeup_artist', 'tutor', 'developer', 'ugc_content_creator',
];
async function loadLeads(): Promise<any[]> {

View file

@ -315,8 +315,33 @@ export default function OnboardingManagementPage() {
const [auditSearch, setAuditSearch] = createSignal('');
const API = '/api/gateway';
const load = async () => {
setRows(FALLBACK_SCHEMAS);
try {
const res = await fetch(`${API}/api/admin/onboarding-config`);
if (!res.ok) throw new Error('Fetch failed');
const data = await res.json();
const items = Array.isArray(data) ? data : (data.items || []);
const list = items.map((c: any) => ({
id: c.id,
name: `${c.role_key} Onboarding Flow`,
code: `ONB-${c.role_key.toUpperCase()}-${c.version}`,
userType: 'PROFESSIONAL',
role: c.role_key,
description: `Standard onboarding flow for ${c.role_key}`,
steps: [],
requiredDocuments: [],
verificationType: 'IDENTITY',
status: (c.is_active ? 'ACTIVE' : 'DRAFT') as 'ACTIVE' | 'DRAFT',
version: `v${c.version}`,
updatedAt: new Date(c.updated_at).toLocaleDateString()
} as OnboardingSchema));
setRows(list);
} catch (e) {
console.error('Onboarding load error:', e);
setRows(FALLBACK_SCHEMAS);
}
};
onMount(() => void load());

View file

@ -0,0 +1,13 @@
import RoleUserManagementTablePage from '~/components/admin/RoleUserManagementTablePage';
export default function UgcContentCreatorManagementPage() {
return (
<RoleUserManagementTablePage
role="UGC_CONTENT_CREATOR"
title="UGC Content Creator Management"
subtitle="Manage all registered UGC Content Creators, review their portfolios, and monitor performance."
emptyLabel="No UGC Content Creators found."
viewHref={(id) => `/admin/users?id=${id}&tab=view`}
/>
);
}

View file

@ -27,120 +27,6 @@ type ExternalUserRecord = {
updatedAt: string;
};
const FALLBACK_USERS: ExternalUserRecord[] = [
{
id: 'u1',
userCode: 'U-102348',
name: 'Marcus Thorne',
email: 'm.thorne@creative.co',
phone: '+91 98765 43210',
location: 'T. Nagar, Chennai',
joinedOn: '2026-01-10',
lastActive: '2 hours ago',
userType: 'PROFESSIONAL',
accountStatus: 'ACTIVE',
verificationStatus: 'VERIFIED',
onboardingStatus: 'COMPLETED',
registeredRoles: [
{ key: 'photographer', name: 'Photographer', status: 'ACTIVE', registeredOn: '2026-01-12' },
{ key: 'designer', name: 'Designer', status: 'ACTIVE', registeredOn: '2026-01-20' },
],
portfolioCount: 15,
notes: 'High response rate profile.',
updatedAt: '2026-04-02',
},
{
id: 'u2',
userCode: 'U-102389',
name: 'Elena Rodriguez',
email: 'elena.rodriguez@techhub.io',
phone: '+91 98765 43211',
location: 'Guindy, Chennai',
joinedOn: '2026-02-04',
lastActive: '5 hours ago',
userType: 'PROFESSIONAL',
accountStatus: 'ACTIVE',
verificationStatus: 'IN_REVIEW',
onboardingStatus: 'SUBMITTED',
registeredRoles: [{ key: 'developer', name: 'Developer', status: 'PENDING', registeredOn: '2026-02-06' }],
portfolioCount: 4,
notes: 'Role pending verification checklist.',
updatedAt: '2026-04-02',
},
{
id: 'u3',
userCode: 'U-102452',
name: 'Sam Jenkins',
email: 'sam.j@no-agency.net',
phone: '+91 98765 43212',
location: 'Adyar, Chennai',
joinedOn: '2026-03-01',
lastActive: '1 day ago',
userType: 'JOBSEEKER',
accountStatus: 'SUSPENDED',
verificationStatus: 'UNVERIFIED',
onboardingStatus: 'NOT_STARTED',
registeredRoles: [],
portfolioCount: 0,
notes: 'No documents submitted. Follow-up campaign candidate.',
updatedAt: '2026-04-01',
},
{
id: 'u4',
userCode: 'U-102510',
name: 'Nodal Agency Ltd',
email: 'billing@nodal.agency',
phone: '+91 98765 43213',
location: 'Velachery, Chennai',
joinedOn: '2026-01-25',
lastActive: '20 mins ago',
userType: 'COMPANY',
accountStatus: 'ACTIVE',
verificationStatus: 'VERIFIED',
onboardingStatus: 'COMPLETED',
registeredRoles: [{ key: 'company', name: 'Company', status: 'ACTIVE', registeredOn: '2026-01-26' }],
portfolioCount: 0,
notes: 'Company account in good standing.',
updatedAt: '2026-04-02',
},
{
id: 'u5',
userCode: 'U-102555',
name: 'Victor Vance',
email: 'vance@archive.io',
phone: '+91 98765 43214',
location: 'Anna Nagar, Chennai',
joinedOn: '2026-02-14',
lastActive: '10 mins ago',
userType: 'PROFESSIONAL',
accountStatus: 'ACTIVE',
verificationStatus: 'PENDING',
onboardingStatus: 'IN_PROGRESS',
registeredRoles: [{ key: 'archivist', name: 'Archivist', status: 'PENDING', registeredOn: '2026-02-18' }],
portfolioCount: 2,
notes: 'Awaiting ID re-upload.',
updatedAt: '2026-04-02',
},
{
id: 'u6',
userCode: 'U-102640',
name: 'Jameson Lee',
email: 'jlee@global.net',
phone: '+91 98765 43215',
location: 'Porur, Chennai',
joinedOn: '2026-02-28',
lastActive: '3 hours ago',
userType: 'CUSTOMER',
accountStatus: 'ACTIVE',
verificationStatus: 'VERIFIED',
onboardingStatus: 'COMPLETED',
registeredRoles: [{ key: 'service-seeker', name: 'Service Seeker', status: 'ACTIVE', registeredOn: '2026-03-01' }],
portfolioCount: 0,
notes: 'Posts requirements regularly.',
updatedAt: '2026-04-02',
},
];
function StatusBadge(props: { status: string }) {
const active = () => props.status === 'ACTIVE' || props.status === 'VERIFIED' || props.status === 'COMPLETED';
const pending = () => props.status === 'PENDING' || props.status === 'IN_REVIEW' || props.status === 'SUBMITTED' || props.status === 'IN_PROGRESS';
@ -175,10 +61,40 @@ export default function UsersManagementPage() {
const [filterOpen, setFilterOpen] = createSignal(false);
const [openMenuId, setOpenMenuId] = createSignal<string | null>(null);
const [selectedUser, setSelectedUser] = createSignal<ExternalUserRecord | null>(null);
const currentUser = createMemo<ExternalUserRecord>(() => selectedUser() ?? FALLBACK_USERS[0]);
const currentUser = createMemo<ExternalUserRecord | null>(() => selectedUser());
const load = async () => {
setRows(FALLBACK_USERS);
try {
const r = await fetch('/api/gateway/api/admin/users');
if (!r.ok) throw new Error('Failed to fetch users');
const data = await r.json();
const mapped: ExternalUserRecord[] = (Array.isArray(data) ? data : []).map((u: any) => ({
id: u.id,
userCode: u.id.slice(0, 8).toUpperCase(),
name: u.full_name || u.email.split('@')[0],
email: u.email,
location: 'Not Specified',
joinedOn: u.created_at ? u.created_at.slice(0, 10) : '—',
userType: u.roles.includes('COMPANY') ? 'COMPANY' : u.roles.includes('JOBSEEKER') ? 'JOBSEEKER' : u.roles.includes('CUSTOMER') ? 'CUSTOMER' : 'PROFESSIONAL',
accountStatus: (u.status || 'ACTIVE').toUpperCase(),
verificationStatus: 'VERIFIED',
onboardingStatus: 'COMPLETED',
registeredRoles: (u.roles || []).map((r: string) => ({
key: r.toLowerCase(),
name: r.split('_').map(w => w.charAt(0) + w.slice(1).toLowerCase()).join(' '),
status: 'ACTIVE'
})),
portfolioCount: 0,
updatedAt: u.updated_at || u.created_at || '—',
}));
setRows(mapped);
} catch (e) {
console.error(e);
setRows([]);
}
};
onMount(() => void load());
@ -339,43 +255,43 @@ export default function UsersManagementPage() {
<div style="border:1px solid #E5E7EB;border-radius:16px;background:white;overflow:hidden">
<div style="padding:18px 22px;border-bottom:1px solid #E5E7EB;display:flex;align-items:center;justify-content:space-between;gap:16px">
<div>
<h2 style="font-size:22px;font-weight:700;color:#111827">User Profile: {currentUser().name}</h2>
<h2 style="font-size:22px;font-weight:700;color:#111827">User Profile: {currentUser()?.name}</h2>
<p style="font-size:14px;color:#6B7280;margin-top:4px">View and manage account information, registered roles, and activity history.</p>
</div>
<div style="display:flex;gap:10px">
<button type="button" onClick={() => toggleSuspend(currentUser())} style="height:40px;border-radius:10px;border:1px solid #E5E7EB;background:white;padding:0 16px;font-size:13px;font-weight:600;color:#374151;cursor:pointer">{currentUser().accountStatus === 'SUSPENDED' ? 'Activate' : 'Suspend'}</button>
<button type="button" onClick={() => toggleBlock(currentUser())} style="height:40px;border-radius:10px;border:1px solid #E5E7EB;background:white;padding:0 16px;font-size:13px;font-weight:600;color:#374151;cursor:pointer">{currentUser().accountStatus === 'BLOCKED' ? 'Unblock' : 'Block'}</button>
<button type="button" onClick={() => toggleSuspend(currentUser()!)} style="height:40px;border-radius:10px;border:1px solid #E5E7EB;background:white;padding:0 16px;font-size:13px;font-weight:600;color:#374151;cursor:pointer">{currentUser()?.accountStatus === 'SUSPENDED' ? 'Activate' : 'Suspend'}</button>
<button type="button" onClick={() => toggleBlock(currentUser()!)} style="height:40px;border-radius:10px;border:1px solid #E5E7EB;background:white;padding:0 16px;font-size:13px;font-weight:600;color:#374151;cursor:pointer">{currentUser()?.accountStatus === 'BLOCKED' ? 'Unblock' : 'Block'}</button>
<button type="button" style="height:40px;border-radius:10px;background:#0D0D2A;padding:0 16px;font-size:13px;font-weight:600;color:white;border:none;cursor:pointer">Edit Profile</button>
</div>
</div>
<div style="padding:18px 22px;display:grid;grid-template-columns:2fr 1fr;gap:14px;border-bottom:1px solid #E5E7EB">
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:14px;display:grid;grid-template-columns:120px 1fr 1fr 1fr;gap:14px;align-items:center">
<div style="width:110px;height:110px;border-radius:12px;border:1px solid #E5E7EB;background:#F9FAFB;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:#94A3B8">{currentUser().name.charAt(0)}</div>
<div style="width:110px;height:110px;border-radius:12px;border:1px solid #E5E7EB;background:#F9FAFB;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:#94A3B8">{currentUser()?.name.charAt(0)}</div>
<div>
<p style="font-size:11px;color:#9CA3AF;text-transform:uppercase;letter-spacing:0.06em">User ID</p>
<p style="font-size:20px;font-weight:700;color:#111827">{currentUser().userCode}</p>
<p style="font-size:20px;font-weight:700;color:#111827">{currentUser()?.userCode}</p>
<p style="margin-top:8px;font-size:11px;color:#9CA3AF;text-transform:uppercase;letter-spacing:0.06em">Account Status</p>
<StatusBadge status={currentUser().accountStatus} />
<StatusBadge status={currentUser()?.accountStatus || 'ACTIVE'} />
</div>
<div>
<p style="font-size:11px;color:#9CA3AF;text-transform:uppercase;letter-spacing:0.06em">Email Address</p>
<p style="font-size:14px;font-weight:600;color:#111827">{currentUser().email}</p>
<p style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.email}</p>
<p style="margin-top:8px;font-size:11px;color:#9CA3AF;text-transform:uppercase;letter-spacing:0.06em">Joined Date</p>
<p style="font-size:14px;font-weight:600;color:#111827">{currentUser().joinedOn}</p>
<p style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.joinedOn}</p>
</div>
<div>
<p style="font-size:11px;color:#9CA3AF;text-transform:uppercase;letter-spacing:0.06em">Phone</p>
<p style="font-size:14px;font-weight:600;color:#111827">{currentUser().phone || '—'}</p>
<p style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.phone || '—'}</p>
<p style="margin-top:8px;font-size:11px;color:#9CA3AF;text-transform:uppercase;letter-spacing:0.06em">Location</p>
<p style="font-size:14px;font-weight:600;color:#111827">{currentUser().location}</p>
<p style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.location}</p>
</div>
</div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:10px">
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:12px"><p style="font-size:11px;color:#9CA3AF;text-transform:uppercase">Total Roles</p><p style="font-size:30px;font-weight:700;color:#111827">{currentUser().registeredRoles.length}</p></div>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:12px"><p style="font-size:11px;color:#9CA3AF;text-transform:uppercase">Active Roles</p><p style="font-size:30px;font-weight:700;color:#FF5E13">{currentUser().registeredRoles.filter((r) => r.status === 'ACTIVE').length}</p></div>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:12px"><p style="font-size:11px;color:#9CA3AF;text-transform:uppercase">Pending</p><p style="font-size:30px;font-weight:700;color:#111827">{currentUser().registeredRoles.filter((r) => r.status === 'PENDING').length}</p></div>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:12px"><p style="font-size:11px;color:#9CA3AF;text-transform:uppercase">Portfolio</p><p style="font-size:30px;font-weight:700;color:#111827">{currentUser().portfolioCount}</p></div>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:12px"><p style="font-size:11px;color:#9CA3AF;text-transform:uppercase">Total Roles</p><p style="font-size:30px;font-weight:700;color:#111827">{currentUser()?.registeredRoles.length || 0}</p></div>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:12px"><p style="font-size:11px;color:#9CA3AF;text-transform:uppercase">Active Roles</p><p style="font-size:30px;font-weight:700;color:#FF5E13">{currentUser()?.registeredRoles.filter((r) => r.status === 'ACTIVE').length || 0}</p></div>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:12px"><p style="font-size:11px;color:#9CA3AF;text-transform:uppercase">Pending</p><p style="font-size:30px;font-weight:700;color:#111827">{currentUser()?.registeredRoles.filter((r) => r.status === 'PENDING').length || 0}</p></div>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:12px"><p style="font-size:11px;color:#9CA3AF;text-transform:uppercase">Portfolio</p><p style="font-size:30px;font-weight:700;color:#111827">{currentUser()?.portfolioCount || 0}</p></div>
</div>
</div>
@ -401,16 +317,16 @@ export default function UsersManagementPage() {
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:16px">
<p style="font-size:18px;font-weight:700;color:#111827">Personal Summary</p>
<div style="margin-top:14px;display:flex;flex-direction:column;gap:10px">
<div style="display:flex;justify-content:space-between"><span style="font-size:13px;color:#6B7280">Full Name</span><span style="font-size:14px;font-weight:600;color:#111827">{currentUser().name}</span></div>
<div style="display:flex;justify-content:space-between"><span style="font-size:13px;color:#6B7280">User Type</span><span style="font-size:14px;font-weight:600;color:#111827">{currentUser().userType}</span></div>
<div style="display:flex;justify-content:space-between"><span style="font-size:13px;color:#6B7280">Last Active</span><span style="font-size:14px;font-weight:600;color:#111827">{currentUser().lastActive || '—'}</span></div>
<div style="display:flex;justify-content:space-between"><span style="font-size:13px;color:#6B7280">Full Name</span><span style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.name}</span></div>
<div style="display:flex;justify-content:space-between"><span style="font-size:13px;color:#6B7280">User Type</span><span style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.userType}</span></div>
<div style="display:flex;justify-content:space-between"><span style="font-size:13px;color:#6B7280">Last Active</span><span style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.lastActive || '—'}</span></div>
</div>
</div>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:16px">
<p style="font-size:18px;font-weight:700;color:#111827">Registered Roles</p>
<Show when={currentUser().registeredRoles.length > 0} fallback={<p style="margin-top:14px;font-size:14px;color:#6B7280">No role registered yet. Use this list for re-engagement campaigns.</p>}>
<Show when={(currentUser()?.registeredRoles.length || 0) > 0} fallback={<p style="margin-top:14px;font-size:14px;color:#6B7280">No role registered yet.</p>}>
<div style="margin-top:14px;display:flex;flex-wrap:wrap;gap:8px">
<For each={currentUser().registeredRoles}>{(role) => <RoleChip role={role} />}</For>
<For each={currentUser()?.registeredRoles}>{(role) => <RoleChip role={role} />}</For>
</div>
</Show>
</div>
@ -419,18 +335,18 @@ export default function UsersManagementPage() {
<Show when={detailTab() === 'personal'}>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px">
<div><p style="font-size:12px;color:#9CA3AF">Name</p><p style="font-size:14px;font-weight:600;color:#111827">{currentUser().name}</p></div>
<div><p style="font-size:12px;color:#9CA3AF">Email</p><p style="font-size:14px;font-weight:600;color:#111827">{currentUser().email}</p></div>
<div><p style="font-size:12px;color:#9CA3AF">Phone</p><p style="font-size:14px;font-weight:600;color:#111827">{currentUser().phone || '—'}</p></div>
<div><p style="font-size:12px;color:#9CA3AF">Location</p><p style="font-size:14px;font-weight:600;color:#111827">{currentUser().location}</p></div>
<div><p style="font-size:12px;color:#9CA3AF">Name</p><p style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.name}</p></div>
<div><p style="font-size:12px;color:#9CA3AF">Email</p><p style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.email}</p></div>
<div><p style="font-size:12px;color:#9CA3AF">Phone</p><p style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.phone || '—'}</p></div>
<div><p style="font-size:12px;color:#9CA3AF">Location</p><p style="font-size:14px;font-weight:600;color:#111827">{currentUser()?.location}</p></div>
</div>
</Show>
<Show when={detailTab() === 'roles'}>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:16px">
<Show when={currentUser().registeredRoles.length > 0} fallback={<p style="font-size:14px;color:#6B7280">No role registrations yet.</p>}>
<Show when={(currentUser()?.registeredRoles.length || 0) > 0} fallback={<p style="font-size:14px;color:#6B7280">No role registrations yet.</p>}>
<div style="display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px">
<For each={currentUser().registeredRoles}>
<For each={currentUser()?.registeredRoles}>
{(role) => (
<div style="border:1px solid #E5E7EB;border-radius:10px;padding:12px">
<div style="display:flex;justify-content:space-between;align-items:center"><p style="font-size:15px;font-weight:700;color:#111827">{role.name}</p><StatusBadge status={role.status} /></div>
@ -445,27 +361,27 @@ export default function UsersManagementPage() {
<Show when={detailTab() === 'portfolio'}>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:16px">
<p style="font-size:14px;color:#111827;font-weight:600">Portfolio assets submitted: {currentUser().portfolioCount}</p>
<p style="font-size:14px;color:#111827;font-weight:600">Portfolio assets submitted: {currentUser()?.portfolioCount || 0}</p>
</div>
</Show>
<Show when={detailTab() === 'verification'}>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:16px;display:flex;gap:12px;align-items:center">
<StatusBadge status={currentUser().verificationStatus} />
<span style="font-size:14px;color:#374151">Onboarding: {currentUser().onboardingStatus.split('_').join(' ')}</span>
<StatusBadge status={currentUser()?.verificationStatus || 'VERIFIED'} />
<span style="font-size:14px;color:#374151">Onboarding: {currentUser()?.onboardingStatus.split('_').join(' ') || 'COMPLETED'}</span>
</div>
</Show>
<Show when={detailTab() === 'activity'}>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:16px">
<p style="font-size:14px;color:#111827;font-weight:600">Last Active: {currentUser().lastActive || '—'}</p>
<p style="font-size:13px;color:#6B7280;margin-top:8px">Joined on {currentUser().joinedOn}</p>
<p style="font-size:14px;color:#111827;font-weight:600">Last Active: {currentUser()?.lastActive || '—'}</p>
<p style="font-size:13px;color:#6B7280;margin-top:8px">Joined on {currentUser()?.joinedOn}</p>
</div>
</Show>
<Show when={detailTab() === 'notes'}>
<div style="border:1px solid #E5E7EB;border-radius:12px;padding:16px">
<p style="font-size:14px;color:#111827">{currentUser().notes || 'No notes yet.'}</p>
<p style="font-size:14px;color:#111827">{currentUser()?.notes || 'No notes yet.'}</p>
</div>
</Show>
</div>

View file

@ -148,100 +148,6 @@ const normalizeRoleSpecKey = (value: string) => {
return 'PROFESSIONAL';
};
const FALLBACK_VERIFICATION_ROWS: VerificationRow[] = [
{
id: 'VR-92841',
applicantName: 'Sarah Jenkins',
requestType: 'Portfolio Approval',
roleLabel: 'Photographer',
submittedOn: '2026-04-01',
status: 'UNDER_REVIEW',
priority: 'HIGH',
userType: 'PROFESSIONAL',
area: 'T. Nagar, Chennai',
userId: 'u-1001',
roleKey: 'PHOTOGRAPHER',
},
{
id: 'VR-92839',
applicantName: 'Zenith Tech Hub',
requestType: 'Company Approval',
roleLabel: 'Company',
submittedOn: '2026-04-01',
status: 'DOCUMENTS_REQUESTED',
priority: 'MEDIUM',
userType: 'COMPANY',
area: 'Guindy, Chennai',
userId: 'u-1002',
roleKey: 'COMPANY',
},
{
id: 'VR-92835',
applicantName: 'Marcus Davis',
requestType: 'Profile Approval',
roleLabel: 'Graphic Designer',
submittedOn: '2026-03-31',
status: 'REVISION_REQUESTED',
priority: 'LOW',
userType: 'PROFESSIONAL',
area: 'Velachery, Chennai',
userId: 'u-1003',
roleKey: 'GRAPHIC_DESIGNER',
},
{
id: 'VR-92812',
applicantName: 'Wedding Shoot Request',
requestType: 'Service Seeker Requirement',
roleLabel: 'Service Seeker',
submittedOn: '2026-03-31',
status: 'APPROVED',
priority: 'MEDIUM',
userType: 'CUSTOMER',
area: 'Adyar, Chennai',
userId: 'u-1004',
roleKey: 'CUSTOMER',
},
{
id: 'VR-92798',
applicantName: 'Elena Petrova',
requestType: 'Job Seeker Approval',
roleLabel: 'Job Seeker',
submittedOn: '2026-03-30',
status: 'PENDING',
priority: 'MEDIUM',
userType: 'JOBSEEKER',
area: 'Anna Nagar, Chennai',
userId: 'u-1005',
roleKey: 'JOB_SEEKER',
},
{
id: 'VR-92772',
applicantName: 'Arjun Service Seeker',
requestType: 'Service Seeker Profile Approval',
roleLabel: 'Service Seeker',
submittedOn: '2026-03-30',
status: 'UNDER_REVIEW',
priority: 'MEDIUM',
userType: 'CUSTOMER',
area: 'T. Nagar, Chennai',
userId: 'u-1006',
roleKey: 'CUSTOMER',
},
{
id: 'VR-92744',
applicantName: 'Zenith Tech Hub - Senior Architect',
requestType: 'Job Approval',
roleLabel: 'Company',
submittedOn: '2026-03-29',
status: 'PENDING',
priority: 'HIGH',
userType: 'COMPANY',
area: 'Guindy, Chennai',
userId: 'u-1007',
roleKey: 'COMPANY',
},
];
export default function VerificationManagementPage() {
const [rows, setRows] = createSignal<VerificationRow[]>([]);
const [search, setSearch] = createSignal('');
@ -379,10 +285,10 @@ export default function VerificationManagementPage() {
});
const mergedRows = [...profileRows, ...portfolioRows, ...jobRows, ...requirementRows];
setRows(mergedRows.length ? mergedRows : FALLBACK_VERIFICATION_ROWS);
setRows(mergedRows);
} catch (e: any) {
setRows(FALLBACK_VERIFICATION_ROWS);
setError(e?.message ? `${e.message} Showing demo queue data.` : 'Could not load verification queue. Showing demo queue data.');
setRows([]);
setError(e?.message ? e.message : 'Could not load verification queue.');
}
};
@ -436,7 +342,6 @@ export default function VerificationManagementPage() {
});
const displayRows = createMemo(() => {
if (rows().length === 0) return FALLBACK_VERIFICATION_ROWS;
return filteredRows();
});
@ -678,15 +583,72 @@ export default function VerificationManagementPage() {
window.localStorage.setItem(APPROVAL_QUEUE_STORAGE_KEY, JSON.stringify([item, ...filtered]));
};
const applySelectedStatus = (nextStatus: VerificationStatus) => {
const applySelectedStatus = async (nextStatus: VerificationStatus) => {
const current = selectedRow();
if (!current) return;
const nextRow = { ...current, status: nextStatus };
setSelectedRow(nextRow);
setRows((prev) => prev.map((item) => (item.id === current.id ? { ...item, status: nextStatus } : item)));
if (nextStatus === 'APPROVED') {
pushToApprovalQueue(nextRow);
setActionMessage('Verified and sent to Approval Management for final approval.');
const isApprove = nextStatus === 'APPROVED';
const isReject = nextStatus === 'REJECTED';
if (!isApprove && !isReject) {
// local update only for intermediate states if needed, but usually we skip backend call here
setRows((prev) => prev.map((item) => (item.id === current.id ? { ...item, status: nextStatus } : item)));
setSelectedRow({ ...current, status: nextStatus });
return;
}
try {
const accessToken = typeof sessionStorage !== 'undefined'
? sessionStorage.getItem('nxtgauge_admin_access_token') || ''
: '';
const common = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
...(accessToken ? { Authorization: `Bearer ${accessToken}` } : {}),
},
credentials: 'include' as const,
body: isReject ? JSON.stringify({ reason: requestNote() }) : undefined,
};
let endpoint = '';
const rawId = current.id.split('-').pop() || '';
const userId = current.userId;
if (current.requestType === 'Job Approval') {
const jobId = current.payload?.id || rawId;
endpoint = `/api/admin/approvals/jobs/${jobId}/${isApprove ? 'approve' : 'reject'}`;
} else if (current.requestType === 'Service Seeker Requirement') {
const reqId = current.payload?.id || rawId;
endpoint = `/api/admin/approvals/requirements/${reqId}/${isApprove ? 'approve' : 'reject'}`;
} else if (current.requestType === 'Company Approval') {
endpoint = `/api/admin/approvals/profiles/company/${userId}/${isApprove ? 'approve' : 'reject'}`;
} else if (current.requestType === 'Service Seeker Profile Approval') {
endpoint = `/api/admin/approvals/profiles/customer/${userId}/${isApprove ? 'approve' : 'reject'}`;
} else if (current.requestType === 'Job Seeker Approval') {
endpoint = `/api/admin/approvals/profiles/job_seeker/${userId}/${isApprove ? 'approve' : 'reject'}`;
} else {
endpoint = `/api/admin/approvals/profiles/professional/${current.roleKey}/${userId}/${isApprove ? 'approve' : 'reject'}`;
}
const res = await fetch(`${API}${endpoint}`, common);
if (!res.ok) {
const txt = await res.text();
throw new Error(`Failed to update status (${res.status}): ${txt}`);
}
setRows((prev) => prev.map((item) => (item.id === current.id ? { ...item, status: nextStatus } : item)));
setSelectedRow({ ...current, status: nextStatus });
if (isApprove) {
pushToApprovalQueue({ ...current, status: nextStatus });
setActionMessage('Successfully verified and sent to Approval Management.');
} else {
setActionMessage('Successfully rejected submission.');
}
} catch (e: any) {
setError(e.message || 'Failed to update backend status');
}
};
@ -1028,28 +990,46 @@ export default function VerificationManagementPage() {
</div>
</div>
<Show when={selectedPortfolio().length > 0}>
<div style="border-radius:16px;border:1px solid #E5E7EB;background:white;box-shadow:0 1px 4px rgba(0,0,0,0.06);overflow:hidden">
<div style="padding:16px 20px;border-bottom:1px solid #F3F4F6;display:flex;align-items:center;justify-content:space-between">
<h3 style="margin:0;font-size:16px;font-weight:700;color:#111827">Portfolio Photos</h3>
<span style="font-size:12px;color:#6B7280">{selectedPortfolio().length} images</span>
</div>
<div style="padding:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px">
<For each={selectedPortfolio()}>
{(asset) => (
<button
type="button"
onClick={() => setViewer({ open: true, title: asset.title, type: 'IMAGE', url: asset.url })}
style="border:1px solid #E5E7EB;border-radius:10px;background:#FFFFFF;padding:0;cursor:pointer;overflow:hidden;text-align:left"
>
<img src={asset.url} alt={asset.title} style="width:100%;height:110px;object-fit:cover;display:block" />
<div style="padding:8px 10px;font-size:12px;font-weight:600;color:#374151">{asset.title}</div>
</button>
)}
</For>
<div style="border-radius:16px;border:1px solid #E5E7EB;background:white;box-shadow:0 1px 4px rgba(0,0,0,0.06);overflow:hidden">
<div style="padding:16px 20px;border-bottom:1px solid #F3F4F6;display:flex;align-items:center;justify-content:space-between;background:#FFFBF0">
<h3 style="margin:0;font-size:16px;font-weight:700;color:#854D0E">Verification Requirements Checklist</h3>
<span style="font-size:12px;font-weight:600;color:#A16207">System Audit</span>
</div>
<div style="padding:20px;display:grid;gap:12px">
<For each={selectedDocuments()}>
{(doc) => (
<div style="display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px;background:#F9FAFB;border:1px solid #E5E7EB">
<div style="display:flex;align-items:center;gap:10px">
<div style={`width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;${doc.status === 'SUBMITTED' ? 'background:#22C55E' : 'background:#EF4444'}`}>
<Show when={doc.status === 'SUBMITTED'} fallback={<svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>}>
<svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="4"><polyline points="20 6 9 17 4 12"/></svg>
</Show>
</div>
<span style="font-size:13px;font-weight:600;color:#374151">{doc.title}</span>
</div>
<span style={`font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;${doc.status === 'SUBMITTED' ? 'background:#DCFCE7;color:#166534' : 'background:#FEE2E2;color:#991B1B'}`}>
{doc.status === 'SUBMITTED' ? 'RECEIVED' : 'MISSING'}
</span>
</div>
)}
</For>
<div style="margin-top:8px;padding-top:16px;border-top:1px dashed #E5E7EB">
<p style="font-size:12px;font-weight:700;color:#6B7280;margin-bottom:8px;text-transform:uppercase">Profile Completeness</p>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:8px">
<For each={selectedFieldValues().slice(0, 6)}>
{(field) => (
<div style="display:flex;align-items:center;gap:8px;font-size:12px;color:#4B5563">
<div style={`width:6px;height:6px;border-radius:50%;${field.value && field.value !== '—' ? 'background:#22C55E' : 'background:#EF4444'}`} />
<span style="opacity:0.8">{field.label}:</span>
<span style="font-weight:600">{field.value && field.value !== '—' ? 'Filled' : 'Empty'}</span>
</div>
)}
</For>
</div>
</div>
</div>
</Show>
</div>
<div style="border-radius:16px;border:1px solid #E5E7EB;background:white;box-shadow:0 1px 4px rgba(0,0,0,0.06);padding:16px">
<h3 style="margin:0 0 8px;font-size:16px;font-weight:700;color:#111827">Reviewer Actions</h3>

View file

@ -76,11 +76,9 @@ export default function LoginPage() {
const body = JSON.stringify({ email: email().trim().toLowerCase(), password: password(), loginTarget: 'admin' });
const headers = { 'Content-Type': 'application/json', Accept: 'application/json', 'x-portal-target': 'admin' };
let payload: any = {}; let status = 500; let success = false;
for (const url of ['/api/gateway/users/auth/internal/login', '/api/gateway/auth/internal/login']) {
const r = await fetch(url, { method: 'POST', headers, credentials: 'include', body });
status = r.status; payload = await r.json().catch(() => ({}));
if (r.ok) { success = true; break; }
}
const r = await fetch('/api/admin/auth/login', { method: 'POST', headers, credentials: 'include', body });
status = r.status; payload = await r.json().catch(() => ({}));
if (r.ok) { success = true; }
if (!success) {
const fallback = status === 502 ? 'Auth service unavailable (502). Please retry in 12 minutes.' : 'Sign in failed.';
throw new Error(pickManagementLoginError(payload) || fallback);