diff --git a/src/app/pages/publications/new-publication/new-publication.page.ts b/src/app/pages/publications/new-publication/new-publication.page.ts
index 729e8206c..1e9d1ac94 100644
--- a/src/app/pages/publications/new-publication/new-publication.page.ts
+++ b/src/app/pages/publications/new-publication/new-publication.page.ts
@@ -53,7 +53,8 @@ export class NewPublicationPage implements OnInit {
private publications: PublicationsService,
private camera: Camera,
) {
-
+
+ alert('!!!!!')
this.publicationType = this.navParams.get('publicationType');
this.folderId = this.navParams.get('folderId');
this.publicationTitle = 'Nova Publicação';
diff --git a/src/app/pages/publications/publication-detail/publication-detail.page.scss b/src/app/pages/publications/publication-detail/publication-detail.page.scss
index 8de88c1b0..dd3f55ae5 100644
--- a/src/app/pages/publications/publication-detail/publication-detail.page.scss
+++ b/src/app/pages/publications/publication-detail/publication-detail.page.scss
@@ -1,16 +1,12 @@
-: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{
@@ -55,7 +51,6 @@
border-top-right-radius: 25px;
background: #ffffff;
height: 100%;
- box-shadow: 0px 0px 18px rgba(0, 0, 0, 0.6);
padding: 25px 0px 0 0px;
overflow: auto;
}
diff --git a/src/app/pages/publications/publications.module.ts b/src/app/pages/publications/publications.module.ts
index f703cefa2..6c1a454e8 100644
--- a/src/app/pages/publications/publications.module.ts
+++ b/src/app/pages/publications/publications.module.ts
@@ -9,6 +9,9 @@ import { PublicationsPageRoutingModule } from './publications-routing.module';
import { PublicationsPage } from './publications.page';
import { SharedModule } from 'src/app/shared/shared.module';
import { ViewPublicationsPage } from 'src/app/shared/publication/view-publications/view-publications.page';
+import { NewPublicationPage } from 'src/app/shared/publication/new-publication/new-publication.page';
+import { PublicationDetailPage } from 'src/app/shared/publication/view-publications/publication-detail/publication-detail.page';
+import { NewActionPage } from 'src/app/shared/publication/new-action/new-action.page';
@NgModule({
@@ -21,7 +24,10 @@ import { ViewPublicationsPage } from 'src/app/shared/publication/view-publicatio
],
declarations: [
PublicationsPage,
- ViewPublicationsPage
+ ViewPublicationsPage,
+ NewPublicationPage,
+ PublicationDetailPage,
+ NewActionPage
]
})
export class PublicationsPageModule {}
diff --git a/src/app/pages/publications/publications.page.html b/src/app/pages/publications/publications.page.html
index f62a31e2f..393148d7e 100644
--- a/src/app/pages/publications/publications.page.html
+++ b/src/app/pages/publications/publications.page.html
@@ -44,10 +44,9 @@
-
+
-
-
+
+
Nenhuma publicação delecionado
+
+
+
+
+
+
+
+
+
diff --git a/src/app/pages/publications/publications.page.scss b/src/app/pages/publications/publications.page.scss
index c182e3f6d..df8c81eb7 100644
--- a/src/app/pages/publications/publications.page.scss
+++ b/src/app/pages/publications/publications.page.scss
@@ -91,7 +91,6 @@ ion-toolbar{
padding: 15px 20px 0 20px;
}
.item{
- width: 360px;
padding: 0 0px 0 0px;
overflow: auto;
margin: 0px auto;
diff --git a/src/app/pages/publications/publications.page.ts b/src/app/pages/publications/publications.page.ts
index afab58fdf..d40727070 100644
--- a/src/app/pages/publications/publications.page.ts
+++ b/src/app/pages/publications/publications.page.ts
@@ -34,9 +34,18 @@ export class PublicationsPage implements OnInit {
desktopComponent: any = {
showViewPublication: false,
+ showAddNewPublication: false,
+ showPublicationDetail: false,
+ showAddActions: false
}
folderId: string;
+ // data set from child component
+ publicationType: any;
+ publicationId: string;
+
+ // from publication details
+ publication: object;
constructor(
private router: Router,
@@ -96,18 +105,26 @@ export class PublicationsPage implements OnInit {
}
async AddPublicationFolder(item:any) {
- const modal = await this.modalController.create({
- component: NewActionPage,
- componentProps:{
- item: item,
- },
- cssClass: 'new-action',
- backdropDismiss: false
- });
- await modal.present();
- modal.onDidDismiss().then(()=>{
- this.doRefresh();
- });
+
+ this.closeDesktopComponent();
+ if(window.innerHeight >= 1024){
+ const modal = await this.modalController.create({
+ component: NewActionPage,
+ componentProps:{
+ item: item,
+ },
+ cssClass: 'new-action',
+ backdropDismiss: false
+ });
+ await modal.present();
+ modal.onDidDismiss().then(()=>{
+ this.doRefresh();
+ });
+ } else {
+ this.desktopComponent.showAddActions = true;
+ }
+
+
}
async viewPublications(folderId: string) {
@@ -137,6 +154,7 @@ export class PublicationsPage implements OnInit {
}
+ this.closeDesktopComponent();
// OpenModal
if( window.innerWidth <= 1024){
@@ -164,4 +182,35 @@ export class PublicationsPage implements OnInit {
}
-}
+ async addNewPublication({publicationType, folderId, publication}){
+
+ this.closeDesktopComponent();
+
+ // propr to add new publication
+ this.publicationType = publicationType;
+ this.folderId = folderId;
+ this.publication = publication;
+
+ this.desktopComponent.showAddNewPublication = true;
+ }
+
+ async openPublicationDetails(publicationId: string){
+
+ this.publicationId = publicationId;
+
+ this.closeDesktopComponent();
+ this.desktopComponent.showPublicationDetail = true;
+
+ }
+
+ async closeDesktopComponent (xx?: any){
+
+ this.desktopComponent = {
+ showViewPublication: false,
+ showAddNewPublication: false,
+ showPublicationDetail: false,
+ showAddActions: false,
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/app/shared/publication/new-action/new-action-routing.module.ts b/src/app/shared/publication/new-action/new-action-routing.module.ts
new file mode 100644
index 000000000..1d4569653
--- /dev/null
+++ b/src/app/shared/publication/new-action/new-action-routing.module.ts
@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { NewActionPage } from './new-action.page';
+
+const routes: Routes = [
+ {
+ path: '',
+ component: NewActionPage
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule],
+})
+export class NewActionPageRoutingModule {}
diff --git a/src/app/shared/publication/new-action/new-action.module.ts b/src/app/shared/publication/new-action/new-action.module.ts
new file mode 100644
index 000000000..466fe5a3a
--- /dev/null
+++ b/src/app/shared/publication/new-action/new-action.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 { NewActionPageRoutingModule } from './new-action-routing.module';
+
+import { NewActionPage } from './new-action.page';
+
+@NgModule({
+ imports: [
+ CommonModule,
+ FormsModule,
+ IonicModule,
+ NewActionPageRoutingModule
+ ],
+ declarations: [NewActionPage]
+})
+export class NewActionPageModule {}
diff --git a/src/app/shared/publication/new-action/new-action.page.html b/src/app/shared/publication/new-action/new-action.page.html
new file mode 100644
index 000000000..40e9946b8
--- /dev/null
+++ b/src/app/shared/publication/new-action/new-action.page.html
@@ -0,0 +1,95 @@
+
+
+
+ Nova Acção
+
+
+
+
+ Viagem
+
+
+ Evento
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/shared/publication/new-action/new-action.page.scss b/src/app/shared/publication/new-action/new-action.page.scss
new file mode 100644
index 000000000..d2a0784bd
--- /dev/null
+++ b/src/app/shared/publication/new-action/new-action.page.scss
@@ -0,0 +1,128 @@
+:host{
+ background: #fff;
+}
+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{
+ 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{
+ 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%;
+ padding: 25px 20px 0 20px;
+ overflow: auto;
+}
+.title-content{
+ margin: 0px auto;
+ overflow: auto;
+ padding: 0 !important;
+}
+.div-title{
+ width: 180px;
+/* padding: 0!important; */
+float: left;
+margin: 2.5px 0 0 5px;
+}
+.title{
+font-size: 25px;
+}
+.container-div{
+ margin-bottom: 15px;
+ overflow: auto;
+ }
+ .ion-item-container{
+ margin: 15px auto;
+ border: 1px solid #ebebeb;
+ border-radius: 5px;
+ padding-left: 10px;
+ }
+ .ion-item-container-no-border{
+ width: 100%;
+ margin: 0px auto;
+ padding: 0 !important;
+ overflow: auto;
+ }
+ .ion-item-class-2{
+ margin: 0px auto;
+ }
+ .ion-icon-class{
+ width: 45px;
+ height: 45px;
+ float: left;
+ padding: 10px;
+ font-size: 25px;
+ }
+ .ion-input-class{
+ height: auto;
+ border: 1px solid #ebebeb;
+ border-radius: 5px;
+ padding-left: 5px;
+ padding-right: 10px;
+ float: left;
+ }
+ .ion-textarea-class{
+ width: 315px;
+ height: auto;
+ border: 1px solid #ebebeb;
+ border-radius: 5px;
+ padding-left: 5px;
+ padding-right: 10px;
+ float: left;
+ }
+ .ion-input-class-no-height{
+ border: 1px solid #ebebeb;
+ border-radius: 5px;
+ overflow: auto;
+ }
+ .actionType{
+ float: right;
+ overflow: auto;
+ border-radius: 30px;
+ }
+ .ion-segment{
+ --background: #0782c9;
+ }
\ No newline at end of file
diff --git a/src/app/shared/publication/new-action/new-action.page.spec.ts b/src/app/shared/publication/new-action/new-action.page.spec.ts
new file mode 100644
index 000000000..7407b0b41
--- /dev/null
+++ b/src/app/shared/publication/new-action/new-action.page.spec.ts
@@ -0,0 +1,24 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { IonicModule } from '@ionic/angular';
+
+import { NewActionPage } from './new-action.page';
+
+describe('NewActionPage', () => {
+ let component: NewActionPage;
+ let fixture: ComponentFixture
;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ NewActionPage ],
+ imports: [IonicModule.forRoot()]
+ }).compileComponents();
+
+ fixture = TestBed.createComponent(NewActionPage);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ }));
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/shared/publication/new-action/new-action.page.ts b/src/app/shared/publication/new-action/new-action.page.ts
new file mode 100644
index 000000000..6b7ab30ee
--- /dev/null
+++ b/src/app/shared/publication/new-action/new-action.page.ts
@@ -0,0 +1,52 @@
+import { Component, EventEmitter, OnInit, Output } from '@angular/core';
+import { ModalController } from '@ionic/angular';
+import { PublicationFolder } from 'src/app/models/publicationfolder';
+import { PublicationsService } from 'src/app/services/publications.service';
+
+@Component({
+ selector: 'app-new-action',
+ templateUrl: './new-action.page.html',
+ styleUrls: ['./new-action.page.scss'],
+})
+export class NewActionPage implements OnInit {
+
+ folder: PublicationFolder;
+ segment:string;
+
+ @Output() closeDesktopComponent= new EventEmitter();
+
+ constructor(
+ private modalController: ModalController,
+ private publication: PublicationsService
+ ) {
+ this.folder = new PublicationFolder();
+ }
+
+ ngOnInit() {
+ this.segment = "Viagem";
+ }
+
+ segmentChanged(ev: any) {
+ console.log(ev.detail.value);
+ }
+
+ save(){
+ this.folder = {
+ ProcessId: null,
+ Description: this.folder.Description,
+ Detail: this.folder.Detail,
+ DateBegin: this.folder.DateBegin,
+ DateEnd: this.folder.DateEnd,
+ ActionType: this.segment,
+ }
+ console.log(this.folder);
+
+ this.publication.CreatePublicationFolder(this.folder);
+ this.close();
+ }
+
+ close(){
+ this.closeDesktopComponent.emit();
+ }
+
+}
diff --git a/src/app/shared/publication/new-publication/new-publication-routing.module.ts b/src/app/shared/publication/new-publication/new-publication-routing.module.ts
new file mode 100644
index 000000000..69521e65c
--- /dev/null
+++ b/src/app/shared/publication/new-publication/new-publication-routing.module.ts
@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { NewPublicationPage } from './new-publication.page';
+
+const routes: Routes = [
+ {
+ path: '',
+ component: NewPublicationPage
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule],
+})
+export class NewPublicationPageRoutingModule {}
diff --git a/src/app/shared/publication/new-publication/new-publication.module.ts b/src/app/shared/publication/new-publication/new-publication.module.ts
new file mode 100644
index 000000000..c91c34b29
--- /dev/null
+++ b/src/app/shared/publication/new-publication/new-publication.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 { NewPublicationPageRoutingModule } from './new-publication-routing.module';
+
+import { NewPublicationPage } from './new-publication.page';
+
+@NgModule({
+ imports: [
+ CommonModule,
+ FormsModule,
+ IonicModule,
+ NewPublicationPageRoutingModule
+ ],
+ declarations: [NewPublicationPage]
+})
+export class NewPublicationPageModule {}
diff --git a/src/app/shared/publication/new-publication/new-publication.page.html b/src/app/shared/publication/new-publication/new-publication.page.html
new file mode 100644
index 000000000..6faa78d0a
--- /dev/null
+++ b/src/app/shared/publication/new-publication/new-publication.page.html
@@ -0,0 +1,86 @@
+
+
+
+ {{publicationTitle}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Fotografia Anexada
+
+
+
+
+
+
+ {{capturedImageTitle}}
+ size
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tirar Fotografia
+
+
+
+
+
+
+
+
+
+
+ Anexar Fotografia
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/shared/publication/new-publication/new-publication.page.scss b/src/app/shared/publication/new-publication/new-publication.page.scss
new file mode 100644
index 000000000..733e5e2d4
--- /dev/null
+++ b/src/app/shared/publication/new-publication/new-publication.page.scss
@@ -0,0 +1,134 @@
+
+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%;
+ padding: 25px 20px 0 20px;
+ overflow: auto;
+}
+.title-content{
+ width: 360px;
+ 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;
+ }
+ .ion-item-container{
+ margin: 15px auto;
+ border: 1px solid #ebebeb;
+ border-radius: 5px;
+ padding-left: 10px;
+ }
+ .ion-item-container-no-border{
+ width: 100%;
+ margin: 0px auto;
+ padding: 0 !important;
+ overflow: auto;
+ }
+ .ion-item-class-2{
+ margin: 0px auto;
+ }
+ .ion-icon-class{
+ width: 45px;
+ height: 45px;
+ float: left;
+ padding: 10px;
+ font-size: 25px;
+ }
+ .ion-textarea-class{
+ height: auto;
+ border: 1px solid #ebebeb;
+ border-radius: 5px;
+ padding-left: 5px;
+ padding-right: 10px;
+ float: left;
+ }
+ .ion-input-class-no-height{
+ border: 1px solid #ebebeb;
+ border-radius: 5px;
+ overflow: auto;
+ }
+
+ .attach-document{
+ font-size: 15px;
+ color: #0d89d1;
+ margin: 5px 5px 20px 10px;
+ padding: 5px;
+ float: left;
+ }
+ .attach-icon{
+ width: 37px;
+ font-size: 35px;
+ float: left;
+ }
+ .attached-title{
+ font-family: Roboto;
+ font-size: 15px;
+ font-weight: bold;
+ font-stretch: normal;
+ font-style: normal;
+ line-height: normal;
+ letter-spacing: normal;
+ color: #000;
+ }
\ No newline at end of file
diff --git a/src/app/shared/publication/new-publication/new-publication.page.spec.ts b/src/app/shared/publication/new-publication/new-publication.page.spec.ts
new file mode 100644
index 000000000..09d8beae8
--- /dev/null
+++ b/src/app/shared/publication/new-publication/new-publication.page.spec.ts
@@ -0,0 +1,24 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { IonicModule } from '@ionic/angular';
+
+import { NewPublicationPage } from './new-publication.page';
+
+describe('NewPublicationPage', () => {
+ let component: NewPublicationPage;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ NewPublicationPage ],
+ imports: [IonicModule.forRoot()]
+ }).compileComponents();
+
+ fixture = TestBed.createComponent(NewPublicationPage);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ }));
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/shared/publication/new-publication/new-publication.page.ts b/src/app/shared/publication/new-publication/new-publication.page.ts
new file mode 100644
index 000000000..bf10a9720
--- /dev/null
+++ b/src/app/shared/publication/new-publication/new-publication.page.ts
@@ -0,0 +1,208 @@
+import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
+import { AlertController, ModalController, NavParams } from '@ionic/angular';
+
+/* import {Plugins, CameraResultType, CameraSource} from '@capacitor/core'; */
+import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
+import { PublicationsService } from 'src/app/services/publications.service';
+import { Publication } from 'src/app/models/publication';
+import { Image } from 'src/app/models/image';
+import { ThrowStmt } from '@angular/compiler';
+import { PhotoService } from 'src/app/services/photo.service';
+//Capacitor
+/* const { Camera } = Plugins; */
+
+//Cordova
+import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
+import { PublicationFolder } from 'src/app/models/publicationfolder';
+import { ViewPublicationsPage } from '../view-publications/view-publications.page';
+import { LoadingService } from 'src/app/services/loading.service';
+
+@Component({
+ selector: 'app-new-publication',
+ templateUrl: './new-publication.page.html',
+ styleUrls: ['./new-publication.page.scss'],
+})
+export class NewPublicationPage implements OnInit {
+ showLoader: boolean;
+ pub: Publication = new Publication();
+ image: Image = new Image();
+
+ publicationTitle:string;
+ imgUrl:any;
+
+ Defaultimage:any = '';
+
+
+ photo: SafeResourceUrl;
+
+ @Input() publication: Publication;
+ @Input() publicationType: string;
+ @Input() folderId: string;
+ @Output() closeDesktopComponent = new EventEmitter();
+
+
+ guestPicture:any;
+
+ capturedImage:any;
+ capturedImageTitle:any;
+
+ constructor(
+ private modalController: ModalController,
+ public photoService: PhotoService,
+ private publications: PublicationsService,
+ private camera: Camera,
+ ) {
+ this.publicationTitle = 'Nova Publicação';
+ }
+
+ ngOnInit() {
+ this.setTitle();
+ this.clear();
+ this.takePicture();
+ }
+ takePicture(){
+ const options: CameraOptions = {
+ quality: 90,
+ destinationType: this.camera.DestinationType.DATA_URL,
+ encodingType: this.camera.EncodingType.JPEG,
+ mediaType: this.camera.MediaType.PICTURE,
+ targetWidth: 720,
+ targetHeight: 720,
+ }
+
+ this.camera.getPicture(options).then((imageData) => {
+ // imageData is either a base64 encoded string or a file URI
+ // If it's base64 (DATA_URL):
+ let base64Image = 'data:image/jpeg;base64,' + imageData;
+ this.capturedImage = imageData;
+ this.capturedImageTitle = new Date().getTime() + '.jpeg';
+ }, (err) => {
+ console.log(err);
+ });
+ }
+
+ getPicture(){
+ const options: CameraOptions = {
+ quality: 90,
+ sourceType: this.camera.PictureSourceType.PHOTOLIBRARY,
+ destinationType: this.camera.DestinationType.DATA_URL,
+ encodingType: this.camera.EncodingType.JPEG,
+ mediaType: this.camera.MediaType.PICTURE,
+ targetWidth: 720,
+ targetHeight: 720,
+ }
+ this.camera.getPicture(options).then((imageData) => {
+ // imageData is either a base64 encoded string or a file URI
+ // If it's base64 (DATA_URL):
+ let base64Image = 'data:image/jpeg;base64,' + imageData;
+ this.capturedImage = imageData;
+ this.capturedImageTitle = new Date().getTime() + '.jpeg';
+ }, (err) => {
+ console.log(err);
+ });
+ }
+
+ async save(){
+ if(this.publicationType == '3'){
+
+ if(this.capturedImage != ''){
+ this.publication = {
+ DateIndex: this.publication.DateIndex,
+ DocumentId:this.publication.DocumentId,
+ ProcessId:this.publication.ProcessId,
+ Title: this.pub.Title,
+ Message: this.pub.Message,
+ DatePublication: this.publication.DatePublication,
+ OriginalFileName: this.capturedImageTitle,
+ FileBase64: this.capturedImage,
+ FileExtension: 'jpeg',
+ }
+ console.log('Edit change image');
+ console.log(this.publication);
+ this.publications.UpdatePublication(this.publication.ProcessId, this.publication);
+ this.closeDesktopComponent.emit();
+ }
+ else{
+ this.publication = {
+ DateIndex: this.publication.DateIndex,
+ DocumentId:this.publication.DocumentId,
+ ProcessId:this.publication.ProcessId,
+ Title: this.pub.Title,
+ Message: this.pub.Message,
+ DatePublication: this.publication.DatePublication,
+ OriginalFileName: this.publication.OriginalFileName,
+ FileBase64: this.publication.FileBase64,
+ FileExtension: 'jpeg',
+ }
+ console.log('Edit - keep image');
+ console.log(this.publication);
+ this.publications.UpdatePublication(this.publication.ProcessId, this.publication);
+ this.closeDesktopComponent.emit();
+ }
+ }
+ else{
+
+ this.publication = {
+ DateIndex: new Date(),
+ DocumentId:null,
+ ProcessId:this.folderId,
+ Title: this.pub.Title,
+ Message: this.pub.Message,
+ DatePublication: new Date(),
+ OriginalFileName: this.capturedImageTitle,
+ FileBase64: this.capturedImage,
+ FileExtension: 'jpeg',
+ }
+
+ console.log(this.publication);
+ this.publications.CreatePublication(this.folderId, this.publication);
+
+ this.closeDesktopComponent.emit();
+ }
+ }
+
+
+ close(){
+ this.closeDesktopComponent.emit('!???____!!');
+ }
+ clear(){
+ this.capturedImage = '';
+ }
+ setTitle(){
+ if(this.publicationType == '1'){
+ this.publicationTitle = 'Nova Publicação Rápida';
+ }
+ else if(this.publicationType == '2'){
+ this.publicationTitle = 'Nova Publicação';
+ }
+ else if(this.publicationType == '3'){
+ this.publicationTitle = 'Editar Publicação';
+ this.pub = this.publication;
+ }
+ }
+
+ /* async openGallery() {
+ const modal = await this.modalController.create({
+ component: GalleryPage,
+ componentProps:{
+ },
+ cssClass: 'new-publication',
+ backdropDismiss: false
+ });
+ await modal.present();
+ modal.onDidDismiss();
+ } */
+
+ /* async takePicture(){
+ const image = await Plugins.Camera.getPhoto({
+ quality: 100,
+ allowEditing: false,
+ resultType: CameraResultType.DataUrl,
+ source: CameraSource.Camera
+ });
+ console.log(image);
+
+ this.photo = this.sanitizer.bypassSecurityTrustResourceUrl(image && (image.dataUrl));
+ } */
+
+}
diff --git a/src/app/shared/publication/view-publications/publication-detail/publication-detail-routing.module.ts b/src/app/shared/publication/view-publications/publication-detail/publication-detail-routing.module.ts
new file mode 100644
index 000000000..d1ed32f55
--- /dev/null
+++ b/src/app/shared/publication/view-publications/publication-detail/publication-detail-routing.module.ts
@@ -0,0 +1,17 @@
+import { NgModule } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { PublicationDetailPage } from './publication-detail.page';
+
+const routes: Routes = [
+ {
+ path: '',
+ component: PublicationDetailPage
+ }
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule],
+})
+export class PublicationDetailPageRoutingModule {}
diff --git a/src/app/shared/publication/view-publications/publication-detail/publication-detail.module.ts b/src/app/shared/publication/view-publications/publication-detail/publication-detail.module.ts
new file mode 100644
index 000000000..116453af2
--- /dev/null
+++ b/src/app/shared/publication/view-publications/publication-detail/publication-detail.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 { PublicationDetailPageRoutingModule } from './publication-detail-routing.module';
+
+import { PublicationDetailPage } from './publication-detail.page';
+
+@NgModule({
+ imports: [
+ CommonModule,
+ FormsModule,
+ IonicModule,
+ PublicationDetailPageRoutingModule
+ ],
+ declarations: [PublicationDetailPage]
+})
+export class PublicationDetailPageModule {}
diff --git a/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.html b/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.html
new file mode 100644
index 000000000..ddbede493
--- /dev/null
+++ b/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
{{publication.Title}}
+
{{publication.DatePublication | date: 'dd-MM-yy | h:mm'}}
+
+
+
+
+
+
+
+
+
30" class="post-img">
+

+
+
+

+
+
+
{{publication.Message}}
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.scss b/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.scss
new file mode 100644
index 000000000..06637624b
--- /dev/null
+++ b/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.scss
@@ -0,0 +1,91 @@
+
+ ion-content{
+ --background: transparent;
+ --border-radius: 30px;
+ }
+ ion-footer{
+ background: #fff;
+ }
+ ion-toolbar{
+ 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%;
+ padding: 25px 0px 0 0px;
+ overflow: auto;
+ }
+ .title-content{
+ overflow: auto;
+ }
+ .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;
+ }
+ .post-img{
+ width: 100%;
+ height: 400px;
+ margin: 0 auto;
+ border-radius: 0px!important;
+ overflow: hidden;
+}
+.post-img img{
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+}
+.post-description{
+ width: 360px;
+ margin: 0 auto;
+ margin-bottom: 35px;
+}
\ No newline at end of file
diff --git a/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.spec.ts b/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.spec.ts
new file mode 100644
index 000000000..8a3f20488
--- /dev/null
+++ b/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.spec.ts
@@ -0,0 +1,24 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { IonicModule } from '@ionic/angular';
+
+import { PublicationDetailPage } from './publication-detail.page';
+
+describe('PublicationDetailPage', () => {
+ let component: PublicationDetailPage;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ PublicationDetailPage ],
+ imports: [IonicModule.forRoot()]
+ }).compileComponents();
+
+ fixture = TestBed.createComponent(PublicationDetailPage);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ }));
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.ts b/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.ts
new file mode 100644
index 000000000..b97595001
--- /dev/null
+++ b/src/app/shared/publication/view-publications/publication-detail/publication-detail.page.ts
@@ -0,0 +1,125 @@
+import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
+import { ModalController, NavParams } from '@ionic/angular';
+import { Publication } from 'src/app/models/publication';
+import { ImageModalPage } from 'src/app/pages/publications/gallery/image-modal/image-modal.page';
+import { NewPublicationPage } from 'src/app/pages/publications/new-publication/new-publication.page';
+import { PublicationsService } from 'src/app/services/publications.service';
+
+@Component({
+ selector: 'app-publication-detail-shared',
+ templateUrl: './publication-detail.page.html',
+ styleUrls: ['./publication-detail.page.scss'],
+})
+export class PublicationDetailPage implements OnInit {
+ showLoader: boolean;
+ folderId: string;
+ publication: Publication;
+
+ @Input() publicationId: string;
+ @Output() addNewPublication = new EventEmitter();
+
+ constructor(
+ private modalController: ModalController,
+ private publications:PublicationsService,
+ ) {
+
+ /* this.folderId = this.navParams.get('folderIdId'); */
+ this.publication = {
+ DateIndex: null,
+ DocumentId: '',
+ ProcessId:'',
+ Title:'',
+ Message: '',
+ /* image: null, */
+ DatePublication: null,
+ FileBase64: '',
+ OriginalFileName: '',
+ FileExtension: '',
+ };
+ }
+
+ ngOnInit() {
+ /* console.log(this.publication.FileBase64); */
+ this.getPublicationDetail();
+ }
+ doRefresh(event) {
+ this.getPublicationDetail();
+
+ setTimeout(() => {
+ event.target.complete();
+ }, 2000);
+ }
+
+ getPublicationDetail(){
+ this.showLoader = true;
+ console.log(this.publicationId);
+ /* console.log(this.folderId); */
+ this.publications.GetPublicationById(this.publicationId).subscribe(res=>{
+ console.log(res);
+ /* this.publication = res; */
+ this.publication = {
+ DateIndex: res.DateIndex,
+ DocumentId: res.DocumentId,
+ ProcessId:res.ProcessId,
+ Title:res.Title,
+ Message: res.Message,
+ DatePublication: res.DatePublication,
+ FileBase64: "data:image/jpg;base64," + res.FileBase64,
+ OriginalFileName: res.OriginalFileName,
+ FileExtension: 'jpeg',
+ }
+ this.showLoader = false;
+ });
+ }
+
+ close(){
+ this.modalController.dismiss();
+ }
+
+ deletePost(){
+ this.publications.DeletePublication(this.folderId, this.publicationId).then(res =>{
+ console.log(res);
+
+ });
+ this.close();
+ }
+
+ async editPost(publicationType:any) {
+ console.log(this.publication);
+
+ if(window.innerHeight >= 1024){
+ const modal = await this.modalController.create({
+ component: NewPublicationPage,
+ componentProps:{
+ publicationType: publicationType,
+ publication: this.publication,
+ },
+ cssClass: 'new-publication',
+ backdropDismiss: false
+ });
+ await modal.present();
+ modal.onDidDismiss().then(()=>{
+ setTimeout(() => {
+ this.getPublicationDetail();
+ }, 5000);
+ });
+ } else {
+ this.addNewPublication.emit({
+ publicationType: publicationType,
+ folderId: this.folderId,
+ publication: this.publication,
+ })
+ }
+
+ }
+
+ openPreview(imageUrl:string){
+ this.modalController.create({
+ component: ImageModalPage,
+ componentProps: {
+ imageUrl:imageUrl,
+ }
+ }).then(modal => modal.present());
+ }
+
+}
diff --git a/src/app/shared/publication/view-publications/view-publications.page.html b/src/app/shared/publication/view-publications/view-publications.page.html
index f4fad9c21..472bee2a4 100644
--- a/src/app/shared/publication/view-publications/view-publications.page.html
+++ b/src/app/shared/publication/view-publications/view-publications.page.html
@@ -28,16 +28,16 @@
-
-
30" class="mb-10 post-img max-width-md-50">
+
+
30" class="mb-10 post-img width-md-100">
-
+
{{publication.Title}}
diff --git a/src/app/shared/publication/view-publications/view-publications.page.ts b/src/app/shared/publication/view-publications/view-publications.page.ts
index e0cea01f9..07af58e30 100644
--- a/src/app/shared/publication/view-publications/view-publications.page.ts
+++ b/src/app/shared/publication/view-publications/view-publications.page.ts
@@ -1,5 +1,5 @@
-import { Component, OnInit, Input, Output } from '@angular/core';
-import { ModalController, NavParams } from '@ionic/angular';
+import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
+import { ModalController } from '@ionic/angular';
import { Publication } from 'src/app/models/publication';
import { PublicationFolder } from 'src/app/models/publicationfolder';
import { LoadingService } from 'src/app/services/loading.service';
@@ -20,7 +20,8 @@ export class ViewPublicationsPage implements OnInit {
item: PublicationFolder;
@Input() folderId: string;
-
+ @Output() addNewPublication = new EventEmitter
();
+ @Output() openPublicationDetails= new EventEmitter();
constructor(
private loadingController: LoadingService,
@@ -29,7 +30,7 @@ export class ViewPublicationsPage implements OnInit {
) {
this.item = new PublicationFolder();
- }
+ }
ngOnInit() {
console.log(this.folderId);
@@ -96,34 +97,53 @@ export class ViewPublicationsPage implements OnInit {
}
async AddPublication(publicationType:any, folderId:string) {
- const modal = await this.modalController.create({
- component: NewPublicationPage,
- componentProps:{
+
+ if( window.innerWidth <= 1024) {
+ const modal = await this.modalController.create({
+ component: NewPublicationPage,
+ componentProps:{
+ publicationType: publicationType,
+ folderId: folderId,
+ },
+ cssClass: 'new-publication',
+ backdropDismiss: false
+ });
+ await modal.present();
+ modal.onDidDismiss().then(()=>{
+ this.doRefresh(event);
+ });
+ } else {
+ this.addNewPublication.emit({
publicationType: publicationType,
- folderId: folderId,
- },
- cssClass: 'new-publication',
- backdropDismiss: false
- });
- await modal.present();
- modal.onDidDismiss().then(()=>{
- this.doRefresh(event);
- });
+ folderId: folderId
+ })
+ }
+
}
+
async viewPublicationDetail(publicationId:string) {
- const modal = await this.modalController.create({
- component: PublicationDetailPage,
- componentProps:{
- publicationId: publicationId,
- },
- cssClass: 'publication-detail',
- backdropDismiss: false
- });
- await modal.present();
- modal.onDidDismiss().then(()=>{
- this.doRefresh(event);
- });
+
+ console.log(publicationId);
+
+ if( window.innerWidth <= 1024) {
+ const modal = await this.modalController.create({
+ component: PublicationDetailPage,
+ componentProps:{
+ publicationId: publicationId,
+ },
+ cssClass: 'publication-detail',
+ backdropDismiss: false
+ });
+ await modal.present();
+ modal.onDidDismiss().then(()=>{
+ this.doRefresh(event);
+ });
+ } else {
+ // open publication details
+ this.openPublicationDetails.emit(publicationId);
+ }
+
}
}
diff --git a/src/style/main.scss b/src/style/main.scss
index 3f9ccf56d..4ea2ab417 100644
--- a/src/style/main.scss
+++ b/src/style/main.scss
@@ -150,35 +150,35 @@
@each $property, $short in $properties {
// all directions
- .#{$short}-md-a-#{$size} {
+ .#{$short}a-md-#{$size} {
#{$property}-left: #{$size}px !important;
#{$property}-right: #{$size}px !important;
#{$property}-top: #{$size}px !important;
#{$property}-bottom: #{$size}px !important;
}
// top
- .#{$short}-md-t-#{$size} {
+ .#{$short}t-md-#{$size} {
#{$property}-top: #{$size}px !important
}
// bottom
- .#{$short}-md-b-#{$size} {
+ .#{$short}b-md-#{$size} {
#{$property}-bottom: #{$size}px !important
}
// left
- .#{$short}-md-l-#{$size} {
+ .#{$short}l-md-#{$size} {
#{$property}-left: #{$size}px!important
}
// right
- .#{$short}-md-r-#{$size} {
+ .#{$short}r-md-#{$size} {
#{$property}-right: #{$size}px!important
}
// left and right
- .#{$short}-md-x-#{$size} {
+ .#{$short}x-md-#{$size} {
#{$property}-left: #{$size}px!important;
#{$property}-right: #{$size}px!important;
}
// top and bottom
- .#{$short}-md-y-#{$size} {
+ .#{$short}y-md-#{$size} {
#{$property}-top: #{$size}px !important;
#{$property}-bottom: #{$size}px !important;
}
@@ -296,35 +296,35 @@
@each $property, $short in $properties {
// all directions
- .#{$short}-lg-a-#{$size} {
+ .#{$short}a-lg-#{$size} {
#{$property}-left: #{$size}px !important;
#{$property}-right: #{$size}px !important;
#{$property}-top: #{$size}px !important;
#{$property}-bottom: #{$size}px !important;
}
// top
- .#{$short}-lg-t-#{$size} {
+ .#{$short}t-lg-#{$size} {
#{$property}-top: #{$size}px !important
}
// bottom
- .#{$short}-lg-b-#{$size} {
+ .#{$short}b-lg-#{$size} {
#{$property}-bottom: #{$size}px !important
}
// left
- .#{$short}-lg-l-#{$size} {
+ .#{$short}l-lg-#{$size} {
#{$property}-left: #{$size}px!important
}
// right
- .#{$short}-lg-r-#{$size} {
+ .#{$short}r-lg-#{$size} {
#{$property}-right: #{$size}px!important
}
// left and right
- .#{$short}-lg-x-#{$size} {
+ .#{$short}x-lg-#{$size} {
#{$property}-left: #{$size}px!important;
#{$property}-right: #{$size}px!important;
}
// top and bottom
- .#{$short}-lg-y-#{$size} {
+ .#{$short}y-lg-#{$size} {
#{$property}-top: #{$size}px !important;
#{$property}-bottom: #{$size}px !important;
}