169 Commits
Author SHA1 Message Date
1be6047c8a feat(tracker): field-prefixed search, inline filter chips and zero-hit empty state (#10998)
* feat(tracker): field-prefixed search, inline filter chips and zero-hit empty state

Adds SearchInputAdvanced (field:value prefixes routed to Elasticsearch query_string), match highlighting, inline filter chips with overflow popover, a reusable zero-hit empty state in view-resources, and search-scope/highlight view options for List and Kanban.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

* refactor(tracker-search): address review follow-ups on search/filter rework

Shared, non-storage-specific field list, test-folder conventions, locale
coverage, single regex source and an owner-token gate for the result count.

- core: add shared `fullTextSearchFields` constant next to
  FullTextSearchContext as the single source of truth for the full-text
  fields exposed to `field:value` targeting. The client encoder derives
  ES_NATIVE_FIELDS from it and the elastic adapter derives KNOWN_FIELD_RE
  from it, replacing the two "KEEP IN SYNC" copies. Per-field boost weights
  stay a local adapter detail.
- tests: move the five co-located tests into each package's existing test
  folder convention (ui `__test__`, view-resources `__tests__`) and fix the
  relative imports.
- i18n: translate the new tracker search/filter strings in the remaining
  locales (zh, ja, ko, cs, es, fr, it, pt, pt-br, tr), reusing each file's
  existing terminology; ICU placeholders left unchanged.
- encoder: hoist the reserved-character class into one constant and build two
  RegExp instances from it (non-global for `.test()`, global for `.replace()`)
  to avoid the shared-lastIndex trap.
- view-resources: guard `resultIssueCountStore` writes with an owner-token
  gate so a superseded viewlet can no longer clobber the active viewlet's
  count; List/KanbanView claim and release, IssuesView resets through the
  current owner. Assumes a single active IssuesView surface.
- view-resources: make result-count reporting opt-in via a new
  `reportResultCount` prop on List (default true). Embedded, non-primary List
  instances (sub-issues / related issues in the issue edit panel, routed
  through SubIssueList) pass false and never claim the owner token, so opening
  and closing an issue can no longer strand the primary Issues viewlet with a
  dead token — the zero-hit SearchEmptyState card renders again afterwards. Add
  a regression test covering the opted-out embedded consumer.
- elastic: escape every regex metacharacter (not just `.`) when building
  KNOWN_FIELD_RE from `fullTextSearchFields`, so a future field name carrying
  another metacharacter cannot silently corrupt the alternation. Behaviour for
  the current fields is unchanged.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

* refactor(tracker-search): centralize regex escaping and lock down result-count store

- Share escapeRegExp from @hcengineering/core so the client encoder and the server elastic adapter escape the fulltext field list identically, not just dots on the client.

- Export resultIssueCountStore as a read-only Readable; the owner-token gate functions (setResultCount / resetResultCount / releaseResultCountOwner) are now the only write path.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

---------

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>
Co-authored-by: Michael Uray <michaeluray@users.noreply.github.com>
Co-authored-by: Artyom Savchenko <armisav@gmail.com>
2026-08-11 19:09:33 +07:00
abe0cb9625 feat(tracker): Gantt scheduling schema (startDate + IssueRelation) + version bump (#10851)
* 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>

* 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>

* 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>

* 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>

* 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>

* 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>

* fix(fulltext): bump model version to 0.7.423 to match deployed workspaces

The fulltext-pod's compiled model version (baked into bundle/model.json via
common/scripts/version.txt at build time) lags whenever the workspaces have
been migrated to a newer patch but the pod was not rebuilt. In that state the
indexer rejects every incoming Tx with a `wrong version` warning, new issues
silently fail to land in Elasticsearch, and search returns empty results for
any document created after the migration.

Bumping `version.txt` aligns the compiled model with the workspaces. All
future builds (front, transactor, workspace, tool, fulltext) will emit
0.7.423, the indexer accepts the Tx stream again, and the deferred backlog
gets consumed automatically — no manual reindex needed.

This commit is the build-side companion to the schema migration in this
same PR. Without it the fulltext-pod cannot consume the migrated workspace's
Tx events.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

* 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>

* test(tracker): fix milestone page-object selectors after startDate field addition

The Gantt schema PR added Milestone.startDate, which:

1. Adds a second datetime-button to the NewMilestone form pool. The
   existing 'div.antiCard-pool button.datetime-button' locator matched
   both buttons and tripped Playwright's strict-mode check. Scope the
   target-date locator to .last() and add a sibling .first() helper for
   the start-date button.

2. Moves Status / Start date / Target date editors from the
   auto-generated side panel into EditMilestone's body
   (div.dates-row > div.date-cell > span.cell-label + <button>) in
   chronological order. The label span no longer has a sibling <div>
   wrapping the button — the button is a direct sibling. Switch the
   buttonStatus/buttonTargetDate XPath to following-sibling::button[1]
   and match the new class="cell-label" span. Add a buttonStartDate
   helper for the new editor row.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

* test(tracker): shift buttonEstimation index after startDate row addition

ControlPanel.svelte (issue side panel) now renders the Start date and
Due date rows unconditionally — pre-PR the Due date row was conditional
on issue.dueDate !== null and the Start date row didn't exist at all.
Both new rows emit a <div><button> pair via DueDatePresenter, which the
existing (//span[text()='Estimation']/../div/button)[3] XPath counts as
extra matches and pushes the Estimation button from the 3rd to the 5th
direct div/button under the popupPanel-body__aside-grid.

Direct div/button order under the grid (document order):
  1. CreatedBy (EmployeeBox > UserBox div > Button)
  2. Assignee  (AssigneeEditor div > Button)
  3. Start date (NEW — StartDateEditor > DueDatePresenter div > button.datetime-button)
  4. Due date   (NEW — DueDateEditor   > DueDatePresenter div > button.datetime-button)
  5. Estimation (AttributeBarEditor div > Button)

buttonAssignee at [2] is unchanged. textEstimation uses 'following-sibling::div[1]'
(first sibling), which is unaffected by additions earlier in the grid.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

* chore: apply rush format (prettier compliance for CI)

CI's rush fast-format --branch develop step flagged
tests/sanity/tests/model/tracker/milestones-details-page.ts for a
missing blank line between the buttonTargetDate locator (introduced in
86b1c19ee8) and the next field. Apply the local 'rush format' result.

The two other files CI flagged
(plugins/process-resources/src/components/settings/BindingsEditor.svelte
and ImportSlotsPopup.svelte) were actually upstream changes from PR
#10921 (Fix add tag) that landed after our last develop merge — the
preceding merge of upstream/develop into this branch resolves those
diffs.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

* fix(tests/tracker): use contains() for cell-label class to survive Svelte CSS scoping

The Svelte 4 compiler appends a scoped `svelte-<hash>` class to every
element matched by a component-local CSS selector. EditMilestone.svelte
styles `.cell-label` locally, so each label span ends up as
`<span class="cell-label svelte-XXXXX">` at runtime, not the bare
`<span class="cell-label">` shipped in source. The previous XPath
locator used strict `@class="cell-label"` and never matched.

Switch buttonStatus / buttonStartDate / buttonTargetDate to the standard
`contains(concat(' ', normalize-space(@class), ' '), ' cell-label ')`
class-match idiom so the locators tolerate the added scoped class.

Verified against the playwright accessibility snapshot from the failed
run (artifact playwright-results, hash 07a8f36b...md): the Status row
renders as a generic with text 'Status' immediately followed by a
button 'In progress' as the next direct sibling, matching the rest of
the XPath.

Fixes 5 milestone.spec.ts failures observed in run 27816114236:
- Create a Milestone (locator timeout on checkIssue → buttonStatus)
- Edit a Milestone   (locator timeout on editIssue  → buttonStatus.click)
- Delete a Milestone (locator timeout on checkIssue → buttonStatus)
plus their two retries each.

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>

---------

Signed-off-by: Michael Uray <michaeluray@users.noreply.github.com>
Co-authored-by: Michael Uray <michaeluray@users.noreply.github.com>
Co-authored-by: Artyom Savchenko <armisav@gmail.com>
2026-07-09 09:08:17 +07:00
Paweł KędziorandGitHub 78142ead31 feat: add Polish translation (#10907)
Adds Polish translation for app

Closes #9986

Signed-off-by: Paweł Kędzior <pawel.kedzior@o2.pl>
2026-06-16 12:31:11 +07:00
FVOCIandGitHub 2d73be14f8 feat: Korean (ko) translation (#10820)
Signed-off-by: FVOCI <150913557+fvoci@users.noreply.github.com>
2026-05-05 15:38:15 +05: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
Artyom SavchenkoandGitHub 355b0e70ac Add 15/30 minutes time spent reports (#10675)
* Add 15/30 minutes time spent reports

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

* Set default employee

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

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-03-24 12:21:48 +07:00
Artyom SavchenkoandGitHub 38ce824a00 Fix Brazilian Portuguese translation (#10522)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-02-18 21:26:13 +07:00
Artyom SavchenkoandGitHub 40fda7b337 feat: Brazilian Portuguese translation (#10478)
Signed-off-by: Artem Savchenko <armisav@gmail.com>
2026-02-07 17:33:11 +05:00
Denis BykhovandGitHub d06b92ebdd card RBAC (#10197)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2025-11-10 14:41:05 +07:00
Üzeyir İsmail BahtiyarandGitHub fe6d015eb2 feat: Add complete Turkish (tr) language support to Huly Platform (#9975)
Signed-off-by: Uzeyir Ismail Bahtiyar <uzeyirismailbahtiyar@gmail.com>
2025-09-30 11:52:44 +07: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
かっこかりandGitHub da6ef6e1e1 Japanese Translation (#8576)
Signed-off-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-04-16 21:46:40 +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
TSekyraandGitHub 1347a03a63 FNC / Czech language update (#7689)
Signed-off-by: Sekyra <sekyra@flexcon.cz>
2025-01-17 16:24:47 +05:00
GiorgioandGitHub 01677b2039 German Translation (#7634) 2025-01-11 01:29:47 +07:00
Milana KustinskayaandGitHub 7295386e91 Fixed Russian localization (#7282)
Signed-off-by: Milana Kustinskaya <milanovasmile@gmail.com>
2024-12-07 23:22:22 +07:00
Milana KustinskayaandGitHub db5890b831 [Update] Localization files (#7215)
Signed-off-by: Milana Kustinskaya <milanovasmile@gmail.com>
2024-12-02 21:14:59 +07:00
13e1d03b9c Czech localization (#7204)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
Signed-off-by: Sekyra <sekyra@flexcon.cz>
Co-authored-by: Kristina <kristin.fefelova@gmail.com>
2024-11-21 12:35:16 +07:00
lona91andGitHub 70af2321f7 Italian translation (#7085)
Signed-off-by: lona91 <lona2303@gmail.com>
2024-11-04 15:39:54 +05: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
Abigail DawsonandGitHub 75c125cc9a Fix capitalization in en lang strings, fix label for adding an issue to a Milestone (#6142)
Signed-off-by: Abigail Dawson <abigaildawson.dev@gmail.com>
2024-07-25 22:13:48 +07:00
Julien LELANDAISandGitHub 189feb83cf Some fix for French Language (#5896)
Signed-off-by: cryptulien <julien.lelandais@aloe-corp.com>
Signed-off-by: Julien LELANDAIS <julien.lelandais@aloe-corp.com>
2024-06-22 02:17:45 +07:00
Julien LELANDAISandGitHub bb70f5123b Add French Language (#5870)
Signed-off-by: cryptulien <julien.lelandais@aloe-corp.com>
2024-06-20 18:43:24 +04:00
ec655fd28a Add Support for Chinese Language (#5859)
Signed-off-by: dingdayu <dingxiaoyu.ddy@gmail.com>
Co-authored-by: dingdayu <dingxiaoyu.ddy@gmail.com>
2024-06-19 18:01:49 +07:00
Vyacheslav TumanovandGitHub 14c1977660 Export & Import functionality for issues (#5733)
Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me>
2024-06-05 21:16:27 +07:00
Tiago CruzandGitHub ee04637f10 Translations (#5666)
Signed-off-by: Tiago Cruz <tcruz@netic.io>
2024-05-27 11:59:36 +07:00
Alexey ZinovievandGitHub 418b4b1bbd UBERF-6001: Roles management (#4994)
Signed-off-by: Alexey Zinoviev <alexey.zinoviev@xored.com>
2024-03-27 13:49:36 +05:00
Andrey SobolevandGitHub 04d35dcead UBERF-5825: Fix github issues (#4924)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2024-03-13 12:43:12 +07:00
Andrey SobolevandGitHub 1967e8e5dc Enable and fix pt and es languages (#4792)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2024-02-27 22:53:16 +06:00
Tiago CruzandGitHub 336732948d Translations to Spanish & Portuguese (#4788)
Signed-off-by: Tiago Cruz <tcruz@netic.io>
2024-02-27 22:37:02 +07:00
Denis BykhovandGitHub 896ac1172b ats automation (#4515)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2024-02-05 15:47:52 +07:00
Andrey SobolevandGitHub 19d6764250 UBERF-4248: Task type (#4042)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2023-12-14 23:26:02 +07:00
ea3eb4af83 New Activity - squashed (#4032)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
Co-authored-by: Andrey Sobolev <haiodo@gmail.com>
2023-12-11 18:54:36 +07:00
Pete AnøtherandGitHub e50bdd461b UBER-1144: Fixed estimation time representation used when creating issue and issue template (#4139) 2023-12-05 09:08:12 +07:00
Pete AnøtherandGitHub e361325a73 UBER-1083: Use hours and minutes to present less than a day durations (#4111)
Signed-off-by: Petr Vyazovetskiy <develop.pit@gmail.com>
2023-12-01 14:27:56 +07:00
Denis BykhovandGitHub 156741cf48 UBER-1053 (#3884) 2023-10-27 12:22:43 +07:00
Andrey SobolevandGitHub bc3598ce15 UBER-953: Fix related issues (#3821)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2023-10-11 13:20:39 +07:00
Denis BykhovandGitHub b8fbcc695e UBER-1000 (#3801)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2023-10-06 17:29:25 +07:00
Andrey SobolevandGitHub eeb111bf44 UBER-977: A remaining time (#3783)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2023-10-04 01:22:33 +07:00
Andrey SobolevandGitHub b2435326fd UBER-963: Related issues (#3773)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2023-10-03 01:20:37 +07:00
Maksim KarmatskikhandGitHub 1ca9de297a UBER-845: Add NotificationPresenter to send rich text notifications (#3729)
Signed-off-by: Maxim Karmatskikh <mkarmatskih@gmail.com>
2023-09-28 12:08:00 +07:00
Andrey SobolevandGitHub c7bb5b9cab UBER-799: Allow extensions to tracker for github (#3727) 2023-09-21 19:20:17 +07:00
Alexander OnnikovandGitHub 0560821f39 UBER-853 Move icon picker to separate component (#3715)
Signed-off-by: Alexander Onnikov <alexander.onnikov@xored.com>
2023-09-19 15:57:23 +07:00
Andrey SobolevandGitHub dd64fc6e17 UBER-807: Multiple github repositories fixes (#3646)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2023-08-31 16:40:57 +07:00
Alexander PlatovandGitHub 41650925c0 UBER-795: updated layout of pop-ups. There is always a Back in the Panel. (#3644)
Signed-off-by: Alexander Platov <sas_lord@mail.ru>
2023-08-31 12:46:04 +07:00
Vyacheslav TumanovandGitHub dd38436667 Fix a bunch of typos (#3556)
Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me>
2023-08-04 16:27:20 +06:00
Vyacheslav TumanovandGitHub 03b9be571b fix label (#3476)
Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me>
2023-07-03 20:53:23 +07:00
Denis BykhovandGitHub 35315bbf7e Fix typo (#3455)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
2023-06-26 12:13:09 +07:00
Andrey SobolevandGitHub 05d273bb59 UBER-496: Fix few issues (#3439) 2023-06-16 18:29:07 +07:00
Ruslan BayandinovandGitHub f1509df325 [UBER-378] Redo 'Move to Project' dialog (#3432)
Signed-off-by: Ruslan Bayandinov <wazsone@ya.ru>
2023-06-16 12:10:34 +07:00