mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 04:57:52 +00:00
Merge branch 'developer' of https://bitbucket.org/equilibriumito/gabinete-digital into developer
This commit is contained in:
@@ -20,7 +20,7 @@
|
|||||||
</ion-tab-button>
|
</ion-tab-button>
|
||||||
<ion-tab-button tab="publications">
|
<ion-tab-button tab="publications">
|
||||||
<ion-icon class="nav-icon" src="assets/images/icons-nav-actions.svg"></ion-icon>
|
<ion-icon class="nav-icon" src="assets/images/icons-nav-actions.svg"></ion-icon>
|
||||||
<ion-label>Acções</ion-label>
|
<ion-label class="overflow-visible">Ações</ion-label>
|
||||||
</ion-tab-button>
|
</ion-tab-button>
|
||||||
<ion-tab-button tab="chat">
|
<ion-tab-button tab="chat">
|
||||||
<ion-icon class="nav-icon" src="assets/images/icons-nav-chat-inactive.svg"></ion-icon>
|
<ion-icon class="nav-icon" src="assets/images/icons-nav-chat-inactive.svg"></ion-icon>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ export class Attachment {
|
|||||||
Id: number;
|
Id: number;
|
||||||
ParentId: string;
|
ParentId: string;
|
||||||
Sources: Sources;
|
Sources: Sources;
|
||||||
|
Source?: Sources;
|
||||||
SourceId: string;
|
SourceId: string;
|
||||||
Description: string;
|
Description: string;
|
||||||
SourceName: string;
|
SourceName: string;
|
||||||
@@ -19,3 +20,17 @@ export enum Sources
|
|||||||
Exchange = 3,
|
Exchange = 3,
|
||||||
File = 4
|
File = 4
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export class EventAttachment {
|
||||||
|
|
||||||
|
Id?: string; // id do evento
|
||||||
|
ParentId: string;
|
||||||
|
Source: string;
|
||||||
|
SourceId: string;
|
||||||
|
Link?: string;
|
||||||
|
SerialNumber?: string;
|
||||||
|
ApplicationId: string;
|
||||||
|
SourceTitle: string;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
import { EventBody } from './eventbody.model';
|
import { EventBody } from './eventbody.model';
|
||||||
import { EventPerson } from './eventperson.model';
|
import { EventPerson } from './eventperson.model';
|
||||||
|
import { SearchDocument } from './search-document';
|
||||||
|
|
||||||
export class Event{
|
export class Event{
|
||||||
EventId: string;
|
EventId: string;
|
||||||
@@ -19,4 +20,5 @@ export class Event{
|
|||||||
Organizer: string;
|
Organizer: string;
|
||||||
Categories: string[];
|
Categories: string[];
|
||||||
HasAttachments: boolean;
|
HasAttachments: boolean;
|
||||||
|
// documents?: SearchDocument[]
|
||||||
}
|
}
|
||||||
@@ -466,6 +466,7 @@
|
|||||||
>
|
>
|
||||||
</app-event-list>
|
</app-event-list>
|
||||||
|
|
||||||
|
|
||||||
<app-approve-event class="d-flex flex-column" *ngIf="mobileComponent.showEventToApprove" [class.transparent]="mobileComponent.transparentEventToApprove"
|
<app-approve-event class="d-flex flex-column" *ngIf="mobileComponent.showEventToApprove" [class.transparent]="mobileComponent.transparentEventToApprove"
|
||||||
[serialNumber] = "eventToaprove.serialNumber"
|
[serialNumber] = "eventToaprove.serialNumber"
|
||||||
(cloneAllmobileComponent)="viewEventDetailDismiss($event)"
|
(cloneAllmobileComponent)="viewEventDetailDismiss($event)"
|
||||||
|
|||||||
@@ -220,8 +220,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
<ion-footer class="ion-no-border d-flex justify-center">
|
<ion-footer class="ion-no-border d-flex justify-center px-20">
|
||||||
<ion-toolbar class="btn-div ">
|
<ion-toolbar class=" ">
|
||||||
<ion-buttons slot="start">
|
<ion-buttons slot="start">
|
||||||
<ion-button class="btn-cancel" fill="clear" color="#061b52" (click)="close()">
|
<ion-button class="btn-cancel" fill="clear" color="#061b52" (click)="close()">
|
||||||
<ion-label>Cancelar</ion-label>
|
<ion-label>Cancelar</ion-label>
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ ion-content{
|
|||||||
transform: translate3d(0, 1px, 0);
|
transform: translate3d(0, 1px, 0);
|
||||||
|
|
||||||
.title-content{
|
.title-content{
|
||||||
padding: 0px 20px;
|
|
||||||
margin: 0px auto;
|
margin: 0px auto;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
@@ -45,7 +44,8 @@ ion-content{
|
|||||||
padding: 15px 20px 0 20px;
|
padding: 15px 20px 0 20px;
|
||||||
|
|
||||||
.ion-item-container{
|
.ion-item-container{
|
||||||
width: 360px;
|
flex: 1;
|
||||||
|
width: 100%;
|
||||||
margin: 15px auto;
|
margin: 15px auto;
|
||||||
border: 1px solid #ebebeb;
|
border: 1px solid #ebebeb;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
@@ -62,7 +62,7 @@ ion-content{
|
|||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
.ion-item-class-2{
|
.ion-item-class-2{
|
||||||
width: 360px;
|
display: flex;
|
||||||
margin: 0px auto;
|
margin: 0px auto;
|
||||||
}
|
}
|
||||||
.ion-icon-class{
|
.ion-icon-class{
|
||||||
@@ -77,18 +77,18 @@ ion-content{
|
|||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
.ion-input-class{
|
.ion-input-class{
|
||||||
width: 315px;
|
|
||||||
height: 45px;
|
height: 45px;
|
||||||
border: 1px solid #ebebeb;
|
border: 1px solid #ebebeb;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
float: left;
|
float: left;
|
||||||
|
flex: 1;
|
||||||
}
|
}
|
||||||
.ion-input-class-no-height{
|
.ion-input-class-no-height{
|
||||||
border: 1px solid #ebebeb;
|
border: 1px solid #ebebeb;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
overflow: auto;
|
flex: 1;
|
||||||
}
|
}
|
||||||
.list-people{
|
.list-people{
|
||||||
width: 256px;
|
width: 256px;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { EventPerson } from 'src/app/models/eventperson.model';
|
|||||||
import { EventsService } from 'src/app/services/events.service';
|
import { EventsService } from 'src/app/services/events.service';
|
||||||
import { Event } from '../../../models/event.model';
|
import { Event } from '../../../models/event.model';
|
||||||
import { AttendeesPage } from '../../events/attendees/attendees.page';
|
import { AttendeesPage } from '../../events/attendees/attendees.page';
|
||||||
|
import { SearchPage } from '../../search/search.page';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-new-event',
|
selector: 'app-new-event',
|
||||||
@@ -43,7 +44,7 @@ export class NewEventPage implements OnInit {
|
|||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
|
||||||
console.log(this.profile);
|
/* console.log(this.profile); */
|
||||||
|
|
||||||
let selectedStartdDate = this.selectedDate;
|
let selectedStartdDate = this.selectedDate;
|
||||||
let selectedEndDate = new Date(this.selectedDate);
|
let selectedEndDate = new Date(this.selectedDate);
|
||||||
@@ -118,6 +119,8 @@ export class NewEventPage implements OnInit {
|
|||||||
this.modalController.dismiss(this.postEvent);
|
this.modalController.dismiss(this.postEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async openAttendees() {
|
async openAttendees() {
|
||||||
const modal = await this.modalController.create({
|
const modal = await this.modalController.create({
|
||||||
component: AttendeesPage,
|
component: AttendeesPage,
|
||||||
@@ -126,7 +129,7 @@ export class NewEventPage implements OnInit {
|
|||||||
adding: this.adding,
|
adding: this.adding,
|
||||||
taskParticipants: this.taskParticipants
|
taskParticipants: this.taskParticipants
|
||||||
},
|
},
|
||||||
cssClass: 'attendee',
|
cssClass: 'attendee modal modal-desktop',
|
||||||
backdropDismiss: false
|
backdropDismiss: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ export class ViewEventPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
close(){
|
close(){
|
||||||
console.log(this.isEventEdited);
|
/* console.log(this.isEventEdited); */
|
||||||
this.modalController.dismiss(this.isEventEdited);
|
this.modalController.dismiss(this.isEventEdited);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,10 +78,10 @@ export class ViewEventPage implements OnInit {
|
|||||||
this.eventsService.getEvent(this.eventId).subscribe(res => {
|
this.eventsService.getEvent(this.eventId).subscribe(res => {
|
||||||
this.loadedEvent = res;
|
this.loadedEvent = res;
|
||||||
|
|
||||||
console.log(res);
|
/* console.log(res); */
|
||||||
|
|
||||||
this.today = new Date(res.StartDate);
|
this.today = new Date(res.StartDate);
|
||||||
console.log(new Date(this.today));
|
/* console.log(new Date(this.today)); */
|
||||||
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
|
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -154,7 +154,7 @@ export class ViewEventPage implements OnInit {
|
|||||||
|
|
||||||
viewDocument(sourceId){
|
viewDocument(sourceId){
|
||||||
this.processes.GetDocumentUrl(sourceId, '8').subscribe(res=>{
|
this.processes.GetDocumentUrl(sourceId, '8').subscribe(res=>{
|
||||||
console.log(res);
|
/* console.log(res); */
|
||||||
const url: string = res.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1");
|
const url: string = res.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1");
|
||||||
const browser = this.iab.create(url,"_blank");
|
const browser = this.iab.create(url,"_blank");
|
||||||
browser.show();
|
browser.show();
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<ion-item-group>
|
<ion-item-group>
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-item-sliding>
|
<ion-item-sliding>
|
||||||
<ion-item *ngFor="let attendee of contacts">
|
<ion-item lines="none" *ngFor="let attendee of contacts">
|
||||||
<ion-checkbox slot="end" (ionChange)="selectContact(attendee)"></ion-checkbox><!-- [disabled]="isCheckboxDisabled" -->
|
<ion-checkbox slot="end" (ionChange)="selectContact(attendee)"></ion-checkbox><!-- [disabled]="isCheckboxDisabled" -->
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<h3>{{ attendee.Name }}</h3>
|
<h3>{{ attendee.Name }}</h3>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<ion-list lines="none" class="flex-grow-1 overflow-y-auto height-100" >
|
<ion-list lines="none" class="flex-grow-1 overflow-y-auto height-100" >
|
||||||
<ion-item-sliding class="px-20">
|
<ion-item-sliding class="px-20">
|
||||||
<div *ngFor="let attendee of contacts;">
|
<div *ngFor="let attendee of contacts;">
|
||||||
<ion-item lines="none" (click)="selectContact(attendee)" *ngIf="filterSearchList(attendee)" >
|
<ion-item lines="none" *ngIf="filterSearchList(attendee)" >
|
||||||
<div class="pr-10">
|
<div class="pr-10">
|
||||||
<ion-icon class="font-35" src="assets/images/icons-userprofile.svg"></ion-icon>
|
<ion-icon class="font-35" src="assets/images/icons-userprofile.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
@@ -20,6 +20,9 @@
|
|||||||
<h3>{{ attendee.Name }}</h3>
|
<h3>{{ attendee.Name }}</h3>
|
||||||
<p>{{ attendee.EmailAddress }}</p>
|
<p>{{ attendee.EmailAddress }}</p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
|
<div (click)="selectContact(attendee)">
|
||||||
|
<ion-icon class="font-35" src="assets/images/icons-add-25.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -38,8 +41,8 @@
|
|||||||
<h3>{{ attendee.Name }}</h3>
|
<h3>{{ attendee.Name }}</h3>
|
||||||
<p>{{ attendee.EmailAddress }}</p>
|
<p>{{ attendee.EmailAddress }}</p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
<div style="color:red" (click)="remove(attendee)">
|
<div (click)="remove(attendee)">
|
||||||
X
|
<ion-icon class="font-35" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</ion-item-sliding>
|
</ion-item-sliding>
|
||||||
@@ -56,8 +59,8 @@
|
|||||||
<h3>{{ attendee.Name }}</h3>
|
<h3>{{ attendee.Name }}</h3>
|
||||||
<p>{{ attendee.EmailAddress }}</p>
|
<p>{{ attendee.EmailAddress }}</p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
<div style="color:red" (click)="remove(attendee)">
|
<div (click)="remove(attendee)">
|
||||||
X
|
<ion-icon class="font-35" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</ion-item-sliding>
|
</ion-item-sliding>
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
ion-item-group{
|
|
||||||
margin: 15px;
|
|
||||||
}
|
|
||||||
ion-item{
|
ion-item{
|
||||||
border-bottom:1px solid #ccc;
|
border-bottom:1px solid #ccc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,12 +41,12 @@ export class EventListPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
this.LoadToApproveEvents();
|
// this.LoadToApproveEvents();
|
||||||
|
|
||||||
|
|
||||||
this.router.events.forEach((event) => {
|
this.router.events.forEach((event) => {
|
||||||
if(event instanceof NavigationEnd && event.url == this.router.url) {
|
if(event instanceof NavigationEnd && event.url == this.router.url) {
|
||||||
this.LoadToApproveEvents();
|
// this.LoadToApproveEvents();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -123,10 +123,15 @@
|
|||||||
|
|
||||||
<!-- Aside right -->
|
<!-- Aside right -->
|
||||||
<div class="aside-content d-none flex-column height-100">
|
<div class="aside-content d-none flex-column height-100">
|
||||||
|
<!--
|
||||||
<app-empty-container [texto]="emptyTextDescription" *ngIf="showEmptyContainer" class="d-flex height-100 flex-column"></app-empty-container>
|
<app-empty-container [texto]="emptyTextDescription" *ngIf="showEmptyContainer" class="d-flex height-100 flex-column"></app-empty-container>
|
||||||
<app-events-to-approve [profile]="'MDGPR'" *ngIf="showEventsToApprove" class="d-flex height-100 flex-column"></app-events-to-approve>
|
<app-events-to-approve [profile]="'MDGPR'" *ngIf="showEventsToApprove" class="d-flex height-100 flex-column"></app-events-to-approve>
|
||||||
|
|
||||||
|
|
||||||
<app-expedients (openExpedientDetail)="openExpedientPage($event)" [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showExpedients"></app-expedients>
|
<app-expedients (openExpedientDetail)="openExpedientPage($event)" [profile]="profile" class="d-flex height-100 flex-column" *ngIf="showExpedients"></app-expedients>
|
||||||
<app-expediente (openExpedientList)="openExpedientListPage()" [profile]="profile" [serialNumber]="serialNumber" class="d-flex height-100 flex-column" *ngIf="showExpedientDetail"></app-expediente>
|
<app-expediente (openExpedientList)="openExpedientListPage()" [profile]="profile" [serialNumber]="serialNumber" class="d-flex height-100 flex-column" *ngIf="showExpedientDetail"></app-expediente>
|
||||||
|
-->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|||||||
@@ -56,15 +56,14 @@ export class GabineteDigitalPage implements OnInit {
|
|||||||
if( window.innerWidth <= 1024){
|
if( window.innerWidth <= 1024){
|
||||||
this.modalController.dismiss();
|
this.modalController.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.activatedRoute.queryParams.subscribe(params => {
|
this.activatedRoute.queryParams.subscribe(params => {
|
||||||
if(params["show"]){
|
if(params["show"]){
|
||||||
this.openExpedientListPage();
|
// this.openExpedientListPage();
|
||||||
}
|
}
|
||||||
else if(params["events"]){
|
else if(params["events"]){
|
||||||
this.openEventsToApprovePage("MDGPR");
|
// this.openEventsToApprovePage("MDGPR");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -84,23 +83,21 @@ export class GabineteDigitalPage implements OnInit {
|
|||||||
|
|
||||||
this.router.events.forEach((event) => {
|
this.router.events.forEach((event) => {
|
||||||
if(event instanceof NavigationEnd && event.url == this.router.url) {
|
if(event instanceof NavigationEnd && event.url == this.router.url) {
|
||||||
this.LoadCounts();
|
//this.LoadCounts();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// this.LoadCounts();
|
||||||
|
|
||||||
this.LoadCounts();
|
|
||||||
/* this.eventService.getAllMdEvents.subscribe(res=>{
|
/* this.eventService.getAllMdEvents.subscribe(res=>{
|
||||||
console.log(res);
|
console.log(res);
|
||||||
|
|
||||||
});
|
});
|
||||||
console.log(this.eventService.getAllPrEvents.length);
|
console.log(this.eventService.getAllPrEvents.length);
|
||||||
*/
|
*/
|
||||||
this.processesbackend.GetActionsList().subscribe(res=>{
|
// this.processesbackend.GetActionsList().subscribe(res=>{
|
||||||
console.log(res);
|
// console.log(res);
|
||||||
|
|
||||||
});
|
//});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,7 +187,7 @@ this.processesbackend.GetActionsList().subscribe(res=>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
openExpedientPage(data){
|
openExpedientPage(data){
|
||||||
console.log(data);
|
/* console.log(data); */
|
||||||
|
|
||||||
this.closeAllDesktopComponents();
|
this.closeAllDesktopComponents();
|
||||||
if( window.innerWidth <= 1024){
|
if( window.innerWidth <= 1024){
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<ion-progress-bar type="indeterminate" class="loader" *ngIf="showLoader"></ion-progress-bar>
|
<ion-progress-bar type="indeterminate" class="loader" *ngIf="showLoader"></ion-progress-bar>
|
||||||
<div class="d-flex ion-justify-content-between">
|
<div class="d-flex ion-justify-content-between">
|
||||||
|
|
||||||
<ion-form class="d-md-none">
|
<ion-form [class.d-md-none]="!select">
|
||||||
<div class="d-flex search-input-container ion-justify-content-between" >
|
<div class="d-flex search-input-container ion-justify-content-between" >
|
||||||
<div class="icon">
|
<div class="icon">
|
||||||
<button class="btn-no-color" (click)="basicSearch()">
|
<button class="btn-no-color" (click)="basicSearch()">
|
||||||
@@ -21,6 +21,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ion-form>
|
</ion-form>
|
||||||
|
|
||||||
<!-- search -->
|
<!-- search -->
|
||||||
<div *ngIf="!showAdvanceSearch" class="icon-z icon-most-searched-word-open" (click)="showHideAdvanceSearch(true)">
|
<div *ngIf="!showAdvanceSearch" class="icon-z icon-most-searched-word-open" (click)="showHideAdvanceSearch(true)">
|
||||||
<ion-icon src="assets/images/icons-most-searched-words-open.svg" class="icon" slot="end"></ion-icon>
|
<ion-icon src="assets/images/icons-most-searched-words-open.svg" class="icon" slot="end"></ion-icon>
|
||||||
@@ -76,19 +77,18 @@
|
|||||||
|
|
||||||
<!-- search result categories-->
|
<!-- search result categories-->
|
||||||
<div class="options flex-md-grow-1 " *ngIf="showDocuments"
|
<div class="options flex-md-grow-1 " *ngIf="showDocuments"
|
||||||
style="border-bottom: 1px solid #f3f3f3;"
|
style="border-bottom: 1px solid #f3f3f3;width: unset"
|
||||||
>
|
>
|
||||||
<div class="container ">
|
<div class="container ">
|
||||||
<div class="d-flex width-100">
|
<div class="d-flex overflow-x-auto">
|
||||||
<!-- SLIDE -->
|
<!-- SLIDE -->
|
||||||
<ion-slides class="slide width-100" pager="false" [options]="slideOpts">
|
<div *ngFor="let category of searchCategories; index as i;" class="d-flex py-10" style="width:0px" [ngClass]="{'active-category': category.Active}" class="button" (click)="filterDocList(category.Name)" (click)="activeCategoty(i)">
|
||||||
<ion-slide *ngFor="let category of searchCategories; index as i;">
|
|
||||||
<div [ngClass]="{'active-category': category.Active}" class="button" (click)="filterDocList(category.Name)" (click)="activeCategoty(i)" >
|
<span>{{ category.Name }}</span>
|
||||||
<p>{{ category.Name }}</p>
|
|
||||||
<ion-label class="label">{{ category.Qtd }}</ion-label>
|
<ion-label class="label">{{ category.Qtd }}</ion-label>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</ion-slide>
|
|
||||||
</ion-slides>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="icon-z icon-most-searched-word-open " ion-button icon-only >
|
<button class="icon-z icon-most-searched-word-open " ion-button icon-only >
|
||||||
@@ -130,26 +130,31 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ion-icon *ngIf="ordinance == 'old'" (click)="reorderList('recent')" src="assets/images/icons-arrow-arrow-up.svg"></ion-icon>
|
<div *ngIf="ordinance == 'old'" (click)="reorderList('recent')">
|
||||||
<ion-icon *ngIf="ordinance == 'recent'" (click)="reorderList('old')" src="assets/images/icons-arrow-arrow-down-25.svg"></ion-icon>
|
<ion-icon src="assets/images/icons-arrow-arrow-up.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="ordinance == 'recent'" (click)="reorderList('old')">
|
||||||
|
<ion-icon src="assets/images/icons-arrow-arrow-down-25.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul>
|
||||||
<li *ngFor="let searchDocument of showSearchDocuments" (click)="viewDetail(searchDocument.Id)" class="d-flex">
|
<li *ngFor="let searchDocument of showSearchDocuments" (click)="viewDetail(searchDocument.Id); selectItem(searchDocument)" class="d-flex">
|
||||||
<div class="icon">
|
<div class="icon">
|
||||||
<ion-icon *ngIf="itemIcons() == '/home/gabinete-digital' "
|
<ion-icon *ngIf="itemIcons() == 'AccoesPresidenciais & ArquivoDespachoElect' "
|
||||||
src="assets/images/icons-search-document.svg"></ion-icon>
|
src="assets/images/icons-search-document.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="itemIcons() == '/home/agenda' "
|
<ion-icon *ngIf="itemIcons() == 'Agenda' "
|
||||||
src="assets/images/icons-default-agenda.svg"></ion-icon>
|
src="assets/images/icons-default-agenda.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="itemIcons() == '/home/publications' "
|
<ion-icon *ngIf="itemIcons() == 'AccoesPresidenciais' "
|
||||||
src="assets/images/icons-viagem.svg"></ion-icon>
|
src="assets/images/icons-viagem.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="content ion-align-items-center">
|
<div class="content ion-align-items-center">
|
||||||
|
|
||||||
<div class="d-flex ion-justify-content-between ">
|
<div class="d-flex ion-justify-content-between ">
|
||||||
<span class="result-name">{{ searchDocument.Assunto}}</span>
|
<span class="result-name">{{ searchDocument.Assunto}}</span>
|
||||||
<span class="app-name" *ngIf="currentPath == '/home/gabinete-digital' ">{{ searchDocument.appName}}</span>
|
<span class="app-name" *ngIf="itemIcons() == 'AccoesPresidenciais & ArquivoDespachoElect' ">{{ searchDocument.appName}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex ion-justify-content-between ">
|
<div class="d-flex ion-justify-content-between ">
|
||||||
<span class="organic-entity">{{ searchDocument.EntidadeOrganicaNome }}</span>
|
<span class="organic-entity">{{ searchDocument.EntidadeOrganicaNome }}</span>
|
||||||
@@ -167,5 +172,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</ion-content>
|
</ion-content>
|
||||||
@@ -55,19 +55,18 @@ ion-slide{
|
|||||||
margin: 0px 5px;
|
margin: 0px 5px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
padding: 5px 20px;
|
padding: 5px 20px;
|
||||||
height: 100%;
|
box-sizing: border-box;
|
||||||
box-sizing: 100%;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
p{
|
span{
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
font-family: Roboto;
|
font-family: Roboto;
|
||||||
color: #0d89d1;
|
color: #0d89d1;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
width: 100%;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.label{
|
.label{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -75,6 +74,7 @@ ion-slide{
|
|||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
color: #797979;
|
color: #797979;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
}
|
}
|
||||||
@@ -82,7 +82,7 @@ ion-slide{
|
|||||||
.active-category{
|
.active-category{
|
||||||
background-color: #42b9fe;
|
background-color: #42b9fe;
|
||||||
color: white;
|
color: white;
|
||||||
p{
|
span{
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
.label{
|
.label{
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { ModalController } from '@ionic/angular';
|
import { ModalController, NavParams } from '@ionic/angular';
|
||||||
import { SearchService } from "../../services/search.service";
|
import { SearchService } from "../../services/search.service";
|
||||||
import { SearchCategory } from "src/app/models/search-category";
|
import { SearchCategory } from "src/app/models/search-category";
|
||||||
import { SearchDocument } from "src/app/models/search-document";
|
import { SearchDocument } from "src/app/models/search-document";
|
||||||
@@ -9,8 +9,9 @@ import { OrganicEntityPage } from 'src/app/pages/search/organic-entity/organic-e
|
|||||||
import WordCloud from 'src/plugin/wordcloud2.js';
|
import WordCloud from 'src/plugin/wordcloud2.js';
|
||||||
import { ViewEventPage } from 'src/app/pages/agenda/view-event/view-event.page';
|
import { ViewEventPage } from 'src/app/pages/agenda/view-event/view-event.page';
|
||||||
import { PublicationDetailPage } from '../publications/view-publications/publication-detail/publication-detail.page';
|
import { PublicationDetailPage } from '../publications/view-publications/publication-detail/publication-detail.page';
|
||||||
import { ExpedienteDetailPage } from '../gabinete-digital/expediente/expediente-detail/expediente-detail.page';
|
|
||||||
import { DocumentDetailPage } from 'src/app/modals/document-detail/document-detail.page';
|
import { DocumentDetailPage } from 'src/app/modals/document-detail/document-detail.page';
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-search',
|
selector: 'app-search',
|
||||||
templateUrl: './search.page.html',
|
templateUrl: './search.page.html',
|
||||||
@@ -51,12 +52,46 @@ export class SearchPage implements OnInit {
|
|||||||
|
|
||||||
windowWidth: number;
|
windowWidth: number;
|
||||||
|
|
||||||
|
type : "Agenda" | "Correspondencia" | "AccoesPresidenciais" | "ArquivoDespachoElect" | "AccoesPresidenciais & ArquivoDespachoElect" = "Agenda";
|
||||||
|
select: boolean = false;
|
||||||
|
|
||||||
constructor(private modalController: ModalController,
|
constructor(private modalController: ModalController,
|
||||||
private search: SearchService,
|
private search: SearchService,
|
||||||
private modalCtrl: ModalController,) {
|
private modalCtrl: ModalController,
|
||||||
|
private navParams: NavParams) {
|
||||||
this.ordinance = "recent";
|
this.ordinance = "recent";
|
||||||
|
|
||||||
this.currentPath= window.location.pathname;
|
this.currentPath= window.location.pathname;
|
||||||
|
|
||||||
|
this.type = this.navParams.get('type');
|
||||||
|
|
||||||
|
|
||||||
|
if(this.type == null || this.type == undefined) {
|
||||||
|
|
||||||
|
this.select = false;
|
||||||
|
|
||||||
|
if(this.currentPath == '/home/agenda') {
|
||||||
|
this.type = "Agenda"
|
||||||
|
} else if (this.currentPath =='/home/gabinete-digital') {
|
||||||
|
this.type = "AccoesPresidenciais & ArquivoDespachoElect"
|
||||||
|
|
||||||
|
} else if (this.currentPath == '/home/publications') {
|
||||||
|
this.type = "AccoesPresidenciais"
|
||||||
|
} else {
|
||||||
|
this.select = false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.select = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
selectItem(item: SearchDocument) {
|
||||||
|
if(this.select){
|
||||||
|
this.modalController.dismiss({
|
||||||
|
selected: item
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
@@ -174,7 +209,7 @@ export class SearchPage implements OnInit {
|
|||||||
*/
|
*/
|
||||||
basicSearch(){
|
basicSearch(){
|
||||||
|
|
||||||
if(window.location.pathname == '/home/agenda'){
|
if(this.type == "Agenda" ){
|
||||||
|
|
||||||
|
|
||||||
this.showLoader = true;
|
this.showLoader = true;
|
||||||
@@ -205,7 +240,7 @@ export class SearchPage implements OnInit {
|
|||||||
this.loadWordCloud();
|
this.loadWordCloud();
|
||||||
|
|
||||||
});
|
});
|
||||||
} else if (window.location.pathname =='/home/gabinete-digital'){
|
} else if ( this.type == "AccoesPresidenciais & ArquivoDespachoElect"){
|
||||||
|
|
||||||
this.showLoader = true;
|
this.showLoader = true;
|
||||||
|
|
||||||
@@ -267,7 +302,7 @@ export class SearchPage implements OnInit {
|
|||||||
this.loadWordCloud();
|
this.loadWordCloud();
|
||||||
});
|
});
|
||||||
|
|
||||||
} else if (window.location.pathname == '/home/publications'){
|
} else if (this.type == "AccoesPresidenciais"){
|
||||||
|
|
||||||
this.showLoader = true;
|
this.showLoader = true;
|
||||||
|
|
||||||
@@ -424,7 +459,7 @@ export class SearchPage implements OnInit {
|
|||||||
|
|
||||||
|
|
||||||
itemIcons(): string{
|
itemIcons(): string{
|
||||||
return window.location.pathname
|
return this.type
|
||||||
}
|
}
|
||||||
|
|
||||||
viewDocument(){
|
viewDocument(){
|
||||||
@@ -437,7 +472,7 @@ export class SearchPage implements OnInit {
|
|||||||
async viewDetail(id:any) {
|
async viewDetail(id:any) {
|
||||||
console.log(id);
|
console.log(id);
|
||||||
|
|
||||||
|
if(!this.selectItem){
|
||||||
if(window.location.pathname == '/home/agenda'){
|
if(window.location.pathname == '/home/agenda'){
|
||||||
|
|
||||||
const modal = await this.modalCtrl.create({
|
const modal = await this.modalCtrl.create({
|
||||||
@@ -459,6 +494,7 @@ export class SearchPage implements OnInit {
|
|||||||
this.viewDocumentDetail(id,'');
|
this.viewDocumentDetail(id,'');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -480,7 +516,7 @@ export class SearchPage implements OnInit {
|
|||||||
async viewDocumentDetail(docId:string, applicationId:string) {
|
async viewDocumentDetail(docId:string, applicationId:string) {
|
||||||
let classs;
|
let classs;
|
||||||
if( window.innerWidth <= 800){
|
if( window.innerWidth <= 800){
|
||||||
classs = 'modal'
|
classs = 'modal modal-desktop'
|
||||||
} else {
|
} else {
|
||||||
classs = 'modal modal-desktop showAsideOptions'
|
classs = 'modal modal-desktop showAsideOptions'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Attachment } from '../models/attachment.model';
|
import { Attachment, EventAttachment } from '../models/attachment.model';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
|
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
|
||||||
import { environment } from 'src/environments/environment';
|
import { environment } from 'src/environments/environment';
|
||||||
@@ -47,6 +47,7 @@ export class AttachmentsService {
|
|||||||
|
|
||||||
return this.http.get<Attachment[]>(`${geturl}`, options);
|
return this.http.get<Attachment[]>(`${geturl}`, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAttachmentsById(eventId: string): Observable<Attachment[]> {
|
getAttachmentsById(eventId: string): Observable<Attachment[]> {
|
||||||
let geturl = environment.apiURL + 'attachments/GetAttachmentsByEventId';
|
let geturl = environment.apiURL + 'attachments/GetAttachmentsByEventId';
|
||||||
let params = new HttpParams();
|
let params = new HttpParams();
|
||||||
@@ -61,4 +62,32 @@ export class AttachmentsService {
|
|||||||
|
|
||||||
return this.http.get<Attachment[]>(`${geturl}`, options);
|
return this.http.get<Attachment[]>(`${geturl}`, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setEventAttachmentById(body: EventAttachment) {
|
||||||
|
|
||||||
|
let geturl = environment.apiURL + 'Attachments/Create';
|
||||||
|
|
||||||
|
let options = {
|
||||||
|
headers: this.headers,
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.http.post(`${geturl}`, body, options);
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteEventAttachmentById(attachmentId) {
|
||||||
|
|
||||||
|
let geturl = environment.apiURL + `Attachments/Delete?attachmentId=${attachmentId}`;
|
||||||
|
|
||||||
|
let params = new HttpParams();
|
||||||
|
|
||||||
|
params = params.set("attachmentId", attachmentId);
|
||||||
|
|
||||||
|
let options = {
|
||||||
|
headers: this.headers,
|
||||||
|
params: params
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.http.delete(`${geturl}`, options);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ export class EventsService {
|
|||||||
params: params
|
params: params
|
||||||
};
|
};
|
||||||
|
|
||||||
return this.http.post<Event>(`${puturl}`, event, options)
|
return this.http.post<string>(`${puturl}`, event, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
postEventPr(event:Event, calendarName:string)
|
postEventPr(event:Event, calendarName:string)
|
||||||
@@ -173,7 +173,7 @@ export class EventsService {
|
|||||||
params: params
|
params: params
|
||||||
};
|
};
|
||||||
|
|
||||||
return this.http.post<Event>(`${puturl}`, event, options)
|
return this.http.post<string>(`${puturl}`, event, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteEvent(eventid:string, deletemode:number)
|
deleteEvent(eventid:string, deletemode:number)
|
||||||
|
|||||||
@@ -187,30 +187,37 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div hidden class="ion-item-container-no-border">
|
<div (click)="getDoc()" class="d-flex container-div width-100 ion-item-container-no-border" >
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<div class="attach-icon">
|
<div class="attach-icon">
|
||||||
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
|
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="attach-document">
|
<div class="attach-document">
|
||||||
<ion-label>Anexar Documentos</ion-label>
|
<ion-label>Adicionar documentos</ion-label>
|
||||||
</div>
|
</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div hidden>
|
<div class="d-flex container-div width-100" *ngFor="let document of loadedEventAttachments" >
|
||||||
<ion-item>
|
<ion-list class="width-100 list">
|
||||||
<ion-label>Documentos Anexados</ion-label>
|
<ion-item class="width-100">
|
||||||
</ion-item>
|
<ion-label class="width-100">
|
||||||
<ion-list>
|
<p class="d-flex ion-justify-content-between">
|
||||||
<ion-item>
|
<span class="attach-title-item">{{document.SourceName}}</span>
|
||||||
<ion-label>
|
<span class="app-name" *ngIf="document.ApplicationId == 8"> Correspondencia </span>
|
||||||
<h4 class="attach-title-item">Text</h4>
|
<span class="app-name" *ngIf="document.ApplicationId == 386"> AccoesPresidenciais </span>
|
||||||
<p><span class="span-left">Text</span><span class="span-right"> Text </span></p>
|
<span class="app-name" *ngIf="document.ApplicationId == 361 "> ArquivoDespachoElect </span>
|
||||||
|
<span class="close-button text-black" (click)="deleteAttachment(document.Id)" >
|
||||||
|
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<p><span class="span-left">{{document.Stakeholders}}</span><span class="span-right"> {{document.CreateDate | date: 'dd-MM-yy'}} </span></p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
<ion-footer class="ion-no-border">
|
<ion-footer class="ion-no-border">
|
||||||
|
|||||||
@@ -168,3 +168,37 @@ ion-content{
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.app-name{
|
||||||
|
background: #42b9f2;
|
||||||
|
border-radius: 18px;
|
||||||
|
text-align: center;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0px 5px;
|
||||||
|
color: white;
|
||||||
|
font-size: 9pt;
|
||||||
|
font-weight: 500;
|
||||||
|
height: 19px;
|
||||||
|
-webkit-border-radius: 18px;
|
||||||
|
-moz-border-radius: 18px;
|
||||||
|
-ms-border-radius: 18px;
|
||||||
|
-o-border-radius: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.close-button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list:hover {
|
||||||
|
|
||||||
|
.app-name {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,6 +6,9 @@ import { EventsService } from 'src/app/services/events.service';
|
|||||||
import { Event } from 'src/app/models/event.model';
|
import { Event } from 'src/app/models/event.model';
|
||||||
import { AlertController } from '@ionic/angular';
|
import { AlertController } from '@ionic/angular';
|
||||||
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
||||||
|
import { SearchPage } from 'src/app/pages/search/search.page';
|
||||||
|
import { AttachmentsService } from 'src/app/services/attachments.service';
|
||||||
|
import { Attachment } from 'src/app/models/attachment.model';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-edit-event',
|
selector: 'app-edit-event',
|
||||||
templateUrl: './edit-event.component.html',
|
templateUrl: './edit-event.component.html',
|
||||||
@@ -21,6 +24,7 @@ export class EditEventComponent implements OnInit {
|
|||||||
segment:string = "true";
|
segment:string = "true";
|
||||||
eventAttendees: EventPerson[];
|
eventAttendees: EventPerson[];
|
||||||
minDate: string;
|
minDate: string;
|
||||||
|
loadedEventAttachments: Attachment[];
|
||||||
|
|
||||||
@Input() taskParticipants: EventPerson[];
|
@Input() taskParticipants: EventPerson[];
|
||||||
@Input() taskParticipantsCc: EventPerson[];
|
@Input() taskParticipantsCc: EventPerson[];
|
||||||
@@ -40,8 +44,11 @@ export class EditEventComponent implements OnInit {
|
|||||||
private modalController: ModalController,
|
private modalController: ModalController,
|
||||||
private eventsService: EventsService,
|
private eventsService: EventsService,
|
||||||
public alertController: AlertController,
|
public alertController: AlertController,
|
||||||
|
private attachmentsService: AttachmentsService,
|
||||||
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
@@ -49,8 +56,12 @@ export class EditEventComponent implements OnInit {
|
|||||||
if(!this.restoreTemporaryData()){
|
if(!this.restoreTemporaryData()){
|
||||||
|
|
||||||
if(this.postEvent){
|
if(this.postEvent){
|
||||||
|
if( this.postEvent.Body){
|
||||||
|
if(typeof(this.postEvent.Body.Text) == 'string'){
|
||||||
this.postEvent.Body.Text = this.postEvent.Body.Text.replace(/<[^>]+>/g, '');
|
this.postEvent.Body.Text = this.postEvent.Body.Text.replace(/<[^>]+>/g, '');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// attendees list
|
// attendees list
|
||||||
if(this.postEvent.Attendees != null) {
|
if(this.postEvent.Attendees != null) {
|
||||||
@@ -79,6 +90,10 @@ export class EditEventComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.getAttachments(this.postEvent.EventId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
close(){
|
close(){
|
||||||
@@ -90,6 +105,9 @@ export class EditEventComponent implements OnInit {
|
|||||||
this.deleteTemporaryData();
|
this.deleteTemporaryData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async save(){
|
async save(){
|
||||||
|
|
||||||
this.postEvent.Attendees = this.taskParticipants.concat(this.taskParticipantsCc);
|
this.postEvent.Attendees = this.taskParticipants.concat(this.taskParticipantsCc);
|
||||||
@@ -120,6 +138,7 @@ export class EditEventComponent implements OnInit {
|
|||||||
this.clearContact.emit();
|
this.clearContact.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async addParticipantsCc() {
|
async addParticipantsCc() {
|
||||||
|
|
||||||
this.saveTemporaryData();
|
this.saveTemporaryData();
|
||||||
@@ -155,10 +174,60 @@ export class EditEventComponent implements OnInit {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteTemporaryData(){
|
deleteTemporaryData(){
|
||||||
window['temp.path:/home/agenda/edit-event.component.ts'] = {}
|
window['temp.path:/home/agenda/edit-event.component.ts'] = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getAttachments(eventId: string){
|
||||||
|
this.attachmentsService.getAttachmentsById(eventId).subscribe(res=>{
|
||||||
|
this.loadedEventAttachments = res;
|
||||||
|
console.log('res', res);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteAttachment(attachmentID: string) {
|
||||||
|
|
||||||
|
this.attachmentsService.deleteEventAttachmentById(attachmentID).subscribe(
|
||||||
|
res=>{
|
||||||
|
this.loadedEventAttachments = this.loadedEventAttachments.filter(e=> e.Id.toString() != attachmentID);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async getDoc() {
|
||||||
|
const modal = await this.modalController.create({
|
||||||
|
component: SearchPage,
|
||||||
|
cssClass: 'group-messages modal-desktop search-modal search-modal-to-desktop',
|
||||||
|
componentProps: {
|
||||||
|
type: 'AccoesPresidenciais & ArquivoDespachoElect'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
await modal.present();
|
||||||
|
modal.onDidDismiss().then( async (res)=>{
|
||||||
|
if(res){
|
||||||
|
const data = res.data;
|
||||||
|
//data.selected
|
||||||
|
const DocumentToSave = {
|
||||||
|
SourceTitle: data.selected.Assunto,
|
||||||
|
ParentId: this.postEvent.EventId,
|
||||||
|
Source: '1',
|
||||||
|
SourceId: data.selected.Id,
|
||||||
|
ApplicationId: data.selected.ApplicationType.toString(),
|
||||||
|
Id: '0',
|
||||||
|
Link: '',
|
||||||
|
SerialNumber: '',
|
||||||
|
};
|
||||||
|
|
||||||
|
await this.attachmentsService.setEventAttachmentById(DocumentToSave).subscribe(()=>{
|
||||||
|
this.getAttachments(this.postEvent.EventId);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,11 +44,11 @@ export class EventListComponent implements OnInit {
|
|||||||
this.profile = 'PR'
|
this.profile = 'PR'
|
||||||
}
|
}
|
||||||
|
|
||||||
this.LoadToApproveEvents();
|
// this.LoadToApproveEvents();
|
||||||
|
|
||||||
this.router.events.forEach((event) => {
|
this.router.events.forEach((event) => {
|
||||||
if(event instanceof NavigationEnd && event.url == this.router.url) {
|
if(event instanceof NavigationEnd && event.url == this.router.url) {
|
||||||
this.LoadToApproveEvents();
|
// this.LoadToApproveEvents();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -183,26 +183,29 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div hidden class="ion-item-container-no-border">
|
<div class="ion-item-container-no-border" (click)="getDoc()">
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<div class="attach-icon">
|
<div class="attach-icon">
|
||||||
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
|
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="attach-document">
|
<div class="attach-document">
|
||||||
<ion-label>Anexar Documentos</ion-label>
|
<ion-label>Adicionar documentos</ion-label>
|
||||||
</div>
|
</div>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div hidden>
|
<div class="list " *ngFor="let document of documents; let i = index" >
|
||||||
<ion-item>
|
|
||||||
<ion-label>Documentos Anexados</ion-label>
|
|
||||||
</ion-item>
|
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-item>
|
<ion-item>
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<h4 class="attach-title-item">Text</h4>
|
<p class="d-flex ion-justify-content-between">
|
||||||
<p><span class="span-left">Text</span><span class="span-right"> Text </span></p>
|
<span class="attach-title-item">{{document.Assunto}}</span>
|
||||||
|
<span class="app-name">{{document.appName}}</span>
|
||||||
|
<span class="close-button text-black" (click)="removeAttachment(i)" >
|
||||||
|
<ion-icon class="font-20" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<p><span class="span-left">{{document.EntidadeOrganicaNome}}</span><span class="span-right"> {{document.Data | date: 'dd-MM-yy'}} </span></p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
|
|||||||
@@ -177,3 +177,37 @@ ion-content{
|
|||||||
height: 81px;
|
height: 81px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.app-name{
|
||||||
|
background: #42b9f2;
|
||||||
|
border-radius: 18px;
|
||||||
|
text-align: center;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0px 5px;
|
||||||
|
color: white;
|
||||||
|
font-size: 9pt;
|
||||||
|
font-weight: 500;
|
||||||
|
height: 19px;
|
||||||
|
-webkit-border-radius: 18px;
|
||||||
|
-moz-border-radius: 18px;
|
||||||
|
-ms-border-radius: 18px;
|
||||||
|
-o-border-radius: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.close-button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list:hover {
|
||||||
|
|
||||||
|
.app-name {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-button {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,9 +2,13 @@ import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
|
|||||||
import { EventBody } from 'src/app/models/eventbody.model';
|
import { EventBody } from 'src/app/models/eventbody.model';
|
||||||
import { EventPerson } from 'src/app/models/eventperson.model';
|
import { EventPerson } from 'src/app/models/eventperson.model';
|
||||||
import { EventsService } from 'src/app/services/events.service';
|
import { EventsService } from 'src/app/services/events.service';
|
||||||
|
import { AttachmentsService } from 'src/app/services/attachments.service';
|
||||||
import { Event } from 'src/app/models/event.model';
|
import { Event } from 'src/app/models/event.model';
|
||||||
import { ModalController } from '@ionic/angular';
|
import { ModalController } from '@ionic/angular';
|
||||||
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
|
||||||
|
import { SearchPage } from 'src/app/pages/search/search.page';
|
||||||
|
import { SearchDocument } from "src/app/models/search-document";
|
||||||
|
import { EventAttachment } from 'src/app/models/attachment.model';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-new-event',
|
selector: 'app-new-event',
|
||||||
templateUrl: './new-event.component.html',
|
templateUrl: './new-event.component.html',
|
||||||
@@ -22,7 +26,6 @@ export class NewEventPage implements OnInit {
|
|||||||
@Input() taskParticipants: EventPerson[];
|
@Input() taskParticipants: EventPerson[];
|
||||||
@Input() taskParticipantsCc: any = [];
|
@Input() taskParticipantsCc: any = [];
|
||||||
|
|
||||||
|
|
||||||
@Output() setIntervenient = new EventEmitter<any>();
|
@Output() setIntervenient = new EventEmitter<any>();
|
||||||
@Output() setIntervenientCC = new EventEmitter<any>();
|
@Output() setIntervenientCC = new EventEmitter<any>();
|
||||||
|
|
||||||
@@ -33,11 +36,14 @@ export class NewEventPage implements OnInit {
|
|||||||
@Output() GoBackEditOrAdd = new EventEmitter<any>();
|
@Output() GoBackEditOrAdd = new EventEmitter<any>();
|
||||||
@Output() cloneAllmobileComponent = new EventEmitter<any>();
|
@Output() cloneAllmobileComponent = new EventEmitter<any>();
|
||||||
|
|
||||||
|
documents:SearchDocument[] = [];
|
||||||
|
|
||||||
minDate: string;
|
minDate: string;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private modalController: ModalController,
|
private modalController: ModalController,
|
||||||
private eventService: EventsService,
|
private eventService: EventsService,
|
||||||
|
private attachmentsService: AttachmentsService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
@@ -121,6 +127,23 @@ export class NewEventPage implements OnInit {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getDoc(){
|
||||||
|
const modal = await this.modalController.create({
|
||||||
|
component: SearchPage,
|
||||||
|
cssClass: 'group-messages modal-desktop search-modal search-modal-to-desktop',
|
||||||
|
componentProps: {
|
||||||
|
type: 'AccoesPresidenciais & ArquivoDespachoElect'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
await modal.present();
|
||||||
|
modal.onDidDismiss().then((res)=>{
|
||||||
|
if(res){
|
||||||
|
const data = res.data;
|
||||||
|
this.documents.push(data.selected);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
close(){
|
close(){
|
||||||
|
|
||||||
this.deleteTemporaryData();
|
this.deleteTemporaryData();
|
||||||
@@ -131,24 +154,73 @@ export class NewEventPage implements OnInit {
|
|||||||
this.setIntervenientCC.emit([]);
|
this.setIntervenientCC.emit([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
save(){
|
|
||||||
|
|
||||||
|
async save(){
|
||||||
|
|
||||||
this.postEvent.Attendees = this.taskParticipants.concat(this.taskParticipantsCc);
|
this.postEvent.Attendees = this.taskParticipants.concat(this.taskParticipantsCc);
|
||||||
|
|
||||||
|
|
||||||
|
if(this.documents.length >= 0){
|
||||||
|
this.postEvent.HasAttachments = true;
|
||||||
|
}
|
||||||
|
|
||||||
if(this.profile=='mdgpr') {
|
if(this.profile=='mdgpr') {
|
||||||
this.eventService.postEventMd(this.postEvent, this.postEvent.CalendarName).subscribe();
|
this.eventService.postEventMd(this.postEvent, this.postEvent.CalendarName).subscribe(
|
||||||
|
(id) => {
|
||||||
|
|
||||||
|
const eventId: string = id;
|
||||||
|
|
||||||
|
const DocumentToSave: EventAttachment[] = this.documents.map((e) => {
|
||||||
|
return {
|
||||||
|
SourceTitle: e.Assunto,
|
||||||
|
ParentId: eventId,
|
||||||
|
Source: '1',
|
||||||
|
SourceId: e.Id,
|
||||||
|
ApplicationId: e.ApplicationType.toString(),
|
||||||
|
Id: '',
|
||||||
|
Link: '',
|
||||||
|
SerialNumber: ''
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
DocumentToSave.forEach((attachments) => {
|
||||||
|
this.attachmentsService.setEventAttachmentById(attachments).subscribe();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else if(this.profile=='pr') {
|
else if(this.profile=='pr') {
|
||||||
this.eventService.postEventPr(this.postEvent, this.postEvent.CalendarName).subscribe();
|
this.eventService.postEventPr(this.postEvent, this.postEvent.CalendarName).subscribe(
|
||||||
|
(id) => {
|
||||||
|
|
||||||
|
const eventId: string = id;
|
||||||
|
|
||||||
|
const toDocumentTosSave: EventAttachment[] = this.documents.map((e) => {
|
||||||
|
return {
|
||||||
|
SourceTitle: e.Assunto,
|
||||||
|
ParentId: eventId,
|
||||||
|
Source: '1',
|
||||||
|
SourceId: e.Id,
|
||||||
|
ApplicationId: e.ApplicationType.toString(),
|
||||||
|
Id: '',
|
||||||
|
Link: '',
|
||||||
|
SerialNumber: ''
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
toDocumentTosSave.forEach((attachments) => {
|
||||||
|
this.attachmentsService.setEventAttachmentById(attachments);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.deleteTemporaryData();
|
removeAttachment(index: number){
|
||||||
|
|
||||||
this.onAddEvent.emit(this.postEvent);
|
this.documents = this.documents.filter( (e, i) => index != i);
|
||||||
this.GoBackEditOrAdd.emit();
|
|
||||||
|
|
||||||
this.setIntervenient.emit([]);
|
|
||||||
this.setIntervenientCC.emit([]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -55,16 +55,15 @@
|
|||||||
<ion-item lines="none" class="ion-no-margin ion-no-padding">
|
<ion-item lines="none" class="ion-no-margin ion-no-padding">
|
||||||
<div [innerHTML]="loadedEvent.Body.Text"></div>
|
<div [innerHTML]="loadedEvent.Body.Text"></div>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div *ngIf="loadedAttachments" class="bottom-content">
|
<div *ngIf="loadedAttachments" class="bottom-content width-100">
|
||||||
<h5>Documentos Anexados</h5>
|
<h5>Documentos Anexados</h5>
|
||||||
<ion-list>
|
<ion-list class="width-100">
|
||||||
<ion-item lines="none" class="ion-no-margin ion-no-padding">
|
<ion-item *ngFor="let attach of loadedAttachments" class="width-100" lines="none" class="ion-no-margin ion-no-padding">
|
||||||
<ion-label *ngFor="let attach of loadedAttachments"
|
<ion-label class="width-100" (click)="viewDocument(attach.SourceId)">
|
||||||
(click)="viewDocument(attach.SourceId)">
|
|
||||||
<p class="attach-title-item">{{attach.SourceName}}</p>
|
<p class="attach-title-item">{{attach.SourceName}}</p>
|
||||||
<p><span class="span-left">{{attach.Stakeholders}}</span><span class="span-right">{{ attach.CreateDate | date: 'dd-MM-yy' }}</span></p>
|
<p><span class="span-left">{{attach.Stakeholders}}</span><span class="span-right">{{ attach.CreateDate | date: 'dd-MM-yy' }}</span></p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ export class ViewEventPage implements OnInit {
|
|||||||
months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
|
months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
|
||||||
days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
|
days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
|
||||||
|
|
||||||
|
documents: Attachment[] = [];
|
||||||
|
|
||||||
@Input() profile:string;
|
@Input() profile:string;
|
||||||
@Input() eventId: string;
|
@Input() eventId: string;
|
||||||
|
|
||||||
@@ -76,12 +78,15 @@ export class ViewEventPage implements OnInit {
|
|||||||
loadEvent(){
|
loadEvent(){
|
||||||
this.eventsService.getEvent(this.eventId).subscribe(res => {
|
this.eventsService.getEvent(this.eventId).subscribe(res => {
|
||||||
this.loadedEvent = res;
|
this.loadedEvent = res;
|
||||||
console.log(res);
|
// console.log(res);
|
||||||
this.today = new Date(res.StartDate);
|
this.today = new Date(res.StartDate);
|
||||||
console.log(new Date(this.today));
|
// console.log(new Date(this.today));
|
||||||
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
|
this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]);
|
||||||
this.getAttachments(this.loadedEvent.EventId);
|
this.getAttachments(this.loadedEvent.EventId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
deleteEvent(){
|
deleteEvent(){
|
||||||
this.eventsService.deleteEvent(this.loadedEvent.EventId, 0).subscribe(async () =>
|
this.eventsService.deleteEvent(this.loadedEvent.EventId, 0).subscribe(async () =>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<ion-list lines="none" class="flex-grow-1 overflow-y-auto height-100" >
|
<ion-list lines="none" class="flex-grow-1 overflow-y-auto height-100" >
|
||||||
<ion-item-sliding class="px-20">
|
<ion-item-sliding class="px-20">
|
||||||
<div *ngFor="let attendee of contacts;">
|
<div *ngFor="let attendee of contacts;">
|
||||||
<ion-item (click)="selectContact(attendee)" *ngIf="filterSearchList(attendee)" >
|
<ion-item *ngIf="filterSearchList(attendee)" >
|
||||||
<div class="pr-10">
|
<div class="pr-10">
|
||||||
<ion-icon class="font-35" src="assets/images/icons-userprofile.svg"></ion-icon>
|
<ion-icon class="font-35" src="assets/images/icons-userprofile.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
@@ -20,6 +20,9 @@
|
|||||||
<h3>{{ attendee.Name }}</h3>
|
<h3>{{ attendee.Name }}</h3>
|
||||||
<p>{{ attendee.EmailAddress }}</p>
|
<p>{{ attendee.EmailAddress }}</p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
|
<div (click)="selectContact(attendee)">
|
||||||
|
<ion-icon class="font-35" src="assets/images/icons-add-25.svg"></ion-icon>
|
||||||
|
</div>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -27,7 +30,6 @@
|
|||||||
</ion-list>
|
</ion-list>
|
||||||
<hr/>
|
<hr/>
|
||||||
|
|
||||||
|
|
||||||
<ion-list lines="none" *ngIf="taskParticipants.length >= 1 && adding == 'intervenient' " class="flex-grow-1 overflow-y-auto height-100 pb-0" >
|
<ion-list lines="none" *ngIf="taskParticipants.length >= 1 && adding == 'intervenient' " class="flex-grow-1 overflow-y-auto height-100 pb-0" >
|
||||||
<div class="px-20 font-15 pt-20" style="border-top:1px solid #ebebeb;font-weight: 500;" *ngIf="taskParticipants.length >= 1 || taskParticipantsCc.length >= 1" > Destinatário</div>
|
<div class="px-20 font-15 pt-20" style="border-top:1px solid #ebebeb;font-weight: 500;" *ngIf="taskParticipants.length >= 1 || taskParticipantsCc.length >= 1" > Destinatário</div>
|
||||||
<ion-item-sliding class="px-20">
|
<ion-item-sliding class="px-20">
|
||||||
@@ -39,8 +41,8 @@
|
|||||||
<h3>{{ attendee.Name }}</h3>
|
<h3>{{ attendee.Name }}</h3>
|
||||||
<p>{{ attendee.EmailAddress }}</p>
|
<p>{{ attendee.EmailAddress }}</p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
<div style="color:red" (click)="remove(attendee)">
|
<div (click)="remove(attendee)">
|
||||||
X
|
<ion-icon class="font-35" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</ion-item-sliding>
|
</ion-item-sliding>
|
||||||
@@ -57,8 +59,8 @@
|
|||||||
<h3>{{ attendee.Name }}</h3>
|
<h3>{{ attendee.Name }}</h3>
|
||||||
<p>{{ attendee.EmailAddress }}</p>
|
<p>{{ attendee.EmailAddress }}</p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
<div style="color:red" (click)="remove(attendee)">
|
<div (click)="remove(attendee)">
|
||||||
X
|
<ion-icon class="font-35" src="assets/images/icons-delete-25.svg"></ion-icon>
|
||||||
</div>
|
</div>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</ion-item-sliding>
|
</ion-item-sliding>
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
ion-item-group{
|
|
||||||
margin: 15px;
|
|
||||||
}
|
|
||||||
ion-item{
|
ion-item{
|
||||||
border-bottom:1px solid #ccc;
|
border-bottom:1px solid #ccc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25">
|
||||||
|
<g fill="none" fill-rule="evenodd" stroke-linecap="round">
|
||||||
|
<g stroke="#42B9FE" stroke-width="2">
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<g stroke-linejoin="round">
|
||||||
|
<path d="M1.157 1.45L8.228 8.521" transform="translate(-355 -234) translate(0 99) translate(20 125) translate(335 10) rotate(-45 17.657 -2.364) rotate(180 4.45 4.743)"/>
|
||||||
|
</g>
|
||||||
|
<path d="M13 7L13 17" transform="translate(-355 -234) translate(0 99) translate(20 125) translate(335 10)"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 757 B |
@@ -0,0 +1,16 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 25 25">
|
||||||
|
<g fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
|
||||||
|
<g stroke="#D30A0A" stroke-width="2">
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<path d="M8 8L17 17" transform="translate(-355 -471) translate(0 99) translate(20 327) translate(0 35) translate(335 10) rotate(180 12.5 12.5)"/>
|
||||||
|
<path d="M8 8L17 17" transform="translate(-355 -471) translate(0 99) translate(20 327) translate(0 35) translate(335 10) matrix(-1 0 0 1 25 0)"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 774 B |
Reference in New Issue
Block a user