diff --git a/package-lock.json b/package-lock.json index deb1d9ad9..f2bc9228f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11320,7 +11320,11 @@ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "dev": true }, -<<<<<<< HEAD + "preact": { + "version": "10.4.7", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.4.7.tgz", + "integrity": "sha512-DtnnPbOm7oxW7Sxf5Co+KSIOxo7bGm0vLfJN/wGey7G2sAGKnGP5+bFyE2YIgutMISQl6xFVTsOd6l/Au88VVw==" + }, "prebuild-install": { "version": "5.3.5", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz", @@ -11354,12 +11358,6 @@ } } } -======= - "preact": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.4.7.tgz", - "integrity": "sha512-DtnnPbOm7oxW7Sxf5Co+KSIOxo7bGm0vLfJN/wGey7G2sAGKnGP5+bFyE2YIgutMISQl6xFVTsOd6l/Au88VVw==" ->>>>>>> d8f224a4e3cb066734ae0358efe8cc6198d0daa6 }, "prepend-http": { "version": "1.0.4", diff --git a/package.json b/package.json index d1b8fb488..a4b59ac0e 100644 --- a/package.json +++ b/package.json @@ -90,4 +90,4 @@ "android" ] } -} \ No newline at end of file +} diff --git a/src/app/home/home-routing.module.ts b/src/app/home/home-routing.module.ts index b083d86a8..e8d4e01d7 100644 --- a/src/app/home/home-routing.module.ts +++ b/src/app/home/home-routing.module.ts @@ -23,6 +23,16 @@ const routes: Routes = [ ] }, + { + path: 'attachments', + children: [ + { + path:':eventId', + loadChildren: ()=> import('../pages/events/attachments/attachments.module').then(m => m.AttachmentsPageModule) + }, + + ] + }, { path: 'agenda', children: [ diff --git a/src/app/models/attachment.model.ts b/src/app/models/attachment.model.ts new file mode 100644 index 000000000..e2a14b1d5 --- /dev/null +++ b/src/app/models/attachment.model.ts @@ -0,0 +1,21 @@ +export class Attachment { + Id: number; + ParentId: string; + Sources: Sources; + SourceId: string; + Description: string; + SourceName: string; + CreateDate: string; + Stakeholders: string; + Link: string; + //Data: any; +} + +enum Sources +{ + Undefined = 0, + webTRIX = 1, + K2 = 2, + Exchange = 3, + File = 4 +} \ No newline at end of file diff --git a/src/app/models/event.model.ts b/src/app/models/event.model.ts index 8d6b9530b..8eaa154c3 100644 --- a/src/app/models/event.model.ts +++ b/src/app/models/event.model.ts @@ -1,7 +1,5 @@ import { EventBody } from './eventbody.model'; import { EventPerson } from './eventperson.model'; -import { EventAttachment } from './eventattachment.model'; -import { EventOrganizer } from './organizer.model'; export class Event{ @@ -22,5 +20,5 @@ export class Event{ TimeZone: string; Organizer: string; Categories: string[]; - Attachments: EventAttachment[]; + HasAttachments: boolean; } \ No newline at end of file diff --git a/src/app/models/eventattachment.model.ts b/src/app/models/eventattachment.model.ts deleted file mode 100644 index 7b9621551..000000000 --- a/src/app/models/eventattachment.model.ts +++ /dev/null @@ -1,16 +0,0 @@ -export class EventAttachment{ - Id: number; - ParentId: string; - Sources: Sources; - SourceId: string; - Data: any; -} - -enum Sources -{ - Unknow = 0, - webTRIX = 1, - K2 = 2, - Exchange = 3, - File = 4 -} \ No newline at end of file diff --git a/src/app/pages/agenda/agenda.page.ts b/src/app/pages/agenda/agenda.page.ts index d327d683a..ae95568d5 100644 --- a/src/app/pages/agenda/agenda.page.ts +++ b/src/app/pages/agenda/agenda.page.ts @@ -4,9 +4,8 @@ import { AlertController, ModalController } from '@ionic/angular'; import { formatDate } from '@angular/common'; import { CalModalPage } from '../cal-modal/cal-modal.page'; import { EventsService } from 'src/app/services/events.service'; -import { Observable, ObjectUnsubscribedError } from 'rxjs'; +import { Observable } from 'rxjs'; import { Event } from '../../models/event.model'; -import { parse } from 'date-fns'; import { Router } from '@angular/router'; @Component({ @@ -39,8 +38,6 @@ export class AgendaPage implements OnInit { eventItem: Observable; constructor( - private alertCtrl: AlertController, - @Inject(LOCALE_ID) private locale: string, private modalCtrl: ModalController, private eventService: EventsService, private router: Router diff --git a/src/app/pages/cal-modal/cal-modal.page.html b/src/app/pages/cal-modal/cal-modal.page.html index a372980ad..e62a1e7e9 100644 --- a/src/app/pages/cal-modal/cal-modal.page.html +++ b/src/app/pages/cal-modal/cal-modal.page.html @@ -41,7 +41,7 @@ --> - Selecione o calendário + Selecione a Agenda Pessoal Oficial @@ -58,13 +58,13 @@ Data Início - Data Fim - diff --git a/src/app/pages/events/attachments/attachments-routing.module.ts b/src/app/pages/events/attachments/attachments-routing.module.ts new file mode 100644 index 000000000..4ea13a050 --- /dev/null +++ b/src/app/pages/events/attachments/attachments-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { AttachmentsPage } from './attachments.page'; + +const routes: Routes = [ + { + path: '', + component: AttachmentsPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class AttachmentsPageRoutingModule {} diff --git a/src/app/pages/events/attachments/attachments.module.ts b/src/app/pages/events/attachments/attachments.module.ts new file mode 100644 index 000000000..95c52664a --- /dev/null +++ b/src/app/pages/events/attachments/attachments.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { AttachmentsPageRoutingModule } from './attachments-routing.module'; + +import { AttachmentsPage } from './attachments.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + AttachmentsPageRoutingModule + ], + declarations: [AttachmentsPage] +}) +export class AttachmentsPageModule {} diff --git a/src/app/pages/events/attachments/attachments.page.html b/src/app/pages/events/attachments/attachments.page.html new file mode 100644 index 000000000..56b46c4bb --- /dev/null +++ b/src/app/pages/events/attachments/attachments.page.html @@ -0,0 +1,102 @@ + + + + Voltar + + Anexos do evento + + + +
+ + + +
+
+
+ +
+
+

{{ att.SourceName }}

+

{{ att.CreateDate }}

+

{{ att.Description }}

+
+
+
+
+ +
+
+

{{ att.Stakeholders }}

+
+
+
+
+
+
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + +

+ +

+

+ +

+

+ +

+
+
+ + + + + +

+ +

+

+ +

+

+ +

+
+
+ + + +

+ +

+

+ +

+

+ +

+
+
+
+
+
diff --git a/src/app/pages/events/attachments/attachments.page.scss b/src/app/pages/events/attachments/attachments.page.scss new file mode 100644 index 000000000..a2251f00b --- /dev/null +++ b/src/app/pages/events/attachments/attachments.page.scss @@ -0,0 +1,102 @@ +/* CONTENT */ +.item-list-small{ + font-size: 14px; + overflow: auto; + } + .ion-item-class{ + padding: 0; + + } + .label-text{ + width: 100%; + padding: 0; + margin: 0; + } + +//DIV +.div-item{ + width: 100%; + overflow: auto; + border-bottom: 1px solid #ccc; + margin: 10px 0 5px 0; + } + .div-up{ + width: 100%; + overflow: auto; + } + .div-up h3{ + margin: 0; + padding: 0; + font-size: 17px; + width: 100%; + } + .div-icon{ + width: 10%; + font-size: 22px; + float: left; + color: #808080; + } + .div-icon ion-icon{ + display: block; + margin: 0 auto; + + } + .div-content-attachment{ + width: 85%; + float: left; + padding: 0 0 0 12px; + } + + .div-content-oficial h3, .div-content-pessoal h3{ + font-size: 16pt; + /* border: 1px solid red; */ + } + .div-content-oficial p, .div-content-pessoal p{ + font-size: 14pt; + color: rgb(94, 92, 92); + padding: 0 !important; + margin: 0 !important; + } + .div-botton{ + width: 100%; + overflow: auto; + margin: 10px 0 5px 0; + } + .div-botton-left{ + width: 10%; + float: left; + } + .ion-icon-location{ + text-align: center; + display: block; + color: #000; + font-size: 16px; + margin: 0 auto; + } + .div-botton-middle{ + width: 75%; + float: left; + margin-top: 0.5px; + } + .div-botton-middle p{ + padding: 0; + margin: 0; + } + .div-botton-right{ + width: 10%; + float: left; + margin: 0; + padding: 0; + } + .ion-icon-attach{ + color: #666666; + font-size: 20px; + } + /* Custom Skeleton Line Height and Margin */ +.custom-skeleton ion-skeleton-text { + line-height: 13px; +} + +.custom-skeleton ion-skeleton-text:last-child { + margin-bottom: 5px; +} \ No newline at end of file diff --git a/src/app/pages/events/attachments/attachments.page.spec.ts b/src/app/pages/events/attachments/attachments.page.spec.ts new file mode 100644 index 000000000..881e11b1a --- /dev/null +++ b/src/app/pages/events/attachments/attachments.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { AttachmentsPage } from './attachments.page'; + +describe('AttachmentsPage', () => { + let component: AttachmentsPage; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AttachmentsPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(AttachmentsPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/events/attachments/attachments.page.ts b/src/app/pages/events/attachments/attachments.page.ts new file mode 100644 index 000000000..ee9b08c71 --- /dev/null +++ b/src/app/pages/events/attachments/attachments.page.ts @@ -0,0 +1,35 @@ +import { Component, OnInit } from '@angular/core'; +import { AttachmentsService } from 'src/app/services/attachments.service'; +import { Attachment } from 'src/app/models/attachment.model'; +import { ActivatedRoute } from '@angular/router'; + +@Component({ + selector: 'app-attachments', + templateUrl: './attachments.page.html', + styleUrls: ['./attachments.page.scss'], +}) +export class AttachmentsPage implements OnInit { + + loadedEventAttachments: Attachment[]; + + constructor(private attachamentsService: AttachmentsService, private activatedRoute: ActivatedRoute) { } + + ngOnInit() { + /* Emit new data when something changes */ + this.activatedRoute.paramMap.subscribe(paramMap =>{ + if(!paramMap.has('eventId')){ + //Redirect + return; + } + this.loadAttachments(paramMap.get('eventId')); + }); + } + + loadAttachments(eventid:string) + { + this.attachamentsService.getEventAttachments(eventid).subscribe(attachments => { + this.loadedEventAttachments = attachments; + }); + } + +} diff --git a/src/app/pages/events/event-detail/event-detail.page.html b/src/app/pages/events/event-detail/event-detail.page.html index d534dc437..0aaea0ac2 100644 --- a/src/app/pages/events/event-detail/event-detail.page.html +++ b/src/app/pages/events/event-detail/event-detail.page.html @@ -6,12 +6,11 @@ Visualizar Evento - + Assunto - @@ -31,27 +30,48 @@ - Calendário - + Agenda + + Pessoal + Oficial + - Tipo do evento - + Selecione o tipo de evento + + Reunião + Viagem + Conferência + Encontro + - Data Início: - + Data Início + Data Fim - + - Anexos - - - Lei do orçamento geral do Estado - + + +
+
+
+ +
+
+

Ver anexos

+
+
+
+
+
diff --git a/src/app/pages/events/event-detail/event-detail.page.scss b/src/app/pages/events/event-detail/event-detail.page.scss index 1e03c67d9..3cf6ba865 100644 --- a/src/app/pages/events/event-detail/event-detail.page.scss +++ b/src/app/pages/events/event-detail/event-detail.page.scss @@ -11,4 +11,40 @@ } .ion-button-right{ float: right; -} \ No newline at end of file +} +.div-item{ + width: 100%; + overflow: auto; + border-bottom: 1px solid #ccc; + margin: 10px 0 5px 0; + } + .div-up{ + width: 100%; + overflow: auto; + } + .div-up h3{ + margin: 0; + padding: 0; + font-size: 17px; + width: 100%; + } + .div-icon{ + width: 10%; + font-size: 22px; + float: left; + color: #808080; + } + .div-icon ion-icon{ + display: block; + margin: 0 auto; + + } + .div-content-attachment{ + width: 85%; + float: left; + padding: 0 0 0 12px; + } + .ion-icon-attach{ + color: #666666; + font-size: 20px; + } \ No newline at end of file diff --git a/src/app/pages/events/event-detail/event-detail.page.ts b/src/app/pages/events/event-detail/event-detail.page.ts index 58863febf..eab8feefe 100644 --- a/src/app/pages/events/event-detail/event-detail.page.ts +++ b/src/app/pages/events/event-detail/event-detail.page.ts @@ -1,11 +1,13 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { EventsService } from 'src/app/services/events.service'; + import { Router } from '@angular/router'; import { Event } from '../../../models/event.model'; -import { Observable } from 'rxjs'; import { EventBody } from 'src/app/models/eventbody.model'; import { AlertController } from '@ionic/angular'; +import { Attachment } from 'src/app/models/attachment.model'; +import { ActionSheetController } from '@ionic/angular'; @Component({ selector: 'app-event-detail', @@ -15,9 +17,11 @@ import { AlertController } from '@ionic/angular'; export class EventDetailPage implements OnInit { loadedEvent: Event; - eventItem: Observable; + loadedEventAttachments: Attachment[]; + showLoader: boolean = true; - constructor(public alertController: AlertController, private router: Router, private activatedRoute: ActivatedRoute, private eventsService: EventsService) { + constructor(public actionSheetController: ActionSheetController, public alertController: AlertController, private router: Router, private activatedRoute: ActivatedRoute, + private eventsService: EventsService) { this.loadedEvent = new Event(); this.loadedEvent.Body = new EventBody(); } @@ -29,19 +33,17 @@ export class EventDetailPage implements OnInit { //Redirect return; } - const eventId = paramMap.get('eventId'); + this.loadEvent(paramMap.get('eventId')); + }); + } - console.log(eventId); - /* Load my event detail */ - /* this.loadedEvent = this.eventsService.getEvent(eventId); */ - this.eventItem = this.eventsService.getEvent(eventId); - - /* console.log(this.eventItem); */ - - this.eventsService.getEvent(eventId).subscribe(response => - { - this.loadedEvent = response; - }); + loadEvent(eventid:string) + { + this.showLoader = true; + + this.eventsService.getEvent(eventid).subscribe(event => { + this.loadedEvent = event; + this.showLoader = false; }); } @@ -56,7 +58,7 @@ export class EventDetailPage implements OnInit { text: 'Não', role: 'cancel', cssClass: 'secondary', - handler: (blah) => { } + handler: () => { } }, { text: 'Sim', handler: () => { @@ -71,7 +73,7 @@ export class EventDetailPage implements OnInit { Delete() { - this.eventsService.deleteEvent(this.loadedEvent.EventId, 0).subscribe(async response => + this.eventsService.deleteEvent(this.loadedEvent.EventId, 0).subscribe(async () => { const alert = await this.alertController.create({ cssClass: 'my-custom-class', @@ -87,7 +89,7 @@ export class EventDetailPage implements OnInit { Save() { - this.eventsService.putEvent(this.loadedEvent, 2, 3).subscribe(async response => + this.eventsService.putEvent(this.loadedEvent, 2, 3).subscribe(async () => { const alert = await this.alertController.create({ cssClass: 'my-custom-class', @@ -100,5 +102,4 @@ export class EventDetailPage implements OnInit { this.router.navigate(['/home/events']); }); } - } diff --git a/src/app/pages/events/events-routing.module.ts b/src/app/pages/events/events-routing.module.ts index 21e357909..2d64075b0 100644 --- a/src/app/pages/events/events-routing.module.ts +++ b/src/app/pages/events/events-routing.module.ts @@ -11,6 +11,10 @@ const routes: Routes = [ { path: 'event-detail', loadChildren: () => import('./event-detail/event-detail.module').then( m => m.EventDetailPageModule) + }, + { + path: 'attachments', + loadChildren: () => import('./attachments/attachments.module').then( m => m.AttachmentsPageModule) } ]; diff --git a/src/app/pages/events/events.page.html b/src/app/pages/events/events.page.html index d5fddb0db..575b3da87 100644 --- a/src/app/pages/events/events.page.html +++ b/src/app/pages/events/events.page.html @@ -106,7 +106,7 @@

{{event.Location}}

- +
diff --git a/src/app/services/attachments.service.spec.ts b/src/app/services/attachments.service.spec.ts new file mode 100644 index 000000000..e70f648e7 --- /dev/null +++ b/src/app/services/attachments.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AttachmentsService } from './attachments.service'; + +describe('AttachmentsService', () => { + let service: AttachmentsService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AttachmentsService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/attachments.service.ts b/src/app/services/attachments.service.ts new file mode 100644 index 000000000..c15eec509 --- /dev/null +++ b/src/app/services/attachments.service.ts @@ -0,0 +1,36 @@ +import { Injectable } from '@angular/core'; +import { Attachment } from '../models/attachment.model'; +import { Observable } from 'rxjs'; +import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; +import { environment } from 'src/environments/environment'; +import { AuthService } from '../services/auth.service'; +import { User } from '../models/user.model'; + +@Injectable({ + providedIn: 'root' +}) +export class AttachmentsService { + + loggeduser: User; + headers: HttpHeaders; + + constructor(private http: HttpClient, user: AuthService) { + this.loggeduser = user.ValidatedUser; + this.headers = new HttpHeaders(); + this.headers = this.headers.set('Authorization', this.loggeduser.BasicAuthKey); + } + + getEventAttachments(eventid: string): Observable{ + let geturl = environment.apiURL + 'attachments/GetAttachments'; + let params = new HttpParams(); + + params = params.set("ParentId", eventid); + + let options = { + headers: this.headers, + params: params + }; + + return this.http.get(`${geturl}`, options); + } +} diff --git a/src/app/services/events.service.ts b/src/app/services/events.service.ts index 1c2811c0f..ce6b84de5 100644 --- a/src/app/services/events.service.ts +++ b/src/app/services/events.service.ts @@ -1,13 +1,12 @@ import { Injectable } from '@angular/core'; - import { Event } from '../models/event.model'; -import axios from 'axios' import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { Observable } from 'rxjs'; import { environment } from 'src/environments/environment'; import { AuthService } from '../services/auth.service'; import { User } from '../models/user.model'; + @Injectable({ providedIn: 'root' }) @@ -55,7 +54,7 @@ export class EventsService { } getEvent(eventid: string): Observable{ - const geturl = environment.apiURL + 'calendar/GetEvent'; + let geturl = environment.apiURL + 'calendar/GetEvent'; let params = new HttpParams(); params = params.set("EventId", eventid); @@ -65,7 +64,7 @@ export class EventsService { params: params }; - return this.http.get(`${geturl}`, options) + return this.http.get(`${geturl}`, options); } putEvent(event: Event, conflictResolutionMode:number, sendInvitationsOrCancellationsMode:number): Observable diff --git a/src/environments/environment.ts b/src/environments/environment.ts index b04655be5..dd2e51b11 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -4,7 +4,7 @@ export const environment = { production: false, - apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/v1/api/', + apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/v2/api/', domain: 'gabinetedigital.local', defaultuser: 'paulo.pinto', defaultuserpwd: 'tabteste@006'