mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-20 13:26:08 +00:00
Merge branch 'feature/home' into developer
This commit is contained in:
@@ -7,12 +7,14 @@ import { IonicModule } from '@ionic/angular';
|
||||
import { EventsPageRoutingModule } from './events-routing.module';
|
||||
|
||||
import { EventsPage } from './events.page';
|
||||
import { SharedModule } from 'src/app/shared/shared.module';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
IonicModule,
|
||||
SharedModule,
|
||||
EventsPageRoutingModule
|
||||
],
|
||||
declarations: [EventsPage],
|
||||
|
||||
@@ -1,234 +1,91 @@
|
||||
<ion-header class="ion-no-border">
|
||||
<ion-toolbar class="ion-no-border" class="bg-blue">
|
||||
<div class="div-top-header">
|
||||
<div class="div-search">
|
||||
<ion-icon src='assets/images/icons-search.svg'></ion-icon>
|
||||
</div>
|
||||
<div class="div-logo">
|
||||
<img src='assets/images/logo-no-bg.png' alt='logo'>
|
||||
</div>
|
||||
<div class="div-profile">
|
||||
<ion-icon src='assets/images/icons-profile.svg'></ion-icon>
|
||||
</div>
|
||||
</div>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
<ion-header translucent="true">
|
||||
<ion-toolbar class="bg-blue">
|
||||
<ion-buttons slot="end">
|
||||
<div class="toggleBox">
|
||||
<div (click)="changeProfile()" class="toggle">
|
||||
<input type="checkbox">
|
||||
<label for="" class="onbtn">PR</label>
|
||||
<label for="" class="ofbtn">MDGPR</label>
|
||||
</div>
|
||||
</div>
|
||||
</ion-buttons>
|
||||
</ion-toolbar>
|
||||
<ion-toolbar class="bg-blue">
|
||||
<ion-label>
|
||||
<ion-item class="ion-text-right" lines="none">
|
||||
<ion-label class="ion-text-wrap">
|
||||
<h3 class="header-medium"> {{greetting}} Excelência <br />
|
||||
Ministro Director do Gabinete do<!-- <br /> -->
|
||||
Presidente da República
|
||||
</h3>
|
||||
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-label>
|
||||
</ion-toolbar>
|
||||
<!-- TABS -->
|
||||
<ion-toolbar>
|
||||
<ion-segment [(ngModel)]="segment" (ionChange)="onSegmentChange()">
|
||||
<ion-segment-button value="Combinada">
|
||||
Combinada
|
||||
</ion-segment-button>
|
||||
<ion-segment-button value="Oficial">
|
||||
Oficial
|
||||
</ion-segment-button>
|
||||
<ion-segment-button value="Pessoal">
|
||||
Pessoal
|
||||
</ion-segment-button>
|
||||
</ion-segment>
|
||||
</ion-toolbar>
|
||||
<app-header></app-header>
|
||||
</ion-header>
|
||||
|
||||
<ion-content >
|
||||
<ion-content class="main bg-blue">
|
||||
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
|
||||
|
||||
<ion-label>
|
||||
<p class="p-small">{{customDate}}</p>
|
||||
<p class="time ion-text-center">{{customDate}}</p>
|
||||
</ion-label>
|
||||
<ion-label>
|
||||
<p class="event-number p-small ion-text-center"> <strong>{{totalEvent}}</strong> eventos agendados para hoje</p>
|
||||
</ion-label>
|
||||
<app-calendar></app-calendar>
|
||||
<!-- <ion-item lines="none">
|
||||
<ion-icon slot="start" src="assets/images/icons-agenda.svg"></ion-icon>
|
||||
<label>A sua Agenda</label>
|
||||
</ion-item> -->
|
||||
<!-- COMBINADA -->
|
||||
<div [ngSwitch]="segment">
|
||||
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
|
||||
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
|
||||
<ion-refresher-content>
|
||||
</ion-refresher-content>
|
||||
</ion-refresher>
|
||||
<!-- <ion-list *ngSwitchCase="'Combinada'" >
|
||||
<ion-item-group>
|
||||
<ion-item-sliding>
|
||||
<ion-item lines="none"
|
||||
*ngFor="let event of eventsList"
|
||||
[routerLink]="['/home/events', event.EventId, 'events']">
|
||||
<div class="div-item-{{event.CalendarName}}">
|
||||
<div class="div-up">
|
||||
<div class="div-icon">
|
||||
<ion-icon slot="start" name="reader"></ion-icon>
|
||||
</div>
|
||||
<div class="div-content-{{event.CalendarName}}">
|
||||
<h3 class="capitalizeText">{{event.Subject}}</h3>
|
||||
<p>{{event.StartDate | date: 'hh:mm'}} - {{event.EndDate| date: 'hh:mm'}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="div-botton">
|
||||
<div class="div-botton-left">
|
||||
<ion-icon class="ion-icon-location" slot="start" name="location"></ion-icon>
|
||||
</div>
|
||||
<div class="div-botton-middle">
|
||||
<p class="item-list-small capitalizeText">{{event.Location}}</p>
|
||||
</div>
|
||||
<div *ngIf="event.HasAttachments" class="div-botton-right">
|
||||
<ion-icon class="ion-icon-attach" slot="end" name="attach-outline"></ion-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-item>
|
||||
</ion-item-sliding>
|
||||
</ion-item-group>
|
||||
</ion-list> -->
|
||||
<ion-list *ngSwitchCase="'Combinada'">
|
||||
<div *ngIf="eventsList">
|
||||
<ion-item-sliding>
|
||||
<ion-item class="Rectangle" lines="none"
|
||||
*ngFor="let event of eventsList"
|
||||
[routerLink]="['/home/events', event.EventId, 'events']">
|
||||
<div class="content-{{profile}}-{{event.CalendarName}}">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.StartDate | date: 'hh:mm'}}</p>
|
||||
<p>{{event.EndDate | date: 'hh:mm'}}</p>
|
||||
</div>
|
||||
<div class="approve-event-detail">
|
||||
<p>{{event.Location}}</p>
|
||||
<h3>{{event.Subject}}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</ion-item>
|
||||
</ion-item-sliding>
|
||||
</div>
|
||||
</ion-list>
|
||||
<!-- OFICIAL -->
|
||||
<!-- <ion-list *ngSwitchCase="'Oficial'">
|
||||
<ion-item-group>
|
||||
<ion-item-sliding>
|
||||
<ion-item lines="none"
|
||||
*ngFor="let event of officialeventsList"
|
||||
[routerLink]="['/home/events', event.EventId, 'events']">
|
||||
<div class="div-item-{{event.CalendarName}}">
|
||||
<div class="div-up">
|
||||
<div class="div-icon">
|
||||
<ion-icon slot="start" name="reader"></ion-icon>
|
||||
</div>
|
||||
<div class="div-content-{{event.CalendarName}}">
|
||||
<h3 class="capitalizeText">{{event.Subject}}</h3>
|
||||
<p>{{event.StartDate | date: 'hh:mm'}} - {{event.EndDate | date: 'hh:mm'}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="div-botton">
|
||||
<div class="div-botton-left">
|
||||
<ion-icon class="ion-icon-location" slot="start" name="location"></ion-icon>
|
||||
</div>
|
||||
<div class="div-botton-middle">
|
||||
<p class="item-list-small capitalizeText">{{event.Location}}</p>
|
||||
</div>
|
||||
<div class="div-botton-right">
|
||||
<ion-icon class="ion-icon-attach" slot="end" name="attach-outline"></ion-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-item>
|
||||
</ion-item-sliding>
|
||||
</ion-item-group>
|
||||
</ion-list> -->
|
||||
<ion-list *ngSwitchCase="'Oficial'">
|
||||
<div *ngIf="officialeventsList">
|
||||
<ion-item-sliding>
|
||||
<ion-item class="Rectangle" lines="none"
|
||||
*ngFor="let event of officialeventsList"
|
||||
[routerLink]="['/home/events', event.EventId, 'events']">
|
||||
<div class="content-{{profile}}-{{event.CalendarName}}">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.StartDate | date: 'hh:mm'}}</p>
|
||||
<p>{{event.EndDate | date: 'hh:mm'}}</p>
|
||||
</div>
|
||||
<div class="approve-event-detail">
|
||||
<p>{{event.Location}}</p>
|
||||
<h3>{{event.Subject}}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</ion-item>
|
||||
</ion-item-sliding>
|
||||
</div>
|
||||
</ion-list>
|
||||
<!-- OFICIAL -->
|
||||
<!-- <ion-list *ngSwitchCase="'Pessoal'">
|
||||
<ion-item-group>
|
||||
<ion-item-sliding>
|
||||
<ion-item lines="none"
|
||||
*ngFor="let event of personaleventsList"
|
||||
[routerLink]="['/home/events', event.EventId, 'events']">
|
||||
<div class="div-item-{{event.CalendarName}}">
|
||||
<div class="div-up">
|
||||
<div class="div-icon">
|
||||
<ion-icon slot="start" name="reader"></ion-icon>
|
||||
</div>
|
||||
<div class="div-content-{{event.CalendarName}}">
|
||||
<h3 class="capitalizeText">{{event.Subject}}</h3>
|
||||
<p>{{event.StartDate | date: 'hh:mm' }} - {{event.EndDate | date: 'hh:mm'}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="div-botton">
|
||||
<div class="div-botton-left">
|
||||
<ion-icon class="ion-icon-location" slot="start" name="location"></ion-icon>
|
||||
</div>
|
||||
<div class="div-botton-middle">
|
||||
<p class="item-list-small capitalizeText">{{event.Location}}</p>
|
||||
</div>
|
||||
<div class="div-botton-right">
|
||||
<ion-icon class="ion-icon-attach" slot="end" name="attach-outline"></ion-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-item>
|
||||
</ion-item-sliding>
|
||||
</ion-item-group>
|
||||
</ion-list> -->
|
||||
<ion-list *ngSwitchCase="'Pessoal'">
|
||||
<div *ngIf="personaleventsList">
|
||||
<ion-item-sliding>
|
||||
<ion-item class="Rectangle" lines="none"
|
||||
*ngFor="let event of personaleventsList"
|
||||
[routerLink]="['/home/events', event.EventId, 'events']">
|
||||
<div class="content-{{profile}}-{{event.CalendarName}}">
|
||||
<div class="approve-event-time">
|
||||
<p>{{event.StartDate | date: 'hh:mm'}}</p>
|
||||
<p>{{event.EndDate | date: 'hh:mm'}}</p>
|
||||
</div>
|
||||
<div class="approve-event-detail">
|
||||
<p>{{event.Location}}</p>
|
||||
<h3>{{event.Subject}}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</ion-item>
|
||||
</ion-item-sliding>
|
||||
</div>
|
||||
</ion-list>
|
||||
</div>
|
||||
</ion-content>
|
||||
|
||||
<div class="next-meeting">
|
||||
<div class="meeting-time">{{hoursMinutes}}</div>
|
||||
<div class="meeting-description"> "{{currentEvent}}"</div>
|
||||
</div>
|
||||
|
||||
<div class="conteiner-box">
|
||||
<div class="schedule">
|
||||
<div class="schedule-header">
|
||||
<div class="title">
|
||||
<ion-icon class="icon" slot="end" src="assets/images/icons-default-agenda.svg" ></ion-icon>
|
||||
<div class="text">A sua Agenda</div>
|
||||
</div>
|
||||
<ion-icon class="icon-next" slot="end" src="assets/images/icons-arrow-circle-arrow-right.svg" ></ion-icon>
|
||||
|
||||
</div>
|
||||
<div class="content">
|
||||
<ul>
|
||||
<li *ngFor="let event of eventsList"
|
||||
[routerLink]="['/home/events', event.EventId, 'events']">
|
||||
<div class="d-flex content-{{profile}}-{{event.CalendarName}}">
|
||||
<div class="schedule-time">
|
||||
<div class="time-start">{{event.StartDate | date: 'hh:mm'}}</div>
|
||||
<div class="time-end">{{event.EndDate | date: 'hh:mm'}}</div>
|
||||
</div>
|
||||
<div class="schedule-details">
|
||||
<div class="location">{{event.Location}}</div>
|
||||
<div class="description">{{event.Subject}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<!--
|
||||
<div class="resume">
|
||||
<div class="title">
|
||||
Resumo para Amnahã
|
||||
</div>
|
||||
<div class="event-num">4 eventos ageandados para amanhã</div>
|
||||
<div class="first-event-time">08:30 "Reunião Staff" no Palácio Presidencial</div>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="schedule">
|
||||
<div class="schedule-header">
|
||||
<div class="title">
|
||||
<ion-icon class="icon" slot="end" src="assets/images/icons-correspondencias.svg"></ion-icon>
|
||||
<div class="text">Correspondência por ler</div>
|
||||
</div>
|
||||
<ion-icon class="icon-next" slot="end" src="assets/images/icons-arrow-circle-arrow-right.svg" ></ion-icon>
|
||||
|
||||
</div>
|
||||
<div class="content">
|
||||
<ul>
|
||||
<li *ngFor = "let task of taskslist"
|
||||
[routerLink]="['/home/gabinete-digital/expediente',task.SerialNumber]">
|
||||
<div class="d-flex">
|
||||
<div class="schedule-date">
|
||||
<div class="time-end">{{task.CreateDate | date: 'd/M/yy'}}</div>
|
||||
<div class="time-start">{{task.CreateDate | date: 'hh:mm'}}</div>
|
||||
</div>
|
||||
<div class="schedule-details pointer">
|
||||
<div class="description">{{ task.Remetente }}</div>
|
||||
<div class="location">{{ task.Folio }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</ion-content>
|
||||
@@ -1,3 +1,5 @@
|
||||
@import '~src/function.scss';
|
||||
|
||||
/* HEADER */
|
||||
.bg-blue{
|
||||
--background:#0782c9;
|
||||
@@ -266,4 +268,215 @@ ion-toolbar{
|
||||
bottom: 15px;
|
||||
right: 14px;
|
||||
color: #e16817;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// new
|
||||
.main{
|
||||
padding: 0px em(20px);
|
||||
}
|
||||
|
||||
.event-number{
|
||||
color: white;
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
color: var(--white);
|
||||
|
||||
bold{
|
||||
font-family: Roboto;
|
||||
font-size: 25px;
|
||||
text-align: right;
|
||||
color: var(--white);
|
||||
}
|
||||
}
|
||||
.time{
|
||||
font-family: Roboto;
|
||||
font-size: 30px;
|
||||
text-align: center;
|
||||
color: var(--white);
|
||||
line-height: unset;
|
||||
}
|
||||
|
||||
.next-meeting{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin: 0px 20px;
|
||||
margin-top: 15px;
|
||||
|
||||
.meeting-time {
|
||||
font-size: em(25px);
|
||||
font-family: Roboto;
|
||||
font-weight: 300;
|
||||
color: var(--white);
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.meeting-description {
|
||||
margin-top: 2px;
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
color: var(--white);
|
||||
}
|
||||
}
|
||||
|
||||
.conteiner-box {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
}
|
||||
.schedule {
|
||||
max-width: 400px;
|
||||
font-family: Roboto;
|
||||
margin: 10px 0px;
|
||||
padding: 20px;
|
||||
background-color: white;
|
||||
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07);
|
||||
border: solid 1px #e9e9e9;
|
||||
margin-bottom: 20px;
|
||||
border-radius: 25px;
|
||||
.schedule-header{
|
||||
display: flex;
|
||||
margin-bottom: 20px;
|
||||
justify-content: space-between;
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.icon{
|
||||
color: #e8e8e8;
|
||||
height: 35px;
|
||||
width: 35px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.text{
|
||||
font-family: Roboto;
|
||||
font-size: 20px;
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
.icon-next {
|
||||
color: #e8e8e8;
|
||||
height: 35px;
|
||||
width: 35px;
|
||||
font-size: 35px;
|
||||
font-size: 35px;
|
||||
}
|
||||
}
|
||||
.content{
|
||||
ul{
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
.d-flex{
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
li{
|
||||
padding-bottom: 5px;
|
||||
margin-top: 5px;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.schedule-time{
|
||||
margin-right: 10px;
|
||||
.time-start{
|
||||
color: #797979 !important;
|
||||
font-family: Roboto;
|
||||
font-size: 13px;
|
||||
}
|
||||
.time-end{
|
||||
color: #797979 !important;
|
||||
font-family: Roboto;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
.schedule-date{
|
||||
width: 22%;
|
||||
color: #797979 !important;
|
||||
font-size: 13px;
|
||||
}
|
||||
.schedule-details{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
.location{
|
||||
font-family: Roboto;
|
||||
font-size: 13px;
|
||||
color: black;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
.description{
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
font-weight: bold;
|
||||
color: #0d89d1;
|
||||
}
|
||||
}
|
||||
.color{
|
||||
width: 5px;
|
||||
height: 40px;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
background-color: #f05d5e;
|
||||
}
|
||||
}
|
||||
li:last-child{
|
||||
border-bottom: unset !important;
|
||||
padding-bottom: unset !important;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.resume{
|
||||
.title{
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
font-weight: 500;
|
||||
color: #797979;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.event-num, .first-event-time{
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
display: block;
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.d-flex {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.pointer{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 804px) {
|
||||
|
||||
.schedule:first-child {
|
||||
margin-right: 2%;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 478px) {
|
||||
.schedule{
|
||||
width: 400px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media only screen and (max-width: 478px) {
|
||||
.schedule{
|
||||
width: 360px;
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,8 @@ import { AuthConnstants } from 'src/app/config/auth-constants';
|
||||
import { ModalController } from '@ionic/angular';
|
||||
import { EventDetailPage } from './event-detail/event-detail.page';
|
||||
import { EventDetailModalPage } from './event-detail-modal/event-detail-modal.page';
|
||||
import { ProcessesService } from '../../services/processes.service';
|
||||
import { DailyWorkTask } from '../../models/dailyworktask.model';
|
||||
|
||||
@Component({
|
||||
selector: 'app-events',
|
||||
@@ -35,6 +37,7 @@ export class EventsPage implements OnInit {
|
||||
/* Set segment variable */
|
||||
segment:string;
|
||||
public profile:string;
|
||||
currentEvent: any;
|
||||
|
||||
eventsList: Event[];
|
||||
officialeventsList: Event[];
|
||||
@@ -46,8 +49,12 @@ export class EventsPage implements OnInit {
|
||||
combinedEvents: Event[];
|
||||
|
||||
customText = false;
|
||||
totalEvent=0;
|
||||
currentHoursMinutes: String;
|
||||
|
||||
showLoader: boolean;
|
||||
|
||||
taskslist:DailyWorkTask[];
|
||||
|
||||
constructor(private eventService: EventsService,
|
||||
private router: Router,
|
||||
@@ -55,8 +62,18 @@ export class EventsPage implements OnInit {
|
||||
public activatedRoute: ActivatedRoute,
|
||||
private alertController: AlertService,
|
||||
private modalController: ModalController,
|
||||
private authService: AuthService) {
|
||||
private authService: AuthService,
|
||||
private processes:ProcessesService) {
|
||||
this.prEventList = null;
|
||||
|
||||
// update hours and minutes
|
||||
setInterval(()=> {
|
||||
this.currentHoursMinutes = formatDate(new Date(), 'HH:MM', 'pt');
|
||||
}, 1000);
|
||||
|
||||
// list
|
||||
this.LoadList();
|
||||
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
@@ -65,7 +82,22 @@ export class EventsPage implements OnInit {
|
||||
//Initialize profile as mdgpr
|
||||
this.profile = "mdgpr";
|
||||
console.log(this.profile);
|
||||
|
||||
|
||||
// set event list
|
||||
/* if(this.profile == "mdgpr"){
|
||||
this.eventService.getAllMdEvents(formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss', 'pt'), formatDate(new Date(), 'yyyy-MM-dd', 'pt') + ' 23:59:59').subscribe(res => {
|
||||
this.eventsList = res;
|
||||
console.log(this.eventsList);
|
||||
this.totalEvent = this.eventsList.length;
|
||||
});
|
||||
}
|
||||
else{
|
||||
this.eventService.getAllPrEvents(formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss', 'pt'), formatDate(new Date(), 'yyyy-MM-dd', 'pt') + ' 23:59:59').subscribe(res => {
|
||||
this.eventsList = res;
|
||||
this.totalEvent = this.eventsList.length;
|
||||
});
|
||||
|
||||
} */
|
||||
|
||||
this.showGreeting();
|
||||
|
||||
@@ -97,14 +129,18 @@ export class EventsPage implements OnInit {
|
||||
{
|
||||
case "Combinada":
|
||||
if(this.profile == "mdgpr"){
|
||||
this.eventService.getAllMdEvents(formatDate(new Date(), 'yyyy-MM-dd', 'pt') + ' 00:00:00', formatDate(new Date(), 'yyyy-MM-dd', 'pt') + ' 23:59:59').subscribe(res => {
|
||||
this.eventService.getAllMdEvents(formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss', 'pt') /* + ' 00:00:00' */, formatDate(new Date(), 'yyyy-MM-dd', 'pt') + ' 23:59:59').subscribe(res => {
|
||||
this.eventsList = res;
|
||||
this.currentEvent = res[0].Subject;
|
||||
this.totalEvent = this.eventsList.length;
|
||||
this.showLoader = false;
|
||||
});
|
||||
}else{
|
||||
this.eventService.getAllPrEvents(formatDate(new Date(), 'yyyy-MM-dd', 'pt') + ' 00:00:00', formatDate(new Date(), 'yyyy-MM-dd', 'pt') + ' 23:59:59').subscribe(res => {
|
||||
this.eventsList = res;
|
||||
console.log(this.eventsList);
|
||||
this.currentEvent = res[0].Subject;
|
||||
this.totalEvent = this.eventsList.length;
|
||||
this.showLoader = false;
|
||||
});
|
||||
}
|
||||
@@ -201,5 +237,32 @@ export class EventsPage implements OnInit {
|
||||
return await modal.present();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @returns time in format HH:MM
|
||||
*/
|
||||
get hoursMinutes():String {
|
||||
|
||||
return this.currentHoursMinutes;
|
||||
|
||||
}
|
||||
|
||||
LoadList()
|
||||
{
|
||||
this.processes.GetTasksList("Expediente", false).subscribe(result => {
|
||||
this.taskslist = new Array();
|
||||
result.forEach(element => {
|
||||
let task: DailyWorkTask = {
|
||||
"SerialNumber": element.serialNumber,
|
||||
"Folio": element.workflowInstanceFolio,
|
||||
"Senders": element.originator.email,
|
||||
"CreateDate": formatDate(new Date(element.taskStartDate), 'yyyy-MM-dd HH:mm', 'pt'),
|
||||
"DocumentURL": element.formURL,
|
||||
"Remetente": element.workflowInstanceDataFields.Remetente
|
||||
}
|
||||
this.taskslist.push(task);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,147 @@
|
||||
<ion-header>
|
||||
<ion-toolbar>
|
||||
<ion-title>Pesquisa</ion-title>
|
||||
</ion-toolbar>
|
||||
|
||||
<!-- HEADER-->
|
||||
<ion-header class="ion-no-border header-main d-flex ion-justify-content-between">
|
||||
<ion-form>
|
||||
<div class="d-flex search-input-container">
|
||||
<div class="icon">
|
||||
<ion-icon class="icon-z" slot="end" name="search"></ion-icon>
|
||||
</div>
|
||||
<div class="input-text d-flex ion-align-items-center">
|
||||
<ion-input class="search-input" type="search" placeholder="Pesquisar"></ion-input>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<ion-icon name="restaurant-outline" src="assets/images/icons-search-close.svg"></ion-icon>
|
||||
</div>
|
||||
</div>
|
||||
</ion-form>
|
||||
<div class="icon-z icon-most-searched-word-open">
|
||||
<ion-icon src="assets/images/icons-most-searched-words-open.svg" class="icon" slot="end"></ion-icon>
|
||||
</div>
|
||||
<div class="profile">
|
||||
<ion-icon class="icon" src="assets/images/icons-profile.svg"></ion-icon>
|
||||
</div>
|
||||
</ion-header>
|
||||
|
||||
<ion-content>
|
||||
<ion-form>
|
||||
<div class="div-search">
|
||||
<ion-input class="search-input" type="search" placeholder="FMI"></ion-input>
|
||||
<ion-icon class="icon-search" slot="end" name="search"></ion-icon>
|
||||
<ion-content class="content">
|
||||
|
||||
<!-- search result type-->
|
||||
<div class="options">
|
||||
<div class="container ion-justify-content-between ion-align-items-center">
|
||||
<div class="d-flex ion-justify-content-center ion-text-center">
|
||||
<div class="button">
|
||||
<p>Relatório</p>
|
||||
<ion-label class="label">10</ion-label>
|
||||
</div>
|
||||
<div class="button">
|
||||
<p>Relatório</p>
|
||||
<ion-label class="label">10</ion-label>
|
||||
</div>
|
||||
<div class="button">
|
||||
<p>Relatório</p>
|
||||
<ion-label class="label">10</ion-label>
|
||||
</div>
|
||||
<div class="button">
|
||||
<p>Relatório</p>
|
||||
<ion-label class="label">10</ion-label>
|
||||
</div>
|
||||
<div class="button">
|
||||
<p>Relatório</p>
|
||||
<ion-label class="label">10</ion-label>
|
||||
</div>
|
||||
<div class="button">
|
||||
<p>Relatório</p>
|
||||
<ion-label class="label">10</ion-label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="icon-z icon-most-searched-word-open">
|
||||
<ion-icon src="assets/images/icons-most-searched-words-open.svg" class="icon" slot="end"></ion-icon>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</ion-form>
|
||||
|
||||
<div class="d-flex">
|
||||
<!-- most searched word-->
|
||||
<div class="most-searched-words">
|
||||
<p>Palavas mais pesquisdas</p>
|
||||
</div>
|
||||
|
||||
<!-- search result-->
|
||||
<div class="search-result">
|
||||
<div class="header">
|
||||
<div class="d-flex ion-justify-content-between ion-align-items-center">
|
||||
<div class="d-flex sort-by ion-justify-content-center">
|
||||
<p><span class="order">Order por:</span><span class="order-labal">Mais Recente</span></p>
|
||||
</div>
|
||||
<div>
|
||||
<ion-icon src="assets/images/icons-arrow-arrow-down-25.svg"></ion-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<ul>
|
||||
<li class="d-flex">
|
||||
<div class="icon">
|
||||
<ion-icon src="assets/images/icons-search-document.svg"></ion-icon>
|
||||
</div>
|
||||
<div class="content ion-align-items-center">
|
||||
<p class="result-name">title</p>
|
||||
<div class="d-flex ion-justify-content-between ">
|
||||
<span>MINEC, MINFIN</span>
|
||||
<span>13/04/2020</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="d-flex">
|
||||
<div class="icon">
|
||||
<ion-icon src="assets/images/icons-search-document.svg"></ion-icon>
|
||||
</div>
|
||||
<div class="content">
|
||||
<p class="result-name">title</p>
|
||||
<div class="d-flex ion-justify-content-between">
|
||||
<span>MINEC, MINFIN</span>
|
||||
<span>13/04/2020</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="d-flex">
|
||||
<div class="icon">
|
||||
<ion-icon src="assets/images/icons-search-document.svg"></ion-icon>
|
||||
</div>
|
||||
<div class="content">
|
||||
<p class="result-name">title</p>
|
||||
<div class="d-flex ion-justify-content-between">
|
||||
<span>MINEC, MINFIN</span>
|
||||
<span>13/04/2020</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="d-flex">
|
||||
<div class="icon">
|
||||
<ion-icon src="assets/images/icons-search-document.svg"></ion-icon>
|
||||
</div>
|
||||
<div class="content">
|
||||
<p class="result-name">title</p>
|
||||
<div class="d-flex ion-justify-content-between">
|
||||
<span>MINEC, MINFIN</span>
|
||||
<span>13/04/2020</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="d-flex">
|
||||
<div class="icon">
|
||||
<ion-icon src="assets/images/icons-search-document.svg"></ion-icon>
|
||||
</div>
|
||||
<div class="content">
|
||||
<p class="result-name">title</p>
|
||||
<div class="d-flex ion-justify-content-between">
|
||||
<span>MINEC, MINFIN</span>
|
||||
<span>13/04/2020</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
|
||||
@@ -1,18 +1,210 @@
|
||||
.div-search{
|
||||
width: 94%;
|
||||
margin: 3%;
|
||||
border: 0.5px solid #333;
|
||||
padding: 0 5px 0 5px;
|
||||
overflow: auto;
|
||||
.header-main{
|
||||
padding: 5px 18px;
|
||||
padding-bottom: 2px;
|
||||
padding-top: 25px;
|
||||
.search-input-container{
|
||||
max-width: 309px;
|
||||
background-color: white;
|
||||
border-radius: 27.5px;
|
||||
border: solid 1px #ebebeb;
|
||||
.icon{
|
||||
color: #797979;
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
font-size: 25px;
|
||||
align-items: center;
|
||||
}
|
||||
.icon-z{
|
||||
width: 15px;
|
||||
}
|
||||
}
|
||||
.icon-z{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 45px;
|
||||
}
|
||||
.profile{
|
||||
display: none;
|
||||
font-size: 45px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// search result type
|
||||
.options{
|
||||
margin-top: 10px;
|
||||
.container{
|
||||
display: flex;
|
||||
.d-flex{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
width: 100%;
|
||||
flex-wrap: wrap;
|
||||
.button{
|
||||
width: 116px;
|
||||
border: solid 1px #e9e9e9;
|
||||
margin: 0px 5px;
|
||||
margin-bottom: 10px;
|
||||
padding: 5px 20px;
|
||||
p{
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
font-family: Roboto;
|
||||
color: #0d89d1;
|
||||
font-size: 15px;
|
||||
}
|
||||
.label{
|
||||
font-family: Roboto;
|
||||
font-size: 13px;
|
||||
font-weight: 300;
|
||||
color: #797979;
|
||||
}
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.button:hover{
|
||||
background-color: #42b9fe;
|
||||
color: white;
|
||||
p{
|
||||
color: white;
|
||||
}
|
||||
.label{
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
.icon{
|
||||
display: none;
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
ion-icon{
|
||||
width: 25px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
.search-input{
|
||||
width: 90%;
|
||||
float: left;
|
||||
|
||||
|
||||
|
||||
.d-flex{
|
||||
display: flex;
|
||||
// search result
|
||||
.search-result{
|
||||
width: 100%;
|
||||
border-bottom: unset;
|
||||
padding: 0px 20px;
|
||||
|
||||
.header{
|
||||
border-top: 1px solid #ebebeb;
|
||||
.sort-by{
|
||||
width: 100%;
|
||||
.order{
|
||||
font-family: Roboto;
|
||||
font-size: 13px;
|
||||
font-weight: 300;
|
||||
color:#797979
|
||||
}
|
||||
.order-labal{
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
color: #0d89d1;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
ion-icon{
|
||||
font-size: 25px;
|
||||
}
|
||||
}
|
||||
ul{
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
li{
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
border-top: 1px solid #ebebeb;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.icon{
|
||||
font-size: 35px;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
}
|
||||
.content{
|
||||
width: 100%;
|
||||
margin-left: 10px;
|
||||
p{
|
||||
margin: 0px;
|
||||
width: 100%;
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
color: #0d89d1;
|
||||
line-height: 1.67;
|
||||
}
|
||||
span{
|
||||
height: 15px;
|
||||
font-family: Roboto;
|
||||
font-size: 13px;
|
||||
font-weight: 300;
|
||||
color: #797979;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// most searched word
|
||||
.most-searched-words{
|
||||
width: 400px;
|
||||
display: none;
|
||||
p{
|
||||
height: 24px;
|
||||
font-family: Roboto;
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@media only screen and (min-width: 1024px) {
|
||||
|
||||
.header-main {
|
||||
background-color: #0782c9;
|
||||
.profile{
|
||||
display: inline-block;
|
||||
}
|
||||
.icon-most-searched-word-open{
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.options{
|
||||
.container{
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
.icon{
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
padding: 0px 20px;
|
||||
}
|
||||
|
||||
|
||||
.most-searched-words{
|
||||
display: inline-block !important;
|
||||
}
|
||||
.search-result{
|
||||
border-left: 1px solid #d8d8d8;
|
||||
.header{
|
||||
border-top: unset !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.icon-search{
|
||||
width: 8%;
|
||||
padding: 8px 3px 5px 2px;
|
||||
font-size: 25px;
|
||||
float: right;
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { ModalController } from '@ionic/angular';
|
||||
|
||||
@Component({
|
||||
selector: 'app-search',
|
||||
@@ -7,9 +8,12 @@ import { Component, OnInit } from '@angular/core';
|
||||
})
|
||||
export class SearchPage implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
constructor(private modalController: ModalController) { }
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
close(){
|
||||
this.modalController.dismiss();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user