From d2fc8338b38a01c7c77f1d0590e0df41f3a380d5 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Tue, 19 Jan 2021 16:44:39 +0100 Subject: [PATCH] Improve search page --- src/app/models/organic-entity.model.spec.ts | 7 + src/app/models/organic-entity.model.ts | 4 + src/app/pages/events/events.page.html | 156 +++++++++--------- src/app/pages/events/events.page.scss | 1 + src/app/pages/events/events.page.ts | 1 + .../organic-entity-routing.module.ts | 17 ++ .../organic-entity/organic-entity.module.ts | 20 +++ .../organic-entity/organic-entity.page.html | 23 +++ .../organic-entity/organic-entity.page.scss | 39 +++++ .../organic-entity.page.spec.ts | 24 +++ .../organic-entity/organic-entity.page.ts | 58 +++++++ src/app/pages/search/search-routing.module.ts | 4 + src/app/pages/search/search.page.html | 5 +- src/app/pages/search/search.page.ts | 41 ++++- src/app/pages/search/sender/sender.page.html | 13 +- src/app/pages/search/sender/sender.page.scss | 15 ++ src/app/pages/search/sender/sender.page.ts | 32 ++-- .../services/organic-entity.service.spec.ts | 16 ++ src/app/services/organic-entity.service.ts | 35 ++++ src/assets/images/icons-arrow-arrow-up.svg | 11 ++ 20 files changed, 421 insertions(+), 101 deletions(-) create mode 100644 src/app/models/organic-entity.model.spec.ts create mode 100644 src/app/models/organic-entity.model.ts create mode 100644 src/app/pages/search/organic-entity/organic-entity-routing.module.ts create mode 100644 src/app/pages/search/organic-entity/organic-entity.module.ts create mode 100644 src/app/pages/search/organic-entity/organic-entity.page.html create mode 100644 src/app/pages/search/organic-entity/organic-entity.page.scss create mode 100644 src/app/pages/search/organic-entity/organic-entity.page.spec.ts create mode 100644 src/app/pages/search/organic-entity/organic-entity.page.ts create mode 100644 src/app/services/organic-entity.service.spec.ts create mode 100644 src/app/services/organic-entity.service.ts create mode 100644 src/assets/images/icons-arrow-arrow-up.svg diff --git a/src/app/models/organic-entity.model.spec.ts b/src/app/models/organic-entity.model.spec.ts new file mode 100644 index 000000000..5149a44f7 --- /dev/null +++ b/src/app/models/organic-entity.model.spec.ts @@ -0,0 +1,7 @@ +import { OrganicEntity } from './organic-entity.model'; + +describe('OrganicEntity', () => { + it('should create an instance', () => { + expect(new OrganicEntity()).toBeTruthy(); + }); +}); diff --git a/src/app/models/organic-entity.model.ts b/src/app/models/organic-entity.model.ts new file mode 100644 index 000000000..bc7b6a6af --- /dev/null +++ b/src/app/models/organic-entity.model.ts @@ -0,0 +1,4 @@ +export class OrganicEntity { + Code: number; + Description: string; +} diff --git a/src/app/pages/events/events.page.html b/src/app/pages/events/events.page.html index 4bbbf63f8..a7d0236f2 100644 --- a/src/app/pages/events/events.page.html +++ b/src/app/pages/events/events.page.html @@ -2,90 +2,96 @@ + + - + + + + - -

{{customDate}}

-
- -

{{totalEvent}} eventos agendados para hoje

-
+ + + +

{{customDate}}

+
+ +

{{totalEvent}} eventos agendados para hoje

+
-
-
{{hoursMinutes}}
-
"{{currentEvent}}"
-
+
+
{{hoursMinutes}}
+
"{{currentEvent}}"
+
-
-
-
-
- -
A sua Agenda
-
- - -
-
-
    -
  • -
    -
    -
    {{event.StartDate | date: 'hh:mm'}}
    -
    {{event.EndDate | date: 'hh:mm'}}
    -
    -
    -
    {{event.Location}}
    -
    {{event.Subject}}
    -
    -
    -
  • - -
- +
+
+ +
+
+
+ +
Correspondência por ler
+
+ + +
+
+
    +
  • +
    +
    +
    {{task.CreateDate | date: 'd/M/yy'}}
    +
    {{task.CreateDate | date: 'hh:mm'}}
    +
    +
    +
    {{ task.Remetente }}
    +
    {{ task.Folio }}
    +
    +
    +
  • + +
- -->
- -
-
-
- -
Correspondência por ler
-
- - -
-
-
    -
  • -
    -
    -
    {{task.CreateDate | date: 'd/M/yy'}}
    -
    {{task.CreateDate | date: 'hh:mm'}}
    -
    -
    -
    {{ task.Remetente }}
    -
    {{ task.Folio }}
    -
    -
    -
  • - -
-
-
- -
\ No newline at end of file diff --git a/src/app/pages/events/events.page.scss b/src/app/pages/events/events.page.scss index 5df488337..1aa69f087 100644 --- a/src/app/pages/events/events.page.scss +++ b/src/app/pages/events/events.page.scss @@ -394,6 +394,7 @@ ion-toolbar{ } } .schedule-date{ + margin-right: 10px; width: 22%; color: #797979 !important; font-size: 13px; diff --git a/src/app/pages/events/events.page.ts b/src/app/pages/events/events.page.ts index e4fb49600..71ffbf06a 100644 --- a/src/app/pages/events/events.page.ts +++ b/src/app/pages/events/events.page.ts @@ -292,6 +292,7 @@ export class EventsPage implements OnInit { return (a.CreateDate < b.CreateDate) ? -1 : ((a.CreateDate > b.CreateDate) ? 1 : 0); }); } + diff --git a/src/app/pages/search/organic-entity/organic-entity-routing.module.ts b/src/app/pages/search/organic-entity/organic-entity-routing.module.ts new file mode 100644 index 000000000..d2d5efc7d --- /dev/null +++ b/src/app/pages/search/organic-entity/organic-entity-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { OrganicEntityPage } from './organic-entity.page'; + +const routes: Routes = [ + { + path: '', + component: OrganicEntityPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class OrganicEntityPageRoutingModule {} diff --git a/src/app/pages/search/organic-entity/organic-entity.module.ts b/src/app/pages/search/organic-entity/organic-entity.module.ts new file mode 100644 index 000000000..00aaf1c2d --- /dev/null +++ b/src/app/pages/search/organic-entity/organic-entity.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 { OrganicEntityPageRoutingModule } from './organic-entity-routing.module'; + +import { OrganicEntityPage } from './organic-entity.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + OrganicEntityPageRoutingModule + ], + declarations: [OrganicEntityPage] +}) +export class OrganicEntityPageModule {} diff --git a/src/app/pages/search/organic-entity/organic-entity.page.html b/src/app/pages/search/organic-entity/organic-entity.page.html new file mode 100644 index 000000000..084aa573b --- /dev/null +++ b/src/app/pages/search/organic-entity/organic-entity.page.html @@ -0,0 +1,23 @@ + + +
+ +
+ + + Remetentes + +
+ + +
+
+ +
+
    +
  • + {{ organicEntity.Description }} +
  • +
+
+
diff --git a/src/app/pages/search/organic-entity/organic-entity.page.scss b/src/app/pages/search/organic-entity/organic-entity.page.scss new file mode 100644 index 000000000..1623ab266 --- /dev/null +++ b/src/app/pages/search/organic-entity/organic-entity.page.scss @@ -0,0 +1,39 @@ +.main-header{ + display: flex; + align-items: center; +} +.icon{ + color: #797979; + width: 45px; + height: 45px; + display: flex; + justify-content: center; + font-size: 25px; + align-items: center; +} + +.main-container{ + padding: 0px 20px; + .input-text { + margin-top: 20px; + width: 100%; + height: 45px; + border-radius: 5px; + border: 1px solid #ebebeb; + } + ul{ + padding: 0px; + margin: 0px; + padding-top: 10px; + li{ + padding-top: 5px; + padding-bottom: 10px; + margin: 0px; + padding-bottom: 10px; + border-bottom: 1px solid #ebebeb; + list-style: none; + font-family: Roboto; + font-size: 15px; + } + } + } \ No newline at end of file diff --git a/src/app/pages/search/organic-entity/organic-entity.page.spec.ts b/src/app/pages/search/organic-entity/organic-entity.page.spec.ts new file mode 100644 index 000000000..26fcdc6ae --- /dev/null +++ b/src/app/pages/search/organic-entity/organic-entity.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { OrganicEntityPage } from './organic-entity.page'; + +describe('OrganicEntityPage', () => { + let component: OrganicEntityPage; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ OrganicEntityPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(OrganicEntityPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/search/organic-entity/organic-entity.page.ts b/src/app/pages/search/organic-entity/organic-entity.page.ts new file mode 100644 index 000000000..55e4a521b --- /dev/null +++ b/src/app/pages/search/organic-entity/organic-entity.page.ts @@ -0,0 +1,58 @@ +import { Component, OnInit } from '@angular/core'; +import { ModalController } from '@ionic/angular'; +import { from } from 'rxjs'; +import { OrganicEntityService } from 'src/app/services/organic-entity.service'; +import { OrganicEntity } from 'src/app/models/organic-entity.model'; + +@Component({ + selector: 'app-organic-entity', + templateUrl: './organic-entity.page.html', + styleUrls: ['./organic-entity.page.scss'], +}) +export class OrganicEntityPage implements OnInit { + + organicEntities: OrganicEntity[]; + showOrganicEntities: OrganicEntity[]; + findEntity: string; + + + constructor(private modalController:ModalController, + private OrganicEntityService: OrganicEntityService) { + + } + + ngOnInit() { + this.getOrganicEntity(); + } + + + getOrganicEntity(){ + this.OrganicEntityService.getOrganicEntity().subscribe(res=>{ + console.log(res) + this.organicEntities = res; + }); + } + + filterContact(){ + + const findEntity = this.findEntity.toLowerCase(); + + const entities = this.organicEntities.filter((Entity) => { + + if (Entity.Description.toLowerCase().indexOf(findEntity) == 0){ + return true; + } + + }); + + this.showOrganicEntities = entities; + } + + selectOrganicEntidy(selectedOraganicEntit: string){ + this.close(selectedOraganicEntit) + } + + close(username: string){ + this.modalController.dismiss(username); + } +} diff --git a/src/app/pages/search/search-routing.module.ts b/src/app/pages/search/search-routing.module.ts index 839ff8092..b12bf9b5b 100644 --- a/src/app/pages/search/search-routing.module.ts +++ b/src/app/pages/search/search-routing.module.ts @@ -15,6 +15,10 @@ const routes: Routes = [ { path: 'filter', loadChildren: () => import('./filter/filter.module').then( m => m.FilterPageModule) + }, + { + path: 'organic-entity', + loadChildren: () => import('./organic-entity/organic-entity.module').then( m => m.OrganicEntityPageModule) } ]; diff --git a/src/app/pages/search/search.page.html b/src/app/pages/search/search.page.html index 55ab2697b..abb5201fd 100644 --- a/src/app/pages/search/search.page.html +++ b/src/app/pages/search/search.page.html @@ -61,7 +61,7 @@
- +
@@ -106,7 +106,8 @@

Order por:Mais Recente

- + +
diff --git a/src/app/pages/search/search.page.ts b/src/app/pages/search/search.page.ts index bab5bbef7..54cb5ec48 100644 --- a/src/app/pages/search/search.page.ts +++ b/src/app/pages/search/search.page.ts @@ -7,6 +7,9 @@ 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 { NgModel } from '@angular/forms'; @Component({ selector: 'app-search', templateUrl: './search.page.html', @@ -20,6 +23,7 @@ export class SearchPage implements OnInit { private searchSender: string; private searchOrganicEntiry: string; private searchDocTypeId: string; + private ordinance: string; searchCategories: SearchCategory[]; showSearchDocuments: SearchDocument[]; @@ -52,7 +56,7 @@ export class SearchPage implements OnInit { constructor(private modalController: ModalController, private search: SearchService) { - + this.ordinance = "recent"; } ngOnInit() { @@ -62,6 +66,10 @@ export class SearchPage implements OnInit { } + changeOrder(order: string){ + this.ordinance = order; + } + sortArrayISODate(myArray: any){ return myArray.sort(function(a, b) { return (a.Data < b.Data) ? -1 : ((a.Data > b.Data) ? 1 : 0); @@ -129,12 +137,6 @@ export class SearchPage implements OnInit { */ showHideAdvanceSearch(show:boolean) { this.showAdvanceSearch = show; - /* Clear inputs */ - this.searchDocumentDate = ""; - this.searchSender = ""; - this.searchOrganicEntiry = ""; - this.searchDocTypeId = ""; - this.searchSubject = ""; } async openAdvanceSearchSelection() { @@ -146,7 +148,30 @@ export class SearchPage implements OnInit { } }); - return await modal.present(); + await modal.present(); + + + modal.onDidDismiss().then((data) => { + this.searchSender = data.data; + }); + + } + + + async openOrganicEntitySelection(){ + + const modal = await this.modalController.create({ + component: OrganicEntityPage, + cssClass: 'organicEnity', + componentProps: { + } + }); + + await modal.present(); + + modal.onDidDismiss().then((data) => { + this.searchOrganicEntiry = data.data; + }); } diff --git a/src/app/pages/search/sender/sender.page.html b/src/app/pages/search/sender/sender.page.html index 5164bd49a..928716704 100644 --- a/src/app/pages/search/sender/sender.page.html +++ b/src/app/pages/search/sender/sender.page.html @@ -1,16 +1,21 @@ - + + +
+ +
+ - Remetentes + Remetentes
- +
    -
  • +
  • {{ contact.Name }}
diff --git a/src/app/pages/search/sender/sender.page.scss b/src/app/pages/search/sender/sender.page.scss index 7608d29c6..abda67839 100644 --- a/src/app/pages/search/sender/sender.page.scss +++ b/src/app/pages/search/sender/sender.page.scss @@ -1,3 +1,18 @@ +.main-header{ + display: flex; + align-items: center; +} + +.icon{ + color: #797979; + width: 45px; + height: 45px; + display: flex; + justify-content: center; + font-size: 25px; + align-items: center; +} + .main-container{ padding: 0px 20px; .input-text { diff --git a/src/app/pages/search/sender/sender.page.ts b/src/app/pages/search/sender/sender.page.ts index 1246144d2..be9e73763 100644 --- a/src/app/pages/search/sender/sender.page.ts +++ b/src/app/pages/search/sender/sender.page.ts @@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { ModalController } from '@ionic/angular'; import { ContactsService } from 'src/app/services/contacts.service'; import { EventPerson } from 'src/app/models/eventperson.model'; + @Component({ selector: 'app-sender', templateUrl: './sender.page.html', @@ -12,7 +13,8 @@ export class SenderPage implements OnInit { contacts: EventPerson[]; showContacts: EventPerson[]; - + sender: string; + selectedUser: string; constructor(private modalController:ModalController, private ContactsService: ContactsService) { @@ -28,23 +30,29 @@ export class SenderPage implements OnInit { this.contacts = res; }); } + + filterContact(){ - filterContact(findName){ - console.log(findName) - // const persons = this.contacts.filter((person) => { + const findPerson = this.sender.toLowerCase(); + const persons = this.contacts.filter((person) => { - // if (person.Name.indexOf(findName) == 0){ - // return true; - // } + if (person.Name.toLowerCase().indexOf(findPerson) == 0){ + return true; + } - // }); - - // this.showContacts = persons; + }); + this.showContacts = persons; } - close(){ - this.modalController.dismiss(); + selectUser(username:string){ + console.log(username); + this.selectedUser = username; + this.close(this.selectedUser); + } + + close(username: string){ + this.modalController.dismiss(username); } } diff --git a/src/app/services/organic-entity.service.spec.ts b/src/app/services/organic-entity.service.spec.ts new file mode 100644 index 000000000..29bef2e16 --- /dev/null +++ b/src/app/services/organic-entity.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { OrganicEntityService } from './organic-entity.service'; + +describe('OrganicEntityService', () => { + let service: OrganicEntityService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(OrganicEntityService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/organic-entity.service.ts b/src/app/services/organic-entity.service.ts new file mode 100644 index 000000000..42f036475 --- /dev/null +++ b/src/app/services/organic-entity.service.ts @@ -0,0 +1,35 @@ +import { Injectable } from '@angular/core'; +import { EventPerson } from '../models/eventperson.model'; +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'; +import { OrganicEntity } from 'src/app/models/organic-entity.model'; + +@Injectable({ + providedIn: 'root' +}) +export class OrganicEntityService { + + authheader = {}; + 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); + } + + getOrganicEntity(): Observable{ + + const geturl = environment.apiURL + 'ecm/organic'; + + let options = { + headers: this.headers, + }; + + return this.http.get(`${geturl}`, options); + } +} diff --git a/src/assets/images/icons-arrow-arrow-up.svg b/src/assets/images/icons-arrow-arrow-up.svg new file mode 100644 index 000000000..cce793713 --- /dev/null +++ b/src/assets/images/icons-arrow-arrow-up.svg @@ -0,0 +1,11 @@ + + + + + + + + + + +