Commit Graph
347 Commits
Author SHA1 Message Date
Michael Uray 12eda959eb chore: apply rush format after develop merge
Resolves the failing formatting check requested by @ArtyomSavchenko in
review of #10851 after the develop branch merge.

Affects three files in our PR scope:
- models/tracker/src/migration.ts: collapse short multi-line client.update call
- plugins/tracker/src/index.ts: inline DependencyKind union + IssueRelation comment
- plugins/tracker-resources/src/components/milestones/EditMilestone.svelte:
  reformat inline arrow handlers, move QueryIssuesList block ahead of <style>

No logic changes; deterministic prettier output.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>
2026-06-18 21:17:02 +00:00
Michael Uray f84e497a08 fix(tracker-resources): EditMilestone renders Status/Start/Target in body in chronological order
The right-side DocAttributeBar sorts attributes by attr.rank ?? toRank(_id),
giving startDate before status (toRank('startDate') < toRank('status')
lexicographically). Setting an explicit rank via @Prop's third arg did not
propagate through the workspace upgrade for existing Attribute documents
in the model TX log — the rank made it into the bundled txes but the
existing Attribute creation TXes are not replaced on upgrade-workspace.

Pivot: render Status, Start date, Target date in the EditMilestone body
in explicit chronological order, and add 'status', 'startDate', 'targetDate'
to ignoreKeys so they don't appear duplicated in the side panel. This
mirrors how Issue's ControlPanel.svelte handles its date fields.

Reverts the no-op @Prop rank attempt.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>
2026-05-18 19:37:45 +00:00
Michael Uray c94a5cc73a fix(tracker): set explicit @Prop ranks for Milestone date fields
The DocAttributeBar side panel sorts attributes by attr.rank ?? toRank(_id)
(see plugins/view-resources/src/components/ClassAttributeBar.svelte:42-47),
so without explicit ranks the visible order on a Milestone was hash-based
(startDate before Status, breaking the chronological flow the user expects).

Set ranks so the side panel renders Status → Start date → Target date.
Comments and attachments stay where they are (they're collections, filtered
out of the attribute panel by categorizeFields).

Issues are unaffected — the Issue side panel is the custom ControlPanel.svelte
which renders Start date / Due date in explicit slots (see PR 1's UI commit).

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>
2026-05-18 19:37:45 +00:00
Michael Uray 8d932e8758 feat(tracker): expose Issue.startDate / Milestone.startDate in UI; tighten typing
UI changes (so the new schema fields are actually editable, in chronological
order Start → Due/Target):

- New StartDateEditor.svelte (mirrors DueDateEditor.svelte for startDate)
- ControlPanel: render Start Date row above Due Date row in the issue
  side panel; both always-visible (no `!== null` guard) so users can set
  them on issues that don't have a date yet
- NewMilestone form: Start Date input above Target Date input
- Milestone list view: Start Date column before Target Date column

- TIssueRelation: tighten interface to `extends AttachedDoc<Issue, 'relations'>`
  so attachedTo + collection are statically typed. The model class
  re-declares `collection: 'relations'` to match the narrower base.
- Drop 4 unused Dependency-kind IntlString keys (FinishToFinish,
  FinishToStart, StartToFinish, StartToStart) — they had no consumer
  in PR 1; will be re-introduced in PR 4 (dependency editor).
- Simplify migration.ts comments — drop ageing line-references.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>
2026-05-18 19:37:45 +00:00
Michael Uray 86414230c0 feat(model-tracker): add migrateAddStartDate + wire into trackerOperation
Backfills startDate=null on existing Issues (DOMAIN_TASK) and Milestones
(DOMAIN_TRACKER) so the new schema field has a defined value on every
pre-existing document. Idempotent via the standard tryMigrate state-key
mechanism (state: 'gantt-add-startdate').

Verified domain choices against existing migration helpers:
- migrateIdentifiers / passIdentifierToParentInfo use DOMAIN_TASK for
  Issues (lines 145, 161 in this file).
- TMilestone @Model decorator confirms DOMAIN_TRACKER for Milestones
  (models/tracker/src/types.ts:372).

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>
2026-05-18 19:37:45 +00:00
Michael Uray 5c9faf7564 test(model-tracker): add migrateAddStartDate jest tests
3 tests covering migrateAddStartDate:
- writes startDate=null to Issues in DOMAIN_TASK with the right filter
- writes startDate=null to Milestones in DOMAIN_TRACKER with the right filter
- issues exactly two update calls (one per class)

Follows the MigrationClient mock pattern from
models/chat/src/__tests__/migration.test.ts.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>
2026-05-18 19:37:45 +00:00
Michael Uray 0e6d0dfc7f feat(tracker): add Gantt scheduling schema (startDate + IssueRelation)
Schema-only foundation for the upcoming Gantt-chart view in tracker.
No UI in this PR.

Changes:
- Issue.startDate: Timestamp | null (interface + IssueDraft + @Prop with @Index)
- Milestone.startDate: Timestamp | null (interface + @Prop, reusing the
  existing tracker.string.StartDate IntlString)
- New DependencyKind type ('finish-to-start' | 'start-to-start' |
  'finish-to-finish' | 'start-to-finish')
- New IssueRelation AttachedDoc class with kind: DependencyKind, signed
  lag: number — registered in models/tracker via TIssueRelation
- 7 new IntlString keys: IssueStartDate, GanttDependency,
  GanttDependency{FinishToStart,StartToStart,FinishToFinish,StartToFinish},
  GanttLag — all 13 locales updated
- Cross-plugin literal updates in importer + github sync to satisfy the new
  required Issue.startDate / Milestone.startDate fields:
  - packages/importer/src/importer/importer.ts: AttachedData<Issue> literal
  - services/github/pod-github/src/sync/issueBase.ts: 'startDate' added to
    GithubIssueData Omit list (github sync does not own scheduling)
  - services/github/pod-github/src/sync/issues.ts + pullrequests.ts:
    AttachedData<Issue|GithubPullRequest> literals

Out of scope (deferred to follow-up PRs):
- UI for Gantt view, drag/resize, dependency editor, critical path
- blockedBy → IssueRelation migration (ships atomically with the writer
  redirect in the dependency-UI PR)
- LinkIssues permission (tracker uses forbid-style permissions; needs
  maintainer discussion)
- Activity-feed wiring for IssueRelation (needs a producer to test against)
- IssueTemplate.startDate (template propagation semantics undecided)

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>
2026-05-18 19:37:45 +00:00
Artyom SavchenkoandGitHub d0b27dce72 feat: Anonymous guest permissions (#10726)
* Anonymous guest permissions

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix channels dropdown

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Update guest layout

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-04-06 23:29:11 +07:00
Artyom SavchenkoandGitHub ea254970c0 feat: Add ability to configure guest permissions (#10708)
* Configure guest permissions

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix permission domain

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix permission declaration

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix lock file

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Guest permissions

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Allow guests to update their own documents

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Add modules order

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix translations, icons

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix disabled apps and update translations

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-04-05 14:36:59 +07:00
Igor LoskutovandGitHub badeb2ebd9 fix(tracker): make Project.defaultIssueStatus optional (#10598)
defaultIssueStatus is not reliably populated for all projects.Make the field optional in the type definition and guard the
  migration to handle undefined values.

Signed-off-by: Igor Loskutov <igor.loskutoff@gmail.com>
2026-03-10 11:02:58 +07:00
Artyom SavchenkoandGitHub aef114855e Add ability to sort projects and hide archived (#10552)
* Add ability to sort projects and hide archived

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Restore default settings

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-02-26 09:17:00 +07:00
Artyom SavchenkoandGitHub efef235447 Add ability to group by issues by project (#10531)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-02-21 14:13:13 +07:00
Artyom SavchenkoandGitHub 315f390920 Add ability to copy all data from cards/docs tables (#10505)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-02-13 15:30:43 +05:00
Artyom SavchenkoandGitHub cebcf1ab1f Fix issues layout (#10498)
* Fix collapsed issue title

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix issues layout

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-02-12 11:12:00 +07:00
Artyom SavchenkoandGitHub 111f9e14d7 Add data converter plugin (#10460)
* Add data converter plugin

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Clean up

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Apply templates

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix test

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-01-29 14:44:13 +07:00
Artyom SavchenkoandGitHub 7b1ed12aef Add ability to copy issues as table (#10366)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-01-05 20:10:07 +05:00
Anton AlexeyevandGitHub 764d963885 Backport plugin permissions in the workspace (#9966)
* Apply patch

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Fix merge errors

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Fix drive header

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Fix formatting

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

* Fix tests

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>

---------

Signed-off-by: Anton Alexeyev <alexeyev.anton@gmail.com>
2025-09-30 09:55:39 +07:00
Alexander OnnikovandGitHub 7d0034c123 EQMS-1635 Add generic action for copying link (#9668)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2025-08-12 22:20:05 +07:00
Denis BykhovandGitHub 17d804e639 Extract collaborators (#9217)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2025-06-20 13:50:51 +05:00
Anton AlexeyevandGitHub 2d3ebb61cc Add Milestones to issue cards in kanban board view (#8822) 2025-05-04 16:35:47 +07:00
Andrey SobolevandGitHub 2b03c56939 UBERF-9633: More proper fix (#8249)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2025-03-17 16:37:13 +04:00
Alexey ZinovievandGitHub f3c231df0a UBERF-9502: Account uuids in models (#8125)
Signed-off-by: Alexey Zinoviev <alexey.zinoviev@xored.com>
2025-03-05 12:22:15 +07:00
Andrey Sobolev 329d1f175b Merge branch 'staging' into develop
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2025-02-17 11:02:01 +07:00
Andrey SobolevandGitHub 9072b4cbba UBERF-9483 Task type improvements (#8015)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2025-02-17 10:51:48 +07:00
Andrey SobolevandGitHub b29473c6a9 Remove redundant update and extra operations in migrations (#7954)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2025-02-07 15:24:15 +07:00
Alexander PlatovandGitHub b26a6256db UBERF-9220: Set first day of the week (#7770)
Signed-off-by: Alexander Platov <alexander.platov@hardcoreeng.com>
2025-02-05 19:14:40 +07:00
Alexey ZinovievandGitHub 2c64ceadb8 UBERF-8425: Global accounts (#7573) 2025-02-04 10:31:03 +07:00
Denis BykhovandGitHub 8a08e5d620 Minor acrhived fixes (#7887)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2025-02-03 22:37:59 +07:00
Andrey SobolevandGitHub 331aa7f78f UBERF-9264: Fix set/unset parent issue (#7799)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2025-01-27 15:14:54 +05:00
Denis BykhovandGitHub 7987ac9f81 Improve hide archived (#7772)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2025-01-27 00:47:24 +07:00
Andrey SobolevandGitHub cc48a29c72 Remove Import from Tracker (#7632)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2025-01-10 22:54:12 +07:00
Denis BykhovandGitHub f44018f9ef Fix hide all attributes (#7583) 2025-01-03 09:53:31 +07:00
Alexander OnnikovandGitHub a6fb3713f6 UBERF-8557 Save collaborative content as JSON (#7039)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2024-11-29 16:58:50 +07:00
Anna KhismatullinaandGitHub bcf7857477 Support unified Huly data import format (#7191)
Support unified Huly data import format

Signed-off-by: Anna Khismatullina <anna.khismatullina@gmail.com>
2024-11-20 14:58:30 +07:00
Denis BykhovandGitHub 5353a06b07 Move model (#7185)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2024-11-18 17:44:09 +05:00
KristinaandGitHub bcdfed6871 Fix meeting minutes (#7181)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2024-11-16 23:30:36 +07:00
Andrey SobolevandGitHub dafa5275cc UBERF-8580: Labels for Tracker (#7141)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2024-11-11 12:06:30 +07:00
Andrey SobolevandGitHub d65176fb84 UBERF-8516: Stable mentions popup (#6993)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2024-10-20 00:47:07 +07:00
Andrey SobolevandGitHub e900505968 UBERF-8455: Fix admin users (#6909)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2024-10-13 21:59:38 +05:00
Alexey ZinovievandGitHub 0b39c4a843 eqzms-1175: improve copy UX when clipboard is not available (#6657)
Signed-off-by: Alexey Zinoviev <alexey.zinoviev@xored.com>
2024-09-20 22:08:22 +07:00
Alexander OnnikovandGitHub ba821dd5d2 UBERF-8063 Generic space archive/unarchive actions (#6530)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2024-09-12 14:06:05 +07:00
Alexander OnnikovandGitHub df2a9b2708 UBERF-4725 Migrate collaborative content (#5717)
Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
2024-08-22 16:03:42 +05:00
KristinaandGitHub 4ec2d56303 [Part-1]: New analytics events (#6319)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2024-08-14 14:37:52 +07:00
KristinaandGitHub 4e81624688 UBERF-7717: reduce finds on members changed (#6219)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
Signed-off-by: Alexander Platov <alexander.platov@hardcoreeng.com>
2024-08-06 22:32:39 +07:00
Alexander PlatovandGitHub 1329fb1d7a Rebase (#6088)
Signed-off-by: Alexander Platov <alexander.platov@hardcoreeng.com>
2024-07-25 22:16:08 +07:00
Andrey SobolevandGitHub 42c2719581 UBERF-7600: Reduce number of $in operators and fix account service is… (#6080)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2024-07-17 16:38:45 +07:00
KristinaandGitHub e4192b27fc UBERF-7513: Improve notifications model to allow external notifications channels (#6037)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2024-07-12 19:07:11 +07:00
Alexey ZinovievandGitHub 0fc0115c99 UBERF-7495: Global editor kit extensions (#6057)
Signed-off-by: Alexey Zinoviev <alexey.zinoviev@xored.com>
2024-07-12 15:42:13 +07:00
Denis BykhovandGitHub 2fb4763f3f remove extra spaces (#5930)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2024-06-28 08:55:32 +05:00
Vyacheslav TumanovandGitHub 7f2a8779c6 UBERF-5564: rework groupping and support PersonAccount (#5525)
Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me>
2024-06-25 12:03:01 +07:00