TSK-488 Add classification improvements
This commit is contained in:
parent
d695400c14
commit
ad6a9163a7
|
@ -17,7 +17,7 @@
|
|||
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
|
||||
</button>
|
||||
</div>
|
||||
<h4 class="panel-header">{{classification.name}}
|
||||
<h4 class="panel-header">{{classification.name}} [{{classification.type}}]
|
||||
<span *ngIf="!classification.classificationId" class="badge warning"> {{badgeMessage}}</span>
|
||||
</h4>
|
||||
</div>
|
||||
|
@ -74,32 +74,25 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<fieldset disabled>
|
||||
<label for="classification-type" class="control-label">Type</label>
|
||||
<div class="dropdown clearfix btn-group disabled">
|
||||
<button class="btn btn-default" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
||||
{{classification.type}}
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="classification-description" class="control-label">Description</label>
|
||||
<textarea class="form-control" rows="5" id="classification-description" placeholder="Description" [(ngModel)]="classification.description"
|
||||
name="classification.description"></textarea>
|
||||
<label for="classification-priority" class="control-label">Priority</label>
|
||||
<input type="text" class="form-control" id="classification-priority" placeholder="Priority" [(ngModel)]="classification.priority"
|
||||
name="classification.priority">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="classification-service-level" class="control-label">Service Level</label>
|
||||
<input type="text" class="form-control" id="classification-service-level" placeholder="Service Level" [(ngModel)]="classification.serviceLevel"
|
||||
name="classification.serviceLevel">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="classification-application-entry-point" class="control-label">Application entry point</label>
|
||||
<input type="text" class="form-control" id="classification-application-entry-point" placeholder="Application entry point"
|
||||
[(ngModel)]="classification.applicationEntryPoint" name="classification.applicationEntryPoint">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="classification-description" class="control-label">Description</label>
|
||||
<textarea class="form-control" rows="5" id="classification-description" placeholder="Description" [(ngModel)]="classification.description"
|
||||
name="classification.description"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div *ngIf="custom1Field.visible" class="form-group">
|
||||
|
|
|
@ -11,10 +11,32 @@
|
|||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<div class="col-xs-12">
|
||||
<div class="col-xs-2 category-filter">
|
||||
<button class="btn btn-default" data-toggle="dropdown" type="button" id="dropdown-classification-filter" data-toggle="dropdown"
|
||||
aria-haspopup="true" aria-expanded="true">
|
||||
<taskana-icon-type [type]="selectedCategory" class="vertical-align"></taskana-icon-type>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-classification" role="menu">
|
||||
<li *ngFor="let categories of allCategories | mapValues">
|
||||
<button type="button" (click)="selectCategory(categories.key);" class="btn btn-default btn-classification-list" data-toggle="tooltip"
|
||||
[title]="categories.value">
|
||||
<taskana-icon-type class="vertical-align" [type]='categories.key'></taskana-icon-type>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-xs-9">
|
||||
<input class="filter-input" [ngModel]="inputValue" (ngModelChange)="inputValue = $event" placeholder="Filter classifications">
|
||||
</div>
|
||||
<div class="col-xs-12 horizontal-bottom-divider">
|
||||
</div>
|
||||
<taskana-spinner class="col-xs-12" [isRunning]="requestInProgress"></taskana-spinner>
|
||||
<taskana-tree class="col-xs-12" *ngIf="classifications" [treeNodes]="classifications" [selectNodeId]="selectedId" [filterText]="inputValue"
|
||||
(selectNodeIdChanged)="selectClassification($event)"></taskana-tree>
|
||||
<taskana-tree class="col-xs-12" *ngIf="(classifications && classifications.length) else empty_classifications" [treeNodes]="classifications"
|
||||
[selectNodeId]="selectedId" [filterText]="inputValue" [filterIcon]="selectedCategory" (selectNodeIdChanged)="selectClassification($event)"></taskana-tree>
|
||||
<ng-template #empty_classifications>
|
||||
<div class="col-xs-12 container-no-items center-block">
|
||||
<h3 class="grey">There are no classifications</h3>
|
||||
<svg-icon class="img-responsive empty-icon" src="./assets/icons/classification-empty.svg"></svg-icon>
|
||||
</div>
|
||||
</ng-template>
|
||||
</div>
|
|
@ -9,15 +9,33 @@
|
|||
|
||||
.tab-align{
|
||||
margin-bottom: 0px;
|
||||
border-bottom: 1px solid #ddd;
|
||||
border-bottom: 1px dotted #ddd;
|
||||
&>div{
|
||||
margin: 6px 0px;
|
||||
}
|
||||
}
|
||||
|
||||
input.filter-input {
|
||||
border: solid 1px grey;
|
||||
margin: 10px 2px;
|
||||
height: 32px;
|
||||
width: 100%;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.category-filter {
|
||||
margin: 7px 2px;
|
||||
}
|
||||
|
||||
.dropdown-menu-classification{
|
||||
margin-left: 15px;
|
||||
min-width: 0px;
|
||||
}
|
||||
|
||||
.btn-classification-list {
|
||||
border: 0px solid transparent;
|
||||
}
|
||||
|
||||
.container-no-items {
|
||||
top: 20vh;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|||
import { Observable } from 'rxjs/Observable';
|
||||
import { Routes } from '@angular/router';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { AngularSvgIconModule } from 'angular-svg-icon';
|
||||
import { HttpModule } from '@angular/http';
|
||||
|
||||
import { TreeNodeModel } from 'app/models/tree-node';
|
||||
|
||||
|
@ -12,6 +14,8 @@ import { ClassificationListComponent } from './classification-list.component';
|
|||
import { ImportExportComponent } from 'app/administration/components/import-export/import-export.component';
|
||||
import { SpinnerComponent } from 'app/shared/spinner/spinner.component';
|
||||
import { ClassificationTypesSelectorComponent } from 'app/shared/classification-types-selector/classification-types-selector.component';
|
||||
import { IconTypeComponent } from 'app/administration/components/type-icon/icon-type.component';
|
||||
import { MapValuesPipe } from 'app/shared/pipes/mapValues/map-values.pipe';
|
||||
|
||||
import { WorkbasketService } from 'app/administration/services/workbasket/workbasket.service';
|
||||
import { WorkbasketDefinitionService } from 'app/administration/services/workbasket-definition/workbasket-definition.service';
|
||||
|
@ -31,6 +35,7 @@ class TaskanaTreeComponent {
|
|||
@Input() treeNodes;
|
||||
@Input() selectNodeId;
|
||||
@Input() filterText;
|
||||
@Input() filterIcon;
|
||||
}
|
||||
|
||||
@Component({
|
||||
|
@ -57,8 +62,8 @@ describe('ClassificationListComponent', () => {
|
|||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ClassificationListComponent, ImportExportComponent, SpinnerComponent, ClassificationTypesSelectorComponent,
|
||||
TaskanaTreeComponent, DummyDetailComponent],
|
||||
imports: [HttpClientModule, RouterTestingModule.withRoutes(routes), FormsModule],
|
||||
TaskanaTreeComponent, DummyDetailComponent, IconTypeComponent, MapValuesPipe],
|
||||
imports: [HttpClientModule, RouterTestingModule.withRoutes(routes), FormsModule, AngularSvgIconModule, HttpModule],
|
||||
providers: [
|
||||
HttpClient, WorkbasketDefinitionService, AlertService, ClassificationsService, DomainService, ClassificationDefinitionService,
|
||||
ErrorModalService, ClassificationTypesService, RequestInProgressService
|
||||
|
|
|
@ -17,12 +17,16 @@ import { ClassificationTypesService } from 'app/administration/services/classifi
|
|||
export class ClassificationListComponent implements OnInit, OnDestroy {
|
||||
|
||||
|
||||
selectedCategory = '';
|
||||
selectedId: string;
|
||||
selectionToImport = ImportType.CLASSIFICATIONS;
|
||||
requestInProgress = false;
|
||||
initialized = false;
|
||||
inputValue: string;
|
||||
|
||||
allCategories: Map<string, string> = new Map([['', 'None'], ['EXTERNAL', 'External'],
|
||||
['AUTOMATIC', 'Automatic'], ['MANUAL', 'manual'], ['CLOSED', 'closed']]);
|
||||
|
||||
classifications: Array<Classification> = [];
|
||||
classificationsTypes: Array<string> = [];
|
||||
classificationTypeSelected: string;
|
||||
|
@ -75,6 +79,10 @@ export class ClassificationListComponent implements OnInit, OnDestroy {
|
|||
this.router.navigate([{ outlets: { detail: [`new-classification/${this.selectedId}`] } }], { relativeTo: this.route });
|
||||
}
|
||||
|
||||
selectCategory(category: string) {
|
||||
this.selectedCategory = category;
|
||||
}
|
||||
|
||||
private performRequest(forceRequest = false) {
|
||||
if (this.initialized && !forceRequest) {
|
||||
return;
|
||||
|
|
|
@ -1,14 +1,8 @@
|
|||
<input #selectedFile type="file" (change)="onSelectFile($event)" class="hide" />
|
||||
<button class="btn btn-default" type="button" title="Import" (click)="selectedFile.click()">
|
||||
<span class="glyphicon glyphicon-upload blue"></span>
|
||||
</button>
|
||||
|
||||
<svg-icon class="btn btn-default green-blue" src="./assets/icons/import.svg" title="Import" (click)="selectedFile.click()"></svg-icon>
|
||||
<div class="dropdown" style="display: inline">
|
||||
<button type="button" title="Export" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true"
|
||||
aria-expanded="true" (click)="updateDomains()">
|
||||
<span class="glyphicon glyphicon-download blue"></span>
|
||||
</button>
|
||||
|
||||
<svg-icon class="btn btn-default red dropdown-toggle" title="Export" src="./assets/icons/export.svg" data-toggle="dropdown"
|
||||
aria-expanded="true" (click)="updateDomains()"></svg-icon>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a class="dropdown-item" (click)="export()">
|
||||
|
|
|
@ -10,6 +10,8 @@ import {DomainService} from 'app/services/domain/domain.service';
|
|||
import {Observable} from 'rxjs/Observable';
|
||||
import {ErrorModalService} from 'app/services/errorModal/error-modal.service';
|
||||
import { DomainServiceMock } from 'app/services/domain/domain.service.mock';
|
||||
import { AngularSvgIconModule } from 'angular-svg-icon';
|
||||
import { HttpModule } from '@angular/http';
|
||||
|
||||
describe('ImportExportComponent', () => {
|
||||
let component: ImportExportComponent;
|
||||
|
@ -19,7 +21,7 @@ describe('ImportExportComponent', () => {
|
|||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ImportExportComponent],
|
||||
imports: [HttpClientModule],
|
||||
imports: [HttpClientModule, AngularSvgIconModule, HttpModule],
|
||||
providers: [WorkbasketService, ClassificationDefinitionService, WorkbasketDefinitionService, AlertService, {
|
||||
provide: DomainService,
|
||||
useClass: DomainServiceMock
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div *ngIf="type === ''; else customIcon" class = "glyphicon glyphicon-asterisk blue"></div>
|
||||
<ng-template #customIcon>
|
||||
<svg-icon class="{{selected? 'white': 'blue' }} small" src="./assets/icons/{{type === 'PERSONAL'? 'user.svg': type === 'GROUP'? 'users.svg' : type === 'TOPIC'? 'topic.svg' : 'clearance.svg'}}"></svg-icon>
|
||||
<svg-icon class="{{selected? 'white': 'blue' }} small" src="./assets/icons/{{getIconPath(type)}}"></svg-icon>
|
||||
</ng-template>
|
||||
|
|
|
@ -28,4 +28,15 @@ export class IconTypeComponent implements OnInit {
|
|||
|
||||
}
|
||||
|
||||
getIconPath(type: string) {
|
||||
return type === 'PERSONAL' ? 'user.svg' :
|
||||
type === 'GROUP' ? 'users.svg' :
|
||||
type === 'TOPIC' ? 'topic.svg' :
|
||||
type === 'CLEARANCE' ? 'clearance.svg' :
|
||||
type === 'EXTERNAL' ? 'external.svg' :
|
||||
type === 'AUTOMATIC' ? 'automatic.svg' :
|
||||
type === 'MANUAL' ? 'manual.svg' :
|
||||
type === 'CLOSED' ? 'closed.svg' : '';
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
<router-outlet name="detail">
|
||||
</router-outlet>
|
||||
</div>
|
||||
<div class="{{showDetail? 'hidden': 'hidden-xs hidden-sm col-md-8 container-no-detail'}}">
|
||||
<div class="{{showDetail? 'hidden': 'hidden-xs hidden-sm col-md-8 container-no-items'}}">
|
||||
<div *ngIf="currentRoute === 'workbaskets'" class="center-block no-detail">
|
||||
<h3 class="grey">Select a worbasket</h3>
|
||||
<svg-icon class="img-responsive no-detail-icon" src="./assets/icons/wb-empty.svg"></svg-icon>
|
||||
<svg-icon class="img-responsive empty-icon" src="./assets/icons/wb-empty.svg"></svg-icon>
|
||||
</div>
|
||||
<div *ngIf="currentRoute === 'classifications'" class="center-block no-detail">
|
||||
<h3 class="grey">Select a classification</h3>
|
||||
<svg-icon class="img-responsive no-detail-icon" src="./assets/icons/classification-empty.svg"></svg-icon>
|
||||
<svg-icon class="img-responsive empty-icon" src="./assets/icons/classification-empty.svg"></svg-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,24 +1,4 @@
|
|||
|
||||
.container-no-detail .no-detail-icon {
|
||||
|
||||
display: block;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
fill: grey;
|
||||
margin: 20px auto;
|
||||
|
||||
}
|
||||
|
||||
.container-no-detail{
|
||||
top:30vh;
|
||||
height: 65vh;
|
||||
}
|
||||
|
||||
.center-block.no-detail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.vertical-right-divider {
|
||||
border-right: 1px solid #ccc;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
</span>
|
||||
<span> - {{ node.data.name }}</span>
|
||||
</ng-template>
|
||||
</tree-root>
|
||||
</tree-root>
|
||||
|
|
|
@ -20,8 +20,11 @@ export class TaskanaTreeComponent implements OnInit, AfterViewChecked {
|
|||
@Input() selectNodeId: string;
|
||||
@Output() selectNodeIdChanged = new EventEmitter<string>();
|
||||
@Input() filterText: string;
|
||||
@Input() filterIcon: string;
|
||||
|
||||
|
||||
private filterTextOld: string
|
||||
private filterIconOld: string
|
||||
private beforeFilteringState: ITreeState;
|
||||
|
||||
options: ITreeOptions = {
|
||||
|
@ -58,11 +61,18 @@ export class TaskanaTreeComponent implements OnInit, AfterViewChecked {
|
|||
} else if (!this.selectNodeId && this.tree.treeModel.getActiveNode()) {
|
||||
this.unSelectActiveNode();
|
||||
}
|
||||
|
||||
if (this.filterTextOld !== this.filterText) {
|
||||
this.filterTextOld = this.filterText;
|
||||
this.filterNodes(this.filterText);
|
||||
this.manageTreeState();
|
||||
}
|
||||
if (this.filterIconOld !== this.filterIcon) {
|
||||
this.filterIconOld = this.filterIcon;
|
||||
this.filterNodes(this.filterIcon);
|
||||
this.manageTreeState();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
onActivate(treeNode: any) {
|
||||
|
@ -104,9 +114,11 @@ export class TaskanaTreeComponent implements OnInit, AfterViewChecked {
|
|||
private filterNodes(text) {
|
||||
this.tree.treeModel.filterNodes((node) => {
|
||||
return (node.data.name.toUpperCase().includes(text.toUpperCase())
|
||||
|| node.data.key.toUpperCase().includes(text.toUpperCase()));
|
||||
|| node.data.key.toUpperCase().includes(text.toUpperCase())
|
||||
|| node.data.category.toUpperCase().includes(text.toUpperCase()));
|
||||
});
|
||||
}
|
||||
|
||||
private manageTreeState() {
|
||||
if (this.filterText === '') {
|
||||
this.tree.treeModel.collapseAll();
|
||||
|
|
|
@ -298,3 +298,26 @@ li.list-group-item:hover, {
|
|||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.vertical-right-divider {
|
||||
border-right: 1px solid #ccc;
|
||||
}
|
||||
.horizontal-bottom-divider {
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.empty-icon {
|
||||
display: block;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
fill: grey;
|
||||
margin: 20px auto;
|
||||
}
|
||||
|
||||
.container-no-items {
|
||||
top:30vh;
|
||||
height: 65vh;
|
||||
}
|
||||
|
||||
.center-block {
|
||||
text-align: center;
|
||||
}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M2.523 15.88a3.425 3.425 0 0 1-1.268-.567c-.301-.206-.568-.51-.684-.78l-.056-.128L.51 11.04c-.004-2.396.001-3.4.018-3.484.043-.223.273-.55.545-.778.232-.194.567-.403.789-.492.256-.103.675-.234.838-.261.076-.013.378-.029.691-.036l.557-.012-.012.042c-.007.022-.019.26-.027.527l-.014.485-.458.005-.457.006-.24.1c-.285.12-.462.247-.619.446l-.104.132v6.506l.091.117c.2.253.439.407.851.546l.156.052h9.511l.22-.077c.38-.13.57-.26.78-.524l.093-.118v-3.246l-.002-3.246-.118-.147a1.368 1.368 0 0 0-.546-.416c-.32-.138-.453-.159-1.156-.18l-.405-.012.013-.195c.007-.107.013-.332.014-.5v-.305l.559.012c.856.017 1.037.04 1.502.195.327.108.45.165.688.314.404.255.644.487.834.804.114.19.123.26.143 1.03.023.928.023 4.348 0 5.278-.02.805-.027.852-.156 1.06a1.958 1.958 0 0 1-.637.664 3.52 3.52 0 0 1-1.107.517l-.222.065-5.206.004-5.206.003z"/><path d="M6.723 13.43c-.91-.213-1.72-.947-2.071-1.877a3.757 3.757 0 0 1-.108-.31c0-.013.075.066.168.176.096.113.322.309.527.455.493.355.464.343.722.3.562-.093.881-.35 1.152-.926.256-.544.268-.742.272-4.655l.003-3.21-.361.017c-.506.023-.903.02-.928-.006C6.072 3.365 8.626.2 8.664.214c.015.005.602.726 1.305 1.602l1.277 1.591-.719-.012-.718-.012-.02.69c-.01.378-.03 2.004-.042 3.612-.012 1.608-.034 3.075-.047 3.26-.031.422-.121.704-.382 1.199-.362.689-.905 1.148-1.524 1.288-.266.06-.81.06-1.07-.001z"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M2.523 15.88a3.425 3.425 0 0 1-1.268-.567c-.301-.206-.568-.51-.684-.78l-.056-.128L.51 11.04c-.004-2.396.001-3.4.018-3.484.043-.223.273-.55.545-.778.232-.194.567-.403.789-.492.256-.103.675-.234.838-.261.076-.013.378-.029.691-.036l.557-.012-.012.042c-.007.022-.019.26-.027.527l-.014.485-.458.005-.457.006-.24.1c-.285.12-.462.247-.619.446l-.104.132v6.506l.091.117c.2.253.439.407.851.546l.156.052h9.511l.22-.077c.38-.13.57-.26.78-.524l.093-.118v-3.246l-.002-3.246-.118-.147a1.368 1.368 0 0 0-.546-.416c-.32-.138-.453-.159-1.156-.18l-.405-.012.013-.195c.007-.107.013-.332.014-.5v-.305l.559.012c.856.017 1.037.04 1.502.195.327.108.45.165.688.314.404.255.644.487.834.804.114.19.123.26.143 1.03.023.928.023 4.348 0 5.278-.02.805-.027.852-.156 1.06a1.958 1.958 0 0 1-.637.664 3.52 3.52 0 0 1-1.107.517l-.222.065-5.206.004-5.206.003z"/><path d="M9.182.305c.914.2 1.735.921 2.1 1.846.063.157.113.295.114.308 0 .013-.077-.065-.172-.173a3.493 3.493 0 0 0-.533-.448c-.5-.346-.47-.335-.727-.288-.56.102-.876.363-1.138.944-.247.548-.256.746-.199 4.658l.047 3.21.361-.023c.506-.031.902-.035.928-.008.027.028-2.477 3.233-2.515 3.22a72.148 72.148 0 0 1-1.33-1.581l-1.302-1.572h.72l.718.002.009-.69c.004-.379-.002-2.005-.015-3.613-.012-1.608-.014-3.075-.003-3.26.024-.422.11-.705.362-1.205C6.958.938 7.495.47 8.111.32A3.169 3.169 0 0 1 9.182.305z"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
|
@ -1,67 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
|
||||
|
||||
viewBox="0 0 16 16"
|
||||
version="1.1"
|
||||
id="SVGRoot"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
|
||||
sodipodi:docname="wb-add.svg">
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="22.627417"
|
||||
inkscape:cx="15.742156"
|
||||
inkscape:cy="7.3562861"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="2419"
|
||||
inkscape:window-height="1414"
|
||||
inkscape:window-x="2692"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:grid-bbox="true" />
|
||||
<defs
|
||||
id="defs2298" />
|
||||
<metadata
|
||||
id="metadata2301">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 2.6728251,15.988396 2.5648339,15.883964 v -3.745116 l 0.134989,-0.23005 C 3.4355129,10.662444 4.8377113,8.3922173 4.8900195,8.3634611 4.9271414,8.343029 5.0503189,8.31957 5.1633722,8.3104891 L 5.3692305,8.2945975 5.3852607,6.279393 C 5.3970726,4.7401794 5.4105709,4.2482969 5.4409438,4.1968385 5.5430287,4.0227878 5.297518,4.0333821 9.338751,4.0333821 c 3.155368,0 3.731603,0.00681 3.805002,0.043891 0.18308,0.091566 0.178861,0.040864 0.188141,2.2248221 l 0.0084,2.007637 h 0.188141 c 0.21092,0 0.327349,0.040864 0.391469,0.1362136 0.06159,0.090809 1.999524,3.4303122 2.078831,3.5831752 0.0658,0.124862 0.06665,0.151348 0.05822,2.005367 l -0.0084,1.878991 -0.103773,0.09081 -0.103772,0.08929 H 2.7808163 Z m 8.9548339,-3.332692 c 0,-0.4601 0.03037,-0.591017 0.161986,-0.698474 l 0.09618,-0.0787 h 1.566717 c 0.984576,0 1.565872,-0.01063 1.565872,-0.03027 0,-0.04692 -1.613963,-2.8143247 -1.648553,-2.8256757 -0.01941,-0.00681 -0.03122,0.2898322 -0.03122,0.815011 0,0.4540457 -0.0092,0.8785777 -0.02025,0.9429007 -0.02447,0.142268 -0.158613,0.282265 -0.296133,0.308751 -0.117271,0.02271 -0.274196,-0.03481 -0.36447,-0.132429 -0.06243,-0.06811 -0.06412,-0.124107 -0.07931,-3.134427 l -0.01603,-3.0655627 -3.2076755,-0.00757 -3.2085203,-0.00908 -0.00843,3.0587519 c -0.00843,3.0511848 -0.00843,3.0595088 -0.074244,3.1457778 -0.1400512,0.183889 -0.4201534,0.193726 -0.5863586,0.02271 l -0.075932,-0.0787 -0.00928,-0.9383619 c -0.00674,-0.6659343 -0.019398,-0.9345776 -0.04471,-0.9270103 -0.028685,0.00983 -1.6806131,2.7015692 -1.7278593,2.8158372 -0.012655,0.03027 0.3113185,0.03859 1.5540609,0.03859 h 1.5692472 l 0.097023,0.0787 c 0.1307705,0.10746 0.161143,0.237616 0.161143,0.697715 v 0.39275 H 11.627659 V 12.654189 Z M 6.6271593,9.9949976 c -0.021092,-0.020426 -0.037965,-0.079458 -0.037965,-0.1324308 0,-0.052968 0.016873,-0.1119978 0.037965,-0.1324297 0.055683,-0.052968 5.3194107,-0.052968 5.3742497,0 0.04893,0.047673 0.04893,0.2171857 0,0.2648605 -0.05484,0.052968 -5.3185668,0.052968 -5.3742497,0 z M 6.660063,8.8765323 C 6.5672579,8.8137224 6.561352,8.633618 6.6507877,8.5867 c 0.084368,-0.043891 5.2426353,-0.043891 5.3278473,0 0.08858,0.046918 0.08352,0.2270226 -0.0092,0.2898323 -0.107145,0.072647 -5.2029828,0.072647 -5.3092866,0 z M 6.6271593,7.6263941 c -0.021092,-0.020432 -0.037965,-0.080215 -0.037965,-0.1324298 0,-0.052972 0.016873,-0.1119979 0.037965,-0.1324299 0.055683,-0.052972 5.3194107,-0.052972 5.3742497,0 0.04893,0.047675 0.04893,0.217185 0,0.2648597 -0.05484,0.052972 -5.3185668,0.052972 -5.3742497,0 z M 8.0040472,6.4383088 c -0.074244,-0.080971 -0.065807,-0.208104 0.018561,-0.2656164 0.061589,-0.042378 0.3037253,-0.047675 1.9910878,-0.047675 1.820665,0 1.923593,0.00303 1.974214,0.055999 0.06834,0.074161 0.06581,0.1982664 -0.0059,0.2618328 -0.05316,0.046162 -0.237074,0.051459 -1.9910869,0.051459 -1.8333198,0 -1.9370927,-0.00303 -1.9868698,-0.056755 z M 6.6406582,5.8692387 c -0.085212,-0.060539 -0.058214,-0.2398873 0.043871,-0.2890755 0.1054601,-0.051459 1.146563,-0.055242 1.2461173,-0.00454 0.1307706,0.066594 0.1577684,0.1959963 0.059058,0.2830216 -0.05062,0.043891 -0.1459569,0.050702 -0.6757887,0.050702 -0.455588,0 -0.632761,-0.010591 -0.6732577,-0.039351 z"
|
||||
id="path1163"
|
||||
/>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 5.2904719,2.0269155 H 3.4417854 V 0.23956018 c 0,-0.0897337 -0.07525,-0.16248703 -0.1680624,-0.16248703 H 2.2653493 c -0.092812,0 -0.1680624,0.07275326 -0.1680624,0.16248703 V 2.0269155 H 0.24860074 c -0.0928128,0 -0.1680625,0.072754 -0.1680625,0.162487 v 0.9749212 c 0,0.089734 0.07524963,0.1624865 0.1680625,0.1624865 H 2.0972869 v 1.7873562 c 0,0.089734 0.07525,0.1624866 0.1680624,0.1624866 H 3.273723 c 0.092812,0 0.1680624,-0.072753 0.1680624,-0.1624866 V 3.3268102 h 1.8486865 c 0.092812,0 0.1680616,-0.072753 0.1680616,-0.1624865 V 2.1894025 c 0,-0.089733 -0.07525,-0.162487 -0.1680616,-0.162487 z"
|
||||
id="path5"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M2.673 15.988l-.108-.104v-3.745l.135-.23c.736-1.247 2.138-3.517 2.19-3.546a.977.977 0 0 1 .273-.053l.206-.015.016-2.016c.012-1.539.026-2.03.056-2.082.102-.174-.143-.164 3.898-.164 3.155 0 3.731.007 3.805.044.183.092.179.041.188 2.225l.008 2.008h.188c.211 0 .328.04.392.136.061.09 2 3.43 2.079 3.583.066.125.066.151.058 2.005l-.008 1.88-.104.09-.104.09H2.781zm8.955-3.332c0-.46.03-.591.162-.699l.096-.078h1.567c.984 0 1.565-.011 1.565-.03 0-.048-1.614-2.815-1.648-2.826-.02-.007-.031.29-.031.815 0 .454-.01.878-.02.942a.408.408 0 0 1-.297.31.432.432 0 0 1-.364-.133c-.063-.068-.064-.124-.08-3.135l-.016-3.065-3.207-.008-3.209-.009L6.138 7.8c-.009 3.051-.009 3.06-.074 3.146a.39.39 0 0 1-.587.022l-.076-.078-.009-.939c-.007-.666-.02-.934-.045-.927-.028.01-1.68 2.702-1.728 2.816-.012.03.312.039 1.554.039h1.57l.097.078c.13.108.16.238.16.698v.393h4.628v-.393zm-5-2.661c-.022-.02-.039-.08-.039-.132 0-.053.017-.112.038-.133.056-.053 5.32-.053 5.374 0 .05.048.05.217 0 .265-.054.053-5.318.053-5.374 0zm.032-1.118c-.093-.063-.099-.243-.01-.29.085-.044 5.243-.044 5.329 0 .088.047.083.227-.01.29-.107.072-5.203.072-5.309 0zm-.033-1.25c-.02-.021-.038-.08-.038-.133 0-.053.017-.112.038-.132.056-.053 5.32-.053 5.374 0 .05.047.05.217 0 .264-.054.053-5.318.053-5.374 0zm1.377-1.189c-.074-.08-.066-.208.019-.265.061-.043.303-.048 1.99-.048 1.821 0 1.924.003 1.975.056.068.074.066.198-.006.262-.053.046-.237.051-1.991.051-1.833 0-1.937-.003-1.987-.056zM6.641 5.87c-.086-.06-.059-.24.044-.289.105-.051 1.146-.055 1.246-.004.13.066.157.196.059.283-.05.044-.146.05-.676.05-.456 0-.633-.01-.673-.039zM5.29 2.027H3.442V.24a.165.165 0 0 0-.168-.163H2.265a.165.165 0 0 0-.168.163v1.787H.25a.165.165 0 0 0-.168.162v.975c0 .09.075.163.168.163h1.848v1.787c0 .09.076.163.168.163h1.009a.165.165 0 0 0 .168-.163V3.327H5.29a.165.165 0 0 0 .169-.163V2.19a.165.165 0 0 0-.169-.162z"/></svg>
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 1.9 KiB |
|
@ -6,7 +6,7 @@
|
|||
<title>Administration</title>
|
||||
<base href="/">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="./taskana.ico">
|
||||
<link rel="icon" type="image/x-icon" href="./logo.ico">
|
||||
</head>
|
||||
<body>
|
||||
<taskana-root></taskana-root>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
Loading…
Reference in New Issue