diff --git a/apps/red-ui/src/app/app.module.ts b/apps/red-ui/src/app/app.module.ts
index 54ed157a4..7591df031 100644
--- a/apps/red-ui/src/app/app.module.ts
+++ b/apps/red-ui/src/app/app.module.ts
@@ -17,6 +17,7 @@ import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { MatMenuModule } from '@angular/material/menu';
import { languageInitializer } from './i18n/language.initializer';
import { LanguageService } from './i18n/language.service';
+import { MomentDateAdapter } from '@angular/material-moment-adapter';
import { MatIconModule } from '@angular/material/icon';
import { IconsModule } from './icons/icons.module';
import { AddEditProjectDialogComponent } from './dialogs/add-edit-project-dialog/add-edit-project-dialog.component';
@@ -55,7 +56,7 @@ import { RedRoleGuard } from './auth/red-role.guard';
import { MatListModule } from '@angular/material/list';
import { AssignOwnerDialogComponent } from './dialogs/assign-owner-dialog/assign-owner-dialog.component';
import { MatDatepickerModule } from '@angular/material/datepicker';
-import { MatNativeDateModule } from '@angular/material/core';
+import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatNativeDateModule } from '@angular/material/core';
import { MatInputModule } from '@angular/material/input';
import { HumanizePipe } from './utils/humanize.pipe';
import { CommentsComponent } from './components/comments/comments.component';
@@ -315,6 +316,15 @@ const matImports = [
multi: true,
useFactory: languageInitializer,
deps: [LanguageService]
+ },
+ { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
+ {
+ provide: MAT_DATE_FORMATS,
+ useValue: {
+ display: {
+ dateInput: 'DD/MM/YY'
+ }
+ }
}
],
bootstrap: [AppComponent]
diff --git a/apps/red-ui/src/app/components/buttons/icon-button/icon-button.component.html b/apps/red-ui/src/app/components/buttons/icon-button/icon-button.component.html
index dc429e50f..b6f760eec 100644
--- a/apps/red-ui/src/app/components/buttons/icon-button/icon-button.component.html
+++ b/apps/red-ui/src/app/components/buttons/icon-button/icon-button.component.html
@@ -1,4 +1,4 @@
-
-
+
diff --git a/apps/red-ui/src/app/screens/admin/watermark-screen/watermark-screen.component.ts b/apps/red-ui/src/app/screens/admin/watermark-screen/watermark-screen.component.ts
index 088b5fe6e..2dee11c24 100644
--- a/apps/red-ui/src/app/screens/admin/watermark-screen/watermark-screen.component.ts
+++ b/apps/red-ui/src/app/screens/admin/watermark-screen/watermark-screen.component.ts
@@ -46,7 +46,7 @@ export class WatermarkScreenComponent implements OnInit {
this._loadViewer();
}
- public get changed() {
+ public get changed(): boolean {
for (const key of Object.keys(this._initialConfig)) {
if (this._initialConfig[key] !== this.configForm.get(key).value) {
return true;
diff --git a/apps/red-ui/src/app/screens/base-screen/base-screen.component.html b/apps/red-ui/src/app/screens/base-screen/base-screen.component.html
index 7209002fc..7e7ded941 100644
--- a/apps/red-ui/src/app/screens/base-screen/base-screen.component.html
+++ b/apps/red-ui/src/app/screens/base-screen/base-screen.component.html
@@ -35,7 +35,7 @@
*ngIf="settingsView"
[routerLinkActiveOptions]="{ exact: true }"
>
-
+
{{ 'top-bar.navigation-items.back-to-projects' | translate }}
diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json
index 3304587a5..b084734a5 100644
--- a/apps/red-ui/src/assets/i18n/en.json
+++ b/apps/red-ui/src/assets/i18n/en.json
@@ -103,7 +103,7 @@
"description": "Description",
"name": "Name",
"due-date": "Due Date",
- "rule-set": "Rule Set"
+ "template": "Project Template"
},
"actions": {
"save": "Save",
@@ -358,7 +358,8 @@
"members": "Members",
"save": "Save Changes",
"cancel": "Cancel",
- "search": "Search..."
+ "search": "Search...",
+ "no-members": "No members yet.\nSelect from the list below."
}
},
"project-member-guard": {
@@ -487,8 +488,8 @@
"new": "Create Dictionary"
},
"form": {
- "type": "Type",
- "type-placeholder": "Enter Type Name",
+ "name": "Dictionary Name",
+ "name-placeholder": "Enter Name",
"rank": "Rank",
"rank-placeholder": "1000",
"color": "Hex Color",
diff --git a/apps/red-ui/src/assets/icons/general/back-arrow.svg b/apps/red-ui/src/assets/icons/general/back-arrow.svg
deleted file mode 100644
index 5dbf99f08..000000000
--- a/apps/red-ui/src/assets/icons/general/back-arrow.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/apps/red-ui/src/assets/styles/red-breadcrumbs.scss b/apps/red-ui/src/assets/styles/red-breadcrumbs.scss
index 30e0cc5ad..d6d0613f2 100644
--- a/apps/red-ui/src/assets/styles/red-breadcrumbs.scss
+++ b/apps/red-ui/src/assets/styles/red-breadcrumbs.scss
@@ -22,8 +22,7 @@
align-items: center;
mat-icon {
- margin-right: 4px;
- color: $primary;
+ margin-right: 8px;
}
}
diff --git a/apps/red-ui/src/assets/styles/red-button.scss b/apps/red-ui/src/assets/styles/red-button.scss
index 57f561203..008154754 100644
--- a/apps/red-ui/src/assets/styles/red-button.scss
+++ b/apps/red-ui/src/assets/styles/red-button.scss
@@ -18,6 +18,10 @@
margin-right: 6px;
}
}
+
+ &.mat-button-disabled {
+ background-color: $grey-6 !important;
+ }
}
.cdk-program-focused .mat-button-focus-overlay {
diff --git a/apps/red-ui/src/assets/styles/red-controls.scss b/apps/red-ui/src/assets/styles/red-controls.scss
index 461f5a222..f8ac880d9 100644
--- a/apps/red-ui/src/assets/styles/red-controls.scss
+++ b/apps/red-ui/src/assets/styles/red-controls.scss
@@ -36,7 +36,3 @@
width: 10px;
height: 10px;
}
-
-.transform-180 {
- transform: rotate(180deg);
-}
diff --git a/apps/red-ui/src/assets/styles/red-dialog.scss b/apps/red-ui/src/assets/styles/red-dialog.scss
index cddf6e42d..fe4161ca1 100644
--- a/apps/red-ui/src/assets/styles/red-dialog.scss
+++ b/apps/red-ui/src/assets/styles/red-dialog.scss
@@ -17,11 +17,11 @@
}
.dialog-header {
- padding: 32px 32px 16px 32px;
+ padding: 32px 32px 0 32px;
}
.dialog-content {
- padding: 0 32px;
+ padding: 24px 32px 40px;
}
.dialog-actions {
diff --git a/apps/red-ui/src/assets/styles/red-input.scss b/apps/red-ui/src/assets/styles/red-input.scss
index be4b52a67..c416f8bda 100644
--- a/apps/red-ui/src/assets/styles/red-input.scss
+++ b/apps/red-ui/src/assets/styles/red-input.scss
@@ -4,7 +4,7 @@
.red-input-group {
display: flex;
flex-direction: column;
- margin-top: 13px;
+ margin-top: 24px;
position: relative;
.input-icon {
@@ -12,14 +12,11 @@
right: 1px;
bottom: 1px;
background: $grey-5;
- height: 30px;
- display: flex;
- justify-content: center;
- align-items: center;
+ height: 32px;
width: 32px;
- border: 1px solid $grey-5;
- border-top-right-radius: 8px;
- border-bottom-right-radius: 8px;
+ border-left: 1px solid $grey-5;
+ border-top-right-radius: 7px;
+ border-bottom-right-radius: 7px;
cursor: pointer;
transition: background-color 0.25s ease;
@@ -126,4 +123,36 @@
content: ' *';
color: $primary;
}
+
+ &.datepicker-wrapper {
+ position: relative;
+ display: flex;
+ margin-top: 0;
+ width: 120px;
+
+ .mat-datepicker-input {
+ margin-top: 0;
+ }
+
+ .mat-datepicker-toggle {
+ position: absolute;
+ right: 0;
+ color: $accent;
+
+ &.mat-datepicker-toggle-active {
+ color: $primary;
+ }
+
+ .mat-icon-button {
+ width: 34px;
+ height: 34px;
+ line-height: 34px;
+ }
+
+ mat-icon {
+ width: 14px;
+ height: 17px;
+ }
+ }
+ }
}
diff --git a/apps/red-ui/src/assets/styles/red-text-styles.scss b/apps/red-ui/src/assets/styles/red-text-styles.scss
index 61963927a..28648588e 100644
--- a/apps/red-ui/src/assets/styles/red-text-styles.scss
+++ b/apps/red-ui/src/assets/styles/red-text-styles.scss
@@ -11,6 +11,11 @@ a {
cursor: pointer;
}
+pre {
+ font-family: Inter, sans-serif;
+ color: $accent;
+}
+
.heading-xl {
font-size: 24px;
font-weight: 600;
@@ -29,6 +34,12 @@ a {
font-weight: 600;
}
+.info {
+ font-size: 13px;
+ line-height: 18px;
+ opacity: 0.7;
+}
+
.page-title {
font-size: 13px;
font-weight: 600;
@@ -44,6 +55,11 @@ a {
font-weight: 600;
letter-spacing: 0;
line-height: 14px;
+ transition: opacity 0.2s;
+
+ &.cancel:hover {
+ opacity: 1;
+ }
}
.small-label {
diff --git a/apps/red-ui/src/assets/styles/red-theme.scss b/apps/red-ui/src/assets/styles/red-theme.scss
index 27f7daf06..3b3ad8f44 100644
--- a/apps/red-ui/src/assets/styles/red-theme.scss
+++ b/apps/red-ui/src/assets/styles/red-theme.scss
@@ -11,6 +11,7 @@
@import 'red-list';
@import 'red-checkbox';
@import 'red-toggle';
+@import 'red-toggle-button';
@import 'red-menu';
@import 'red-media-queries';
@import 'red-tables';
diff --git a/apps/red-ui/src/assets/styles/red-toggle-button.scss b/apps/red-ui/src/assets/styles/red-toggle-button.scss
new file mode 100644
index 000000000..7091b475f
--- /dev/null
+++ b/apps/red-ui/src/assets/styles/red-toggle-button.scss
@@ -0,0 +1,14 @@
+@import './red-variables';
+
+.mat-button-toggle-standalone,
+.mat-button-toggle-group {
+ border-radius: 100px !important;
+ box-shadow: none;
+
+ .mat-button-toggle:not(.mat-button-toggle-checked) {
+ .mat-button-toggle-button {
+ background: $grey-6;
+ color: $grey-7;
+ }
+ }
+}
diff --git a/package.json b/package.json
index b0ef522ea..9253734c5 100644
--- a/package.json
+++ b/package.json
@@ -1,106 +1,107 @@
{
- "name": "redaction",
- "version": "0.0.230",
- "private": true,
- "license": "MIT",
- "scripts": {
- "affected": "nx affected",
- "affected:apps": "nx affected:apps",
- "affected:build": "nx affected:build",
- "affected:dep-graph": "nx affected:dep-graph",
- "affected:e2e": "nx affected:e2e",
- "affected:libs": "nx affected:libs",
- "affected:lint": "nx affected:lint",
- "affected:test": "nx affected:test",
- "build": "nx build",
- "build-lint-all": "ng lint --project=red-ui-http --fix && ng build --project=red-ui-http && ng lint --project=red-ui --fix && ng build --project=red-ui --prod",
- "dep-graph": "nx dep-graph",
- "e2e": "nx e2e",
- "format": "nx format:write",
- "format:check": "nx format:check",
- "format:write": "nx format:write",
- "help": "nx help",
- "postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points",
- "lint": "nx workspace-lint && nx lint",
- "nx": "nx",
- "start": "nx serve",
- "test": "nx test",
- "update": "nx migrate latest",
- "workspace-schematic": "nx workspace-schematic"
- },
- "husky": {
- "hooks": {
- "pre-commit": "pretty-quick --staged && ng lint --project=red-ui-http && ng lint --project=red-ui --fix"
+ "name": "redaction",
+ "version": "0.0.230",
+ "private": true,
+ "license": "MIT",
+ "scripts": {
+ "affected": "nx affected",
+ "affected:apps": "nx affected:apps",
+ "affected:build": "nx affected:build",
+ "affected:dep-graph": "nx affected:dep-graph",
+ "affected:e2e": "nx affected:e2e",
+ "affected:libs": "nx affected:libs",
+ "affected:lint": "nx affected:lint",
+ "affected:test": "nx affected:test",
+ "build": "nx build",
+ "build-lint-all": "ng lint --project=red-ui-http --fix && ng build --project=red-ui-http && ng lint --project=red-ui --fix && ng build --project=red-ui --prod",
+ "dep-graph": "nx dep-graph",
+ "e2e": "nx e2e",
+ "format": "nx format:write",
+ "format:check": "nx format:check",
+ "format:write": "nx format:write",
+ "help": "nx help",
+ "postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points",
+ "lint": "nx workspace-lint && nx lint",
+ "nx": "nx",
+ "start": "nx serve",
+ "test": "nx test",
+ "update": "nx migrate latest",
+ "workspace-schematic": "nx workspace-schematic"
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "pretty-quick --staged && ng lint --project=red-ui-http && ng lint --project=red-ui --fix"
+ }
+ },
+ "dependencies": {
+ "@angular/animations": "~11.0.1",
+ "@angular/cdk": "~11.0.1",
+ "@angular/common": "~11.0.1",
+ "@angular/compiler": "~11.0.1",
+ "@angular/core": "~11.0.1",
+ "@angular/forms": "~11.0.1",
+ "@angular/material": "~11.0.1",
+ "@angular/material-moment-adapter": "^11.0.2",
+ "@angular/platform-browser": "~11.0.1",
+ "@angular/platform-browser-dynamic": "~11.0.1",
+ "@angular/router": "~11.0.1",
+ "@angular/service-worker": "~11.0.1",
+ "@ngx-translate/core": "^13.0.0",
+ "@ngx-translate/http-loader": "^6.0.0",
+ "@nrwl/angular": "^10.2.0",
+ "@pdftron/webviewer": "^7.0.1",
+ "file-saver": "^2.0.2",
+ "jwt-decode": "^3.0.0",
+ "keycloak-angular": "^8.0.1",
+ "keycloak-js": "10.0.2",
+ "lint-staged": "^10.5.0",
+ "ng2-ace-editor": "^0.3.9",
+ "ng2-file-upload": "^1.4.0",
+ "ngp-sort-pipe": "^0.0.4",
+ "ngx-color-picker": "^10.1.0",
+ "ngx-dropzone": "^2.2.2",
+ "ngx-toastr": "^13.0.0",
+ "rxjs": "~6.6.0",
+ "scroll-into-view-if-needed": "^2.2.26",
+ "tslib": "^2.0.0",
+ "zone.js": "~0.10.2"
+ },
+ "devDependencies": {
+ "@angular-devkit/build-angular": "~0.1100.2",
+ "@angular-devkit/build-ng-packagr": "~0.1002.0",
+ "@angular/cli": "~11.0.2",
+ "@angular/compiler": "~11.0.1",
+ "@angular/compiler-cli": "~11.0.1",
+ "@angular/language-service": "~11.0.2",
+ "@nrwl/cypress": "10.2.0",
+ "@nrwl/jest": "10.2.0",
+ "@nrwl/workspace": "10.2.0",
+ "@types/cypress": "^1.1.3",
+ "@types/jasmine": "~3.6.0",
+ "@types/jest": "26.0.8",
+ "@types/node": "^12.11.1",
+ "codelyzer": "^6.0.0",
+ "cypress": "^5.6.0",
+ "cypress-file-upload": "^4.1.1",
+ "cypress-keycloak": "^1.5.0",
+ "cypress-keycloak-commands": "^1.2.0",
+ "cypress-localstorage-commands": "^1.2.4",
+ "dotenv": "6.2.0",
+ "eslint": "6.8.0",
+ "google-translate-api-browser": "^1.1.71",
+ "husky": "^4.3.0",
+ "jest": "26.2.2",
+ "jest-preset-angular": "8.2.1",
+ "lodash": "^4.17.20",
+ "moment": "^2.29.1",
+ "ng-packagr": "^10.1.2",
+ "prettier": "2.0.4",
+ "pretty-quick": "^3.1.0",
+ "superagent": "^6.1.0",
+ "superagent-promise": "^1.1.0",
+ "ts-jest": "26.1.4",
+ "ts-node": "~8.3.0",
+ "tslint": "~6.1.0",
+ "typescript": "~4.0.2"
}
- },
- "dependencies": {
- "@angular/animations": "~11.0.1",
- "@angular/cdk": "~11.0.1",
- "@angular/common": "~11.0.1",
- "@angular/compiler": "~11.0.1",
- "@angular/core": "~11.0.1",
- "@angular/forms": "~11.0.1",
- "@angular/material": "~11.0.1",
- "@angular/platform-browser": "~11.0.1",
- "@angular/platform-browser-dynamic": "~11.0.1",
- "@angular/router": "~11.0.1",
- "@angular/service-worker": "~11.0.1",
- "@ngx-translate/core": "^13.0.0",
- "@ngx-translate/http-loader": "^6.0.0",
- "@nrwl/angular": "^10.2.0",
- "@pdftron/webviewer": "^7.0.1",
- "file-saver": "^2.0.2",
- "jwt-decode": "^3.0.0",
- "keycloak-angular": "^8.0.1",
- "keycloak-js": "10.0.2",
- "lint-staged": "^10.5.0",
- "ng2-ace-editor": "^0.3.9",
- "ng2-file-upload": "^1.4.0",
- "ngp-sort-pipe": "^0.0.4",
- "ngx-color-picker": "^10.1.0",
- "ngx-dropzone": "^2.2.2",
- "ngx-toastr": "^13.0.0",
- "rxjs": "~6.6.0",
- "scroll-into-view-if-needed": "^2.2.26",
- "tslib": "^2.0.0",
- "zone.js": "~0.10.2"
- },
- "devDependencies": {
- "@angular-devkit/build-angular": "~0.1100.2",
- "@angular-devkit/build-ng-packagr": "~0.1002.0",
- "@angular/cli": "~11.0.2",
- "@angular/compiler": "~11.0.1",
- "@angular/compiler-cli": "~11.0.1",
- "@angular/language-service": "~11.0.2",
- "@nrwl/cypress": "10.2.0",
- "@nrwl/jest": "10.2.0",
- "@nrwl/workspace": "10.2.0",
- "@types/cypress": "^1.1.3",
- "@types/jasmine": "~3.6.0",
- "@types/jest": "26.0.8",
- "@types/node": "^12.11.1",
- "codelyzer": "^6.0.0",
- "cypress": "^5.6.0",
- "cypress-file-upload": "^4.1.1",
- "cypress-keycloak": "^1.5.0",
- "cypress-keycloak-commands": "^1.2.0",
- "cypress-localstorage-commands": "^1.2.4",
- "dotenv": "6.2.0",
- "eslint": "6.8.0",
- "google-translate-api-browser": "^1.1.71",
- "husky": "^4.3.0",
- "jest": "26.2.2",
- "jest-preset-angular": "8.2.1",
- "lodash": "^4.17.20",
- "moment": "^2.29.1",
- "ng-packagr": "^10.1.2",
- "prettier": "2.0.4",
- "pretty-quick": "^3.1.0",
- "superagent": "^6.1.0",
- "superagent-promise": "^1.1.0",
- "ts-jest": "26.1.4",
- "ts-node": "~8.3.0",
- "tslint": "~6.1.0",
- "typescript": "~4.0.2"
- }
}
diff --git a/yarn.lock b/yarn.lock
index b5918a54b..5bda7abe8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -286,6 +286,13 @@
resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-11.0.2.tgz#b9a97a9bdd3d10ac2335eb94bacf8ab5514aeeb5"
integrity sha512-Cfam/NEP8hKkcqBVGlkBVuPkojZukmVOxdtsFIkIjJW/mywad2lIfjHR/0rZ43jD1bPb7s+tyYcJBgNg42p2ng==
+"@angular/material-moment-adapter@^11.0.2":
+ version "11.0.2"
+ resolved "https://registry.yarnpkg.com/@angular/material-moment-adapter/-/material-moment-adapter-11.0.2.tgz#73afa45174385ece6a1cc9228ebf59ef78963cd2"
+ integrity sha512-/GkNJJuNziFEKU+fC6BJQmXGuWMgJcRalVA5oLotinbaVg1+GgH3eagbB2lVmSpxTDWTecr3D+K1H0ckTAeHRA==
+ dependencies:
+ tslib "^2.0.0"
+
"@angular/material@~11.0.1":
version "11.0.1"
resolved "https://registry.yarnpkg.com/@angular/material/-/material-11.0.1.tgz#add0e87d3e01d7d20484ea5a90d15439ec31a1d6"