Pull request #150: [RED-1283] File attributes
Merge in RED/ui from RED-1283 to master * commit '44d4779ae07d9811d890b06c189150a4b3dbc037': Key column autocomplete Collapse column preview CSV import search by column name Bulk delete file attrs Update api Remove title (default tooltip) from icons
@ -66,9 +66,7 @@
|
||||
>
|
||||
</redaction-circle-button>
|
||||
|
||||
<ng-container *ngIf="download.inProgress">
|
||||
<mat-spinner diameter="15"></mat-spinner>
|
||||
</ng-container>
|
||||
<mat-spinner *ngIf="download.inProgress" diameter="15"></mat-spinner>
|
||||
</div>
|
||||
</div>
|
||||
<div class="scrollbar-placeholder"></div>
|
||||
|
||||
@ -25,13 +25,13 @@ import { ConfirmDeleteFileAttributeDialogComponent } from './dialogs/confirm-del
|
||||
import { EditColorDialogComponent } from './dialogs/edit-color-dialog/edit-color-dialog.component';
|
||||
import { ComboChartComponent, ComboSeriesVerticalComponent } from './components/combo-chart';
|
||||
import { NgxChartsModule } from '@swimlane/ngx-charts';
|
||||
import { AdminDialogService } from './services/admin-dialog-service.service';
|
||||
import { AdminDialogService } from './services/admin-dialog.service';
|
||||
import { SmtpConfigScreenComponent } from './screens/smtp-config/smtp-config-screen.component';
|
||||
import { SmtpAuthDialogComponent } from './dialogs/smtp-auth-dialog/smtp-auth-dialog.component';
|
||||
import { AddEditUserDialogComponent } from './dialogs/add-edit-user-dialog/add-edit-user-dialog.component';
|
||||
import { UsersStatsComponent } from './components/users-stats/users-stats.component';
|
||||
import { ConfirmDeleteUsersDialogComponent } from './dialogs/confirm-delete-users-dialog/confirm-delete-users-dialog.component';
|
||||
import { FileAttributesCsvImportDialogComponent } from './screens/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component';
|
||||
import { FileAttributesCsvImportDialogComponent } from './dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component';
|
||||
|
||||
const dialogs = [
|
||||
AddEditRuleSetDialogComponent,
|
||||
|
||||
@ -2,7 +2,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
|
||||
import { PermissionsService } from '../../../../services/permissions.service';
|
||||
import { AppStateService } from '../../../../state/app-state.service';
|
||||
import { Router } from '@angular/router';
|
||||
import { AdminDialogService } from '../../services/admin-dialog-service.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-rule-set-actions',
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Component, Inject } from '@angular/core';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { AppStateService } from '../../../../state/app-state.service';
|
||||
import { FileAttributeConfig, FileAttributesControllerService } from '@redaction/red-ui-http';
|
||||
import { FileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
|
||||
@Component({
|
||||
@ -17,7 +17,6 @@ export class AddEditFileAttributeDialogComponent {
|
||||
constructor(
|
||||
private readonly _appStateService: AppStateService,
|
||||
private readonly _formBuilder: FormBuilder,
|
||||
private readonly _fileAttributesService: FileAttributesControllerService,
|
||||
public dialogRef: MatDialogRef<AddEditFileAttributeDialogComponent>,
|
||||
@Inject(MAT_DIALOG_DATA) public data: { fileAttribute: FileAttributeConfig; ruleSetId: string }
|
||||
) {
|
||||
@ -54,7 +53,6 @@ export class AddEditFileAttributeDialogComponent {
|
||||
editable: !this.fileAttributeForm.get('readonly').value,
|
||||
...this.fileAttributeForm.getRawValue()
|
||||
};
|
||||
await this._fileAttributesService.setFileAttributesConfiguration(fileAttribute, this.ruleSetId).toPromise();
|
||||
this.dialogRef.close(fileAttribute);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<section class="dialog">
|
||||
<div class="dialog-header heading-l">
|
||||
{{ 'confirm-delete-file-attribute.title' | translate: { name: fileAttribute.label } }}
|
||||
{{ 'confirm-delete-file-attribute.title.' + type | translate: { name: fileAttribute?.label } }}
|
||||
</div>
|
||||
|
||||
<div class="inline-dialog-toast toast-error" *ngIf="showToast">
|
||||
@ -19,15 +19,15 @@
|
||||
color="primary"
|
||||
[class.error]="!checkbox.value && showToast"
|
||||
>
|
||||
{{ 'confirm-delete-file-attribute.checkbox-' + (idx + 1) | translate }}
|
||||
{{ 'confirm-delete-file-attribute.' + checkbox.label | translate }}
|
||||
</mat-checkbox>
|
||||
</div>
|
||||
|
||||
<div class="dialog-actions">
|
||||
<button color="primary" mat-flat-button (click)="deleteFileAttribute()">
|
||||
{{ 'confirm-delete-file-attribute.delete' | translate }}
|
||||
{{ 'confirm-delete-file-attribute.delete.' + type | translate }}
|
||||
</button>
|
||||
<div class="all-caps-label cancel" (click)="cancel()" translate="confirm-delete-file-attribute.cancel"></div>
|
||||
<div class="all-caps-label cancel" (click)="cancel()" [translate]="'confirm-delete-file-attribute.cancel.' + type"></div>
|
||||
</div>
|
||||
<redaction-circle-button icon="red:close" mat-dialog-close class="dialog-close"></redaction-circle-button>
|
||||
</section>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { Component, Inject } from '@angular/core';
|
||||
import { AppStateService } from '../../../../state/app-state.service';
|
||||
import { FileAttributeConfig, FileAttributesControllerService } from '@redaction/red-ui-http';
|
||||
import { FileAttributeConfig } from '@redaction/red-ui-http';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
|
||||
@Component({
|
||||
@ -10,33 +10,36 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
})
|
||||
export class ConfirmDeleteFileAttributeDialogComponent {
|
||||
public fileAttribute: FileAttributeConfig;
|
||||
public ruleSetId: string;
|
||||
public checkboxes = [{ value: false }, { value: false }];
|
||||
public checkboxes = [
|
||||
{ value: false, label: 'impacted-documents.' + this.type },
|
||||
{ value: false, label: 'lost-details' }
|
||||
];
|
||||
public showToast = false;
|
||||
|
||||
constructor(
|
||||
private readonly _appStateService: AppStateService,
|
||||
private readonly _fileAttributesService: FileAttributesControllerService,
|
||||
public dialogRef: MatDialogRef<ConfirmDeleteFileAttributeDialogComponent>,
|
||||
@Inject(MAT_DIALOG_DATA) public data: { fileAttribute: FileAttributeConfig; ruleSetId: string }
|
||||
@Inject(MAT_DIALOG_DATA) public data: FileAttributeConfig
|
||||
) {
|
||||
this.fileAttribute = data.fileAttribute;
|
||||
this.ruleSetId = data.ruleSetId;
|
||||
this.fileAttribute = data;
|
||||
}
|
||||
|
||||
public get valid() {
|
||||
return this.checkboxes[0].value && this.checkboxes[1].value;
|
||||
}
|
||||
|
||||
async deleteFileAttribute() {
|
||||
public deleteFileAttribute() {
|
||||
if (this.valid) {
|
||||
await this._fileAttributesService.deleteFileAttributesConfiguration(this.ruleSetId, this.fileAttribute.id).toPromise();
|
||||
this.dialogRef.close(true);
|
||||
} else {
|
||||
this.showToast = true;
|
||||
}
|
||||
}
|
||||
|
||||
public get type(): 'bulk' | 'single' {
|
||||
return !this.fileAttribute ? 'bulk' : 'single';
|
||||
}
|
||||
|
||||
public cancel() {
|
||||
this.dialogRef.close();
|
||||
}
|
||||
|
||||
@ -14,11 +14,18 @@
|
||||
<div class="red-input-group required w-250">
|
||||
<mat-form-field floatLabel="always">
|
||||
<mat-label>{{ 'file-attributes-csv-import.key-column' | translate }}</mat-label>
|
||||
<mat-select formControlName="filenameMappingColumnHeaderName">
|
||||
<mat-option *ngFor="let field of parseResult?.meta?.fields" [value]="field">
|
||||
<input
|
||||
type="text"
|
||||
[placeholder]="'file-attributes-csv-import.key-column-placeholder' | translate"
|
||||
matInput
|
||||
formControlName="filenameMappingColumnHeaderName"
|
||||
[matAutocomplete]="auto"
|
||||
/>
|
||||
<mat-autocomplete autoActiveFirstOption #auto="matAutocomplete">
|
||||
<mat-option *ngFor="let field of filteredKeyOptions | async" [value]="field">
|
||||
{{ field }}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-autocomplete>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
@ -53,19 +60,37 @@
|
||||
}}</span>
|
||||
<span class="all-caps-label">{{ 'file-attributes-csv-import.selected' | translate: { value: activeFields.length } }}</span>
|
||||
</div>
|
||||
<div class="quick-activation">
|
||||
<span class="all-caps-label primary pointer" (click)="activateAll()" translate="file-attributes-csv-import.quick-activation.all"></span>
|
||||
<span
|
||||
class="all-caps-label primary pointer"
|
||||
(click)="deactivateAll()"
|
||||
translate="file-attributes-csv-import.quick-activation.none"
|
||||
></span>
|
||||
<div class="actions">
|
||||
<redaction-circle-button
|
||||
icon="red:search"
|
||||
(click)="isSearchOpen = !isSearchOpen"
|
||||
[attr.aria-expanded]="isSearchOpen"
|
||||
></redaction-circle-button>
|
||||
<div class="quick-activation">
|
||||
<span
|
||||
class="all-caps-label primary pointer"
|
||||
(click)="activateAll()"
|
||||
translate="file-attributes-csv-import.quick-activation.all"
|
||||
></span>
|
||||
<span
|
||||
class="all-caps-label primary pointer"
|
||||
(click)="deactivateAll()"
|
||||
translate="file-attributes-csv-import.quick-activation.none"
|
||||
></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="csv-header-pill-content">
|
||||
<div class="search-input-container" *ngIf="isSearchOpen">
|
||||
<redaction-search-input
|
||||
[form]="searchForm"
|
||||
placeholder="file-attributes-csv-import.search.placeholder"
|
||||
width="full"
|
||||
></redaction-search-input>
|
||||
</div>
|
||||
<div class="csv-header-pill-content" [class.search-open]="isSearchOpen">
|
||||
<div
|
||||
class="csv-header-pill"
|
||||
*ngFor="let field of relevantFields"
|
||||
*ngFor="let field of filteredFields"
|
||||
(mouseenter)="hoveredColumn = field.csvColumn"
|
||||
(mouseleave)="hoveredColumn = undefined"
|
||||
(click)="toggleFieldActive(field)"
|
||||
@ -81,13 +106,17 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="center">
|
||||
<div class="center" [class.collapsed]="!previewExpanded">
|
||||
<div class="csv-part-header">
|
||||
<div class="all-caps-label">
|
||||
{{ 'file-attributes-csv-import.csv-column' | translate }}
|
||||
{{ 'file-attributes-csv-import.csv-column' + (previewExpanded ? '' : '-preview') | translate }}
|
||||
</div>
|
||||
<redaction-circle-button
|
||||
[icon]="previewExpanded ? 'red:expand' : 'red:collapse'"
|
||||
(click)="previewExpanded = !previewExpanded"
|
||||
></redaction-circle-button>
|
||||
</div>
|
||||
<div class="csv-part-content">
|
||||
<div class="csv-part-content" [class.hidden]="!previewExpanded">
|
||||
<div class="no-hovered-column" *ngIf="!hoveredColumn" translate="file-attributes-csv-import.no-hovered-column"></div>
|
||||
<ng-container *ngFor="let row of parseResult?.data || []">
|
||||
<div *ngIf="row[hoveredColumn]">
|
||||
@ -47,7 +47,8 @@
|
||||
|
||||
.csv-part {
|
||||
display: flex;
|
||||
max-height: calc(90vh - 251px);
|
||||
min-height: calc(90vh - 240px);
|
||||
max-height: calc(90vh - 240px);
|
||||
|
||||
.csv-part-header {
|
||||
height: 50px;
|
||||
@ -60,16 +61,31 @@
|
||||
justify-content: space-between;
|
||||
padding: 0 16px;
|
||||
|
||||
> :not(.quick-activation) > *:not(:last-child)::after {
|
||||
> div:first-child > *:not(:last-child)::after {
|
||||
content: '-';
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
.quick-activation > :not(:last-child) {
|
||||
margin-right: 10px;
|
||||
.actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.quick-activation {
|
||||
margin-left: 12px;
|
||||
|
||||
> :not(:last-child) {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.search-input-container {
|
||||
background-color: $white;
|
||||
border-bottom: 1px solid $separator;
|
||||
padding: 8px 16px;
|
||||
}
|
||||
|
||||
.csv-part-content {
|
||||
overflow: auto;
|
||||
@include no-scroll-bar;
|
||||
@ -110,6 +126,10 @@
|
||||
height: calc(100% - 58px);
|
||||
@include no-scroll-bar;
|
||||
|
||||
&.search-open {
|
||||
height: calc(100% - 58px - 51px);
|
||||
}
|
||||
|
||||
.csv-header-pill {
|
||||
min-height: 32px;
|
||||
margin: 6px auto;
|
||||
@ -150,10 +170,34 @@
|
||||
min-width: 150px;
|
||||
background: $grey-2;
|
||||
border-right: 1px solid $separator;
|
||||
|
||||
&:not(.collapsed) redaction-circle-button {
|
||||
margin-right: -8px;
|
||||
}
|
||||
|
||||
&.collapsed {
|
||||
width: 50px;
|
||||
min-width: 50px;
|
||||
|
||||
> .csv-part-header {
|
||||
height: 100%;
|
||||
border-bottom: none;
|
||||
align-items: center;
|
||||
flex-direction: column-reverse;
|
||||
justify-content: flex-end;
|
||||
padding-top: 8px;
|
||||
|
||||
> .all-caps-label {
|
||||
transform: rotate(90deg) translateX(50%);
|
||||
white-space: nowrap;
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> .content-container {
|
||||
width: calc(100% - 527px);
|
||||
width: 100%;
|
||||
|
||||
redaction-table-col-name::ng-deep {
|
||||
> div {
|
||||
@ -191,7 +235,7 @@
|
||||
height: calc(100% - 80px);
|
||||
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 2fr 150px auto auto auto 11px;
|
||||
grid-template-columns: 30px minmax(0, 25vw) 150px auto auto auto 11px;
|
||||
|
||||
.table-item {
|
||||
> div {
|
||||
@ -233,7 +277,7 @@
|
||||
|
||||
&.has-scrollbar:hover {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 2fr 150px auto auto auto;
|
||||
grid-template-columns: 30px minmax(0, 25vw) 150px auto auto auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,10 +1,13 @@
|
||||
import { Component, Inject, OnInit, ViewChild } from '@angular/core';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { Component, Inject, ViewChild } from '@angular/core';
|
||||
import { AbstractControl, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms';
|
||||
import { AppStateService } from '../../../../state/app-state.service';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import * as Papa from 'papaparse';
|
||||
import { FileAttributesControllerService } from '@redaction/red-ui-http';
|
||||
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
||||
import { debounce } from '../../../../utils/debounce';
|
||||
import { Observable } from 'rxjs';
|
||||
import { map, startWith } from 'rxjs/operators';
|
||||
|
||||
enum FieldType {
|
||||
Text = 'Text',
|
||||
@ -27,7 +30,7 @@ interface Field {
|
||||
templateUrl: './file-attributes-csv-import-dialog.component.html',
|
||||
styleUrls: ['./file-attributes-csv-import-dialog.component.scss']
|
||||
})
|
||||
export class FileAttributesCsvImportDialogComponent implements OnInit {
|
||||
export class FileAttributesCsvImportDialogComponent {
|
||||
public csvFile: File;
|
||||
public ruleSetId: string;
|
||||
public parseResult: { data: any[]; errors: any[]; meta: any; fields: Field[] };
|
||||
@ -35,6 +38,11 @@ export class FileAttributesCsvImportDialogComponent implements OnInit {
|
||||
public activeFields: Field[] = [];
|
||||
public selectedFields: string[] = [];
|
||||
public baseConfigForm: FormGroup;
|
||||
public isSearchOpen = false;
|
||||
public searchForm: FormGroup;
|
||||
public filteredFields: Field[];
|
||||
public previewExpanded = true;
|
||||
public filteredKeyOptions: Observable<string[]>;
|
||||
|
||||
@ViewChild(CdkVirtualScrollViewport, { static: false }) cdkVirtualScrollViewport: CdkVirtualScrollViewport;
|
||||
|
||||
@ -48,26 +56,33 @@ export class FileAttributesCsvImportDialogComponent implements OnInit {
|
||||
this.csvFile = data.csv;
|
||||
this.ruleSetId = data.ruleSetId;
|
||||
|
||||
this.searchForm = this._formBuilder.group({
|
||||
query: ['']
|
||||
});
|
||||
|
||||
this.baseConfigForm = this._formBuilder.group({
|
||||
filenameMappingColumnHeaderName: [undefined, Validators.required],
|
||||
filenameMappingColumnHeaderName: ['', [Validators.required, this._autocompleteStringValidator()]],
|
||||
delimiter: [undefined, Validators.required],
|
||||
encoding: ['UTF-8', Validators.required]
|
||||
});
|
||||
|
||||
this._readFile();
|
||||
|
||||
this.searchForm.valueChanges.subscribe((value) => this._executeSearch(value));
|
||||
}
|
||||
|
||||
get relevantFields() {
|
||||
return this.parseResult?.fields.filter((f) => this.getEntries(f.csvColumn) > 0);
|
||||
@debounce(200)
|
||||
private _executeSearch(value: { query: string }) {
|
||||
this.filteredFields = this.parseResult.fields.filter((f) => f.csvColumn.toLowerCase().includes(value.query.toLowerCase()));
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
setTimeout(() => {
|
||||
// Calculate viewport size after dialog is completely expanded
|
||||
if (this.cdkVirtualScrollViewport) {
|
||||
this.cdkVirtualScrollViewport.checkViewportSize();
|
||||
private _autocompleteStringValidator(): ValidatorFn {
|
||||
return (control: AbstractControl): { [key: string]: any } | null => {
|
||||
if ((this.parseResult?.meta?.fields || []).indexOf(control.value) !== -1) {
|
||||
return null; /* valid option selected */
|
||||
}
|
||||
}, 500);
|
||||
return { invalidAutocompleteString: { value: control.value } };
|
||||
};
|
||||
}
|
||||
|
||||
private _readFile() {
|
||||
@ -82,7 +97,12 @@ export class FileAttributesCsvImportDialogComponent implements OnInit {
|
||||
this.baseConfigForm.patchValue({ delimiter: this.parseResult.meta.delimiter });
|
||||
}
|
||||
this.parseResult.fields = this.parseResult.meta.fields.map((field) => this._buildAttribute(field));
|
||||
console.log(this.parseResult);
|
||||
this.filteredFields = [...this.parseResult.fields];
|
||||
|
||||
this.filteredKeyOptions = this.baseConfigForm.get('filenameMappingColumnHeaderName').valueChanges.pipe(
|
||||
startWith(''),
|
||||
map((value: string) => this.parseResult.meta.fields.filter((field) => field.toLowerCase().indexOf(value.toLowerCase()) !== -1))
|
||||
);
|
||||
});
|
||||
reader.readAsText(this.csvFile, this.baseConfigForm.get('encoding').value);
|
||||
}
|
||||
@ -4,7 +4,7 @@ import { Colors, DictionaryControllerService } from '@redaction/red-ui-http';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { SortingOption, SortingService } from '../../../../services/sorting.service';
|
||||
import { PermissionsService } from '../../../../services/permissions.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog-service.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-default-colors-screen',
|
||||
|
||||
@ -9,7 +9,7 @@ import { PermissionsService } from '../../../../services/permissions.service';
|
||||
import { FormBuilder, FormGroup } from '@angular/forms';
|
||||
import { debounce } from '../../../../utils/debounce';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { AdminDialogService } from '../../services/admin-dialog-service.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-dictionary-listing-screen',
|
||||
|
||||
@ -11,7 +11,7 @@ import { Observable } from 'rxjs';
|
||||
import { saveAs } from 'file-saver';
|
||||
import { ComponentHasChanges } from '../../../../guards/can-deactivate.guard';
|
||||
import { FormBuilder, FormGroup } from '@angular/forms';
|
||||
import { AdminDialogService } from '../../services/admin-dialog-service.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
|
||||
declare var ace;
|
||||
|
||||
|
||||
@ -37,6 +37,17 @@
|
||||
{{ 'file-attributes-listing.table-header.title' | translate: { length: displayedAttributes.length } }}
|
||||
</span>
|
||||
|
||||
<redaction-circle-button
|
||||
*ngIf="areSomeAttributesSelected"
|
||||
tooltip="file-attributes-listing.bulk-actions.delete"
|
||||
type="dark-bg"
|
||||
icon="red:trash"
|
||||
(click)="openConfirmDeleteAttributeDialog($event)"
|
||||
>
|
||||
</redaction-circle-button>
|
||||
|
||||
<mat-spinner *ngIf="loading" diameter="15"></mat-spinner>
|
||||
|
||||
<div class="attributes-actions-container">
|
||||
<redaction-search-input [form]="searchForm" [placeholder]="'file-attributes-listing.search'"></redaction-search-input>
|
||||
<input #fileInput (change)="importCSV($event.target['files'])" class="csv-input" type="file" accept=".csv" />
|
||||
@ -69,10 +80,10 @@
|
||||
column="name"
|
||||
></redaction-table-col-name>
|
||||
|
||||
<!-- <redaction-table-col-name label="file-attributes-listing.table-col-names.created-by" class="flex-center"></redaction-table-col-name>-->
|
||||
|
||||
<redaction-table-col-name label="file-attributes-listing.table-col-names.read-only" class="flex-center"></redaction-table-col-name>
|
||||
|
||||
<redaction-table-col-name label="file-attributes-listing.table-col-names.csv-column"></redaction-table-col-name>
|
||||
|
||||
<div></div>
|
||||
|
||||
<div class="scrollbar-placeholder"></div>
|
||||
@ -88,21 +99,19 @@
|
||||
<mat-icon class="selection-icon active" *ngIf="isAttributeSelected(attribute)" svgIcon="red:radio-selected"></mat-icon>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ attribute.label }}
|
||||
<div class="label">
|
||||
<span>{{ attribute.label }}</span>
|
||||
</div>
|
||||
<!-- TODO-->
|
||||
<!-- <div class="center">-->
|
||||
<!-- <redaction-initials-avatar [userId]="attribute.userId" [withName]="true" size="large"></redaction-initials-avatar>-->
|
||||
<!-- </div>-->
|
||||
<div class="center">
|
||||
<redaction-circle-button
|
||||
<div class="center read-only">
|
||||
<mat-icon
|
||||
svgIcon="red:read-only"
|
||||
*ngIf="!attribute.editable"
|
||||
type="dark-bg"
|
||||
icon="red:read-only"
|
||||
tooltip="file-attributes-listing.read-only"
|
||||
[dummy]="true"
|
||||
></redaction-circle-button>
|
||||
[matTooltip]="'file-attributes-listing.read-only' | translate"
|
||||
matTooltipPosition="above"
|
||||
></mat-icon>
|
||||
</div>
|
||||
<div>
|
||||
{{ attribute.csvColumnHeader }}
|
||||
</div>
|
||||
<div class="actions-container">
|
||||
<div class="action-buttons">
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
@import '../../../../../assets/styles/red-mixins';
|
||||
|
||||
.page-header .actions {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
@ -30,7 +32,7 @@ redaction-table-col-name::ng-deep {
|
||||
|
||||
cdk-virtual-scroll-viewport {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 1fr 1fr 3fr 11px;
|
||||
grid-template-columns: auto 2fr 1fr 2fr 3fr 11px;
|
||||
|
||||
.table-item {
|
||||
> div:not(.scrollbar-placeholder) {
|
||||
@ -41,13 +43,22 @@ redaction-table-col-name::ng-deep {
|
||||
&.center {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
&.label span {
|
||||
@include line-clamp(1);
|
||||
}
|
||||
|
||||
&.read-only mat-icon {
|
||||
width: 14px;
|
||||
height: 34px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.has-scrollbar:hover {
|
||||
::ng-deep.cdk-virtual-scroll-content-wrapper {
|
||||
grid-template-columns: auto 1fr 1fr 3fr;
|
||||
grid-template-columns: auto 2fr 1fr 2fr 3fr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ import { AppStateService } from '../../../../state/app-state.service';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { debounce } from '../../../../utils/debounce';
|
||||
import { SortingOption, SortingService } from '../../../../services/sorting.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog-service.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-file-attributes-listing-screen',
|
||||
@ -19,6 +19,7 @@ export class FileAttributesListingScreenComponent implements OnInit {
|
||||
public displayedAttributes: FileAttributeConfig[] = [];
|
||||
public selectedFileAttributeIds: string[] = [];
|
||||
public viewReady = false;
|
||||
public loading = false;
|
||||
|
||||
@ViewChild('fileInput') private _fileInput: ElementRef;
|
||||
|
||||
@ -45,14 +46,17 @@ export class FileAttributesListingScreenComponent implements OnInit {
|
||||
}
|
||||
|
||||
private async _loadData() {
|
||||
this.viewReady = false;
|
||||
try {
|
||||
const response = await this._fileAttributesService.getFileAttributesConfiguration(this._appStateService.activeRuleSetId).toPromise();
|
||||
this.attributes = response?.fileAttributeConfigs || [];
|
||||
} catch (e) {
|
||||
} finally {
|
||||
// Remove potentially deleted items
|
||||
this.selectedFileAttributeIds = this.selectedFileAttributeIds.filter((id) => !!this.attributes.find((attr) => attr.id === id));
|
||||
|
||||
this._executeSearch();
|
||||
this.viewReady = true;
|
||||
this.loading = false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,7 +78,9 @@ export class FileAttributesListingScreenComponent implements OnInit {
|
||||
|
||||
public openAddEditAttributeDialog($event: MouseEvent, fileAttribute?: FileAttributeConfig) {
|
||||
$event.stopPropagation();
|
||||
this._dialogService.openAddEditFileAttributeDialog(fileAttribute, this._appStateService.activeRuleSetId, async () => {
|
||||
this._dialogService.openAddEditFileAttributeDialog(fileAttribute, this._appStateService.activeRuleSetId, async (newValue: FileAttributeConfig) => {
|
||||
this.loading = true;
|
||||
await this._fileAttributesService.setFileAttributesConfiguration(newValue, this._appStateService.activeRuleSetId).toPromise();
|
||||
await this._loadData();
|
||||
});
|
||||
}
|
||||
@ -82,6 +88,12 @@ export class FileAttributesListingScreenComponent implements OnInit {
|
||||
public openConfirmDeleteAttributeDialog($event: MouseEvent, fileAttribute?: FileAttributeConfig) {
|
||||
$event.stopPropagation();
|
||||
this._dialogService.openConfirmDeleteFileAttributeDialog(fileAttribute, this._appStateService.activeRuleSetId, async () => {
|
||||
this.loading = true;
|
||||
if (!!fileAttribute) {
|
||||
await this._fileAttributesService.deleteFileAttribute(this._appStateService.activeRuleSetId, fileAttribute.id).toPromise();
|
||||
} else {
|
||||
await this._fileAttributesService.deleteFileAttributes(this.selectedFileAttributeIds, this._appStateService.activeRuleSetId).toPromise();
|
||||
}
|
||||
await this._loadData();
|
||||
});
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ import { FormBuilder, FormGroup } from '@angular/forms';
|
||||
import { debounce } from '../../../../utils/debounce';
|
||||
import { RuleSetModel } from '@redaction/red-ui-http';
|
||||
import { UserPreferenceService } from '../../../../services/user-preference.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog-service.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-rule-sets-listing-screen',
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { PermissionsService } from '../../../../services/permissions.service';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { AdminDialogService } from '../../services/admin-dialog-service.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { SmtpConfigurationControllerService, SMTPConfigurationModel } from '@redaction/red-ui-http';
|
||||
import { NotificationService, NotificationType } from '../../../../services/notification.service';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
|
||||
@ -4,7 +4,7 @@ import { UserService } from '../../../../services/user.service';
|
||||
import { RuleSetModel, User, UserControllerService } from '@redaction/red-ui-http';
|
||||
import { FormBuilder, FormGroup } from '@angular/forms';
|
||||
import { debounce } from '../../../../utils/debounce';
|
||||
import { AdminDialogService } from '../../services/admin-dialog-service.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { DoughnutChartConfig } from '../../../shared/components/simple-doughnut-chart/simple-doughnut-chart.component';
|
||||
import { TranslateChartService } from '../../../../services/translate-chart.service';
|
||||
|
||||
@ -24,7 +24,7 @@ import { TranslateService } from '@ngx-translate/core';
|
||||
import { SmtpAuthDialogComponent } from '../dialogs/smtp-auth-dialog/smtp-auth-dialog.component';
|
||||
import { AddEditUserDialogComponent } from '../dialogs/add-edit-user-dialog/add-edit-user-dialog.component';
|
||||
import { ConfirmDeleteUsersDialogComponent } from '../dialogs/confirm-delete-users-dialog/confirm-delete-users-dialog.component';
|
||||
import { FileAttributesCsvImportDialogComponent } from '../screens/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component';
|
||||
import { FileAttributesCsvImportDialogComponent } from '../dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component';
|
||||
|
||||
const largeDialogConfig = {
|
||||
width: '90vw',
|
||||
@ -166,7 +166,7 @@ export class AdminDialogService {
|
||||
): MatDialogRef<ConfirmDeleteFileAttributeDialogComponent> {
|
||||
const ref = this._dialog.open(ConfirmDeleteFileAttributeDialogComponent, {
|
||||
...dialogConfig,
|
||||
data: { fileAttribute, ruleSetId },
|
||||
data: fileAttribute,
|
||||
autoFocus: true
|
||||
});
|
||||
|
||||
@ -15,6 +15,7 @@ import { MatDatepickerModule } from '@angular/material/datepicker';
|
||||
import { MatInputModule } from '@angular/material/input';
|
||||
import { MatSelectModule } from '@angular/material/select';
|
||||
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
||||
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
||||
|
||||
const matImports = [
|
||||
MatDialogModule,
|
||||
@ -32,7 +33,8 @@ const matImports = [
|
||||
MatDatepickerModule,
|
||||
MatInputModule,
|
||||
MatSelectModule,
|
||||
MatProgressBarModule
|
||||
MatProgressBarModule,
|
||||
MatAutocompleteModule
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
||||
@ -7,9 +7,7 @@
|
||||
[disabled]="disabled"
|
||||
[class.small]="small"
|
||||
[class.overlay]="showDot"
|
||||
[class.dummy]="dummy"
|
||||
mat-icon-button
|
||||
[disableRipple]="dummy"
|
||||
>
|
||||
<mat-icon [svgIcon]="icon"></mat-icon>
|
||||
</button>
|
||||
|
||||
@ -37,8 +37,4 @@ button {
|
||||
background-color: $yellow-2;
|
||||
}
|
||||
}
|
||||
|
||||
&.dummy {
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,7 +15,6 @@ export class CircleButtonComponent implements OnInit {
|
||||
@Input() disabled = false;
|
||||
@Input() small = false;
|
||||
@Input() type: 'default' | 'primary' | 'warn' | 'dark-bg' = 'default';
|
||||
@Input() dummy = false;
|
||||
@Input() removeTooltip = false;
|
||||
@Output() action = new EventEmitter<any>();
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<form [formGroup]="form">
|
||||
<div class="red-input-group" [style.width]="width + 'px'" [style.max-width]="width + 'px'">
|
||||
<div class="red-input-group" [style.width]="computedWidth" [style.max-width]="computedWidth">
|
||||
<input [placeholder]="placeholder | translate" class="with-icon mt-0" formControlName="query" name="query" type="text" />
|
||||
<mat-icon *ngIf="!hasContent" class="icon-right" svgIcon="red:search"></mat-icon>
|
||||
<mat-icon *ngIf="hasContent" class="icon-right pointer" svgIcon="red:close" (click)="clearContent()"></mat-icon>
|
||||
|
||||
@ -9,7 +9,7 @@ import { FormGroup } from '@angular/forms';
|
||||
export class SearchInputComponent implements OnInit {
|
||||
@Input() form: FormGroup;
|
||||
@Input() placeholder: string;
|
||||
@Input() width = 250;
|
||||
@Input() width: number | 'full' = 250;
|
||||
|
||||
constructor() {}
|
||||
|
||||
@ -22,4 +22,8 @@ export class SearchInputComponent implements OnInit {
|
||||
public clearContent() {
|
||||
this.form.patchValue({ query: '' });
|
||||
}
|
||||
|
||||
public get computedWidth() {
|
||||
return this.width === 'full' ? '100%' : `${this.width}px`;
|
||||
}
|
||||
}
|
||||
|
||||
@ -763,28 +763,44 @@
|
||||
"table-header": {
|
||||
"title": "{{length}} file attributes"
|
||||
},
|
||||
"bulk-actions": {
|
||||
"delete": "Delete Selected Attributes"
|
||||
},
|
||||
"table-col-names": {
|
||||
"name": "Name",
|
||||
"created-by": "Created by",
|
||||
"read-only": "Read-Only"
|
||||
"read-only": "Read-Only",
|
||||
"csv-column": "CSV Column"
|
||||
},
|
||||
"no-data": {
|
||||
"title": "There are no file attributes yet."
|
||||
},
|
||||
"read-only": "Read-only",
|
||||
"action": {
|
||||
"edit": "Edit attribute",
|
||||
"delete": "Delete attribute"
|
||||
"edit": "Edit Attribute",
|
||||
"delete": "Delete Attribute"
|
||||
},
|
||||
"upload-csv": "Upload File Attributes Configuration"
|
||||
},
|
||||
"confirm-delete-file-attribute": {
|
||||
"title": "Delete {{name}}",
|
||||
"title": {
|
||||
"single": "Delete {{name}}",
|
||||
"bulk": "Delete File Attributes"
|
||||
},
|
||||
"warning": "Warning: this cannot be undone!",
|
||||
"delete": "Delete Attribute",
|
||||
"cancel": "Keep Attribute",
|
||||
"checkbox-1": "All documents it is used on will be impacted",
|
||||
"checkbox-2": "All inputted details on the documents will be lost",
|
||||
"delete": {
|
||||
"single": "Delete Attribute",
|
||||
"bulk": "Delete Attributes"
|
||||
},
|
||||
"cancel": {
|
||||
"single": "Keep Attribute",
|
||||
"bulk": "Keep Attributes"
|
||||
},
|
||||
"impacted-documents": {
|
||||
"single": "All documents it is used on will be impacted",
|
||||
"bulk": "All documents they are used on will be impacted"
|
||||
},
|
||||
"lost-details": "All inputted details on the documents will be lost",
|
||||
"toast-error": "Please confirm that you understand the ramifications of your action!"
|
||||
},
|
||||
"confirm-delete-users": {
|
||||
@ -1138,12 +1154,16 @@
|
||||
"encoding": "Encoding",
|
||||
"encoding-placeholder": "UTF-8",
|
||||
"key-column": "Key Column",
|
||||
"key-column-placeholder": "Select Column ...",
|
||||
"key-column-placeholder": "Select column...",
|
||||
"total-rows": "{{rows}} rows in total",
|
||||
"available": "{{value}} available",
|
||||
"selected": "{{value}} selected",
|
||||
"csv-column": "CSV Column",
|
||||
"csv-column-preview": "CSV Column Preview",
|
||||
"no-hovered-column": "Preview CSV column by hovering the entry.",
|
||||
"search": {
|
||||
"placeholder": "Search by column name..."
|
||||
},
|
||||
"table-header": {
|
||||
"title": "{{length}} file attributes",
|
||||
"actions": {
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>analyse</title>
|
||||
<g id="analyse" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M16.5,89 L16.5,100 L0,100 L0,89 L16.5,89 Z M44.5,89 L44.5,100 L28,100 L28,89 L44.5,89 Z M72,89 L72,100 L55.5,100 L55.5,89 L72,89 Z M100,89 L100,100 L83.5,100 L83.5,89 L100,89 Z M16.5,66.5 L16.5,77.5 L0,77.5 L0,66.5 L16.5,66.5 Z M44.5,66.5 L44.5,77.5 L28,77.5 L28,66.5 L44.5,66.5 Z M72,66.5 L72,77.5 L55.5,77.5 L55.5,66.5 L72,66.5 Z M100,66.5 L100,77.5 L83.5,77.5 L83.5,66.5 L100,66.5 Z M16.5,44.5 L16.5,55.5 L0,55.5 L0,44.5 L16.5,44.5 Z M44.5,44.5 L44.5,55.5 L28,55.5 L28,44.5 L44.5,44.5 Z M100,44.5 L100,55.5 L83.5,55.5 L83.5,44.5 L100,44.5 Z M44.5,22 L44.5,33 L28,33 L28,22 L44.5,22 Z M100,22 L100,33 L83.5,33 L83.5,22 L100,22 Z M44.5,0 L44.5,11 L28,11 L28,0 L44.5,0 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>163F9A92-B60D-42FF-80C8-1135F4B95ECC</title>
|
||||
<g id="Styleguide" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Styleguide-Actions" transform="translate(-62.000000, -567.000000)" fill="currentColor" fill-rule="nonzero">
|
||||
<g id="Group-6" transform="translate(52.000000, 557.000000)">
|
||||
|
||||
|
Before Width: | Height: | Size: 992 B After Width: | Height: | Size: 936 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>arrow-down</title>
|
||||
<g id="Styleguide" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Styleguide-Buttons" transform="translate(-469.000000, -757.000000)">
|
||||
<rect x="0" y="0" width="904" height="906"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 746 B After Width: | Height: | Size: 716 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>right_expandable</title>
|
||||
<g id="right_expandable" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<polygon id="Fill-1" fill="currentColor" transform="translate(7.000000, 7.000000) rotate(-90.000000) translate(-7.000000, -7.000000) " points="7 9 10 5 4 5"></polygon>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 505 B After Width: | Height: | Size: 469 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>A52380C8-F72C-425E-8B18-75F0A16E2FA9</title>
|
||||
<defs>
|
||||
<rect id="path-1" x="0" y="61" width="1440" height="50"></rect>
|
||||
<filter x="-0.5%" y="-10.0%" width="101.0%" height="128.0%" filterUnits="objectBoundingBox" id="filter-2">
|
||||
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.0 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>assign</title>
|
||||
<g id="assign" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M35,50 C54.5,50 70,65.5 70,85 L70,85 L70,100 L0,100 L0,85 C0,65.5 15.5,50 35,50 Z M35,60 C21,60 10,71 10,85 L10,85 L10,90 L60,90 L60,85 C60,71 49,60 35,60 Z M35,5 C46,5 55,14 55,25 C55,36 46,45 35,45 C24,45 15,36 15,25 C15,14 24,5 35,5 Z M85,0 L85,15 L100,15 L100,25 L85,25 L85,40 L75,40 L75,25 L60,25 L60,15 L75,15 L75,0 L85,0 Z M35,15 C29.5,15 25,19.5 25,25 C25,30.5 29.5,35 35,35 C40.5,35 45,30.5 45,25 C45,19.5 40.5,15 35,15 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 830 B After Width: | Height: | Size: 804 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>status</title>
|
||||
<g id="Styleguide" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Styleguide-Actions" transform="translate(-608.000000, -651.000000)" fill="currentColor" fill-rule="nonzero">
|
||||
<g id="Group-6" transform="translate(598.000000, 641.000000)">
|
||||
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>calendar</title>
|
||||
<g id="calendar" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M35,70 L35,80 L25,80 L25,70 L35,70 Z M55,70 L55,80 L45,80 L45,70 L55,70 Z M35,55 L35,65 L25,65 L25,55 L35,55 Z M55,55 L55,65 L45,65 L45,55 L55,55 Z M75,55 L75,65 L65,65 L65,55 L75,55 Z M55,40 L55,50 L45,50 L45,40 L55,40 Z M75,40 L75,50 L65,50 L65,40 L75,40 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
<path d="M90,0 L10,0 C4.5,0 0,4.5 0,10 L0,90 C0,95.5 4.5,100 10,100 L90,100 C95.5,100 100,95.5 100,90 L100,10 C100,4.5 95.5,0 90,0 Z M10,90 L10,10 L90,10 L90,90 L10,90 Z" id="Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="10px" height="10px" viewBox="0 0 10 10" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>5331E3A6-DD6D-43B9-9CA0-C8B876D10B59</title>
|
||||
<g id="Settings" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="02.3-Dictionary-Details" transform="translate(-1111.000000, -204.000000)">
|
||||
<rect x="0" y="0" width="1440" height="705"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>close</title>
|
||||
<g id="close" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
|
||||
<path
|
||||
d="M93,0 L100,7 L57,50 L100,93 L93,100 L50,57 L7,100 L3.55271368e-15,93 L43,50 L3.55271368e-15,7 L7,0 L50,43 L93,0 Z"
|
||||
|
||||
|
Before Width: | Height: | Size: 480 B After Width: | Height: | Size: 455 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>5B0A44C3-61D4-4E26-9E1A-B63DF5709D7D</title>
|
||||
<g id="Projects-&-Documents" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="04.-Document-Hover" transform="translate(-1400.000000, -137.000000)">
|
||||
<rect x="0" y="0" width="1440" height="980"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1006 B After Width: | Height: | Size: 950 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>A3E6003E-4D04-4848-8D81-41796CEA5098</title>
|
||||
<g id="Comments" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="02.-Show-More/Less" transform="translate(-1159.000000, -306.000000)">
|
||||
<g id="Group-3" transform="translate(1159.000000, 306.000000)" fill="currentColor" fill-rule="nonzero">
|
||||
|
||||
|
Before Width: | Height: | Size: 975 B After Width: | Height: | Size: 919 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>comments</title>
|
||||
<g id="comments" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M50,0 C25,0 5,20 5,45 C5,55.5 8.5,65 15,73 L15,100 L44,89.5 C46.5,90 48,90 50,90 C75,90 95,70 95,45 C95,20 75,0 50,0 Z M50,80 C48.5,80 46.5,80 44.5,79.5 L43,79.5 L25,86 L25,69.5 L23.5,68 C18,61.5 15,53.5 15,45 C15,25.5 30.5,10 50,10 C69.5,10 85,25.5 85,45 C85,64.5 69.5,80 50,80 Z" id="Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 675 B After Width: | Height: | Size: 647 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="10px" height="10px" viewBox="0 0 10 10" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>6C0B3F0C-53AF-4E50-8C71-BCE07198E584</title>
|
||||
<g id="Settings" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="01.0-Rule-Sets" transform="translate(-40.000000, -241.000000)">
|
||||
<rect x="0" y="0" width="1440" height="705"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>document</title>
|
||||
<g id="document" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
|
||||
<path d="M90,0 L90,100 L10,100 L10,0 L90,0 Z M80,10 L20,10 L20,90 L80,90 L80,10 Z M50,60 L50,70 L30,70 L30,60 L50,60 Z M70,40 L70,50 L30,50 L30,40 L70,40 Z M70,20 L70,30 L30,30 L30,20 L70,20 Z" id="Combined-Shape" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 576 B After Width: | Height: | Size: 548 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>download</title>
|
||||
<g id="download" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M10,60 L10,90 L90,90 L90,60 L100,60 L100,100 L0,100 L0,60 L10,60 Z M55,0 L55,61 L68,48 L75,55 L50,80 L25,55 L32,48 L45,61 L45,0 L55,0 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 539 B After Width: | Height: | Size: 511 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>edit</title>
|
||||
<g id="edit" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M97.0465218,17 L83.0398073,3 C79.0378889,-1 72.5347714,-1 69.0330928,3 L0,71.5 L0,100 L28.5136688,100 L97.0465218,31 C102.54916,25.5 99.047481,19 97.0465218,17 Z M24.0115105,90 L10.0047961,90 L10.0047961,76 L62.0297356,24 L76.03645,38 L24.0115105,90 Z M83.0398073,31 L69.0330928,17 L76.03645,10 L90.0431645,24 L83.0398073,31 Z" id="Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 713 B After Width: | Height: | Size: 689 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="10px" height="10px" viewBox="0 0 10 10" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>D2E1BFB9-9086-46E0-98F5-F3E2898811B0</title>
|
||||
<g id="Settings" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="01.-Dictionaries" transform="translate(-72.000000, -241.000000)">
|
||||
<rect x="0" y="0" width="1440" height="705"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>minimize</title>
|
||||
<g id="minimize" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M40,60 L40,90 L30,90 L30,77 L7,100 L0,93 L23,70 L10,70 L10,60 L40,60 Z M90,60 L90,70 L77,70 L100,93 L93,100 L70,77 L70,90 L60,90 L60,60 L90,60 Z M93,0 L100,7 L77,30 L90,30 L90,40 L60,40 L60,10 L70,10 L70,23 L93,0 Z M7,0 L30,23 L30,10 L40,10 L40,40 L10,40 L10,30 L23,30 L0,7 L7,0 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 684 B After Width: | Height: | Size: 656 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>AED16F82-54B2-4F74-8F6F-39C215879618</title>
|
||||
<g id="Projects-&-Documents" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="04.-Collapsed-Details" transform="translate(-1403.000000, -137.000000)">
|
||||
<rect x="0" y="0" width="1440" height="980"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>folder</title>
|
||||
<g id="folder" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M43,15 L38,5 L0,5 L0,95 L100,95 L100,15 L43,15 Z M32,15 L37,25 L55.5,25 L52,30 L10,30 L10,15 L32,15 Z M90,85 L10,85 L10,40 L57.5,40 L67.5,25 L90,25 L90,85 Z" id="Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 547 B After Width: | Height: | Size: 521 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>full screen</title>
|
||||
<g id="full-screen" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M36.5,56.5 L43.5,63.5 L17,90 L30,90 L30,100 L0,100 L0,70 L10,70 L10,83 L36.5,56.5 Z M63.5,56.5 L90,83 L90,70 L100,70 L100,100 L70,100 L70,90 L83,90 L56.5,63.5 L63.5,56.5 Z M100,0 L100,30 L90,30 L90,17 L63.5,43.5 L56.5,36.5 L83,10 L70,10 L70,0 L100,0 Z M30,0 L30,10 L17,10 L43.5,36.5 L36.5,43.5 L10,17 L10,30 L0,30 L0,0 L30,0 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 736 B After Width: | Height: | Size: 705 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>info</title>
|
||||
<g id="info" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M50,0 C77.5,0 100,22.5 100,50 C100,77.5 77.5,100 50,100 C22.5,100 0,77.5 0,50 C0,22.5 22.5,0 50,0 Z M50,10 C28,10 10,28 10,50 C10,72 28,90 50,90 C72,90 90,72 90,50 C90,28 72,10 50,10 Z M50,38.25 C57.5,38.25 59.3203,42.6758 58.4805,48.1328 L55,70.7498 L55.0318998,70.7491065 C55.3367202,70.7391667 57.826087,70.5867565 62.5,68.2498 C62.5,68.2498 60,78.2498 50,78.2498 C42.5,78.2498 40.6797,73.824 41.5195,68.367 L45,45.75 L44.9681002,45.7506935 C44.6632798,45.7606333 42.173913,45.9130435 37.5,48.25 C37.5,48.25 40,38.25 50,38.25 Z M52.5,19.75 C56.6445,19.75 60,23.1094 60,27.25 C60,31.3906 56.6445,34.75 52.5,34.75 C48.3555,34.75 45,31.3906 45,27.25 C45,23.1094 48.3555,19.75 52.5,19.75 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.0 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>due</title>
|
||||
<g id="due" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M70.4893515,-9.9475983e-14 L62.4015412,33.8688525 L83,33.8688525 L43.936,99.999 L25.137,99.999 L32.8329308,67.7704918 L17,67.7704918 L33.1807168,-9.9475983e-14 L70.4893515,-9.9475983e-14 Z M57.9505865,9.83606557 L41.0222871,9.83606557 L29.5384402,57.9344262 L45.3723404,57.9344262 L37.2849872,91.8032787 L65.6971335,43.704918 L49.8632333,43.704918 L57.9505865,9.83606557 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 743 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>ED22EA6D-C390-4471-B1E4-6B17BA55D5F9</title>
|
||||
<g id="Annotations-Jump-to-" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="03.Jump-to-first-annotation" transform="translate(-1109.000000, -181.000000)">
|
||||
<rect x="0" y="0" width="1440" height="750"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>F189455C-659F-4467-9C15-B17B152A29C5</title>
|
||||
<g id="Annotations-Jump-to-" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="03.Jump-to-first-annotation" transform="translate(-1109.000000, -726.000000)">
|
||||
<rect x="0" y="0" width="1440" height="750"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Needs work</title>
|
||||
<g id="Needs-work" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M100,90 L100,100 L39,100 L39,90 L100,90 Z M70,0 L70,45 L60,45 L60,10 L10,10 L10,80 L30,80 L30,90 L0,90 L0,0 L70,0 Z M86,72 L86,82 L39,82 L39,72 L86,72 Z M62,54 L62,64 L39,64 L39,54 L62,54 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 597 B After Width: | Height: | Size: 567 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>AAFF7BC7-3583-4A2B-A91D-8A2F1A75D50E</title>
|
||||
<g id="Notifications" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="01.-Notifications-Dropdown" transform="translate(-1258.000000, -23.000000)">
|
||||
<rect x="0" y="0" width="1440" height="980"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.5 KiB |
@ -1,9 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>OCR</title>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="OCR" fill="#283241" fill-rule="nonzero">
|
||||
<path d="M10,70 L10,90 L30,90 L30,100 L0,100 L0,70 L10,70 Z M100,70 L100,100 L70,100 L70,90 L90,90 L90,70 L100,70 Z M54,63 L54,73 L24,73 L24,63 L54,63 Z M76,45 L76,55 L24,55 L24,45 L76,45 Z M76,27 L76,37 L24,37 L24,27 L76,27 Z M30,0 L30,10 L10,10 L10,30 L0,30 L0,0 L30,0 Z M100,0 L100,30 L90,30 L90,10 L70,10 L70,0 L100,0 Z"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 724 B After Width: | Height: | Size: 702 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="36px" height="40px" viewBox="0 0 36 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Page</title>
|
||||
<g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Artboard" transform="translate(-1099.000000, -440.000000)" fill="currentColor" fill-rule="nonzero">
|
||||
<path d="M1135,440 L1135,472 L1127,480 L1099,480 L1099,440 L1135,440 Z M1133.66667,441.333333 L1100.33333,441.333333 L1100.33333,478.666667 L1125.66667,478.666667 L1125.66667,470.666667 L1133.66667,470.666667 L1133.66667,441.333333 Z M1133.111,472 L1127,472 L1127,478.111 L1133.111,472 Z" id="Page"></path>
|
||||
|
||||
|
Before Width: | Height: | Size: 753 B After Width: | Height: | Size: 729 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>pages</title>
|
||||
<g id="pages" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
|
||||
<path d="M100,0 L100,80 L80,80 L80,100 L0,100 L0,20 L20,20 L20,0 L100,0 Z M20,30 L10,30 L10,90 L70,90 L70,80 L20,80 L20,30 Z M90,10 L30,10 L30,70 L90,70 L90,10 Z M80,40 L80,50 L40,50 L40,40 L80,40 Z M80,20 L80,30 L40,30 L40,20 L80,20 Z" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 593 B After Width: | Height: | Size: 568 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>dictionary</title>
|
||||
<g id="dictionary" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M95,0 L95,100 L20,100 C11.5,100 5,93.5 5,85 L5,85 L5,15 C5,6.5 11.5,0 20,0 L20,0 L95,0 Z M25,10 L20,10 C17,10 15,12 15,15 L15,15 L15,85 C15,88 17,90 20,90 L20,90 L25,90 L25,10 Z M85,10 L35,10 L35,90 L85,90 L85,10 Z M75,20 L75,50 L45,50 L45,20 L75,20 Z M65,30 L55,30 L55,40 L65,40 L65,30 Z" id="Combined-Shape" fill="#283241" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 691 B After Width: | Height: | Size: 661 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Redacted</title>
|
||||
<g id="Redacted" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<rect id="Rectangle" fill="#283241" x="0" y="0" width="16" height="16"></rect>
|
||||
<text id="H" font-family="Inter-SemiBold, Inter" font-size="11" font-weight="500" fill="#FFFFFF">
|
||||
|
||||
|
Before Width: | Height: | Size: 571 B After Width: | Height: | Size: 543 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>search</title>
|
||||
<g id="search" stroke="none" stroke-width="1" fill="#283241" fill-rule="evenodd">
|
||||
<path d="M95.5,74.5 L76.5,55.5 C78.5,50.5 79.5,45.5 79.5,40 C79.5,18 61.5,0 39.5,0 C18,0 0,18 0,40 C0,62 18,80 40,80 C45.5,80 51,79 55.5,77 L74.5,96 C77.5,99 81.5,100.5 85,100.5 C89,100.5 92.5,99 95.5,96 C101.5,90 101.5,80 95.5,74.5 Z M10,40 C10,23.5 23.5,10 40,10 C56.5,10 70,23.5 70,40 C70,56.5 56.5,70 40,70 C23.5,70 10,56.5 10,40 Z M88.5,88.5 C86.5,90.5 83.5,90.5 81.5,88.5 L64.5,71.5 C67,69.5 69.5,67 71.5,64.5 L88.5,81.5 C90.5,83.5 90.5,86.5 88.5,88.5 Z" id="Shape" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 825 B After Width: | Height: | Size: 799 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>plus_white</title>
|
||||
<g id="plus_white" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
|
||||
<polygon id="Path" fill-rule="nonzero" points="78 45 55 45 55 22 45 22 45 45 22 45 22 55 45 55 45 78 55 78 55 55 78 55"></polygon>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 469 B After Width: | Height: | Size: 439 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>BACD0033-A5B4-40C6-9A6E-99CC587814E4</title>
|
||||
<g id="Bulk-Actions" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="01.-Bulk-Actions" transform="translate(-10.000000, -127.000000)">
|
||||
<rect fill="none" x="0" y="0" width="1440" height="980"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>53931886-242F-46D3-AD2D-DBADB674ACDB</title>
|
||||
<g id="Bulk-Actions" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="01.-Bulk-Actions" transform="translate(-10.000000, -209.000000)">
|
||||
<rect fill="none" x="0" y="0" width="1440" height="980"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.4 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>9C81EE87-2992-4087-907E-26A83F796466</title>
|
||||
<g id="File-attributes" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Admin---File-attributes-list" transform="translate(-1154.000000, -212.000000)">
|
||||
<rect x="0" y="0" width="1440" height="900"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.4 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>ready_for_approval</title>
|
||||
<g id="ready_for_approval" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M50,0 C77.5,5.05166805e-15 100,22.5 100,50 C100,77.5 77.5,100 50,100 C22.5,100 -1.42108547e-14,77.5 -1.42108547e-14,50 C0,22.5 22.5,-5.05166805e-15 50,0 Z M50,10 C28,10 10,28 10,50 C10,72 28,90 50,90 C72,90 90,72 90,50 C90,28 72,10 50,10 Z M64,34 L71,41 L46,66 L31,51 L38,44 L46,52 L64,34 Z" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 694 B After Width: | Height: | Size: 656 B |
@ -1,4 +1,4 @@
|
||||
<svg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg"><title>icon / operation / multi select</title>
|
||||
<svg viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g fill="#868E96">
|
||||
<g>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>reanalyse</title>
|
||||
<g id="reanalyse" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="refresh" fill="currentColor" fill-rule="nonzero">
|
||||
<path d="M12.5,63.5 C18,79.5 33,90 50,90 C62,90 73.5,84.5 81,75 L81,75 L65,75 L65,65 L95,65 L95,95 L85,95 L85,85.5 C76,94.5 63.5,100 50,100 C29,100 10,86.5 3,67 L3,67 Z M50,0 C71,0 90,13.5 97,33 L97,33 L87.5,36.5 C82,20.5 67,10 50,10 C38,10 26.5,15.5 19,25 L19,25 L35,25 L35,35 L5,35 L5,5 L15,5 L15,14.5 C24.5,5.5 37,0 50,0 Z" id="Combined-Shape"></path>
|
||||
|
||||
|
Before Width: | Height: | Size: 764 B After Width: | Height: | Size: 735 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>report</title>
|
||||
<g id="report" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M90,0 C95.5,0 100,4.5 100,10 L100,10 L100,90 C100,95.5 95.5,100 90,100 L90,100 L10,100 C4.5,100 0,95.5 0,90 L0,90 L0,10 C0,4.5 4.5,0 10,0 L10,0 Z M90,10 L10,10 L10,90 L90,90 L90,10 Z M35,60 L35,80 L25,80 L25,60 L35,60 Z M55,30 L55,80 L45,80 L45,30 L55,30 Z M75,50 L75,80 L65,80 L65,50 L75,50 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 693 B After Width: | Height: | Size: 667 B |
@ -1,9 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="6px" height="6px" viewBox="0 0 6 6" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>right</title>
|
||||
<g id="right" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="down" fill="#283241">
|
||||
<polygon id="Fill-1" transform="translate(3.000000, 3.000000) rotate(-90.000000) translate(-3.000000, -3.000000) " points="3 5 6 1 -1.33216355e-14 1"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 525 B After Width: | Height: | Size: 501 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>search</title>
|
||||
<g id="search" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M95.5,74.5 L76.5,55.5 C78.5,50.5 79.5,45.5 79.5,40 C79.5,18 61.5,0 39.5,0 C18,0 0,18 0,40 C0,62 18,80 40,80 C45.5,80 51,79 55.5,77 L74.5,96 C77.5,99 81.5,100.5 85,100.5 C89,100.5 92.5,99 95.5,96 C101.5,90 101.5,80 95.5,74.5 Z M10,40 C10,23.5 23.5,10 40,10 C56.5,10 70,23.5 70,40 C70,56.5 56.5,70 40,70 C23.5,70 10,56.5 10,40 Z M88.5,88.5 C86.5,90.5 83.5,90.5 81.5,88.5 L64.5,71.5 C67,69.5 69.5,67 71.5,64.5 L88.5,81.5 C90.5,83.5 90.5,86.5 88.5,88.5 Z" id="Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 841 B After Width: | Height: | Size: 815 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="6px" height="14px" viewBox="0 0 6 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>sort-asc</title>
|
||||
<g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Artboard" transform="translate(-1212.000000, -325.000000)" >
|
||||
<polygon id="Fill-1" fill="currentColor" points="1215 338 1218 334 1212 334"></polygon>
|
||||
|
||||
|
Before Width: | Height: | Size: 699 B After Width: | Height: | Size: 671 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="6px" height="14px" viewBox="0 0 6 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>sort-desc</title>
|
||||
<g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Artboard" transform="translate(-1212.000000, -325.000000)" >
|
||||
<polygon id="Fill-1" fill="#28324180" points="1215 338 1218 334 1212 334"></polygon>
|
||||
|
||||
|
Before Width: | Height: | Size: 700 B After Width: | Height: | Size: 671 B |
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="15px" height="15px" viewBox="0 0 15 15" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>B14B1060-4D9C-4EEC-845D-CFA8258D2E16</title>
|
||||
<defs>
|
||||
<path
|
||||
d="M1028,576 L1412,576 C1416.41828,576 1420,579.581722 1420,584 L1420,873 C1420,877.418278 1416.41828,881 1412,881 L1028,881 C1023.58172,881 1020,877.418278 1020,873 L1020,584 C1020,579.581722 1023.58172,576 1028,576 Z"
|
||||
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.3 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="15px" height="15px" viewBox="0 0 15 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>98CDF1EA-D4BC-4B4A-A707-D85244677FBB</title>
|
||||
<defs>
|
||||
<path d="M8,0 L392,0 C396.418278,-8.11624501e-16 400,3.581722 400,8 L400,40 C400,44.418278 396.418278,48 392,48 L8,48 C3.581722,48 5.41083001e-16,44.418278 0,40 L0,8 C-5.41083001e-16,3.581722 3.581722,8.11624501e-16 8,0 Z" id="path-1"></path>
|
||||
<filter x="-6.8%" y="-50.0%" width="113.5%" height="212.5%" filterUnits="objectBoundingBox" id="filter-3">
|
||||
|
||||
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>F8E3057D-BE44-469F-9E28-9A04A0B36DF0</title>
|
||||
<defs>
|
||||
<rect id="path-1" x="0" y="61" width="1440" height="50"></rect>
|
||||
<filter x="-0.5%" y="-10.0%" width="101.0%" height="128.0%" filterUnits="objectBoundingBox" id="filter-2">
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>status</title>
|
||||
<g id="status" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M60.2247499,90 L60.2247499,100 L40.2247499,100 L40.2247499,90 L60.2247499,90 Z M50.2247499,0 C69.7247499,0 85.2247499,15.5 85.2247499,35 C85.2247499,45.5 80.7247499,55 72.7247499,62 C67.7247499,66 65.2247499,71.5 65.2247499,77.5 L65.2247499,77.5 L65.2247499,85 L35.2247499,85 L35.2247499,77.5 C35.2247499,71.5 32.2247499,66 27.2247499,61.5 C17.2247499,53 13.2247499,40.5 15.7247499,28 C18.7247499,14.5 31.2247499,0 50.2247499,0 Z M50.2247499,10 C37.2247499,10 27.7247499,20.5 25.7247499,30 C23.7247499,39 26.7247499,48 33.7247499,54 C40.7247499,59.5 44.7247499,67 45.2247499,75 L45.2247499,75 L55.2247499,75 C56.2247499,66.5 59.7247499,59 66.2247499,54 C71.7247499,49.5 75.2247499,42.5 75.2247499,35 C75.2247499,21 64.2247499,10 50.2247499,10 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>rule_sets</title>
|
||||
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="rule_sets" fill="currentColor" fill-rule="nonzero">
|
||||
<path d="M35,60 L35,95 L0,95 L0,60 L35,60 Z M100,85 L100,95 L45,95 L45,85 L100,85 Z M25,70 L10,70 L10,85 L25,85 L25,70 Z M100,60 L100,70 L45,70 L45,60 L100,60 Z M35,5 L35,40 L0,40 L0,5 L35,5 Z M100,30 L100,40 L45,40 L45,30 L100,30 Z M25,15 L10,15 L10,30 L25,30 L25,15 Z M100,5 L100,15 L45,15 L45,5 L100,5 Z"></path>
|
||||
|
||||
|
Before Width: | Height: | Size: 725 B After Width: | Height: | Size: 696 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>false_positive</title>
|
||||
<g id="false_positive" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path
|
||||
d="M70.0540046,8 L70.0540046,13 L18.1476125,13 C13.6557132,13 9.16381388,16.5 8.16561403,21 L0.180015248,61 C-0.319084676,64 0.180015248,67 2.17641494,69.5 C4.17281464,71.5 7.16741418,73 10.1620137,73 L23.1386117,73 C18.6467124,78.5 18.1476125,86 22.1404119,91.5 C24.6359115,95.5 29.1278108,98 34.1188101,98 C38.1116095,98 42.1044088,96.5 44.5999085,93.5 L65.0630053,73 L70.0540046,73 L70.0540046,78 L100,78 L100,8 L70.0540046,8 Z M61.0702059,63 L37.6125095,86.5 C36.6143097,87.5 35.6161098,88 34.1188101,88 C32.6215103,88 31.1242105,87 30.1260107,86 C28.6287109,84 29.1278108,81 31.1242105,79 L47.0954081,63 L10.1620137,63 L18.1476125,23 L70.0540046,23 L70.0540046,63 L61.0702059,63 Z M90.0180015,68 L80.036003,68 L80.036003,18 L90.0180015,18 L90.0180015,68 Z"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>false_negative</title>
|
||||
<g id="false_negative" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path
|
||||
d="M29.9459954,92 L29.9459954,87 L81.8523875,87 C86.3442868,87 90.8361861,83.5 91.834386,79 L99.8199848,39 C100.319085,36 99.8199848,33 97.8235851,30.5 C95.8271854,28.5 92.8325858,27 89.8379863,27 L76.8613883,27 C81.3532876,21.5 81.8523875,14 77.8595881,8.5 C75.3640885,4.5 70.8721892,2 65.8811899,2 C61.8883905,2 57.8955912,3.5 55.4000915,6.5 L34.9369947,27 L29.9459954,27 L29.9459954,22 L0,22 L0,92 L29.9459954,92 Z M38.9297941,37 L62.3874905,13.5 C63.3856903,12.5 64.3838902,12 65.8811899,12 C67.3784897,12 68.8757895,13 69.8739893,14 C71.3712891,16 70.8721892,19 68.8757895,21 L52.9045919,37 L89.8379863,37 L81.8523875,77 L29.9459954,77 L29.9459954,37 L38.9297941,37 Z M9.98199848,32 L19.963997,32 L19.963997,82 L9.98199848,82 L9.98199848,32 Z"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>trash</title>
|
||||
<g id="trash" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M85,10 L65,10 L65,0 L35,0 L35,10 L15,10 C12,10 10,12 10,15 C10,18 12,20 15,20 L15,85 C15,93.5 21.5,100 30,100 L70,100 C78.5,100 85,93.5 85,85 L85,20 C88,20 90,18 90,15 C90,12 88,10 85,10 Z M75,85 C75,88 73,90 70,90 L30,90 C27,90 25,88 25,85 L25,20 L75,20 L75,85 Z" id="Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 652 B After Width: | Height: | Size: 627 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>B3EA3E95-AC5D-4F73-ACEB-7F071103E161</title>
|
||||
<g id="Styleguide" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Styleguide-Actions" transform="translate(-62.000000, -609.000000)">
|
||||
<rect x="0" y="0" width="904" height="906"></rect>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="90px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>upload</title>
|
||||
<g id="upload" stroke="none" stroke-width="1" fill="currentColor" fill-rule="evenodd">
|
||||
<path d="M35,35 L35,45 L15,45 L15,90 L85,90 L85,45 L65,45 L65,35 L95,35 L95,100 L5,100 L5,35 L35,35 Z M50,0 L70,20 L63,27 L55,19 L55,70 L45,70 L45,19 L37,27 L30,20 L50,0 Z" id="Combined-Shape" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 550 B After Width: | Height: | Size: 524 B |
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>user</title>
|
||||
<g id="user" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M50,0 C77.5,0 100,22.5 100,50 C100,77.5 77.5,100 50,100 C22.5,100 0,77.5 0,50 C0,22.5 22.5,0 50,0 Z M50,60 C37.5,60 27,69.5 25.5,81.5 C32,87 40.5,90 50,90 C59.5,90 68,87 74.5,81.5 C73,69.5 62.5,60 50,60 Z M50,10 C28,10 10,28 10,50 C10,58.5 12.5,66.5 17,73 C22,59.5 35,50 50,50 C65,50 78,59.5 83,73 C87.5,66.5 90,58.5 90,50 C90,28 72,10 50,10 Z M50,15 C58.5,15 65,21.5 65,30 C65,38.5 58.5,45 50,45 C41.5,45 35,38.5 35,30 C35,21.5 41.5,15 50,15 Z M50,25 C47,25 45,27 45,30 C45,33 47,35 50,35 C53,35 55,33 55,30 C55,27 53,25 50,25 Z" id="Combined-Shape" fill="currentColor" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
|
||||
|
Before Width: | Height: | Size: 925 B After Width: | Height: | Size: 901 B |
10
apps/red-ui/src/assets/styles/red-autocomplete.scss
Normal file
@ -0,0 +1,10 @@
|
||||
@import 'red-variables';
|
||||
@import 'red-mixins';
|
||||
|
||||
.mat-autocomplete-panel {
|
||||
@include scroll-bar;
|
||||
|
||||
.mat-option {
|
||||
font-size: inherit;
|
||||
}
|
||||
}
|
||||
@ -8,6 +8,7 @@
|
||||
@import 'red-input';
|
||||
@import 'red-button';
|
||||
@import 'red-select';
|
||||
@import 'red-autocomplete';
|
||||
@import 'red-list';
|
||||
@import 'red-checkbox';
|
||||
@import 'red-toggle';
|
||||
|
||||
@ -11,8 +11,7 @@
|
||||
*/ /* tslint:disable:no-unused-variable member-ordering */
|
||||
|
||||
import { Inject, Injectable, Optional } from '@angular/core';
|
||||
import { HttpClient, HttpEvent, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';
|
||||
import { CustomHttpUrlEncodingCodec } from '../encoder';
|
||||
import { HttpClient, HttpEvent, HttpHeaders, HttpResponse } from '@angular/common/http';
|
||||
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
@ -20,7 +19,6 @@ import { FileAttributeConfig } from '../model/fileAttributeConfig';
|
||||
import { FileAttributes } from '../model/fileAttributes';
|
||||
import { FileAttributesBaseConfigRequest } from '../model/fileAttributesBaseConfigRequest';
|
||||
import { FileAttributesConfig } from '../model/fileAttributesConfig';
|
||||
import { ImportCsvResponse } from '../model/importCsvResponse';
|
||||
|
||||
import { BASE_PATH } from '../variables';
|
||||
import { Configuration } from '../configuration';
|
||||
@ -130,178 +128,6 @@ export class FileAttributesControllerService {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the file attributes that can be used at importing csv.
|
||||
* None
|
||||
* @param ruleSetId ruleSetId
|
||||
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
||||
* @param reportProgress flag to report request and response progress.
|
||||
*/
|
||||
public getFileAttributesConfiguration(ruleSetId: string, observe?: 'body', reportProgress?: boolean): Observable<FileAttributesConfig>;
|
||||
public getFileAttributesConfiguration(ruleSetId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<FileAttributesConfig>>;
|
||||
public getFileAttributesConfiguration(ruleSetId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<FileAttributesConfig>>;
|
||||
public getFileAttributesConfiguration(ruleSetId: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {
|
||||
if (ruleSetId === null || ruleSetId === undefined) {
|
||||
throw new Error('Required parameter ruleSetId was null or undefined when calling getFileAttributesConfiguration.');
|
||||
}
|
||||
|
||||
let headers = this.defaultHeaders;
|
||||
|
||||
// authentication (RED-OAUTH) required
|
||||
if (this.configuration.accessToken) {
|
||||
const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken;
|
||||
headers = headers.set('Authorization', 'Bearer ' + accessToken);
|
||||
}
|
||||
|
||||
// to determine the Accept header
|
||||
const httpHeaderAccepts: string[] = ['application/json'];
|
||||
const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
||||
if (httpHeaderAcceptSelected !== undefined) {
|
||||
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
||||
}
|
||||
|
||||
// to determine the Content-Type header
|
||||
const consumes: string[] = [];
|
||||
|
||||
return this.httpClient.request<FileAttributesConfig>('get', `${this.basePath}/fileAttributes/config/${encodeURIComponent(String(ruleSetId))}`, {
|
||||
withCredentials: this.configuration.withCredentials,
|
||||
headers: headers,
|
||||
observe: observe,
|
||||
reportProgress: reportProgress
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Import a csv file to set file attributes
|
||||
* None
|
||||
* @param file
|
||||
* @param projectId projectId
|
||||
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
||||
* @param reportProgress flag to report request and response progress.
|
||||
*/
|
||||
public importCsvForm(file: Blob, projectId: string, observe?: 'body', reportProgress?: boolean): Observable<ImportCsvResponse>;
|
||||
public importCsvForm(file: Blob, projectId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<ImportCsvResponse>>;
|
||||
public importCsvForm(file: Blob, projectId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<ImportCsvResponse>>;
|
||||
public importCsvForm(file: Blob, projectId: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {
|
||||
if (file === null || file === undefined) {
|
||||
throw new Error('Required parameter file was null or undefined when calling importCsv.');
|
||||
}
|
||||
|
||||
if (projectId === null || projectId === undefined) {
|
||||
throw new Error('Required parameter projectId was null or undefined when calling importCsv.');
|
||||
}
|
||||
|
||||
let headers = this.defaultHeaders;
|
||||
|
||||
// authentication (RED-OAUTH) required
|
||||
if (this.configuration.accessToken) {
|
||||
const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken;
|
||||
headers = headers.set('Authorization', 'Bearer ' + accessToken);
|
||||
}
|
||||
|
||||
// to determine the Accept header
|
||||
const httpHeaderAccepts: string[] = ['application/json'];
|
||||
const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
||||
if (httpHeaderAcceptSelected !== undefined) {
|
||||
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
||||
}
|
||||
|
||||
// to determine the Content-Type header
|
||||
const consumes: string[] = ['multipart/form-data'];
|
||||
|
||||
const canConsumeForm = this.canConsumeForm(consumes);
|
||||
|
||||
let formParams: { append(param: string, value: any): void };
|
||||
let useForm = false;
|
||||
const convertFormParamsToString = false;
|
||||
// use FormData to transmit files using content-type "multipart/form-data"
|
||||
// see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data
|
||||
useForm = canConsumeForm;
|
||||
if (useForm) {
|
||||
formParams = new FormData();
|
||||
} else {
|
||||
formParams = new HttpParams({ encoder: new CustomHttpUrlEncodingCodec() });
|
||||
}
|
||||
|
||||
if (file !== undefined) {
|
||||
formParams = (formParams.append('file', <any>file) as any) || formParams;
|
||||
}
|
||||
|
||||
return this.httpClient.request<ImportCsvResponse>('post', `${this.basePath}/fileAttributes/csvImport/${encodeURIComponent(String(projectId))}`, {
|
||||
body: convertFormParamsToString ? formParams.toString() : formParams,
|
||||
withCredentials: this.configuration.withCredentials,
|
||||
headers: headers,
|
||||
observe: observe,
|
||||
reportProgress: reportProgress
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Set file attributes to a existing file
|
||||
* None
|
||||
* @param body fileAttributes
|
||||
* @param projectId projectId
|
||||
* @param fileId fileId
|
||||
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
||||
* @param reportProgress flag to report request and response progress.
|
||||
*/
|
||||
public setFileAttributes(body: FileAttributes, projectId: string, fileId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;
|
||||
public setFileAttributes(
|
||||
body: FileAttributes,
|
||||
projectId: string,
|
||||
fileId: string,
|
||||
observe?: 'response',
|
||||
reportProgress?: boolean
|
||||
): Observable<HttpResponse<any>>;
|
||||
public setFileAttributes(body: FileAttributes, projectId: string, fileId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;
|
||||
public setFileAttributes(body: FileAttributes, projectId: string, fileId: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {
|
||||
if (body === null || body === undefined) {
|
||||
throw new Error('Required parameter body was null or undefined when calling setFileAttributes.');
|
||||
}
|
||||
|
||||
if (projectId === null || projectId === undefined) {
|
||||
throw new Error('Required parameter projectId was null or undefined when calling setFileAttributes.');
|
||||
}
|
||||
|
||||
if (fileId === null || fileId === undefined) {
|
||||
throw new Error('Required parameter fileId was null or undefined when calling setFileAttributes.');
|
||||
}
|
||||
|
||||
let headers = this.defaultHeaders;
|
||||
|
||||
// authentication (RED-OAUTH) required
|
||||
if (this.configuration.accessToken) {
|
||||
const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken;
|
||||
headers = headers.set('Authorization', 'Bearer ' + accessToken);
|
||||
}
|
||||
|
||||
// to determine the Accept header
|
||||
const httpHeaderAccepts: string[] = [];
|
||||
const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
||||
if (httpHeaderAcceptSelected !== undefined) {
|
||||
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
||||
}
|
||||
|
||||
// to determine the Content-Type header
|
||||
const consumes: string[] = ['application/json'];
|
||||
const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);
|
||||
if (httpContentTypeSelected !== undefined) {
|
||||
headers = headers.set('Content-Type', httpContentTypeSelected);
|
||||
}
|
||||
|
||||
return this.httpClient.request<any>(
|
||||
'post',
|
||||
`${this.basePath}/fileAttributes/set/${encodeURIComponent(String(projectId))}/${encodeURIComponent(String(fileId))}`,
|
||||
{
|
||||
body: body,
|
||||
withCredentials: this.configuration.withCredentials,
|
||||
headers: headers,
|
||||
observe: observe,
|
||||
reportProgress: reportProgress
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds or updates file attributes base configuration and a list of file attributes,
|
||||
* None
|
||||
@ -377,6 +203,214 @@ export class FileAttributesControllerService {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a specific file attribute.
|
||||
* None
|
||||
* @param ruleSetId ruleSetId
|
||||
* @param fileAttributeId fileAttributeId
|
||||
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
||||
* @param reportProgress flag to report request and response progress.
|
||||
*/
|
||||
public deleteFileAttribute(ruleSetId: string, fileAttributeId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;
|
||||
public deleteFileAttribute(ruleSetId: string, fileAttributeId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;
|
||||
public deleteFileAttribute(ruleSetId: string, fileAttributeId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;
|
||||
public deleteFileAttribute(ruleSetId: string, fileAttributeId: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {
|
||||
if (ruleSetId === null || ruleSetId === undefined) {
|
||||
throw new Error('Required parameter ruleSetId was null or undefined when calling deleteFileAttribute.');
|
||||
}
|
||||
|
||||
if (fileAttributeId === null || fileAttributeId === undefined) {
|
||||
throw new Error('Required parameter fileAttributeId was null or undefined when calling deleteFileAttribute.');
|
||||
}
|
||||
|
||||
let headers = this.defaultHeaders;
|
||||
|
||||
// authentication (RED-OAUTH) required
|
||||
if (this.configuration.accessToken) {
|
||||
const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken;
|
||||
headers = headers.set('Authorization', 'Bearer ' + accessToken);
|
||||
}
|
||||
|
||||
// to determine the Accept header
|
||||
const httpHeaderAccepts: string[] = [];
|
||||
const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
||||
if (httpHeaderAcceptSelected !== undefined) {
|
||||
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
||||
}
|
||||
|
||||
// to determine the Content-Type header
|
||||
const consumes: string[] = [];
|
||||
|
||||
return this.httpClient.request<any>(
|
||||
'delete',
|
||||
`${this.basePath}/fileAttributes/config/fileAttribute/${encodeURIComponent(String(ruleSetId))}/${encodeURIComponent(String(fileAttributeId))}`,
|
||||
{
|
||||
withCredentials: this.configuration.withCredentials,
|
||||
headers: headers,
|
||||
observe: observe,
|
||||
reportProgress: reportProgress
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bulk delete file attributes.
|
||||
* None
|
||||
* @param body fileAttributeIds
|
||||
* @param ruleSetId ruleSetId
|
||||
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
||||
* @param reportProgress flag to report request and response progress.
|
||||
*/
|
||||
public deleteFileAttributes(body: Array<string>, ruleSetId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;
|
||||
public deleteFileAttributes(body: Array<string>, ruleSetId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<any>>;
|
||||
public deleteFileAttributes(body: Array<string>, ruleSetId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;
|
||||
public deleteFileAttributes(body: Array<string>, ruleSetId: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {
|
||||
if (body === null || body === undefined) {
|
||||
throw new Error('Required parameter body was null or undefined when calling deleteFileAttributes.');
|
||||
}
|
||||
|
||||
if (ruleSetId === null || ruleSetId === undefined) {
|
||||
throw new Error('Required parameter ruleSetId was null or undefined when calling deleteFileAttributes.');
|
||||
}
|
||||
|
||||
let headers = this.defaultHeaders;
|
||||
|
||||
// authentication (RED-OAUTH) required
|
||||
if (this.configuration.accessToken) {
|
||||
const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken;
|
||||
headers = headers.set('Authorization', 'Bearer ' + accessToken);
|
||||
}
|
||||
|
||||
// to determine the Accept header
|
||||
const httpHeaderAccepts: string[] = [];
|
||||
const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
||||
if (httpHeaderAcceptSelected !== undefined) {
|
||||
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
||||
}
|
||||
|
||||
// to determine the Content-Type header
|
||||
const consumes: string[] = ['application/json'];
|
||||
const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);
|
||||
if (httpContentTypeSelected !== undefined) {
|
||||
headers = headers.set('Content-Type', httpContentTypeSelected);
|
||||
}
|
||||
|
||||
return this.httpClient.request<any>('post', `${this.basePath}/fileAttributes/config/fileAttribute/${encodeURIComponent(String(ruleSetId))}/delete`, {
|
||||
body: body,
|
||||
withCredentials: this.configuration.withCredentials,
|
||||
headers: headers,
|
||||
observe: observe,
|
||||
reportProgress: reportProgress
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the file attributes that can be used at importing csv.
|
||||
* None
|
||||
* @param ruleSetId ruleSetId
|
||||
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
||||
* @param reportProgress flag to report request and response progress.
|
||||
*/
|
||||
public getFileAttributesConfiguration(ruleSetId: string, observe?: 'body', reportProgress?: boolean): Observable<FileAttributesConfig>;
|
||||
public getFileAttributesConfiguration(ruleSetId: string, observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<FileAttributesConfig>>;
|
||||
public getFileAttributesConfiguration(ruleSetId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<FileAttributesConfig>>;
|
||||
public getFileAttributesConfiguration(ruleSetId: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {
|
||||
if (ruleSetId === null || ruleSetId === undefined) {
|
||||
throw new Error('Required parameter ruleSetId was null or undefined when calling getFileAttributesConfiguration.');
|
||||
}
|
||||
|
||||
let headers = this.defaultHeaders;
|
||||
|
||||
// authentication (RED-OAUTH) required
|
||||
if (this.configuration.accessToken) {
|
||||
const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken;
|
||||
headers = headers.set('Authorization', 'Bearer ' + accessToken);
|
||||
}
|
||||
|
||||
// to determine the Accept header
|
||||
const httpHeaderAccepts: string[] = ['application/json'];
|
||||
const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
||||
if (httpHeaderAcceptSelected !== undefined) {
|
||||
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
||||
}
|
||||
|
||||
// to determine the Content-Type header
|
||||
const consumes: string[] = [];
|
||||
|
||||
return this.httpClient.request<FileAttributesConfig>('get', `${this.basePath}/fileAttributes/config/${encodeURIComponent(String(ruleSetId))}`, {
|
||||
withCredentials: this.configuration.withCredentials,
|
||||
headers: headers,
|
||||
observe: observe,
|
||||
reportProgress: reportProgress
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Set file attributes to a existing file
|
||||
* None
|
||||
* @param body fileAttributes
|
||||
* @param projectId projectId
|
||||
* @param fileId fileId
|
||||
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
||||
* @param reportProgress flag to report request and response progress.
|
||||
*/
|
||||
public setFileAttributes(body: FileAttributes, projectId: string, fileId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;
|
||||
public setFileAttributes(
|
||||
body: FileAttributes,
|
||||
projectId: string,
|
||||
fileId: string,
|
||||
observe?: 'response',
|
||||
reportProgress?: boolean
|
||||
): Observable<HttpResponse<any>>;
|
||||
public setFileAttributes(body: FileAttributes, projectId: string, fileId: string, observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<any>>;
|
||||
public setFileAttributes(body: FileAttributes, projectId: string, fileId: string, observe: any = 'body', reportProgress: boolean = false): Observable<any> {
|
||||
if (body === null || body === undefined) {
|
||||
throw new Error('Required parameter body was null or undefined when calling setFileAttributes.');
|
||||
}
|
||||
|
||||
if (projectId === null || projectId === undefined) {
|
||||
throw new Error('Required parameter projectId was null or undefined when calling setFileAttributes.');
|
||||
}
|
||||
|
||||
if (fileId === null || fileId === undefined) {
|
||||
throw new Error('Required parameter fileId was null or undefined when calling setFileAttributes.');
|
||||
}
|
||||
|
||||
let headers = this.defaultHeaders;
|
||||
|
||||
// authentication (RED-OAUTH) required
|
||||
if (this.configuration.accessToken) {
|
||||
const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken;
|
||||
headers = headers.set('Authorization', 'Bearer ' + accessToken);
|
||||
}
|
||||
|
||||
// to determine the Accept header
|
||||
const httpHeaderAccepts: string[] = [];
|
||||
const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
||||
if (httpHeaderAcceptSelected !== undefined) {
|
||||
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
||||
}
|
||||
|
||||
// to determine the Content-Type header
|
||||
const consumes: string[] = ['application/json'];
|
||||
const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);
|
||||
if (httpContentTypeSelected !== undefined) {
|
||||
headers = headers.set('Content-Type', httpContentTypeSelected);
|
||||
}
|
||||
|
||||
return this.httpClient.request<any>(
|
||||
'post',
|
||||
`${this.basePath}/fileAttributes/set/${encodeURIComponent(String(projectId))}/${encodeURIComponent(String(fileId))}`,
|
||||
{
|
||||
body: body,
|
||||
withCredentials: this.configuration.withCredentials,
|
||||
headers: headers,
|
||||
observe: observe,
|
||||
reportProgress: reportProgress
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add or update a file attribute that can be used at importing csv.
|
||||
* None
|
||||
@ -451,69 +485,4 @@ export class FileAttributesControllerService {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a specific file attribute.
|
||||
* None
|
||||
* @param ruleSetId ruleSetId
|
||||
* @param fileAttributeId fileAttributeId
|
||||
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
|
||||
* @param reportProgress flag to report request and response progress.
|
||||
*/
|
||||
public deleteFileAttributesConfiguration(ruleSetId: string, fileAttributeId: string, observe?: 'body', reportProgress?: boolean): Observable<any>;
|
||||
public deleteFileAttributesConfiguration(
|
||||
ruleSetId: string,
|
||||
fileAttributeId: string,
|
||||
observe?: 'response',
|
||||
reportProgress?: boolean
|
||||
): Observable<HttpResponse<any>>;
|
||||
public deleteFileAttributesConfiguration(
|
||||
ruleSetId: string,
|
||||
fileAttributeId: string,
|
||||
observe?: 'events',
|
||||
reportProgress?: boolean
|
||||
): Observable<HttpEvent<any>>;
|
||||
public deleteFileAttributesConfiguration(
|
||||
ruleSetId: string,
|
||||
fileAttributeId: string,
|
||||
observe: any = 'body',
|
||||
reportProgress: boolean = false
|
||||
): Observable<any> {
|
||||
if (ruleSetId === null || ruleSetId === undefined) {
|
||||
throw new Error('Required parameter ruleSetId was null or undefined when calling setFileAttributesConfiguration1.');
|
||||
}
|
||||
|
||||
if (fileAttributeId === null || fileAttributeId === undefined) {
|
||||
throw new Error('Required parameter ruleSetId was null or undefined when calling setFileAttributesConfiguration1.');
|
||||
}
|
||||
|
||||
let headers = this.defaultHeaders;
|
||||
|
||||
// authentication (RED-OAUTH) required
|
||||
if (this.configuration.accessToken) {
|
||||
const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken;
|
||||
headers = headers.set('Authorization', 'Bearer ' + accessToken);
|
||||
}
|
||||
|
||||
// to determine the Accept header
|
||||
const httpHeaderAccepts: string[] = [];
|
||||
const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
||||
if (httpHeaderAcceptSelected !== undefined) {
|
||||
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
||||
}
|
||||
|
||||
// to determine the Content-Type header
|
||||
const consumes: string[] = [];
|
||||
|
||||
return this.httpClient.request<any>(
|
||||
'delete',
|
||||
`${this.basePath}/fileAttributes/config/fileAttribute/${encodeURIComponent(String(ruleSetId))}/${encodeURIComponent(String(fileAttributeId))}`,
|
||||
{
|
||||
withCredentials: this.configuration.withCredentials,
|
||||
headers: headers,
|
||||
observe: observe,
|
||||
reportProgress: reportProgress
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||