commit
73e1853758
@ -45,9 +45,10 @@
|
||||
"ngx-mat-select-search": "^1.4.2",
|
||||
"ngx-papaparse": "^3.0.2",
|
||||
"po2json": "^1.0.0-alpha",
|
||||
"roboto-fontface": "^0.10.0",
|
||||
"rxjs": "^6.3.3",
|
||||
"tinymce": "^4.9.0",
|
||||
"typeface-fira-sans": "^0.0.54",
|
||||
"typeface-fira-sans-condensed": "^0.0.54",
|
||||
"uuid": "^3.3.2",
|
||||
"zone.js": "^0.8.26"
|
||||
},
|
||||
|
@ -1,12 +0,0 @@
|
||||
<mat-toolbar color='primary' class="footer">
|
||||
<mat-toolbar-row>
|
||||
<button mat-button class="footer-link" [routerLink]=legalNoticeUrl>
|
||||
<span translate>Legal notice</span>
|
||||
</button>
|
||||
<button mat-button class="footer-link" [routerLink]=privacyPolicyUrl>
|
||||
<span translate>Privacy policy</span>
|
||||
</button>
|
||||
<span class="footer-right">© <span>Copyright by</span> <a href='https://openslides.org/'>OpenSlides</a>
|
||||
</span>
|
||||
</mat-toolbar-row>
|
||||
</mat-toolbar>
|
@ -1,11 +0,0 @@
|
||||
.footer-link,
|
||||
.footer-right {
|
||||
font-size: 12px;
|
||||
z-index: inherit;
|
||||
}
|
||||
|
||||
.footer-right {
|
||||
a {
|
||||
color: white;
|
||||
}
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { FooterComponent } from './footer.component';
|
||||
import { E2EImportsModule } from '../../../../e2e-imports.module';
|
||||
|
||||
describe('FooterComponent', () => {
|
||||
let component: FooterComponent;
|
||||
let fixture: ComponentFixture<FooterComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [E2EImportsModule]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(FooterComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
@ -1,47 +0,0 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
|
||||
/**
|
||||
* Reusable footer Apps.
|
||||
*
|
||||
* ## Examples:
|
||||
*
|
||||
* ### Usage of the selector:
|
||||
*
|
||||
* ```html
|
||||
* <os-footer></os-footer>
|
||||
* ```
|
||||
*/
|
||||
@Component({
|
||||
selector: 'os-footer',
|
||||
templateUrl: './footer.component.html',
|
||||
styleUrls: ['./footer.component.scss']
|
||||
})
|
||||
export class FooterComponent implements OnInit {
|
||||
/**
|
||||
* Indicates to location of the legal notice
|
||||
*/
|
||||
public legalNoticeUrl = '/legalnotice';
|
||||
|
||||
/**
|
||||
* Indicated the location of the privacy policy
|
||||
*/
|
||||
public privacyPolicyUrl = '/privacypolicy';
|
||||
|
||||
/**
|
||||
* Empty constructor
|
||||
*/
|
||||
public constructor(private route: ActivatedRoute) {}
|
||||
|
||||
/**
|
||||
* If on login page, redirect the legal notice and privacy policy not to /URL
|
||||
* but to /login/URL
|
||||
*/
|
||||
|
||||
public ngOnInit(): void {
|
||||
if (this.route.snapshot.url[0] && this.route.snapshot.url[0].path === 'login') {
|
||||
this.legalNoticeUrl = '/login/legalnotice';
|
||||
this.privacyPolicyUrl = '/login/privacypolicy';
|
||||
}
|
||||
}
|
||||
}
|
@ -47,14 +47,22 @@
|
||||
|
||||
<!-- Main action button - desktop -->
|
||||
<button
|
||||
mat-mini-fab
|
||||
color="accent"
|
||||
mat-icon-button
|
||||
class="on-transition-fade"
|
||||
*ngIf="mainButton && !editMode && !vp.isMobile && !multiSelectMode"
|
||||
*ngIf="mainButtonIcon == 'add' && mainButton && !editMode && !vp.isMobile && !multiSelectMode"
|
||||
(click)="sendMainEvent()"
|
||||
>
|
||||
<mat-icon>{{ mainButtonIcon }}</mat-icon>
|
||||
<mat-icon>add_circle</mat-icon>
|
||||
</button>
|
||||
<button
|
||||
mat-icon-button
|
||||
class="on-transition-fade"
|
||||
*ngIf="mainButtonIcon == 'edit' && mainButton && !editMode && !vp.isMobile && !multiSelectMode"
|
||||
(click)="sendMainEvent()"
|
||||
>
|
||||
<mat-icon>edit</mat-icon>
|
||||
</button>
|
||||
|
||||
|
||||
<!-- Save button -->
|
||||
<button mat-button *ngIf="editMode" (click)="save()"><strong translate class="upper">Save</strong></button>
|
||||
|
@ -9,7 +9,7 @@
|
||||
(<span translate>License</span>: {{ versionInfo.openslides_license }})
|
||||
|
||||
<div *ngIf="versionInfo.plugins.length">
|
||||
<div translate>Installed plugins</div>:
|
||||
<p><span translate>Installed plugins</span>:</p>
|
||||
<div *ngFor="let plugin of versionInfo.plugins">
|
||||
<a [attr.href]="plugin.url" target="_blank">
|
||||
{{ plugin.verbose_name }} {{ plugin.version }}
|
||||
|
@ -58,7 +58,6 @@ import { TreeModule } from 'angular-tree-component';
|
||||
|
||||
// components
|
||||
import { HeadBarComponent } from './components/head-bar/head-bar.component';
|
||||
import { FooterComponent } from './components/footer/footer.component';
|
||||
import { LegalNoticeContentComponent } from './components/legal-notice-content/legal-notice-content.component';
|
||||
import { PrivacyPolicyContentComponent } from './components/privacy-policy-content/privacy-policy-content.component';
|
||||
import { SearchValueSelectorComponent } from './components/search-value-selector/search-value-selector.component';
|
||||
@ -163,7 +162,6 @@ import { FilterMenuComponent } from './components/os-sort-filter-bar/filter-menu
|
||||
PermsDirective,
|
||||
DomChangeDirective,
|
||||
AutofocusDirective,
|
||||
FooterComponent,
|
||||
HeadBarComponent,
|
||||
SearchValueSelectorComponent,
|
||||
LegalNoticeContentComponent,
|
||||
@ -180,7 +178,6 @@ import { FilterMenuComponent } from './components/os-sort-filter-bar/filter-menu
|
||||
DomChangeDirective,
|
||||
AutofocusDirective,
|
||||
HeadBarComponent,
|
||||
FooterComponent,
|
||||
LegalNoticeContentComponent,
|
||||
PrivacyPolicyContentComponent,
|
||||
SearchValueSelectorComponent,
|
||||
|
@ -182,7 +182,7 @@
|
||||
<!-- Edit button -->
|
||||
<button mat-menu-item (click)="openEditInfo(item)">
|
||||
<mat-icon>edit</mat-icon>
|
||||
<span translate>Edit</span>
|
||||
<span translate>Edit details</span>
|
||||
</button>
|
||||
|
||||
<!-- Delete Button -->
|
||||
|
@ -2,11 +2,13 @@
|
||||
<!-- Title -->
|
||||
<div class="title-slot">
|
||||
<h2>
|
||||
<span *ngIf="viewItem">{{ viewItem.getTitle() }}:</span> <span translate> List of speakers </span>
|
||||
<span translate>List of speakers</span>
|
||||
</h2>
|
||||
</div>
|
||||
</os-head-bar>
|
||||
|
||||
<h1 class="title-left on-transition-fade" *ngIf="viewItem">{{ viewItem.getTitle() }}</h1>
|
||||
|
||||
<mat-card class="speaker-card">
|
||||
<!-- List of finished speakers -->
|
||||
<mat-expansion-panel *ngIf="finishedSpeakers && finishedSpeakers.length > 0" class="finished-list">
|
||||
|
@ -10,10 +10,9 @@
|
||||
<!-- Title -->
|
||||
<div class="title-slot">
|
||||
<h2>
|
||||
<span *ngIf="newTopic && !editTopic" translate>New</span>
|
||||
<span *ngIf="editTopic && !newTopic" translate>Edit</span>
|
||||
<!-- Whitespace between "New" and "Topic" -->
|
||||
<span> </span> <span translate>Topic</span>
|
||||
<span *ngIf="newTopic " translate>New topic</span>
|
||||
<span *ngIf="editTopic && !newTopic" translate>Edit topic</span>
|
||||
<span *ngIf="!newTopic && !editTopic" translate>Topic</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
@ -25,13 +24,13 @@
|
||||
</div>
|
||||
</os-head-bar>
|
||||
|
||||
<div *ngIf="topic" class="topic-container on-transition-fade">
|
||||
<div class="topic-title">
|
||||
<h2 *ngIf="!editTopic">{{ topic.title }}</h2>
|
||||
<h2 *ngIf="editTopic">{{ topicForm.get('title').value }}</h2>
|
||||
</div>
|
||||
|
||||
<mat-card *ngIf="topic.text || topic.hasAttachments() || editTopic" class="topic-text">
|
||||
<mat-card *ngIf="topic || editTopic"
|
||||
[ngClass]="editTopic ? 'os-form-card' : 'os-card'"
|
||||
class="on-transition-fade">
|
||||
<div *ngIf="!editTopic">
|
||||
<h1>{{ topic.title }}</h1>
|
||||
</div>
|
||||
<div>
|
||||
<span *ngIf="!editTopic">
|
||||
<!-- Render topic text as HTML -->
|
||||
@ -65,8 +64,12 @@
|
||||
<mat-error *ngIf="topicForm.invalid" translate>A name is required</mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<!-- The editor -->
|
||||
<editor formControlName="text" [init]="tinyMceSettings"></editor>
|
||||
<div class="spacer-bottom-20">
|
||||
<h4 translate>Text</h4>
|
||||
<editor formControlName="text" [init]="tinyMceSettings"></editor>
|
||||
</div>
|
||||
|
||||
<!-- Attachments -->
|
||||
<os-search-value-selector
|
||||
@ -105,7 +108,6 @@
|
||||
</div>
|
||||
</form>
|
||||
</mat-card>
|
||||
</div>
|
||||
|
||||
<mat-menu #topicExtraMenu="matMenu">
|
||||
<button mat-menu-item *ngIf="topic" [routerLink]="getSpeakerLink()">
|
||||
|
@ -1,19 +1,3 @@
|
||||
.topic-container {
|
||||
max-width: 1200px;
|
||||
}
|
||||
|
||||
.topic-title {
|
||||
padding: 40px 0 40px 25px;
|
||||
line-height: 180%;
|
||||
font-size: 120%;
|
||||
color: #317796; // TODO: put in theme as $primary
|
||||
|
||||
h2 {
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
|
||||
.topic-text {
|
||||
margin: 0 20px 0 20px;
|
||||
padding: 25px;
|
||||
|
@ -1,5 +1,4 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { Location } from '@angular/common';
|
||||
import { FormGroup, Validators, FormBuilder } from '@angular/forms';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { Title } from '@angular/platform-browser';
|
||||
@ -69,7 +68,6 @@ export class TopicDetailComponent extends BaseViewComponent {
|
||||
* @param translate Handles translations
|
||||
* @param route Angulars ActivatedRoute
|
||||
* @param router Angulars Router
|
||||
* @param location Enables to navigate back
|
||||
* @param formBuilder Angulars FormBuilder
|
||||
* @param repo The topic repository
|
||||
* @param promptService Allows warning before deletion attempts
|
||||
@ -82,7 +80,6 @@ export class TopicDetailComponent extends BaseViewComponent {
|
||||
protected translate: TranslateService,
|
||||
private route: ActivatedRoute,
|
||||
private router: Router,
|
||||
private location: Location,
|
||||
private formBuilder: FormBuilder,
|
||||
private repo: TopicRepositoryService,
|
||||
private promptService: PromptService,
|
||||
@ -128,11 +125,8 @@ export class TopicDetailComponent extends BaseViewComponent {
|
||||
if (!this.topicForm.value.agenda_parent_id) {
|
||||
delete this.topicForm.value.agenda_parent_id;
|
||||
}
|
||||
|
||||
const response = await this.repo.create(this.topicForm.value);
|
||||
this.router.navigate([`/agenda/topics/${response.id}`]);
|
||||
// after creating a new topic, go "back" to agenda list view
|
||||
this.location.replaceState('/agenda/');
|
||||
await this.repo.create(this.topicForm.value);
|
||||
this.router.navigate([`/agenda/`]);
|
||||
} else {
|
||||
this.setEditMode(false);
|
||||
await this.repo.update(this.topicForm.value, this.topic);
|
||||
|
@ -6,9 +6,8 @@
|
||||
|
||||
<mat-card class="os-card">
|
||||
<div class="app-content" translate>
|
||||
<h4> {{welcomeTitle | translate}} </h4>
|
||||
<span> {{welcomeText | translate}} </span>
|
||||
|
||||
<button mat-button (click)="giveDataStore()">print the dataStore</button>
|
||||
<h1>{{ welcomeTitle | translate }}</h1>
|
||||
<!-- TOODO: translate welcomeText-->
|
||||
<div [innerHTML]="welcomeText"></div>
|
||||
</div>
|
||||
</mat-card>
|
||||
|
@ -1,9 +1,5 @@
|
||||
<main>
|
||||
<mat-card class="os-card">
|
||||
<h2 translate>Legal notice</h2>
|
||||
</mat-card>
|
||||
<h1 class="center spacer-top-20" translate>Legal notice</h1>
|
||||
|
||||
<os-legal-notice-content></os-legal-notice-content>
|
||||
|
||||
<button mat-raised-button color="accent" routerLink="/login" routerLinkActive="router-link-active" translate>Login</button>
|
||||
</main>
|
||||
|
@ -1,9 +1,5 @@
|
||||
<main>
|
||||
<mat-card class="os-card">
|
||||
<h2 translate>Privacy Policy</h2>
|
||||
</mat-card>
|
||||
<h1 class="center spacer-top-20" translate>Privacy Policy</h1>
|
||||
|
||||
<os-privacy-policy-content></os-privacy-policy-content>
|
||||
|
||||
<button mat-raised-button color="accent" routerLink="/login" routerLinkActive="router-link-active" translate>Login</button>
|
||||
</main>
|
||||
|
@ -1,12 +1,16 @@
|
||||
<!-- The actual form -->
|
||||
<header>
|
||||
<mat-toolbar class="login-logo-bar" color="primary">
|
||||
<img src="/assets/img/openslides-logo-h-dark-transparent.svg" alt="OpenSlides-logo">
|
||||
<a routerLink="/login"><img src="/assets/img/openslides-logo-h-dark-transparent.svg" alt="OpenSlides-logo"></a>
|
||||
</mat-toolbar>
|
||||
</header>
|
||||
<main>
|
||||
<router-outlet></router-outlet>
|
||||
</main>
|
||||
<footer class="page-footer">
|
||||
<os-footer></os-footer>
|
||||
</footer>
|
||||
<div class="footer">
|
||||
<a href='https://openslides.org/' target='_bank'>© Copyright by OpenSlides</a>
|
||||
·
|
||||
<a routerLink='/login/legalnotice' translate>Legal notice</a>
|
||||
·
|
||||
<a routerLink='/login/privacypolicy' translate>Privacy policy</a>
|
||||
</div>
|
||||
|
@ -4,13 +4,22 @@ header {
|
||||
mat-toolbar {
|
||||
min-height: 200px !important;
|
||||
}
|
||||
.login-logo-bar {
|
||||
.login-logo-bar a {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
||||
img {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 90%;
|
||||
height: 90%;
|
||||
max-width: 400px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.footer {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 80px;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
|
@ -1,28 +1,25 @@
|
||||
.meta-text-block {
|
||||
padding: 0px;
|
||||
margin: 20px;
|
||||
margin-right: 0;
|
||||
min-width: 10hv;
|
||||
margin: 20px 10px 20px 0;
|
||||
min-width: 200px;
|
||||
|
||||
mat-card-header {
|
||||
display: inherit;
|
||||
padding: 10px;
|
||||
padding-top: 10px;
|
||||
margin: 0;
|
||||
background-color: #eee;
|
||||
|
||||
.mat-card-header-text {
|
||||
margin: 0 10px;
|
||||
}
|
||||
mat-card-title {
|
||||
margin: 0;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
|
||||
.title-container {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
:host ::ng-deep button {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,11 +18,11 @@
|
||||
</form>
|
||||
</mat-dialog-content>
|
||||
<mat-dialog-actions>
|
||||
<button mat-button mat-dialog-close>
|
||||
<span translate>Cancel</span>
|
||||
</button>
|
||||
<!-- The mat-dialog-close directive optionally accepts a value as a result for the dialog. -->
|
||||
<button mat-button (click)="saveChangeRecommendation()">
|
||||
<span translate>Save</span>
|
||||
</button>
|
||||
<button mat-button mat-dialog-close>
|
||||
<span translate>Cancel</span>
|
||||
</button>
|
||||
</mat-dialog-actions>
|
||||
|
@ -75,15 +75,15 @@ export class MotionChangeRecommendationComponent extends BaseViewComponent {
|
||||
public replacementTypes = [
|
||||
{
|
||||
value: ModificationType.TYPE_REPLACEMENT,
|
||||
title: 'Replacement'
|
||||
title: this.translate.instant('Replacement')
|
||||
},
|
||||
{
|
||||
value: ModificationType.TYPE_INSERTION,
|
||||
title: 'Insertion'
|
||||
title: this.translate.instant('Insertion')
|
||||
},
|
||||
{
|
||||
value: ModificationType.TYPE_DELETION,
|
||||
title: 'Deletion'
|
||||
title: this.translate.instant('Deletion')
|
||||
}
|
||||
];
|
||||
|
||||
|
@ -77,7 +77,7 @@
|
||||
[matMenuTriggerFor]="changeRecommendationMenu"
|
||||
[matMenuTriggerData]="{ change: change }"
|
||||
>
|
||||
<mat-icon>more_vert</mat-icon>
|
||||
<mat-icon>more_horiz</mat-icon>
|
||||
</button>
|
||||
|
||||
<!--
|
||||
|
@ -15,6 +15,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
.mat-icon-button {
|
||||
margin-top: -20px;
|
||||
}
|
||||
|
||||
.action-row {
|
||||
font-size: 0.8em;
|
||||
padding-top: 5px;
|
||||
@ -54,7 +58,7 @@
|
||||
border: solid 1px #ddd;
|
||||
border-radius: 3px;
|
||||
margin-bottom: 5px;
|
||||
padding: 5px 5px 0 5px;
|
||||
padding: 5px 10px;
|
||||
|
||||
a,
|
||||
a:link,
|
||||
|
@ -105,9 +105,9 @@
|
||||
</os-head-bar>
|
||||
|
||||
<!-- Title -->
|
||||
<div class="motion-title on-transition-fade" *ngIf="motion && !editMotion">
|
||||
<h2>{{ motion.title }}</h2>
|
||||
</div>
|
||||
<h1 class="title-left on-transition-fade" *ngIf="motion && !editMotion">
|
||||
{{ motion.title }}
|
||||
</h1>
|
||||
|
||||
<ng-container *ngIf="vp.isMobile; then mobileView; else desktopView"></ng-container>
|
||||
|
||||
@ -160,7 +160,9 @@
|
||||
</div>
|
||||
<div class="desktop-right ">
|
||||
<!-- Content -->
|
||||
<mat-card> <ng-container *ngTemplateOutlet="contentTemplate"></ng-container> </mat-card>
|
||||
<mat-card [ngClass]="editMotion ? 'os-form-card' : 'os-card'">
|
||||
<ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
|
||||
</mat-card>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
@ -354,7 +356,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Submitter -->
|
||||
<div *ngIf="newMotion" class="content-field form100">
|
||||
<div *ngIf="newMotion" class="content-field">
|
||||
<div *osPerms="['motions.can_manage', 'motions.can_manage_metadata']">
|
||||
<os-search-value-selector
|
||||
ngDefaultControl
|
||||
@ -452,9 +454,9 @@
|
||||
|
||||
<div class="extra-data">
|
||||
<!-- Attachments -->
|
||||
<div *ngIf="motion.hasAttachments() || editMotion" class="content-field form100">
|
||||
<div *ngIf="motion.hasAttachments() || editMotion" class="content-field">
|
||||
<div *ngIf="!editMotion">
|
||||
<h4 translate>Attachments</h4>
|
||||
<h3>{{ "Attachments" | translate }}<mat-icon>attach_file</mat-icon></h3>
|
||||
<mat-list dense>
|
||||
<mat-list-item *ngFor="let file of motion.attachments">
|
||||
<a [routerLink]="" (click)="onClickAttacment(file)">{{ file.title }}</a>
|
||||
@ -474,7 +476,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Category form -->
|
||||
<div class="content-field form100" *ngIf="newMotion && categoryObserver.value.length > 0">
|
||||
<div class="content-field" *ngIf="newMotion && categoryObserver.value.length > 0">
|
||||
<os-search-value-selector
|
||||
ngDefaultControl
|
||||
[form]="contentForm"
|
||||
@ -487,7 +489,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Parent item -->
|
||||
<div class="content-field form100" *ngIf="newMotion && agendaItemObserver.value.length > 0">
|
||||
<div class="content-field" *ngIf="newMotion && agendaItemObserver.value.length > 0">
|
||||
<os-search-value-selector
|
||||
ngDefaultControl
|
||||
[form]="contentForm"
|
||||
@ -500,7 +502,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Visibility -->
|
||||
<div class="content-field form100" *ngIf="newMotion">
|
||||
<div class="content-field" *ngIf="newMotion">
|
||||
<mat-form-field>
|
||||
<mat-select formControlName="agenda_type" placeholder="{{ 'Agenda visibility' | translate }}">
|
||||
<mat-option *ngFor="let type of itemVisibility" [value]="type.key">
|
||||
@ -511,7 +513,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Supporter form -->
|
||||
<div class="content-field form100" *ngIf="editMotion && minSupporters">
|
||||
<div class="content-field" *ngIf="editMotion && minSupporters">
|
||||
<div *osPerms="['motions.can_manage', 'motions.can_manage_metadata']">
|
||||
<os-search-value-selector
|
||||
ngDefaultControl
|
||||
@ -525,7 +527,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Workflow -->
|
||||
<div class="content-field form100" *ngIf="editMotion && workflowObserver.value.length > 1">
|
||||
<div class="content-field" *ngIf="editMotion && workflowObserver.value.length > 1">
|
||||
<div *osPerms="['motions.can_manage', 'motions.can_manage_metadata']">
|
||||
<os-search-value-selector
|
||||
ngDefaultControl
|
||||
@ -539,7 +541,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Origin form -->
|
||||
<div class="content-field form100" *ngIf="editMotion">
|
||||
<div class="content-field" *ngIf="editMotion">
|
||||
<div *osPerms="['motions.can_manage', 'motions.can_manage_metadata']">
|
||||
<mat-form-field>
|
||||
<input
|
||||
|
@ -17,18 +17,6 @@ span {
|
||||
}
|
||||
}
|
||||
|
||||
.motion-title {
|
||||
padding: 40px;
|
||||
padding-left: 25px;
|
||||
line-height: 180%;
|
||||
font-size: 120%;
|
||||
color: #317796; // TODO: put in theme as $primary
|
||||
h2 {
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
|
||||
.motion-content {
|
||||
display: flow-root;
|
||||
}
|
||||
@ -70,14 +58,14 @@ span {
|
||||
h4 {
|
||||
margin: 10px 10px 15px 0;
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
font-weight: 500;
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
h5 {
|
||||
margin: 15px 10px 10px 0;
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
font-weight: 500;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
@ -88,7 +76,7 @@ span {
|
||||
//the assembly may decide ...
|
||||
.text-prefix-label {
|
||||
display: block;
|
||||
margin: 0 10px 7px 0px;
|
||||
margin: 0 10px 20px 0px;
|
||||
}
|
||||
|
||||
.extra-data {
|
||||
@ -97,25 +85,9 @@ span {
|
||||
|
||||
.content-field {
|
||||
display: inline-block;
|
||||
::ng-deep {
|
||||
.mat-form-field {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.form100 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.form70 {
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
.form30 {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.form-id-title {
|
||||
display: flex;
|
||||
|
||||
@ -135,21 +107,24 @@ span {
|
||||
.desktop-left {
|
||||
width: 30%;
|
||||
float: left;
|
||||
|
||||
.meta-info-desktop {
|
||||
padding-left: 20px;
|
||||
}
|
||||
padding-left: 65px;
|
||||
padding-right: 25px;
|
||||
}
|
||||
|
||||
.desktop-right {
|
||||
display: grid;
|
||||
|
||||
min-width: 70%;
|
||||
min-width: calc(70% - 90px);
|
||||
|
||||
mat-card {
|
||||
display: inline;
|
||||
margin: 0px 40px 10px 10px;
|
||||
}
|
||||
.os-card {
|
||||
width: 900px;
|
||||
margin-left: 0 !important;
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -614,7 +614,7 @@ export class MotionDetailComponent extends BaseViewComponent implements OnInit {
|
||||
* Trigger to delete the motion.
|
||||
*/
|
||||
public async deleteMotionButton(): Promise<void> {
|
||||
const content = this.translate.instant('Are you sure you want to delete this motion block?');
|
||||
const content = this.translate.instant('Are you sure you want to delete this motion?');
|
||||
if (await this.promptService.open(this.motion.title, content)) {
|
||||
await this.repo.delete(this.motion);
|
||||
this.router.navigate(['./motions/']);
|
||||
|
@ -137,11 +137,6 @@
|
||||
<span translate>Categories</span>
|
||||
</button>
|
||||
<button mat-menu-item routerLink="blocks">
|
||||
<!-- possible icons:
|
||||
dashboard
|
||||
widgets
|
||||
view_module
|
||||
-->
|
||||
<mat-icon>widgets</mat-icon>
|
||||
<span translate>Motion blocks</span>
|
||||
</button>
|
||||
@ -153,7 +148,10 @@
|
||||
<mat-icon>speaker_notes</mat-icon>
|
||||
<span translate>Comment fields</span>
|
||||
</button>
|
||||
|
||||
<button mat-menu-item routerLink="/tags" *osPerms="'core.can_manage_tags'">
|
||||
<mat-icon>local_offer</mat-icon>
|
||||
<span translate>Tags</span>
|
||||
</button>
|
||||
<button mat-menu-item (click)="csvExportMotionList()">
|
||||
<mat-icon>archive</mat-icon>
|
||||
<span translate>Export as CSV</span>
|
||||
|
@ -22,7 +22,7 @@
|
||||
padding-left: 10px;
|
||||
|
||||
.motion-list-title {
|
||||
font-weight: bold;
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
|
@ -32,4 +32,3 @@
|
||||
</button>
|
||||
</ng-container>
|
||||
</os-meta-text-block>
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
<!-- User Menu -->
|
||||
<mat-expansion-panel class="user-menu mat-elevation-z0">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-expansion-panel-header class="username">
|
||||
<!-- Get the username from operator -->
|
||||
{{ username }}
|
||||
</mat-expansion-panel-header>
|
||||
@ -34,7 +34,6 @@
|
||||
<mat-icon>vpn_key</mat-icon>
|
||||
<span translate>Change password</span>
|
||||
</a>
|
||||
<mat-divider></mat-divider>
|
||||
<a *ngIf="isLoggedIn" (click)="logout()" mat-list-item>
|
||||
<mat-icon>exit_to_app</mat-icon>
|
||||
<span translate>Logout</span>
|
||||
@ -54,13 +53,6 @@
|
||||
|
||||
<!-- navigation -->
|
||||
<mat-nav-list class="main-nav">
|
||||
<form [formGroup]="searchform" (submit)="search()" *ngIf="showSearch">
|
||||
<mat-form-field>
|
||||
<input matInput formControlName="query" placeholder="{{ 'Search' | translate }}" />
|
||||
<button mat-icon-button matSuffix><mat-icon>search</mat-icon></button>
|
||||
</mat-form-field>
|
||||
</form>
|
||||
|
||||
<span *ngFor="let entry of mainMenuService.entries">
|
||||
<a
|
||||
[@navItemAnim]
|
||||
@ -75,7 +67,6 @@
|
||||
<span>{{ entry.displayName | translate }}</span>
|
||||
</a>
|
||||
</span>
|
||||
<mat-divider></mat-divider>
|
||||
<a
|
||||
[@navItemAnim]
|
||||
*osPerms="'core.can_see_projector'"
|
||||
@ -87,16 +78,53 @@
|
||||
<mat-icon>videocam</mat-icon>
|
||||
<span translate>Projector</span>
|
||||
</a>
|
||||
<mat-divider></mat-divider>
|
||||
<a
|
||||
[@navItemAnim]
|
||||
mat-list-item
|
||||
routerLink="/search"
|
||||
routerLinkActive="active"
|
||||
(click)="toggleSideNav()"
|
||||
>
|
||||
<mat-icon>search</mat-icon>
|
||||
<span translate>Search</span>
|
||||
</a>
|
||||
<a
|
||||
[@navItemAnim]
|
||||
mat-list-item
|
||||
routerLink="/legalnotice"
|
||||
routerLinkActive="active"
|
||||
(click)="toggleSideNav()"
|
||||
>
|
||||
<mat-icon>info</mat-icon>
|
||||
<span translate>Legal notice</span>
|
||||
</a>
|
||||
<a
|
||||
[@navItemAnim]
|
||||
mat-list-item
|
||||
routerLink="/privacypolicy"
|
||||
routerLinkActive="active"
|
||||
(click)="toggleSideNav()"
|
||||
>
|
||||
<mat-icon>security</mat-icon>
|
||||
<span translate>Privacy policy</span>
|
||||
</a>
|
||||
<a
|
||||
[@navItemAnim]
|
||||
mat-list-item
|
||||
href="https://openslides.org"
|
||||
target="_blank"
|
||||
(click)="toggleSideNav()"
|
||||
>
|
||||
<span><small>© Copyright by OpenSlides</small></span>
|
||||
</a>
|
||||
</mat-nav-list>
|
||||
</mat-sidenav>
|
||||
<mat-sidenav-content>
|
||||
<div (touchstart)="swipe($event, 'start')" (touchend)="swipe($event, 'end')" class="content">
|
||||
<div class="relax">
|
||||
<main [@pageTransition]="o.isActivated ? o.activatedRoute : ''">
|
||||
<router-outlet #o="outlet"></router-outlet>
|
||||
</main>
|
||||
<footer><os-footer></os-footer></footer>
|
||||
</div>
|
||||
<main [@pageTransition]="o.isActivated ? o.activatedRoute : ''">
|
||||
<router-outlet #o="outlet"></router-outlet>
|
||||
</main>
|
||||
</div>
|
||||
</mat-sidenav-content>
|
||||
</mat-sidenav-container>
|
||||
|
@ -1,13 +1,42 @@
|
||||
.projector-button {
|
||||
position: fixed;
|
||||
bottom: 10px;
|
||||
right: 20px;
|
||||
/* Main navigation */
|
||||
mat-sidenav-container {
|
||||
height: 100vh;
|
||||
width: 100%;
|
||||
|
||||
mat-sidenav.side-panel {
|
||||
border: 0;
|
||||
box-shadow: 3px 0px 10px 0px rgba(0, 0, 0, 0.2);
|
||||
width: 260px;
|
||||
|
||||
mat-toolbar,
|
||||
mat-toolbar-row {
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
mat-nav-list {
|
||||
padding-top: 0;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
mat-nav-list.main-nav {
|
||||
border-top-width: 1px;
|
||||
border-top-style: solid;
|
||||
span {
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
|
||||
mat-icon {
|
||||
min-width: 20px; //puts the text to the right on the same level
|
||||
margin-right: 25px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Logo container */
|
||||
.os-logo-container {
|
||||
width: 200px;
|
||||
margin-left: 10px;
|
||||
background-image: url(/assets/img/openslides-logo-h-dark-transparent.svg);
|
||||
background-image: url(/assets/img/openslides-logo-h.svg);
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
@ -20,31 +49,26 @@
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.side-panel {
|
||||
border: 0;
|
||||
box-shadow: 3px 0px 10px 0px rgba(0, 0, 0, 0.2);
|
||||
width: 260px;
|
||||
}
|
||||
|
||||
/* Content container */
|
||||
.content {
|
||||
min-height: 100%;
|
||||
position: relative;
|
||||
|
||||
main {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
z-index: 50;
|
||||
flex: 1;
|
||||
> *:not(router-outlet) {
|
||||
flex: 1;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mat-sidenav-container {
|
||||
height: 100vh;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.main-nav form {
|
||||
margin: 0 1em;
|
||||
}
|
||||
|
||||
.relax {
|
||||
position: initial;
|
||||
padding-bottom: 70px;
|
||||
}
|
||||
|
||||
/* History mode top bar*/
|
||||
.history-mode-indicator {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
@ -69,16 +93,3 @@ mat-sidenav-container {
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
main {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
z-index: 50;
|
||||
flex: 1;
|
||||
> *:not(router-outlet) {
|
||||
flex: 1;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
@ -8,74 +8,28 @@
|
||||
$foreground: map-get($theme, foreground);
|
||||
$background: map-get($theme, background);
|
||||
|
||||
/** the name of the selector */
|
||||
os-site {
|
||||
mat-sidenav-container {
|
||||
/** nav panel on the left */
|
||||
mat-sidenav {
|
||||
/** rules for icons in the whole site-view */
|
||||
mat-icon {
|
||||
min-width: 20px; //puts the text to the right on the same level
|
||||
margin-right: 10px; // the distance from the icon to the text
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** adjust the color of the main container to our theme */
|
||||
/* main background color */
|
||||
.main-container {
|
||||
background-color: mat-color($background, background);
|
||||
background-color: $os-background;
|
||||
}
|
||||
|
||||
/** change the nav-toolbar to the darker nuance of the current theme*/
|
||||
.nav-toolbar {
|
||||
height: 80px;
|
||||
background-color: mat-color($primary, darker);
|
||||
|
||||
mat-toolbar-row {
|
||||
height: 80px;
|
||||
}
|
||||
background-color: mat-color($background, card); //TODO
|
||||
}
|
||||
|
||||
/** make the .user-menu expansion panel look like the nav-toolbar above */
|
||||
.user-menu {
|
||||
background: mat-color($primary, darker);
|
||||
// background-color: mat-color($primary, darker);
|
||||
color: mat-color($background, raised-button);
|
||||
min-height: 48px;
|
||||
|
||||
/** color of the divider just above the log out button */
|
||||
mat-divider {
|
||||
border-top-color: rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
|
||||
mat-icon {
|
||||
color: mat-color($background, raised-button);
|
||||
}
|
||||
|
||||
span {
|
||||
color: mat-color($background, raised-button);
|
||||
}
|
||||
|
||||
.mat-expansion-indicator:after {
|
||||
color: mat-color($background, raised-button);
|
||||
}
|
||||
|
||||
.mat-expansion-panel-header {
|
||||
padding: 0 16px !important;
|
||||
}
|
||||
.mat-expansion-panel-header:hover {
|
||||
// prevent the panel to become white after collapse
|
||||
background: mat-color($primary, darker) !important;
|
||||
}
|
||||
/* seperator */
|
||||
mat-nav-list.main-nav,
|
||||
mat-divider {
|
||||
border-top-color: $os-outline;
|
||||
}
|
||||
|
||||
/** style and align the nav icons the icons*/
|
||||
.main-nav {
|
||||
.main-nav,
|
||||
.user-menu {
|
||||
mat-icon {
|
||||
color: mat-color($foreground, icon);
|
||||
}
|
||||
span {
|
||||
font-weight: bold;
|
||||
color: mat-color($foreground, text);
|
||||
}
|
||||
}
|
||||
@ -83,10 +37,10 @@
|
||||
/** style the active link */
|
||||
.active {
|
||||
mat-icon {
|
||||
color: mat-color($primary);
|
||||
color: $os-primary;
|
||||
}
|
||||
span {
|
||||
color: mat-color($primary);
|
||||
color: $os-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -52,11 +52,6 @@ export class SiteComponent extends BaseComponent implements OnInit {
|
||||
*/
|
||||
public searchform: FormGroup;
|
||||
|
||||
/**
|
||||
* Flag, if the search bar shoud be shown.
|
||||
*/
|
||||
public showSearch: boolean;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
@ -93,12 +88,6 @@ export class SiteComponent extends BaseComponent implements OnInit {
|
||||
});
|
||||
|
||||
this.searchform = new FormGroup({ query: new FormControl([]) });
|
||||
|
||||
this.router.events.subscribe(event => {
|
||||
if (event instanceof NavigationEnd) {
|
||||
this.showSearch = !this.router.url.startsWith('/search');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3,14 +3,5 @@ import { Tag } from '../../shared/models/core/tag';
|
||||
|
||||
export const TagAppConfig: AppConfig = {
|
||||
name: 'tag',
|
||||
models: [{ collectionString: 'core/tag', model: Tag, searchOrder: 8 }],
|
||||
mainMenuEntries: [
|
||||
{
|
||||
route: '/tags',
|
||||
displayName: 'Tags',
|
||||
icon: 'turned_in',
|
||||
weight: 1100,
|
||||
permission: 'core.can_manage_tags'
|
||||
}
|
||||
]
|
||||
models: [{ collectionString: 'core/tag', model: Tag, searchOrder: 8 }]
|
||||
};
|
||||
|
@ -8,12 +8,10 @@
|
||||
>
|
||||
<!-- Title -->
|
||||
<div class="title-slot">
|
||||
<h2 *ngIf="editUser">
|
||||
{{ personalInfoForm.get('title').value }} {{ personalInfoForm.get('first_name').value }}
|
||||
{{ personalInfoForm.get('last_name').value }}
|
||||
<h2>
|
||||
<span *ngIf="newUser" translate>New participant</span>
|
||||
<span *ngIf="!newUser">{{ user.full_name }}</span>
|
||||
</h2>
|
||||
|
||||
<h2 *ngIf="!editUser">{{ user.full_name }}</h2>
|
||||
</div>
|
||||
|
||||
<!-- Menu -->
|
||||
@ -35,7 +33,7 @@
|
||||
</mat-menu>
|
||||
</os-head-bar>
|
||||
|
||||
<mat-card class="os-card" *osPerms="'users.can_see_name'">
|
||||
<mat-card [ngClass]="editUser ? 'os-form-card' : 'os-card'" *osPerms="'users.can_see_name'">
|
||||
<form
|
||||
[ngClass]="{ 'mat-form-field-enabled': editUser }"
|
||||
[formGroup]="personalInfoForm"
|
||||
@ -46,7 +44,7 @@
|
||||
<div *ngIf="isAllowed('seeName')">
|
||||
<!-- Title -->
|
||||
<mat-form-field
|
||||
class="form30 distance force-min-with"
|
||||
class="form16 distance force-min-with"
|
||||
*ngIf="user.title || (editUser && isAllowed('manage'))">
|
||||
<input
|
||||
type="text"
|
||||
@ -59,7 +57,7 @@
|
||||
|
||||
<!-- First name -->
|
||||
<mat-form-field
|
||||
class="form30 distance force-min-with"
|
||||
class="form37 distance force-min-with"
|
||||
*ngIf="user.first_name || (editUser && isAllowed('manage'))">
|
||||
<input
|
||||
type="text"
|
||||
@ -70,7 +68,9 @@
|
||||
</mat-form-field>
|
||||
|
||||
<!-- Last name -->
|
||||
<mat-form-field class="form30 force-min-with" *ngIf="user.last_name || (editUser && isAllowed('manage'))">
|
||||
<mat-form-field
|
||||
class="form37 force-min-with"
|
||||
*ngIf="user.last_name || (editUser && isAllowed('manage'))">
|
||||
<input
|
||||
type="text"
|
||||
matInput
|
||||
@ -82,7 +82,7 @@
|
||||
|
||||
<div *ngIf="isAllowed('seePersonal')">
|
||||
<!-- E-Mail -->
|
||||
<mat-form-field class="form100" *ngIf="user.email || editUser">
|
||||
<mat-form-field *ngIf="user.email || editUser">
|
||||
<input
|
||||
type="email"
|
||||
matInput
|
||||
@ -109,7 +109,7 @@
|
||||
|
||||
<!-- Participant Number -->
|
||||
<mat-form-field
|
||||
class="form20 force-min-with"
|
||||
class="form25 force-min-with"
|
||||
*ngIf="user.participant_number || (editUser && isAllowed('manage'))">
|
||||
<input
|
||||
type="text"
|
||||
@ -122,7 +122,7 @@
|
||||
|
||||
<div>
|
||||
<!-- Groups -->
|
||||
<mat-form-field class="form100" *ngIf="(user.groups && user.groups.length > 0) || editUser">
|
||||
<mat-form-field *ngIf="(user.groups && user.groups.length > 0) || editUser">
|
||||
<mat-select placeholder="{{ 'Groups' | translate }}" formControlName="groups_id" multiple>
|
||||
<mat-option *ngFor="let group of groups" [value]="group.id">{{ group }}</mat-option>
|
||||
</mat-select>
|
||||
@ -131,7 +131,7 @@
|
||||
|
||||
<div *ngIf="isAllowed('manage')">
|
||||
<!-- Initial Password -->
|
||||
<mat-form-field class="form100">
|
||||
<mat-form-field>
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'Initial password' | translate }}"
|
||||
@ -151,7 +151,7 @@
|
||||
</div>
|
||||
|
||||
<!-- About me -->
|
||||
<div *ngIf="isAllowed('seePersonal')">
|
||||
<div *ngIf="isAllowed('seePersonal')" class="spacer-bottom-20">
|
||||
<!-- The HTML Editor -->
|
||||
<h4 translate *ngIf="user.about_me || editUser">About me</h4>
|
||||
<editor formControlName="about_me" [init]="tinyMceSettings" *ngIf="editUser"></editor>
|
||||
@ -160,7 +160,7 @@
|
||||
|
||||
<div *ngIf="isAllowed('seePersonal')">
|
||||
<!-- username -->
|
||||
<mat-form-field class="form100" *ngIf="user.username || editUser">
|
||||
<mat-form-field *ngIf="user.username || editUser">
|
||||
<input
|
||||
type="text"
|
||||
matInput
|
||||
@ -172,7 +172,7 @@
|
||||
|
||||
<div *ngIf="isAllowed('seeExtra')">
|
||||
<!-- Comment -->
|
||||
<mat-form-field class="form100" *ngIf="user.comment || editUser">
|
||||
<mat-form-field *ngIf="user.comment || editUser">
|
||||
<input
|
||||
matInput
|
||||
placeholder="{{ 'Comment' | translate }}"
|
||||
@ -182,7 +182,7 @@
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<div *ngIf="isAllowed('seeExtra')">
|
||||
<div *ngIf="isAllowed('seeExtra')" class="spacer-top-20">
|
||||
<!-- Present? -->
|
||||
<mat-checkbox
|
||||
formControlName="is_present"
|
||||
|
@ -29,34 +29,34 @@
|
||||
|
||||
// angular material does not have this class. This is virtually set using ngClass
|
||||
.mat-form-field-enabled {
|
||||
.form100 {
|
||||
::ng-deep {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.form70 {
|
||||
::ng-deep {
|
||||
width: 70%;
|
||||
}
|
||||
}
|
||||
|
||||
.force-min-with {
|
||||
min-width: 150px;
|
||||
}
|
||||
|
||||
.form30 {
|
||||
.form37 {
|
||||
::ng-deep {
|
||||
width: 30%;
|
||||
width: 37%;
|
||||
}
|
||||
}
|
||||
|
||||
.form20 {
|
||||
.form25 {
|
||||
::ng-deep {
|
||||
width: 25%;
|
||||
}
|
||||
}
|
||||
|
||||
.form16 {
|
||||
::ng-deep {
|
||||
width: 16%;
|
||||
}
|
||||
}
|
||||
|
||||
.force-min-with {
|
||||
min-width: 110px;
|
||||
}
|
||||
|
||||
.distance {
|
||||
padding-right: 5%;
|
||||
}
|
||||
|
@ -288,9 +288,9 @@ export class UserDetailComponent extends BaseViewComponent implements OnInit {
|
||||
public async saveUser(): Promise<void> {
|
||||
try {
|
||||
if (this.newUser) {
|
||||
const response = await this.repo.create(this.personalInfoForm.value);
|
||||
this.newUser = false;
|
||||
this.router.navigate([`./users/${response.id}`]);
|
||||
await this.repo.create(this.personalInfoForm.value);
|
||||
this.router.navigate([`./users/`]);
|
||||
} else {
|
||||
// TODO (Issue #3962): We need a waiting-State, so if autoupdates come before the response,
|
||||
// the user is also updated.
|
||||
|
618
client/src/assets/img/openslides-logo-h.svg
Normal file
618
client/src/assets/img/openslides-logo-h.svg
Normal file
@ -0,0 +1,618 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://opensource.org/licenses/MIT"
|
||||
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"
|
||||
version="1.1"
|
||||
id="Ebene_3"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="1079.0952"
|
||||
height="214.49588"
|
||||
viewBox="0 0 1079.0951 214.49587"
|
||||
enable-background="new 0 0 841.89 595.28"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
sodipodi:docname="openslides-logo-h.svg"
|
||||
inkscape:export-xdpi="20.85"
|
||||
inkscape:export-ydpi="20.85"><metadata
|
||||
id="metadata461"><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:creator><cc:Agent><dc:title>OpenSlides Team</dc:title></cc:Agent></dc:creator></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs459">
|
||||
|
||||
|
||||
</defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1672"
|
||||
inkscape:window-height="978"
|
||||
id="namedview457"
|
||||
showgrid="false"
|
||||
showguides="false"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:zoom="0.38169128"
|
||||
inkscape:cx="1239.4445"
|
||||
inkscape:cy="-221.79039"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Ebene_3"
|
||||
fit-margin-top="40"
|
||||
fit-margin-left="40"
|
||||
fit-margin-right="40"
|
||||
fit-margin-bottom="25"
|
||||
units="px"><sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="258.25847,-243.74238"
|
||||
id="guide3558" /><sodipodi:guide
|
||||
orientation="0,1"
|
||||
position="226.61305,-187.79779"
|
||||
id="guide3560" /></sodipodi:namedview>
|
||||
|
||||
<g
|
||||
id="g5094"
|
||||
transform="matrix(2.0781875,0,0,2.0781875,39.999967,39.999828)"><g
|
||||
transform="translate(-154.63686,-116.56793)"
|
||||
id="g7">
|
||||
<path
|
||||
d="m 334.257,126.401 c 3.222,1.985 5.696,4.867 7.423,8.649 1.727,3.782 2.591,8.358 2.591,13.726 0,5.276 -0.865,9.816 -2.591,13.621 -1.728,3.806 -4.202,6.712 -7.423,8.719 -3.221,2.007 -7.05,3.011 -11.485,3.011 -4.436,0 -8.276,-0.993 -11.521,-2.977 -3.245,-1.984 -5.731,-4.878 -7.458,-8.684 -1.728,-3.805 -2.591,-8.369 -2.591,-13.691 0,-5.228 0.875,-9.745 2.626,-13.551 1.751,-3.805 4.248,-6.723 7.494,-8.754 3.244,-2.031 7.061,-3.046 11.45,-3.046 4.435,10e-4 8.264,0.994 11.485,2.977 z m -19.503,8.93 c -1.798,2.801 -2.696,7.283 -2.696,13.446 0,6.163 0.91,10.645 2.731,13.446 1.821,2.801 4.482,4.202 7.984,4.202 3.547,0 6.208,-1.389 7.983,-4.167 1.774,-2.777 2.661,-7.271 2.661,-13.481 0,-6.208 -0.887,-10.703 -2.661,-13.481 -1.775,-2.777 -4.436,-4.167 -7.983,-4.167 -3.549,0 -6.223,1.4 -8.019,4.202 z"
|
||||
id="path9"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 377.361,139.917 c 2.264,3.432 3.396,8.253 3.396,14.461 0,3.782 -0.584,7.167 -1.75,10.155 -1.167,2.988 -2.86,5.334 -5.077,7.038 -2.218,1.704 -4.844,2.556 -7.879,2.556 -3.782,0 -6.84,-1.331 -9.174,-3.992 v 17.157 l -9.944,1.121 V 135.89 h 8.754 l 0.49,4.342 c 1.4,-1.821 3.046,-3.187 4.937,-4.097 1.891,-0.91 3.792,-1.365 5.708,-1.365 4.761,10e-4 8.274,1.716 10.539,5.147 z m -6.968,14.532 c 0,-4.482 -0.549,-7.657 -1.646,-9.524 -1.098,-1.867 -2.766,-2.801 -5.007,-2.801 -1.354,0 -2.615,0.432 -3.781,1.295 -1.168,0.865 -2.195,2.02 -3.082,3.467 v 16.177 c 1.586,2.428 3.665,3.642 6.233,3.642 4.855,0 7.283,-4.085 7.283,-12.256 z"
|
||||
id="path11"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 416.333,157.46 h -23.18 c 0.326,3.361 1.236,5.743 2.731,7.143 1.493,1.401 3.524,2.101 6.092,2.101 1.587,0 3.082,-0.256 4.482,-0.771 1.4,-0.513 2.917,-1.331 4.552,-2.451 l 4.132,5.603 c -4.156,3.362 -8.848,5.042 -14.076,5.042 -5.837,0 -10.319,-1.751 -13.446,-5.252 -3.129,-3.501 -4.692,-8.24 -4.692,-14.216 0,-3.782 0.666,-7.178 1.996,-10.189 1.33,-3.011 3.267,-5.38 5.813,-7.108 2.544,-1.727 5.567,-2.591 9.069,-2.591 5.275,0 9.384,1.658 12.326,4.972 2.941,3.315 4.412,7.938 4.412,13.866 -10e-4,0.467 -0.071,1.75 -0.211,3.851 z m -9.664,-6.652 c 0,-6.163 -2.218,-9.244 -6.653,-9.244 -2.055,0 -3.654,0.759 -4.797,2.276 -1.145,1.518 -1.833,3.981 -2.066,7.388 h 13.516 v -0.42 z"
|
||||
id="path13"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 447.355,137.747 c 1.821,1.985 2.732,4.727 2.732,8.229 v 27.032 h -9.945 v -25.351 c 0,-2.007 -0.339,-3.42 -1.016,-4.237 -0.677,-0.816 -1.692,-1.225 -3.046,-1.225 -1.4,0 -2.673,0.432 -3.817,1.295 -1.145,0.864 -2.252,2.16 -3.326,3.887 v 25.631 h -9.944 v -37.117 h 8.614 l 0.77,4.692 c 1.541,-1.914 3.232,-3.362 5.078,-4.342 1.844,-0.98 3.933,-1.47 6.268,-1.47 3.267,0 5.812,0.992 7.632,2.976 z"
|
||||
id="path15"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 481.566,124.931 c 2.592,1.004 4.983,2.533 7.178,4.587 l -4.972,5.743 c -1.681,-1.447 -3.386,-2.497 -5.112,-3.152 -1.728,-0.653 -3.572,-0.98 -5.532,-0.98 -2.147,0 -3.864,0.455 -5.147,1.365 -1.285,0.911 -1.926,2.206 -1.926,3.887 0,1.167 0.268,2.125 0.805,2.872 0.537,0.747 1.482,1.448 2.837,2.101 1.354,0.655 3.384,1.401 6.093,2.241 4.809,1.541 8.404,3.443 10.785,5.708 2.381,2.265 3.571,5.498 3.571,9.699 0,2.988 -0.747,5.615 -2.241,7.878 -1.494,2.265 -3.666,4.039 -6.513,5.323 -2.849,1.283 -6.187,1.926 -10.015,1.926 -3.828,0 -7.237,-0.607 -10.225,-1.821 -2.988,-1.214 -5.557,-2.872 -7.703,-4.972 l 5.393,-5.883 c 3.547,3.269 7.633,4.902 12.255,4.902 2.521,0 4.54,-0.583 6.058,-1.751 1.518,-1.167 2.276,-2.801 2.276,-4.902 0,-1.306 -0.27,-2.392 -0.806,-3.256 -0.537,-0.863 -1.459,-1.646 -2.766,-2.346 -1.309,-0.701 -3.199,-1.424 -5.673,-2.171 -5.276,-1.633 -9.046,-3.594 -11.31,-5.882 -2.266,-2.287 -3.396,-5.275 -3.396,-8.964 0,-2.708 0.723,-5.101 2.17,-7.178 1.447,-2.077 3.455,-3.677 6.023,-4.797 2.566,-1.121 5.485,-1.681 8.754,-1.681 3.503,-0.002 6.548,0.501 9.139,1.504 z"
|
||||
id="path17"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 504.991,165.514 c 0.326,0.467 0.815,0.7 1.471,0.7 0.793,0 1.471,-0.14 2.03,-0.42 l 2.031,7.073 c -2.055,0.84 -4.296,1.261 -6.723,1.261 -2.941,0 -5.218,-0.853 -6.828,-2.556 -1.611,-1.704 -2.416,-4.167 -2.416,-7.388 v -43.069 l 9.944,-1.121 v 43.279 c 10e-4,1.027 0.164,1.775 0.491,2.241 z"
|
||||
id="path19"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 524.214,118.418 c 1.144,1.098 1.716,2.486 1.716,4.167 0,1.681 -0.572,3.07 -1.716,4.167 -1.145,1.097 -2.603,1.646 -4.377,1.646 -1.774,0 -3.222,-0.548 -4.342,-1.646 -1.12,-1.097 -1.681,-2.486 -1.681,-4.167 0,-1.681 0.561,-3.069 1.681,-4.167 1.12,-1.096 2.567,-1.646 4.342,-1.646 1.775,0 3.232,0.55 4.377,1.646 z m -9.278,54.589 V 135.89 h 9.943 v 37.117 h -9.943 z"
|
||||
id="path21"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 563.326,173.007 h -8.754 l -0.561,-4.552 c -2.615,3.782 -6.162,5.673 -10.645,5.673 -4.576,0 -8.065,-1.762 -10.469,-5.288 -2.406,-3.524 -3.607,-8.322 -3.607,-14.391 0,-3.828 0.618,-7.224 1.855,-10.189 1.236,-2.964 3,-5.288 5.287,-6.968 2.287,-1.68 4.973,-2.521 8.055,-2.521 1.727,0 3.35,0.339 4.867,1.015 1.516,0.677 2.859,1.576 4.026,2.696 v -18.488 l 9.944,1.121 v 51.892 z m -13.096,-7.423 c 1.121,-0.746 2.171,-1.867 3.151,-3.361 v -16.598 c -0.98,-1.167 -1.961,-2.042 -2.941,-2.626 -0.98,-0.583 -2.125,-0.875 -3.432,-0.875 -2.288,0 -4.085,1.004 -5.392,3.011 -1.309,2.008 -1.961,5.112 -1.961,9.314 0,4.436 0.57,7.587 1.715,9.454 1.145,1.868 2.813,2.801 5.008,2.801 1.447,0.001 2.731,-0.372 3.852,-1.12 z"
|
||||
id="path23"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 601.494,157.46 h -23.182 c 0.326,3.361 1.236,5.743 2.732,7.143 1.492,1.401 3.523,2.101 6.092,2.101 1.587,0 3.082,-0.256 4.482,-0.771 1.4,-0.513 2.917,-1.331 4.552,-2.451 l 4.132,5.603 c -4.156,3.362 -8.848,5.042 -14.076,5.042 -5.837,0 -10.318,-1.751 -13.445,-5.252 -3.129,-3.501 -4.693,-8.24 -4.693,-14.216 0,-3.782 0.666,-7.178 1.996,-10.189 1.331,-3.011 3.268,-5.38 5.813,-7.108 2.545,-1.727 5.568,-2.591 9.069,-2.591 5.275,0 9.384,1.658 12.325,4.972 2.941,3.315 4.412,7.938 4.412,13.866 0,0.467 -0.07,1.75 -0.209,3.851 z m -9.665,-6.652 c 0,-6.163 -2.218,-9.244 -6.653,-9.244 -2.055,0 -3.653,0.759 -4.797,2.276 -1.145,1.518 -1.833,3.981 -2.066,7.388 h 13.517 v -0.42 z"
|
||||
id="path25"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 634.127,139.252 -3.781,5.813 c -3.035,-2.054 -6.023,-3.082 -8.965,-3.082 -1.727,0 -3.059,0.304 -3.99,0.911 -0.936,0.607 -1.402,1.425 -1.402,2.451 0,0.747 0.199,1.377 0.596,1.891 0.396,0.514 1.145,1.004 2.242,1.471 1.096,0.467 2.742,1.027 4.936,1.681 3.922,1.075 6.84,2.51 8.754,4.307 1.914,1.798 2.873,4.261 2.873,7.388 0,2.475 -0.713,4.622 -2.137,6.443 -1.424,1.821 -3.352,3.21 -5.777,4.167 -2.428,0.956 -5.137,1.436 -8.123,1.436 -3.129,0 -5.979,-0.479 -8.545,-1.436 -2.568,-0.957 -4.762,-2.276 -6.582,-3.957 l 4.971,-5.532 c 1.402,1.167 2.941,2.078 4.623,2.731 1.68,0.654 3.408,0.98 5.182,0.98 1.914,0 3.42,-0.361 4.518,-1.085 1.096,-0.723 1.646,-1.692 1.646,-2.906 0,-0.98 -0.211,-1.762 -0.631,-2.346 -0.42,-0.583 -1.191,-1.121 -2.311,-1.61 -1.121,-0.49 -2.871,-1.062 -5.254,-1.716 -3.734,-1.026 -6.502,-2.486 -8.297,-4.377 -1.799,-1.891 -2.697,-4.237 -2.697,-7.038 0,-2.101 0.605,-3.992 1.82,-5.673 1.215,-1.681 2.93,-2.999 5.148,-3.957 2.217,-0.957 4.797,-1.436 7.738,-1.436 5.228,0 9.709,1.494 13.445,4.481 z"
|
||||
id="path27"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
</g><g
|
||||
transform="matrix(1.2794416,0,0,1.2794416,-241.04704,-149.41913)"
|
||||
id="g29">
|
||||
<path
|
||||
d="m 231.138,168.561 h 15.136 c 1.645,0 2.965,0.99 2.965,2.225 0,1.231 -1.32,2.223 -2.965,2.223 h -15.136 c -1.646,0 -2.969,-0.992 -2.969,-2.223 0,-1.235 1.322,-2.225 2.969,-2.225 z"
|
||||
id="path31"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<g
|
||||
id="g33">
|
||||
<path
|
||||
d="m 224.244,127.652 c 1.516,0.284 2.521,1.745 2.243,3.26 -0.284,1.519 -1.747,2.523 -3.258,2.239 -1.522,-0.277 -2.526,-1.736 -2.241,-3.258 0.278,-1.519 1.739,-2.519 3.256,-2.241 z"
|
||||
id="path35"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 248.342,127.971 c -0.113,-1.547 -1.455,-2.703 -2.995,-2.586 -1.539,0.114 -2.695,1.456 -2.584,2.996 0.112,1.54 1.455,2.697 2.995,2.576 1.539,-0.111 2.696,-1.453 2.584,-2.986 z"
|
||||
id="path37"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 254.698,130.199 c -0.111,-1.541 -1.447,-2.698 -2.986,-2.584 -1.54,0.119 -2.696,1.454 -2.586,3 0.115,1.532 1.456,2.69 2.996,2.576 1.54,-0.111 2.698,-1.453 2.576,-2.992 z"
|
||||
id="path39"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 228.791,118.638 c -1.282,-0.857 -3.021,-0.527 -3.888,0.749 -0.857,1.282 -0.528,3.014 0.748,3.887 1.282,0.864 3.021,0.526 3.886,-0.749 0.866,-1.282 0.528,-3.019 -0.746,-3.887 z"
|
||||
id="path41"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 244.284,119.378 c -0.113,-1.548 -1.454,-2.703 -2.994,-2.585 -1.535,0.114 -2.698,1.456 -2.579,2.995 0.113,1.54 1.454,2.695 2.987,2.577 1.547,-0.111 2.698,-1.453 2.586,-2.987 z"
|
||||
id="path43"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 244.284,119.378 c -0.113,-1.548 -1.454,-2.703 -2.994,-2.585 -1.535,0.114 -2.698,1.456 -2.579,2.995 0.113,1.54 1.454,2.695 2.987,2.577 1.547,-0.111 2.698,-1.453 2.586,-2.987 z"
|
||||
id="path45"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 251.567,120.753 c -0.111,-1.54 -1.447,-2.699 -2.995,-2.584 -1.54,0.119 -2.69,1.454 -2.576,2.999 0.112,1.533 1.453,2.691 2.993,2.58 1.54,-0.115 2.69,-1.456 2.578,-2.995 z"
|
||||
id="path47"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 251.567,120.753 c -0.111,-1.54 -1.447,-2.699 -2.995,-2.584 -1.54,0.119 -2.69,1.452 -2.576,2.999 0.112,1.533 1.453,2.691 2.993,2.58 1.54,-0.115 2.69,-1.456 2.578,-2.995 z"
|
||||
id="path49"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 255.645,120.877 c 1.521,0.284 2.518,1.74 2.242,3.26 -0.285,1.519 -1.739,2.517 -3.26,2.239 -1.521,-0.284 -2.519,-1.737 -2.24,-3.259 0.284,-1.518 1.745,-2.517 3.258,-2.24 z"
|
||||
id="path51"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 240.216,140.03 c -1.276,-0.865 -3.016,-0.537 -3.88,0.746 -0.866,1.277 -0.538,3.014 0.746,3.88 1.282,0.867 3.013,0.53 3.88,-0.746 0.866,-1.276 0.529,-3.016 -0.746,-3.88 z"
|
||||
id="path53"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 248.446,143.145 c -0.111,-1.54 -1.452,-2.694 -2.992,-2.583 -1.541,0.117 -2.698,1.459 -2.584,2.994 0.112,1.54 1.453,2.695 2.993,2.584 1.54,-0.112 2.696,-1.453 2.583,-2.995 z"
|
||||
id="path55"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 248.446,143.145 c -0.111,-1.54 -1.452,-2.694 -2.992,-2.584 -1.541,0.119 -2.698,1.461 -2.584,2.996 0.112,1.54 1.453,2.695 2.993,2.584 1.54,-0.113 2.696,-1.454 2.583,-2.996 z"
|
||||
id="path57"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 229.154,134.489 c -1.275,-0.864 -3.018,-0.527 -3.88,0.749 -0.867,1.283 -0.529,3.014 0.745,3.88 1.282,0.871 3.012,0.534 3.881,-0.742 0.868,-1.283 0.534,-3.021 -0.746,-3.887 z"
|
||||
id="path59"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 236.296,132.867 c -1.277,-0.864 -3.014,-0.533 -3.881,0.749 -0.866,1.275 -0.527,3.015 0.748,3.88 1.279,0.864 3.021,0.527 3.885,-0.749 0.867,-1.276 0.529,-3.013 -0.752,-3.88 z"
|
||||
id="path61"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 251.567,136.602 c -0.111,-1.539 -1.447,-2.697 -2.995,-2.583 -1.533,0.117 -2.695,1.452 -2.576,2.992 0.112,1.542 1.453,2.697 2.993,2.586 1.54,-0.121 2.698,-1.456 2.578,-2.995 z"
|
||||
id="path63"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 251.567,136.602 c -0.111,-1.541 -1.447,-2.697 -2.995,-2.583 -1.533,0.117 -2.695,1.452 -2.576,2.992 0.112,1.542 1.453,2.697 2.993,2.586 1.54,-0.121 2.698,-1.456 2.578,-2.995 z"
|
||||
id="path65"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 243.808,147.482 c -1.282,-0.868 -3.014,-0.531 -3.881,0.745 -0.864,1.282 -0.535,3.02 0.748,3.886 1.275,0.861 3.014,0.53 3.88,-0.746 0.865,-1.281 0.527,-3.012 -0.747,-3.885 z"
|
||||
id="path67"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 243.808,147.482 c -1.282,-0.868 -3.014,-0.531 -3.881,0.745 -0.864,1.282 -0.535,3.02 0.748,3.886 1.275,0.861 3.014,0.53 3.88,-0.746 0.865,-1.281 0.527,-3.012 -0.747,-3.885 z"
|
||||
id="path69"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 236.887,147.482 c -1.274,-0.868 -3.014,-0.531 -3.879,0.745 -0.866,1.282 -0.535,3.02 0.746,3.886 1.275,0.861 3.014,0.53 3.881,-0.746 0.865,-1.281 0.528,-3.012 -0.748,-3.885 z"
|
||||
id="path71"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 236.887,147.482 c -1.274,-0.868 -3.014,-0.531 -3.879,0.745 -0.866,1.282 -0.535,3.02 0.746,3.886 1.275,0.861 3.014,0.53 3.881,-0.746 0.865,-1.281 0.528,-3.012 -0.748,-3.885 z"
|
||||
id="path73"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 232.399,125.857 c -1.281,-0.867 -3.021,-0.529 -3.887,0.745 -0.866,1.283 -0.528,3.016 0.747,3.887 1.282,0.859 3.015,0.53 3.886,-0.745 0.861,-1.284 0.53,-3.02 -0.746,-3.887 z"
|
||||
id="path75"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 241.034,127.336 c -0.11,-1.54 -1.451,-2.696 -2.991,-2.579 -1.54,0.114 -2.698,1.456 -2.587,2.995 0.114,1.534 1.456,2.69 2.995,2.577 1.546,-0.111 2.7,-1.453 2.583,-2.993 z"
|
||||
id="path77"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 221.422,121.313 c -1.276,-0.866 -3.015,-0.537 -3.88,0.745 -0.867,1.278 -0.529,3.015 0.746,3.88 1.282,0.868 3.015,0.537 3.88,-0.738 0.866,-1.282 0.535,-3.027 -0.746,-3.887 z"
|
||||
id="path79"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 244.284,119.378 c -0.113,-1.548 -1.454,-2.703 -2.994,-2.585 -1.535,0.114 -2.698,1.456 -2.579,2.995 0.113,1.54 1.454,2.695 2.987,2.577 1.547,-0.111 2.698,-1.453 2.586,-2.987 z"
|
||||
id="path81"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 237.039,119.377 c -0.112,-1.546 -1.454,-2.698 -2.993,-2.584 -1.533,0.112 -2.69,1.454 -2.579,2.992 0.112,1.541 1.455,2.692 2.996,2.58 1.539,-0.115 2.688,-1.456 2.576,-2.988 z"
|
||||
id="path83"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 251.567,120.753 c -0.111,-1.54 -1.447,-2.699 -2.995,-2.584 -1.54,0.119 -2.69,1.452 -2.576,2.999 0.112,1.533 1.453,2.691 2.993,2.58 1.54,-0.115 2.69,-1.456 2.578,-2.995 z"
|
||||
id="path85"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 231.97,140.602 c 1.519,0.282 2.523,1.745 2.239,3.257 -0.278,1.521 -1.736,2.525 -3.259,2.242 -1.512,-0.279 -2.518,-1.74 -2.241,-3.258 0.285,-1.523 1.745,-2.52 3.261,-2.241 z"
|
||||
id="path87"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 248.446,143.145 c -0.111,-1.54 -1.452,-2.694 -2.992,-2.584 -1.541,0.119 -2.698,1.461 -2.584,2.996 0.112,1.54 1.453,2.695 2.993,2.584 1.54,-0.113 2.696,-1.454 2.583,-2.996 z"
|
||||
id="path89"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 251.567,136.602 c -0.111,-1.541 -1.447,-2.697 -2.995,-2.583 -1.533,0.117 -2.695,1.452 -2.576,2.992 0.112,1.542 1.453,2.697 2.993,2.586 1.54,-0.121 2.698,-1.456 2.578,-2.995 z"
|
||||
id="path91"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 244.838,134.975 c -0.115,-1.54 -1.456,-2.695 -2.996,-2.583 -1.534,0.117 -2.698,1.459 -2.577,2.999 0.11,1.542 1.445,2.69 2.992,2.579 1.539,-0.113 2.691,-1.455 2.581,-2.995 z"
|
||||
id="path93"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 243.808,147.482 c -1.282,-0.868 -3.014,-0.531 -3.881,0.745 -0.864,1.282 -0.535,3.02 0.748,3.886 1.275,0.861 3.014,0.53 3.88,-0.746 0.865,-1.281 0.527,-3.012 -0.747,-3.885 z"
|
||||
id="path95"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 236.887,147.482 c -1.274,-0.868 -3.014,-0.531 -3.879,0.745 -0.866,1.282 -0.535,3.02 0.746,3.886 1.275,0.861 3.014,0.53 3.881,-0.746 0.865,-1.281 0.528,-3.012 -0.748,-3.885 z"
|
||||
id="path97"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
</g>
|
||||
<g
|
||||
id="g99">
|
||||
<path
|
||||
d="m 196.938,156.803 c 1.044,-1.134 2.815,-1.213 3.955,-0.173 1.137,1.043 1.212,2.816 0.169,3.949 -1.04,1.143 -2.81,1.22 -3.949,0.173 -1.141,-1.04 -1.215,-2.808 -0.175,-3.949 z"
|
||||
id="path101"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 209.977,136.537 c -1.369,-0.725 -3.061,-0.2 -3.779,1.17 -0.718,1.367 -0.192,3.057 1.173,3.777 1.364,0.72 3.057,0.196 3.771,-1.173 0.719,-1.365 0.197,-3.055 -1.165,-3.774 z"
|
||||
id="path103"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 215.234,132.327 c -1.364,-0.722 -3.053,-0.204 -3.774,1.163 -0.714,1.369 -0.194,3.057 1.176,3.782 1.359,0.716 3.051,0.192 3.772,-1.174 0.719,-1.366 0.196,-3.057 -1.174,-3.771 z"
|
||||
id="path105"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 191.702,148.171 c -1.404,0.633 -2.047,2.282 -1.425,3.693 0.634,1.408 2.277,2.045 3.691,1.426 1.414,-0.63 2.049,-2.284 1.426,-3.693 -0.629,-1.412 -2.278,-2.049 -3.692,-1.426 z"
|
||||
id="path107"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 200.54,135.425 c -1.371,-0.726 -3.062,-0.2 -3.778,1.167 -0.718,1.363 -0.194,3.059 1.173,3.774 1.368,0.72 3.056,0.197 3.769,-1.168 0.725,-1.369 0.196,-3.054 -1.164,-3.773 z"
|
||||
id="path109"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 200.54,135.425 c -1.371,-0.726 -3.062,-0.2 -3.778,1.167 -0.718,1.363 -0.194,3.059 1.173,3.774 1.368,0.72 3.056,0.197 3.769,-1.168 0.725,-1.369 0.196,-3.054 -1.164,-3.773 z"
|
||||
id="path111"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 205.566,129.977 c -1.366,-0.72 -3.055,-0.201 -3.778,1.17 -0.716,1.368 -0.192,3.052 1.177,3.776 1.361,0.717 3.053,0.193 3.774,-1.171 0.719,-1.367 0.191,-3.055 -1.173,-3.775 z"
|
||||
id="path113"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 205.566,129.977 c -1.366,-0.72 -3.055,-0.201 -3.778,1.17 -0.716,1.368 -0.195,3.052 1.177,3.776 1.361,0.717 3.053,0.193 3.774,-1.171 0.719,-1.367 0.191,-3.055 -1.173,-3.775 z"
|
||||
id="path115"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 207.832,126.584 c 1.046,-1.138 2.81,-1.214 3.952,-0.173 1.138,1.046 1.214,2.809 0.172,3.951 -1.048,1.138 -2.807,1.214 -3.95,0.174 -1.137,-1.047 -1.212,-2.815 -0.174,-3.952 z"
|
||||
id="path117"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 215.898,149.818 c -1.412,0.624 -2.056,2.274 -1.424,3.685 0.623,1.413 2.271,2.054 3.686,1.424 1.414,-0.628 2.045,-2.275 1.423,-3.686 -0.622,-1.409 -2.277,-2.045 -3.685,-1.423 z"
|
||||
id="path119"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 222.901,144.488 c -1.364,-0.723 -3.055,-0.195 -3.777,1.171 -0.717,1.368 -0.192,3.059 1.17,3.777 1.367,0.721 3.057,0.195 3.78,-1.17 0.719,-1.364 0.195,-3.056 -1.173,-3.778 z"
|
||||
id="path121"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 222.901,144.488 c -1.364,-0.723 -3.055,-0.195 -3.778,1.169 -0.716,1.37 -0.191,3.061 1.171,3.779 1.367,0.721 3.057,0.195 3.78,-1.17 0.719,-1.364 0.195,-3.056 -1.173,-3.778 z"
|
||||
id="path123"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 205.336,156.264 c -1.407,0.623 -2.045,2.277 -1.421,3.686 0.629,1.414 2.278,2.045 3.687,1.423 1.419,-0.625 2.05,-2.271 1.428,-3.683 -0.63,-1.413 -2.279,-2.054 -3.694,-1.426 z"
|
||||
id="path125"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 207.746,149.348 c -1.409,0.624 -2.048,2.274 -1.422,3.687 0.622,1.411 2.278,2.045 3.688,1.422 1.411,-0.628 2.047,-2.283 1.422,-3.691 -0.621,-1.412 -2.273,-2.046 -3.688,-1.418 z"
|
||||
id="path127"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 219.005,138.374 c -1.363,-0.719 -3.054,-0.2 -3.776,1.171 -0.713,1.362 -0.197,3.057 1.173,3.771 1.366,0.722 3.057,0.197 3.779,-1.167 0.714,-1.371 0.194,-3.06 -1.176,-3.775 z"
|
||||
id="path129"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 219.005,138.374 c -1.363,-0.719 -3.054,-0.2 -3.776,1.171 -0.713,1.362 -0.197,3.057 1.173,3.771 1.366,0.722 3.057,0.197 3.779,-1.167 0.714,-1.371 0.194,-3.06 -1.176,-3.775 z"
|
||||
id="path131"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 224.12,150.721 c -1.414,0.627 -2.045,2.275 -1.423,3.687 0.629,1.412 2.277,2.053 3.691,1.425 1.407,-0.625 2.047,-2.275 1.425,-3.686 -0.628,-1.413 -2.274,-2.046 -3.693,-1.426 z"
|
||||
id="path133"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 224.12,150.721 c -1.414,0.627 -2.045,2.275 -1.423,3.687 0.629,1.412 2.277,2.053 3.691,1.425 1.407,-0.625 2.047,-2.275 1.425,-3.686 -0.628,-1.413 -2.274,-2.046 -3.693,-1.426 z"
|
||||
id="path135"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 220.454,156.59 c -1.412,0.622 -2.047,2.273 -1.424,3.684 0.628,1.414 2.278,2.054 3.691,1.427 1.405,-0.625 2.048,-2.276 1.423,-3.686 -0.627,-1.413 -2.274,-2.046 -3.69,-1.425 z"
|
||||
id="path137"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 220.454,156.59 c -1.412,0.622 -2.047,2.273 -1.424,3.684 0.628,1.414 2.278,2.054 3.691,1.427 1.405,-0.625 2.048,-2.276 1.423,-3.686 -0.627,-1.413 -2.274,-2.046 -3.69,-1.425 z"
|
||||
id="path139"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 199.739,148.936 c -1.418,0.628 -2.052,2.282 -1.429,3.689 0.628,1.415 2.276,2.049 3.692,1.428 1.407,-0.633 2.045,-2.273 1.427,-3.691 -0.633,-1.408 -2.28,-2.049 -3.69,-1.426 z"
|
||||
id="path141"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 205.567,142.396 c -1.363,-0.721 -3.056,-0.197 -3.773,1.171 -0.718,1.366 -0.194,3.058 1.171,3.78 1.361,0.715 3.053,0.191 3.772,-1.175 0.725,-1.368 0.199,-3.055 -1.17,-3.776 z"
|
||||
id="path143"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 190.066,155.839 c -1.412,0.623 -2.052,2.271 -1.425,3.684 0.624,1.411 2.276,2.046 3.686,1.424 1.416,-0.63 2.054,-2.272 1.431,-3.683 -0.628,-1.412 -2.284,-2.057 -3.692,-1.425 z"
|
||||
id="path145"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 200.54,135.425 c -1.371,-0.726 -3.062,-0.2 -3.778,1.167 -0.718,1.363 -0.194,3.059 1.173,3.774 1.368,0.72 3.056,0.197 3.769,-1.168 0.725,-1.369 0.196,-3.054 -1.164,-3.773 z"
|
||||
id="path147"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 196.699,141.568 c -1.37,-0.724 -3.058,-0.196 -3.778,1.169 -0.718,1.358 -0.192,3.052 1.173,3.771 1.366,0.722 3.054,0.194 3.775,-1.171 0.719,-1.368 0.192,-3.053 -1.17,-3.769 z"
|
||||
id="path149"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 205.566,129.977 c -1.366,-0.72 -3.055,-0.201 -3.778,1.17 -0.716,1.368 -0.195,3.052 1.177,3.776 1.361,0.717 3.053,0.193 3.774,-1.171 0.719,-1.367 0.191,-3.055 -1.173,-3.775 z"
|
||||
id="path151"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 212.012,157.114 c 1.046,-1.138 2.819,-1.215 3.95,-0.173 1.144,1.041 1.219,2.812 0.175,3.951 -1.037,1.135 -2.808,1.213 -3.951,0.174 -1.141,-1.047 -1.211,-2.816 -0.174,-3.952 z"
|
||||
id="path153"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 222.901,144.488 c -1.364,-0.723 -3.055,-0.195 -3.778,1.169 -0.716,1.37 -0.191,3.061 1.171,3.779 1.367,0.721 3.057,0.195 3.78,-1.17 0.719,-1.364 0.195,-3.056 -1.173,-3.778 z"
|
||||
id="path155"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 219.005,138.374 c -1.363,-0.719 -3.054,-0.2 -3.776,1.171 -0.713,1.362 -0.197,3.057 1.173,3.771 1.366,0.722 3.057,0.197 3.779,-1.167 0.714,-1.371 0.194,-3.06 -1.176,-3.775 z"
|
||||
id="path157"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 214.061,143.221 c -1.367,-0.719 -3.056,-0.193 -3.776,1.171 -0.715,1.363 -0.193,3.061 1.176,3.774 1.368,0.722 3.049,0.2 3.774,-1.172 0.719,-1.364 0.192,-3.051 -1.174,-3.773 z"
|
||||
id="path159"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 224.12,150.721 c -1.414,0.627 -2.045,2.275 -1.423,3.687 0.629,1.412 2.277,2.053 3.691,1.425 1.407,-0.625 2.047,-2.275 1.425,-3.686 -0.628,-1.413 -2.274,-2.046 -3.693,-1.426 z"
|
||||
id="path161"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 220.454,156.59 c -1.412,0.622 -2.047,2.273 -1.424,3.684 0.628,1.414 2.278,2.054 3.691,1.427 1.405,-0.625 2.048,-2.276 1.423,-3.686 -0.627,-1.413 -2.274,-2.046 -3.69,-1.425 z"
|
||||
id="path163"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
</g>
|
||||
<g
|
||||
id="g165">
|
||||
<path
|
||||
d="m 278.788,156.803 c -1.044,-1.134 -2.816,-1.213 -3.953,-0.173 -1.136,1.043 -1.213,2.816 -0.172,3.949 1.041,1.143 2.809,1.22 3.95,0.173 1.142,-1.04 1.217,-2.808 0.175,-3.949 z"
|
||||
id="path167"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 265.747,136.537 c 1.371,-0.725 3.063,-0.2 3.78,1.17 0.722,1.367 0.196,3.057 -1.171,3.777 -1.366,0.72 -3.058,0.196 -3.772,-1.173 -0.72,-1.365 -0.194,-3.055 1.163,-3.774 z"
|
||||
id="path169"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 260.49,132.327 c 1.366,-0.722 3.057,-0.204 3.774,1.163 0.716,1.369 0.198,3.057 -1.175,3.782 -1.358,0.716 -3.053,0.192 -3.77,-1.174 -0.722,-1.366 -0.197,-3.057 1.171,-3.771 z"
|
||||
id="path171"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 284.023,148.171 c 1.407,0.633 2.047,2.282 1.423,3.693 -0.631,1.408 -2.274,2.045 -3.69,1.426 -1.412,-0.63 -2.048,-2.284 -1.426,-3.693 0.629,-1.412 2.281,-2.049 3.693,-1.426 z"
|
||||
id="path173"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 275.186,135.425 c 1.371,-0.726 3.064,-0.2 3.779,1.167 0.717,1.363 0.194,3.059 -1.176,3.774 -1.363,0.72 -3.055,0.197 -3.767,-1.168 -0.724,-1.369 -0.196,-3.054 1.164,-3.773 z"
|
||||
id="path175"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 275.186,135.425 c 1.371,-0.726 3.064,-0.2 3.779,1.167 0.717,1.363 0.194,3.059 -1.176,3.774 -1.363,0.72 -3.055,0.197 -3.767,-1.168 -0.724,-1.369 -0.196,-3.054 1.164,-3.773 z"
|
||||
id="path177"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 270.158,129.977 c 1.368,-0.72 3.058,-0.201 3.781,1.17 0.714,1.368 0.192,3.052 -1.179,3.776 -1.358,0.717 -3.055,0.193 -3.773,-1.171 -0.718,-1.367 -0.191,-3.055 1.171,-3.775 z"
|
||||
id="path179"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 270.158,129.977 c 1.368,-0.72 3.058,-0.201 3.781,1.17 0.714,1.368 0.192,3.052 -1.179,3.776 -1.358,0.717 -3.055,0.193 -3.773,-1.171 -0.718,-1.367 -0.191,-3.055 1.171,-3.775 z"
|
||||
id="path181"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 267.894,126.584 c -1.046,-1.138 -2.811,-1.214 -3.952,-0.173 -1.137,1.046 -1.213,2.809 -0.171,3.951 1.045,1.138 2.808,1.214 3.95,0.174 1.135,-1.047 1.211,-2.815 0.173,-3.952 z"
|
||||
id="path183"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 259.827,149.818 c 1.411,0.624 2.055,2.274 1.426,3.685 -0.625,1.413 -2.271,2.054 -3.687,1.424 -1.416,-0.628 -2.047,-2.275 -1.425,-3.686 0.624,-1.409 2.279,-2.045 3.686,-1.423 z"
|
||||
id="path185"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 252.823,144.488 c 1.365,-0.723 3.057,-0.195 3.779,1.171 0.715,1.368 0.189,3.059 -1.172,3.777 -1.365,0.721 -3.057,0.195 -3.778,-1.17 -0.719,-1.364 -0.194,-3.056 1.171,-3.778 z"
|
||||
id="path187"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 252.823,144.488 c 1.365,-0.723 3.057,-0.195 3.781,1.169 0.713,1.37 0.188,3.061 -1.174,3.779 -1.365,0.721 -3.057,0.195 -3.778,-1.17 -0.719,-1.364 -0.194,-3.056 1.171,-3.778 z"
|
||||
id="path189"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 270.387,156.264 c 1.413,0.623 2.046,2.277 1.422,3.686 -0.629,1.414 -2.274,2.045 -3.686,1.423 -1.417,-0.625 -2.048,-2.271 -1.426,-3.683 0.629,-1.413 2.279,-2.054 3.69,-1.426 z"
|
||||
id="path191"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 267.979,149.348 c 1.411,0.624 2.052,2.274 1.421,3.687 -0.622,1.411 -2.274,2.045 -3.685,1.422 -1.411,-0.628 -2.049,-2.283 -1.425,-3.691 0.625,-1.412 2.273,-2.046 3.689,-1.418 z"
|
||||
id="path193"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 256.719,138.374 c 1.364,-0.719 3.055,-0.2 3.777,1.171 0.715,1.362 0.198,3.057 -1.169,3.771 -1.369,0.722 -3.061,0.197 -3.781,-1.167 -0.714,-1.371 -0.196,-3.06 1.173,-3.775 z"
|
||||
id="path195"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 256.719,138.374 c 1.368,-0.719 3.055,-0.2 3.777,1.171 0.715,1.362 0.198,3.057 -1.169,3.771 -1.369,0.722 -3.061,0.197 -3.781,-1.167 -0.714,-1.371 -0.196,-3.06 1.173,-3.775 z"
|
||||
id="path197"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 251.605,150.721 c 1.416,0.627 2.047,2.275 1.422,3.687 -0.628,1.412 -2.276,2.053 -3.689,1.425 -1.405,-0.625 -2.047,-2.275 -1.428,-3.686 0.631,-1.413 2.279,-2.046 3.695,-1.426 z"
|
||||
id="path199"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 251.605,150.721 c 1.416,0.627 2.047,2.275 1.422,3.687 -0.628,1.412 -2.276,2.053 -3.689,1.425 -1.405,-0.625 -2.047,-2.275 -1.428,-3.686 0.631,-1.413 2.279,-2.046 3.695,-1.426 z"
|
||||
id="path201"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 255.272,156.59 c 1.411,0.622 2.045,2.273 1.423,3.684 -0.627,1.414 -2.278,2.054 -3.691,1.427 -1.405,-0.625 -2.049,-2.276 -1.424,-3.686 0.628,-1.413 2.277,-2.046 3.692,-1.425 z"
|
||||
id="path203"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 255.272,156.59 c 1.411,0.622 2.045,2.273 1.423,3.684 -0.627,1.414 -2.278,2.054 -3.691,1.427 -1.405,-0.625 -2.049,-2.276 -1.424,-3.686 0.628,-1.413 2.277,-2.046 3.692,-1.425 z"
|
||||
id="path205"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 275.989,148.936 c 1.414,0.628 2.048,2.282 1.427,3.689 -0.626,1.415 -2.276,2.049 -3.69,1.428 -1.407,-0.633 -2.047,-2.273 -1.428,-3.691 0.632,-1.408 2.28,-2.049 3.691,-1.426 z"
|
||||
id="path207"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 270.158,142.396 c 1.366,-0.721 3.058,-0.197 3.772,1.171 0.72,1.366 0.194,3.058 -1.17,3.78 -1.36,0.715 -3.051,0.191 -3.771,-1.175 -0.726,-1.368 -0.198,-3.055 1.169,-3.776 z"
|
||||
id="path209"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 285.66,155.839 c 1.41,0.623 2.052,2.271 1.424,3.684 -0.625,1.411 -2.276,2.046 -3.685,1.424 -1.418,-0.63 -2.053,-2.272 -1.432,-3.683 0.632,-1.412 2.284,-2.057 3.693,-1.425 z"
|
||||
id="path211"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 275.186,135.425 c 1.371,-0.726 3.064,-0.2 3.779,1.167 0.717,1.363 0.194,3.059 -1.176,3.774 -1.363,0.72 -3.055,0.197 -3.767,-1.168 -0.724,-1.369 -0.196,-3.054 1.164,-3.773 z"
|
||||
id="path213"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 279.025,141.568 c 1.372,-0.724 3.062,-0.196 3.778,1.169 0.717,1.358 0.194,3.052 -1.172,3.771 -1.365,0.722 -3.053,0.194 -3.773,-1.171 -0.719,-1.368 -0.19,-3.053 1.167,-3.769 z"
|
||||
id="path215"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 270.158,129.977 c 1.368,-0.72 3.058,-0.201 3.781,1.17 0.714,1.368 0.192,3.052 -1.179,3.776 -1.358,0.717 -3.055,0.193 -3.773,-1.171 -0.718,-1.367 -0.191,-3.055 1.171,-3.775 z"
|
||||
id="path217"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 263.713,157.114 c -1.045,-1.138 -2.817,-1.215 -3.949,-0.173 -1.143,1.041 -1.22,2.812 -0.175,3.951 1.039,1.135 2.811,1.213 3.951,0.174 1.14,-1.047 1.214,-2.816 0.173,-3.952 z"
|
||||
id="path219"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 252.823,144.488 c 1.365,-0.723 3.057,-0.195 3.781,1.169 0.713,1.37 0.188,3.061 -1.174,3.779 -1.365,0.721 -3.057,0.195 -3.778,-1.17 -0.719,-1.364 -0.194,-3.056 1.171,-3.778 z"
|
||||
id="path221"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 256.719,138.374 c 1.368,-0.719 3.055,-0.2 3.777,1.171 0.715,1.362 0.198,3.057 -1.169,3.771 -1.369,0.722 -3.061,0.197 -3.781,-1.167 -0.714,-1.371 -0.196,-3.06 1.173,-3.775 z"
|
||||
id="path223"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 261.667,143.221 c 1.363,-0.719 3.056,-0.193 3.777,1.171 0.71,1.363 0.19,3.061 -1.18,3.774 -1.366,0.722 -3.049,0.2 -3.773,-1.172 -0.719,-1.364 -0.189,-3.051 1.176,-3.773 z"
|
||||
id="path225"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#002c42" />
|
||||
<path
|
||||
d="m 251.605,150.721 c 1.416,0.627 2.047,2.275 1.422,3.687 -0.628,1.412 -2.276,2.053 -3.689,1.425 -1.405,-0.625 -2.047,-2.275 -1.428,-3.686 0.631,-1.413 2.279,-2.046 3.695,-1.426 z"
|
||||
id="path227"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
<path
|
||||
d="m 255.272,156.59 c 1.411,0.622 2.045,2.273 1.423,3.684 -0.627,1.414 -2.278,2.054 -3.691,1.427 -1.405,-0.625 -2.049,-2.276 -1.424,-3.686 0.628,-1.413 2.277,-2.046 3.692,-1.425 z"
|
||||
id="path229"
|
||||
inkscape:connector-curvature="0"
|
||||
style="opacity:0.9387;fill:#002c42" />
|
||||
</g>
|
||||
</g></g>
|
||||
|
||||
</svg>
|
After Width: | Height: | Size: 36 KiB |
@ -68,6 +68,7 @@ $openslides-green: (
|
||||
// Generate paletes using: https://material.io/design/color/
|
||||
// default values fir mat-palette: $default: 500, $lighter: 100, $darker: 700.
|
||||
$openslides-primary: mat-palette($openslides-blue);
|
||||
|
||||
$openslides-accent: mat-palette($mat-light-blue);
|
||||
// $openslides-primary: mat-palette($openslides-green);
|
||||
// $openslides-accent: mat-palette($mat-amber);
|
||||
@ -76,3 +77,11 @@ $openslides-warn: mat-palette($mat-red);
|
||||
|
||||
// Create the theme object (a Sass map containing all of the palettes).
|
||||
$openslides-theme: mat-light-theme($openslides-primary, $openslides-accent, $openslides-warn);
|
||||
|
||||
// Create Sass color vars (for using in scss files).
|
||||
$os-primary: mat-color($openslides-primary);
|
||||
$os-accent: mat-color($openslides-accent);
|
||||
$os-warn: mat-color($openslides-warn);
|
||||
|
||||
$os-outline: mat-color($mat-grey, 300);
|
||||
$os-background: mat-color($mat-grey, 100);
|
||||
|
@ -4,8 +4,8 @@
|
||||
/** Import brand theme and (new) component themes */
|
||||
@import './assets/styles/openslides-theme.scss';
|
||||
@import './app/site/site.component.scss-theme';
|
||||
@import '../node_modules/roboto-fontface/css/roboto/roboto-fontface.css';
|
||||
@import '../node_modules/roboto-fontface/css/roboto-condensed/roboto-condensed-fontface.css';
|
||||
@import '../node_modules/typeface-fira-sans/index.css';
|
||||
@import '../node_modules/typeface-fira-sans-condensed/index.css';
|
||||
@mixin openslides-components-theme($theme) {
|
||||
@include os-site-theme($theme);
|
||||
/** More components are added here */
|
||||
@ -16,40 +16,44 @@
|
||||
|
||||
@import '~angular-tree-component/dist/angular-tree-component.css';
|
||||
|
||||
// Shared scss definitions
|
||||
%os-table {
|
||||
width: 100%;
|
||||
|
||||
/** size of the mat row */
|
||||
mat-row {
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
mat-row:hover {
|
||||
cursor: pointer;
|
||||
background-color: rgba(0, 0, 0, 0.025);
|
||||
}
|
||||
|
||||
mat-row.selected {
|
||||
cursor: pointer;
|
||||
background-color: rgba(0, 0, 0, 0.055);
|
||||
}
|
||||
mat-row.lg {
|
||||
height: 90px;
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: Roboto, Arial, Helvetica, sans-serif;
|
||||
font-family: Fira Sans, Roboto, Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.mat-toolbar h2 {
|
||||
font-family: Fira Sans, Roboto, Arial, Helvetica, sans-serif !important;
|
||||
}
|
||||
|
||||
mat-icon {
|
||||
font-family: MaterialIcons-Regular;
|
||||
}
|
||||
|
||||
body {
|
||||
// background: #e8eaed;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
line-height: 1.5;
|
||||
font-size: 14px;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
font-family: Roboto-condensed, Arial, Helvetica, sans-serif;
|
||||
font-family: Fira Sans Condensed, Roboto-condensed, Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
h1 {
|
||||
padding-bottom: 10px;
|
||||
line-height: 1.2;
|
||||
color: $os-primary;
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
font-size: 36px;
|
||||
}
|
||||
h3 {
|
||||
font-weight: 500;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
h4 {
|
||||
font-weight: 400;
|
||||
@ -58,16 +62,27 @@ h4 {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
body {
|
||||
// background: #e8eaed;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.small {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #039BE5; /*TODO: move to theme*/
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
strong, b {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.generic-mini-button {
|
||||
bottom: -28px;
|
||||
z-index: 100;
|
||||
@ -110,12 +125,53 @@ body {
|
||||
text-align: center;
|
||||
color: gray;
|
||||
}
|
||||
|
||||
mat-card {
|
||||
box-shadow: 0 1px 4px 0 rgba(0,0,0,0.37) !important;
|
||||
}
|
||||
.os-card {
|
||||
max-width: 90%;
|
||||
margin-top: 10px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
max-width: 770px;
|
||||
margin-top: 20px !important;
|
||||
margin-left: auto !important;
|
||||
margin-right: auto !important;
|
||||
font-size: 16px;
|
||||
|
||||
.mat-select-arrow-wrapper {
|
||||
visibility: hidden;
|
||||
}
|
||||
}
|
||||
.os-form-card {
|
||||
max-width: 770px;
|
||||
margin-top: 20px !important;
|
||||
margin-left: auto !important;
|
||||
margin-right: auto !important;
|
||||
font-size: 16px;
|
||||
|
||||
.mat-form-field {
|
||||
width: 100%;
|
||||
padding: 10px 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Shared table definitions
|
||||
%os-table {
|
||||
width: 100%;
|
||||
|
||||
/** size of the mat row */
|
||||
mat-row {
|
||||
height: 60px;
|
||||
}
|
||||
mat-row.lg {
|
||||
height: 90px;
|
||||
}
|
||||
mat-row:hover {
|
||||
cursor: pointer;
|
||||
background-color: rgba(0, 0, 0, 0.025);
|
||||
}
|
||||
mat-row.selected {
|
||||
cursor: pointer;
|
||||
background-color: rgba(0, 0, 0, 0.055);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
@ -172,6 +228,16 @@ body {
|
||||
@extend %os-table;
|
||||
}
|
||||
|
||||
/* TODO: find a better way to get more vertical space in (empty/small) tables for maximize filter dialog */
|
||||
mat-paginator {
|
||||
min-height: 800px;
|
||||
}
|
||||
|
||||
/* hide scrollbars caused by hidden filter dialog outside of the viewport */
|
||||
.mat-drawer-content {
|
||||
overflow-x: hidden !important;
|
||||
}
|
||||
|
||||
.card-plus-distance {
|
||||
margin-top: 40px;
|
||||
}
|
||||
@ -197,14 +263,6 @@ body {
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
footer {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
mat-expansion-panel {
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
@ -273,6 +331,63 @@ button.mat-menu-item.selected {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
.meta-text-block .mat-icon-button {
|
||||
margin-top: -12px !important;
|
||||
}
|
||||
.meta-text-block .mat-icon-button mat-icon {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
|
||||
/** helper classes for margin/padding */
|
||||
.spacer-top-10 {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.spacer-top-20 {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.spacer-bottom-20 {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.button24 {
|
||||
background-color: white;
|
||||
color: $os-primary !important;
|
||||
width: 24px !important;
|
||||
height: 24px !important;
|
||||
}
|
||||
.icon24 {
|
||||
font-size: 16px;
|
||||
margin-top: -8px;
|
||||
}
|
||||
|
||||
.mat-mini-fab.large {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
|
||||
.mat-icon {
|
||||
font-size: 24px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
}
|
||||
}
|
||||
.title-left {
|
||||
padding-left: 65px;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.mat-radio-button {
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
|
||||
/** more helper classes **/
|
||||
.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
/** Colors **/
|
||||
.lightblue {
|
||||
background-color: rgb(33, 150, 243) !important;
|
||||
@ -312,6 +427,28 @@ button.mat-menu-item.selected {
|
||||
color: rgba(0, 0, 0, 0.87) !important;
|
||||
}
|
||||
|
||||
.os-listview-table {
|
||||
min-height: 800px;
|
||||
}
|
||||
|
||||
|
||||
/* TODO: move to site.component.scss-theme.scss (does not work currently) */
|
||||
|
||||
/* make the .user-menu expansion panel look like the nav-toolbar above */
|
||||
.user-menu {
|
||||
min-height: 48px;
|
||||
|
||||
.mat-expansion-panel-header {
|
||||
padding: 0 16px !important;
|
||||
}
|
||||
|
||||
.mat-expansion-panel-body {
|
||||
padding: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.mat-drawer-inner-container {
|
||||
scrollbar-width: none; /* hide scrollbars in Firefox */
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar; /* hide scrollbars in Edge until the scrollable area is hovered */
|
||||
}
|
||||
|
||||
.mat-drawer-inner-container::-webkit-scrollbar {
|
||||
display: none !important; /* hide scrollbars in webkit browsers */
|
||||
}
|
||||
|
@ -5,4 +5,4 @@ class ExampleDataGeneratorAppConfig(AppConfig):
|
||||
name = "tests.example_data_generator"
|
||||
label = "tests.example_data_generator"
|
||||
verbose_name = "Example Data Generator"
|
||||
version = "no specific version"
|
||||
version = ""
|
||||
|
Loading…
Reference in New Issue
Block a user