refactor: add singleAttributePerLine rule for prettier (finally!)

This commit is contained in:
Johannes Millan 2022-03-18 18:20:15 +01:00
parent bbde3f9a28
commit 9ac68ff394
104 changed files with 1900 additions and 428 deletions

View File

@ -6,6 +6,7 @@
"quoteProps": "as-needed",
"trailingComma": "all",
"bracketSpacing": true,
"singleAttributePerLine": true,
"arrowParens": "always",
"endOfLine": "auto",
"printWidth": 90,

12
package-lock.json generated
View File

@ -8187,9 +8187,9 @@
}
},
"eslint-config-prettier": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz",
"integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==",
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
"integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
"dev": true
},
"eslint-import-resolver-node": {
@ -16251,9 +16251,9 @@
"dev": true
},
"prettier": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz",
"integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==",
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.0.tgz",
"integrity": "sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==",
"dev": true
},
"prettier-linter-helpers": {

View File

@ -177,7 +177,7 @@
"electron-builder-notarize": "^1.2.0",
"electron-notarize": "^1.0.0",
"eslint": "^8.10.0",
"eslint-config-prettier": "^8.3.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-jsdoc": "37.1.0",
"eslint-plugin-prefer-arrow": "1.2.3",
@ -214,7 +214,7 @@
"nightwatch": "^1.7.11",
"object-path": "^0.11.8",
"p-throttle": "^3.1.0",
"prettier": "^2.4.1",
"prettier": "^2.6.0",
"pretty-quick": "^3.1.3",
"query-string": "^7.0.0",
"rxjs": "^6.6.7",

View File

@ -12,12 +12,20 @@
[isElevated]="true"
class="global"
></add-task-bar>
<div *ngIf="(layoutService.isShowAddTaskBar$|async)" @fade class="backdrop"></div>
<div
*ngIf="(layoutService.isShowAddTaskBar$|async)"
@fade
class="backdrop"
></div>
<search-bar
(blurred)="layoutService.hideSearchBar()"
*ngIf="layoutService.isShowSearchBar$|async"
></search-bar>
<div *ngIf="(layoutService.isShowSearchBar$|async)" @fade class="backdrop"></div>
<div
*ngIf="(layoutService.isShowSearchBar$|async)"
@fade
class="backdrop"
></div>
<mat-sidenav-container [dir]="isRTL ? 'rtl' : 'ltr'">
<mat-sidenav
(closedStart)="layoutService.hideSideNav()"
@ -42,7 +50,11 @@
<banner></banner>
</header>
<div #routeWrapper [@warpRoute]="getPage(o)" class="route-wrapper">
<div
#routeWrapper
[@warpRoute]="getPage(o)"
class="route-wrapper"
>
<router-outlet #o="outlet"></router-outlet>
</div>
<global-progress-bar></global-progress-bar>
@ -67,7 +79,10 @@
<div class="double-bounce2"></div>
</div>
<svg class="logo" viewBox="0 0 64 64">
<svg
class="logo"
viewBox="0 0 64 64"
>
<path
d="M 0.65537046,34.582787 32.452267,63.855301 63.791548,0.94356422 30.222644,47.722023 Z"
id="path3395"

View File

@ -1,8 +1,15 @@
<div *ngIf="(globalProgressBarService.label$|async) as label" [@fadeOut] class="badge">
<div
*ngIf="(globalProgressBarService.label$|async) as label"
[@fadeOut]
class="badge"
>
{{label|translate}}
</div>
<div *ngIf="(globalProgressBarService.isShowGlobalProgressBar$|async)" [@fadeInOutBottom]>
<div
*ngIf="(globalProgressBarService.isShowGlobalProgressBar$|async)"
[@fadeInOutBottom]
>
<mat-progress-bar mode="indeterminate"></mat-progress-bar>
</div>

View File

@ -129,7 +129,12 @@
<mat-icon *ngIf="(taskService.currentTaskId$|async)">pause</mat-icon>
</ng-container>
<svg class="circle-svg" focusable="false" height="40" width="40">
<svg
class="circle-svg"
focusable="false"
height="40"
width="40"
>
<circle
#circleSvg
cx="50%"

View File

@ -5,7 +5,10 @@
[class.isActiveContext]="mainContext.id===activeWorkContextId"
class="tag"
>
<div [style.background]="mainContext.theme.primary" class="tag-color"></div>
<div
[style.background]="mainContext.theme.primary"
class="tag-color"
></div>
<button
#menuEntry
[routerLink]="['tag', mainContext.id, 'tasks']"
@ -59,7 +62,10 @@
</button>
</section>
<section *ngIf="projectList$|async as projectList" class="projects">
<section
*ngIf="projectList$|async as projectList"
class="projects"
>
<button
#menuEntry
#projectExpandBtn
@ -90,11 +96,19 @@
[ngStyle]="getThemeColor(project.theme?.primary || project.themeColor)"
class="project-color"
></div>
<button #menuEntry [routerLink]="['project', project.id, 'tasks']" mat-menu-item>
<button
#menuEntry
[routerLink]="['project', project.id, 'tasks']"
mat-menu-item
>
<span class="badge"
>{{project.taskIds.length}}/{{project.backlogTaskIds.length}}</span
>
<mat-icon class="drag-handle" drag-handle>list</mat-icon>
<mat-icon
class="drag-handle"
drag-handle
>list</mat-icon
>
<span class="text">{{project.title}}</span>
</button>
@ -129,13 +143,21 @@
<span class="text">{{T.MH.MANAGE_PROJECTS|translate}}</span>
</button>
<button #menuEntry (click)="addProject()" *ngIf="isProjectsExpanded" mat-menu-item>
<button
#menuEntry
(click)="addProject()"
*ngIf="isProjectsExpanded"
mat-menu-item
>
<mat-icon>add</mat-icon>
<span class="text">{{T.MH.CREATE_PROJECT|translate}}</span>
</button>
</section>
<section *ngIf="(tagList$|async) as tagList" class="tags">
<section
*ngIf="(tagList$|async) as tagList"
class="tags"
>
<button
#menuEntry
#tagExpandBtn
@ -161,10 +183,21 @@
[class.isActiveContext]="tag.id===activeWorkContextId"
class="tag"
>
<div [style.background]="tag?.theme.primary" class="tag-color"></div>
<button #menuEntry [routerLink]="['tag', tag.id, 'tasks']" mat-menu-item>
<div
[style.background]="tag?.theme.primary"
class="tag-color"
></div>
<button
#menuEntry
[routerLink]="['tag', tag.id, 'tasks']"
mat-menu-item
>
<span class="badge">{{tag.taskIds.length}}</span>
<mat-icon class="drag-handle" drag-handle>style</mat-icon>
<mat-icon
class="drag-handle"
drag-handle
>style</mat-icon
>
<span class="text">{{tag.title}}</span>
</button>

View File

@ -1,9 +1,15 @@
<button [routerLink]="[base,contextId,'quick-history']" mat-menu-item>
<button
[routerLink]="[base,contextId,'quick-history']"
mat-menu-item
>
<mat-icon>history</mat-icon>
<span class="text">{{T.MH.QUICK_HISTORY|translate}}</span>
</button>
<button [routerLink]="[base,contextId,'worklog']" mat-menu-item>
<button
[routerLink]="[base,contextId,'worklog']"
mat-menu-item
>
<mat-icon>date_range</mat-icon>
<span class="text">{{T.MH.WORKLOG|translate}}</span>
</button>
@ -17,7 +23,10 @@
<span class="text">{{T.MH.METRICS|translate}}</span>
</button>
<button [routerLink]="[base,contextId,'settings']" mat-menu-item>
<button
[routerLink]="[base,contextId,'settings']"
mat-menu-item
>
<mat-icon>settings</mat-icon>
<span class="text">{{T.MH.SETTINGS|translate}}</span>
</button>

View File

@ -5,13 +5,19 @@
class="content-wrapper"
>
<div class="inner-content-wrapper">
<div *ngIf="banner.img" class="motivational-img-wrapper">
<div
*ngIf="banner.img"
class="motivational-img-wrapper"
>
<img [src]="banner.img" />
</div>
<div class="message-wrapper">
<mat-icon *ngIf="banner.ico">{{banner.ico}}</mat-icon>
<mat-icon *ngIf="banner.svgIco" [svgIcon]="banner.svgIco"></mat-icon>
<mat-icon
*ngIf="banner.svgIco"
[svgIcon]="banner.svgIco"
></mat-icon>
<div
[innerHTML]="banner.msg|translate:banner.translateParams"

View File

@ -5,13 +5,32 @@
class="wrapper"
>
<ng-container *ngIf="!data.ico">
<mat-icon *ngIf="data.type==='SUCCESS'" class="snack-icon">check_circle </mat-icon>
<mat-icon *ngIf="data.type==='ERROR'" class="snack-icon">error </mat-icon>
<mat-icon
*ngIf="data.type==='SUCCESS'"
class="snack-icon"
>check_circle
</mat-icon>
<mat-icon
*ngIf="data.type==='ERROR'"
class="snack-icon"
>error
</mat-icon>
</ng-container>
<mat-icon *ngIf="data.ico" class="snack-icon">{{data.ico}}</mat-icon>
<mat-icon *ngIf="data.svgIco" [svgIcon]="data.svgIco" class="snack-icon"></mat-icon>
<mat-icon
*ngIf="data.ico"
class="snack-icon"
>{{data.ico}}</mat-icon
>
<mat-icon
*ngIf="data.svgIco"
[svgIcon]="data.svgIco"
class="snack-icon"
></mat-icon>
<span [innerHtml]="data.msg" class="message"></span>
<span
[innerHtml]="data.msg"
class="message"
></span>
<div class="button-wrapper">
<button
@ -25,7 +44,11 @@
</button>
</div>
<button *ngIf="!data.actionStr" class="close-btn" mat-icon-button>
<button
*ngIf="!data.actionStr"
class="close-btn"
mat-icon-button
>
<mat-icon>close</mat-icon>
</button>

View File

@ -4,7 +4,11 @@
[@slide]="{value:'*',params:{elHeight:(bookmarkBarHeight)}}"
class="global-bookmark-list-outer"
>
<div *ngIf="isDragOver" @fade class="bgc-accent drag-over-msg">
<div
*ngIf="isDragOver"
@fade
class="bgc-accent drag-over-msg"
>
<mat-icon>add</mat-icon>
{{T.F.BOOKMARK.BAR.DROP|translate}}
</div>
@ -31,11 +35,19 @@
<mat-menu #menu="matMenu">
<ng-template matMenuContent>
<button (click)="openEditDialog()" color="" mat-menu-item>
<button
(click)="openEditDialog()"
color=""
mat-menu-item
>
<mat-icon>add</mat-icon>
{{T.F.BOOKMARK.BAR.ADD|translate}}
</button>
<button (click)="isEditMode=!isEditMode" color="" mat-menu-item>
<button
(click)="isEditMode=!isEditMode"
color=""
mat-menu-item
>
<mat-icon>edit</mat-icon>
{{T.F.BOOKMARK.BAR.EDIT|translate}}
</button>
@ -49,7 +61,10 @@
[dragula]="LIST_ID"
class="global-bookmark-list-inner"
>
<div *ngIf="!(bookmarkService.bookmarks$|async)?.length" class="msg">
<div
*ngIf="!(bookmarkService.bookmarks$|async)?.length"
class="msg"
>
{{T.F.BOOKMARK.BAR.NO_BOOKMARKS|translate}}
</div>
@ -75,7 +90,10 @@
{{bookmark.title}}
</a>
<div *ngIf="isEditMode" class="controls">
<div
*ngIf="isEditMode"
class="controls"
>
<mat-icon
*ngIf="isEditMode"
@fade

View File

@ -1,4 +1,8 @@
<form #form="ngForm" (submit)="submit()" *ngIf="bookmarkCopy">
<form
#form="ngForm"
(submit)="submit()"
*ngIf="bookmarkCopy"
>
<h1 mat-dialog-title>
{{ (bookmarkCopy.id ? (T.F.BOOKMARK.DIALOG_EDIT.EDIT_BOOKMARK) :
(T.F.BOOKMARK.DIALOG_EDIT.ADD_BOOKMARK)) |translate }}
@ -54,7 +58,10 @@
type="text"
/>
<mat-icon matPrefix="">{{bookmarkCopy.icon}}</mat-icon>
<mat-autocomplete #auto="matAutocomplete" [autoActiveFirstOption]="true">
<mat-autocomplete
#auto="matAutocomplete"
[autoActiveFirstOption]="true"
>
<mat-option
*ngFor="let icon of (filteredIcons$|async); trackBy: trackByIndex"
[value]="icon"
@ -69,11 +76,21 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button (click)="close()" color="primary" mat-button type="button">
<button
(click)="close()"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>
<button [disabled]="!form.valid" color="primary" mat-stroked-button type="submit">
<button
[disabled]="!form.valid"
color="primary"
mat-stroked-button
type="submit"
>
<mat-icon>save</mat-icon>
{{T.G.SAVE|translate}}
</button>

View File

@ -1,4 +1,7 @@
<form (ngSubmit)="submit()" [formGroup]="form">
<form
(ngSubmit)="submit()"
[formGroup]="form"
>
<formly-form
(modelChange)="config=$event"
[fields]="fields"

View File

@ -6,14 +6,34 @@
<!--[icon]="section?.icon"-->
<help-section *ngIf="section?.help||section?.helpArr">
<div *ngIf="section?.help" [innerHtml]="section?.help|translate"></div>
<div
*ngIf="section?.help"
[innerHtml]="section?.help|translate"
></div>
<ng-container *ngIf="section?.helpArr">
<ng-container *ngFor="let helpSection of section?.helpArr; trackBy: trackByIndex">
<div *ngIf="helpSection.h" class="mat-caption">{{helpSection.h|translate}}</div>
<p *ngIf="helpSection.p" [innerHTML]="helpSection.p|translate"></p>
<p *ngIf="helpSection.p2" [innerHTML]="helpSection.p2|translate"></p>
<p *ngIf="helpSection.p3" [innerHTML]="helpSection.p3|translate"></p>
<p *ngIf="helpSection.p4" [innerHTML]="helpSection.p4|translate"></p>
<div
*ngIf="helpSection.h"
class="mat-caption"
>
{{helpSection.h|translate}}
</div>
<p
*ngIf="helpSection.p"
[innerHTML]="helpSection.p|translate"
></p>
<p
*ngIf="helpSection.p2"
[innerHTML]="helpSection.p2|translate"
></p>
<p
*ngIf="helpSection.p3"
[innerHTML]="helpSection.p3|translate"
></p>
<p
*ngIf="helpSection.p4"
[innerHTML]="helpSection.p4|translate"
></p>
</ng-container>
</ng-container>
</help-section>
@ -26,6 +46,9 @@
[sectionKey]="section?.key"
></config-form>
<ng-template #customForm class="custom-form"></ng-template>
<ng-template
#customForm
class="custom-form"
></ng-template>
</div>
</collapsible>

View File

@ -9,7 +9,10 @@
type="text"
/>
<mat-autocomplete #auto="matAutocomplete" [autoActiveFirstOption]="false">
<mat-autocomplete
#auto="matAutocomplete"
[autoActiveFirstOption]="false"
>
<mat-option
*ngFor="let icon of (filteredIcons$|async); trackBy: trackByIndex"
[value]="icon"

View File

@ -1,18 +1,33 @@
<div [@standardList]="field.fieldGroup?.length" class="list-wrapper">
<div
[@standardList]="field.fieldGroup?.length"
class="list-wrapper"
>
<div
*ngFor="let innerField of field.fieldGroup; let i = index; trackBy: trackByFn;"
class="row"
>
<formly-field [field]="innerField" class="field"></formly-field>
<formly-field
[field]="innerField"
class="field"
></formly-field>
<button (click)="removeItem(i)" color="warn" mat-mini-fab type="button">
<button
(click)="removeItem(i)"
color="warn"
mat-mini-fab
type="button"
>
<mat-icon>delete_forever</mat-icon>
</button>
</div>
</div>
<div class="footer">
<button (click)="addItem()" mat-button type="button">
<button
(click)="addItem()"
mat-button
type="button"
>
<mat-icon>add</mat-icon>
{{ to.addText | translate}}
</button>

View File

@ -1,9 +1,15 @@
<div class="dialog-content" mat-dialog-content>
<div
class="dialog-content"
mat-dialog-content
>
<p>{{T.F.TIME_TRACKING.D_IDLE.IDLE_FOR|translate}}</p>
<div class="time">{{idleTime$|async|msToString:true}}</div>
<div class="track-to-items">
<div class="track-to-item" *ngFor="let item of trackItems">
<div
class="track-to-item"
*ngFor="let item of trackItems"
>
<div class="first-block">
<mat-button-toggle-group [(ngModel)]="item.type">
<mat-button-toggle value="BREAK">
@ -60,7 +66,10 @@
</div>
<div style="text-align: center; margin-top: 8px">
<button mat-button (click)="addTrackItem()">
<button
mat-button
(click)="addTrackItem()"
>
<mat-icon>add</mat-icon>
{{T.F.TIME_TRACKING.D_IDLE.ADD_ENTRY|translate}}
</button>
@ -68,12 +77,25 @@
</div>
</div>
<div align="end" mat-dialog-actions>
<button (click)="cancel()" color="primary" mat-button type="button">
<div
align="end"
mat-dialog-actions
>
<button
(click)="cancel()"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>
<button (click)="save()" color="primary" mat-stroked-button type="submit">
<button
(click)="save()"
color="primary"
mat-stroked-button
type="submit"
>
<mat-icon>save</mat-icon>
{{T.G.SAVE|translate}}
</button>

View File

@ -1,9 +1,18 @@
<form (submit)="track()" *ngIf="isTaskDataLoadedIfNeeded">
<div class="dialog-content" mat-dialog-content>
<form
(submit)="track()"
*ngIf="isTaskDataLoadedIfNeeded"
>
<div
class="dialog-content"
mat-dialog-content
>
<p>{{T.F.TIME_TRACKING.D_IDLE.IDLE_FOR|translate}}</p>
<div class="time">{{idleTime$|async|msToString:true}}</div>
<div class="split-btn" style="text-align: center">
<div
class="split-btn"
style="text-align: center"
>
<button
mat-icon-button
[matTooltip]="T.F.TIME_TRACKING.D_IDLE.SPLIT_TIME|translate"
@ -42,13 +51,26 @@
</section>
</div>
<div align="center" mat-dialog-actions>
<button (click)="skipTrack()" color="" mat-button type="button">
<div
align="center"
mat-dialog-actions
>
<button
(click)="skipTrack()"
color=""
mat-button
type="button"
>
<mat-icon>skip_next</mat-icon>
{{T.F.TIME_TRACKING.D_IDLE.SKIP|translate}}
</button>
<button (click)="trackAsBreak()" color="primary" mat-stroked-button type="button">
<button
(click)="trackAsBreak()"
color="primary"
mat-stroked-button
type="button"
>
<mat-icon>free_breakfast</mat-icon>
{{T.F.TIME_TRACKING.D_IDLE.BREAK|translate}}
</button>

View File

@ -1,17 +1,29 @@
<ng-container *ngIf="task?.issueType===JIRA_TYPE">
<jira-issue-content [issue]="issueData" [task]="task"></jira-issue-content>
<jira-issue-content
[issue]="issueData"
[task]="task"
></jira-issue-content>
</ng-container>
<ng-container *ngIf="task?.issueType===GITHUB_TYPE">
<github-issue-content [issue]="issueData" [task]="task"></github-issue-content>
<github-issue-content
[issue]="issueData"
[task]="task"
></github-issue-content>
</ng-container>
<ng-container *ngIf="task?.issueType===GITLAB_TYPE">
<gitlab-issue-content [issue]="issueData" [task]="task"></gitlab-issue-content>
<gitlab-issue-content
[issue]="issueData"
[task]="task"
></gitlab-issue-content>
</ng-container>
<ng-container *ngIf="task?.issueType===CALDAV_TYPE">
<caldav-issue-content [issue]="issueData" [task]="task"></caldav-issue-content>
<caldav-issue-content
[issue]="issueData"
[task]="task"
></caldav-issue-content>
</ng-container>
<ng-container *ngIf="task?.issueType===OPEN_PROJECT_TYPE">

View File

@ -1,6 +1,14 @@
<ng-container>
<div *ngIf="task?.issueWasUpdated" @expand style="text-align: center">
<button (click)="hideUpdates()" color="accent" mat-raised-button>
<div
*ngIf="task?.issueWasUpdated"
@expand
style="text-align: center"
>
<button
(click)="hideUpdates()"
color="accent"
mat-raised-button
>
{{T.F.CALDAV.ISSUE_CONTENT.MARK_AS_CHECKED|translate}}
</button>
</div>
@ -19,7 +27,9 @@
<th>{{T.F.CALDAV.ISSUE_CONTENT.LABELS|translate}}</th>
<td>
<mat-chip-list>
<mat-chip *ngFor="let label of issue?.labels" [title]="label"
<mat-chip
*ngFor="let label of issue?.labels"
[title]="label"
>{{label}}
</mat-chip>
</mat-chip-list>
@ -28,7 +38,11 @@
<tr *ngIf="issue?.note">
<th>{{T.F.CALDAV.ISSUE_CONTENT.DESCRIPTION|translate}}</th>
<td class="issue-description">
<div [data]="issue?.note" class="description markdown" markdown></div>
<div
[data]="issue?.note"
class="description markdown"
markdown
></div>
</td>
</tr>
</table>

View File

@ -1,6 +1,13 @@
<mat-icon *ngIf="task?.issueWasUpdated" color="accent" style="margin-right: 8px"
<mat-icon
*ngIf="task?.issueWasUpdated"
color="accent"
style="margin-right: 8px"
>update
</mat-icon>
<mat-icon *ngIf="!task?.issueWasUpdated" style="margin-right: 8px" svgIcon="caldav">
<mat-icon
*ngIf="!task?.issueWasUpdated"
style="margin-right: 8px"
svgIcon="caldav"
>
</mat-icon>
<span class="tab-label-text">Caldav</span>

View File

@ -1,9 +1,15 @@
<h1 mat-dialog-title>
<mat-icon class="dialog-header-icon" svgIcon="caldav"></mat-icon>
<mat-icon
class="dialog-header-icon"
svgIcon="caldav"
></mat-icon>
<span>{{T.F.CALDAV.DIALOG_INITIAL.TITLE|translate}}</span>
</h1>
<form (submit)="saveCaldavCfg(caldavCfg)" [formGroup]="formGroup">
<form
(submit)="saveCaldavCfg(caldavCfg)"
[formGroup]="formGroup"
>
<mat-dialog-content>
<formly-form
(modelChange)="caldavCfg=$event"
@ -15,7 +21,12 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button (click)="close()" color="primary" mat-button type="button">
<button
(click)="close()"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>

View File

@ -1,6 +1,14 @@
<ng-container>
<div *ngIf="task?.issueWasUpdated" @expand style="text-align: center">
<button (click)="hideUpdates()" color="accent" mat-raised-button>
<div
*ngIf="task?.issueWasUpdated"
@expand
style="text-align: center"
>
<button
(click)="hideUpdates()"
color="accent"
mat-raised-button
>
{{T.F.GITHUB.ISSUE_CONTENT.MARK_AS_CHECKED|translate}}
</button>
</div>
@ -10,7 +18,9 @@
<tr>
<th>{{T.F.GITHUB.ISSUE_CONTENT.SUMMARY|translate}}</th>
<td>
<a [href]="issue?.html_url" target="_blank"
<a
[href]="issue?.html_url"
target="_blank"
><strong>{{issue?.title}} #{{issue?.number}}</strong></a
>
</td>
@ -22,7 +32,9 @@
<tr *ngIf="issue?.assignee?.html_url">
<th>{{T.F.GITHUB.ISSUE_CONTENT.ASSIGNEE|translate}}</th>
<td>
<a [href]="issue?.assignee?.html_url" target="_blank"
<a
[href]="issue?.assignee?.html_url"
target="_blank"
>{{issue?.assignee?.login}}</a
>
</td>
@ -42,7 +54,11 @@
<tr *ngIf="issue?.body">
<th>{{T.F.GITHUB.ISSUE_CONTENT.DESCRIPTION|translate}}</th>
<td class="issue-description">
<div [data]="issue?.body" class="description markdown" markdown></div>
<div
[data]="issue?.body"
class="description markdown"
markdown
></div>
</td>
</tr>
</table>

View File

@ -1,6 +1,13 @@
<mat-icon *ngIf="task?.issueWasUpdated" color="accent" style="margin-right: 8px"
<mat-icon
*ngIf="task?.issueWasUpdated"
color="accent"
style="margin-right: 8px"
>update
</mat-icon>
<mat-icon *ngIf="!task?.issueWasUpdated" style="margin-right: 8px" svgIcon="github">
<mat-icon
*ngIf="!task?.issueWasUpdated"
style="margin-right: 8px"
svgIcon="github"
>
</mat-icon>
<span class="tab-label-text">Github</span>

View File

@ -1,9 +1,15 @@
<h1 mat-dialog-title>
<mat-icon class="dialog-header-icon" svgIcon="github"></mat-icon>
<mat-icon
class="dialog-header-icon"
svgIcon="github"
></mat-icon>
<span>{{T.F.GITHUB.DIALOG_INITIAL.TITLE|translate}}</span>
</h1>
<form (submit)="saveGithubCfg(githubCfg)" [formGroup]="formGroup">
<form
(submit)="saveGithubCfg(githubCfg)"
[formGroup]="formGroup"
>
<mat-dialog-content>
<formly-form
(modelChange)="githubCfg=$event"
@ -15,7 +21,12 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button (click)="close()" color="primary" mat-button type="button">
<button
(click)="close()"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>

View File

@ -1,9 +1,15 @@
<h1 mat-dialog-title>
<mat-icon class="dialog-header-icon" svgIcon="gitlab"></mat-icon>
<mat-icon
class="dialog-header-icon"
svgIcon="gitlab"
></mat-icon>
<span>{{T.F.GITLAB.DIALOG_INITIAL.TITLE|translate}}</span>
</h1>
<form (submit)="saveGitlabCfg(gitlabCfg)" [formGroup]="formGroup">
<form
(submit)="saveGitlabCfg(gitlabCfg)"
[formGroup]="formGroup"
>
<mat-dialog-content>
<formly-form
(modelChange)="gitlabCfg=$event"
@ -15,7 +21,12 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button (click)="close()" color="primary" mat-button type="button">
<button
(click)="close()"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>

View File

@ -1,6 +1,14 @@
<ng-container>
<div *ngIf="task?.issueWasUpdated" @expand style="text-align: center">
<button (click)="hideUpdates()" color="accent" mat-raised-button>
<div
*ngIf="task?.issueWasUpdated"
@expand
style="text-align: center"
>
<button
(click)="hideUpdates()"
color="accent"
mat-raised-button
>
{{T.F.GITLAB.ISSUE_CONTENT.MARK_AS_CHECKED|translate}}
</button>
</div>
@ -10,7 +18,9 @@
<tr>
<th>{{T.F.GITLAB.ISSUE_CONTENT.SUMMARY|translate}}</th>
<td>
<a [href]="issue?.html_url" target="_blank"
<a
[href]="issue?.html_url"
target="_blank"
><strong>{{issue?.title}} #{{issue?.number}}</strong></a
>
</td>
@ -26,7 +36,9 @@
<tr *ngIf="issue?.assignee?.web_url">
<th>{{T.F.GITLAB.ISSUE_CONTENT.ASSIGNEE|translate}}</th>
<td>
<a [href]="issue?.assignee?.web_url" target="_blank"
<a
[href]="issue?.assignee?.web_url"
target="_blank"
>{{issue?.assignee?.username}}</a
>
</td>
@ -35,7 +47,9 @@
<th>{{T.F.GITLAB.ISSUE_CONTENT.LABELS|translate}}</th>
<td>
<mat-chip-list>
<mat-chip *ngFor="let label of issue?.labels" [title]="label"
<mat-chip
*ngFor="let label of issue?.labels"
[title]="label"
>{{label}}
</mat-chip>
</mat-chip-list>
@ -44,7 +58,11 @@
<tr *ngIf="issue?.body">
<th>{{T.F.GITLAB.ISSUE_CONTENT.DESCRIPTION|translate}}</th>
<td class="issue-description">
<div [data]="issue?.body" class="description markdown" markdown></div>
<div
[data]="issue?.body"
class="description markdown"
markdown
></div>
</td>
</tr>
</table>

View File

@ -1,6 +1,13 @@
<mat-icon *ngIf="task?.issueWasUpdated" color="accent" style="margin-right: 8px"
<mat-icon
*ngIf="task?.issueWasUpdated"
color="accent"
style="margin-right: 8px"
>update
</mat-icon>
<mat-icon *ngIf="!task?.issueWasUpdated" style="margin-right: 8px" svgIcon="gitlab">
<mat-icon
*ngIf="!task?.issueWasUpdated"
style="margin-right: 8px"
svgIcon="gitlab"
>
</mat-icon>
<span class="tab-label-text">Gitlab</span>

View File

@ -1,7 +1,15 @@
<div class="wrapper">
<div *ngIf="task?.issueWasUpdated" [@expand] class="updates">
<div
*ngIf="task?.issueWasUpdated"
[@expand]
class="updates"
>
<div>
<button (click)="hideUpdates()" color="accent" mat-raised-button>
<button
(click)="hideUpdates()"
color="accent"
mat-raised-button
>
{{T.F.JIRA.ISSUE_CONTENT.MARK_AS_CHECKED|translate}}
</button>
</div>
@ -22,7 +30,9 @@
<th>{{T.F.JIRA.ISSUE_CONTENT.SUMMARY|translate}}</th>
<td class="summary">
<strong
><a [href]="issueUrl$|async" target="_blank"
><a
[href]="issueUrl$|async"
target="_blank"
>{{issue?.key}} {{issue?.summary}}</a
></strong
>
@ -56,7 +66,12 @@
<td>
<ul class="subtask-list">
<li *ngFor="let st of jiraSubTasks;">
<a target="_blank" [href]="st.href"> {{st.key}} {{st.summary}}</a>
<a
target="_blank"
[href]="st.href"
>
{{st.key}} {{st.summary}}</a
>
</li>
</ul>
</td>
@ -68,7 +83,11 @@
<ul class="related-issue-list">
<li *ngFor="let ri of relatedIssues;">
<i>{{ri.relatedHow}} => </i>
<a target="_blank" [href]="ri.href">{{ri.key}} {{ri.summary}}</a>
<a
target="_blank"
[href]="ri.href"
>{{ri.key}} {{ri.summary}}</a
>
</li>
</ul>
</td>
@ -86,7 +105,10 @@
</mat-chip-list>
</td>
</tr>
<tr *ngIf="issue?.description" class="description-row">
<tr
*ngIf="issue?.description"
class="description-row"
>
<th>{{T.F.JIRA.ISSUE_CONTENT.DESCRIPTION|translate}}</th>
<td>
<div
@ -114,7 +136,10 @@
*ngFor="let comment of (issue?.comments|sort:'created'); trackBy: trackByIndex"
class="comment"
>
<img [src]="comment.author.avatarUrl" class="author-avatar" />
<img
[src]="comment.author.avatarUrl"
class="author-avatar"
/>
<div class="name-and-comment-content">
<div>
<span class="author-name">{{comment.author.displayName}}</span>
@ -131,7 +156,11 @@
</div>
</div>
<a [href]="issueUrl$|async" mat-stroked-button target="_blank">
<a
[href]="issueUrl$|async"
mat-stroked-button
target="_blank"
>
<mat-icon>textsms</mat-icon>
{{T.F.JIRA.ISSUE_CONTENT.WRITE_A_COMMENT|translate}}</a
>

View File

@ -1,12 +1,23 @@
<ng-container *ngIf="(isOnline$|async) else offline">
<mat-icon *ngIf="task?.issueWasUpdated" color="accent" style="margin-right: 8px"
<mat-icon
*ngIf="task?.issueWasUpdated"
color="accent"
style="margin-right: 8px"
>update
</mat-icon>
<mat-icon *ngIf="!task?.issueWasUpdated" style="margin-right: 8px" svgIcon="jira">
<mat-icon
*ngIf="!task?.issueWasUpdated"
style="margin-right: 8px"
svgIcon="jira"
>
</mat-icon>
</ng-container>
<span class="tab-label-text">Jira</span>
<ng-template #offline>
<mat-icon [matTooltip]="'No internet!'" style="margin-right: 8px">cloud_off </mat-icon>
<mat-icon
[matTooltip]="'No internet!'"
style="margin-right: 8px"
>cloud_off
</mat-icon>
</ng-template>

View File

@ -1,6 +1,13 @@
<form (submit)="submitWorklog()" class="mat-body" name="time-estimate-form">
<form
(submit)="submitWorklog()"
class="mat-body"
name="time-estimate-form"
>
<h1 mat-dialog-title>
<mat-icon class="dialog-header-icon" svgIcon="jira"></mat-icon>
<mat-icon
class="dialog-header-icon"
svgIcon="jira"
></mat-icon>
<span>{{T.F.JIRA.DIALOG_WORKLOG.TITLE|translate}}</span>
</h1>
@ -32,10 +39,16 @@
[matMenuTriggerFor]="contextMenu"
[matTooltip]="T.F.JIRA.DIALOG_WORKLOG.TIME_SPENT_TOOLTIP|translate"
>
<button mat-icon-button type="button">
<button
mat-icon-button
type="button"
>
<mat-icon style="font-size: 24px">add</mat-icon>
</button>
<button mat-icon-button type="button">
<button
mat-icon-button
type="button"
>
<mat-icon style="font-size: 24px">timer</mat-icon>
</button>
</div>

View File

@ -1,7 +1,13 @@
<h1 mat-dialog-title>
<mat-icon class="dialog-header-icon" svgIcon="jira"></mat-icon>
<mat-icon
class="dialog-header-icon"
svgIcon="jira"
></mat-icon>
<span>{{T.F.JIRA.DIALOG_INITIAL.TITLE|translate}}</span>
</h1>
<mat-dialog-content>
<jira-cfg-stepper (saveCfg)="saveJiraCfg($event)" [cfg]="jiraCfg"></jira-cfg-stepper>
<jira-cfg-stepper
(saveCfg)="saveJiraCfg($event)"
[cfg]="jiraCfg"
></jira-cfg-stepper>
</mat-dialog-content>

View File

@ -1,5 +1,8 @@
<h1 mat-dialog-title>
<mat-icon class="dialog-header-icon" svgIcon="jira"></mat-icon>
<mat-icon
class="dialog-header-icon"
svgIcon="jira"
></mat-icon>
<span>{{T.F.JIRA.DIALOG_TRANSITION.TITLE|translate}}</span>
</h1>

View File

@ -1,7 +1,13 @@
<div class="wrapper">
<mat-horizontal-stepper [linear]="true" dynamicHeight>
<mat-horizontal-stepper
[linear]="true"
dynamicHeight
>
<mat-step [stepControl]="credentialsFormGroup">
<form (submit)="saveStepForm(jiraCfg)" [formGroup]="credentialsFormGroup">
<form
(submit)="saveStepForm(jiraCfg)"
[formGroup]="credentialsFormGroup"
>
<ng-template matStepLabel>{{T.F.JIRA.STEPPER.CREDENTIALS|translate}}</ng-template>
<p
@ -15,7 +21,11 @@
[form]="credentialsFormGroup"
[model]="jiraCfg"
>
<div *ngIf="user" [@expand] class="welcome">
<div
*ngIf="user"
[@expand]
class="welcome"
>
<img
[src]="user.avatarUrls && user.avatarUrls['48x48']"
alt="User Avatar"
@ -53,7 +63,10 @@
</mat-step>
<mat-step [stepControl]="advancedSettingsFormGroup">
<form (submit)="saveStepForm(jiraCfg)" [formGroup]="advancedSettingsFormGroup">
<form
(submit)="saveStepForm(jiraCfg)"
[formGroup]="advancedSettingsFormGroup"
>
<ng-template matStepLabel>Advanced</ng-template>
<formly-form
(modelChange)="jiraCfg=$event"
@ -62,7 +75,10 @@
[model]="jiraCfg"
>
<div class="center-wrapper">
<button mat-raised-button matStepperPrevious>
<button
mat-raised-button
matStepperPrevious
>
<mat-icon>arrow_backward</mat-icon>
{{T.G.PREVIOUS|translate}}
</button>
@ -85,11 +101,19 @@
<ng-template matStepLabel>Done</ng-template>
{{T.F.JIRA.STEPPER.DONE|translate}}
<div class="center-wrapper">
<button mat-raised-button matStepperPrevious>
<button
mat-raised-button
matStepperPrevious
>
<mat-icon>arrow_backward</mat-icon>
{{T.G.PREVIOUS|translate}}
</button>
<button (click)="saveConfig()" color="primary" mat-raised-button type="button">
<button
(click)="saveConfig()"
color="primary"
mat-raised-button
type="button"
>
<mat-icon>save</mat-icon>
{{T.G.SAVE|translate}}
</button>

View File

@ -37,7 +37,10 @@
{{T.F.JIRA.CFG_CMP.ENABLE_TRANSITIONS|translate}}
</mat-slide-toggle>
<section *ngIf="cfg.isTransitionIssuesEnabled" @expand>
<section
*ngIf="cfg.isTransitionIssuesEnabled"
@expand
>
<mat-form-field>
<input
[formControl]="issueSuggestionsCtrl"

View File

@ -1,6 +1,14 @@
<ng-container>
<div *ngIf="task?.issueWasUpdated" @expand style="text-align: center">
<button (click)="hideUpdates()" color="accent" mat-raised-button>
<div
*ngIf="task?.issueWasUpdated"
@expand
style="text-align: center"
>
<button
(click)="hideUpdates()"
color="accent"
mat-raised-button
>
{{T.F.OPEN_PROJECT.ISSUE_CONTENT.MARK_AS_CHECKED|translate}}
</button>
</div>
@ -10,7 +18,9 @@
<tr>
<th>{{T.F.OPEN_PROJECT.ISSUE_CONTENT.SUMMARY|translate}}</th>
<td>
<a [href]="issue?.url" target="_blank"
<a
[href]="issue?.url"
target="_blank"
><strong>{{issue?.subject}} #{{issue?.id}}</strong></a
>
</td>
@ -24,7 +34,10 @@
<tr *ngIf="issue?._embedded.status">
<th>{{T.F.OPEN_PROJECT.ISSUE_CONTENT.STATUS|translate}}</th>
<td>
<span class="dot" [style.backgroud-color]="issue?._embedded.status.color"></span
<span
class="dot"
[style.backgroud-color]="issue?._embedded.status.color"
></span
>{{issue?._embedded.status.name}}
</td>
</tr>

View File

@ -1,6 +1,13 @@
<mat-icon *ngIf="task?.issueWasUpdated" color="accent" style="margin-right: 8px"
<mat-icon
*ngIf="task?.issueWasUpdated"
color="accent"
style="margin-right: 8px"
>update
</mat-icon>
<mat-icon *ngIf="!task?.issueWasUpdated" style="margin-right: 8px" svgIcon="open_project">
<mat-icon
*ngIf="!task?.issueWasUpdated"
style="margin-right: 8px"
svgIcon="open_project"
>
</mat-icon>
<span class="tab-label-text">OpenProject</span>

View File

@ -1,9 +1,15 @@
<h1 mat-dialog-title>
<mat-icon class="dialog-header-icon" svgIcon="open_project"></mat-icon>
<mat-icon
class="dialog-header-icon"
svgIcon="open_project"
></mat-icon>
<span>{{T.F.OPEN_PROJECT.DIALOG_INITIAL.TITLE|translate}}</span>
</h1>
<form (submit)="saveOpenProjectCfg(openProjectCfg)" [formGroup]="formGroup">
<form
(submit)="saveOpenProjectCfg(openProjectCfg)"
[formGroup]="formGroup"
>
<mat-dialog-content>
<formly-form
(modelChange)="openProjectCfg=$event"
@ -15,7 +21,12 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button (click)="close()" color="primary" mat-button type="button">
<button
(click)="close()"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>

View File

@ -1,6 +1,13 @@
<form (submit)="postTime()" class="mat-body" name="time-estimate-form">
<form
(submit)="postTime()"
class="mat-body"
name="time-estimate-form"
>
<h1 mat-dialog-title>
<mat-icon class="dialog-header-icon" svgIcon="open_project"></mat-icon>
<mat-icon
class="dialog-header-icon"
svgIcon="open_project"
></mat-icon>
<span>{{T.F.OPEN_PROJECT.DIALOG_TRACK_TIME.TITLE|translate}}</span>
</h1>
@ -8,7 +15,10 @@
<p>
{{T.F.OPEN_PROJECT.DIALOG_TRACK_TIME.SUBMIT_TIME_FOR|translate}}<br />
<strong>
<a [href]="workPackage?.url" target="_blank">
<a
[href]="workPackage?.url"
target="_blank"
>
{{workPackage.id}} {{workPackage.subject}}</a
></strong
>.
@ -37,10 +47,16 @@
[matMenuTriggerFor]="contextMenu"
[matTooltip]="T.F.JIRA.DIALOG_WORKLOG.TIME_SPENT_TOOLTIP|translate"
>
<button mat-icon-button type="button">
<button
mat-icon-button
type="button"
>
<mat-icon style="font-size: 24px">add</mat-icon>
</button>
<button mat-icon-button type="button">
<button
mat-icon-button
type="button"
>
<mat-icon style="font-size: 24px">timer</mat-icon>
</button>
</div>
@ -88,7 +104,10 @@
name="activity"
[placeholder]="T.F.OPEN_PROJECT.DIALOG_TRACK_TIME.ACTIVITY|translate"
>
<mat-option *ngFor="let activity of (activities$|async);" [value]="activity.id">
<mat-option
*ngFor="let activity of (activities$|async);"
[value]="activity.id"
>
{{activity.name}}
</mat-option>
</mat-select>
@ -110,10 +129,19 @@
<mat-dialog-actions align="end">
<div class="wrap-buttons">
<button (click)="close()" color="primary" mat-button type="button">
<button
(click)="close()"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>
<button color="primary" mat-stroked-button type="submit">
<button
color="primary"
mat-stroked-button
type="submit"
>
<mat-icon>save</mat-icon>
{{T.F.OPEN_PROJECT.DIALOG_TRACK_TIME.POST_TIME|translate}}
</button>

View File

@ -7,7 +7,12 @@
<p>{{T.F.METRIC.EVAL_FORM.HELP_P2|translate}}</p>
</help-section>
<form #f="ngForm" *ngIf="metricForDay" name="form" novalidate>
<form
#f="ngForm"
*ngIf="metricForDay"
name="form"
novalidate
>
<div class="row">
<mat-form-field>
<input
@ -89,7 +94,10 @@
*ngIf="(workContextService.isActiveWorkContextProject$|async)"
style="text-align: center; margin-top: 8px; margin-bottom: 16px"
>
<button (click)="addNote()" mat-button>
<button
(click)="addNote()"
mat-button
>
<mat-icon>add</mat-icon>
{{T.F.METRIC.EVAL_FORM.ADD_NOTE_FOR_TOMORROW|translate}}
</button>

View File

@ -1,4 +1,7 @@
<div [@improvementBanner]="improvements.length" class="improvements">
<div
[@improvementBanner]="improvements.length"
class="improvements"
>
<div
*ngFor="let improvement of improvements; trackBy: trackById"
class="improvement"

View File

@ -4,7 +4,12 @@
*ngIf="projectMetricsService.simpleMetrics$|async as sm"
[@fade]
>
<h1 class="mat-h1" style="text-align: center">{{T.PM.TITLE|translate}}</h1>
<h1
class="mat-h1"
style="text-align: center"
>
{{T.PM.TITLE|translate}}
</h1>
<!-- <h2>Basic Metrics</h2>-->
<p><i>{{sm.start}} {{sm.end}}</i></p>
@ -57,11 +62,17 @@
</div>
</section>
<p *ngIf="!(metricService.hasData$|async)" style="margin-top: 32px">
<p
*ngIf="!(metricService.hasData$|async)"
style="margin-top: 32px"
>
{{T.F.METRIC.CMP.NO_ADDITIONAL_DATA_YET|translate}}
</p>
<section *ngIf="(metricService.hasData$|async)" class="metric-metrics">
<section
*ngIf="(metricService.hasData$|async)"
class="metric-metrics"
>
<h1>{{T.F.METRIC.CMP.GLOBAL_METRICS|translate}}</h1>
<section class="pie-charts">
<section
@ -119,7 +130,10 @@
</section>
</section>
<section *ngIf="(metricService.hasData$|async)" class="metric-metrics">
<section
*ngIf="(metricService.hasData$|async)"
class="metric-metrics"
>
<h2>{{T.F.METRIC.CMP.SIMPLE_COUNTERS|translate}}</h2>
<section class="line-charts">
<section *ngIf="(simpleClickCounterData$|async) as simpleCounterClickData">

View File

@ -1,4 +1,9 @@
<div *ngIf="note" [class.isFocused]="isFocus" [class.isImg]="note.imgUrl" class="note">
<div
*ngIf="note"
[class.isFocused]="isFocus"
[class.isImg]="note.imgUrl"
class="note"
>
<img
*ngIf="note.imgUrl"
[enlargeImg]="note.imgUrl"
@ -7,7 +12,10 @@
class="note-img"
/>
<div *ngIf="!note.imgUrl" class="content">
<div
*ngIf="!note.imgUrl"
class="content"
>
<div
(click)="editFullscreen($event)"
markdown
@ -16,19 +24,35 @@
></div>
</div>
<div class="bottom-controls handle-drag" [class.isOver]="note.imgUrl">
<button mat-icon-button (click)="togglePinToToday()" *ngIf="note.projectId">
<div
class="bottom-controls handle-drag"
[class.isOver]="note.imgUrl"
>
<button
mat-icon-button
(click)="togglePinToToday()"
*ngIf="note.projectId"
>
<mat-icon *ngIf="!note.isPinnedToToday">wb_sunny</mat-icon>
<mat-icon *ngIf="note.isPinnedToToday" svgIcon="remove_today"></mat-icon>
<mat-icon
*ngIf="note.isPinnedToToday"
svgIcon="remove_today"
></mat-icon>
</button>
<tag *ngIf="projectTag$|async as projectTag" [tag]="projectTag"></tag>
<tag
*ngIf="projectTag$|async as projectTag"
[tag]="projectTag"
></tag>
<!-- <button mat-icon-button>-->
<!-- <mat-icon class="drag-handle-ico" svgIcon="drag_handle"></mat-icon>-->
<!-- </button>-->
<button [matMenuTriggerFor]="menu" mat-icon-button>
<button
[matMenuTriggerFor]="menu"
mat-icon-button
>
<mat-icon>more_vert</mat-icon>
</button>
</div>
@ -36,7 +60,11 @@
<mat-menu #menu="matMenu">
<ng-template matMenuContent>
<button (click)="toggleLock()" *ngIf="!note.imgUrl" mat-menu-item>
<button
(click)="toggleLock()"
*ngIf="!note.imgUrl"
mat-menu-item
>
<mat-icon *ngIf="note.isLock">lock</mat-icon>
<mat-icon *ngIf="!note.isLock">lock_open</mat-icon>
@ -44,7 +72,10 @@
(T.F.NOTE.NOTE_CMP.DISABLE_PARSE|translate)}}
</button>
<button (click)="removeNote()" mat-menu-item>
<button
(click)="removeNote()"
mat-menu-item
>
<mat-icon style="color: #e15d63">delete_forever</mat-icon>
{{T.G.DELETE|translate}}
</button>

View File

@ -1,11 +1,20 @@
<header>
<button #buttonEl (click)="addNote()" id="add-note-btn" mat-button>
<button
#buttonEl
(click)="addNote()"
id="add-note-btn"
mat-button
>
<mat-icon>add</mat-icon>
{{T.F.NOTE.NOTES_CMP.ADD_BTN|translate}}
</button>
</header>
<div *ngIf="isDragOver" @fade class="bgc-accent drag-over-msg">
<div
*ngIf="isDragOver"
@fade
class="bgc-accent drag-over-msg"
>
<mat-icon>add</mat-icon>
{{T.F.NOTE.NOTES_CMP.DROP_TO_ADD|translate}}
</div>
@ -23,7 +32,10 @@
[note]="note"
></note>
<div class="no-notes-info" *ngIf="notes.length ===0">
<div
class="no-notes-info"
*ngIf="notes.length ===0"
>
{{T.F.NOTE.NOTES_CMP.NO_NOTES|translate}}
</div>
</ng-container>

View File

@ -13,8 +13,17 @@
<div class="timer">{{currentTime$|async|msToMinuteClockString}}</div>
</div>
<div align="center" mat-dialog-actions>
<button (click)="close()" color="primary" mat-button>{{T.G.CLOSE|translate}}</button>
<div
align="center"
mat-dialog-actions
>
<button
(click)="close()"
color="primary"
mat-button
>
{{T.G.CLOSE|translate}}
</button>
<button
(click)="nextSession(true)"
@ -27,7 +36,11 @@
</button>
<ng-container *ngIf="(isBreakDone$|async)">
<button (click)="nextSession()" color="primary" mat-stroked-button>
<button
(click)="nextSession()"
color="primary"
mat-stroked-button
>
<mat-icon>play_arrow</mat-icon>
{{T.F.POMODORO.BACK_TO_WORK|translate}}
</button>

View File

@ -102,7 +102,11 @@
</mat-tab-group>
<div style="text-align: center; margin-top: 32px">
<button color="primary" mat-flat-button routerLink="/work-view">
<button
color="primary"
mat-flat-button
routerLink="/work-view"
>
{{T.F.PROCRASTINATION.BACK_TO_WORK|translate}}
</button>
</div>

View File

@ -3,7 +3,10 @@
<span *ngIf="!projectData.id">{{T.F.PROJECT.D_CREATE.CREATE|translate}}</span>
</h1>
<form (ngSubmit)="submit()" [formGroup]="formTheme">
<form
(ngSubmit)="submit()"
[formGroup]="formTheme"
>
<mat-dialog-content>
<formly-form
(modelChange)="projectData = $event"
@ -16,8 +19,16 @@
<div class="issue-provider-cfg">
<div class="item">
<button (click)="openJiraCfg()" color="primary" mat-button type="button">
<mat-icon *ngIf="!jiraCfg?.isEnabled" svgIcon="jira"></mat-icon>
<button
(click)="openJiraCfg()"
color="primary"
mat-button
type="button"
>
<mat-icon
*ngIf="!jiraCfg?.isEnabled"
svgIcon="jira"
></mat-icon>
<mat-icon *ngIf="jiraCfg?.isEnabled">checkmark</mat-icon>
<span style="padding-left: 8px"
>{{T.F.PROJECT.D_CREATE.SETUP_JIRA|translate}}</span
@ -25,8 +36,16 @@
</button>
</div>
<div class="item">
<button (click)="openGithubCfg()" color="primary" mat-button type="button">
<mat-icon *ngIf="!githubCfg?.isEnabled" svgIcon="github"></mat-icon>
<button
(click)="openGithubCfg()"
color="primary"
mat-button
type="button"
>
<mat-icon
*ngIf="!githubCfg?.isEnabled"
svgIcon="github"
></mat-icon>
<mat-icon *ngIf="githubCfg?.isEnabled">checkmark</mat-icon>
<span style="padding-left: 8px"
>{{T.F.PROJECT.D_CREATE.SETUP_GIT|translate}}</span
@ -34,8 +53,16 @@
</button>
</div>
<div class="item">
<button (click)="openGitlabCfg()" color="primary" mat-button type="button">
<mat-icon *ngIf="!gitlabCfg?.isEnabled" svgIcon="gitlab"></mat-icon>
<button
(click)="openGitlabCfg()"
color="primary"
mat-button
type="button"
>
<mat-icon
*ngIf="!gitlabCfg?.isEnabled"
svgIcon="gitlab"
></mat-icon>
<mat-icon *ngIf="gitlabCfg?.isEnabled">checkmark</mat-icon>
<span style="padding-left: 8px"
>{{T.F.PROJECT.D_CREATE.SETUP_GITLAB|translate}}</span
@ -43,8 +70,16 @@
</button>
</div>
<div class="item">
<button (click)="openCaldavCfg()" color="primary" mat-button type="button">
<mat-icon *ngIf="!caldavCfg?.isEnabled" svgIcon="caldav"></mat-icon>
<button
(click)="openCaldavCfg()"
color="primary"
mat-button
type="button"
>
<mat-icon
*ngIf="!caldavCfg?.isEnabled"
svgIcon="caldav"
></mat-icon>
<mat-icon *ngIf="caldavCfg?.isEnabled">checkmark</mat-icon>
<span style="padding-left: 8px"
>{{T.F.PROJECT.D_CREATE.SETUP_CALDAV|translate}}</span
@ -52,8 +87,16 @@
</button>
</div>
<div class="item">
<button (click)="openOpenProjectCfg()" color="primary" mat-button type="button">
<mat-icon *ngIf="!openProjectCfg?.isEnabled" svgIcon="open_project"></mat-icon>
<button
(click)="openOpenProjectCfg()"
color="primary"
mat-button
type="button"
>
<mat-icon
*ngIf="!openProjectCfg?.isEnabled"
svgIcon="open_project"
></mat-icon>
<mat-icon *ngIf="openProjectCfg?.isEnabled">checkmark</mat-icon>
<span style="padding-left: 8px"
>{{T.F.PROJECT.D_CREATE.SETUP_OPEN_PROJECT|translate}}</span

View File

@ -1,7 +1,13 @@
<h1>{{T.F.QUICK_HISTORY.PAGE_TITLE|translate}}</h1>
<div *ngIf="(worklogService.quickHistoryWeeks$|async) as weeks else spinner" [@fade]>
<div class="no-data" *ngIf="weeks?.length===0">
<div
*ngIf="(worklogService.quickHistoryWeeks$|async) as weeks else spinner"
[@fade]
>
<div
class="no-data"
*ngIf="weeks?.length===0"
>
{{T.F.QUICK_HISTORY.NO_DATA|translate}}
</div>
@ -23,7 +29,9 @@
mat-ripple
>
<div>
<span *ngIf="visibility[i+(j*100)]" [@fade]
<span
*ngIf="visibility[i+(j*100)]"
[@fade]
>{{T.F.WORKLOG.WEEK.TITLE|translate}}</span
>
</div>
@ -51,10 +59,16 @@
class="simple-counter-item"
>
<mat-icon inline="true">{{sc.iconOn || sc.icon}}</mat-icon>
<div *ngIf="sc.type==='ClickCounter'" class="count">
<div
*ngIf="sc.type==='ClickCounter'"
class="count"
>
{{sc.countOnDay[day.value.dateStr] || 0}}
</div>
<div *ngIf="sc.type==='StopWatch'" class="count">
<div
*ngIf="sc.type==='StopWatch'"
class="count"
>
{{sc.countOnDay[day.value.dateStr] || 0|msToMinuteClockString}}
</div>
</div>
@ -63,13 +77,25 @@
</div>
</div>
<div class="with-icon">
<mat-icon *ngIf="visibility[i+(j*100)]" [@fade]>timer </mat-icon>
<mat-icon
*ngIf="visibility[i+(j*100)]"
[@fade]
>timer
</mat-icon>
</div>
</div>
<table *ngIf="visibility[i+(j*100)]" [@expandFade] class="task-summary-table">
<table
*ngIf="visibility[i+(j*100)]"
[@expandFade]
class="task-summary-table"
>
<tr *ngFor="let logEntry of day.value.logEntries; trackBy: trackByLogEntry;">
<td [class.isSubTask]="logEntry.task.parentId" class="title" colspan>
<td
[class.isSubTask]="logEntry.task.parentId"
class="title"
colspan
>
<span class="task-title">{{logEntry.task.title}}</span>
</td>
<td class="worked">

View File

@ -10,7 +10,10 @@
<ng-container better-drawer-side>
<div class="right-panel">
<notes *ngIf="!(selectedTaskWithDelayForNone$|async) " [@slideInFromRight]></notes>
<notes
*ngIf="!(selectedTaskWithDelayForNone$|async) "
[@slideInFromRight]
></notes>
<task-additional-info
[isOver]="isAlwaysOver || (layoutService.isRightPanelOver$|async)"
[@taskAdditionalInfoTaskChange]=" selectedTaskWithDelayForNone?.id"

View File

@ -5,7 +5,10 @@
class="search-form mat-elevation-z4"
>
<div class="input-wrapper">
<div *ngIf="(isLoading$|async)" class="spinner">
<div
*ngIf="(isLoading$|async)"
class="spinner"
>
<mat-spinner diameter="50"></mat-spinner>
</div>
<mat-icon class="search-icon">search</mat-icon>
@ -47,9 +50,15 @@
*ngFor="let item of (filteredIssueSuggestions$|async); trackBy:trackByFn"
[value]="item"
>
<tag *ngIf="item.ctx" [tag]="item.ctx"></tag>
<tag
*ngIf="item.ctx"
[tag]="item.ctx"
></tag>
<span>{{item?.titleHighlighted || item?.title}}</span>
<mat-icon *ngIf="item.issueType" [svgIcon]="item.issueType|issueIcon"></mat-icon>
<mat-icon
*ngIf="item.issueType"
[svgIcon]="item.issueType|issueIcon"
></mat-icon>
<mat-icon *ngIf="!item.isNonArchiveTask">archive</mat-icon>
</mat-option>
</mat-autocomplete>

View File

@ -1,4 +1,7 @@
<div *ngIf="simpleCounter" class="wrapper">
<div
*ngIf="simpleCounter"
class="wrapper"
>
<ng-container *ngIf="simpleCounter.type===SimpleCounterType.StopWatch">
<button
(click)="toggleStopwatch()"
@ -13,7 +16,10 @@
>{{simpleCounter.iconOn||simpleCounter.icon}}</mat-icon
>
</button>
<div *ngIf="simpleCounter.countOnDay[todayStr]" class="label">
<div
*ngIf="simpleCounter.countOnDay[todayStr]"
class="label"
>
{{simpleCounter.countOnDay[todayStr]|msToMinuteClockString}}
</div>
</ng-container>
@ -29,7 +35,10 @@
>
<mat-icon>{{simpleCounter.icon}}</mat-icon>
</button>
<div *ngIf="simpleCounter.countOnDay[todayStr]" class="label">
<div
*ngIf="simpleCounter.countOnDay[todayStr]"
class="label"
>
{{simpleCounter.countOnDay[todayStr]}}
</div>
</ng-container>

View File

@ -1,4 +1,7 @@
<form (ngSubmit)="submit()" [formGroup]="form">
<form
(ngSubmit)="submit()"
[formGroup]="form"
>
<formly-form
(modelChange)="onModelChange($event)"
[fields]="section?.items"

View File

@ -21,7 +21,12 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button (click)="close()" color="primary" mat-stroked-button type="submit">
<button
(click)="close()"
color="primary"
mat-stroked-button
type="submit"
>
<mat-icon>close</mat-icon>
{{T.G.CLOSE|translate}}
</button>

View File

@ -4,7 +4,11 @@
class="tags-container"
>
<div class="tags">
<tag (click)="editTags()" *ngIf=" projectTag" [tag]="projectTag"></tag>
<tag
(click)="editTags()"
*ngIf=" projectTag"
[tag]="projectTag"
></tag>
<tag
(click)="editTags()"
*ngFor="let tag of tags; trackBy: trackByFn"

View File

@ -1,2 +1,6 @@
<mat-icon [style.background]="color" class="tag-ico">{{tag?.icon}}</mat-icon>
<mat-icon
[style.background]="color"
class="tag-ico"
>{{tag?.icon}}</mat-icon
>
<span class="tag-title">{{tag?.title}}</span>

View File

@ -1,4 +1,7 @@
<form (submit)="save()" class="dialog-help-wrapper">
<form
(submit)="save()"
class="dialog-help-wrapper"
>
<h1 mat-dialog-title>
{{isEdit ? (T.F.TASK_REPEAT.D_EDIT.EDIT|translate) :
(T.F.TASK_REPEAT.D_EDIT.ADD|translate)}}
@ -41,7 +44,12 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button (click)="close()" color="primary" mat-button type="button">
<button
(click)="close()"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>

View File

@ -7,7 +7,10 @@
class="add-task-form"
>
<div class="input-wrapper">
<div *ngIf="(isLoading$|async)" class="spinner">
<div
*ngIf="(isLoading$|async)"
class="spinner"
>
<mat-spinner diameter="50"></mat-spinner>
</div>
@ -53,17 +56,26 @@
<div class="info-bar">
<ng-container *ngIf="inputVal.length > 0">
<div *ngIf="!activatedIssueTask && !shortSyntaxTags.length" class="info-text">
<div
*ngIf="!activatedIssueTask && !shortSyntaxTags.length"
class="info-text"
>
{{T.F.TASK.ADD_TASK_BAR.CREATE_TASK|translate}}
</div>
<ng-container *ngIf="activatedIssueTask">
<div *ngIf="activatedIssueTask.issueType" class="info-text">
<div
*ngIf="activatedIssueTask.issueType"
class="info-text"
>
{{T.F.TASK.ADD_TASK_BAR.ADD_ISSUE_TASK|translate:{ issueType:
activatedIssueTask.issueType, issueNr: activatedIssueTask.taskIssueId ||
activatedIssueTask.issueData?.id } }}
</div>
<div *ngIf="activatedIssueTask.issueType=== undefined" class="info-text">
<div
*ngIf="activatedIssueTask.issueType=== undefined"
class="info-text"
>
{{T.F.TASK.ADD_TASK_BAR.ADD_EXISTING_TASK|translate: { taskTitle:
activatedIssueTask.title } }}
</div>
@ -94,9 +106,15 @@
*ngFor="let item of (filteredIssueSuggestions$|async); trackBy:trackByFn"
[value]="item"
>
<mat-icon *ngIf="item.issueType" [svgIcon]="item.issueType|issueIcon"></mat-icon>
<mat-icon
*ngIf="item.issueType"
[svgIcon]="item.issueType|issueIcon"
></mat-icon>
<mat-icon *ngIf="!item.issueType && !item.ctx">library_books</mat-icon>
<tag *ngIf="item.ctx" [tag]="item.ctx"></tag>
<tag
*ngIf="item.ctx"
[tag]="item.ctx"
></tag>
<span [innerHTML]="item?.titleHighlighted||item?.title"></span>
</mat-option>
</mat-autocomplete>

View File

@ -1,6 +1,9 @@
<mat-dialog-content>
<div class="form-wrapper">
<owl-wrapper (triggerSubmit)="save()" [(dateTime)]="dateTime"></owl-wrapper>
<owl-wrapper
(triggerSubmit)="save()"
[(dateTime)]="dateTime"
></owl-wrapper>
<div class="additional-controls">
<mat-form-field>
@ -19,9 +22,18 @@
</mat-select>
</mat-form-field>
<div *ngIf="isShowMoveToBacklog" class="move-to-backlog-wrapper">
<mat-checkbox [(ngModel)]="isMoveToBacklog" name="isListSubTasks">
<div class="text-wrap" style="max-width: 280px">
<div
*ngIf="isShowMoveToBacklog"
class="move-to-backlog-wrapper"
>
<mat-checkbox
[(ngModel)]="isMoveToBacklog"
name="isListSubTasks"
>
<div
class="text-wrap"
style="max-width: 280px"
>
{{T.F.TASK.D_REMINDER_ADD.MOVE_TO_BACKLOG|translate}}
</div>
</mat-checkbox>

View File

@ -1,10 +1,16 @@
<div class="dialog-help-wrapper">
<h1 mat-dialog-title>{{T.F.TASK.D_TIME_FOR_DAY.TITLE|translate}}</h1>
<form (submit)="submit()" name="addForAnotherDayForm">
<form
(submit)="submit()"
name="addForAnotherDayForm"
>
<mat-dialog-content>
<help-section>
<div [innerHTML]="T.F.TASK.D_TIME_FOR_DAY.HELP|translate" class="side-info"></div>
<div
[innerHTML]="T.F.TASK.D_TIME_FOR_DAY.HELP|translate"
class="side-info"
></div>
</help-section>
<h3 class="mat-caption">
@ -22,7 +28,10 @@
type="text"
/>
<mat-error>{{T.V.E_DATETIME|translate}}</mat-error>
<mat-datepicker-toggle [for]="myDatepicker" matPrefix></mat-datepicker-toggle>
<mat-datepicker-toggle
[for]="myDatepicker"
matPrefix
></mat-datepicker-toggle>
<mat-datepicker #myDatepicker></mat-datepicker>
</mat-form-field>
@ -36,11 +45,20 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button [mat-dialog-close]="true" color="primary" mat-button type="button">
<button
[mat-dialog-close]="true"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>
<button color="primary" mat-stroked-button type="submit">
<button
color="primary"
mat-stroked-button
type="submit"
>
<mat-icon>save</mat-icon>
{{T.G.SAVE|translate}}
</button>

View File

@ -1,10 +1,17 @@
<div class="dialog-help-wrapper">
<h1 mat-dialog-title>{{T.F.TASK.D_TIME.TITLE|translate}}</h1>
<form (submit)="submit()" class="mat-body" name="time-estimate-form">
<form
(submit)="submit()"
class="mat-body"
name="time-estimate-form"
>
<mat-dialog-content>
<help-section>
<div [innerHTML]="T.F.TASK.D_TIME_FOR_DAY.HELP|translate" class="side-info"></div>
<div
[innerHTML]="T.F.TASK.D_TIME_FOR_DAY.HELP|translate"
class="side-info"
></div>
</help-section>
<div class="wrap-time">
@ -61,11 +68,21 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button [mat-dialog-close]="true" color="primary" mat-button type="button">
<button
[mat-dialog-close]="true"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>
<button (click)="submit()" color="primary" mat-stroked-button type="submit">
<button
(click)="submit()"
color="primary"
mat-stroked-button
type="submit"
>
<mat-icon>save</mat-icon>
{{T.G.SAVE|translate}}
</button>

View File

@ -8,8 +8,14 @@
</h1>
<mat-dialog-content>
<div [@standardList]="tasks.length" class="tasks">
<div *ngFor="let task of tasks; trackBy:trackById " class="task">
<div
[@standardList]="tasks.length"
class="tasks"
>
<div
*ngFor="let task of tasks; trackBy:trackById "
class="task"
>
<div class="title-wrapper">
<div class="title">{{task.title}}</div>
<tag-list
@ -18,7 +24,10 @@
[task]="task"
></tag-list>
</div>
<div *ngIf="isMultiple" class="actions">
<div
*ngIf="isMultiple"
class="actions"
>
<button
(click)="dismiss(task)"
[title]="T.G.DISMISS|translate"
@ -52,15 +61,24 @@
</button>
<mat-menu #snoozeMenu="matMenu">
<button (click)="snooze(task,10)" mat-menu-item>
<button
(click)="snooze(task,10)"
mat-menu-item
>
<mat-icon>snooze</mat-icon>
{{T.G.MINUTES|translate:{m: 10} }}
</button>
<button (click)="snooze(task,30)" mat-menu-item>
<button
(click)="snooze(task,30)"
mat-menu-item
>
<mat-icon>snooze</mat-icon>
{{T.G.MINUTES|translate:{m: 30} }}
</button>
<button (click)="snooze(task,60)" mat-menu-item>
<button
(click)="snooze(task,60)"
mat-menu-item
>
<mat-icon>snooze</mat-icon>
{{T.G.MINUTES|translate:{m: 60} }}
</button>
@ -72,11 +90,17 @@
<mat-icon>schedule</mat-icon>
{{T.F.TASK.D_REMINDER_VIEW.RESCHEDULE_UNTIL_TOMORROW|translate}}
</button>
<button (click)="dismiss(task)" mat-menu-item>
<button
(click)="dismiss(task)"
mat-menu-item
>
<mat-icon>alarm_off</mat-icon>
{{T.G.DISMISS|translate}}
</button>
<button (click)="editReminder(task)" mat-menu-item>
<button
(click)="editReminder(task)"
mat-menu-item
>
<mat-icon>edit</mat-icon>
{{T.G.EDIT|translate}}
</button>
@ -141,15 +165,27 @@
</mat-dialog-actions>
<mat-menu #snoozeAllMenu="matMenu">
<button (click)="snoozeAll(10)" [disabled]="isDisableControls" mat-menu-item>
<button
(click)="snoozeAll(10)"
[disabled]="isDisableControls"
mat-menu-item
>
<mat-icon>snooze</mat-icon>
{{T.G.MINUTES|translate:{m: 10} }}
</button>
<button (click)="snoozeAll(30)" [disabled]="isDisableControls" mat-menu-item>
<button
(click)="snoozeAll(30)"
[disabled]="isDisableControls"
mat-menu-item
>
<mat-icon>snooze</mat-icon>
{{T.G.MINUTES|translate:{m: 30} }}
</button>
<button (click)="snoozeAll(60)" [disabled]="isDisableControls" mat-menu-item>
<button
(click)="snoozeAll(60)"
[disabled]="isDisableControls"
mat-menu-item
>
<mat-icon>snooze</mat-icon>
{{T.G.MINUTES|translate:{m: 60} }}
</button>
@ -161,11 +197,19 @@
<mat-icon>schedule</mat-icon>
{{T.F.TASK.D_REMINDER_VIEW.RESCHEDULE_UNTIL_TOMORROW|translate}}
</button>
<button (click)="editReminder(tasks[0], true)" *ngIf="!isMultiple" mat-menu-item>
<button
(click)="editReminder(tasks[0], true)"
*ngIf="!isMultiple"
mat-menu-item
>
<mat-icon>edit</mat-icon>
{{T.F.TASK.D_REMINDER_VIEW.RESCHEDULE_EDIT|translate}}
</button>
<button (click)="dismissAll()" [disabled]="isDisableControls" mat-menu-item>
<button
(click)="dismissAll()"
[disabled]="isDisableControls"
mat-menu-item
>
<mat-icon>alarm_off</mat-icon>
{{(isMultiple ? T.F.TASK.D_REMINDER_VIEW.DISMISS_ALL : T.G.DISMISS)|translate}}
</button>

View File

@ -7,20 +7,37 @@
matInput
required
/>
<mat-icon *ngIf="!isCreate" matSuffix="">track_changes </mat-icon>
<mat-icon *ngIf="isCreate" matSuffix="">add </mat-icon>
<mat-icon
*ngIf="!isCreate"
matSuffix=""
>track_changes
</mat-icon>
<mat-icon
*ngIf="isCreate"
matSuffix=""
>add
</mat-icon>
<mat-autocomplete
#auto="matAutocomplete"
[autoActiveFirstOption]="true"
[displayWith]="displayWith"
>
<mat-option *ngFor="let task of filteredTasks; trackBy:trackById" [value]="task">
<mat-icon *ngIf="task.issueType" [svgIcon]="task.issueType|issueIcon"></mat-icon>
<mat-option
*ngFor="let task of filteredTasks; trackBy:trackById"
[value]="task"
>
<mat-icon
*ngIf="task.issueType"
[svgIcon]="task.issueType|issueIcon"
></mat-icon>
<mat-icon *ngIf="!task.issueType && !projectMap[task.projectId]"
>library_books
</mat-icon>
<tag *ngIf="projectMap[task.projectId]" [tag]="projectMap[task.projectId]"></tag>
<tag
*ngIf="projectMap[task.projectId]"
[tag]="projectMap[task.projectId]"
></tag>
<span [innerHTML]="task.title"></span>
</mat-option>
</mat-autocomplete>

View File

@ -1,5 +1,9 @@
<ng-container *ngIf="type==='input'">
<section (click)="onInputItemClick()" class="input-item" mat-ripple>
<section
(click)="onInputItemClick()"
class="input-item"
mat-ripple
>
<div class="input-item__title">
<ng-content select="[input-title]"></ng-content>
</div>
@ -7,7 +11,11 @@
<ng-content select="[input-value]"></ng-content>
</div>
<button class="input-item__edit-btn" color="accent" mat-icon-button>
<button
class="input-item__edit-btn"
color="accent"
mat-icon-button
>
<mat-icon>{{inputIcon}}</mat-icon>
</button>

View File

@ -1,5 +1,8 @@
<div class="wrapper">
<header *ngIf="isOver|| IS_TOUCH_ONLY" class="task-title-wrapper">
<header
*ngIf="isOver|| IS_TOUCH_ONLY"
class="task-title-wrapper"
>
<h2
(editFinished)="updateTaskTitleIfChanged($event.isChanged, $event.newVal)"
[isResetAfterEdit]="true"
@ -30,7 +33,10 @@
</ng-container>
<ng-container panel-content>
<div *ngIf="task.subTasks && task.subTasks.length" class="sub-tasks">
<div
*ngIf="task.subTasks && task.subTasks.length"
class="sub-tasks"
>
<task-list
*ngIf="task.subTasks?.length"
[@expand]
@ -43,7 +49,10 @@
></task-list>
</div>
<div style="text-align: center">
<button (click)="addSubTask()" mat-button>
<button
(click)="addSubTask()"
mat-button
>
<mat-icon>add</mat-icon>
<span>{{T.F.TASK.ADDITIONAL_INFO.ADD_SUB_TASK|translate}}</span>
</button>
@ -89,7 +98,10 @@
<span [innerHTML]="task.timeSpent|msToString"></span>
</span>
<span class="separator">/</span>
<span [innerHTML]="task.timeEstimate|msToString" class="time-val"></span>
<span
[innerHTML]="task.timeEstimate|msToString"
class="time-val"
></span>
<ng-container input-additional>
<progress-bar [progress]="progress"></progress-bar>
@ -217,7 +229,10 @@
></task-attachment-list>
<div style="text-align: center">
<button (click)="addAttachment()" mat-button>
<button
(click)="addAttachment()"
mat-button
>
<mat-icon>add</mat-icon>
<span>{{T.F.TASK.ADDITIONAL_INFO.ADD_ATTACHMENT|translate}}</span>
</button>
@ -267,7 +282,10 @@
<div class="created">Created on {{task?.created|date:'short'}}</div>
</div>
<div *ngIf="isDragOver" class="bgc-accent drag-over-msg">
<div
*ngIf="isDragOver"
class="bgc-accent drag-over-msg"
>
<mat-icon>add</mat-icon>
{{T.F.TASK.CMP.DROP_ATTACHMENT|translate:{title: task?.title} }}
</div>

View File

@ -1,4 +1,7 @@
<form #form="ngForm" (submit)="submit()">
<form
#form="ngForm"
(submit)="submit()"
>
<h1 mat-dialog-title>
{{ (attachmentCopy.id ? (T.F.ATTACHMENT.DIALOG_EDIT.EDIT_ATTACHMENT) :
(T.F.ATTACHMENT.DIALOG_EDIT.ADD_ATTACHMENT)) |translate }}
@ -46,11 +49,21 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button (click)="close()" color="primary" mat-button type="button">
<button
(click)="close()"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>
<button [disabled]="!form.valid" color="primary" mat-stroked-button type="submit">
<button
[disabled]="!form.valid"
color="primary"
mat-stroked-button
type="submit"
>
<mat-icon>save</mat-icon>
{{T.G.SAVE|translate}}
</button>

View File

@ -1,4 +1,7 @@
<ul [@standardList]="attachments?.length" class="attachments">
<ul
[@standardList]="attachments?.length"
class="attachments"
>
<li
*ngFor="let attachment of attachments; let i = index; trackBy: trackByFn;"
class="attachment"
@ -27,7 +30,10 @@
</ng-container>
</a>
<div *ngIf="!isDisableControls" class="controls border-color-primary">
<div
*ngIf="!isDisableControls"
class="controls border-color-primary"
>
<a
class="view-btn"
mat-flat-button
@ -50,10 +56,18 @@
<mat-icon>content_copy</mat-icon>
</button>
<button (click)="openEditDialog(attachment)" class="edit-btn" mat-flat-button>
<button
(click)="openEditDialog(attachment)"
class="edit-btn"
mat-flat-button
>
<mat-icon>edit</mat-icon>
</button>
<button (click)="remove(attachment?.id)" class="trash-btn" mat-flat-button>
<button
(click)="remove(attachment?.id)"
class="trash-btn"
mat-flat-button
>
<mat-icon color="warn">delete_forever</mat-icon>
</button>
</div>

View File

@ -1,5 +1,13 @@
<div *ngIf="isHideDoneIN || isHideAllIN" @expandFadeFast class="done-task-box">
<button (click)="expandDoneTasks()" class="expand-tasks-btn" mat-button>
<div
*ngIf="isHideDoneIN || isHideAllIN"
@expandFadeFast
class="done-task-box"
>
<button
(click)="expandDoneTasks()"
class="expand-tasks-btn"
mat-button
>
<!--TODO translate -->
<em>+ {{isHideDoneIN ? doneTasksLength + ' done ' : allTasksLength}} sub tasks</em>
<mat-icon>expand_more</mat-icon>
@ -22,4 +30,9 @@
</task>
</div>
<div *ngIf="noTasksMsg && !allTasksLength" class="no-tasks">{{noTasksMsg}}</div>
<div
*ngIf="noTasksMsg && !allTasksLength"
class="no-tasks"
>
{{noTasksMsg}}
</div>

View File

@ -1,14 +1,30 @@
<div class="table-wrapper mat-elevation-z1">
<table [dataSource]="flatTasks" class="summary-table" mat-table>
<table
[dataSource]="flatTasks"
class="summary-table"
mat-table
>
<ng-container matColumnDef="title">
<th *matHeaderCellDef mat-header-cell>{{T.F.TASK.SUMMARY_TABLE.TASK|translate}}</th>
<td *matCellDef="let task" mat-cell>
<th
*matHeaderCellDef
mat-header-cell
>
{{T.F.TASK.SUMMARY_TABLE.TASK|translate}}
</th>
<td
*matCellDef="let task"
mat-cell
>
<div
[class.isDone]="task.isDone"
[class.isSubTask]="task.parentId"
class="task-title"
>
<mat-icon *ngIf="task.repeatCfgId" class="repeat-task-icon">repeat </mat-icon>
<mat-icon
*ngIf="task.repeatCfgId"
class="repeat-task-icon"
>repeat
</mat-icon>
<span *ngIf="task.parentId"></span>
<inline-input
(changed)="updateTaskTitle(task, $event)"
@ -21,10 +37,16 @@
</ng-container>
<ng-container matColumnDef="timeSpentToday">
<th *matHeaderCellDef mat-header-cell>
<th
*matHeaderCellDef
mat-header-cell
>
{{T.F.TASK.SUMMARY_TABLE.SPENT_TODAY|translate}}
</th>
<td *matCellDef="let task" mat-cell>
<td
*matCellDef="let task"
mat-cell
>
<inline-input
(changed)="updateTimeSpentTodayForTask(task, $event)"
*ngIf="!task.subTaskIds?.length"
@ -40,22 +62,44 @@
</ng-container>
<ng-container matColumnDef="timeSpentTotal">
<th *matHeaderCellDef mat-header-cell>
<th
*matHeaderCellDef
mat-header-cell
>
{{T.F.TASK.SUMMARY_TABLE.SPENT_TOTAL|translate}}
</th>
<td *matCellDef="let task" mat-cell>{{task.timeSpent|msToClockString}}</td>
<td
*matCellDef="let task"
mat-cell
>
{{task.timeSpent|msToClockString}}
</td>
</ng-container>
<ng-container matColumnDef="timeEstimate">
<th *matHeaderCellDef mat-header-cell>
<th
*matHeaderCellDef
mat-header-cell
>
{{T.F.TASK.SUMMARY_TABLE.ESTIMATE|translate}}
</th>
<td *matCellDef="let task" mat-cell>{{task.timeEstimate|msToClockString}}</td>
<td
*matCellDef="let task"
mat-cell
>
{{task.timeEstimate|msToClockString}}
</td>
</ng-container>
<ng-container matColumnDef="done">
<th *matHeaderCellDef mat-header-cell></th>
<td *matCellDef="let task" mat-cell>
<th
*matHeaderCellDef
mat-header-cell
></th>
<td
*matCellDef="let task"
mat-cell
>
<button
(click)="toggleTaskDone(task)"
[class.isDone]="task.isDone"
@ -63,8 +107,16 @@
class="check-done"
mat-icon-button
>
<mat-icon aria-label="Mark as undone" class="undo">undo </mat-icon>
<mat-icon aria-label="Mark as done" class="check">check </mat-icon>
<mat-icon
aria-label="Mark as undone"
class="undo"
>undo
</mat-icon>
<mat-icon
aria-label="Mark as done"
class="check"
>check
</mat-icon>
</button>
</td>
</ng-container>

View File

@ -34,32 +34,57 @@
<mat-icon>restore</mat-icon>
{{T.PDS.ROUND_TIME_SPENT|translate}}
</button>
<button (click)="showExportModal(project.id)" *ngIf="isForToday" mat-button>
<button
(click)="showExportModal(project.id)"
*ngIf="isForToday"
mat-button
>
<mat-icon>call_made</mat-icon>
{{T.PDS.EXPORT_TASK_LIST|translate}}
</button>
<mat-menu #roundTimeActions="matMenu">
<ng-template matMenuContent>
<button mat-menu-item style="color: red">
<button
mat-menu-item
style="color: red"
>
{{T.PDS.ROUND_TIME_WARNING|translate}}
</button>
<button (click)="roundTimeForTasks(project.id,'5M')" mat-menu-item>
<button
(click)="roundTimeForTasks(project.id,'5M')"
mat-menu-item
>
{{T.PDS.ROUND_5M|translate}}
</button>
<button (click)="roundTimeForTasks(project.id,'5M', true)" mat-menu-item>
<button
(click)="roundTimeForTasks(project.id,'5M', true)"
mat-menu-item
>
{{T.PDS.ROUND_UP_5M|translate}}
</button>
<button (click)="roundTimeForTasks(project.id,'QUARTER')" mat-menu-item>
<button
(click)="roundTimeForTasks(project.id,'QUARTER')"
mat-menu-item
>
{{T.PDS.ROUND_15M|translate}}
</button>
<button (click)="roundTimeForTasks(project.id,'QUARTER', true)" mat-menu-item>
<button
(click)="roundTimeForTasks(project.id,'QUARTER', true)"
mat-menu-item
>
{{T.PDS.ROUND_UP_15M|translate}}
</button>
<button (click)="roundTimeForTasks(project.id,'HALF')" mat-menu-item>
<button
(click)="roundTimeForTasks(project.id,'HALF')"
mat-menu-item
>
{{T.PDS.ROUND_30M|translate}}
</button>
<button (click)="roundTimeForTasks(project.id,'HALF', true)" mat-menu-item>
<button
(click)="roundTimeForTasks(project.id,'HALF', true)"
mat-menu-item
>
{{T.PDS.ROUND_UP_30M|translate}}
</button>
</ng-template>

View File

@ -1,14 +1,23 @@
<ng-container *ngIf="IS_TOUCH_ONLY">
<div #blockLeftEl class="block-left bg-400">
<div
#blockLeftEl
class="block-left bg-400"
>
<mat-icon *ngIf="!task.isDone">check</mat-icon>
<mat-icon *ngIf="task.isDone">undo</mat-icon>
</div>
<div #blockRightEl class="block-right bg-400">
<div
#blockRightEl
class="block-right bg-400"
>
<!--NOTE: non observable should be enough as we only need the initial value-->
<ng-container *ngIf="workContextService.isToday">
<mat-icon *ngIf="!(task.repeatCfgId)">alarm</mat-icon>
<mat-icon *ngIf="(task.repeatCfgId)" svgIcon="repeat"></mat-icon>
<mat-icon
*ngIf="(task.repeatCfgId)"
svgIcon="repeat"
></mat-icon>
</ng-container>
<ng-container *ngIf="!workContextService.isToday">
<mat-icon *ngIf="!task.tagIds.includes(TODAY_TAG_ID)">wb_sunny</mat-icon>
@ -20,7 +29,10 @@
</div>
</ng-container>
<div #innerWrapperEl class="inner-wrapper">
<div
#innerWrapperEl
class="inner-wrapper"
>
<div
#contextMenuTriggerEl
[matMenuTriggerFor]="contextMenu"
@ -57,8 +69,16 @@
class="check-done"
mat-icon-button
>
<mat-icon @swirl class="undo">undo </mat-icon>
<mat-icon @swirl class="check">check </mat-icon>
<mat-icon
@swirl
class="undo"
>undo
</mat-icon>
<mat-icon
@swirl
class="check"
>check
</mat-icon>
</button>
<div class="title-and-left-btns-wrapper">
@ -67,8 +87,15 @@
[class.handle-sub]="task.parentId"
class="drag-handle"
>
<mat-icon class="drag-handle-ico" svgIcon="drag_handle"></mat-icon>
<mat-icon *ngIf="isCurrent" class="play-icon-indicator">play_arrow </mat-icon>
<mat-icon
class="drag-handle-ico"
svgIcon="drag_handle"
></mat-icon>
<mat-icon
*ngIf="isCurrent"
class="play-icon-indicator"
>play_arrow
</mat-icon>
<div class="type-ico-wrapper">
<mat-icon
@ -79,8 +106,14 @@
>
</mat-icon>
<div *ngIf="task.issueId" class="task-type-ico">
<div *ngIf="task.issuePoints" class="mini-badge bgc-primary">
<div
*ngIf="task.issueId"
class="task-type-ico"
>
<div
*ngIf="task.issuePoints"
class="mini-badge bgc-primary"
>
{{task.issuePoints}}
</div>
<mat-icon [svgIcon]="task.issueType|issueIcon"></mat-icon>
@ -92,7 +125,10 @@
(click)="IS_TOUCH_ONLY && toggleShowAdditionalInfoOpen($event)"
class="title-and-tags-wrapper"
>
<div class="parent-title" *ngIf="isShowParentTitle && task.parentId">
<div
class="parent-title"
*ngIf="isShowParentTitle && task.parentId"
>
<div
class="dot"
*ngIf="(projectColor$|async) as projectColor"
@ -113,7 +149,10 @@
<div class="task-title show-only-on-touch-only">{{task.title}}</div>
<tag-list *ngIf="!task.parentId || isDev" [task]="task"></tag-list>
<tag-list
*ngIf="!task.parentId || isDev"
[task]="task"
></tag-list>
</div>
</div>
@ -124,15 +163,24 @@
[class.isEditable]="!task.subTasks?.length"
class="time-wrapper"
>
<div *ngIf="!task.subTasks?.length" class="time">
<div
*ngIf="!task.subTasks?.length"
class="time"
>
<div class="time-val">
<span [innerHTML]="task.timeSpent|msToString"></span>
</div>
<div class="separator">/</div>
<div [innerHTML]="task.timeEstimate|msToString" class="time-val"></div>
<div
[innerHTML]="task.timeEstimate|msToString"
class="time-val"
></div>
</div>
<div *ngIf="task.subTasks?.length" class="time">
<div
*ngIf="task.subTasks?.length"
class="time"
>
<div class="time-val">
<span></span>
<span [innerHTML]="task.subTasks|subTaskTotalTimeSpent|msToString"></span>
@ -146,7 +194,10 @@
</div>
<div class="controls">
<div *ngIf="isFirstLineHover && !IS_TOUCH_ONLY" class="hover-controls">
<div
*ngIf="isFirstLineHover && !IS_TOUCH_ONLY"
class="hover-controls"
>
<button
(click)="startTask()"
*ngIf="!task.isDone && !isCurrent && !task.subTasks?.length"
@ -155,7 +206,10 @@
color=""
mat-icon-button
>
<mat-icon class="play-icon" svgIcon="play"></mat-icon>
<mat-icon
class="play-icon"
svgIcon="play"
></mat-icon>
</button>
<button
@ -213,7 +267,11 @@
<mat-icon *ngIf="!task.issueWasUpdated">&#xe949;</mat-icon>
<!-- <mat-icon *ngIf="!task.issueWasUpdated">toc</mat-icon>-->
<!-- <mat-icon *ngIf="!task.issueWasUpdated">chevron_right</mat-icon>-->
<mat-icon *ngIf="task.issueWasUpdated" color="accent">update </mat-icon>
<mat-icon
*ngIf="task.issueWasUpdated"
color="accent"
>update
</mat-icon>
</button>
</div>
@ -251,20 +309,29 @@
>
<mat-icon *ngIf="!task.issueWasUpdated && !isSelected">chat</mat-icon>
<mat-icon *ngIf="!task.issueWasUpdated && isSelected">close</mat-icon>
<mat-icon *ngIf="task.issueWasUpdated" class="updated-icon" color="accent"
<mat-icon
*ngIf="task.issueWasUpdated"
class="updated-icon"
color="accent"
>update
</mat-icon>
</button>
</div>
<mat-menu #contextMenu="matMenu" (close)="focusSelf()">
<mat-menu
#contextMenu="matMenu"
(close)="focusSelf()"
>
<ng-template matMenuContent>
<button
(click)="startTask()"
*ngIf="IS_TOUCH_ONLY && !task.isDone && !isCurrent && !task.subTasks?.length"
mat-menu-item
>
<mat-icon class="play-icon" svgIcon="play"></mat-icon>
<mat-icon
class="play-icon"
svgIcon="play"
></mat-icon>
{{T.F.TASK.CMP.TRACK_TIME|translate}}
</button>
<button
@ -295,7 +362,10 @@
{{T.F.TASK.CMP.OPEN_TIME|translate}}
</button>
<button (click)="editReminder()" mat-menu-item>
<button
(click)="editReminder()"
mat-menu-item
>
<ng-container *ngIf="!task.reminderId">
<mat-icon>alarm_add</mat-icon>
{{T.F.TASK.CMP.SCHEDULE|translate}}
@ -315,7 +385,11 @@
{{T.F.TASK.CMP.ADD_SUB_TASK|translate}}
</button>
<button (click)="addAttachment();" class="hide-xs" mat-menu-item>
<button
(click)="addAttachment();"
class="hide-xs"
mat-menu-item
>
<mat-icon>attachment</mat-icon>
{{T.F.TASK.CMP.OPEN_ATTACH|translate}}
</button>
@ -332,7 +406,11 @@
{{T.F.TASK.CMP.OPEN_ISSUE|translate}}
</a>
<button (click)="updateIssueData()" *ngIf="task.issueId" mat-menu-item>
<button
(click)="updateIssueData()"
*ngIf="task.issueId"
mat-menu-item
>
<mat-icon [svgIcon]="task.issueType|issueIcon"></mat-icon>
{{T.F.TASK.CMP.UPDATE_ISSUE_DATA|translate}}
</button>
@ -355,7 +433,11 @@
{{T.F.TASK.CMP.MOVE_TO_TODAY|translate}}
</button>
<button (click)="editTags();" *ngIf="!task.parentId" mat-menu-item>
<button
(click)="editTags();"
*ngIf="!task.parentId"
mat-menu-item
>
<mat-icon>style</mat-icon>
{{T.F.TASK.CMP.EDIT_TAGS|translate}}
</button>
@ -370,12 +452,20 @@
T.F.TASK.CMP.ADD_TO_PROJECT)|translate}}
</button>
<button *ngIf="task.parentId" (click)="convertToMainTask()" mat-menu-item>
<button
*ngIf="task.parentId"
(click)="convertToMainTask()"
mat-menu-item
>
<mat-icon>subdirectory_arrow_left</mat-icon>
{{(T.F.TASK.CMP.CONVERT_TO_PARENT_TASK)|translate}}
</button>
<button (click)="deleteTask(true)" class="color-warn" mat-menu-item>
<button
(click)="deleteTask(true)"
class="color-warn"
mat-menu-item
>
<mat-icon class="color-warn-i">delete_forever</mat-icon>
{{(task.repeatCfgId ? T.F.TASK.CMP.DELETE_REPEAT_INSTANCE :
T.F.TASK.CMP.DELETE)|translate}}
@ -383,7 +473,10 @@
</ng-template>
</mat-menu>
<mat-menu #projectMenu="matMenu" (closed)="focusSelf()">
<mat-menu
#projectMenu="matMenu"
(closed)="focusSelf()"
>
<ng-template matMenuContent>
<button
(click)="moveTaskToProject(project.id)"
@ -404,7 +497,10 @@
[progress]="progress"
></progress-bar>
<div *ngIf="task.subTasks?.length" class="sub-tasks">
<div
*ngIf="task.subTasks?.length"
class="sub-tasks"
>
<button
(click)="toggleSubTaskMode()"
*ngIf="task.subTasks?.length"
@ -434,7 +530,10 @@
></task-list>
</div>
<div *ngIf="isDragOver" class="bgc-accent drag-over-msg">
<div
*ngIf="isDragOver"
class="bgc-accent drag-over-msg"
>
<mat-icon>add</mat-icon>
{{T.F.TASK.CMP.DROP_ATTACHMENT|translate:{title: task.title} }}
</div>

View File

@ -3,9 +3,15 @@
<span style="margin-left: 8px">{{T.F.TIMELINE.D_INITIAL.TITLE|translate}}</span>
</h1>
<form (submit)="saveAndClose()" [formGroup]="formGroup">
<form
(submit)="saveAndClose()"
[formGroup]="formGroup"
>
<mat-dialog-content>
<div class="text" [innerHTML]="T.F.TIMELINE.D_INITIAL.TEXT|translate"></div>
<div
class="text"
[innerHTML]="T.F.TIMELINE.D_INITIAL.TEXT|translate"
></div>
<formly-form
(modelChange)="timelineCfg=$event"
@ -17,7 +23,12 @@
</mat-dialog-content>
<mat-dialog-actions align="end">
<button (click)="close()" color="primary" mat-button type="button">
<button
(click)="close()"
color="primary"
mat-button
type="button"
>
{{T.G.CANCEL|translate}}
</button>

View File

@ -1,4 +1,8 @@
<div *ngIf="repeatCfg" class="repeat-task-projection" (click)="editTaskRepeatCfg()">
<div
*ngIf="repeatCfg"
class="repeat-task-projection"
(click)="editTaskRepeatCfg()"
>
<mat-icon svgIcon="repeat"></mat-icon>
<div class="title">
{{repeatCfg.title}}

View File

@ -1,12 +1,24 @@
<right-panel *ngIf="timelineEntries$|async as timelineEntries">
<div class="wrapper">
<div class="inner-wrapper" [@standardList]="timelineEntries.length">
<div *ngIf="!timelineEntries.length" class="no-tasks-msg">
<div
class="inner-wrapper"
[@standardList]="timelineEntries.length"
>
<div
*ngIf="!timelineEntries.length"
class="no-tasks-msg"
>
{{T.F.TIMELINE.NO_TASKS|translate}}
</div>
<div class="row" *ngFor="let row of timelineEntries; trackBy: trackByFn">
<div class="col time" [class.hasTime]="!row.isHideTime">
<div
class="row"
*ngFor="let row of timelineEntries; trackBy: trackByFn"
>
<div
class="col time"
[class.hasTime]="!row.isHideTime"
>
<div *ngIf="!row.isHideTime">
<div>
{{ row.start <= now ? (T.F.TIMELINE.NOW|translate) :
@ -21,10 +33,16 @@
*ngIf="(row.type ===TimelineViewEntryType.Task || row.type ===TimelineViewEntryType.SplitTask) && row.data.id !== (taskService.currentTaskId$|async)"
class="up-down"
>
<button mat-icon-button (click)="moveUp(row.data)">
<button
mat-icon-button
(click)="moveUp(row.data)"
>
<mat-icon>arrow_upward</mat-icon>
</button>
<button mat-icon-button (click)="moveDown(row.data)">
<button
mat-icon-button
(click)="moveDown(row.data)"
>
<mat-icon>arrow_downward</mat-icon>
</button>
</div>
@ -33,12 +51,19 @@
*ngIf="(row.type ===TimelineViewEntryType.ScheduledTask)"
class="scheduled-extra-btn"
>
<button mat-mini-fab (click)="editTaskReminder(row.data)" color="primary">
<button
mat-mini-fab
(click)="editTaskReminder(row.data)"
color="primary"
>
<mat-icon>alarm</mat-icon>
</button>
</div>
</div>
<div class="col right" [ngSwitch]="row.type">
<div
class="col right"
[ngSwitch]="row.type"
>
<task
*ngSwitchCase="TimelineViewEntryType.Task"
showParentTitle="yes"

View File

@ -1,5 +1,8 @@
<form (submit)="track()">
<div class="dialog-content" mat-dialog-content>
<div
class="dialog-content"
mat-dialog-content
>
<p>{{T.F.TIME_TRACKING.D_TRACKING_REMINDER.UNTRACKED_TIME|translate}}</p>
<div class="time">{{data.remindCounter$|async|msToString:true}}</div>
@ -20,8 +23,16 @@
</div>
</div>
<div align="center" mat-dialog-actions>
<button (click)="cancel()" color="" mat-button type="button">
<div
align="center"
mat-dialog-actions
>
<button
(click)="cancel()"
color=""
mat-button
type="button"
>
<mat-icon>close</mat-icon>
{{T.G.CANCEL|translate}}
</button>

View File

@ -3,7 +3,10 @@
<mat-dialog-content>
<p>{{T.F.WELCOME.D_WELCOME.T1|translate}}</p>
<p *ngIf="IS_TOUCH_ONLY" [innerHTML]="T.F.WELCOME.D_WELCOME.MOBILE_INFO|translate"></p>
<p
*ngIf="IS_TOUCH_ONLY"
[innerHTML]="T.F.WELCOME.D_WELCOME.MOBILE_INFO|translate"
></p>
<p>{{T.F.WELCOME.D_WELCOME.T2|translate}}</p>
<ul>

View File

@ -1,5 +1,8 @@
<div class="wrapper">
<div class="task-list-wrapper" *ngIf="(ready$|async) else spinner">
<div
class="task-list-wrapper"
*ngIf="(ready$|async) else spinner"
>
<task-list
[isBacklog]="true"
[noTasksMsg]="T.BL.NO_TASKS|translate"

View File

@ -1,4 +1,7 @@
<div [class.isHideShadow]="pos>10" class="handle bgc-600">
<div
[class.isHideShadow]="pos>10"
class="handle bgc-600"
>
<button
#buttonEl
(dblclick)="toggle()"
@ -8,7 +11,11 @@
color="primary"
mat-fab
>
<span *ngIf="counter" class="counter">{{counter}}</span>
<span
*ngIf="counter"
class="counter"
>{{counter}}</span
>
<mat-icon>library_books</mat-icon>
</button>
</div>

View File

@ -2,8 +2,14 @@
*ngIf="!(workContextService.isContextChangingWithDelay$|async)"
@projectChange
>
<div #containerEl class="wrapper">
<div #splitTopEl class="today">
<div
#containerEl
class="wrapper"
>
<div
#splitTopEl
class="today"
>
<header class="work-view-header">
<div
*ngIf="!(planningModeService.isPlanningMode$|async)"
@ -16,7 +22,10 @@
~<strong class="time-val"
>{{workContextService.estimateRemainingToday$|async|msToString}}</strong
>
<mat-icon style="margin-left: 2px" svgIcon="estimate_remaining"></mat-icon>
<mat-icon
style="margin-left: 2px"
svgIcon="estimate_remaining"
></mat-icon>
</span>
</div>
@ -30,7 +39,10 @@
</span>
</div>
<div *ngIf="isShowTimeWorkedWithoutBreak" class="item">
<div
*ngIf="isShowTimeWorkedWithoutBreak"
class="item"
>
<span class="label">{{T.WW.WITHOUT_BREAK|translate}} </span>
<span class="no-wrap">
<strong class="time-val"
@ -41,7 +53,11 @@
[matTooltip]="T.WW.RESET_BREAK_TIMER|translate"
class="take-a-break-reset-btn"
>
<button (click)="resetBreakTimer()" color="lighter" mat-mini-fab>
<button
(click)="resetBreakTimer()"
color="lighter"
mat-mini-fab
>
<mat-icon>timer_off</mat-icon>
</button>
</div>
@ -52,10 +68,16 @@
*ngIf="(planningModeService.isPlanningMode$|async)"
class="planning-mode-header"
>
<h3 *ngIf="!(undoneTasks?.length)" class="planning-mode-header mat-h3">
<h3
*ngIf="!(undoneTasks?.length)"
class="planning-mode-header mat-h3"
>
{{T.WW.ADD_SOME_TASKS|translate}}
</h3>
<div *ngIf="undoneTasks?.length" class="status-bar">
<div
*ngIf="undoneTasks?.length"
class="status-bar"
>
<div class="item">
<span class="label">{{T.WW.TIME_ESTIMATED|translate}}</span>
<span class="no-wrap">
@ -83,7 +105,12 @@
<h2>{{T.WW.NO_PLANNED_TASKS|translate}}</h2>
<div class="btn-wrapper">
<button (click)="planMore()" color="" mat-flat-button tabindex="1">
<button
(click)="planMore()"
color=""
mat-flat-button
tabindex="1"
>
<mat-icon>playlist_add</mat-icon>
{{T.WW.ADD_MORE|translate}}
</button>
@ -186,7 +213,11 @@
{{T.WW.READY_TO_WORK|translate}}
</button>
</div>
<task-list [tasks]="undoneTasks" listId="PARENT" listModelId="UNDONE"></task-list>
<task-list
[tasks]="undoneTasks"
listId="PARENT"
listModelId="UNDONE"
></task-list>
<div
*ngIf="!(planningModeService.isPlanningMode$|async) || (doneTasks)?.length"
@ -258,7 +289,11 @@
[splitPos]="splitInputPos"
[splitTopEl]="splitTopEl"
></split>
<div *ngIf="splitInputPos!==100" class="inner-wrapper" style="user-select: none">
<div
*ngIf="splitInputPos!==100"
class="inner-wrapper"
style="user-select: none"
>
<backlog
(closeBacklog)="splitInputPos=100"
[backlogTasks]="backlogTasks"

View File

@ -1,4 +1,7 @@
<div class="dialog-content" mat-dialog-content>
<div
class="dialog-content"
mat-dialog-content
>
<textarea
[(ngModel)]="txt"
[hidden]="!isShowAsText"
@ -45,7 +48,10 @@
matTooltipPosition="above"
>
<mat-option><em>remove</em></mat-option>
<mat-option *ngFor="let colOpt of colOpts" [value]="colOpt.id">
<mat-option
*ngFor="let colOpt of colOpts"
[value]="colOpt.id"
>
{{colOpt.title|translate}}
</mat-option>
</mat-select>
@ -89,7 +95,10 @@
</div>
</div>
<div class="col">
<mat-form-field *ngIf="(isWorklogExport)" class="md-block">
<mat-form-field
*ngIf="(isWorklogExport)"
class="md-block"
>
<label>{{T.F.WORKLOG.EXPORT.SEPARATE_TASKS_BY|translate}}</label>
<input
(change)="onOptionsChange()"
@ -178,7 +187,10 @@
</collapsible>
</div>
<div align="end" mat-dialog-actions>
<div
align="end"
mat-dialog-actions
>
<button
*ngIf="isShowAsText"
color="primary"
@ -191,7 +203,12 @@
{{T.F.WORKLOG.EXPORT.COPY_TO_CLIPBOARD|translate}}
</button>
<a [simpleDownloadData]="txt" [simpleDownload]="fileName" color="primary" mat-button>
<a
[simpleDownloadData]="txt"
[simpleDownload]="fileName"
color="primary"
mat-button
>
<mat-icon>file_download</mat-icon>
{{T.F.WORKLOG.EXPORT.SAVE_TO_FILE|translate}}
</a>

View File

@ -7,16 +7,26 @@
class="day"
>
<div class="material-table">
<div (click)="visibility[i]=!visibility[i];" class="caption" mat-ripple>
<div
(click)="visibility[i]=!visibility[i];"
class="caption"
mat-ripple
>
<div>
<span *ngIf="visibility[i]" [@fade]
<span
*ngIf="visibility[i]"
[@fade]
>{{T.F.WORKLOG.WEEK.TITLE|translate}}</span
>
</div>
<div class="center-box">
<div class="title">
<h3 class="mat-h3">{{day.value.dayStr}} {{day.key}}.</h3>
<div *ngIf="!visibility[i]" [@expandFade] class="icon-indicator-bar">
<div
*ngIf="!visibility[i]"
[@expandFade]
class="icon-indicator-bar"
>
<strong>∑ {{day.value.timeSpent|msToClockString}}</strong>
&nbsp;
<mat-icon>list</mat-icon>
@ -33,10 +43,16 @@
class="simple-counter-item"
>
<mat-icon inline="true">{{sc.iconOn || sc.icon}}</mat-icon>
<div *ngIf="sc.type==='ClickCounter'" class="count">
<div
*ngIf="sc.type==='ClickCounter'"
class="count"
>
{{sc.countOnDay[day.value.dateStr] || 0}}
</div>
<div *ngIf="sc.type==='StopWatch'" class="count">
<div
*ngIf="sc.type==='StopWatch'"
class="count"
>
{{sc.countOnDay[day.value.dateStr] || 0|msToMinuteClockString}}
</div>
</div>
@ -45,13 +61,25 @@
</div>
</div>
<div class="with-icon">
<mat-icon *ngIf="visibility[i]" [@fade]>timer </mat-icon>
<mat-icon
*ngIf="visibility[i]"
[@fade]
>timer
</mat-icon>
</div>
</div>
<table *ngIf="visibility[i]" [@expandFade] class="task-summary-table">
<table
*ngIf="visibility[i]"
[@expandFade]
class="task-summary-table"
>
<tr *ngFor="let logEntry of day.value.logEntries; trackBy: trackByLogEntry;">
<td [class.isSubTask]="logEntry.task.parentId" class="title" colspan>
<td
[class.isSubTask]="logEntry.task.parentId"
class="title"
colspan
>
<span class="task-title">{{logEntry.task.title}}</span>
</td>
<td class="worked">
@ -86,7 +114,11 @@
</div>
<div style="text-align: center; margin-top: 12px">
<button (click)="exportData()" color="" mat-button>
<button
(click)="exportData()"
color=""
mat-button
>
<mat-icon>call_made</mat-icon>
{{T.F.WORKLOG.WEEK.EXPORT|translate}}
</button>

View File

@ -2,7 +2,10 @@
<full-page-spinner></full-page-spinner>
</ng-template>
<div *ngIf="worklogService.worklogData$|async as wData; else spinner" [@fade]>
<div
*ngIf="worklogService.worklogData$|async as wData; else spinner"
[@fade]
>
<h1 class="mat-headline total-time">
{{T.F.WORKLOG.CMP.TOTAL_TIME|translate }} <br /><strong
>{{wData.totalTimeSpent|msToString}}</strong
@ -14,7 +17,10 @@
*ngFor="let year of (wData.worklog|keyvalue:sortWorklogItems); trackBy: trackByKey;"
class="year"
>
<h1 [innerHtml]="year.key" class="year-title mat-headline"></h1>
<h1
[innerHtml]="year.key"
class="year-title mat-headline"
></h1>
<div class="year-time-spent">
{{T.F.WORKLOG.CMP.MONTH_WORKED|translate}}
<strong>{{year.value.monthWorked}}</strong><br />

View File

@ -1,4 +1,9 @@
<button (click)="downloadBackup()" color="primary" mat-stroked-button type="button">
<button
(click)="downloadBackup()"
color="primary"
mat-stroked-button
type="button"
>
<mat-icon>file_upload</mat-icon>
{{T.FILE_IMEX.EXPORT_DATA|translate}}
</button>
@ -13,9 +18,20 @@
<mat-icon>code</mat-icon>
</button>
<button (click)="fileInput.click()" color="primary" mat-stroked-button type="button">
<button
(click)="fileInput.click()"
color="primary"
mat-stroked-button
type="button"
>
<mat-icon>file_download</mat-icon>
{{T.FILE_IMEX.IMPORT_FROM_FILE|translate}}
</button>
<input #fileInput (change)="handleFileInput($event)" hidden id="file" type="file" />
<input
#fileInput
(change)="handleFileInput($event)"
hidden
id="file"
type="file"
/>

View File

@ -27,12 +27,26 @@
<mat-dialog-actions align="end">
<div class="wrap-buttons">
<button (click)="close()" color="primary" mat-button>{{T.G.CANCEL|translate}}</button>
<button (click)="close('USE_REMOTE')" color="primary" mat-stroked-button>
<button
(click)="close()"
color="primary"
mat-button
>
{{T.G.CANCEL|translate}}
</button>
<button
(click)="close('USE_REMOTE')"
color="primary"
mat-stroked-button
>
<mat-icon>file_download</mat-icon>
{{T.F.SYNC.D_CONFLICT.USE_REMOTE|translate}}
</button>
<button (click)="close('USE_LOCAL')" color="primary" mat-stroked-button>
<button
(click)="close('USE_LOCAL')"
color="primary"
mat-stroked-button
>
<mat-icon>file_upload</mat-icon>
{{T.F.SYNC.D_CONFLICT.USE_LOCAL|translate}}
</button>

View File

@ -4,7 +4,11 @@
<mat-dialog-content>
<p>{{T.F.SYNC.D_AUTH_CODE.FOLLOW_LINK|translate}}</p>
<a mat-button target="_blank" mat-stroked-button [href]="data.url"
<a
mat-button
target="_blank"
mat-stroked-button
[href]="data.url"
>{{T.F.SYNC.D_AUTH_CODE.GET_AUTH_CODE|translate}}</a
>
<br />
@ -12,14 +16,28 @@
<mat-form-field>
<mat-label>{{T.F.SYNC.D_AUTH_CODE.L_AUTH_CODE|translate}}</mat-label>
<mat-icon matPrefix>vpn_key</mat-icon>
<input matInput [(ngModel)]="token" />
<input
matInput
[(ngModel)]="token"
/>
</mat-form-field>
</mat-dialog-content>
<mat-dialog-actions align="end">
<div class="wrap-buttons">
<button (click)="close()" color="primary" mat-button>{{T.G.CANCEL|translate}}</button>
<button (click)="close(token)" [disabled]="!token" color="primary" mat-stroked-button>
<button
(click)="close()"
color="primary"
mat-button
>
{{T.G.CANCEL|translate}}
</button>
<button
(click)="close(token)"
[disabled]="!token"
color="primary"
mat-stroked-button
>
<mat-icon>save</mat-icon>
{{T.G.SAVE|translate}}
</button>

View File

@ -23,7 +23,10 @@
></config-section>
</section>
<h2 class="mat-h2" style="margin-top: 32px">
<h2
class="mat-h2"
style="margin-top: 32px"
>
{{T.PS.PRODUCTIVITY_HELPER|translate}}
</h2>
<section
@ -37,7 +40,12 @@
></config-section>
</section>
<h2 class="mat-h2" style="margin-top: 32px">{{T.PS.SYNC_EXPORT|translate}}</h2>
<h2
class="mat-h2"
style="margin-top: 32px"
>
{{T.PS.SYNC_EXPORT|translate}}
</h2>
<section
*ngFor="let section of globalSyncProviderFormCfg; trackBy:trackBySectionKey;"
class="config-section"
@ -63,7 +71,9 @@
>{{appVersion}}</a
>
<a href="https://super-productivity.com/private-policy" target="_blank"
<a
href="https://super-productivity.com/private-policy"
target="_blank"
>{{T.PS.PRIVACY_POLICY|translate}}</a
>

View File

@ -5,8 +5,16 @@
<right-panel [isAlwaysOver]="true">
<div class="page-wrapper">
<div *ngIf="isForToday" style="text-align: center">
<a class="back-btn" color="primary" mat-button routerLink="/active/tasks">
<div
*ngIf="isForToday"
style="text-align: center"
>
<a
class="back-btn"
color="primary"
mat-button
routerLink="/active/tasks"
>
<mat-icon>chevron_left</mat-icon>
{{T.PDS.BACK|translate}}
<!--<mat-icon>playlist_play</mat-icon>-->
@ -14,7 +22,10 @@
</div>
<h1 class="done-headline mat-headline">
<span *ngIf="isForToday" [innerHTML]="T.PDS.CELEBRATE|translate"></span>
<span
*ngIf="isForToday"
[innerHTML]="T.PDS.CELEBRATE|translate"
></span>
<span *ngIf="!isForToday">{{T.PDS.SUMMARY_FOR|translate:{dayStr: dayStr} }}</span>
</h1>
<div class="daily-summary-summary">
@ -49,7 +60,10 @@
</div>
</div>
</div>
<div [title]="T.PDS.TIME_SPENT_ESTIMATE_TITLE|translate" class="summary-point">
<div
[title]="T.PDS.TIME_SPENT_ESTIMATE_TITLE|translate"
class="summary-point"
>
<mat-icon>timer</mat-icon>
<div class="summary-text">
{{T.PDS.TIME_SPENT_AND_ESTIMATE_LABEL|translate}}
@ -60,7 +74,10 @@
</div>
</div>
<div *ngIf="(isBreakTrackingSupport$|async)" class="summary-point">
<div
*ngIf="(isBreakTrackingSupport$|async)"
class="summary-point"
>
<mat-icon>free_breakfast</mat-icon>
<div class="summary-text">
{{T.PDS.BREAK_LABEL|translate}}
@ -109,7 +126,10 @@
*ngIf="!(configService.evaluation$|async)?.isHideEvaluationSheet"
[label]="T.PDS.EVALUATION|translate"
>
<section class="tab-inner" style="max-width: 600px">
<section
class="tab-inner"
style="max-width: 600px"
>
<evaluation-sheet
(save)="onEvaluationSave()"
[day]="(dayStr$|async)"
@ -117,13 +137,19 @@
</section>
</mat-tab>
<mat-tab *ngIf="isForToday" [label]="T.PDS.PLAN|translate">
<mat-tab
*ngIf="isForToday"
[label]="T.PDS.PLAN|translate"
>
<section class="tab-inner">
<plan-tasks-tomorrow></plan-tasks-tomorrow>
</section>
</mat-tab>
<mat-tab *ngIf="isForToday" [label]="T.PDS.WEEK|translate">
<mat-tab
*ngIf="isForToday"
[label]="T.PDS.WEEK|translate"
>
<section class="tab-inner full-width">
<worklog-week></worklog-week>
</section>
@ -142,7 +168,12 @@
<mat-icon>wb_sunny</mat-icon>
{{T.PDS.SAVE_AND_GO_HOME|translate}}
</button>
<button (click)="finishDay()" *ngIf="!isForToday" color="primary" mat-flat-button>
<button
(click)="finishDay()"
*ngIf="!isForToday"
color="primary"
mat-flat-button
>
<mat-icon>wb_sunny</mat-icon>
{{T.PDS.CLEAR_ALL_CONTINUE|translate}}
</button>
@ -150,10 +181,16 @@
</section>
</div>
<div *ngIf="showSuccessAnimation" class="success-animation-wrapper">
<div
*ngIf="showSuccessAnimation"
class="success-animation-wrapper"
>
<mat-icon>wb_sunny</mat-icon>
<div class="unicorn-wrapper">
<img class="unicorn" src="assets/unicorn.png" />
<img
class="unicorn"
src="assets/unicorn.png"
/>
</div>
</div>
</right-panel>

View File

@ -8,7 +8,10 @@
<div class="label">{{T.PDS.ESTIMATE_TOTAL|translate}}</div>
<div class="no-wrap">
~<strong class="time-val">{{estimateTotal|msToString}}</strong>
<mat-icon style="margin-left: 2px" svgIcon="estimate_remaining"></mat-icon>
<mat-icon
style="margin-left: 2px"
svgIcon="estimate_remaining"
></mat-icon>
</div>
</div>

View File

@ -16,7 +16,10 @@
[ngStyle]="getThemeColor(project.theme?.primary || project.themeColor)"
class="project-color drag-handle"
>
<mat-icon class="color-contrast" svgIcon="drag_handle"></mat-icon>
<mat-icon
class="color-contrast"
svgIcon="drag_handle"
></mat-icon>
</div>
<div
@ -96,8 +99,14 @@
</div>
</div>
<div *ngIf="(projectService.archived$|async)?.length" class="component-wrapper">
<h2 class="mat-h2" style="text-align: center; margin-top: 32px">
<div
*ngIf="(projectService.archived$|async)?.length"
class="component-wrapper"
>
<h2
class="mat-h2"
style="text-align: center; margin-top: 32px"
>
{{T.PP.ARCHIVED_PROJECTS|translate}}
</h2>

View File

@ -1,6 +1,9 @@
<div class="page-wrapper">
<div class="component-wrapper">
<h1 class="mat-h1" style="display: flex; align-items: center">
<h1
class="mat-h1"
style="display: flex; align-items: center"
>
<mat-icon style="margin-right: 8px">list</mat-icon>
<span>{{T.PS.PROJECT_SETTINGS|translate}}</span>
</h1>
@ -20,7 +23,10 @@
></config-section>
</section>
<h2 class="mat-h2" style="margin-top: 24px">
<h2
class="mat-h2"
style="margin-top: 24px"
>
<span>{{T.PS.ISSUE_INTEGRATION|translate}}</span>
</h2>
<div *ngFor="let section of issueIntegrationFormCfg; trackBy:trackBySectionKey;">

View File

@ -10,11 +10,17 @@
>
<h2>{{T.SCHEDULE.SCHEDULED_TASKS|translate}}</h2>
<p *ngIf="!allScheduledTasks?.length" class="no-scheduled-tasks">
<p
*ngIf="!allScheduledTasks?.length"
class="no-scheduled-tasks"
>
{{T.SCHEDULE.NO_SCHEDULED|translate}}
</p>
<div [@standardList]="allScheduledTasks?.length" class="tasks">
<div
[@standardList]="allScheduledTasks?.length"
class="tasks"
>
<mat-card
*ngFor="let task of allScheduledTasks; trackBy: trackByFn;"
class="scheduled-task"
@ -31,10 +37,17 @@
>
{{task.title}}
</div>
<tag-list [isShowProjectTagAlways]="true" [task]="task"></tag-list>
<tag-list
[isShowProjectTagAlways]="true"
[task]="task"
></tag-list>
</div>
<div (click)="editReminder(task)" class="due-date" mat-ripple>
<div
(click)="editReminder(task)"
class="due-date"
mat-ripple
>
<div class="date-and-time-left">
<div class="date hide-xs">
{{task.reminderData.remindAt|date:'EE, d MMM, '}}
@ -108,11 +121,17 @@
>
<h2>{{T.SCHEDULE.REPEATED_TASKS|translate}}</h2>
<p *ngIf="!taskRepeatCfgs?.length" class="no-scheduled-tasks">
<p
*ngIf="!taskRepeatCfgs?.length"
class="no-scheduled-tasks"
>
{{T.SCHEDULE.NO_REPEATABLE_TASKS|translate}}
</p>
<div [@standardList]="taskRepeatCfgs?.length" class="repeat-task-cfgs">
<div
[@standardList]="taskRepeatCfgs?.length"
class="repeat-task-cfgs"
>
<mat-card
*ngFor="let taskRepeatCfg of taskRepeatCfgs; trackBy: trackByFn;"
class="repeat-task-cfg"

View File

@ -1,6 +1,9 @@
<div class="page-wrapper">
<div class="component-wrapper">
<h1 class="mat-h1" style="display: flex; align-items: center">
<h1
class="mat-h1"
style="display: flex; align-items: center"
>
<mat-icon style="margin-right: 8px">style</mat-icon>
<span>{{T.PS.TAG_SETTINGS|translate}}</span>
</h1>

View File

@ -1,8 +1,16 @@
<div #contentElRef class="content">
<div
#contentElRef
class="content"
>
<ng-content select="[better-drawer-content]"></ng-content>
</div>
<div (click)="close()" *ngIf="isOpenGet && isOverGet" @fade class="backdrop"></div>
<div
(click)="close()"
*ngIf="isOpenGet && isOverGet"
@fade
class="backdrop"
></div>
<div
(swiperight)="close()"
@ -10,7 +18,12 @@
class="side"
(transitionend)="updateStyleAfterTransition()"
>
<button (click)="close()" class="close-btn">&times;</button>
<button
(click)="close()"
class="close-btn"
>
&times;
</button>
<div class="side-inner">
<ng-content select="[better-drawer-side]"></ng-content>
</div>

View File

@ -7,7 +7,11 @@
>
{{ modelItem.title}}
<mat-icon [matTooltip]="T.G.REMOVE|translate" matChipRemove>cancel </mat-icon>
<mat-icon
[matTooltip]="T.G.REMOVE|translate"
matChipRemove
>cancel
</mat-icon>
<button
(click)="additionalAction.emit(modelItem.id)"
@ -34,7 +38,10 @@
(keydown)="triggerCtrlEnterSubmit($event)"
/>
</mat-chip-list>
<mat-autocomplete #autoElRef="matAutocomplete" (optionSelected)="selected($event)">
<mat-autocomplete
#autoElRef="matAutocomplete"
(optionSelected)="selected($event)"
>
<mat-option
*ngFor="let suggestion of (filteredSuggestions | async); trackBy:trackById"
[value]="suggestion.id"

View File

@ -1,9 +1,16 @@
<div (click)="toggleExpand();" class="collapsible-header">
<div
(click)="toggleExpand();"
class="collapsible-header"
>
<ng-container *ngIf="isIconBefore">
<mat-icon class="collapsible-expand-icon">expand_more</mat-icon>
</ng-container>
<mat-icon *ngIf="icon" class="collapsible-additional-icon">{{icon}} </mat-icon>
<mat-icon
*ngIf="icon"
class="collapsible-additional-icon"
>{{icon}}
</mat-icon>
<div class="collapsible-title">{{title}}</div>
@ -12,6 +19,10 @@
</ng-container>
</div>
<div *ngIf="isExpanded" [@expand] class="collapsible-panel ani-expand-collapse">
<div
*ngIf="isExpanded"
[@expand]
class="collapsible-panel ani-expand-collapse"
>
<ng-content></ng-content>
</div>

View File

@ -1,4 +1,7 @@
<div class="wrapper" style="position: relative">
<div
class="wrapper"
style="position: relative"
>
<mat-form-field>
<input
(ngModelChange)="updateFromInput($event)"
@ -9,7 +12,11 @@
matInput
type="datetime-local"
/>
<input (ngModelChange)="updateFromInput($event)" [ngModel]="strValue" class="fake" />
<input
(ngModelChange)="updateFromInput($event)"
[ngModel]="strValue"
class="fake"
/>
<mat-error>{{T.V.E_DATETIME|translate}}</mat-error>
</mat-form-field>
@ -29,6 +36,10 @@
<mat-chip (click)="setCommonVal('TOMORROW_11')"
>{{T.DATETIME_INPUT.TOMORROW|translate:{time: '11:00'} }}</mat-chip
>
<mat-chip (click)="setLastVal()" *ngIf="lastVal">{{lastVal|date:'short'}}</mat-chip>
<mat-chip
(click)="setLastVal()"
*ngIf="lastVal"
>{{lastVal|date:'short'}}</mat-chip
>
</mat-chip-list>
</div>

View File

@ -1,5 +1,8 @@
<mat-dialog-content>
<div [innerHtml]="data.message|translate:data.translateParams" class="content"></div>
<div
[innerHtml]="data.message|translate:data.translateParams"
class="content"
></div>
</mat-dialog-content>
<mat-dialog-actions align="end">

View File

@ -1,4 +1,7 @@
<div class="content" [class.split-view]="viewMode==='SPLIT'">
<div
class="content"
[class.split-view]="viewMode==='SPLIT'"
>
<textarea
#textareaEl
[(ngModel)]="data.content"
@ -16,7 +19,10 @@
<div class="controls">
<div class="left-buttons">
<mat-button-toggle-group [(ngModel)]="viewMode" (change)="onViewModeChange()">
<mat-button-toggle-group
[(ngModel)]="viewMode"
(change)="onViewModeChange()"
>
<mat-button-toggle
value="TEXT_ONLY"
[matTooltip]="T.F.NOTE.D_FULLSCREEN.VIEW_TEXT_ONLY|translate"
@ -36,12 +42,19 @@
</mat-button-toggle-group>
</div>
<button (click)="close(true)" mat-button>
<button
(click)="close(true)"
mat-button
>
<mat-icon>close</mat-icon>
{{(T.G.CANCEL)|translate}}
</button>
<button (click)="close()" color="primary" mat-stroked-button>
<button
(click)="close()"
color="primary"
mat-stroked-button
>
<mat-icon>save</mat-icon>
{{(T.G.SAVE)|translate}}
</button>

View File

@ -1,7 +1,15 @@
<mat-dialog-content>
<div [innerHtml]="data.message|translate:data.translateParams" class="content"></div>
<div
[innerHtml]="data.message|translate:data.translateParams"
class="content"
></div>
<mat-form-field>
<input [(ngModel)]="txtVal" [placeholder]="data.placeholder" matInput type="text" />
<input
[(ngModel)]="txtVal"
[placeholder]="data.placeholder"
matInput
type="text"
/>
</mat-form-field>
</mat-dialog-content>

View File

@ -1,13 +1,24 @@
<div class="circle bg-primary">
<div class="inner-circle"></div>
<div class="dots">
<div *ngFor="let hour of dots; trackBy: trackByIndex" @dot class="dot bg-100"></div>
<div
*ngFor="let hour of dots; trackBy: trackByIndex"
@dot
class="dot bg-100"
></div>
</div>
<div #circleEl class="handle-wrapper">
<div
#circleEl
class="handle-wrapper"
>
<div class="handle"></div>
</div>
<div class="value-wrapper">
<label *ngIf="label" [for]="uid" [innerHtml]="label"></label>
<label
*ngIf="label"
[for]="uid"
[innerHtml]="label"
></label>
<input
(ngModelChange)="onInputChange($event)"
[id]="uid"

View File

@ -9,7 +9,11 @@
<mat-icon>{{isShowHelp ? 'close' : 'help_outline'}}</mat-icon>
</button>
<div *ngIf="isShowHelp" [@expandFade] class="help-text border-color-primary">
<div
*ngIf="isShowHelp"
[@expandFade]
class="help-text border-color-primary"
>
<div class="help-icon-wrapper color-primary">
<mat-icon>help_outline</mat-icon>
</div>

Some files were not shown because too many files have changed in this diff Show More