Finished UI of:

1-publication-view pag
2-gallery page
This commit is contained in:
Tiago Kayaya
2020-12-02 15:08:45 +01:00
parent 2c7b72a84a
commit 99272eb274
24 changed files with 583 additions and 107 deletions
@@ -1,9 +1,57 @@
<ion-header>
<ion-toolbar>
<ion-title>gallery</ion-title>
</ion-toolbar>
<ion-header class="ion-no-border">
<ion-toolbar class="ion-no-border bg-blue">
<div class="div-top-header">
<div class="div-search">
<ion-icon src='assets/images/icons-search.svg'></ion-icon>
</div>
<div class="div-logo">
<img src='assets/images/logo-no-bg.png' alt='logo'>
</div>
<div class="div-profile">
<ion-icon src='assets/images/icons-profile.svg'></ion-icon>
</div>
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="content-top"></div>
<div class="content-container">
<div class="title-content">
<div class="div-title">
<ion-label class="title"> Galeria de fotos</ion-label>
</div>
</div>
<div class="gallery-items">
<ion-list>
<div class="gallery-item">
<img src='assets/images/icons-tirar-foto.svg'>
</div>
<div class="gallery-item">
<img src='assets/images/logo.png'>
</div>
<div class="gallery-item">
<img src='assets/images/icons-profile.svg'>
</div>
<div class="gallery-item">
<img src='assets/images/icons-search.svg'>
</div>
</ion-list>
</div>
</div>
</ion-content>
<ion-footer>
<ion-toolbar class="footer-toolbar">
<ion-buttons slot="start">
<ion-button class="btn-cancel" fill="clear" color="#e0e9ee" (click)="cancel()">
<ion-label>Cancelar</ion-label>
</ion-button>
</ion-buttons>
<ion-buttons slot="end">
<ion-button class="btn-ok" fill="clear" color="#fff" (click)="save()">
<ion-label>Selecionar</ion-label>
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-footer>
@@ -0,0 +1,92 @@
:host{
background: #0782c9;
}
ion-content{
--background: transparent;
transform: translate3d(0, 5px, 0);
--border-radius: 30px;
}
ion-footer{
background: #fff;
}
ion-toolbar{
/* --background:#0782c9; */
border-width: 0 !important;
}
.div-top-header{
width: 400px;
margin: 0 auto;
background-color: #0782c9;
overflow: auto;
padding-top: 15px;
border: 0!important;
}
.div-search{
font-size: 45px;
float: left;
margin: 0 0 0 10px
}
.div-logo{
background: transparent;
width: 140px;
margin: 5px 0 0px 71px;
float: left;
}
.div-logo img{
width: 100%;
}
.div-profile{
font-size: 45px;
float: right;
margin-right: 10px;
}
.content-top{
width: 344px;
background: #f3f2f2;
height: 20px;
margin: 0 auto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
}
.content-container{
width: 100%;
margin:0 auto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background: #ffffff;
height: 100%;
box-shadow: 0px 0px 18px rgba(0, 0, 0, 0.6);
padding: 25px 20px 0 20px;
overflow: auto;
}
.title-content{
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
}
.div-title{
width: 270px;
/* padding: 0!important; */
float: left;
margin: 2.5px 0 0 5px;
}
.title{
font-size: 25px;
}
.gallery-items{
width: 360px;
margin: 0 auto;
}
.gallery-item{
width: 118px;
height: 118px;
float: left;
overflow: hidden;
margin: 1px;
border: 1px solid #ccc;
}
.gallery-item img{
width: 100%;
height: 100%;
}
@@ -1,4 +1,5 @@
import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
@Component({
selector: 'app-gallery',
@@ -7,9 +8,15 @@ import { Component, OnInit } from '@angular/core';
})
export class GalleryPage implements OnInit {
constructor() { }
constructor(private modalController: ModalController,) { }
ngOnInit() {
}
cancel(){
this.modalController.dismiss();
}
save(){
}
}
@@ -1,14 +1,28 @@
<ion-header class="ion-no-border">
<ion-toolbar>
<div class="title-content">
<div class="div-title">
<ion-label class="title">Nova Ação</ion-label>
</div>
<ion-toolbar class="ion-no-border bg-blue">
<div class="div-top-header">
<div class="div-search">
<ion-icon src='assets/images/icons-search.svg'></ion-icon>
</div>
</ion-toolbar>
<div class="div-logo">
<img src='assets/images/logo-no-bg.png' alt='logo'>
</div>
<div class="div-profile">
<ion-icon src='assets/images/icons-profile.svg'></ion-icon>
</div>
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="content-top"></div>
<div class="content-container">
<div class="title-content">
<div class="div-title">
<ion-label class="title"> Nova Ação</ion-label>
</div>
</div>
<div class="ion-item-container">
<ion-input placeholder="Assunto" ></ion-input>
</div>
@@ -41,6 +55,7 @@
</div>
</div>
</div>
</div>
@@ -1,29 +1,80 @@
:host{
background: #0782c9;
}
ion-content{
--background: transparent;
transform: translate3d(0, 5px, 0);
}
ion-toolbar{
--padding-top: 15px;
--background: transparent;
border-width: 0 !important;
}
--background: transparent;
transform: translate3d(0, 5px, 0);
--border-radius: 30px;
}
ion-footer{
background: #fff;
}
ion-toolbar{
/* --background:#0782c9; */
border-width: 0 !important;
}
.div-top-header{
width: 400px;
margin: 0 auto;
background-color: #0782c9;
overflow: auto;
padding-top: 15px;
border: 0!important;
}
.div-search{
font-size: 45px;
float: left;
margin: 0 0 0 10px
}
.div-logo{
background: transparent;
width: 140px;
margin: 5px 0 0px 71px;
float: left;
}
.div-logo img{
width: 100%;
}
.div-profile{
font-size: 45px;
float: right;
margin-right: 10px;
}
.content-top{
width: 344px;
background: #f3f2f2;
height: 20px;
margin: 0 auto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
}
.content-container{
width: 100%;
margin:0 auto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background: #ffffff;
height: 100%;
box-shadow: 0px 0px 18px rgba(0, 0, 0, 0.6);
padding: 25px 20px 0 20px;
overflow: auto;
}
.title-content{
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
}
.div-title{
width: 221px;
/* padding: 0!important; */
float: left;
margin: 5px 0 0 5px;
}
.title{
font-size: 25px;
}
.container-div{
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
}
.div-title{
width: 270px;
/* padding: 0!important; */
float: left;
margin: 2.5px 0 0 5px;
}
.title{
font-size: 25px;
}
.container-div{
margin-bottom: 15px;
overflow: auto;
}
@@ -1,19 +1,32 @@
<ion-header class="ion-no-border">
<ion-toolbar>
<ion-toolbar class="ion-no-border bg-blue">
<div class="div-top-header">
<div class="div-search">
<ion-icon src='assets/images/icons-search.svg'></ion-icon>
</div>
<div class="div-logo">
<img src='assets/images/logo-no-bg.png' alt='logo'>
</div>
<div class="div-profile">
<ion-icon src='assets/images/icons-profile.svg'></ion-icon>
</div>
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="content-top"></div>
<div class="content-container">
<div class="title-content">
<div class="div-title">
<ion-label class="title">{{publicationTitle}}</ion-label>
</div>
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<div *ngIf="publicationType=='2'" class="ion-item-container">
<div *ngIf="publicationType!='1'" class="ion-item-container">
<ion-input placeholder="Título" ></ion-input>
</div>
<div *ngIf="publicationType=='2'" class="container-div">
<div *ngIf="publicationType!='1'" 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>
@@ -36,7 +49,7 @@
</div>
<div class="ion-item-container-no-border">
<ion-label>
<ion-label (click)="openGallery()">
<div class="attach-icon">
<ion-icon src="assets/images/icons-add-photos.svg"></ion-icon>
</div>
@@ -45,7 +58,7 @@
</div>
</ion-label>
</div>
</div>
</ion-content>
<ion-footer class="ion-no-border">
@@ -1,29 +1,79 @@
:host{
background: #0782c9;
}
ion-content{
--background: transparent;
transform: translate3d(0, 5px, 0);
--padding-start: 20px;
--padding-end: 20px;
}
ion-toolbar{
--padding-top: 15px;
--background: transparent;
border-width: 0 !important;
}
--background: transparent;
transform: translate3d(0, 5px, 0);
--border-radius: 30px;
}
ion-footer{
background: #fff;
}
ion-toolbar{
/* --background:#0782c9; */
border-width: 0 !important;
}
.div-top-header{
width: 400px;
margin: 0 auto;
background-color: #0782c9;
overflow: auto;
padding-top: 15px;
border: 0!important;
}
.div-search{
font-size: 45px;
float: left;
margin: 0 0 0 10px
}
.div-logo{
background: transparent;
width: 140px;
margin: 5px 0 0px 71px;
float: left;
}
.div-logo img{
width: 100%;
}
.div-profile{
font-size: 45px;
float: right;
margin-right: 10px;
}
.content-top{
width: 344px;
background: #f3f2f2;
height: 20px;
margin: 0 auto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
}
.content-container{
width: 100%;
margin:0 auto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background: #ffffff;
height: 100%;
box-shadow: 0px 0px 18px rgba(0, 0, 0, 0.6);
padding: 25px 20px 0 20px;
overflow: auto;
}
.title-content{
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
}
.div-title{
width: 100%;
float: left;
margin: 5px 0 0 5px;
}
.title{
font-size: 25px;
}
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
}
.div-title{
width: 270px;
/* padding: 0!important; */
float: left;
margin: 2.5px 0 0 5px;
}
.title{
font-size: 25px;
}
.container-div{
margin-bottom: 15px;
overflow: auto;
@@ -1,5 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular';
import { GalleryPage } from '../gallery/gallery.page';
@Component({
selector: 'app-new-publication',
@@ -30,9 +31,24 @@ export class NewPublicationPage implements OnInit {
if(this.publicationType == '1'){
this.publicationTitle = 'Nova Publicação Rápida'
}
else{
else if(this.publicationType == '2'){
this.publicationTitle = 'Nova Publicação'
}
else if(this.publicationType == '3'){
this.publicationTitle = 'Editar Publicação'
}
}
async openGallery() {
const modal = await this.modalController.create({
component: GalleryPage,
componentProps:{
},
cssClass: 'new-publication',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
}
}
@@ -1,9 +0,0 @@
<ion-header>
<ion-toolbar>
<ion-title>publication-detail</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
@@ -1,15 +0,0 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-publication-detail',
templateUrl: './publication-detail.page.html',
styleUrls: ['./publication-detail.page.scss'],
})
export class PublicationDetailPage implements OnInit {
constructor() { }
ngOnInit() {
}
}
@@ -20,13 +20,18 @@ const routes: Routes = [
path: 'new-action',
loadChildren: () => import('./new-action/new-action.module').then( m => m.NewActionPageModule)
},
{
path: 'publication-detail',
loadChildren: () => import('./publication-detail/publication-detail.module').then( m => m.PublicationDetailPageModule)
},
{
path: 'view-publications',
loadChildren: () => import('./view-publications/view-publications.module').then( m => m.ViewPublicationsPageModule)
children: [
{
path:'',
loadChildren: ()=> import('./view-publications/view-publications.module').then(m => m.ViewPublicationsPageModule)
},
{
path:'publication-detail',
loadChildren: ()=> import('./view-publications/publication-detail/publication-detail.module').then(m => m.PublicationDetailPageModule)
},
]
}
];
@@ -0,0 +1,53 @@
<ion-header class="ion-no-border">
<ion-toolbar class="ion-no-border bg-blue">
<div class="div-top-header">
<div class="div-search">
<ion-icon src='assets/images/icons-search.svg'></ion-icon>
</div>
<div class="div-logo">
<img src='assets/images/logo-no-bg.png' alt='logo'>
</div>
<div class="div-profile">
<ion-icon src='assets/images/icons-profile.svg'></ion-icon>
</div>
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="content-top"></div>
<div class="content-container">
<div class="title-content">
<div class="back-icon">
<ion-icon [routerLink]="['/publications/view-publications']" slot="end" src='assets/images/icons-arrow-arrow-left.svg'></ion-icon>
</div>
<div class="div-title">
<ion-label class="title"> Aterragem em Maputo</ion-label>
<p class="post-data">Há 1h atrás</p>
</div>
</div>
<div class="post-item">
<div class="post-img">
<img src='assets/images/logo.png' alt='image'>
</div>
<div class="post-description">
<p>Presidente João Lourenço chega a Maputo para investidura de Filipe Nyusi como presidente de Moçambique</p>
</div>
</div>
</div>
</ion-content>
<ion-footer>
<ion-toolbar class="footer-toolbar">
<ion-buttons slot="start">
<ion-button class="btn-delete" fill="clear" color="#ffe0e0" (click)="deletePost()">
<ion-label>Eliminar</ion-label>
</ion-button>
</ion-buttons>
<ion-buttons slot="end">
<ion-button class="btn-ok" fill="clear" color="#fff" (click)="editPost('3')">
<ion-label>Editar</ion-label>
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-footer>
@@ -0,0 +1,82 @@
:host{
background: #0782c9;
}
ion-content{
--background: transparent;
transform: translate3d(0, 5px, 0);
--border-radius: 30px;
}
ion-footer{
background: #fff;
}
ion-toolbar{
/* --background:#0782c9; */
border-width: 0 !important;
}
.div-top-header{
width: 400px;
margin: 0 auto;
background-color: #0782c9;
overflow: auto;
padding-top: 15px;
border: 0!important;
}
.div-search{
font-size: 45px;
float: left;
margin: 0 0 0 10px
}
.div-logo{
background: transparent;
width: 140px;
margin: 5px 0 0px 71px;
float: left;
}
.div-logo img{
width: 100%;
}
.div-profile{
font-size: 45px;
float: right;
margin-right: 10px;
}
.content-top{
width: 344px;
background: #f3f2f2;
height: 20px;
margin: 0 auto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
}
.content-container{
width: 100%;
margin:0 auto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background: #ffffff;
height: 100%;
box-shadow: 0px 0px 18px rgba(0, 0, 0, 0.6);
padding: 25px 20px 0 20px;
overflow: auto;
}
.title-content{
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
}
.back-icon{
width: auto;
float: left;
font-size: 35px;
overflow: auto;
}
.div-title{
width: 270px;
/* padding: 0!important; */
float: left;
margin: 2.5px 0 0 5px;
}
.title{
font-size: 25px;
}
@@ -0,0 +1,34 @@
import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { NewPublicationPage } from '../../new-publication/new-publication.page';
@Component({
selector: 'app-publication-detail',
templateUrl: './publication-detail.page.html',
styleUrls: ['./publication-detail.page.scss'],
})
export class PublicationDetailPage implements OnInit {
constructor(private modalController: ModalController,) { }
ngOnInit() {
}
deletePost(){
}
async editPost(publicationType:any) {
const modal = await this.modalController.create({
component: NewPublicationPage,
componentProps:{
publicationType: publicationType,
},
cssClass: 'new-publication',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
}
}
@@ -7,6 +7,10 @@ const routes: Routes = [
{
path: '',
component: ViewPublicationsPage
},
{
path: 'publication-detail',
loadChildren: () => import('./publication-detail/publication-detail.module').then( m => m.PublicationDetailPageModule)
}
];
@@ -32,7 +32,8 @@
</div>
</div>
<ion-list>
<div class="post-item">
<div class="post-item"
[routerLink]="['/publications/view-publications/publication-detail']">
<div class="post-img">
<img src='assets/images/logo.png' alt='image'>
</div>
@@ -39,7 +39,7 @@
margin-right: 10px;
}
.content-top{
width: 90%;
width: 344px;
background: #f3f2f2;
height: 20px;
margin: 0 auto;
@@ -53,7 +53,7 @@
border-top-right-radius: 25px;
background: #ffffff;
height: 100%;
box-shadow: 20px 10px 18px #888888;
box-shadow: 0px 0px 18px rgba(0, 0, 0, 0.6);
padding: 25px 20px 0 20px;
overflow: auto;
}
@@ -74,7 +74,7 @@
width: 221px;
/* padding: 0!important; */
float: left;
margin: 5px 0 0 5px;
margin: 2.5px 0 0 5px;
}
.title{
font-size: 25px;