mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-28 18:20:42 +00:00
refactor(issue): simplify folder and file structure
This commit is contained in:
parent
cb5082b948
commit
fbb2382948
78 changed files with 162 additions and 188 deletions
|
|
@ -11,8 +11,6 @@ import { IssueContentConfig } from '../../issue-content.model';
|
|||
import { IssueProviderService } from '../../../issue-provider.service';
|
||||
import { OpenProjectApiService } from '../../../providers/open-project/open-project-api.service';
|
||||
import { TaskAttachment } from '../../../../tasks/task-attachment/task-attachment.model';
|
||||
import { mapOpenProjectAttachmentToTaskAttachment } from '../../../providers/open-project/open-project-issue/open-project-issue-map.util';
|
||||
import { OpenProjectWorkPackage } from '../../../providers/open-project/open-project-issue/open-project-issue.model';
|
||||
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
|
|
@ -20,6 +18,8 @@ import { TranslateModule } from '@ngx-translate/core';
|
|||
import { TaskService } from '../../../../tasks/task.service';
|
||||
import moment from 'moment';
|
||||
import { SnackService } from '../../../../../core/snack/snack.service';
|
||||
import { OpenProjectWorkPackage } from '../../../providers/open-project/open-project-issue.model';
|
||||
import { mapOpenProjectAttachmentToTaskAttachment } from '../../../providers/open-project/open-project-issue-map.util';
|
||||
|
||||
@Component({
|
||||
selector: 'open-project-attachments',
|
||||
|
|
|
|||
|
|
@ -1,35 +1,26 @@
|
|||
import {
|
||||
JiraIssue,
|
||||
JiraIssueReduced,
|
||||
} from './providers/jira/jira-issue/jira-issue.model';
|
||||
import { JiraIssue, JiraIssueReduced } from './providers/jira/jira-issue.model';
|
||||
import { JiraCfg } from './providers/jira/jira.model';
|
||||
import { GithubCfg } from './providers/github/github.model';
|
||||
import {
|
||||
GithubIssue,
|
||||
GithubIssueReduced,
|
||||
} from './providers/github/github-issue/github-issue.model';
|
||||
import { GithubIssue, GithubIssueReduced } from './providers/github/github-issue.model';
|
||||
import { GitlabCfg } from './providers/gitlab/gitlab.model';
|
||||
import { GitlabIssue } from './providers/gitlab/gitlab-issue/gitlab-issue.model';
|
||||
import {
|
||||
CaldavIssue,
|
||||
CaldavIssueReduced,
|
||||
} from './providers/caldav/caldav-issue/caldav-issue.model';
|
||||
import { GitlabIssue } from './providers/gitlab/gitlab-issue.model';
|
||||
import { CaldavIssue, CaldavIssueReduced } from './providers/caldav/caldav-issue.model';
|
||||
import { CaldavCfg } from './providers/caldav/caldav.model';
|
||||
import { OpenProjectCfg } from './providers/open-project/open-project.model';
|
||||
import {
|
||||
OpenProjectWorkPackage,
|
||||
OpenProjectWorkPackageReduced,
|
||||
} from './providers/open-project/open-project-issue/open-project-issue.model';
|
||||
} from './providers/open-project/open-project-issue.model';
|
||||
import { GiteaCfg } from './providers/gitea/gitea.model';
|
||||
import { GiteaIssue } from './providers/gitea/gitea-issue/gitea-issue.model';
|
||||
import { GiteaIssue } from './providers/gitea/gitea-issue.model';
|
||||
import { RedmineCfg } from './providers/redmine/redmine.model';
|
||||
import { RedmineIssue } from './providers/redmine/redmine-issue/redmine-issue.model';
|
||||
import { RedmineIssue } from './providers/redmine/redmine-issue.model';
|
||||
import { EntityState } from '@ngrx/entity';
|
||||
import { MODEL_VERSION_KEY } from '../../app.constants';
|
||||
import {
|
||||
CalendarProviderCfg,
|
||||
ICalIssue,
|
||||
ICalIssueReduced,
|
||||
CalendarProviderCfg,
|
||||
} from './providers/calendar/calendar.model';
|
||||
|
||||
export interface BaseIssueProviderCfg {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
@import '../../../../../../../variables';
|
||||
@import 'variables';
|
||||
|
||||
// table styled by ./src/styles/components/issue-table.scss
|
||||
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
import { ChangeDetectionStrategy, Component, Input, input, inject } from '@angular/core';
|
||||
import { TaskWithSubTasks } from '../../../../../tasks/task.model';
|
||||
import { expandAnimation } from '../../../../../../ui/animations/expand.ani';
|
||||
import { T } from '../../../../../../t.const';
|
||||
import { TaskService } from '../../../../../tasks/task.service';
|
||||
import { TaskWithSubTasks } from '../../../../tasks/task.model';
|
||||
import { expandAnimation } from '../../../../../ui/animations/expand.ani';
|
||||
import { T } from '../../../../../t.const';
|
||||
import { TaskService } from '../../../../tasks/task.service';
|
||||
import { CaldavIssue } from '../caldav-issue.model';
|
||||
import { MatButton } from '@angular/material/button';
|
||||
import { MatChipListbox, MatChipOption } from '@angular/material/chips';
|
||||
|
|
@ -8,7 +8,7 @@ import Calendar from 'cdav-library/models/calendar';
|
|||
import ICAL from 'ical.js';
|
||||
|
||||
import { from, Observable, throwError } from 'rxjs';
|
||||
import { CaldavIssue } from './issue/caldav-issue.model';
|
||||
import { CaldavIssue } from './caldav-issue.model';
|
||||
import { CALDAV_TYPE, ISSUE_PROVIDER_HUMANIZED } from '../../issue.const';
|
||||
import { SearchResultItem } from '../../issue.model';
|
||||
import { SnackService } from '../../../../core/snack/snack.service';
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { Observable, of } from 'rxjs';
|
|||
import { Task } from 'src/app/features/tasks/task.model';
|
||||
import { IssueServiceInterface } from '../../issue-service-interface';
|
||||
import { IssueProviderCaldav, SearchResultItem } from '../../issue.model';
|
||||
import { CaldavIssue, CaldavIssueReduced } from './issue/caldav-issue.model';
|
||||
import { CaldavIssue, CaldavIssueReduced } from './caldav-issue.model';
|
||||
import { CaldavClientService } from './caldav-client.service';
|
||||
import { CaldavCfg } from './caldav.model';
|
||||
import { concatMap, first, map, switchMap } from 'rxjs/operators';
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
IssueContentConfig,
|
||||
IssueFieldType,
|
||||
} from '../../issue-content/issue-content.model';
|
||||
import { CaldavIssue } from './issue/caldav-issue.model';
|
||||
import { CaldavIssue } from './caldav-issue.model';
|
||||
import { IssueProviderKey } from '../../issue.model';
|
||||
|
||||
export const CALDAV_ISSUE_CONTENT_CONFIG: IssueContentConfig<CaldavIssue> = {
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
import { Injectable, inject } from '@angular/core';
|
||||
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
||||
import { TaskService } from '../../../../tasks/task.service';
|
||||
import { TaskService } from '../../../tasks/task.service';
|
||||
import { concatMap, filter, map } from 'rxjs/operators';
|
||||
import { IssueService } from '../../../issue.service';
|
||||
import { IssueService } from '../../issue.service';
|
||||
import { Observable } from 'rxjs';
|
||||
import { Task } from 'src/app/features/tasks/task.model';
|
||||
import { CALDAV_TYPE } from '../../../issue.const';
|
||||
import { isCaldavEnabled } from '../is-caldav-enabled.util';
|
||||
import { CaldavClientService } from '../caldav-client.service';
|
||||
import { CaldavCfg } from '../caldav.model';
|
||||
import { updateTask } from '../../../../tasks/store/task.actions';
|
||||
import { IssueProviderService } from '../../../issue-provider.service';
|
||||
import { assertTruthy } from '../../../../../util/assert-truthy';
|
||||
import { CALDAV_TYPE } from '../../issue.const';
|
||||
import { isCaldavEnabled } from './is-caldav-enabled.util';
|
||||
import { CaldavClientService } from './caldav-client.service';
|
||||
import { CaldavCfg } from './caldav.model';
|
||||
import { updateTask } from '../../../tasks/store/task.actions';
|
||||
import { IssueProviderService } from '../../issue-provider.service';
|
||||
import { assertTruthy } from '../../../../util/assert-truthy';
|
||||
|
||||
@Injectable()
|
||||
export class CaldavIssueEffects {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { GiteaIssue } from './issue/gitea-issue.model';
|
||||
import { GiteaIssue } from './gitea-issue.model';
|
||||
import { truncate } from '../../../../util/truncate';
|
||||
|
||||
export const formatGiteaIssueTitle = ({ number, title }: GiteaIssue): string => {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { GiteaIssueStateOptions } from './issue/gitea-issue.model';
|
||||
import { GiteaIssueStateOptions } from './gitea-issue.model';
|
||||
|
||||
export type GiteaIssueState =
|
||||
| GiteaIssueStateOptions.open
|
||||
|
|
|
|||
|
|
@ -11,12 +11,12 @@ import {
|
|||
GiteaIssue,
|
||||
GiteaIssueStateOptions,
|
||||
GiteaRepositoryReduced,
|
||||
} from './issue/gitea-issue.model';
|
||||
} from './gitea-issue.model';
|
||||
import {
|
||||
isIssueFromProject,
|
||||
mapGiteaIssueIdToIssueNumber,
|
||||
mapGiteaIssueToSearchResult,
|
||||
} from './issue/gitea-issue-map.util';
|
||||
} from './gitea-issue-map.util';
|
||||
import {
|
||||
GITEA_API_SUBPATH_REPO,
|
||||
GITEA_API_SUBPATH_USER,
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import {
|
|||
import { GiteaCfg } from './gitea.model';
|
||||
import { isGiteaEnabled } from './is-gitea-enabled.util';
|
||||
import { GiteaApiService } from '../gitea/gitea-api.service';
|
||||
import { GiteaIssue } from './issue/gitea-issue.model';
|
||||
import { GiteaIssue } from './gitea-issue.model';
|
||||
import { IssueProviderService } from '../../issue-provider.service';
|
||||
|
||||
@Injectable({
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
IssueContentConfig,
|
||||
IssueFieldType,
|
||||
} from '../../issue-content/issue-content.model';
|
||||
import { GiteaIssue } from './issue/gitea-issue.model';
|
||||
import { GiteaIssue } from './gitea-issue.model';
|
||||
|
||||
export const GITEA_ISSUE_CONTENT_CONFIG: IssueContentConfig<GiteaIssue> = {
|
||||
issueType: 'GITEA' as const,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { IssueProviderKey, SearchResultItem } from '../../../issue.model';
|
||||
import { GiteaCfg } from '../gitea.model';
|
||||
import { IssueProviderKey, SearchResultItem } from '../../issue.model';
|
||||
import { GiteaCfg } from './gitea.model';
|
||||
import { GiteaIssue } from './gitea-issue.model';
|
||||
import { formatGiteaIssueTitle } from '../format-gitea-issue-title.util';
|
||||
import { formatGiteaIssueTitle } from './format-gitea-issue-title.util';
|
||||
|
||||
export const mapGiteaIssueToSearchResult = (issue: GiteaIssue): SearchResultItem => {
|
||||
return {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { GiteaUser } from '../gitea-api-responses';
|
||||
import { GiteaUser } from './gitea-api-responses';
|
||||
|
||||
export enum GiteaIssueStateOptions {
|
||||
open = 'open',
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
@import '../../../../../../../variables';
|
||||
@import 'variables';
|
||||
|
||||
// table styled by ./src/styles/components/issue-table.scss
|
||||
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
import { ChangeDetectionStrategy, Component, Input, input, inject } from '@angular/core';
|
||||
import { TaskWithSubTasks } from '../../../../../tasks/task.model';
|
||||
import { TaskWithSubTasks } from '../../../../tasks/task.model';
|
||||
import { GithubComment, GithubIssue } from '../github-issue.model';
|
||||
import { expandAnimation } from '../../../../../../ui/animations/expand.ani';
|
||||
import { T } from '../../../../../../t.const';
|
||||
import { TaskService } from '../../../../../tasks/task.service';
|
||||
import { expandAnimation } from '../../../../../ui/animations/expand.ani';
|
||||
import { T } from '../../../../../t.const';
|
||||
import { TaskService } from '../../../../tasks/task.service';
|
||||
import { MatButton, MatAnchor } from '@angular/material/button';
|
||||
import { MatChipListbox, MatChipOption } from '@angular/material/chips';
|
||||
import { MarkdownComponent, MarkdownPipe } from 'ngx-markdown';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { AsyncPipe, DatePipe } from '@angular/common';
|
||||
import { SortPipe } from '../../../../../../ui/pipes/sort.pipe';
|
||||
import { SortPipe } from '../../../../../ui/pipes/sort.pipe';
|
||||
import { TranslatePipe } from '@ngx-translate/core';
|
||||
|
||||
@Component({
|
||||
|
|
@ -16,12 +16,8 @@ import {
|
|||
mapGithubGraphQLSearchResult,
|
||||
mapGithubIssue,
|
||||
mapGithubIssueToSearchResult,
|
||||
} from './issue/github-issue-map.util';
|
||||
import {
|
||||
GithubComment,
|
||||
GithubIssue,
|
||||
GithubIssueReduced,
|
||||
} from './issue/github-issue.model';
|
||||
} from './github-issue-map.util';
|
||||
import { GithubComment, GithubIssue, GithubIssueReduced } from './github-issue.model';
|
||||
import { SearchResultItem } from '../../issue.model';
|
||||
import { HANDLED_ERROR_PROP_STR } from '../../../../app.constants';
|
||||
import { T } from '../../../../t.const';
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import { IssueServiceInterface } from '../../issue-service-interface';
|
|||
import { GithubApiService } from './github-api.service';
|
||||
import { IssueProviderGithub, SearchResultItem } from '../../issue.model';
|
||||
import { GithubCfg } from './github.model';
|
||||
import { GithubIssue, GithubIssueReduced } from './issue/github-issue.model';
|
||||
import { GithubIssue, GithubIssueReduced } from './github-issue.model';
|
||||
import { truncate } from '../../../../util/truncate';
|
||||
import { getTimestamp } from '../../../../util/get-timestamp';
|
||||
import { isGithubEnabled } from './is-github-enabled.util';
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
IssueContentConfig,
|
||||
IssueFieldType,
|
||||
} from '../../issue-content/issue-content.model';
|
||||
import { GithubIssue } from './issue/github-issue.model';
|
||||
import { GithubIssue } from './github-issue.model';
|
||||
|
||||
export const GITHUB_ISSUE_CONTENT_CONFIG: IssueContentConfig<GithubIssue> = {
|
||||
issueType: 'GITHUB' as const,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { GithubIssue, GithubIssueReduced } from './github-issue.model';
|
||||
import { GithubOriginalIssue } from '../github-api-responses';
|
||||
import { SearchResultItem } from '../../../issue.model';
|
||||
import { GithubOriginalIssue } from './github-api-responses';
|
||||
import { SearchResultItem } from '../../issue.model';
|
||||
|
||||
export const mapGithubIssue = (issue: GithubOriginalIssue): GithubIssue => {
|
||||
return {
|
||||
|
|
@ -5,7 +5,7 @@ import {
|
|||
GithubOriginalPullRequest,
|
||||
GithubOriginalState,
|
||||
GithubOriginalUser,
|
||||
} from '../github-api-responses';
|
||||
} from './github-api-responses';
|
||||
|
||||
export type GithubState = GithubOriginalState;
|
||||
export type GithubUser = GithubOriginalUser;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
@import '../../../../../../../variables';
|
||||
@import 'variables';
|
||||
|
||||
// table styled by ./src/styles/components/issue-table.scss
|
||||
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
import { ChangeDetectionStrategy, Component, Input, input, inject } from '@angular/core';
|
||||
import { TaskWithSubTasks } from '../../../../../tasks/task.model';
|
||||
import { TaskWithSubTasks } from '../../../../tasks/task.model';
|
||||
import { GitlabIssue } from '../gitlab-issue.model';
|
||||
import { expandAnimation } from '../../../../../../ui/animations/expand.ani';
|
||||
import { T } from '../../../../../../t.const';
|
||||
import { TaskService } from '../../../../../tasks/task.service';
|
||||
import { expandAnimation } from '../../../../../ui/animations/expand.ani';
|
||||
import { T } from '../../../../../t.const';
|
||||
import { TaskService } from '../../../../tasks/task.service';
|
||||
import { MatButton, MatAnchor } from '@angular/material/button';
|
||||
import { MatChipListbox, MatChipOption } from '@angular/material/chips';
|
||||
import { MarkdownComponent, MarkdownPipe } from 'ngx-markdown';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { AsyncPipe, DatePipe } from '@angular/common';
|
||||
import { SortPipe } from '../../../../../../ui/pipes/sort.pipe';
|
||||
import { SortPipe } from '../../../../../ui/pipes/sort.pipe';
|
||||
import { TranslatePipe } from '@ngx-translate/core';
|
||||
|
||||
@Component({
|
||||
|
|
@ -24,12 +24,12 @@ import {
|
|||
reduce,
|
||||
take,
|
||||
} from 'rxjs/operators';
|
||||
import { GitlabIssue } from '../issue/gitlab-issue.model';
|
||||
import { GitlabIssue } from '../gitlab-issue.model';
|
||||
import {
|
||||
getPartsFromGitlabIssueId,
|
||||
mapGitlabIssue,
|
||||
mapGitlabIssueToSearchResult,
|
||||
} from '../issue/gitlab-issue-map.util';
|
||||
} from '../gitlab-issue-map.util';
|
||||
import { SearchResultItem } from '../../../issue.model';
|
||||
import { GITLAB_TYPE, ISSUE_PROVIDER_HUMANIZED } from '../../../issue.const';
|
||||
import { assertTruthy } from '../../../../../util/assert-truthy';
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import { IssueServiceInterface } from '../../issue-service-interface';
|
|||
import { GitlabApiService } from './gitlab-api/gitlab-api.service';
|
||||
import { IssueData, IssueProviderGitlab, SearchResultItem } from '../../issue.model';
|
||||
import { GitlabCfg } from './gitlab.model';
|
||||
import { GitlabIssue } from './issue/gitlab-issue.model';
|
||||
import { GitlabIssue } from './gitlab-issue.model';
|
||||
import { truncate } from '../../../../util/truncate';
|
||||
import { GITLAB_BASE_URL, GITLAB_POLL_INTERVAL } from './gitlab.const';
|
||||
import { isGitlabEnabled } from './is-gitlab-enabled.util';
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import {
|
|||
IssueFieldType,
|
||||
} from '../../issue-content/issue-content.model';
|
||||
import { IssueProviderKey } from '../../issue.model';
|
||||
import { GitlabIssue } from './issue/gitlab-issue.model';
|
||||
import { GitlabIssue } from './gitlab-issue.model';
|
||||
|
||||
export const GITLAB_ISSUE_CONTENT_CONFIG: IssueContentConfig<GitlabIssue> = {
|
||||
issueType: 'GITLAB' as IssueProviderKey,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { GitlabIssue } from './gitlab-issue.model';
|
||||
import { GitlabOriginalIssue } from '../gitlab-api/gitlab-api-responses';
|
||||
import { IssueProviderKey, SearchResultItem } from '../../../issue.model';
|
||||
import { GitlabCfg } from '../gitlab.model';
|
||||
import { GitlabOriginalIssue } from './gitlab-api/gitlab-api-responses';
|
||||
import { IssueProviderKey, SearchResultItem } from '../../issue.model';
|
||||
import { GitlabCfg } from './gitlab.model';
|
||||
|
||||
export const mapGitlabIssue = (
|
||||
issue: GitlabOriginalIssue,
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
import { inject, Injectable } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { first } from 'rxjs/operators';
|
||||
import { GITLAB_TYPE } from '../../../issue.const';
|
||||
import { IssueProviderService } from '../../../issue-provider.service';
|
||||
import { TaskCopy } from '../../../../tasks/task.model';
|
||||
import { DialogGitlabSubmitWorklogForDayComponent } from '../dialog-gitlab-submit-worklog-for-day/dialog-gitlab-submit-worklog-for-day.component';
|
||||
import { BeforeFinishDayService } from '../../../../before-finish-day/before-finish-day.service';
|
||||
import { WorkContextService } from '../../../../work-context/work-context.service';
|
||||
import { GITLAB_TYPE } from '../../issue.const';
|
||||
import { IssueProviderService } from '../../issue-provider.service';
|
||||
import { TaskCopy } from '../../../tasks/task.model';
|
||||
import { DialogGitlabSubmitWorklogForDayComponent } from './dialog-gitlab-submit-worklog-for-day/dialog-gitlab-submit-worklog-for-day.component';
|
||||
import { BeforeFinishDayService } from '../../../before-finish-day/before-finish-day.service';
|
||||
import { WorkContextService } from '../../../work-context/work-context.service';
|
||||
|
||||
@Injectable()
|
||||
export class GitlabIssueEffects {
|
||||
|
|
@ -3,7 +3,7 @@ import {
|
|||
GitlabOriginalIssueState,
|
||||
GitlabOriginalMilestone,
|
||||
GitlabOriginalUser,
|
||||
} from '../gitlab-api/gitlab-api-responses';
|
||||
} from './gitlab-api/gitlab-api-responses';
|
||||
|
||||
export type GitlabState = GitlabOriginalIssueState;
|
||||
export type GitlabUser = GitlabOriginalUser;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
@import '../../../../../../../variables';
|
||||
@import 'variables';
|
||||
|
||||
// table styled by ./src/styles/components/issue-table.scss
|
||||
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
import { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core';
|
||||
import { TaskWithSubTasks } from '../../../../../tasks/task.model';
|
||||
import { TaskWithSubTasks } from '../../../../tasks/task.model';
|
||||
import { JiraIssue, JiraRelatedIssue, JiraSubtask } from '../jira-issue.model';
|
||||
import { expandAnimation } from '../../../../../../ui/animations/expand.ani';
|
||||
import { TaskAttachment } from '../../../../../tasks/task-attachment/task-attachment.model';
|
||||
import { T } from '../../../../../../t.const';
|
||||
import { TaskService } from '../../../../../tasks/task.service';
|
||||
import { expandAnimation } from '../../../../../ui/animations/expand.ani';
|
||||
import { TaskAttachment } from '../../../../tasks/task-attachment/task-attachment.model';
|
||||
import { T } from '../../../../../t.const';
|
||||
import { TaskService } from '../../../../tasks/task.service';
|
||||
// @ts-ignore
|
||||
import j2m from 'jira2md';
|
||||
import {
|
||||
|
|
@ -17,19 +17,19 @@ import {
|
|||
Subject,
|
||||
} from 'rxjs';
|
||||
import { catchError, map, switchMap } from 'rxjs/operators';
|
||||
import { JiraCommonInterfacesService } from '../../jira-common-interfaces.service';
|
||||
import { devError } from '../../../../../../util/dev-error';
|
||||
import { assertTruthy } from '../../../../../../util/assert-truthy';
|
||||
import { JiraCommonInterfacesService } from '../jira-common-interfaces.service';
|
||||
import { devError } from '../../../../../util/dev-error';
|
||||
import { assertTruthy } from '../../../../../util/assert-truthy';
|
||||
import { MatButton, MatAnchor } from '@angular/material/button';
|
||||
import { MatChipListbox, MatChipOption } from '@angular/material/chips';
|
||||
import { MarkdownComponent, MarkdownPipe } from 'ngx-markdown';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { AsyncPipe, DatePipe } from '@angular/common';
|
||||
import { JiraToMarkdownPipe } from '../../../../../../ui/pipes/jira-to-markdown.pipe';
|
||||
import { MsToStringPipe } from '../../../../../../ui/duration/ms-to-string.pipe';
|
||||
import { SortPipe } from '../../../../../../ui/pipes/sort.pipe';
|
||||
import { JiraToMarkdownPipe } from '../../../../../ui/pipes/jira-to-markdown.pipe';
|
||||
import { MsToStringPipe } from '../../../../../ui/duration/ms-to-string.pipe';
|
||||
import { SortPipe } from '../../../../../ui/pipes/sort.pipe';
|
||||
import { TranslatePipe } from '@ngx-translate/core';
|
||||
import { SnackService } from '../../../../../../core/snack/snack.service';
|
||||
import { SnackService } from '../../../../../core/snack/snack.service';
|
||||
|
||||
interface JiraSubtaskWithUrl extends JiraSubtask {
|
||||
href: string;
|
||||
|
|
@ -14,7 +14,7 @@ import {
|
|||
mapToSearchResults,
|
||||
mapToSearchResultsForJQL,
|
||||
mapTransitionResponse,
|
||||
} from './issue/jira-issue-map.util';
|
||||
} from './jira-issue-map.util';
|
||||
import {
|
||||
JiraOriginalStatus,
|
||||
JiraOriginalTransition,
|
||||
|
|
@ -37,7 +37,7 @@ import {
|
|||
tap,
|
||||
timeoutWith,
|
||||
} from 'rxjs/operators';
|
||||
import { JiraIssue, JiraIssueReduced } from './issue/jira-issue.model';
|
||||
import { JiraIssue, JiraIssueReduced } from './jira-issue.model';
|
||||
import moment from 'moment';
|
||||
import { BannerService } from '../../../../core/banner/banner.service';
|
||||
import { BannerId } from '../../../../core/banner/banner.model';
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import { first, map, switchMap, tap } from 'rxjs/operators';
|
|||
import { IssueServiceInterface } from '../../issue-service-interface';
|
||||
import { JiraApiService } from './jira-api.service';
|
||||
import { IssueProviderJira, SearchResultItem } from '../../issue.model';
|
||||
import { JiraIssue, JiraIssueReduced } from './issue/jira-issue.model';
|
||||
import { JiraIssue, JiraIssueReduced } from './jira-issue.model';
|
||||
import { TaskAttachment } from '../../../tasks/task-attachment/task-attachment.model';
|
||||
import { mapJiraAttachmentToAttachment } from './issue/jira-issue-map.util';
|
||||
import { mapJiraAttachmentToAttachment } from './jira-issue-map.util';
|
||||
import { JiraCfg } from './jira.model';
|
||||
import { isJiraEnabled } from './is-jira-enabled.util';
|
||||
import { JIRA_POLL_INTERVAL } from './jira.const';
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
IssueContentConfig,
|
||||
IssueFieldType,
|
||||
} from '../../issue-content/issue-content.model';
|
||||
import { JiraIssue } from './issue/jira-issue.model';
|
||||
import { JiraIssue } from './jira-issue.model';
|
||||
|
||||
export const JIRA_ISSUE_CONTENT_CONFIG: IssueContentConfig<JiraIssue> = {
|
||||
issueType: 'JIRA' as const,
|
||||
|
|
|
|||
|
|
@ -16,16 +16,16 @@ import {
|
|||
JiraOriginalComment,
|
||||
JiraOriginalIssueLink,
|
||||
JiraOriginalLinkedIssue,
|
||||
} from '../jira-api-responses';
|
||||
import { JiraCfg } from '../jira.model';
|
||||
} from './jira-api-responses';
|
||||
import { JiraCfg } from './jira.model';
|
||||
import {
|
||||
DropPasteIcons,
|
||||
DropPasteInputType,
|
||||
} from '../../../../../core/drop-paste-input/drop-paste.model';
|
||||
import { IssueProviderKey, SearchResultItem } from '../../../issue.model';
|
||||
import { TaskAttachment } from '../../../../tasks/task-attachment/task-attachment.model';
|
||||
import { dedupeByKey } from '../../../../../util/de-dupe-by-key';
|
||||
import { JIRA_TYPE } from '../../../issue.const';
|
||||
} from '../../../../core/drop-paste-input/drop-paste.model';
|
||||
import { IssueProviderKey, SearchResultItem } from '../../issue.model';
|
||||
import { TaskAttachment } from '../../../tasks/task-attachment/task-attachment.model';
|
||||
import { dedupeByKey } from '../../../../util/de-dupe-by-key';
|
||||
import { JIRA_TYPE } from '../../issue.const';
|
||||
|
||||
export const mapToSearchResults = (res: any): SearchResultItem[] => {
|
||||
console.log(res);
|
||||
|
|
@ -11,27 +11,27 @@ import {
|
|||
throttleTime,
|
||||
withLatestFrom,
|
||||
} from 'rxjs/operators';
|
||||
import { JiraApiService } from '../jira-api.service';
|
||||
import { JiraApiService } from './jira-api.service';
|
||||
import { JiraIssueReduced } from './jira-issue.model';
|
||||
import { SnackService } from '../../../../../core/snack/snack.service';
|
||||
import { Task } from '../../../../tasks/task.model';
|
||||
import { TaskService } from '../../../../tasks/task.service';
|
||||
import { SnackService } from '../../../../core/snack/snack.service';
|
||||
import { Task } from '../../../tasks/task.model';
|
||||
import { TaskService } from '../../../tasks/task.service';
|
||||
import { EMPTY, Observable, of, throwError, timer } from 'rxjs';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { DialogJiraTransitionComponent } from '../jira-view-components/dialog-jira-transition/dialog-jira-transition.component';
|
||||
import { IssueLocalState, IssueProviderJira } from '../../../issue.model';
|
||||
import { IssueService } from '../../../issue.service';
|
||||
import { JIRA_TYPE } from '../../../issue.const';
|
||||
import { T } from '../../../../../t.const';
|
||||
import { JiraTransitionOption } from '../jira.model';
|
||||
import { setCurrentTask, updateTask } from '../../../../tasks/store/task.actions';
|
||||
import { DialogJiraAddWorklogComponent } from '../jira-view-components/dialog-jira-add-worklog/dialog-jira-add-worklog.component';
|
||||
import { selectCurrentTaskParentOrCurrent } from '../../../../tasks/store/task.selectors';
|
||||
import { HANDLED_ERROR_PROP_STR } from '../../../../../app.constants';
|
||||
import { DialogConfirmComponent } from '../../../../../ui/dialog-confirm/dialog-confirm.component';
|
||||
import { isJiraEnabled } from '../is-jira-enabled.util';
|
||||
import { IssueProviderService } from '../../../issue-provider.service';
|
||||
import { assertTruthy } from '../../../../../util/assert-truthy';
|
||||
import { DialogJiraTransitionComponent } from './jira-view-components/dialog-jira-transition/dialog-jira-transition.component';
|
||||
import { IssueLocalState, IssueProviderJira } from '../../issue.model';
|
||||
import { IssueService } from '../../issue.service';
|
||||
import { JIRA_TYPE } from '../../issue.const';
|
||||
import { T } from '../../../../t.const';
|
||||
import { JiraTransitionOption } from './jira.model';
|
||||
import { setCurrentTask, updateTask } from '../../../tasks/store/task.actions';
|
||||
import { DialogJiraAddWorklogComponent } from './jira-view-components/dialog-jira-add-worklog/dialog-jira-add-worklog.component';
|
||||
import { selectCurrentTaskParentOrCurrent } from '../../../tasks/store/task.selectors';
|
||||
import { HANDLED_ERROR_PROP_STR } from '../../../../app.constants';
|
||||
import { DialogConfirmComponent } from '../../../../ui/dialog-confirm/dialog-confirm.component';
|
||||
import { isJiraEnabled } from './is-jira-enabled.util';
|
||||
import { IssueProviderService } from '../../issue-provider.service';
|
||||
import { assertTruthy } from '../../../../util/assert-truthy';
|
||||
|
||||
@Injectable()
|
||||
export class JiraIssueEffects {
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
// Mapped Data Types
|
||||
// -----------------
|
||||
import { JiraOriginalComponent, JiraOriginalStatus } from '../jira-api-responses';
|
||||
import { JiraOriginalComponent, JiraOriginalStatus } from './jira-api-responses';
|
||||
|
||||
export type JiraAuthor = Readonly<{
|
||||
id: string;
|
||||
|
|
@ -8,7 +8,7 @@ import {
|
|||
MatDialogActions,
|
||||
} from '@angular/material/dialog';
|
||||
import { SnackService } from '../../../../../../core/snack/snack.service';
|
||||
import { JiraIssue } from '../../issue/jira-issue.model';
|
||||
import { JiraIssue } from '../../jira-issue.model';
|
||||
import { Task } from '../../../../../tasks/task.model';
|
||||
import { T } from '../../../../../../t.const';
|
||||
import moment from 'moment';
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import {
|
|||
MatDialogActions,
|
||||
} from '@angular/material/dialog';
|
||||
import { IssueLocalState, IssueProviderJira } from '../../../../issue.model';
|
||||
import { JiraIssueReduced } from '../../issue/jira-issue.model';
|
||||
import { JiraIssueReduced } from '../../jira-issue.model';
|
||||
import { Observable, of } from 'rxjs';
|
||||
import { JiraApiService } from '../../jira-api.service';
|
||||
import { JiraOriginalTransition } from '../../jira-api-responses';
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ import {
|
|||
import { catchError, debounceTime, first, map, switchMap, tap } from 'rxjs/operators';
|
||||
import { JiraApiService } from '../../jira-api.service';
|
||||
import { DEFAULT_JIRA_CFG } from '../../jira.const';
|
||||
import { JiraIssue } from '../../issue/jira-issue.model';
|
||||
import { JiraIssue } from '../../jira-issue.model';
|
||||
import { SnackService } from '../../../../../../core/snack/snack.service';
|
||||
import { T } from '../../../../../../t.const';
|
||||
import { HelperClasses } from '../../../../../../app.constants';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
@import '../../../../../../../variables';
|
||||
@import 'variables';
|
||||
|
||||
// table styled by ./src/styles/components/issue-table.scss
|
||||
|
||||
|
|
@ -6,21 +6,21 @@ import {
|
|||
inject,
|
||||
ChangeDetectorRef,
|
||||
} from '@angular/core';
|
||||
import { TaskWithSubTasks } from '../../../../../tasks/task.model';
|
||||
import { TaskWithSubTasks } from '../../../../tasks/task.model';
|
||||
import { OpenProjectWorkPackage } from '../open-project-issue.model';
|
||||
import { expandAnimation } from '../../../../../../ui/animations/expand.ani';
|
||||
import { T } from '../../../../../../t.const';
|
||||
import { TaskService } from '../../../../../tasks/task.service';
|
||||
import { expandAnimation } from '../../../../../ui/animations/expand.ani';
|
||||
import { T } from '../../../../../t.const';
|
||||
import { TaskService } from '../../../../tasks/task.service';
|
||||
import { MatButton } from '@angular/material/button';
|
||||
import { MarkdownComponent } from 'ngx-markdown';
|
||||
import { TranslatePipe } from '@ngx-translate/core';
|
||||
import { MatIcon } from '@angular/material/icon';
|
||||
import { TaskAttachment } from '../../../../../tasks/task-attachment/task-attachment.model';
|
||||
import { IssueProviderService } from '../../../../issue-provider.service';
|
||||
import { TaskAttachment } from '../../../../tasks/task-attachment/task-attachment.model';
|
||||
import { IssueProviderService } from '../../../issue-provider.service';
|
||||
import { mapOpenProjectAttachmentToTaskAttachment } from '../open-project-issue-map.util';
|
||||
import { MatProgressBar } from '@angular/material/progress-bar';
|
||||
import { OpenProjectApiService } from '../../open-project-api.service';
|
||||
import { SnackService } from '../../../../../../core/snack/snack.service';
|
||||
import { OpenProjectApiService } from '../open-project-api.service';
|
||||
import { SnackService } from '../../../../../core/snack/snack.service';
|
||||
import moment from 'moment';
|
||||
|
||||
@Component({
|
||||
|
|
@ -2,6 +2,3 @@ import { OpenProjectCfg } from './open-project.model';
|
|||
|
||||
export const isOpenProjectEnabled = (cfg: OpenProjectCfg): boolean =>
|
||||
!!cfg && cfg.isEnabled && !!cfg.host && !!cfg.token && !!cfg.projectId;
|
||||
|
||||
export const isOpenProjectEnabledLegacy = (cfg: OpenProjectCfg): boolean =>
|
||||
!!cfg && !!cfg.host && !!cfg.token && !!cfg.projectId;
|
||||
|
|
|
|||
|
|
@ -13,12 +13,12 @@ import {
|
|||
mapOpenProjectIssueFull,
|
||||
mapOpenProjectIssueReduced,
|
||||
mapOpenProjectIssueToSearchResult,
|
||||
} from './issue/open-project-issue-map.util';
|
||||
} from './open-project-issue-map.util';
|
||||
import {
|
||||
OpenProjectAttachment,
|
||||
OpenProjectWorkPackage,
|
||||
OpenProjectWorkPackageReduced,
|
||||
} from './issue/open-project-issue.model';
|
||||
} from './open-project-issue.model';
|
||||
import { SearchResultItem } from '../../issue.model';
|
||||
import { T } from '../../../../t.const';
|
||||
import { throwHandledError } from '../../../../util/throw-handled-error';
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import { OpenProjectCfg } from './open-project.model';
|
|||
import {
|
||||
OpenProjectWorkPackage,
|
||||
OpenProjectWorkPackageReduced,
|
||||
} from './issue/open-project-issue.model';
|
||||
} from './open-project-issue.model';
|
||||
import { isOpenProjectEnabled } from './is-open-project-enabled.util';
|
||||
import { OPEN_PROJECT_POLL_INTERVAL } from './open-project.const';
|
||||
import { parseOpenProjectDuration } from './open-project-view-components/parse-open-project-duration.util';
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import {
|
|||
IssueFieldType,
|
||||
} from '../../issue-content/issue-content.model';
|
||||
import { IssueProviderKey } from '../../issue.model';
|
||||
import { OpenProjectWorkPackage } from './issue/open-project-issue.model';
|
||||
import { OpenProjectWorkPackage } from './open-project-issue.model';
|
||||
|
||||
export const OPEN_PROJECT_ISSUE_CONTENT_CONFIG: IssueContentConfig<OpenProjectWorkPackage> =
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,15 +6,15 @@ import {
|
|||
import {
|
||||
OpenProjectOriginalWorkPackageFull,
|
||||
OpenProjectOriginalWorkPackageReduced,
|
||||
} from '../open-project-api-responses';
|
||||
import { SearchResultItem } from '../../../issue.model';
|
||||
import { OpenProjectCfg } from '../open-project.model';
|
||||
import { OPEN_PROJECT_TYPE } from '../../../issue.const';
|
||||
} from './open-project-api-responses';
|
||||
import { SearchResultItem } from '../../issue.model';
|
||||
import { OpenProjectCfg } from './open-project.model';
|
||||
import { OPEN_PROJECT_TYPE } from '../../issue.const';
|
||||
import {
|
||||
TaskAttachment,
|
||||
TaskAttachmentCopy,
|
||||
} from '../../../../tasks/task-attachment/task-attachment.model';
|
||||
import { DropPasteIcons } from '../../../../../core/drop-paste-input/drop-paste.model';
|
||||
} from '../../../tasks/task-attachment/task-attachment.model';
|
||||
import { DropPasteIcons } from '../../../../core/drop-paste-input/drop-paste.model';
|
||||
|
||||
export const mapOpenProjectIssueReduced = (
|
||||
issue: OpenProjectOriginalWorkPackageReduced,
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import {
|
||||
OpenProjectOriginalWorkPackageFull,
|
||||
OpenProjectOriginalWorkPackageReduced,
|
||||
} from '../open-project-api-responses';
|
||||
} from './open-project-api-responses';
|
||||
|
||||
export interface OpenProjectAttachment {
|
||||
id: number;
|
||||
|
|
@ -11,7 +11,7 @@ import { SnackService } from '../../../../../../core/snack/snack.service';
|
|||
import { Task } from '../../../../../tasks/task.model';
|
||||
import { T } from '../../../../../../t.const';
|
||||
import moment from 'moment';
|
||||
import { OpenProjectWorkPackage } from '../../issue/open-project-issue.model';
|
||||
import { OpenProjectWorkPackage } from '../../open-project-issue.model';
|
||||
import { parseOpenProjectDuration } from '../parse-open-project-duration.util';
|
||||
import { JiraWorklogExportDefaultTime } from '../../../jira/jira.model';
|
||||
import {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import { T } from 'src/app/t.const';
|
|||
import { Task } from '../../../../../tasks/task.model';
|
||||
import { OpenProjectOriginalStatus } from '../../open-project-api-responses';
|
||||
import { OpenProjectApiService } from '../../open-project-api.service';
|
||||
import { OpenProjectWorkPackage } from '../../issue/open-project-issue.model';
|
||||
import { OpenProjectWorkPackage } from '../../open-project-issue.model';
|
||||
import { IssueProviderService } from 'src/app/features/issue/issue-provider.service';
|
||||
import { assertTruthy } from '../../../../../../util/assert-truthy';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ import { OpenProjectApiService } from '../../open-project-api.service';
|
|||
import {
|
||||
OpenProjectWorkPackage,
|
||||
OpenProjectWorkPackageReduced,
|
||||
} from '../../issue/open-project-issue.model';
|
||||
} from '../../open-project-issue.model';
|
||||
import { DEFAULT_OPEN_PROJECT_CFG } from '../../open-project.const';
|
||||
import {
|
||||
OpenProjectTransitionConfig,
|
||||
|
|
|
|||
|
|
@ -1,26 +1,26 @@
|
|||
import { Injectable, inject } from '@angular/core';
|
||||
import { Actions, createEffect, ofType } from '@ngrx/effects';
|
||||
import { setCurrentTask, updateTask } from '../../../../../tasks/store/task.actions';
|
||||
import { setCurrentTask, updateTask } from '../../../tasks/store/task.actions';
|
||||
import { concatMap, filter, map, take, tap, withLatestFrom } from 'rxjs/operators';
|
||||
import { select, Store } from '@ngrx/store';
|
||||
import { OPEN_PROJECT_TYPE } from '../../../../issue.const';
|
||||
import { OPEN_PROJECT_TYPE } from '../../issue.const';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { Task } from '../../../../../tasks/task.model';
|
||||
import { OpenProjectCfg, OpenProjectTransitionOption } from '../../open-project.model';
|
||||
import { Task } from '../../../tasks/task.model';
|
||||
import { OpenProjectCfg, OpenProjectTransitionOption } from './open-project.model';
|
||||
import { EMPTY, Observable, of, timer } from 'rxjs';
|
||||
import { DialogOpenProjectTrackTimeComponent } from '../../open-project-view-components/dialog-open-project-track-time/dialog-open-project-track-time.component';
|
||||
import { OpenProjectApiService } from '../../open-project-api.service';
|
||||
import { TaskService } from '../../../../../tasks/task.service';
|
||||
import { DialogOpenProjectTrackTimeComponent } from './open-project-view-components/dialog-open-project-track-time/dialog-open-project-track-time.component';
|
||||
import { OpenProjectApiService } from './open-project-api.service';
|
||||
import { TaskService } from '../../../tasks/task.service';
|
||||
import { selectCurrentTaskParentOrCurrent } from 'src/app/features/tasks/store/task.selectors';
|
||||
import { isOpenProjectEnabled } from '../../is-open-project-enabled.util';
|
||||
import { isOpenProjectEnabled } from './is-open-project-enabled.util';
|
||||
import { IssueLocalState } from 'src/app/features/issue/issue.model';
|
||||
import { SnackService } from 'src/app/core/snack/snack.service';
|
||||
import { OpenProjectWorkPackage } from '../open-project-issue.model';
|
||||
import { OpenProjectWorkPackage } from './open-project-issue.model';
|
||||
import { IssueService } from 'src/app/features/issue/issue.service';
|
||||
import { T } from 'src/app/t.const';
|
||||
import { DialogOpenProjectTransitionComponent } from '../../open-project-view-components/dialog-openproject-transition/dialog-open-project-transition.component';
|
||||
import { IssueProviderService } from '../../../../issue-provider.service';
|
||||
import { assertTruthy } from '../../../../../../util/assert-truthy';
|
||||
import { DialogOpenProjectTransitionComponent } from './open-project-view-components/dialog-openproject-transition/dialog-open-project-transition.component';
|
||||
import { IssueProviderService } from '../../issue-provider.service';
|
||||
import { assertTruthy } from '../../../../util/assert-truthy';
|
||||
|
||||
@Injectable()
|
||||
export class OpenProjectEffects {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { RedmineIssue } from './issue/redmine-issue.model';
|
||||
import { RedmineIssue } from './redmine-issue.model';
|
||||
import { truncate } from '../../../../util/truncate';
|
||||
|
||||
export const formatRedmineIssueSubject = ({ id, subject }: RedmineIssue): string => {
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import {
|
|||
RedmineIssueResult,
|
||||
RedmineSearchResult,
|
||||
RedmineSearchResultItem,
|
||||
} from './issue/redmine-issue.model';
|
||||
import { mapRedmineSearchResultItemToSearchResult } from './issue/redmine-issue-map.util';
|
||||
} from './redmine-issue.model';
|
||||
import { mapRedmineSearchResultItemToSearchResult } from './redmine-issue-map.util';
|
||||
import { SearchResultItem } from '../../issue.model';
|
||||
import { ScopeOptions } from './redmine.const';
|
||||
import { handleIssueProviderHttpError$ } from '../../handle-issue-provider-http-error';
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import {
|
|||
import { RedmineCfg } from './redmine.model';
|
||||
import { isRedmineEnabled } from './is-redmine-enabled.util';
|
||||
import { RedmineApiService } from '../redmine/redmine-api.service';
|
||||
import { RedmineIssue } from './issue/redmine-issue.model';
|
||||
import { RedmineIssue } from './redmine-issue.model';
|
||||
import { IssueProviderService } from '../../issue-provider.service';
|
||||
|
||||
@Injectable({
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import {
|
|||
IssueContentConfig,
|
||||
IssueFieldType,
|
||||
} from '../../issue-content/issue-content.model';
|
||||
import { RedmineIssue } from './issue/redmine-issue.model';
|
||||
import { RedmineIssue } from './redmine-issue.model';
|
||||
import { IssueProviderKey } from '../../issue.model';
|
||||
|
||||
export const REDMINE_ISSUE_CONTENT_CONFIG: IssueContentConfig<RedmineIssue> = {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
import {
|
||||
IssueDataReduced,
|
||||
IssueProviderKey,
|
||||
SearchResultItem,
|
||||
} from '../../../issue.model';
|
||||
import { IssueDataReduced, IssueProviderKey, SearchResultItem } from '../../issue.model';
|
||||
import { RedmineSearchResultItem } from './redmine-issue.model';
|
||||
|
||||
export const mapRedmineSearchResultItemToSearchResult = (
|
||||
|
|
@ -161,7 +161,6 @@
|
|||
#autoEl="matAutocomplete"
|
||||
(optionActivated)="onOptionActivated($event?.option?.value)"
|
||||
(optionSelected)="addTask()"
|
||||
[displayWith]="displayWith"
|
||||
>
|
||||
@for (
|
||||
item of filteredIssueSuggestions$ | async;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import {
|
|||
} from '@angular/core';
|
||||
import { FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
|
||||
import { TaskService } from '../task.service';
|
||||
import { JiraIssue } from '../../issue/providers/jira/jira-issue/jira-issue.model';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { T } from '../../../t.const';
|
||||
import { AddTaskSuggestion } from './add-task-suggestions.model';
|
||||
|
|
@ -255,10 +254,6 @@ export class AddTaskBarComponent implements AfterViewInit, OnDestroy {
|
|||
}
|
||||
}
|
||||
|
||||
displayWith(issue?: JiraIssue): string | undefined {
|
||||
return issue?.summary;
|
||||
}
|
||||
|
||||
async addTask(): Promise<void> {
|
||||
this._isAddInProgress = true;
|
||||
const item: AddTaskSuggestion | string = this.taskSuggestionsCtrl.value;
|
||||
|
|
|
|||
|
|
@ -74,15 +74,15 @@ import { workContextReducer } from '../features/work-context/store/work-context.
|
|||
import { WorkContextEffects } from '../features/work-context/store/work-context.effects';
|
||||
import { IS_ANDROID_WEB_VIEW } from '../util/is-android-web-view';
|
||||
import { AndroidEffects } from '../features/android/store/android.effects';
|
||||
import { CaldavIssueEffects } from '../features/issue/providers/caldav/caldav-issue/caldav-issue.effects';
|
||||
import { CaldavIssueEffects } from '../features/issue/providers/caldav/caldav-issue.effects';
|
||||
import { CalendarIntegrationEffects } from '../features/calendar-integration/store/calendar-integration.effects';
|
||||
import { ElectronEffects } from '../core/electron/electron.effects';
|
||||
import { DominaModeEffects } from '../features/domina-mode/store/domina-mode.effects';
|
||||
import { DropboxEffects } from '../imex/sync/dropbox/store/dropbox.effects';
|
||||
import { FinishDayBeforeCloseEffects } from '../features/finish-day-before-close/finish-day-before-close.effects';
|
||||
import { GitlabIssueEffects } from '../features/issue/providers/gitlab/gitlab-issue/gitlab-issue.effects';
|
||||
import { JiraIssueEffects } from '../features/issue/providers/jira/jira-issue/jira-issue.effects';
|
||||
import { OpenProjectEffects } from '../features/issue/providers/open-project/open-project-issue/store/open-project.effects';
|
||||
import { GitlabIssueEffects } from '../features/issue/providers/gitlab/gitlab-issue.effects';
|
||||
import { JiraIssueEffects } from '../features/issue/providers/jira/jira-issue.effects';
|
||||
import { OpenProjectEffects } from '../features/issue/providers/open-project/open-project.effects';
|
||||
import { ReminderCountdownEffects } from '../features/reminder/store/reminder-countdown.effects';
|
||||
import { SyncEffects } from '../imex/sync/sync.effects';
|
||||
import { boardsFeature } from '../features/boards/store/boards.reducer';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue