diff --git a/config.xml b/config.xml index 1866aeb25..984e37afb 100644 --- a/config.xml +++ b/config.xml @@ -1,10 +1,12 @@ - - MyApp + + gabinete digital An awesome Ionic/Cordova app. Ionic Framework Team + + @@ -92,7 +94,6 @@ - @@ -141,4 +142,6 @@ en /adapters/MobileAPIProxy 2 + + diff --git a/package-lock.json b/package-lock.json index 0ce176e83..331c84bd0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -592,9 +592,9 @@ } }, "@angular/language-service": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-11.2.2.tgz", - "integrity": "sha512-H09s5pivJq8lip206NrNJ0cXLge9CfthtT3tY+OGXn5Xiyvjxs+dOkVytoGauHE3mdge/Wn/rxoGmm/oYKejNQ==", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-11.2.6.tgz", + "integrity": "sha512-jzIutEzUbfBZxLWftpi5oXusL3rwbe2P/6HnNd8NUeBos9+G859R7hCsstAQ61XPn41a2/Fbl+YOwYhdjoBQrw==", "dev": true }, "@angular/platform-browser": { @@ -2055,6 +2055,14 @@ "@types/cordova": "^0.0.34" } }, + "@ionic-native/http": { + "version": "5.31.1", + "resolved": "https://registry.npmjs.org/@ionic-native/http/-/http-5.31.1.tgz", + "integrity": "sha512-J9pLHycF6ndpqIYsyZEVjEnz33jbTWnE5vbq+Lpytd6KO/jE/Lyuy8z0wTzVkKYI1bKpgC+Q0XuBt2UgyEuPdA==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, "@ionic-native/in-app-browser": { "version": "5.31.1", "resolved": "https://registry.npmjs.org/@ionic-native/in-app-browser/-/in-app-browser-5.31.1.tgz", @@ -2071,6 +2079,30 @@ "@types/cordova": "^0.0.34" } }, + "@ionic-native/splash-screen": { + "version": "5.31.1", + "resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.31.1.tgz", + "integrity": "sha512-Hcy1cMjWLnFE0TrIhpcNwld39dFipOQE63XpKuEhSJXfix1hibrC+0Nc3jEn0zBJUbbAHVJph6s9dohUxRycqg==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/sqlite": { + "version": "5.31.1", + "resolved": "https://registry.npmjs.org/@ionic-native/sqlite/-/sqlite-5.31.1.tgz", + "integrity": "sha512-X26n+6mvqyv94ADG67lHOmDj/Ha+ZVbHztwsWzbvBqmnmgck9y+mo8ndC47UKIXRA/8lwoGMyAtJAfE81eT3mg==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/sqlite-porter": { + "version": "5.31.1", + "resolved": "https://registry.npmjs.org/@ionic-native/sqlite-porter/-/sqlite-porter-5.31.1.tgz", + "integrity": "sha512-dBIp0f85Qn6KRymOg5dZxlfZTiyMDXRYiO1Eg44UxIsNZx7qchZg63wMRWyZmdnFWMfvYjAbkJ3NKiumqR1z3w==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, "@ionic-native/status-bar": { "version": "5.31.1", "resolved": "https://registry.npmjs.org/@ionic-native/status-bar/-/status-bar-5.31.1.tgz", @@ -4223,6 +4255,16 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -5687,11 +5729,6 @@ "integrity": "sha512-Jb3V72btxf3XHpkPQsGdyc8N6tVBYn1vsxSFj43fIz9vonJDUThYPCJJHqk6PX6N4dJw6I4FjxkpfCR4LDYMlw==", "dev": true }, - "cordova-plugin-file": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/cordova-plugin-file/-/cordova-plugin-file-6.0.2.tgz", - "integrity": "sha512-m7cughw327CjONN/qjzsTpSesLaeybksQh420/gRuSXJX5Zt9NfgsSbqqKDon6jnQ9Mm7h7imgyO2uJ34XMBtA==" - }, "cordova-plugin-filepath": { "version": "1.5.8", "resolved": "https://registry.npmjs.org/cordova-plugin-filepath/-/cordova-plugin-filepath-1.5.8.tgz", @@ -7706,6 +7743,13 @@ } } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -10691,6 +10735,13 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, "nanoid": { "version": "3.1.20", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", @@ -16806,7 +16857,11 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, - "optional": true + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } }, "glob-parent": { "version": "3.1.0", @@ -17433,7 +17488,11 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, - "optional": true + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } }, "glob-parent": { "version": "3.1.0", diff --git a/package.json b/package.json index f84ffef2b..5c27470eb 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,12 @@ "@ionic-native/core": "^5.0.7", "@ionic-native/file": "^5.30.0", "@ionic-native/file-path": "^5.30.0", + "@ionic-native/http": "^5.31.1", "@ionic-native/in-app-browser": "^5.28.0", "@ionic-native/ionic-webview": "^5.30.0", + "@ionic-native/splash-screen": "^5.31.1", + "@ionic-native/sqlite": "^5.31.1", + "@ionic-native/sqlite-porter": "^5.31.1", "@ionic-native/status-bar": "^5.0.0", "@ionic-native/wheel-selector": "^5.31.1", "@ionic/angular": "^5.5.4", @@ -41,7 +45,6 @@ "angular-calendar": "^0.28.22", "angular-tag-cloud-module": "^5.2.2", "cordova-plugin-camera": "^5.0.1", - "cordova-plugin-file": "^6.0.2", "cordova-plugin-filepath": "^1.5.8", "cordova-plugin-mfp-push": "^8.0.2020072705", "cordova-plugin-okhttp": "^2.0.0", @@ -66,7 +69,7 @@ "@angular/cli": "11.2.1", "@angular/compiler": "~11.2.2", "@angular/compiler-cli": "^11.2.2", - "@angular/language-service": "~11.2.2", + "@angular/language-service": "^11.2.6", "@ionic/angular-toolkit": "^3.0.0", "@ionic/lab": "3.1.7", "@types/jasmine": "~3.6.0", @@ -83,7 +86,7 @@ "cordova-plugin-ionic-webview": "^4.2.1", "cordova-plugin-splashscreen": "^5.0.2", "cordova-plugin-statusbar": "^2.4.2", - "cordova-plugin-whitelist": "^1.3.3", + "cordova-plugin-whitelist": "^1.3.4", "jasmine-core": "~3.6.0", "jasmine-spec-reporter": "~5.0.0", "karma": "~5.0.0", @@ -99,7 +102,6 @@ "description": "An Ionic project", "cordova": { "plugins": { - "cordova-plugin-whitelist": {}, "cordova-plugin-statusbar": {}, "cordova-plugin-device": {}, "cordova-plugin-splashscreen": {}, @@ -126,4 +128,4 @@ "url": "git+https://Kayaya@bitbucket.org/equilibriumito/gabinete-digital.git" }, "license": "ISC" -} \ No newline at end of file +} diff --git a/resources/android/icon/drawable-hdpi-icon.png b/resources/android/icon/drawable-hdpi-icon.png index 3f84fc1b2..05d953939 100644 Binary files a/resources/android/icon/drawable-hdpi-icon.png and b/resources/android/icon/drawable-hdpi-icon.png differ diff --git a/resources/android/icon/drawable-ldpi-icon.png b/resources/android/icon/drawable-ldpi-icon.png index 3de9b4f79..74a5391bc 100644 Binary files a/resources/android/icon/drawable-ldpi-icon.png and b/resources/android/icon/drawable-ldpi-icon.png differ diff --git a/resources/android/icon/drawable-mdpi-icon.png b/resources/android/icon/drawable-mdpi-icon.png index 4b455d317..c34391965 100644 Binary files a/resources/android/icon/drawable-mdpi-icon.png and b/resources/android/icon/drawable-mdpi-icon.png differ diff --git a/resources/android/icon/drawable-xhdpi-icon.png b/resources/android/icon/drawable-xhdpi-icon.png index fe47ccce8..1d76d5249 100644 Binary files a/resources/android/icon/drawable-xhdpi-icon.png and b/resources/android/icon/drawable-xhdpi-icon.png differ diff --git a/resources/android/icon/drawable-xxhdpi-icon.png b/resources/android/icon/drawable-xxhdpi-icon.png index 391b4af13..7fb3bb824 100644 Binary files a/resources/android/icon/drawable-xxhdpi-icon.png and b/resources/android/icon/drawable-xxhdpi-icon.png differ diff --git a/resources/android/icon/drawable-xxxhdpi-icon.png b/resources/android/icon/drawable-xxxhdpi-icon.png index 09e50b7b3..97f8b550b 100644 Binary files a/resources/android/icon/drawable-xxxhdpi-icon.png and b/resources/android/icon/drawable-xxxhdpi-icon.png differ diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 0193e8f4b..2d637573b 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,5 +1,7 @@ import { NgModule } from '@angular/core'; import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; +import { ChatPage } from './pages/chat/chat.page'; +import { MessagesPage } from './pages/chat/messages/messages.page'; const routes: Routes = [ { @@ -9,81 +11,35 @@ const routes: Routes = [ { path: '', loadChildren: () => import('./home/home.module').then( m => m.HomePageModule) - }, - { - path: 'events', - loadChildren: () => import('./pages/events/events.module').then( m => m.EventsPageModule) - }, - { - path: 'chat', - loadChildren: () => import('./pages/chat/chat.module').then( m => m.ChatPageModule) - }, - { - path: 'publications', - loadChildren: () => import('./pages/publications/publications.module').then( m => m.PublicationsPageModule) - }, - { - path: 'header', - loadChildren: () => import('./shared/header/header.module').then( m => m.HeaderPageModule) - }, - { - path: 'header', - loadChildren: () => import('./shared/header/header.module').then( m => m.HeaderPageModule) - }, - { - path: 'header-pr', - loadChildren: () => import('./shared/header-pr/header-pr.module').then( m => m.HeaderPrPageModule) - }, - { - path: 'btn-seguinte', - loadChildren: () => import('./shared/btn-seguinte/btn-seguinte.module').then( m => m.BtnSeguintePageModule) - }, - { - path: 'btn-modal-dismiss', - loadChildren: () => import('./shared/btn-modal-dismiss/btn-modal-dismiss.module').then( m => m.BtnModalDismissPageModule) - }, - { - path: 'chat-popover', - loadChildren: () => import('./shared/popover/chat-popover/chat-popover.module').then( m => m.ChatPopoverPageModule) - }, - { - path: 'chat-options-popover', - loadChildren: () => import('./shared/popover/chat-options-popover/chat-options-popover.module').then( m => m.ChatOptionsPopoverPageModule) }, { - path: 'messages-options', - loadChildren: () => import('./shared/popover/messages-options/messages-options.module').then( m => m.MessagesOptionsPageModule) + path: 'empty-chat', + loadChildren: () => import('./shared/chat/empty-chat/empty-chat.module').then( m => m.EmptyChatPageModule) }, { - path: 'group-duration', - loadChildren: () => import('./shared/popover/group-duration/group-duration.module').then( m => m.GroupDurationPageModule) + path: 'btn-criar', + loadChildren: () => import('./shared/buttons/btn-criar/btn-criar.module').then( m => m.BtnCriarPageModule) }, { - path: 'header-no-search', - loadChildren: () => import('./shared/headers/header-no-search/header-no-search.module').then( m => m.HeaderNoSearchPageModule) + path: 'btn-adicionar', + loadChildren: () => import('./shared/buttons/btn-adicionar/btn-adicionar.module').then( m => m.BtnAdicionarPageModule) + }, + { + path: 'empty-container', + loadChildren: () => import('./shared/empty-container/empty-container.module').then( m => m.EmptyContainerPageModule) + }, + { + path: 'events-to-approve', + loadChildren: () => import('./shared/gabinete-digital/events-to-approve/events-to-approve.module').then( m => m.EventsToApprovePageModule) + }, + { + path: 'expedients', + loadChildren: () => import('./shared/gabinete-digital/expedients/expedients.module').then( m => m.ExpedientsPageModule) }, - - /* { - path: 'cal-modal', - loadChildren: () => import('./pages/cal-modal/cal-modal.module').then( m => m.CalModalPageModule) - }, */ - /* { - path: 'events', - loadChildren: () => import('./pages/events/events.module').then( m => m.EventsPageModule) - }, */ - - /* - { - path: 'gabinete-digital-menu', - loadChildren: () => import('./pages/gabinete-digital-menu/gabinete-digital-menu.module').then( m => m.GabineteDigitalMenuPageModule) - }, - - - { - path: 'view-event', - loadChildren: () => import('./pages/view-event/view-event.module').then( m => m.ViewEventPageModule) - }, */ + path: 'chat', + component: ChatPage + } */ ]; @NgModule({ diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 7788d3f35..5dab677c6 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,9 +1,9 @@ import { Component } from '@angular/core'; import { Platform } from '@ionic/angular'; -/* import { SplashScreen } from '@ionic-native/splash-screen/ngx'; +/* import { SplashScreen } from '@ionic-native/splash-screen/ngx'; */ import { StatusBar } from '@ionic-native/status-bar/ngx'; - */ + @Component({ selector: 'app-root', templateUrl: 'app.component.html', @@ -12,16 +12,16 @@ import { StatusBar } from '@ionic-native/status-bar/ngx'; export class AppComponent { constructor( private platform: Platform, - /* private splashScreen: SplashScreen, - private statusBar: StatusBar */ + /* private splashScreen: SplashScreen, */ + private statusBar: StatusBar ) { this.initializeApp(); } initializeApp() { this.platform.ready().then(() => { - /* this.statusBar.styleDefault(); - this.splashScreen.hide(); */ + this.statusBar.styleDefault(); + /* this.splashScreen.hide(); */ }); } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 83bd08cfa..a1681cb40 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -3,8 +3,8 @@ import { BrowserModule } from '@angular/platform-browser'; import { RouteReuseStrategy } from '@angular/router'; import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; -/* import { SplashScreen } from '@ionic-native/splash-screen/ngx'; -import { StatusBar } from '@ionic-native/status-bar/ngx'; */ +// import { SplashScreen } from '@ionic-native/splash-screen/ngx'; +import { StatusBar } from '@ionic-native/status-bar/ngx'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; @@ -13,12 +13,11 @@ import { HttpClientModule } from '@angular/common/http'; import { InAppBrowser } from '@ionic-native/in-app-browser/ngx'; -import { File } from '@ionic-native/File/ngx'; +//import { File } from '@ionic-native/File/ngx'; import { WebView } from '@ionic-native/ionic-webview/ngx'; import { FilePath } from '@ionic-native/file-path/ngx'; import { Camera } from '@ionic-native/camera/ngx'; import { IonicStorageModule } from '@ionic/storage'; -import { PipesModule } from './pipes/pipes.module'; // import { CommonModule } from '@angular/common'; @@ -28,11 +27,12 @@ import { FormsModule } from '@angular/forms'; import { CalendarModule, DateAdapter } from 'angular-calendar'; import { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { MessagesPage } from './pages/chat/messages/messages.page'; @NgModule({ - declarations: [AppComponent], - entryComponents: [], + declarations: [AppComponent,MessagesPage,], + entryComponents: [MessagesPage], imports: [BrowserModule, CommonModule, FormsModule, @@ -43,17 +43,16 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; IonicModule.forRoot(), IonicStorageModule.forRoot(), AppRoutingModule, - PipesModule, - HttpClientModule, + HttpClientModule, ], providers: [ - /* StatusBar, - SplashScreen, */ + StatusBar, + //SplashScreen, HttpClientModule, { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, InAppBrowser, Camera, - File, + //File, WebView, FilePath, ], diff --git a/src/app/components/calendar/calendar.component.html b/src/app/components/calendar/calendar.component.html deleted file mode 100644 index a23ca3d0c..000000000 --- a/src/app/components/calendar/calendar.component.html +++ /dev/null @@ -1,2 +0,0 @@ -
-
diff --git a/src/app/components/calendar/calendar.component.scss b/src/app/components/calendar/calendar.component.scss deleted file mode 100644 index ef8de7ae7..000000000 --- a/src/app/components/calendar/calendar.component.scss +++ /dev/null @@ -1,20 +0,0 @@ -* { - margin: 0; - padding: 0; - box-sizing: border-box; - font-family: "Quicksand", sans-serif; - } - - html { - font-size: 62.5%; - } - - .container { - width: 100%; - height: 100vh; - background-color: #12121f; - color: #eee; - display: flex; - justify-content: center; - align-items: center; - } \ No newline at end of file diff --git a/src/app/components/calendar/calendar.component.ts b/src/app/components/calendar/calendar.component.ts deleted file mode 100644 index f2a841df3..000000000 --- a/src/app/components/calendar/calendar.component.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-calendar', - templateUrl: './calendar.component.html', - styleUrls: ['./calendar.component.scss'], -}) -export class CalendarComponent implements OnInit { - - date = new Date(); - months = [ - "Janeiro", - "Fevereiro", - "Março", - "Abril", - "Maio", - "Junho", - "Julho", - "Agosto", - "Setembro", - "Outubro", - "Novembro", - "Dezembro", - ]; - weekdays = [ - "Domingo", - "Segunda-feira", - "Terça-feira", - "Quarta-feira", - "Quinta-feira", - "Sexta-feira", - "Sábado" - ]; - currentMonth = this.months[this.date.getMonth()]; - customDate = this.weekdays[this.date.getDay()]+ ", " + this.date.getDate() +" de " + ( this.months[this.date.getMonth()]); - - constructor() { } - - ngOnInit() { - } -} diff --git a/src/app/components/components.module.ts b/src/app/components/components.module.ts deleted file mode 100644 index b415ba1d4..000000000 --- a/src/app/components/components.module.ts +++ /dev/null @@ -1,8 +0,0 @@ - - -import { CalendarComponent } from './calendar/calendar.component'; - - - - - diff --git a/src/app/home/home-routing.module.ts b/src/app/home/home-routing.module.ts index 203119606..5226aa346 100644 --- a/src/app/home/home-routing.module.ts +++ b/src/app/home/home-routing.module.ts @@ -1,6 +1,8 @@ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { HomeGuard } from '../guards/home.guard'; +import { GroupMessagesPage } from '../pages/chat/group-messages/group-messages.page'; +import { MessagesPage } from '../pages/chat/messages/messages.page'; import { UserDataResolver } from '../resolvers/userData.resolver'; import { HomePage } from './home.page'; @@ -65,7 +67,15 @@ const routes: Routes = [ { path:':eventId/:caller', loadChildren: ()=> import('../pages/events/event-detail/event-detail.module').then(m => m.EventDetailPageModule), - } + }, + { + path: 'eventId/:caller', + loadChildren: () => import('../pages/agenda/view-event/view-event.module').then( m => m.ViewEventPageModule) + }, + { + path: 'edit-event', + loadChildren: () => import('../pages/agenda/edit-event/edit-event.module').then( m => m.EditEventPageModule) + }, ] }, { @@ -150,7 +160,42 @@ const routes: Routes = [ { path:'', loadChildren: ()=> import('../pages/chat/chat.module').then(m => m.ChatPageModule) - } + }, + { + path:'messages', + children: [ + { + path:'', + loadChildren: ()=> import('../pages/chat/messages/messages.module').then(m => m.MessagesPageModule) + }, + { + path:'contacts', + loadChildren: ()=> import('../shared/chat/messages/contacts/contacts.module').then(m => m.ContactsPageModule) + }, + { + path:'contacts', + loadChildren: ()=> import('../pages/chat/messages/contacts/contacts.module').then(m => m.ContactsPageModule) + }, + ] + }, + { + path:'group-messages', + children:[ + { + path:'', + loadChildren: ()=> import('../pages/chat/group-messages/group-messages.module').then(m => m.GroupMessagesPageModule) + }, + { + path:'group-contacts', + loadChildren: ()=> import('../shared/chat/group-messages/group-contacts/group-contacts.module').then(m => m.GroupContactsPageModule) + }, + { + path:'group-contacts', + loadChildren: ()=> import('../pages/chat/group-messages/group-contacts/group-contacts.module').then(m => m.GroupContactsPageModule) + }, + ] + }, + ] }, ] diff --git a/src/app/home/home.page.html b/src/app/home/home.page.html index 3d3c833b0..6af927624 100644 --- a/src/app/home/home.page.html +++ b/src/app/home/home.page.html @@ -1,33 +1,30 @@ - - - - - - - {{totalEvent}} - Início - - - - - - Agenda - - - - - {{totalExpediente}} - Gabinete - - - - Ações - - - - Chat - - - - + + + + + {{totalEvent}} + Início + + + + + + Agenda + + + + + {{totalExpediente}} + Gabinete + + + + Acções + + + + Chat + + + diff --git a/src/app/home/home.page.scss b/src/app/home/home.page.scss index 57a1ccc35..8b6ee1ac6 100644 --- a/src/app/home/home.page.scss +++ b/src/app/home/home.page.scss @@ -1,7 +1,7 @@ ion-tab-bar{ - --background: #f9f9f9; - --color: #061b52; + --background: #f9f9f9; + --color: #061b52; } // Badge @@ -33,4 +33,12 @@ ion-badge {/* */ display: flex; justify-content: space-around; } +} + + +@media only screen and (min-width: 1366px) { + + ion-tabs.tab .bottoms{ + display: none; + } } \ No newline at end of file diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index 06a959355..c04ee6542 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -2,20 +2,11 @@ /// import { Component, OnInit, NgZone } from '@angular/core'; import { EventsService } from '../services/events.service'; -import { formatDate } from '@angular/common'; import { Event } from '../models/event.model'; import { ProcessesService } from '../services/processes.service'; -import { StorageService } from 'src/app/services/storage.service'; import { ModalController } from '@ionic/angular'; -import { PublicationDetailPage } from '../../app/pages/publications/view-publications/publication-detail/publication-detail.page'; -import { ViewPublicationsPage } from '../../app/pages/publications/view-publications/view-publications.page'; -import { ExpedienteDetailPage } from '../../app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page' -import { ViewEventPage } from '../../app/pages/agenda/view-event/view-event.page' -import { ApproveEventModalPage } from '../../app/pages/gabinete-digital/event-list/approve-event-modal/approve-event-modal.page'; - /* import { Plugins, PushNotification, PushNotificationToken, PushNotificationActionPerformed, Modals } from '@capacitor/core'; */ import { Router } from '@angular/router'; -import { MethodCall } from '@angular/compiler'; /* const { PushNotifications, LocalNotifications, LocalNotificationAction } = Plugins; */ @@ -33,7 +24,13 @@ export class HomePage implements OnInit { totalExpediente = 0; profile: string; - constructor(private zone: NgZone,private eventService: EventsService, private processesbackend: ProcessesService, private router: Router, private modalController: ModalController,) { } + constructor(private zone: NgZone,private eventService: EventsService, private processesbackend: ProcessesService, private router: Router, private modalController: ModalController) { + + router.events.subscribe((val) => { + document.querySelectorAll('ion-modal').forEach((e)=>e.remove()) + }); + + } ngOnInit() { this.mobileFirstTest() @@ -61,7 +58,8 @@ export class HomePage implements OnInit { this.processesbackend.GetTasksList("Expediente", true).subscribe(result => { this.totalExpediente = result; }); - + +/* PushNotifications.addListener('registrationError', (error: any) => { alert('Error on registration: ' + JSON.stringify(error)); }); @@ -188,7 +186,7 @@ export class HomePage implements OnInit { } - async openApproveModal(eventSerialNumber){ + /* async openApproveModal(eventSerialNumber){ const modal = await this.modalController.create({ component: ApproveEventModalPage, componentProps:{ @@ -200,9 +198,9 @@ export class HomePage implements OnInit { await modal.present(); modal.onDidDismiss(); - } + } */ - async viewEventDetail(eventId:any) { + /* async viewEventDetail(eventId:any) { console.log(this.profile); const modal = await this.modalController.create({ @@ -215,7 +213,7 @@ export class HomePage implements OnInit { }); await modal.present(); modal.onDidDismiss(); - } + } */ /* async viewExpedientDetail(serialNumber:any) { console.log(this.profile); @@ -256,7 +254,7 @@ export class HomePage implements OnInit { - async viewPublicationDetail(folderId) { + /* async viewPublicationDetail(folderId) { const modal = await this.modalController.create({ component: PublicationDetailPage, componentProps: { @@ -267,15 +265,13 @@ export class HomePage implements OnInit { }); await modal.present(); modal.onDidDismiss(); - } - - async viewPublications(folderId) { - + } */ + /* async viewPublications(folderId) { const modal = await this.modalController.create({ component: ViewPublicationsPage, - /* enterAnimation, - leaveAnimation, */ + enterAnimation, + leaveAnimation, componentProps: { item: folderId, }, @@ -284,6 +280,9 @@ export class HomePage implements OnInit { }); await modal.present(); modal.onDidDismiss(); - } + } */ + + + } diff --git a/src/app/models/participant.model.ts b/src/app/models/participant.model.ts index f2b96575b..f8e12bd1d 100644 --- a/src/app/models/participant.model.ts +++ b/src/app/models/participant.model.ts @@ -1,5 +1,5 @@ export class Participant{ - UserId: string; + UserEmail: string; UserType: string; /* Deadline: Date; */ diff --git a/src/app/models/user.model.ts b/src/app/models/user.model.ts index a4bcde816..a2ee351ba 100644 --- a/src/app/models/user.model.ts +++ b/src/app/models/user.model.ts @@ -2,5 +2,6 @@ export class User { username: string; password: string; domainName: string; - BasicAuthKey: string + BasicAuthKey: string; + UserId?: number; } \ No newline at end of file diff --git a/src/app/pages/agenda/agenda.module.ts b/src/app/pages/agenda/agenda.module.ts index a72bd12bd..f0e7dabda 100644 --- a/src/app/pages/agenda/agenda.module.ts +++ b/src/app/pages/agenda/agenda.module.ts @@ -7,20 +7,26 @@ import { IonicModule } from '@ionic/angular'; import { AgendaPageRoutingModule } from './agenda-routing.module'; import { AgendaPage } from './agenda.page'; - - import { NgCalendarModule } from 'ionic2-calendar'; import { CalModalPageModule } from '../cal-modal/cal-modal.module'; import { registerLocaleData } from '@angular/common'; import localeDe from '@angular/common/locales/pt'; -import { CalendarComponent } from 'src/app/components/calendar/calendar.component'; import { SharedModule } from 'src/app/shared/shared.module'; -registerLocaleData(localeDe); +import { NewEventPage } from "src/app/shared/agenda/new-event/new-event.component" +import { EditEventComponent } from 'src/app/shared/agenda/edit-event/edit-event.component'; +import { ViewEventPage } from 'src/app/shared/agenda/view-event/view-event.page'; +import { EventListComponent } from "src/app/shared/agenda/event-list/event-list.component"; +import { ApproveEventComponent } from "src/app/shared/agenda/approve-event/approve-event.component"; +import { AttendeesPage } from 'src/app/shared/event/attendees/attendees.page'; +import { AttendeeModalPage } from 'src/app/shared/event/attendee-modal/attendee-modal.page'; +registerLocaleData(localeDe); + import { CalendarModule, DateAdapter } from 'angular-calendar'; import { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; +import { EventsToApprovePage } from 'src/app/shared/gabinete-digital/events-to-approve/events-to-approve.page'; @NgModule({ imports: [ CommonModule, @@ -36,7 +42,20 @@ import { adapterFactory } from 'angular-calendar/date-adapters/date-fns'; NgCalendarModule, CalModalPageModule, ], - declarations: [AgendaPage, CalendarComponent], + declarations: [ + AgendaPage, + NewEventPage, + EditEventComponent, + ViewEventPage, + EventListComponent, + ApproveEventComponent, + AttendeesPage, + AttendeeModalPage, + EventsToApprovePage, + ], + entryComponents: [ + EventsToApprovePage, + ], schemas: [CUSTOM_ELEMENTS_SCHEMA], providers: [ { provide: LOCALE_ID, useValue: 'pt-PT'} diff --git a/src/app/pages/agenda/agenda.page.html b/src/app/pages/agenda/agenda.page.html index 5cb9cdebe..60edf220b 100644 --- a/src/app/pages/agenda/agenda.page.html +++ b/src/app/pages/agenda/agenda.page.html @@ -1,277 +1,395 @@ - - + + - -
-
- -
- -
-
- - - + + +
+ +
+
+ +
+ + +
+ +
+
+ + + + + +
+ +
+ + +

{{ viewTitle }}

+ + +
+ +
+ +
+ + ddddddd + dddddddd + + + +
-
- -
- - -

{{ viewTitle }}

- + +
+ +
+ {{ view.dates[row*7+col].label }} +
+
-
--> - -
- -
- + +
+
+ + + + + + + + + +

{{ viewTitle }}

+
+ + + + + + + +
+ + + + + + + + + + + + +
STQQSSD
+ + + + + + + +
+ {{view.dates[row*7+col].label}} +
+ +
+
+
+ +
+
+ + + + + + + + + +

{{ viewTitle }}

+
+ + + + + + + +
+ + + + + + + + + + + + +
STQQSSD
+ + + + + + +
+ {{view.dates[row*7+col].label}} +
+ +
+
+
+ +
+
+ +
+ +
+ + + + + + + + + + Hoje,   {{ timelineDate }} + + +
{{timelineFilterState}}
+ + + +
    +
  • Todos
  • +
  • Oficial
  • +
  • Pessoal
  • +
- - - - - - -
- - - - - - - - - - - -
STQQSSD
- - - - - - -
- {{ view.dates[row*7+col].label }} -
- -
-
-
-
-
- - - - - - - - - -

{{ viewTitle }}

-
- - - - - - - -
- - - - - - - - - - - - -
STQQSSD
- - - - - - - -
- {{view.dates[row*7+col].label}} -
- -
-
-
- -
-
- - - - - - - - - -

{{ viewTitle }}

-
- - - - - - -
- - - - - - - - - - - -
STQQSSD
- - - - - - -
- {{view.dates[row*7+col].label}} -
- +
+
+
Própria
+
+
+
+
Presidente da República
- - +
+
+
+
+
+ + + + + + + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+
-
-
- - - - - - - - - Hoje,   {{ timelineDate }} - - -
{{timelineFilterState}}
- - - -
    -
  • Todos
  • -
  • Oficial
  • -
  • Pessoal
  • -
-
-
-
-
- - - - - - - - +
- -
- - - -
- + Nenhum evento selecionado +
+ + + + + + + + + + + - + + + + + + + +
+
+
\ No newline at end of file diff --git a/src/app/pages/agenda/agenda.page.scss b/src/app/pages/agenda/agenda.page.scss index ff8f853c4..0f61d69fc 100644 --- a/src/app/pages/agenda/agenda.page.scss +++ b/src/app/pages/agenda/agenda.page.scss @@ -464,19 +464,144 @@ td.monthview-primary-with-event { .timeline-header{ z-index: 1000000; - position: absolute; width: 100%; background-color: white; } .timeline-container{ - margin-top: 67px; + } +.calendar-timeline{ + + height: 100%; + background-color: white; + border-top-left-radius: 25px; +} .calendar-border{ background: #ebebeb; margin: 13px 20px; height: 2px; -} \ No newline at end of file +} + + +.calendar-progress-bar{ + position: absolute; + width: 100%; + margin-left: 10px; +} + + +.agenda-container{ + overflow: hidden; +} + +.container-wrapper{ + height: 100%; + .calendar-timeline{ + border-top-right-radius: 24px; + width: calc(100%); + + .calendar-wrapper{ + width: 100%; + } + + .timeline-wrapper{ + width: 100%; + overflow: scroll; + overflow-x: hidden; + } + } +} + +.event-details{ + width: 100%; + background: white; + border-top-right-radius: 25px; +} + + +.event-details{ + // width: 411px; + display: none; +} + + +@media only screen and (min-width: 1024px) { + .container-wrapper{ + height: 100%; + + .calendar-timeline{ + border-top-right-radius: 0px; + width: calc(100% - 40%); + border-right: 1px solid #d8d8d8; + + display: flex; + flex-direction: column; + height: 100%; + flex-wrap: unset; + } + } + .event-details{ + display: block; + } +} + + + + + +app-view-event{ + height: 100%; + display: flex; + flex-wrap: wrap-reverse; + flex-direction: column; + z-index: 1000; +} + +app-edit-event{ + display: flex; + flex-direction: column; + height: 100%; + z-index: 1000; +} + +app-new-event{ + height: 100%; + display: flex; + flex-wrap: wrap; + flex-direction: column; + z-index: 1000; +} + +app-event-list{ + display: flex; + flex-direction: column; + height: 100%; + flex-wrap: wrap-reverse; + z-index: 1000; +} + +app-approve-event{ + display: flex; + flex-direction: column; + height: 100%; + + z-index: 1000; +} + +.transparent{ + position: absolute; + z-index: 0; + opacity: 0; +} + +.nothing-to-show{ + justify-content: center; + display: flex; + align-items: center; + height: 100%; +} + diff --git a/src/app/pages/agenda/agenda.page.ts b/src/app/pages/agenda/agenda.page.ts index e077f644e..f56b25a47 100644 --- a/src/app/pages/agenda/agenda.page.ts +++ b/src/app/pages/agenda/agenda.page.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, ViewChild, Inject, LOCALE_ID } from '@angular/core'; +import { Component, OnInit, ViewChild, Inject, LOCALE_ID, Input } from '@angular/core'; import { CalendarComponent } from 'ionic2-calendar'; import { AlertController, ModalController } from '@ionic/angular'; import { formatDate } from '@angular/common'; @@ -7,9 +7,10 @@ import { EventsService } from 'src/app/services/events.service'; import { Event } from '../../models/event.model'; import { Router, NavigationEnd } from '@angular/router'; import { AlertService } from 'src/app/services/alert.service'; -import { NewEventPage } from './new-event/new-event.page'; -import { ViewEventPage } from './view-event/view-event.page'; -import { momentG } from 'src/plugin/momentG' +import { momentG } from 'src/plugin/momentG'; +import { DomSanitizer } from "@angular/platform-browser"; +import { EventPerson } from 'src/app/models/eventperson.model'; + // showTimeline import { setHours, setMinutes } from 'date-fns'; @@ -21,6 +22,8 @@ import { } from 'angular-calendar'; import { CustomDateFormatter } from './custom-date-formatter.provider'; import { EventListPage } from '../gabinete-digital/event-list/event-list.page'; +import { ViewEventPage } from './view-event/view-event.page'; +import { NewEventPage } from './new-event/new-event.page'; @Component({ selector: 'app-agenda', @@ -47,6 +50,8 @@ export class AgendaPage implements OnInit { timelineDate: string; + contacts: EventPerson[] + setView(view: CalendarView) { this.view = view; } @@ -55,28 +60,18 @@ export class AgendaPage implements OnInit { showCalendar: boolean; calendarHeight: string; - // timeline - monthList = [ - { name: 'Janeiro', id: 'Jan' }, - { name: 'Fevereiro', id: 'Feb' }, - { name: 'Março', id: 'Mar' }, - { name: 'Abril', id: 'Apr' }, - { name: 'Maio', id: 'May' }, - { name: 'Junho', id: 'June' }, - { name: 'Julho', id: 'July' }, - { name: 'Agosto', id: 'Aug' }, - { name: 'Setembro', id: 'Sept' }, - { name: 'Outubro', id: 'Oct' }, - { name: 'Novembro', id: 'Nov' }, - { name: 'Dezembro', id: 'Dec' } - ] - // for timeline events: CalendarEvent[] = []; + TimelinePR: CalendarEvent[] = []; + TimelineMD: CalendarEvent[] = []; + + showTimelinePR = false; + showTimelineMD = false; + // timeline filter timelineFilterState: string = 'Todos'; showTimelineFilterState: boolean; - showTimeline: boolean; + showTimeline=true; /* List of events of our calendar */ eventSource = []; @@ -95,35 +90,67 @@ export class AgendaPage implements OnInit { rangeStartDate: Date; rangeEndDate: Date; + selectedEvent: Event; + selectedEventId: string | number; + postEvent: any; + @ViewChild(CalendarComponent) myCal: CalendarComponent; - segment:string; - profile:string; + segment: "Combinado" | "Pessoal" | "Oficial"; + timelineSedment : "Combinado" | "Pessoal" | "Oficial"; + + profile:'mdgpr' | 'pr'; eventsList: Event[]; eventsListPessoal: Event[]; eventsListOficial: Event[]; + // this will make toggle add event and. + showEventEditOrOpen: "edit" | "add" | "" = "" + prEventList: Event[]; - mdEventList: Event[]; + mdEventList: Event[] showLoader: boolean; startTime: Date; endTime: Date; + mobileComponent = { + showAddNewEvent: false, + showEditEvent: false, + showEventDetails: false, + showEventList: false, + transparentEventList: false, + transparentEventToApprove: false, + showEventToApprove: false, + showAttendees: false, + showAttendeeModal: false + } + eventToaprove: any = { + back: false, + serialNumber: "", + saveData: {} + } - constructor( + /** + * @description determinant if edit or add event component is open + */ + IsEvent: "edit" | "add" | "view"; + viewingEventObject: { event: CalendarEvent }; + + constructor( private alertCtrl: AlertController, @Inject(LOCALE_ID) private locale: string, private modalCtrl: ModalController, private eventService: EventsService, private router: Router, - private alertCrontroller: AlertService + private alertController: AlertService, + private sanitizer: DomSanitizer ) { - this.calendarHeight = "347px"; + this.calendarHeight = "333px"; this.showCalendar = true; this.timelineDate = momentG(new Date(),'dd MMMM yyyy'); @@ -131,7 +158,7 @@ export class AgendaPage implements OnInit { this.showTimelineFilterState = false; this.showTimeline = false; - } + } ngOnInit() { this.profile = "mdgpr"; @@ -140,40 +167,71 @@ export class AgendaPage implements OnInit { this.router.events.forEach((event) => { if(event instanceof NavigationEnd && event.url == "/home/agenda") { - if (this.segment == null) - { - this.segment = "Combinada"; + if (this.segment == null){ + this.segment = "Combinado"; } - else - { + else{ this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate); } } }); + + + window.onresize = (event) => { + // if not table remove all component + if( window.innerWidth <= 1024){ + console.log('mobile') + this.cloneAllmobileComponent(); + } + }; + } //Go to the next view of the calendar month/week/day next(){ this.myCal.slideNext(); + this.centralizeTimeline(500); } //Go to the previous view of the calendar back(){ this.myCal.slidePrev(); + this.centralizeTimeline(500); } //Shows the title of your view onViewTitleChanged(title){ this.viewTitle = title; } - // Show information of the event for timeline + // show information about the clicked event in timeline eventClicked({ event }: { event: CalendarEvent }): void { - console.log('Event clicked', event); + /* console.log('Event clicked', event); */ + + this.IsEvent= "view"; + this.viewingEventObject = {event}; + this.eventSelectedDate = event.start; - this.viewEventDetail(event.id); - /* this.router.navigate(["/home/agenda", event.id, 'agenda']); */ + this.selectedEventId = event.id; + + // this.viewEventDetail(event.id); + + this.cloneAllmobileComponent(); + + + this.showEventEditOrOpen = 'edit'; + + if( window.innerWidth <= 1024){ + this.viewEventDetail(event.id) + //this.router.navigate(["/home/agenda", event.id, 'agenda']); + } else { + this.cloneAllmobileComponent(); + + this.mobileComponent.showEventDetails = true; + } + } + //Show information of the event async onEventSelected(ev: { event: Event}){ this.viewEventDetail(ev.event.EventId); @@ -182,7 +240,7 @@ export class AgendaPage implements OnInit { onCurrentChanged = (ev: Date) => { // timeline change date - this.timelineDate = new Date(ev).toLocaleString(); + this.timelineDate = momentG(new Date(ev),'dd MMMM yyyy'); this.viewDate = new Date(ev); // calendar change date this.eventSelectedDate = new Date(ev); @@ -198,10 +256,10 @@ export class AgendaPage implements OnInit { this.onCurrentChanged(newDate); */ } - /* onTimeSelected = (ev: { selectedTime: Date, events: any[] }) => { - console.log('Selected time: ' + ev.selectedTime + ', hasEvents: ' + (ev.events !== undefined && ev.events.length !== 0)); - this.eventSelectedDate2 = ev.selectedTime; - }; */ + onTimeSelected = (ev: { selectedTime: Date, events: any[] }) => { + console.log('Selected time: ' + ev.selectedTime + ', hasEvents: ' + (ev.events !== undefined && ev.events.length !== 0)); + this.eventSelectedDate2 = ev.selectedTime; + }; onRangeChanged (ev: { startTime: Date, endTime: Date }) { this.rangeStartDate = ev.startTime; @@ -218,7 +276,7 @@ export class AgendaPage implements OnInit { profile: this.profile, eventSelectedDate: this.eventSelectedDate, }, - cssClass: 'cal-modal', + cssClass: 'cal-modal modal-desktop', backdropDismiss: false }); @@ -245,27 +303,27 @@ export class AgendaPage implements OnInit { // for calendar currentDayEventDisplayBorder(day: any, id: any){ - + const events = day[id].events; + if (events.length == 0) { - return ""; - } else if (events.length >= 1) { - /** @description store all event type */ - let eventType = {}; - let eventTypeNum: number; + return ""; + + } else if (events.length >= 1) { + + let classs = []; events.forEach(element => { - eventType[element.calendarName] = 1; + + const profile_ = element.profile == 'md'? 'mdgpr': 'pr'; + const eventtype = element.event.CalendarName; + + classs.push(`calendar-event-border calendar-${profile_}-event-type-${eventtype}`); + }); - eventTypeNum = (Object.keys(eventType)).length - - if (eventTypeNum == 2) { - return ` calendar-event-border calendar-${this.profile}-event-type-both`; - } else { - return ` calendar-event-border calendar-${this.profile}-event-type-`+(Object.keys(eventType))[0]; - } + return classs.join(' '); } return ""; @@ -276,24 +334,28 @@ export class AgendaPage implements OnInit { // auto scroll timeline setTimeout(() => { const timelineMarker = document.querySelector('.cal-current-time-marker'); - const timelineContainer = document.querySelectorAll('ion-content')[2]; - const shadowRoot = timelineContainer.shadowRoot; + const scrollContainer = document.querySelector('.timeline-wrapper'); - const scrollContainer = shadowRoot.querySelector('main'); - - scrollContainer.scrollTop = timelineMarker['offsetTop'] - ((scrollContainer.offsetHeight/2) - 60); + try { + scrollContainer.scroll({ + top: timelineMarker['offsetTop'] - ((scrollContainer['offsetHeight']/2) - 60), + left: 0, + behavior: 'smooth' + }) + } catch (error) { + // + } }, timeout); } // for timeline timelineIsCurrentDate(): Boolean { - return true; - //return formatDate(new Date(),'dd MMMM yyyy', 'pt') == formatDate(this.eventSelectedDate,'dd MMMM yyyy', 'pt'); + return momentG(new Date(),'dd MMMM yyyy', 'pt') == momentG(this.eventSelectedDate,'dd MMMM yyyy', 'pt'); } // for timeline - timeLineTemplate(startTime: string, eventlocation: string, eventDiscription: any, calendarName: string, subject: string, startTimeWisthS: string, endTime: string, eventIndex: number): string{ + timeLineTemplate(startTime: string, eventlocation: string, eventDiscription: any, calendarName: string, subject: string, startTimeWisthS: string, endTime: string, eventIndex: number, profile: string): string{ const startHours = parseInt(startTimeWisthS.split(':')[0]); const startMinutos = parseInt(startTimeWisthS.split(':')[1]); @@ -303,16 +365,20 @@ export class AgendaPage implements OnInit { let top = '0'; + console.log('startMinutos', startMinutos); + if(startHours < endHours){ if (startMinutos != 0 ){ - top = `${ Math.abs((startMinutos - 60)) }` + top = `${ Math.abs((startMinutos)) }` } } + const profile_ = profile == 'md'? 'mdgpr': 'pr'; + return ` -
+
- ${startTimeWisthS}${eventlocation} + ${startHours.toString().padStart(2, '0')}:${startMinutos.toString().padStart(2, '0')}${eventlocation}
${subject} @@ -325,15 +391,62 @@ export class AgendaPage implements OnInit { timelineBoxCorrectHeight(timeout){ setTimeout(()=>{ - this.eventSource.forEach((el, eventIndex)=>{ - const startEvent = new Date(el.startTime); - const endEvent = new Date(el.endTime); + if(window.innerWidth <= 1024){ + this.events.forEach((el:any, eventIndex)=>{ + + const startEvent = new Date(el.startTime| el.start); + const endEvent = new Date(el.endTime | el.end); + + var minutes = ((endEvent.getTime() - startEvent.getTime()) / 1000) / 60; + // const top = (startEvent.getTime() - (new Date(2020, 1, 3)).getTime()) /60; + + document.querySelectorAll('.ss-timeline .timeline-box').forEach(ele => { + + if(ele.className.indexOf(`timeline-box-event-${eventIndex}`)>=0){ + + ele.setAttribute('style',`height:${minutes}px`); + + } + + }); + + }); + } else { + this.TimelineMD.forEach((el:any, eventIndex)=>{ + + const startEvent = new Date(el.startTime| el.start); + const endEvent = new Date(el.endTime | el.end); + + var minutes = ((endEvent.getTime() - startEvent.getTime()) / 1000) / 60; + // const top = (startEvent.getTime() - (new Date(2020, 1, 3)).getTime()) /60; + + document.querySelectorAll('.fs-timeline .timeline-box').forEach(ele => { + + if(ele.className.indexOf(`timeline-box-event-${eventIndex}`)>=0){ + + ele.setAttribute('style',`height:${minutes}px`); + + } + + }); + + }); + } + + + },timeout) + + setTimeout(()=>{ + this.TimelinePR.forEach((el, eventIndex)=>{ + + const startEvent = new Date(el['startTime']); + const endEvent = new Date(el['endTime']); var minutes = ((endEvent.getTime() - startEvent.getTime()) / 1000) / 60; const top = (startEvent.getTime() - (new Date(2020, 1, 3)).getTime()) /60; - document.querySelectorAll('.timeline-box').forEach(ele => { + document.querySelectorAll('.sd-timeline .timeline-box').forEach(ele => { if(ele.className.indexOf(`timeline-box-event-${eventIndex}`)>=0){ ele.setAttribute('style',`height:${minutes}px`); @@ -345,15 +458,20 @@ export class AgendaPage implements OnInit { } // for timeline - - timelineFilter(calendarName){ + timelineFilter(calendarName, eventsList, profile){ this.timelineFilterState = calendarName; // remove all event - this.events = []; + let events = []; - this.eventsList.forEach((element, eventIndex) => { + this.showTimelineFilterState = false; + + if( profile =='md'){ + console.log('eventsList: ', eventsList); + } + + eventsList.forEach((element, eventIndex) => { // timeline start const startHours = new Date(element.StartDate).getHours().toLocaleString(); @@ -362,68 +480,149 @@ export class AgendaPage implements OnInit { const startHoursOtherFormate = new Date(element.StartDate).getHours().toLocaleString()+':'+new Date(element.StartDate).getMinutes().toLocaleString(); const EndHoursOtherFormate = formatDate(new Date(element.EndDate), 'HH:mm', 'pt'); - if (element.CalendarName == calendarName) { - this.events.push({ - title: this.timeLineTemplate(startHours, element.Location, element.Body, element.CalendarName, element.Subject,startHoursOtherFormate,EndHoursOtherFormate, eventIndex), - start: setHours(setMinutes(new Date(element.StartDate), 0), parseInt(startHours)), - end: setHours(setMinutes(new Date(element.EndDate), 0), parseInt(EndHours)), - color: { - primary: 'white', - secondary: 'white' - }, - id: element.EventId - }); - } else if (calendarName == 'Todos'){ - this.events.push({ - title: this.timeLineTemplate(startHours, element.Location, element.Body, element.CalendarName, element.Subject,startHoursOtherFormate,EndHoursOtherFormate, eventIndex), - start: setHours(setMinutes(new Date(element.StartDate), 0), parseInt(startHours)), - end: setHours(setMinutes(new Date(element.EndDate), 0), parseInt(EndHours)), - color: { - primary: 'white', - secondary: 'white' - }, - id: element.EventId - }); + if( profile =='md' && eventIndex==3){ + console.log('mdEvent:', element,eventIndex); } - + + events.push({ + title: this.timeLineTemplate(startHours, element.Location, element.Body, element.CalendarName, element.Subject,startHoursOtherFormate,EndHoursOtherFormate, eventIndex, profile), + start: setHours(setMinutes(new Date(element.StartDate), 0), parseInt(startHours)), + end: setHours(setMinutes(new Date(element.EndDate), 0), parseInt(EndHours)), + color: { + primary: '#0000', + secondary: '#0000' + }, + id: element.EventId, + index: eventIndex, + profile: profile + }); + }); - this.onCurrentChanged(this.eventSelectedDate); - // - this.showTimelineFilterState = false; + // this.onCurrentChanged(this.eventSelectedDate); + + return events; } loadRangeEvents(startTime: Date, endTime: Date){ - this.showTimeline = false; this.showLoader = true; - switch (this.segment) - { - case "Combinada": - //Inicializa o array eventSource - this.eventSource=[]; - + if(window.innerWidth < 1024){ + + this.showTimeline = false; - if(this.profile == "mdgpr"){ - this.eventService.getAllMdEvents( momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59') ).subscribe( - response => { - this.eventsList = response; - // loop - this.eventsList.forEach((element, eventIndex) => { + switch (this.segment) { + case "Combinado": + //Inicializa o array eventSource + this.eventSource=[]; + + + if(this.profile == "mdgpr"){ + this.eventService.getAllMdEvents( momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59') ).subscribe( + response => { + + this.eventSource=[]; + + this.eventsList = response; + // loop + this.eventsList.forEach((element, eventIndex) => { + + this.eventSource.push({ + title: element.Subject, + startTime: new Date(element.StartDate), + endTime: new Date(element.EndDate), + allDay: false, + event: element, + calendarName: element.CalendarName, + profile: 'md' + }); + }); + + const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'md'); + this.events = list; + this.TimelineMD = list; + + this.myCal.update(); + this.myCal.loadEvents(); + + this.showLoader = false; + this.showTimeline = true; + + this.timelineBoxCorrectHeight(500); + this.centralizeTimeline(500); + + }); + + } + else{ + this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe( + response => { + + // calendar + this.eventSource=[]; + + this.eventsList = response; + + // calendar + this.eventsList.forEach((element, eventIndex) => { + this.eventSource.push({ + title: element.Subject, + startTime: new Date(element.StartDate), + endTime: new Date(element.EndDate), + allDay: false, + event: element, + calendarName: element.CalendarName, + profile: 'pr' + }); + + }); + + + const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr'); + + this.events = list; + + this.TimelinePR = list; + + this.myCal.update(); + this.myCal.loadEvents(); + this.showLoader = false; + this.showTimeline = true; + + this.timelineBoxCorrectHeight(500); + this.centralizeTimeline(500); + + }); + } + break; + + case "Pessoal": + //Inicializa o array eventSource + this.eventSource=[]; + if(this.profile == "mdgpr"){ + this.eventService.getAllMdEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe(response => { + + this.eventSource=[]; + this.eventsListPessoal = response.filter(data => data.CalendarName == "Pessoal"); + this.eventsListPessoal.forEach(element => { + this.eventSource.push({ title: element.Subject, startTime: new Date(element.StartDate), endTime: new Date(element.EndDate), allDay: false, event: element, - calendarName: element.CalendarName + profile: 'md' }); }); - // this.timelineFilter(this.timelineFilterState); - + const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'md'); + + this.events = list; + this.TimelineMD = list; + this.myCal.update(); this.myCal.loadEvents(); @@ -432,45 +631,13 @@ export class AgendaPage implements OnInit { this.timelineBoxCorrectHeight(500); this.centralizeTimeline(500); - }); - - } - else{ - this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe( - response => { - this.eventsList = response; - this.eventsList.forEach((element, eventIndex) => { - this.eventSource.push({ - title: element.Subject, - startTime: new Date(element.StartDate), - endTime: new Date(element.EndDate), - allDay: false, - event: element, - calendarName: element.CalendarName - }); - - }); - - // this.timelineFilter(this.timelineFilterState); - - this.myCal.update(); - this.myCal.loadEvents(); - this.showLoader = false; - this.showTimeline = true; - - this.timelineBoxCorrectHeight(500); - this.centralizeTimeline(500); - - }); - } - break; - - case "Pessoal": - //Inicializa o array eventSource - this.eventSource=[]; - if(this.profile == "mdgpr"){ - this.eventService.getAllMdEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe(response => { + + } + else{ + this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe(response => { + this.eventSource=[]; + this.eventsListPessoal = response.filter(data => data.CalendarName == "Pessoal"); this.eventsListPessoal.forEach(element => { this.eventSource.push({ @@ -478,38 +645,52 @@ export class AgendaPage implements OnInit { startTime: new Date(element.StartDate), endTime: new Date(element.EndDate), allDay: false, - event: element + event: element, + profile: 'pr' }); }); this.myCal.update(); this.myCal.loadEvents(); this.showLoader = false; }); - } - else{ - this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe(response => { - this.eventsListPessoal = response.filter(data => data.CalendarName == "Pessoal"); - this.eventsListPessoal.forEach(element => { - this.eventSource.push({ - title: element.Subject, - startTime: new Date(element.StartDate), - endTime: new Date(element.EndDate), - allDay: false, - event: element - }); - }); - this.myCal.update(); - this.myCal.loadEvents(); - this.showLoader = false; - }); - } - break; + } + break; + + case "Oficial": + //Inicializa o array eventSource + this.eventSource=[]; + if(this.profile == "mdgpr"){ + this.eventService.getAllMdEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe(res => { + this.eventSource=[]; + this.eventsListOficial = res.filter(data => data.CalendarName == "Oficial"); + this.eventsListOficial.forEach(element => { + this.eventSource.push({ + title: element.Subject, + startTime: new Date(element.StartDate), + endTime: new Date(element.EndDate), + allDay: false, + event: element, + profile: 'pr' + }); + }); - case "Oficial": - //Inicializa o array eventSource - this.eventSource=[]; - if(this.profile == "mdgpr"){ - this.eventService.getAllMdEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe(res => { + const list = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr'); + + this.events = list; + this.TimelinePR = list; + + this.myCal.update(); + this.myCal.loadEvents(); + + this.showLoader = false; + this.showTimeline = true; + + this.timelineBoxCorrectHeight(500); + this.centralizeTimeline(500); + }); + }else{ + this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe(res => { + this.eventSource=[]; this.eventsListOficial = res.filter(data => data.CalendarName == "Oficial"); this.eventsListOficial.forEach(element => { this.eventSource.push({ @@ -517,38 +698,105 @@ export class AgendaPage implements OnInit { startTime: new Date(element.StartDate), endTime: new Date(element.EndDate), allDay: false, - event: element + event: element, + profile: 'pr' }); }); this.myCal.update(); this.myCal.loadEvents(); this.showLoader = false; }); - }else{ - this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe(res => { - this.eventsListOficial = res.filter(data => data.CalendarName == "Oficial"); - this.eventsListOficial.forEach(element => { - this.eventSource.push({ - title: element.Subject, - startTime: new Date(element.StartDate), - endTime: new Date(element.EndDate), - allDay: false, - event: element - }); - }); - this.myCal.update(); - this.myCal.loadEvents(); - this.showLoader = false; - }); - } - break; + } + break; + + } + } else { + + this.showTimelinePR = false; + this.showTimelineMD = false; + + // calendar + this.eventSource=[]; + + this.eventService.getAllMdEvents( momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59') ).subscribe( + response => { + + this.TimelineMD = []; + + this.eventsList = response; + // loop + this.eventsList.forEach((element, eventIndex) => { + + // calendar + this.eventSource.push({ + index: eventIndex, + title: element.Subject, + startTime: new Date(element.StartDate), + endTime: new Date(element.EndDate), + allDay: false, + event: element, + calendarName: element.CalendarName, + profile: 'md' + }); + }); + + const MDEventList = this.timelineFilter(this.timelineFilterState, this.eventsList, 'md'); + + this.events = MDEventList; + this.TimelineMD = MDEventList; + + this.myCal.update(); + this.myCal.loadEvents(); + + this.showTimelineMD = true; + + this.timelineBoxCorrectHeight(500); + this.centralizeTimeline(500); + + }); + + this.eventService.getAllPrEvents(momentG(new Date(startTime),'yyyy-MM-dd HH:mm:ss'), momentG(new Date(endTime),'yyyy-MM-dd 23:59:59')).subscribe( + response => { + + this.TimelinePR = []; + + this.eventsList = response; + this.eventsList.forEach((element, eventIndex) => { + + // calendar + this.eventSource.push({ + index: eventIndex, + title: element.Subject, + startTime: new Date(element.StartDate), + endTime: new Date(element.EndDate), + allDay: false, + event: element, + calendarName: element.CalendarName, + profile:'pr' + }); + + }); + + this.TimelinePR = this.timelineFilter(this.timelineFilterState, this.eventsList, 'pr'); + + this.myCal.update(); + this.myCal.loadEvents(); + + this.showTimelinePR = true; + + this.timelineBoxCorrectHeight(500); + this.centralizeTimeline(500); + + this.showLoader = false; + }); + + } - } } actions(){ - } + } doRefresh(ev: any){ this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate); @@ -557,8 +805,9 @@ export class AgendaPage implements OnInit { }, 250) } showAlert(){ - this.alertCrontroller.presentAlert("Funcionalidade em desenvolvimento."); + this.alertController.presentAlert("Funcionalidade em desenvolvimento."); } + changeProfile(){ if(this.profile == "mdgpr"){ @@ -578,35 +827,62 @@ export class AgendaPage implements OnInit { } async openAddEvent() { - const modal = await this.modalCtrl.create({ - component: NewEventPage, - componentProps:{ - segment: this.segment, - profile: this.profile, - eventSelectedDate: this.eventSelectedDate - }, - cssClass: 'modal', - backdropDismiss: false - }); - await modal.present(); - modal.onDidDismiss().then((data) => { - let postEvent: Event = data['data']; - if (postEvent.Subject != null) - { - this.eventSource.push({ - title: postEvent.Subject, - startTime: new Date(postEvent.StartDate), - endTime: new Date(postEvent.EndDate), - allDay: false, - event: postEvent - }); - this.myCal.update(); - this.myCal.loadEvents(); - this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate); - } - }); + + await this.cloneAllmobileComponent(); + + this.showEventEditOrOpen = 'add'; + this.IsEvent = 'add'; + + if( window.innerWidth <= 1024){ + const modal = await this.modalCtrl.create({ + component: NewEventPage, + componentProps:{ + segment: this.segment, + profile: this.profile, + eventSelectedDate: this.eventSelectedDate + }, + cssClass: 'modal modal-desktop', + backdropDismiss: false + }); + await modal.present(); + modal.onDidDismiss().then((data) => { + if(data){ + + } + this.openAddEventDismiss(data['data']) + }); + } else { + this.mobileComponent.showAddNewEvent = true; + } } + + openEditEvent(){ + this.showEventEditOrOpen = 'edit'; + + } + + openAddEventDismiss(data){ + + let postEvent: Event = data; + if (postEvent.Subject != null) + { + this.eventSource.push({ + title: postEvent.Subject, + startTime: new Date(postEvent.StartDate), + endTime: new Date(postEvent.EndDate), + allDay: false, + event: postEvent + }); + this.myCal.update(); + this.myCal.loadEvents(); + this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate); + } + + this.cloneAllmobileComponent(); + } + + // open component async viewEventDetail(eventId:any) { console.log(this.profile); @@ -615,27 +891,166 @@ export class AgendaPage implements OnInit { componentProps:{ eventId: eventId }, - cssClass: 'modal', + cssClass: 'modal modal-desktop', backdropDismiss: false }); await modal.present(); modal.onDidDismiss().then((res)=>{ if(res){ - console.log(res); - this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate); + this.viewEventDetailDismiss(res); } }); } + // open component + async viewEventDetailDismiss(data){ + + await this.cloneAllmobileComponent() + + if (data.type == 'edit'){ + + this.selectedEvent = data.event; + this.postEvent = data.event; + + console.log(this.selectedEvent); + + console.log(this.postEvent); + + this.mobileComponent.showEditEvent = true; + + } + + this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate); + } + async viewEventsToApprove(){ - const modal = await this.modalCtrl.create({ - component: EventListPage, - componentProps:{ - }, - cssClass: 'modal', - backdropDismiss: false - }); - await modal.present(); - modal.onDidDismiss(); - } + await this.cloneAllmobileComponent() + + if( window.innerWidth <= 1024){ + const modal = await this.modalCtrl.create({ + component: EventListPage, + componentProps:{ + }, + cssClass: 'modal modal-desktop', + backdropDismiss: false + }); + await modal.present(); + modal.onDidDismiss(); + } else { + // hide all components + this.cloneAllmobileComponent(); + this.mobileComponent.showEventList = true; + } + + } + + approveEventDismiss({saveData, serialNumber, action}){ + + console.log(saveData); + + if(action == 'Aprovar'){ + this.eventToaprove = { + back: true, + saveData: saveData, + serialNumber:serialNumber + } + // this.mobileComponent.showEventList = false; + this.mobileComponent.transparentEventList = true; + this.mobileComponent.showEventToApprove = true; + } + } + + closeEventToApprove(){ + if (this.eventToaprove.back ==true && this.mobileComponent.showEventList ==true){ + this.mobileComponent.transparentEventList = false; + this.mobileComponent.showEventToApprove = false; + this.eventToaprove.back = false; + } + else { + this.mobileComponent.showEventToApprove = false; + this.mobileComponent.showEventList = false; + } + + } + + async cloneAllmobileComponent(){ + + this.mobileComponent.showAddNewEvent = false; + this.mobileComponent.showEditEvent = false; + this.mobileComponent.showEventDetails = false; + this.mobileComponent.showEventList = false; + this.mobileComponent.showEventToApprove = false; + this.mobileComponent.showAttendees = false; + this.mobileComponent.showAttendeeModal = false; + + this.closeEventToApprove(); + } + + async AproveEventEditEvent(data){ + console.log(data) + this.postEvent =data; + this.mobileComponent.transparentEventToApprove= true; + this.mobileComponent.showAddNewEvent = true; + } + + // open component + async openAttendeesComponent(data){ + + + if(Array.isArray(data)){ + if(data.length >= 1){ + + console.log('save!!!',data.length); + console.log(data); + this.contacts = data ; + } + } + + this.cloneAllmobileComponent(); + this.mobileComponent.showAttendees = true; + + } + + async clearContact(){ + this.contacts = []; + } + + async setContact(data:EventPerson[]){ + this.contacts = data; + } + + async openAttendeeModal(){ + this.cloneAllmobileComponent(); + this.mobileComponent.showAttendeeModal = true; + } + + + async GoBackEditOrAdd(){ + + + if(this.showEventEditOrOpen == "edit"){ + this.cloneAllmobileComponent(); + + this.mobileComponent.showEditEvent = true; + } else if(this.showEventEditOrOpen == "add") { + this.cloneAllmobileComponent(); + + this.mobileComponent.showAddNewEvent = true; + } else { + // do Nothings + } + + } + + // + async closeComponentEditEventOrAdd(){ + + if(this.IsEvent ='edit') { + this.eventClicked(this.viewingEventObject); + } else if (this.IsEvent = 'add') { + this.cloneAllmobileComponent(); + } + + } + } \ No newline at end of file diff --git a/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.html b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.html new file mode 100644 index 000000000..dc6432e93 --- /dev/null +++ b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.html @@ -0,0 +1,105 @@ + +
+
+ +
+
+ +
+
+ +
+
+
+ + + + Ações + + + + + + + Aprovar + + + + Emendar + + + + Rejeitar + + + + + + +
+
+
+ {{loadedEvent.workflowInstanceDataFields.Location}} +
+
+ {{loadedEvent.workflowInstanceDataFields.Agenda}} +
+
+
+ +

{{customDate}}

+

das {{loadedEvent.workflowInstanceDataFields.StartDate | date: 'hh:mm'}} às {{loadedEvent.workflowInstanceDataFields.EndDate | date: 'hh:mm'}}

+

(Não se repete)

+

Repete

+
+
+
+
+ +
Intervenientes
+ +

{{loadedEvent.workflowInstanceDataFields.Participants}}

+
+
+
Detalhes
+ +

{{loadedEvent.workflowInstanceDataFields.Body}}

+
+
+ +
+ +
Documentos Anexados
+ + +

Receita por Natureza

+

{{loadedAttachments.Remetente}}{{loadedAttachments.CreateDate}}

+
+
+
+
+
+ + +
+ +

+ Emendar +

+

+ + + +

+

+ Aprovar +

+
+ +
+
+
diff --git a/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.ts b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.ts new file mode 100644 index 000000000..b8fa2eef2 --- /dev/null +++ b/src/app/pages/agenda/approve-event-modal/approve-event-modal.page.ts @@ -0,0 +1,148 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { MenuController, ModalController, NavParams, PopoverController } from '@ionic/angular'; +import { Event } from 'src/app/models/event.model'; +import { AlertService } from 'src/app/services/alert.service'; +import { AttachmentsService } from 'src/app/services/attachments.service'; +import { ProcessesService } from 'src/app/services/processes.service'; +import { EmendMessageModalPage } from '../emend-message-modal/emend-message-modal.page'; +import { EventActionsPopoverPage } from '../event-actions-popover/event-actions-popover.page'; + +@Component({ + selector: 'app-approve-event-modal', + templateUrl: './approve-event-modal.page.html', + /* styleUrls: ['./approve-event-modal.page.scss'], */ +}) +export class ApproveEventModalPage implements OnInit { + event: Event; + loadedEvent:any; + loadedAttachments:any; + serialNumber:string; + customDate:any; + today:any; + + months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]; + days = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"]; + + + constructor( + private router:Router, + private modalController: ModalController, + private navParams: NavParams, + private processes:ProcessesService, + private attachmentsService: AttachmentsService, + private popoverController: PopoverController, + private menu: MenuController, + private alertService: AlertService, + ) + { + this.serialNumber = this.navParams.get('serialNumber'); + } + + ngOnInit() { + this.getTask(); + this.getAttachments(); + + window.onresize = (event) => { + // if not mobile remove all component + if( window.innerWidth >= 1024){ + this.modalController.dismiss(null); + } + }; + } + + notImplemented(){ + this.alertService.presentAlert('Funcionalidade em desenvolvimento'); + } + + close(){ + /* this.router.navigate(['/home/gabinete-digital/event-list']); */ + this.modalController.dismiss(null); + } + + getTask(){ + this.processes.GetTask(this.serialNumber).subscribe(res => { + console.log(res); + this.loadedEvent = res; + this.today = new Date(res.workflowInstanceDataFields.StartDate); + console.log(new Date(this.today)); + this.customDate = this.days[this.today.getDay()]+ ", " + this.today.getDate() +" de " + ( this.months[this.today.getMonth()]); + + }) + } + approveTask(serialNumber:string){ + let body = { "serialNumber": serialNumber, "action": "Aprovar" } + console.log(body); + this.processes.PostTaskAction(body); + this.alertService.presentAlert('Operação realizada com sucesso!'); + this.router.navigate(['/home/gabinete-digital/event-list']); + this.modalController.dismiss(null); + } + + emendTask(serialNumber:string){ + /* console.log('Emendar'); */ + this.menu.close(); + this.openEmendMessageModal(serialNumber); + this.modalController.dismiss(null); + } + + rejectTask(serialNumber:string){ + + let body = { "serialNumber": serialNumber, "action": "Rejeitar" } + console.log(body); + this.processes.PostTaskAction(body); + this.alertService.presentAlert('Operação realizada com sucesso!'); + this.router.navigate(['/home/gabinete-digital/event-list']); + this.modalController.dismiss(null); + } + getAttachments(){ + this.attachmentsService.getAttachmentsBySerial(this.serialNumber).subscribe(res=>{ + this.loadedAttachments = res; + console.log(res); + }); + } + + async openOptions(ev:any) { + const popover = await this.popoverController.create({ + component: EventActionsPopoverPage, + cssClass: 'event-actions-popover', + event: ev, + translucent: true + }); + return await popover.present(); + } + openMenu() { + this.menu.open(); + } + async openEmendMessageModal(serialNumber:string) { + const modal = await this.modalController.create({ + component: EmendMessageModalPage, + componentProps:{ + + }, + cssClass: 'emend-message-modal', + backdropDismiss: false + }); + + await modal.present(); + + modal.onDidDismiss().then(res => { + if(res.data !== ''){ + let body = { "serialNumber": serialNumber, + "action": "Emendar", + "dataFields": { + "ReviewerComments": res.data, + } + } + console.log(body); + this.processes.PostTaskAction(body); + this.router.navigate(['/home/gabinete-digital/event-list']); + this.alertService.presentAlert('Operação realizada com sucesso!'); + } + else{ + this.alertService.presentAlert('Operação cancelada!'); + } + }); +} + +} diff --git a/src/app/pages/agenda/edit-event/edit-event.page.html b/src/app/pages/agenda/edit-event/edit-event.page.html index ef7471556..5d46eb719 100644 --- a/src/app/pages/agenda/edit-event/edit-event.page.html +++ b/src/app/pages/agenda/edit-event/edit-event.page.html @@ -1,225 +1,223 @@ - - -
-
-
- Editar Evento -
-
-
-
-
-
-
- -
-
-
-
- -
-
- +
+
+ +
+
+ Editar Evento +
+
- - - -
- -
-
-
- -
-
- - Oficial - Pessoal - -
-
-
+ -
-
-
- -
-
- - Reunião - Viagem - Conferência - Encontro - -
+
+
-
- -
-
-
- -
-
- - - -
-
-
- -
-
-
- -
-
- - - -
-
-
- -
-
-
- -
-
- - Não se repete - Repete - -
-
-
- -
-
-
- -
-
-
- - - Ver ou editar participantes - - - +
+
+
+
-
- +
+ +
+
+ + + +
+ +
+
+
+ +
+
+ + Oficial + Pessoal +
-
- -