Commit Graph

14 Commits

Author SHA1 Message Date
Тимур Городецкий 10ba9a6623 feat: add catalogs group with site links to the sidebar
"Справочники" in the sidebar expands into links to the site's lists and
pages (projects, companies, professions, units, equipment, archive,
manual, recycle bin), each opening in a new tab. Uses the new Sidebar
groups and links from @tnsu/ui-kit 0.13.0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 10:20:12 +05:00
Тимур Городецкий 18c2959820 feat: add works import from Excel (check and plan)
New "Импорт работ из Excel" section checks the planned volumes file
against /Import/StroyBot/Works as soon as it is picked. The builder
turns checked rows into works and decides per work whether to create it
or update the volume and unit of an existing work with the same title
on the object. Saving comes next.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-22 17:35:21 +05:00
Тимур Городецкий 1ba67fe4c1 feat: import reports from Excel
The /Import/StroyBot/Reports endpoint only validates the file, so the
check now runs as soon as a file is picked. When there are no errors,
"Import" builds the reports from the ids in the response and saves them
with the same Dataverse code as the report form: one report per date,
company, shift and object; resources nested under their work; idle and
repair hours as separate rows.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-22 17:01:27 +05:00
Тимур Городецкий d606f8371c feat: weather conditions check from stroy-bot-main
Ports the weather check added to stroy-bot-main on 2026-10-16: daily
station weather, report positions with weather per shift and the AI
assessment of working conditions. Opens as ?page=weather&start=&end=
instead of the #weathercheck hash, and hub dates survive the way back.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-20 09:47:02 +05:00
Тимур Городецкий 45c974d0c6 fix: use fresh project status and rights after reload
After F5 without projectId in the address the hub and sidebar showed the
status and edit right saved in sessionStorage, so a project switched to
Архивный or a revoked edit0 right was ignored until the project was
picked again. The fresh list from SharePoint now always wins; the saved
copy is used only while the list is loading. Found in T-HUB-07/09.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 12:33:38 +05:00
Тимур Городецкий fad0842640 feat: stretch web part to full canvas width
Enable supportsFullBleed so the web part can sit in full-width sections,
and lift the SharePoint canvas max-width so it also fills a regular
one-column section (workbench and live page).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 10:14:09 +05:00
Тимур Городецкий 92b578d806 feat: wire report form page, remove section placeholder
All eight sections of the old stroy-bot-* web parts are now reachable
from the app. Unknown routes fall back to the hub.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 10:08:07 +05:00
Тимур Городецкий 072d246eed test: cover report form rules, save order and SharePoint calls
Checked line by line against stroy-bot-report: form modes, validation
texts and order, payloads, delete-children-first then recreate save
sequence, photo upload, access lookup and dictionary fallbacks. The fake
HTTP client can now answer per call so created rows get distinct ids.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 10:08:07 +05:00
Тимур Городецкий 673ace2ba6 feat: port stroy-bot-works as works page
Tree table of an object's works from Dataverse with add / add child /
edit / delete, "save and add more", units dictionary and parent
re-binding, 1:1 with the legacy web part. Reuses the tree widgets from
the objects page; the parent navigation property lookup is cached as a
single promise so concurrent saves don't race.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 09:55:54 +05:00
Тимур Городецкий e12fce6032 feat: port stroy-bot-objects as objects page
Project object tree with add/edit/delete, drag & drop re-parenting,
context menu and Excel export, 1:1 with the legacy web part. The tree
widgets live in pages/_tree so the works page can reuse them.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 09:48:04 +05:00
Тимур Городецкий 99a7631b65 feat: wire reports and import pages into the app
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 08:58:17 +05:00
Тимур Городецкий 660e059842 feat: wire resources and binder pages into the app
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 08:47:22 +05:00
Тимур Городецкий bed230f045 feat: port stroy-bot-main as the hub page
Project picker, section cards and the period Excel export now live on the
app's home page. The selected project is shared app state, so the sidebar
hides sections with the same rules main used to disable its cards
(archived, finished, no edit0 right).

Queries are 1:1 with stroy-bot-main and covered by tests against a fake
HTTP client. Behaviour differences are listed in the migration checklist.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 16:49:32 +05:00
Тимур Городецкий b868e8012d feat: add StroyBot app shell with URL routing
One web part replaces the separate stroy-bot-* web parts. The section and
its parameters live in the page query string (?page=objects&projectId=5),
so links can be copied, opened in a new tab and the browser Back button works.

- shared config: site/Dataverse/API addresses, list and table names
- HTTP layer behind IHttpClient so repositories can be unit-tested
- ui-kit AppLayout + Sidebar, placeholder for sections not ported yet
- migration checklist with every feature of the old web parts
- design tokens mirrored from ui-kit instead of 8 copies

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 16:42:37 +05:00