Styled book-meeting-modal

This commit is contained in:
Tiago Kayaya
2020-11-10 16:44:38 +01:00
parent 247c6e0a51
commit 87d643f451
19 changed files with 628 additions and 44 deletions
@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { BookMeetingModalPage } from './book-meeting-modal.page';
const routes: Routes = [
{
path: '',
component: BookMeetingModalPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class BookMeetingModalPageRoutingModule {}
@@ -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 { BookMeetingModalPageRoutingModule } from './book-meeting-modal-routing.module';
import { BookMeetingModalPage } from './book-meeting-modal.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
BookMeetingModalPageRoutingModule
],
declarations: [BookMeetingModalPage]
})
export class BookMeetingModalPageModule {}
@@ -0,0 +1,102 @@
<ion-content>
<ion-item lines="none">
<ion-label class="title">Convocar Reunião</ion-label>
</ion-item>
<div class="ion-item-container">
<ion-input placeholder="Assunto"></ion-input>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Venue"></ion-input>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Data início"></ion-input>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Data fim"></ion-input>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select value="Nunca" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option Pessoal="Reunião">Nunca</ion-select-option>
<ion-select-option Oficial="Viagem">Sim</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Intervenientes"></ion-input>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-people-cc.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Com Conhecimento"></ion-input>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Detalhes"></ion-input>
</div>
</div>
</div>
</ion-content>
<ion-footer>
<ion-toolbar>
<ion-item lines="none">
<p>
<ion-button class="button-cancel" shape="round" (click)="cancelTask()">Cancelar</ion-button>
</p>
<p>
<ion-button class="button-save" shape="round" (click)="saveTask()">Gravar</ion-button>
</p>
</ion-item>
</ion-toolbar>
</ion-footer>
@@ -0,0 +1,69 @@
.title{
font-family: Roboto;
font-size: 25px;
font-weight: normal;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
color: #000000;
margin: 28px 0 8px 5px;
}
.container-div{
margin-bottom: 15px;
overflow: auto;
}
.ion-item-container{
width: 360px;
margin: 15px auto;
border: 1px solid #ebebeb;
border-radius: 5px;
padding-left: 10px;
}
.ion-item-class-2{
width: 360px;
margin: 0px auto;
}
.ion-icon-class{
width: 45px;
height: 45px;
float: left;
padding: 10px;
font-size: 25px;
}
.ion-input-class{
width: 315px;
height: 45px;
border: 1px solid #ebebeb;
border-radius: 5px;
padding-left: 10px;
float: left;
}
.container-footer{
margin:0 auto;
overflow: auto;
}
.button-cancel {
width: 170px;
height: 44px;
border-radius: 22.5px;
--background: #e0e9ee;
--color: #061b52;
margin:10px;
}
.button-save {
width: 170px;
height: 44px;
border-radius: 22.5px;
--background: #42b9fe;
--color:#ffffff;
margin:10px;
}
.text-input{
width: 100%;
border: 1px solid #ebebeb;
margin: 0px 15px 15px 0px;
padding: 0 !important;
border-radius: 5px;
}
@@ -0,0 +1,24 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { BookMeetingModalPage } from './book-meeting-modal.page';
describe('BookMeetingModalPage', () => {
let component: BookMeetingModalPage;
let fixture: ComponentFixture<BookMeetingModalPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ BookMeetingModalPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(BookMeetingModalPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,29 @@
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { ModalController } from '@ionic/angular';
@Component({
selector: 'app-book-meeting-modal',
templateUrl: './book-meeting-modal.page.html',
styleUrls: ['./book-meeting-modal.page.scss'],
})
export class BookMeetingModalPage implements OnInit {
constructor(private modalController: ModalController,
private router:Router,) { }
ngOnInit() {
}
close(){
this.router.navigate(['/home/gabinete-digital/expediente']);
this.modalController.dismiss(null);
}
cancelTask(){
this.modalController.dismiss(null);
}
saveTask(){
}
}
@@ -1,9 +1,84 @@
<ion-header>
<ion-toolbar>
<ion-title>expedient-task-modal</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-item lines="none">
<ion-label class="title">Solicitar Parecer</ion-label>
</ion-item>
<div class="ion-item-container">
<ion-input placeholder="Assunto"></ion-input>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input class="add-border" placeholder="Descrição"></ion-input>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select value="Normal" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option Pessoal="Reunião">Normal</ion-select-option>
<ion-select-option Oficial="Viagem">Urgente</ion-select-option>
<ion-select-option Oficial="Viagem">Muito Urgente</ion-select-option>
<ion-select-option Oficial="Viagem">Urgentíssimo</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<ion-item lines="none">
<ion-button slot="end"><ion-icon name="people"></ion-icon></ion-button>
<ion-list>
<ion-item lines="none">segpr@exemplo.gov.ao</ion-item>
<ion-item lines="none">segpr@exemplo.gov.ao</ion-item>
</ion-list>
</ion-item>
<!-- <ion-input class="add-border" placeholder="Adicionar Destinatários"></ion-input> -->
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-people-cc.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input class="add-border" placeholder="Adicionar CC"></ion-input>
</div>
</div>
</div>
<div class="ion-item-container-no-border">
<ion-item lines="none">
<ion-icon slot="start" src="assets/images/icons-attach-doc.svg"></ion-icon>
<ion-label>Anexar Documentos</ion-label>
</ion-item>
</div>
</ion-content>
<ion-footer>
<ion-toolbar>
<ion-item lines="none">
<p>
<ion-button class="button-cancel" shape="round" (click)="cancelTask()">Cancelar</ion-button>
</p>
<p>
<ion-button class="button-save" shape="round" (click)="saveTask()">Guardar</ion-button>
</p>
</ion-item>
</ion-toolbar>
</ion-footer>
@@ -0,0 +1,73 @@
.title{
font-family: Roboto;
font-size: 25px;
font-weight: normal;
font-stretch: normal;
font-style: normal;
line-height: normal;
letter-spacing: normal;
color: #000000;
margin: 28px 0 8px 8px;
}
.container-div{
margin-bottom: 15px;
overflow: auto;
}
.ion-item-container{
width: 360px;
margin: 15px auto;
border: 1px solid #ebebeb;
border-radius: 5px;
padding-left: 5px;
}
.ion-item-container-no-border{
width: 360px;
margin: 15px auto;
}
.ion-item-class-2{
width: 360px;
margin: 0px auto;
}
.ion-icon-class{
width: 45px;
height: 45px;
float: left;
padding: 10px;
font-size: 25px;
}
ion-select{
padding-left: 5px;
margin-left: 0;
}
.ion-input-class{
width: 315px;
height: 45px;
border: 1px solid #ebebeb;
border-radius: 5px;
padding-left: 5px;
padding-right: 10px;
float: left;
}
.ion-input-class-no-height{
border: 1px solid red;
}
.container-footer{
margin:0 auto;
overflow: auto;
}
.button-cancel {
width: 170px;
height: 44px;
border-radius: 22.5px;
--background: #e0e9ee;
--color: #061b52;
margin:10px;
}
.button-save {
width: 170px;
height: 44px;
border-radius: 22.5px;
--background: #42b9fe;
--color:#ffffff;
margin:10px;
}
@@ -1,4 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { ModalController } from '@ionic/angular';
@Component({
selector: 'app-expedient-task-modal',
@@ -7,9 +9,21 @@ import { Component, OnInit } from '@angular/core';
})
export class ExpedientTaskModalPage implements OnInit {
constructor() { }
constructor(private modalController: ModalController,
private router:Router,) { }
ngOnInit() {
}
close(){
this.router.navigate(['/home/gabinete-digital/expediente']);
this.modalController.dismiss(null);
}
cancelTask(){
this.modalController.dismiss(null);
}
saveTask(){
}
}
@@ -20,23 +20,23 @@
</ion-header>
<ion-content>
<ion-list>
<ion-item disabled>
<ion-icon name="document" slot="start"></ion-icon>
<ion-label>Apresentação de OGE 2020</ion-label>
</ion-item>
<ion-item (click)="dispatchExpedient()">
<ion-item (click)="openExpedientActionsModal()">
<ion-icon name="documents" slot="start"></ion-icon>
<ion-label>Efectuar Despacho</ion-label>
</ion-item>
<ion-item disabled>
<ion-item (click)="openExpedientActionsModal()">
<ion-icon name="arrow-undo" slot="start"></ion-icon>
<ion-label>Pedido de Parecer</ion-label>
</ion-item>
<ion-item disabled>
<ion-item (click)="openExpedientActionsModal()">
<ion-icon name="arrow-redo" slot="start"></ion-icon>
<ion-label>Pedido de Deferimento</ion-label>
</ion-item>
<ion-item disabled>
<ion-item (click)="openBookMeetingModal()">
<ion-icon name="calendar" slot="start"></ion-icon>
<ion-label>Marcar reunião</ion-label>
</ion-item>
<ion-item (click)="discartExpedient()">
<ion-icon name="trash" slot="start"></ion-icon>
<ion-label>Descartar</ion-label>
</ion-item>
@@ -44,10 +44,6 @@
<ion-icon name="paper-plane" slot="start"></ion-icon>
<ion-label>Enviar para pendentes</ion-label>
</ion-item>
<ion-item disabled>
<ion-icon name="calendar" slot="start"></ion-icon>
<ion-label>Marcar reunião</ion-label>
</ion-item>
</ion-list>
</ion-content>
</ion-menu>
@@ -7,8 +7,10 @@ import { DailyWorkTask } from '../../../../models/dailyworktask.model';
import { ActivatedRoute } from '@angular/router';
import { formatDate } from '@angular/common';
import { Event } from '../../../../models/event.model';
import { MenuController } from '@ionic/angular';
import { MenuController, ModalController } from '@ionic/angular';
import { AlertService } from 'src/app/services/alert.service';
import { ExpedientTaskModalPage } from '../expedient-task-modal/expedient-task-modal.page';
import { BookMeetingModalPage } from '../book-meeting-modal/book-meeting-modal.page';
@Component({
selector: 'app-expediente-detail',
@@ -23,6 +25,7 @@ export class ExpedienteDetailPage implements OnInit {
private attachments: AttachmentsService,
private events: EventsService,
private menu: MenuController,
private modalController: ModalController,
private alertService: AlertService) { }
task: DailyWorkTask;
@@ -89,4 +92,35 @@ export class ExpedienteDetailPage implements OnInit {
dispatchExpedient(){
this.alertService.presentAlert('Funcionalidade em desenvolvimento');
}
async openExpedientActionsModal(eventSerialNumber){
const modal = await this.modalController.create({
component: ExpedientTaskModalPage,
componentProps:{
serialNumber: eventSerialNumber,
},
cssClass: 'expedient-task-modal',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
}
discartExpedient(){
}
async openBookMeetingModal(eventSerialNumber){
const modal = await this.modalController.create({
component: BookMeetingModalPage,
componentProps:{
serialNumber: eventSerialNumber,
},
cssClass: 'book-meeting-modal',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
}
}
@@ -1,26 +1,30 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ExpedientePage } from './expediente.page';
const routes: Routes = [
{
path: '',
component: ExpedientePage
},
{
path: 'expediente-detail',
loadChildren: () => import('./expediente-detail/expediente-detail.module').then( m => m.ExpedienteDetailPageModule)
},
{
path: 'expedient-task-modal',
loadChildren: () => import('./expedient-task-modal/expedient-task-modal.module').then( m => m.ExpedientTaskModalPageModule)
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ExpedientePage } from './expediente.page';
const routes: Routes = [
{
path: '',
component: ExpedientePage
},
{
path: 'expediente-detail',
loadChildren: () => import('./expediente-detail/expediente-detail.module').then( m => m.ExpedienteDetailPageModule)
},
{
path: 'expedient-task-modal',
loadChildren: () => import('./expedient-task-modal/expedient-task-modal.module').then( m => m.ExpedientTaskModalPageModule)
},
{
path: 'book-meeting-modal',
loadChildren: () => import('./book-meeting-modal/book-meeting-modal.module').then( m => m.BookMeetingModalPageModule)
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class ExpedientePageRoutingModule {}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})