mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-21 13:55:51 +00:00
merge brunch feature/calendar
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
export class TopSearch {
|
||||
|
||||
Documents: {
|
||||
Text: string;
|
||||
Hits: number;
|
||||
}[] = [];
|
||||
|
||||
}
|
||||
@@ -35,16 +35,27 @@
|
||||
|
||||
</ion-row>
|
||||
<ion-row class="ion-align-items-center">
|
||||
<div class="arrow">
|
||||
<ion-icon *ngIf="profile == 'mdgpr' " (click)="changeProfile()" class="right-icons" slot="icon-only"src="assets/images/icons-profile-calendar-md.svg"></ion-icon>
|
||||
<ion-icon *ngIf="profile == 'pr' " (click)="changeProfile()" class="right-icons" slot="icon-only"src="assets/images/icons-profile-calendar-pr.svg"></ion-icon>
|
||||
</div>
|
||||
<ion-icon *ngIf="profile == 'mdgpr' " (click)="changeProfile()" class="right-icons" src="assets/images/icons-profile-calendar-md.svg"></ion-icon>
|
||||
<ion-icon *ngIf="profile == 'pr' " (click)="changeProfile()" class="right-icons" src="assets/images/icons-profile-calendar-pr.svg"></ion-icon>
|
||||
<ion-icon (click)="viewEventsToApprove()" class="right-icons" src="assets/images/icons-received-event.svg"></ion-icon>
|
||||
<ion-icon (click)="openAddEvent()" class="right-icons" src="assets/images/icons-add-new-event.svg" ></ion-icon>
|
||||
</ion-row>
|
||||
</ion-row>
|
||||
|
||||
<calendar
|
||||
|
||||
<table class="custom-calendar-header">
|
||||
<thead>
|
||||
<th>S</th>
|
||||
<th>T</th>
|
||||
<th>Q</th>
|
||||
<th>Q</th>
|
||||
<th>S</th>
|
||||
<th>S</th>
|
||||
<th>D</th>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
|
||||
<calendar class="calendar-component"
|
||||
[eventSource]="eventSource"
|
||||
[calendarMode]="calendar.mode"
|
||||
[currentDate]="calendar.currentDate"
|
||||
@@ -62,7 +73,7 @@
|
||||
[monthviewDisplayEventTemplate]="template"
|
||||
>
|
||||
</calendar>
|
||||
|
||||
|
||||
<!-- Adding a customized ng-template -->
|
||||
<ng-template #template let-view="view" let-row="row" let-col="col">
|
||||
<div [className]="currentDayEventDisplayBorder(view.dates, row*7+col)" [class.with-event]="view.dates[row*7+col].events.length">
|
||||
@@ -94,7 +105,20 @@
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
<calendar
|
||||
|
||||
<table class="custom-calendar-header">
|
||||
<thead>
|
||||
<th>S</th>
|
||||
<th>T</th>
|
||||
<th>Q</th>
|
||||
<th>Q</th>
|
||||
<th>S</th>
|
||||
<th>S</th>
|
||||
<th>D</th>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
<calendar class="calendar-component"
|
||||
[eventSource]="eventSource"
|
||||
[calendarMode]="calendar.mode"
|
||||
[currentDate]="calendar.currentDate"
|
||||
@@ -145,8 +169,21 @@
|
||||
</ion-button>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
<calendar
|
||||
|
||||
|
||||
<table class="custom-calendar-header">
|
||||
<thead>
|
||||
<th>S</th>
|
||||
<th>T</th>
|
||||
<th>Q</th>
|
||||
<th>Q</th>
|
||||
<th>S</th>
|
||||
<th>S</th>
|
||||
<th>D</th>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
<calendar class="calendar-component"
|
||||
[eventSource]="eventSource"
|
||||
[calendarMode]="calendar.mode"
|
||||
[currentDate]="calendar.currentDate"
|
||||
@@ -183,16 +220,23 @@
|
||||
<ion-row class="timeline-date">
|
||||
<span *ngIf="timelineIsCurrentDate()">Hoje, </span> {{ timelineDate }}
|
||||
</ion-row>
|
||||
<!-- <ion-row class="filter ion-align-items-center">
|
||||
<div class="filter-name">Todos</div>
|
||||
<ion-icon class="arrow-down" src="assets/images/icons-arrow-arrow-down.svg"></ion-icon>
|
||||
</ion-row> -->
|
||||
<ion-row class="filter ion-align-items-center">
|
||||
<div class="filter-name">{{timelineFilterState}}</div>
|
||||
<!-- Icon -->
|
||||
<ion-icon (click)="showTimelineFilterState=true" class="arrow-down" src="assets/images/icons-arrow-arrow-down.svg"></ion-icon>
|
||||
<!-- List -->
|
||||
<ul *ngIf="showTimelineFilterState">
|
||||
<li [class.active]="timelineFilterState == 'Todos' " (click)="timelineFilter('Todos')">Todos</li>
|
||||
<li [class.active]="timelineFilterState == 'Oficial' " (click)="timelineFilter('Oficial')">Oficial</li>
|
||||
<li [class.active]="timelineFilterState == 'Pessoal' " (click)="timelineFilter('Pessoal')">Pessoal</li>
|
||||
</ul>
|
||||
</ion-row>
|
||||
</ion-row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ion-header>
|
||||
<ion-content>
|
||||
<ion-content class="timeline">
|
||||
|
||||
<!-- Progress bar -->
|
||||
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
|
||||
@@ -202,7 +246,7 @@
|
||||
</ion-refresher>
|
||||
|
||||
<!-- Timeline -->
|
||||
<div *ngIf="showTimeline">
|
||||
<div class="timeline-container" *ngIf="showTimeline">
|
||||
<mwl-demo-utils-calendar-header class="timeline"
|
||||
[(view)]="view"
|
||||
[(viewDate)]="viewDate"
|
||||
@@ -220,6 +264,4 @@
|
||||
</mwl-calendar-day-view>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</ion-content>
|
||||
@@ -1,8 +1,4 @@
|
||||
.indicator-container {
|
||||
padding-left: 0.5rem;
|
||||
padding-bottom: 0.4rem;
|
||||
}
|
||||
|
||||
|
||||
.event-indicator {
|
||||
background: #333;
|
||||
width: 5px;
|
||||
@@ -11,17 +7,31 @@
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
ion-slide{
|
||||
td{
|
||||
div {
|
||||
padding-left: 7px;
|
||||
border-radius: 28px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
height: 25px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:host ::ng-deep {
|
||||
.monthview-primary-with-event {
|
||||
background-color: white !important;
|
||||
/* background-color: white !important; */
|
||||
}
|
||||
|
||||
.monthview-current{
|
||||
background-color: red;
|
||||
/* background-color: red; */
|
||||
border-bottom: 1px solid lightskyblue !important;
|
||||
}
|
||||
.monthview-selected {
|
||||
background-color: lightskyblue !important;
|
||||
/* background-color: lightskyblue !important; */
|
||||
}
|
||||
.item{
|
||||
/* background: red !important; */
|
||||
@@ -35,16 +45,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.with-event {
|
||||
background-color: #fff;
|
||||
border-radius: 21px;
|
||||
border-left: 3px solid #ffb703;
|
||||
border-bottom: none;
|
||||
border-right: 3px solid #f05d5e;
|
||||
color: black;
|
||||
margin: 0px auto;
|
||||
width: 35px;
|
||||
}
|
||||
|
||||
.main-header{
|
||||
width: 100%; /* 400px */
|
||||
@@ -255,7 +255,9 @@ label{
|
||||
right: 14px;
|
||||
color: #e16817;
|
||||
}
|
||||
|
||||
td.monthview-primary-with-event {
|
||||
background-color: white !important;
|
||||
}
|
||||
.header-title{
|
||||
width: 300px;
|
||||
font-family: Roboto;
|
||||
@@ -334,31 +336,6 @@ label{
|
||||
|
||||
|
||||
|
||||
.currente-date-timelien{
|
||||
padding: 10px 20px;
|
||||
.timeline-date{
|
||||
font-size: 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.filter{
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
.filter-name{
|
||||
color: #0d89d1;
|
||||
}
|
||||
ion-icon{
|
||||
font-size: 35px;
|
||||
color: #0d89d1;
|
||||
}
|
||||
.filter-name{
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
margin-left: 10px;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.drop-down{
|
||||
@@ -400,7 +377,7 @@ label{
|
||||
padding: 0px 0px;
|
||||
}
|
||||
|
||||
.right-icons{
|
||||
.right-icons, .calendar-profile{
|
||||
padding: 0px 9px
|
||||
}
|
||||
|
||||
@@ -411,5 +388,69 @@ label{
|
||||
|
||||
|
||||
.calendar-tool-tip{
|
||||
padding: 17px 10px 0px 10px;
|
||||
}
|
||||
padding: 20px 10px 30px 10px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.custom-calendar-header{
|
||||
width: 100%;
|
||||
margin-bottom: 10px;
|
||||
thead{
|
||||
th{
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
color: rgba(52, 72, 94, 0.54);
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.currente-date-timelien{
|
||||
padding: 10px 20px;
|
||||
.timeline-date{
|
||||
font-size: 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.filter{
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
ion-icon{
|
||||
font-size: 35px;
|
||||
color: #0d89d1;
|
||||
}
|
||||
.filter-name{
|
||||
color: #0d89d1;
|
||||
font-family: Roboto;
|
||||
font-size: 15px;
|
||||
margin-right: 25px;
|
||||
}
|
||||
|
||||
ul{
|
||||
background-color: white !important;
|
||||
position: absolute;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
list-style: none;
|
||||
margin-top: 140px;
|
||||
padding: 0px;
|
||||
box-shadow: 0px 0px 10px gray !important;
|
||||
border-radius: 5px;
|
||||
width: 96px;
|
||||
z-index: 1000000;
|
||||
li{
|
||||
padding: 5px 10px;
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
}
|
||||
li.active{
|
||||
background-color: rgba(66, 185, 254, 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+187
-117
@@ -68,24 +68,11 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
showTimeline: boolean= false;
|
||||
|
||||
events: CalendarEvent[] = [
|
||||
/* {
|
||||
title: '123',
|
||||
start: setHours(setMinutes(new Date(), 0), 3),
|
||||
color: {
|
||||
primary: 'red',
|
||||
secondary: 'yellow'
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '123123',
|
||||
start: setHours(setMinutes(new Date(), 0), 5),
|
||||
color: {
|
||||
primary: 'red',
|
||||
secondary: 'yellow'
|
||||
},
|
||||
}, */
|
||||
];
|
||||
// for timeline
|
||||
events: CalendarEvent[] = [];
|
||||
// timeline filter
|
||||
timelineFilterState: string = 'Todos';
|
||||
showTimelineFilterState: boolean= false;
|
||||
|
||||
/* List of events of our calendar */
|
||||
eventSource = [];
|
||||
@@ -131,14 +118,12 @@ export class AgendaPage implements OnInit {
|
||||
private router: Router,
|
||||
private alertCrontroller: AlertService
|
||||
) {
|
||||
this.timelineDate = formatDate(new Date,'dd MMMM yyyy', 'pt');
|
||||
|
||||
setTimeout(()=>{
|
||||
// console.log(JSON.stringify(this.events));
|
||||
// console.log(this.events);
|
||||
},5000)
|
||||
// timeline inicial date
|
||||
this.timelineDate = new Date().toLocaleString();
|
||||
|
||||
//this.timelineDate = formatDate(new Date,'dd MMMM yyyy', 'pt');
|
||||
|
||||
// console.log(setHours(setMinutes(new Date(), 0), 12))
|
||||
|
||||
function setCookie(cname, cvalue, exdays) {
|
||||
var d = new Date();
|
||||
@@ -151,6 +136,7 @@ export class AgendaPage implements OnInit {
|
||||
setCookie('searchModalAPPType','0', 99999999);
|
||||
|
||||
this.showLoader = false;
|
||||
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
@@ -170,11 +156,8 @@ export class AgendaPage implements OnInit {
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
timelineIsCurrentDate(): Boolean {
|
||||
return formatDate(new Date(),'dd MMMM yyyy', 'pt') == formatDate(this.eventSelectedDate,'dd MMMM yyyy', 'pt');
|
||||
}
|
||||
|
||||
//Go to the next view of the calendar month/week/day
|
||||
@@ -190,33 +173,6 @@ export class AgendaPage implements OnInit {
|
||||
this.viewTitle = title;
|
||||
}
|
||||
|
||||
currentDayEventDisplayBorder(day: any, id: any){
|
||||
|
||||
const events = day[id].events;
|
||||
if (events.length == 0) {
|
||||
return "";
|
||||
} else if (events.length >= 1) {
|
||||
|
||||
/** @description store all event type */
|
||||
let eventType = {};
|
||||
let eventTypeNum: number;
|
||||
|
||||
events.forEach(element => {
|
||||
eventType[element.calendarName] = 1;
|
||||
});
|
||||
|
||||
eventTypeNum = (Object.keys(eventType)).length
|
||||
|
||||
if (eventTypeNum == 2) {
|
||||
return 'calendar-event-type-both';
|
||||
} else {
|
||||
return 'calendar-event-type-'+(Object.keys(eventType))[0];
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
// Show information of the event for timeline
|
||||
eventClicked({ event }: { event: CalendarEvent }): void {
|
||||
console.log('Event clicked', event);
|
||||
@@ -234,18 +190,20 @@ export class AgendaPage implements OnInit {
|
||||
|
||||
onCurrentChanged = (ev: Date) => {
|
||||
// timeline change date
|
||||
this.timelineDate = formatDate(ev,'dd MMMM yyyy', 'pt');
|
||||
this.viewDate = new Date(formatDate(ev,'yyyy-MM-dd', 'pt'));
|
||||
this.timelineDate = new Date(ev).toLocaleString();
|
||||
this.viewDate = new Date(ev);
|
||||
// calendar change date
|
||||
this.eventSelectedDate = new Date(ev);
|
||||
|
||||
this.centralizeTimeline(500);
|
||||
this.timelineBoxCorrectHeight(500);
|
||||
};
|
||||
|
||||
// changedate
|
||||
dropDownChangeDate(id: string){
|
||||
|
||||
const currentCandarDayYear = formatDate(this.eventSelectedDate,'dd -- yyyy', 'pt');
|
||||
/* const currentCandarDayYear = formatDate(this.eventSelectedDate,'dd -- yyyy', 'pt');
|
||||
const newDate = new Date(currentCandarDayYear.replace('--',id));
|
||||
this.onCurrentChanged(newDate);
|
||||
this.onCurrentChanged(newDate); */
|
||||
}
|
||||
|
||||
/* onTimeSelected = (ev: { selectedTime: Date, events: any[] }) => {
|
||||
@@ -293,23 +251,158 @@ export class AgendaPage implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
timeLineTemplate(startTime: string, eventlocation: string, eventDiscription: any, calendarName: string, subject: string): string{
|
||||
|
||||
// for calendar
|
||||
currentDayEventDisplayBorder(day: any, id: any){
|
||||
|
||||
const events = day[id].events;
|
||||
if (events.length == 0) {
|
||||
return "";
|
||||
} else if (events.length >= 1) {
|
||||
|
||||
/** @description store all event type */
|
||||
let eventType = {};
|
||||
let eventTypeNum: number;
|
||||
|
||||
events.forEach(element => {
|
||||
eventType[element.calendarName] = 1;
|
||||
});
|
||||
|
||||
eventTypeNum = (Object.keys(eventType)).length
|
||||
|
||||
if (eventTypeNum == 2) {
|
||||
return ` calendar-event-border calendar-${this.profile}-event-type-both`;
|
||||
} else {
|
||||
return ` calendar-event-border calendar-${this.profile}-event-type-`+(Object.keys(eventType))[0];
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
// for timeline
|
||||
centralizeTimeline(timeout: number) {
|
||||
// auto scroll timeline
|
||||
setTimeout(() => {
|
||||
const timelineMarker = document.querySelector('.cal-current-time-marker');
|
||||
const timelineContainer = document.querySelectorAll('ion-content')[2];
|
||||
const shadowRoot = timelineContainer.shadowRoot;
|
||||
|
||||
const scrollContainer = shadowRoot.querySelector('main');
|
||||
|
||||
scrollContainer.scrollTop = timelineMarker['offsetTop'] - ((scrollContainer.offsetHeight/2) - 60);
|
||||
|
||||
}, timeout);
|
||||
}
|
||||
|
||||
// for timeline
|
||||
timelineIsCurrentDate(): Boolean {
|
||||
return true;
|
||||
//return formatDate(new Date(),'dd MMMM yyyy', 'pt') == formatDate(this.eventSelectedDate,'dd MMMM yyyy', 'pt');
|
||||
}
|
||||
|
||||
// for timeline
|
||||
timeLineTemplate(startTime: string, eventlocation: string, eventDiscription: any, calendarName: string, subject: string, startTimeWisthS: string, endTime: string, eventIndex: number): string{
|
||||
|
||||
const startHours = parseInt(startTimeWisthS.split(':')[0]);
|
||||
const startMinutos = parseInt(startTimeWisthS.split(':')[1]);
|
||||
|
||||
const endHours = parseInt(endTime.split(':')[0]);
|
||||
const endMinutos = parseInt(endTime.split(':')[1]);
|
||||
|
||||
let top = '0';
|
||||
|
||||
if(startHours < endHours){
|
||||
if (startMinutos != 0 ){
|
||||
top = `${ Math.abs((startMinutos - 60)) }`
|
||||
}
|
||||
}
|
||||
|
||||
return `
|
||||
<div class="timeline-box timeline-box-${calendarName}">
|
||||
<div class="timeline-box timeline-box-event-${eventIndex} timeline-${this.profile}-box-${calendarName} calendar-top${top}">
|
||||
<div>
|
||||
<span class="timeline-start-time">${startTime}</span><span class="timeline-location">${eventlocation}</span>
|
||||
<span class="timeline-start-time">${startTimeWisthS}</span><span class="timeline-location">${eventlocation}</span>
|
||||
</div>
|
||||
<div class="timeline-event-discription">
|
||||
${subject}
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
`
|
||||
}
|
||||
|
||||
// for timeline
|
||||
timelineBoxCorrectHeight(timeout){
|
||||
|
||||
setTimeout(()=>{
|
||||
this.eventSource.forEach((el, eventIndex)=>{
|
||||
|
||||
const startEvent = new Date(el.startTime);
|
||||
const endEvent = new Date(el.endTime);
|
||||
|
||||
var minutes = ((endEvent.getTime() - startEvent.getTime()) / 1000) / 60;
|
||||
const top = (startEvent.getTime() - (new Date(2020, 1, 3)).getTime()) /60;
|
||||
|
||||
document.querySelectorAll('.timeline-box').forEach(ele => {
|
||||
|
||||
if(ele.className.indexOf(`timeline-box-event-${eventIndex}`)>=0){
|
||||
ele.setAttribute('style',`height:${minutes}px`);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
},timeout)
|
||||
}
|
||||
|
||||
// for timeline
|
||||
|
||||
timelineFilter(calendarName){
|
||||
|
||||
this.timelineFilterState = calendarName;
|
||||
|
||||
// remove all event
|
||||
this.events = [];
|
||||
|
||||
this.eventsList.forEach((element, eventIndex) => {
|
||||
|
||||
// timeline start
|
||||
const startHours = new Date(element.StartDate).getHours().toLocaleString();
|
||||
const EndHours = new Date(element.EndDate).getHours().toLocaleString();
|
||||
|
||||
const startHoursOtherFormate = new Date(element.StartDate).getHours().toLocaleString()+':'+new Date(element.StartDate).getMinutes().toLocaleString();
|
||||
const EndHoursOtherFormate = formatDate(new Date(element.EndDate), 'HH:mm', 'pt');
|
||||
|
||||
if (element.CalendarName == calendarName) {
|
||||
this.events.push({
|
||||
title: this.timeLineTemplate(startHours, element.Location, element.Body, element.CalendarName, element.Subject,startHoursOtherFormate,EndHoursOtherFormate, eventIndex),
|
||||
start: setHours(setMinutes(new Date(element.StartDate), 0), parseInt(startHours)),
|
||||
end: setHours(setMinutes(new Date(element.EndDate), 0), parseInt(EndHours)),
|
||||
color: {
|
||||
primary: 'white',
|
||||
secondary: 'white'
|
||||
},
|
||||
id: element.EventId
|
||||
});
|
||||
} else if (calendarName == 'Todos'){
|
||||
this.events.push({
|
||||
title: this.timeLineTemplate(startHours, element.Location, element.Body, element.CalendarName, element.Subject,startHoursOtherFormate,EndHoursOtherFormate, eventIndex),
|
||||
start: setHours(setMinutes(new Date(element.StartDate), 0), parseInt(startHours)),
|
||||
end: setHours(setMinutes(new Date(element.EndDate), 0), parseInt(EndHours)),
|
||||
color: {
|
||||
primary: 'white',
|
||||
secondary: 'white'
|
||||
},
|
||||
id: element.EventId
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
this.onCurrentChanged(this.eventSelectedDate);
|
||||
//
|
||||
this.showTimelineFilterState = false;
|
||||
}
|
||||
|
||||
loadRangeEvents(startTime: Date, endTime: Date){
|
||||
|
||||
console.log('Update date');
|
||||
console.log('start ',startTime,' end', endTime)
|
||||
|
||||
this.showTimeline = false;
|
||||
this.showLoader = true;
|
||||
@@ -319,15 +412,14 @@ export class AgendaPage implements OnInit {
|
||||
case "Combinada":
|
||||
//Inicializa o array eventSource
|
||||
this.eventSource=[];
|
||||
this.events=[];
|
||||
|
||||
|
||||
if(this.profile == "mdgpr"){
|
||||
this.eventService.getAllMdEvents(formatDate(startTime, 'yyyy-MM-dd', 'pt'), formatDate(endTime, 'yyyy-MM-dd', 'pt')).subscribe(
|
||||
this.eventService.getAllMdEvents(new Date(startTime).toLocaleString(), new Date(endTime).toLocaleString()).subscribe(
|
||||
response => {
|
||||
this.eventsList = response;
|
||||
// loop
|
||||
this.eventsList.forEach(element => {
|
||||
this.eventsList.forEach((element, eventIndex) => {
|
||||
|
||||
this.eventSource.push({
|
||||
title: element.Subject,
|
||||
@@ -337,39 +429,27 @@ export class AgendaPage implements OnInit {
|
||||
event: element,
|
||||
calendarName: element.CalendarName
|
||||
});
|
||||
|
||||
// timeline start
|
||||
const startHours = formatDate(new Date(element.StartDate), 'HH', 'pt');
|
||||
const EndHours = formatDate(new Date(element.EndDate), 'HH', 'pt');
|
||||
|
||||
this.events.push({
|
||||
title: this.timeLineTemplate(startHours, element.Location, element.Body, element.CalendarName, element.Subject),
|
||||
start: setHours(setMinutes(new Date(element.StartDate), 0), parseInt(startHours)),
|
||||
end: setHours(setMinutes(new Date(element.EndDate), 0), parseInt(EndHours)),
|
||||
color: {
|
||||
primary: 'white',
|
||||
secondary: 'white'
|
||||
},
|
||||
id: element.EventId
|
||||
});
|
||||
// timeline end
|
||||
|
||||
});
|
||||
|
||||
// this.timelineFilter(this.timelineFilterState);
|
||||
|
||||
this.myCal.update();
|
||||
this.myCal.loadEvents();
|
||||
|
||||
this.showLoader = false;
|
||||
this.showTimeline = true;
|
||||
|
||||
this.timelineBoxCorrectHeight(500);
|
||||
this.centralizeTimeline(500);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
else{
|
||||
this.eventService.getAllPrEvents(formatDate(startTime, 'yyyy-MM-dd HH:mm:ss', 'pt'), formatDate(endTime, 'yyyy-MM-dd HH:mm:ss', 'pt')).subscribe(
|
||||
this.eventService.getAllPrEvents(new Date(startTime).toLocaleString(), new Date(endTime).toLocaleString()).subscribe(
|
||||
response => {
|
||||
this.eventsList = response;
|
||||
this.eventsList.forEach(element => {
|
||||
this.eventsList.forEach((element, eventIndex) => {
|
||||
this.eventSource.push({
|
||||
title: element.Subject,
|
||||
startTime: new Date(element.StartDate),
|
||||
@@ -379,30 +459,18 @@ export class AgendaPage implements OnInit {
|
||||
calendarName: element.CalendarName
|
||||
});
|
||||
|
||||
// timeline start
|
||||
const startHours = formatDate(new Date(element.StartDate), 'HH', 'pt');
|
||||
const EndHours = formatDate(new Date(element.EndDate), 'HH', 'pt');
|
||||
|
||||
this.events.push({
|
||||
|
||||
title: this.timeLineTemplate(startHours, element.Location, element.Body, element.CalendarName, element.Subject),
|
||||
start: setHours(setMinutes(new Date(element.StartDate), 0), parseInt(startHours)),
|
||||
end: setHours(setMinutes(new Date(element.EndDate), 0), parseInt(EndHours)),
|
||||
color: {
|
||||
primary: 'white',
|
||||
secondary: 'white'
|
||||
},
|
||||
id: element.EventId
|
||||
});
|
||||
// timeline end
|
||||
|
||||
});
|
||||
|
||||
// this.timelineFilter(this.timelineFilterState);
|
||||
|
||||
this.myCal.update();
|
||||
this.myCal.loadEvents();
|
||||
this.showLoader = false;
|
||||
this.showTimeline = true;
|
||||
|
||||
this.timelineBoxCorrectHeight(500);
|
||||
this.centralizeTimeline(500);
|
||||
|
||||
});
|
||||
}
|
||||
break;
|
||||
@@ -411,7 +479,7 @@ export class AgendaPage implements OnInit {
|
||||
//Inicializa o array eventSource
|
||||
this.eventSource=[];
|
||||
if(this.profile == "mdgpr"){
|
||||
this.eventService.getAllMdEvents(formatDate(startTime, 'yyyy-MM-dd HH:mm:ss', 'pt'), formatDate(endTime, 'yyyy-MM-dd HH:mm:ss', 'pt')).subscribe(response => {
|
||||
this.eventService.getAllMdEvents(new Date(startTime).toLocaleString(), new Date(endTime).toLocaleString()).subscribe(response => {
|
||||
this.eventsListPessoal = response.filter(data => data.CalendarName == "Pessoal");
|
||||
this.eventsListPessoal.forEach(element => {
|
||||
this.eventSource.push({
|
||||
@@ -428,7 +496,7 @@ export class AgendaPage implements OnInit {
|
||||
});
|
||||
}
|
||||
else{
|
||||
this.eventService.getAllPrEvents(formatDate(startTime, 'yyyy-MM-dd HH:mm:ss', 'pt'), formatDate(endTime, 'yyyy-MM-dd HH:mm:ss', 'pt')).subscribe(response => {
|
||||
this.eventService.getAllPrEvents(new Date(startTime).toLocaleString(), new Date(endTime).toLocaleString()).subscribe(response => {
|
||||
this.eventsListPessoal = response.filter(data => data.CalendarName == "Pessoal");
|
||||
this.eventsListPessoal.forEach(element => {
|
||||
this.eventSource.push({
|
||||
@@ -450,7 +518,7 @@ export class AgendaPage implements OnInit {
|
||||
//Inicializa o array eventSource
|
||||
this.eventSource=[];
|
||||
if(this.profile == "mdgpr"){
|
||||
this.eventService.getAllMdEvents(formatDate(startTime, 'yyyy-MM-dd HH:mm:ss', 'pt'), formatDate(endTime, 'yyyy-MM-dd HH:mm:ss', 'pt')).subscribe(res => {
|
||||
this.eventService.getAllMdEvents(new Date(startTime).toLocaleString(), new Date(endTime).toLocaleString()).subscribe(res => {
|
||||
this.eventsListOficial = res.filter(data => data.CalendarName == "Oficial");
|
||||
this.eventsListOficial.forEach(element => {
|
||||
this.eventSource.push({
|
||||
@@ -466,7 +534,7 @@ export class AgendaPage implements OnInit {
|
||||
this.showLoader = false;
|
||||
});
|
||||
}else{
|
||||
this.eventService.getAllPrEvents(formatDate(startTime, 'yyyy-MM-dd HH:mm:ss', 'pt'), formatDate(endTime, 'yyyy-MM-dd HH:mm:ss', 'pt')).subscribe(res => {
|
||||
this.eventService.getAllPrEvents(new Date(startTime).toLocaleString(), new Date(endTime).toLocaleString()).subscribe(res => {
|
||||
this.eventsListOficial = res.filter(data => data.CalendarName == "Oficial");
|
||||
this.eventsListOficial.forEach(element => {
|
||||
this.eventSource.push({
|
||||
@@ -495,12 +563,13 @@ export class AgendaPage implements OnInit {
|
||||
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
||||
setTimeout(() => {
|
||||
ev.target.complete();
|
||||
}, 250);
|
||||
}, 250)
|
||||
}
|
||||
showAlert(){
|
||||
this.alertCrontroller.presentAlert("Funcionalidade em desenvolvimento.");
|
||||
}
|
||||
changeProfile(){
|
||||
|
||||
if(this.profile == "mdgpr"){
|
||||
console.log('pr');
|
||||
this.profile ="pr";
|
||||
@@ -511,6 +580,10 @@ export class AgendaPage implements OnInit {
|
||||
this.profile ="mdgpr";
|
||||
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
||||
}
|
||||
|
||||
// change header profile picture
|
||||
window['header'](this.profile);
|
||||
|
||||
}
|
||||
|
||||
async openAddEvent() {
|
||||
@@ -519,7 +592,7 @@ export class AgendaPage implements OnInit {
|
||||
componentProps:{
|
||||
segment: this.segment,
|
||||
profile: this.profile,
|
||||
eventSelectedDate: this.eventSelectedDate,
|
||||
eventSelectedDate: this.eventSelectedDate
|
||||
},
|
||||
cssClass: 'modal',
|
||||
backdropDismiss: false
|
||||
@@ -549,7 +622,7 @@ export class AgendaPage implements OnInit {
|
||||
const modal = await this.modalCtrl.create({
|
||||
component: ViewEventPage,
|
||||
componentProps:{
|
||||
eventId: eventId,
|
||||
eventId: eventId
|
||||
},
|
||||
cssClass: 'modal',
|
||||
backdropDismiss: false
|
||||
@@ -573,8 +646,5 @@ export class AgendaPage implements OnInit {
|
||||
});
|
||||
await modal.present();
|
||||
modal.onDidDismiss();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -56,8 +56,8 @@
|
||||
</div>
|
||||
<div class="ion-input-class">
|
||||
<ion-select placeholder="Selecione tipo"
|
||||
[(ngModel)]="postEvent.EventType"
|
||||
selectedText="{{postEvent.EventType}}"
|
||||
[(ngModel)]="postEvent.Categories[0]"
|
||||
selectedText="{{postEvent.Categories[0]}}"
|
||||
interface="action-sheet"
|
||||
Cancel-text="Cancelar" required>
|
||||
<ion-select-option value="Reunião">Reunião</ion-select-option>
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
</div>
|
||||
<div class="ion-input-class">
|
||||
<ion-select placeholder="Selecione tipo"
|
||||
[(ngModel)]="postEvent.EventType"
|
||||
[(ngModel)]="postEvent.Categories[0]"
|
||||
interface="action-sheet"
|
||||
Cancel-text="Cancelar" required>
|
||||
<ion-select-option value="Reunião">Reunião</ion-select-option>
|
||||
|
||||
@@ -62,7 +62,7 @@ export class NewEventPage implements OnInit {
|
||||
AppointmentState: 0,
|
||||
TimeZone: '',
|
||||
Organizer: '',
|
||||
Categories: null,
|
||||
Categories: ['Reunião'],
|
||||
HasAttachments: false,
|
||||
};
|
||||
}
|
||||
@@ -83,7 +83,7 @@ export class NewEventPage implements OnInit {
|
||||
AppointmentState: 0,
|
||||
TimeZone: '',
|
||||
Organizer: '',
|
||||
Categories: null,
|
||||
Categories: ['Reunião'],
|
||||
HasAttachments: false,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -62,11 +62,11 @@ export class LoginPage implements OnInit {
|
||||
await alert.present();
|
||||
}
|
||||
|
||||
loginRocketChat(user: any) {
|
||||
loginRocketChat() {
|
||||
|
||||
let postData = {
|
||||
"user": user.username,
|
||||
"password": user.password,
|
||||
"user": this.username,
|
||||
"password": this.password,
|
||||
}
|
||||
this.authService.loginChat(postData).subscribe((res: any) => {
|
||||
console.log(res.data);
|
||||
@@ -128,7 +128,7 @@ export class LoginPage implements OnInit {
|
||||
BasicAuthKey: ""
|
||||
}
|
||||
if (await this.authService.login(this.userattempt)) {
|
||||
/* this.loginRocketChat(); */
|
||||
this.loginRocketChat();
|
||||
this.storeUserIdANdToken()
|
||||
|
||||
this.router.navigate(['/home/events']);
|
||||
|
||||
@@ -95,13 +95,8 @@
|
||||
<!-- most searched word-->
|
||||
<div class="most-searched-words" *ngIf="!showDocuments">
|
||||
<p class="title ion-text-center">Palavras mais pesquisadas</p>
|
||||
<div>
|
||||
<angular-tag-cloud class="world-cloud"
|
||||
[data]="data"
|
||||
[width]=width
|
||||
[height]=height
|
||||
[overflow]=true>
|
||||
</angular-tag-cloud>
|
||||
<div class="most-searched-word-container">
|
||||
123
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -197,6 +197,11 @@ ion-slide{
|
||||
text-align: center;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.most-searched-word-container{
|
||||
width: 441px;
|
||||
height: 400px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { ModalController } from '@ionic/angular';
|
||||
import { ProcessesService } from 'src/app/services/processes.service';
|
||||
import { SearchService } from "../../services/search.service";
|
||||
import { SearchService, } from "../../services/search.service";
|
||||
import { SearchCategory } from "src/app/models/search-category";
|
||||
import { SearchDocument } from "src/app/models/search-document";
|
||||
import { formatDate } from '@angular/common';
|
||||
import { CloudData, CloudOptions } from 'angular-tag-cloud-module';
|
||||
import { SenderPage } from 'src/app/pages/search/sender/sender.page';
|
||||
import { OrganicEntityPage } from 'src/app/pages/search/organic-entity/organic-entity.page';
|
||||
import WordCloud from 'src/plugin/wordcloud2.js'
|
||||
|
||||
|
||||
import { NgModel } from '@angular/forms';
|
||||
@Component({
|
||||
@@ -54,12 +56,40 @@ export class SearchPage implements OnInit {
|
||||
speed: 400,
|
||||
}
|
||||
|
||||
|
||||
list = []
|
||||
|
||||
constructor(private modalController: ModalController,
|
||||
private search: SearchService) {
|
||||
this.ordinance = "recent";
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
|
||||
this.search.mostSeachWord("10").subscribe(res=>{
|
||||
|
||||
let list = []
|
||||
|
||||
res.forEach(element => {
|
||||
list.push(Object.values(element))
|
||||
});
|
||||
|
||||
this.list = list
|
||||
|
||||
const elem = document.documentElement.querySelector('.most-searched-word-container');
|
||||
|
||||
|
||||
WordCloud(
|
||||
elem,
|
||||
{
|
||||
list: this.list,
|
||||
Family: 'Times, serif',
|
||||
gridSize: 15
|
||||
},
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
close(){
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Event } from '../models/event.model';
|
||||
import { Observable } from 'rxjs';
|
||||
import { from, Observable } from 'rxjs';
|
||||
import { environment } from 'src/environments/environment';
|
||||
import { AuthService } from '../services/auth.service';
|
||||
import { User } from '../models/user.model';
|
||||
import { EventSearch } from "src/app/models/event-search";
|
||||
import { TopSearch } from 'src/app/models/top-search';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@@ -52,4 +53,22 @@ export class SearchService {
|
||||
return this.http.get<EventSearch>(`${geturl}`, options);
|
||||
}
|
||||
|
||||
mostSeachWord(size:string): Observable<TopSearch>{
|
||||
// Endpoint
|
||||
const geturl = environment.apiURL + 'search/top';
|
||||
// store params
|
||||
let params = new HttpParams();
|
||||
// set https params
|
||||
|
||||
params = params.set("size", size);
|
||||
|
||||
|
||||
const options = {
|
||||
headers: this.headers,
|
||||
params: params
|
||||
};
|
||||
|
||||
return this.http.get<TopSearch>(`${geturl}`, options);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<div class="div-profile">
|
||||
<ion-icon src='assets/images/icons-profile.svg'></ion-icon>
|
||||
<ion-icon *ngIf="profile == 'mdgpr' " src='assets/images/icons-profile.svg'></ion-icon>
|
||||
<ion-icon *ngIf="profile == 'pr' " src='assets/images/icons-profile-pr-header.svg'></ion-icon>
|
||||
</div>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
@@ -9,7 +9,15 @@ import { SearchPage } from 'src/app/pages/search/search.page';
|
||||
})
|
||||
export class HeaderPage implements OnInit {
|
||||
|
||||
constructor(private modalController: ModalController) { }
|
||||
profile: string = 'mdgpr';
|
||||
|
||||
constructor(private modalController: ModalController) {
|
||||
|
||||
window['header'] = (profile:string) => {
|
||||
this.profile = profile;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 7H18V8H7V7Z" fill="white"/>
|
||||
<path d="M10.5 9C11.3284 9 12 8.32843 12 7.5C12 6.67157 11.3284 6 10.5 6C9.67157 6 9 6.67157 9 7.5C9 8.32843 9.67157 9 10.5 9Z" fill="white"/>
|
||||
<path d="M17.5 35C27.165 35 35 27.165 35 17.5C35 7.83502 27.165 0 17.5 0C7.83502 0 0 7.83502 0 17.5C0 27.165 7.83502 35 17.5 35Z" fill="white"/>
|
||||
<path d="M34.5 17.5C34.5 26.8888 26.8888 34.5 17.5 34.5C8.11116 34.5 0.5 26.8888 0.5 17.5C0.5 8.11116 8.11116 0.5 17.5 0.5C26.8888 0.5 34.5 8.11116 34.5 17.5Z" fill="white" stroke="#F05D5E"/>
|
||||
<path d="M9.46143 10.9141L13.4126 20.7754L17.3638 10.9141H19.4307V23H17.8369V18.2935L17.9863 13.2134L14.0186 23H12.7983L8.83887 13.2383L8.99658 18.2935V23H7.40283V10.9141H9.46143ZM22.2446 23V10.9141H25.6562C26.7077 10.9141 27.6374 11.1465 28.4453 11.6113C29.2533 12.0762 29.8758 12.7375 30.313 13.5952C30.7557 14.453 30.9798 15.438 30.9854 16.5503V17.3223C30.9854 18.4622 30.764 19.4611 30.3213 20.3188C29.8841 21.1766 29.256 21.8351 28.437 22.2944C27.6235 22.7537 26.6745 22.9889 25.5898 23H22.2446ZM23.8384 12.2256V21.6968H25.5151C26.7437 21.6968 27.6982 21.3149 28.3789 20.5513C29.0651 19.7876 29.4082 18.7002 29.4082 17.2891V16.5835C29.4082 15.2111 29.0845 14.1458 28.437 13.3877C27.7951 12.624 26.882 12.2367 25.6978 12.2256H23.8384Z" fill="black"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 7H18V8H7V7Z" fill="white"/>
|
||||
<path d="M10.5 9C11.3284 9 12 8.32843 12 7.5C12 6.67157 11.3284 6 10.5 6C9.67157 6 9 6.67157 9 7.5C9 8.32843 9.67157 9 10.5 9Z" fill="white"/>
|
||||
<path d="M17.5 35C27.165 35 35 27.165 35 17.5C35 7.83502 27.165 0 17.5 0C7.83502 0 0 7.83502 0 17.5C0 27.165 7.83502 35 17.5 35Z" fill="#F05D5E"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 7H18V8H7V7Z" fill="#F05D5E"/>
|
||||
<path d="M11.5 7.5C11.5 8.05228 11.0523 8.5 10.5 8.5C9.94772 8.5 9.5 8.05228 9.5 7.5C9.5 6.94772 9.94772 6.5 10.5 6.5C11.0523 6.5 11.5 6.94772 11.5 7.5Z" fill="#F05D5E" stroke="black"/>
|
||||
<path d="M34.5 17.5C34.5 26.8888 26.8888 34.5 17.5 34.5C8.11116 34.5 0.5 26.8888 0.5 17.5C0.5 8.11116 8.11116 0.5 17.5 0.5C26.8888 0.5 34.5 8.11116 34.5 17.5Z" fill="#F05D5E" stroke="black"/>
|
||||
<path d="M9.99658 19.2686V24H8.40283V11.9141H12.8604C14.1829 11.9141 15.2178 12.2516 15.9648 12.9268C16.7174 13.6019 17.0938 14.4956 17.0938 15.6079C17.0938 16.7811 16.7257 17.6859 15.9897 18.3223C15.2593 18.9531 14.2106 19.2686 12.8438 19.2686H9.99658ZM9.99658 17.9653H12.8604C13.7126 17.9653 14.3656 17.7661 14.8193 17.3677C15.2731 16.9637 15.5 16.3826 15.5 15.6245C15.5 14.9051 15.2731 14.3296 14.8193 13.8979C14.3656 13.4663 13.743 13.2422 12.9517 13.2256H9.99658V17.9653ZM23.5601 19.1108H20.7212V24H19.1191V11.9141H23.1201C24.4814 11.9141 25.5273 12.224 26.2578 12.8438C26.9938 13.4635 27.3618 14.3656 27.3618 15.5498C27.3618 16.3024 27.1571 16.9582 26.7476 17.5171C26.3436 18.076 25.7791 18.4938 25.0542 18.7705L27.8931 23.9004V24H26.1831L23.5601 19.1108ZM20.7212 17.8076H23.1699C23.9613 17.8076 24.5894 17.6029 25.0542 17.1934C25.5246 16.7839 25.7598 16.236 25.7598 15.5498C25.7598 14.8027 25.5356 14.23 25.0874 13.8315C24.6447 13.4331 24.0028 13.2311 23.1616 13.2256H20.7212V17.8076Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,23 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="45" height="45" viewBox="0 0 45 45">
|
||||
<defs>
|
||||
<circle id="d436citeva" cx="22.5" cy="22.5" r="22.5"/>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g>
|
||||
<g>
|
||||
<g transform="translate(-335 -26) translate(0 23) translate(335 3)">
|
||||
<rect width="45" height="45" fill="#FFF" fill-opacity=".6" rx="22.5"/>
|
||||
<g>
|
||||
<mask id="ytu8rzogsb" fill="#fff">
|
||||
<use xlink:href="#d436citeva"/>
|
||||
</mask>
|
||||
<path fill="#42B9FE" fill-opacity=".7" d="M22.5 10.5c5.799 0 10.5 5.037 10.5 11.25 0 3.902-1.854 7.34-4.67 9.358C34.565 33.57 39 39.868 39 47.25c0 9.527-7.387 17.25-16.5 17.25S6 56.777 6 47.25c0-7.381 4.435-13.68 10.67-16.142C13.854 29.09 12 25.652 12 21.75c0-6.213 4.701-11.25 10.5-11.25z" mask="url(#ytu8rzogsb)"/>
|
||||
</g>
|
||||
<text fill="#FFF" fill-opacity=".7" font-family="Roboto-Light, Roboto" font-size="20" font-weight="300">
|
||||
<tspan x="9.995" y="27">PR</tspan>
|
||||
</text>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
+114
-42
@@ -30,35 +30,46 @@
|
||||
|
||||
// calendar
|
||||
// ionic calendar2
|
||||
// calendar current day
|
||||
|
||||
td.monthview-current{
|
||||
color: white;
|
||||
/* border-radius: 89px; */
|
||||
background: lightskyblue !important;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
/* display: flex; */
|
||||
height: 100%;
|
||||
div {
|
||||
padding-left: 7px;
|
||||
border-radius: 28px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
color: white;
|
||||
// current day
|
||||
ion-slide{
|
||||
td{
|
||||
div {
|
||||
padding-left: 7px;
|
||||
border-radius: 28px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
height: 25px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.monthview-secondary-with-event, .monthview-secondary-with-event[_ngcontent-dwf-c153] {
|
||||
td.monthview-primary-with-event {
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
td.monthview-selected {
|
||||
background-color: #42b9fe30 !important;
|
||||
// current date
|
||||
td.monthview-current{
|
||||
border-bottom: 1px solid lightskyblue !important;
|
||||
color: black !important;
|
||||
background-color: white !important;
|
||||
}
|
||||
// selected date =============================
|
||||
td.monthview-selected {
|
||||
background-color: lightskyblue !important;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
td.monthview-secondary-with-event, td.monthview-secondary-with-event[_ngcontent-dwf-c153] {
|
||||
background-color: white !important;
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.event-detail-container{
|
||||
display: none;
|
||||
}
|
||||
@@ -87,6 +98,10 @@ td.monthview-selected {
|
||||
margin-left: 0px !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.cal-current-time-marker::before{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
@@ -107,6 +122,10 @@ td.monthview-selected {
|
||||
}
|
||||
|
||||
.timeline-box{
|
||||
|
||||
position: relative;
|
||||
width: calc(100% - 0px);
|
||||
border-radius: 5px;
|
||||
padding: 3px;
|
||||
background-color: white !important;
|
||||
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07) !important;
|
||||
@@ -125,15 +144,26 @@ td.monthview-selected {
|
||||
}
|
||||
|
||||
|
||||
.timeline-box-Pessoal{
|
||||
.timeline-pr-box-Pessoal{
|
||||
border-left: 5px solid #958bfc !important;
|
||||
|
||||
height: 100%;
|
||||
}
|
||||
.timeline-pr-box-Oficial{
|
||||
border-left: 5px solid #99e47b !important;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
||||
.timeline-mdgpr-box-Oficial{
|
||||
border-left: 5px solid #ffb703 !important;
|
||||
height: 100%;
|
||||
|
||||
}
|
||||
.timeline-box-Oficial{
|
||||
.timeline-mdgpr-box-Pessoal{
|
||||
border-left: 5px solid #f05d5e !important;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
||||
.table-bordered, .table-bordered{
|
||||
border: none !important;
|
||||
td, th {
|
||||
@@ -147,30 +177,33 @@ td.monthview-selected {
|
||||
.timeline-box-{}
|
||||
|
||||
|
||||
.calendar-event-type-Oficial{
|
||||
border-right: 3px solid #f05d5e !important;
|
||||
.calendar-event-border{
|
||||
border-radius: 21px !important;
|
||||
color: black !important;
|
||||
margin: 0px auto !important;
|
||||
width: 35px !important;
|
||||
}
|
||||
|
||||
.calendar-event-type-Pessoal{
|
||||
.calendar-mdgpr-event-type-Oficial{
|
||||
border-left: 3px solid #ffb703 !important;
|
||||
border-radius: 21px !important;
|
||||
color: black !important;
|
||||
margin: 0px auto !important;
|
||||
width: 35px !important;
|
||||
}
|
||||
.calendar-mdgpr-event-type-Pessoal{
|
||||
border-right: 3px solid #f05d5e !important;
|
||||
}
|
||||
.calendar-mdgpr-event-type-both{
|
||||
border-left: 3px solid #ffb703 !important;
|
||||
border-right: 3px solid #f05d5e !important;
|
||||
}
|
||||
.calendar-pr-event-type-both{
|
||||
border-left: 3px solid #99e47b !important;
|
||||
border-right: 3px solid #958bfc !important;
|
||||
}
|
||||
|
||||
.calendar-event-type-both{
|
||||
border-radius: 21px !important;
|
||||
border-left: 3px solid #ffb703 !important;
|
||||
border-bottom: none !important;
|
||||
border-right: 3px solid #f05d5e !important;
|
||||
color: black !important;
|
||||
margin: 0px auto !important;
|
||||
width: 35px !important;
|
||||
.calendar-pr-event-type-Oficial{
|
||||
border-left: 3px solid #99e47b !important;
|
||||
}
|
||||
|
||||
.calendar-pr-event-type-Pessoal{
|
||||
border-left: 3px solid #958bfc !important;
|
||||
}
|
||||
|
||||
.cal-hour-segment {
|
||||
@@ -178,11 +211,50 @@ td.monthview-selected {
|
||||
}
|
||||
|
||||
|
||||
|
||||
td.monthview-current{
|
||||
border-bottom: 1px solid #3a87ad !important;
|
||||
.calendar-profile{
|
||||
font-size: 36px
|
||||
}
|
||||
|
||||
|
||||
/* angular-cli file: src/styles.css */
|
||||
@import "../node_modules/angular-calendar/css/angular-calendar.css";
|
||||
@import "./style/main.scss";
|
||||
|
||||
|
||||
// disable calendar build in header
|
||||
.calendar-component{
|
||||
thead{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.calendar-top0{
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.calendar-top15{
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.calendar-top30{
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.calendar-top45{
|
||||
margin-top: 45px;
|
||||
}
|
||||
|
||||
|
||||
.cal-event{
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* .cal-week-view mwl-calendar-week-view-hour-segment, .cal-week-view .cal-hour-segment {
|
||||
display: block;
|
||||
height: 60px !important;
|
||||
} */
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user