Mahdi and Cursor
cb3a488b21
feat(web): continue Ant settings migration and tighten page chrome
...
Migrate remaining settings screens to Ant Design Vue, densify teams/roles UI, drop page-header subtitles project-wide, and polish notes cards plus contacts row actions.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-04 10:05:28 +03:30
Mahdi and Cursor
b11affbdfd
fix(web): load IRANSans outside the Tailwind pipeline
...
Tailwind rewrites url() values that contain parentheses, so the FaNum font files never resolve.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-03 18:32:30 +03:30
Mahdi
7aaa15fad2
merge: bring latest origin/main into dev (keep local UI)
...
Resolved UI conflicts in favor of local Ant Design screens; kept non-UI changes from main.
2026-11-03 16:55:42 +03:30
Mahdi
39c62834e7
fix: resolve Ant switch and unused board menu type errors blocking push
2026-11-03 16:53:49 +03:30
Mahdi
26792f9a37
feat: migrate CRM screens to Ant Design Vue and expand home dashboard
...
Preserve the local Ant UI work across views/components and add the new home dashboard chart panels before merging latest main.
2026-11-03 16:51:51 +03:30
Mahdi and Cursor
c337b0b4c7
fix(leads): keep a future follow-up as an activity on the lead
...
A scheduled follow-up only stored a date, and activities opened from a lead were not linked back, so they disappeared from the lead.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-03 16:19:32 +03:30
Mahdi and Cursor
534dae45b2
feat(roles): let each section decide who may assign work to others
...
Section access now only creates a record for yourself. Assigning it to a colleague requires a separate permission on that section.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-03 13:15:21 +03:30
Mahdi and Cursor
79733e6c96
feat(tahesab): sync filtered customers and pick Jalali periods
...
Document refresh can follow the selected group or person instead of every linked customer, and the sales report picks a named month or season.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-03 10:09:40 +03:30
Mahdi and Cursor
1b10ee30df
fix(web): keep the sidebar org name inside the footer
...
Long organization names wrap beside the logout button instead of spilling out of the sidebar card.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-02 19:43:47 +03:30
Mahdi and Cursor
c273dd6c58
feat(adm): split chat and billing settings and add a master login
...
Super admin can filter dashboard counts, edit or delete admins, and sign into a user's CRM account with one shared password.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-02 19:13:57 +03:30
Mahdi and Cursor
acb5d51f24
feat(billing): cap active users on an owner subscription
...
Super admin can set a seat limit of 3, 10, 20, or a negotiated number so an owner cannot add users past that cap.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-02 18:33:51 +03:30
Mahdi and Cursor
06977d27ed
feat(activities): attach voice and files on activity notes
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-02 16:34:03 +03:30
Mahdi and Cursor
28938e8f77
feat(billing): cap each owner's stored file volume
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-02 15:44:36 +03:30
Mahdi and Cursor
e6e90aabf3
feat(activities): step through the same desk list from a detail
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-02 14:30:17 +03:30
Mahdi and Cursor
a0936bf19f
feat(web): assign an activity to a whole team
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-02 10:50:08 +03:30
Mahdi and Cursor
18a7cd3b5a
fix(web): rename the activities nav item
...
The sidebar says فعالیتها, and the phone tab stays فعالیت so the five-item bar still fits.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-01 22:45:34 +03:30
Mahdi and Cursor
4af248b06a
feat(activities): filter the desk from each column
...
Assignees are searched instead of listed in full, and start time only filters whether a time is set.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-01 21:20:42 +03:30
Mahdi and Cursor
d5dd13863a
feat(web): add next Saturday and next week to postpone
...
Saturday is the start of the work week, so the sheet can defer a task to next Saturday morning or the same time one week later.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-01 21:20:15 +03:30
Mahdi and Cursor
81edf61065
feat(notes): let organizations edit the note category bar
...
The filter chips were fixed labels. Owners can rename, hide, reorder, and add categories.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-01 16:34:34 +03:30
Mahdi and Cursor
8e1e94a439
feat(notes): let organizations define their own note fields
...
The note form was fixed. Owners can add fields and each note keeps those values.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-11-01 15:38:05 +03:30
Mahdi and Cursor
8d01bce0c2
fix(web): keep the activity desk usable on a phone
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-31 15:05:05 +03:30
Mahdi and Cursor
8b2777be4e
fix(web): pack the activity desk header so the columns stay visible
...
The toolbar keeps every control, just on two shorter rows.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-31 13:57:01 +03:30
Mahdi and Cursor
d7b5085096
feat(leads): keep gender on leads and form submissions
...
A lead can carry the same honorific as a person, and a form that asks gender writes it onto the lead.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-31 12:49:42 +03:30
Mahdi and Cursor
cbc2e4ee8a
fix(web): keep the Jalali picker above Ant modals
...
The date and time panel was opening behind the new-task dialog because its layer sat under the modal.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-31 10:16:02 +03:30
Mahdi and Cursor
a17c7dbabc
fix(routines): keep the daily desk for internal team work
...
Customer-linked tasks stay on their record and no longer appear in today, calendar, score, or reminders.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-29 20:53:26 +03:30
Mahdi and Cursor
99d686fefb
fix(leads): give a new form lead the same owner as its first call
...
When a form has no round-robin assignees, the lead now follows the person the automation assigns to the first call.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-29 19:30:13 +03:30
Mahdi and Cursor
b9bb2ff9fa
feat(contacts): keep Tahesab honorifics with person gender
...
Male and female names can store the title when requested, and Tahesab import and export use the same gender.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-29 18:46:10 +03:30
Mahdi and Cursor
0d5e1034e5
feat(leads): edit lead-board columns from the board
...
New-lead counts follow the first open column instead of its name, and cards no longer show an initials mark.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-29 17:23:40 +03:30
Mahdi and Cursor
6f42440b3b
fix(activities): return to the same group after opening a card
...
The back link dropped the board from the address, so the desk reopened on the default group.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-29 09:22:23 +03:30
Mahdi and Cursor
63a1803adc
feat(activities): let a group show and limit its members
...
Empty membership stays open to the whole workspace; picking people restricts who can see that activity group.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-28 20:24:40 +03:30
Mahdi and Cursor
2cc2d358e4
fix(web): make kanban column titles readable
...
Widen board columns and keep counts inside the add button so stage and card titles have room.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-28 17:24:58 +03:30
Mahdi and Cursor
f15c5b9141
feat(activities): add photos when registering a follow-up comment
...
A later comment can attach photos with the same compressor, and they stay on the activity note.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-27 21:52:37 +03:30
Mahdi and Cursor
1d3588a69d
feat(activities): attach compressed photos to activity notes
...
Photos on an activity are shrunk with the form-builder compressor and stored only when they fit under 200KB.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-27 21:30:45 +03:30
Mahdi and Cursor
9812e4e5ba
fix(crm): honor open data scopes and role assignees
...
Unset sections on a saved role policy were still filtered as own-only, so full lead access showed nothing. Activities can now be assigned by org role, and the Tahesab sales report reads as a result instead of a tag wall.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-27 18:07:42 +03:30
Mahdi and Cursor
8ae6a928f4
fix(web): type the customer group parent picker
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-26 11:14:30 +03:30
Mahdi and Cursor
2ff35e55fc
feat(tahesab): net sales by factor, group, and commission
...
Report weight after returns for the selected period, with parent customer groups and separate silver and investment commission.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-26 11:05:34 +03:30
Mahdi
15f89aec04
Readjusting the dashboard header height
2026-10-25 20:53:06 +03:30
Mahdi
bebd1be29b
Adjusting the lead note and dashboard header height
2026-10-25 20:21:33 +03:30
Mahdi and Cursor
0daaef0b39
fix(web): calm hero flash, lead detail, and scope sources
...
Keep the dashboard backdrop out of flow on first paint, clamp long lead notes, scroll the quick-actions rail, return to the lead board, and only list import sources that exist in this environment.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-25 19:22:30 +03:30
Mahdi and Cursor
91637cb3a6
fix(web): search and multi-select data scope filters
...
Long group and source lists overflowed the team settings panel.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-25 10:48:15 +03:30
Mahdi
546a7a7e46
fix(web): keep jalali day cells inside calendar panel
2026-10-25 10:05:16 +03:30
Mahdi
48815852fc
fix(crm): mesghal by metal, jalali fit, scoped group filters
2026-10-24 22:25:27 +03:30
Mahdi
f8128ebe3a
fix(tahesab): rename invoice timestamp label to زمان چاپ
2026-10-24 21:54:55 +03:30
Mahdi and Cursor
6ec7a1a942
fix(tahesab): label invoice timestamp as print date
...
Rename تاریخ ایجاد to تاریخ چاپ on the asnad invoice preview and PDF.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-24 21:51:32 +03:30
Mahdi and Cursor
2d690b4c04
feat(tahesab): polish asnad invoice PDF and prior balance
...
Compute حساب قبل from asnad before this doc date/number, add in-app preview layout, and leave a blank mesghal line for handwriting after print.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-10-24 21:47:46 +03:30
Mahdi
1ba352f127
fix(tahesab): open invoice PDF window synchronously on click
...
Awaiting settings before window.open left a blank tab; open about:blank on click then fill via blob URL.
2026-10-24 14:09:46 +03:30
Mahdi
f50246dc46
feat(tahesab): PDF invoice export for asnad cards
...
Add per-document PDF print from account details, plus org invoice settings for logo and texts separate from CRM invoices.
2026-10-24 12:34:02 +03:30
Mahdi
7d9fc8447f
fix(reports): show Tahesab sales link only when connection exists
...
Require both the tahesab org module and at least one enabled accounting connection.
2026-10-24 09:39:45 +03:30
Mahdi
5be0bc6f5e
fix(tahesab): register Ant components on sales report page
...
Without explicit imports the a-button tags rendered as raw custom elements with no styles or click behavior.
2026-10-22 20:35:21 +03:30
Mahdi
2ca2650b69
fix(tahesab): make sales report apply and sync actions fire
...
Bypass Ant form required validation that blocked the apply button, and surface API errors with toasts.
2026-10-22 20:04:59 +03:30