Merge develop to calendar

This commit is contained in:
Peter Maquiran
2021-01-29 15:24:50 +01:00
76 changed files with 1843 additions and 275 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
+4 -4
View File
@@ -31,15 +31,15 @@
<exclude-output />
<content url="file://$MODULE_DIR$/../../../app">
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/aidl_source_output_dir/debug/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/ap_generated_sources/debug/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/renderscript_source_output_dir/debug/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/ap_generated_sources/debug/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/aidl_source_output_dir/debug/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/res/google-services/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/res/rs/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/ap_generated_sources/debugAndroidTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/aidl_source_output_dir/debugAndroidTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/renderscript_source_output_dir/debugAndroidTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/aidl_source_output_dir/debugAndroidTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/build/generated/ap_generated_sources/debugUnitTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../app/src/debug/res" type="java-resource" />
@@ -37,9 +37,9 @@
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/build/generated/aidl_source_output_dir/debug/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/build/generated/res/rs/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/build/generated/aidl_source_output_dir/debugAndroidTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/build/generated/ap_generated_sources/debugAndroidTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/build/generated/renderscript_source_output_dir/debugAndroidTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/build/generated/renderscript_source_output_dir/debugAndroidTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/build/generated/ap_generated_sources/debugAndroidTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/build/generated/ap_generated_sources/debugUnitTest/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/../../../capacitor-cordova-android-plugins/src/debug/res" type="java-resource" />
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
#Wed Jan 27 15:04:01 WAT 2021
#Wed Jan 27 16:51:16 WAT 2021
path.3=classes_1.dex
path.2=classes_0.dex
path.1=classes.dex
@@ -639,7 +639,7 @@ const environment = {
apiChatUrl: 'https://www.tabularium.pt/api/v1/',
/* apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/', */
domain: 'gabinetedigital.local',
defaultuser: 'tiago.kayaya',
defaultuser: 'paulo.pinto',
defaultuserpwd: 'tabteste@006'
};
/*
File diff suppressed because one or more lines are too long
@@ -782,7 +782,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
/* apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/', */
domain: 'gabinetedigital.local',
defaultuser: 'tiago.kayaya',
defaultuser: 'paulo.pinto',
defaultuserpwd: 'tabteste@006'
};
/*
File diff suppressed because one or more lines are too long
@@ -9,7 +9,7 @@
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<ion-header>\r\n <app-header></app-header>\r\n</ion-header>\r\n<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"bg-blue\">\r\n <div class=\"main-header\">\r\n <div class=\"title-content\">\r\n <div class=\"div-title\">\r\n <ion-label class=\"title\">Chat</ion-label>\r\n </div>\r\n <div class=\"div-icon\">\r\n <ion-icon slot=\"end\" (click)=\"newGroup()\" src=\"assets/images/icons-chat-new-group.svg\" ></ion-icon>\r\n <ion-icon slot=\"end\" (click)=\"selectContact()\" src=\"assets/images/icons-chat-new-conversation.svg\"></ion-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <div class=\"main-content\">\r\n <ion-toolbar >\r\n <ion-segment [(ngModel)]=\"segment\" (ionChange)=\"onSegmentChange()\">\r\n <ion-segment-button value=\"Contactos\">\r\n Conversas\r\n </ion-segment-button>\r\n <ion-segment-button value=\"Grupos\">\r\n Grupos\r\n </ion-segment-button>\r\n </ion-segment>\r\n </ion-toolbar>\r\n <ion-refresher name=\"refresher\" slot=\"fixed\" (ionRefresh)=\"doRefresh($event)\">\r\n <ion-progress-bar type=\"indeterminate\" *ngIf=\"showLoader\"></ion-progress-bar>\r\n </ion-refresher>\r\n <div [ngSwitch]=\"segment\">\r\n <ion-list *ngSwitchCase=\"'Contactos'\">\r\n <ion-item-group>\r\n <ion-item-sliding>\r\n <div *ngFor=\"let dm of userDirectMessages\" class=\"item\">\r\n <div class=\"item-icon\">\r\n <ion-icon class=\"icon\" slot=\"start\" src=\"assets/images/icons-chat-chat-40.svg\"></ion-icon>\r\n </div>\r\n <div (click)=\"openMessages(dm)\" class=\"item-content\">\r\n <div class=\"item-title-time\">\r\n <div class=\"item-title\">\r\n <ion-label *ngFor=\"let user of dm.usernames\">\r\n <span *ngIf=\"user !=loggedUser.me.username\">\r\n {{user}}\r\n </span>\r\n </ion-label>\r\n </div>\r\n <div class=\"item-date\">{{dm._updatedAt | date: 'HH:mm'}}</div>\r\n </div>\r\n <div class=\"item-description\">\r\n <ion-label *ngIf=\"dm.lastMessage\">{{dm.lastMessage.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-item-sliding>\r\n </ion-item-group>\r\n </ion-list>\r\n <ion-list *ngSwitchCase=\"'Grupos'\" >\r\n <ion-item-group>\r\n <ion-item-sliding>\r\n <div *ngFor=\"let group of allGroups\" class=\"item\">\r\n <div class=\"item-icon\">\r\n <ion-icon class=\"icon\" slot=\"start\" src=\"assets/images/icons-chat-group-chat-40.svg\"></ion-icon>\r\n </div>\r\n <div (click)=\"openGroupMessages(group)\" class=\"item-content\">\r\n <div class=\"item-title-time\">\r\n <div class=\"item-title\">\r\n <ion-label>{{group.name.split('-').join(' ')}}</ion-label>\r\n </div>\r\n <div class=\"item-date\" *ngIf=\"group.lastMessage\">{{group.lastMessage._updatedAt | date: 'HH:mm'}}</div>\r\n </div>\r\n <div class=\"item-description\" *ngIf=\"group.lastMessage\">\r\n <ion-label>{{group.lastMessage.u.name}}: {{group.lastMessage.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div> \r\n </ion-item-sliding>\r\n </ion-item-group>\r\n \r\n </ion-list>\r\n </div>\r\n</div>\r\n</ion-content>\r\n\r\n\r\n");
/* harmony default export */ __webpack_exports__["default"] = ("<ion-header>\r\n <app-header></app-header>\r\n</ion-header>\r\n<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"bg-blue\">\r\n <div class=\"main-header\">\r\n <div class=\"title-content\">\r\n <div class=\"div-title\">\r\n <ion-label class=\"title\">Chat</ion-label>\r\n </div>\r\n <div class=\"div-icon\">\r\n <ion-icon slot=\"end\" (click)=\"newGroup()\" src=\"assets/images/icons-chat-new-group.svg\" ></ion-icon>\r\n <ion-icon slot=\"end\" (click)=\"selectContact()\" src=\"assets/images/icons-chat-new-conversation.svg\"></ion-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <ion-refresher name=\"refresher\" slot=\"fixed\" (ionRefresh)=\"doRefresh($event)\">\r\n <ion-progress-bar type=\"indeterminate\" *ngIf=\"showLoader\"></ion-progress-bar>\r\n <ion-refresher-content>\r\n </ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"main-content\">\r\n <ion-toolbar >\r\n <ion-segment [(ngModel)]=\"segment\" (ionChange)=\"onSegmentChange()\">\r\n <ion-segment-button value=\"Contactos\">\r\n Conversas\r\n </ion-segment-button>\r\n <ion-segment-button value=\"Grupos\">\r\n Grupos\r\n </ion-segment-button>\r\n </ion-segment>\r\n </ion-toolbar>\r\n <ion-refresher name=\"refresher\" slot=\"fixed\" (ionRefresh)=\"doRefresh($event)\">\r\n <ion-progress-bar type=\"indeterminate\" *ngIf=\"showLoader\"></ion-progress-bar>\r\n </ion-refresher>\r\n <div [ngSwitch]=\"segment\">\r\n <ion-list *ngSwitchCase=\"'Contactos'\">\r\n <ion-item-group>\r\n <ion-item-sliding>\r\n <div *ngFor=\"let dm of userDirectMessages\" class=\"item\">\r\n <div class=\"item-icon\">\r\n <ion-icon class=\"icon\" slot=\"start\" src=\"assets/images/icons-chat-chat-40.svg\"></ion-icon>\r\n </div>\r\n <div (click)=\"openMessages(dm)\" class=\"item-content\">\r\n <div class=\"item-title-time\">\r\n <div class=\"item-title\">\r\n <ion-label *ngFor=\"let user of dm.usernames\">\r\n <span *ngIf=\"user !=loggedUser.me.username\">\r\n {{user}}\r\n </span>\r\n </ion-label>\r\n </div>\r\n <div class=\"item-date\">{{dm._updatedAt | date: 'HH:mm'}}</div>\r\n </div>\r\n <div class=\"item-description\">\r\n <ion-label *ngIf=\"dm.lastMessage\">{{dm.lastMessage.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-item-sliding>\r\n </ion-item-group>\r\n </ion-list>\r\n <ion-list *ngSwitchCase=\"'Grupos'\" >\r\n <ion-item-group>\r\n <ion-item-sliding>\r\n <div *ngFor=\"let group of allGroups\" class=\"item\">\r\n <div class=\"item-icon\">\r\n <ion-icon class=\"icon\" slot=\"start\" src=\"assets/images/icons-chat-group-chat-40.svg\"></ion-icon>\r\n </div>\r\n <div (click)=\"openGroupMessages(group)\" class=\"item-content\">\r\n <div class=\"item-title-time\">\r\n <div class=\"item-title\">\r\n <ion-label>{{group.name.split('-').join(' ')}}</ion-label>\r\n </div>\r\n <div class=\"item-date\" *ngIf=\"group.lastMessage\">{{group.lastMessage._updatedAt | date: 'HH:mm'}}</div>\r\n </div>\r\n <div class=\"item-description\" *ngIf=\"group.lastMessage\">\r\n <ion-label>{{group.lastMessage.u.name}}: {{group.lastMessage.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div> \r\n </ion-item-sliding>\r\n </ion-item-group>\r\n \r\n </ion-list>\r\n </div>\r\n</div>\r\n</ion-content>\r\n\r\n\r\n");
/***/ }),
@@ -48,7 +48,7 @@ __webpack_require__.r(__webpack_exports__);
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"header-toolbar\">\r\n <div class=\"main-header\">\r\n <div class=\"header-top\">\r\n <app-btn-modal-dismiss></app-btn-modal-dismiss>\r\n <div class=\"middle\">\r\n <ion-label class=\"title\">{{roomName}}</ion-label>\r\n </div>\r\n <div class=\"right\">\r\n <ion-icon (click)=\"openOptions()\" src=\"assets/images/icons-menu.svg\"></ion-icon>\r\n </div> \r\n </div>\r\n <div (click)=\"addContacts()\" class=\"header-bottom\">\r\n <div class=\"header-bottom-icon\">\r\n <ion-icon src=\"assets/icon/icons-user.svg\"></ion-icon>\r\n </div>\r\n <div class=\"header-bottom-contacts\">\r\n <ion-label *ngFor=\"let member of members\" >\r\n {{member.name}},\r\n </ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n\r\n<ion-content>\r\n <div class=\"welcome-text\">\r\n <ion-label>Esta conversa passou a grupo</ion-label><br />\r\n <ion-label>A conversa original mantêm-se como chat individual</ion-label>\r\n </div>\r\n <div *ngFor=\"let msg of messages\" class=\"messages\">\r\n <div *ngIf=\"msg.t != 'r'\" class='incoming-{{msg.u.username!=loggedUser.me.username}}'>\r\n <div class=\"title\">\r\n <ion-label>{{msg.u.username}}</ion-label>\r\n <span class=\"time\">{{msg._updatedAt | date: 'HH:mm' }}</span>\r\n </div>\r\n <div>\r\n <ion-label>{{msg.msg}}</ion-label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"msg.t == 'r'\" class=\"info-text\">\r\n <ion-label>Alterou o assunto de para \"{{msg.msg.split('-').join(' ')}}\"</ion-label><br />\r\n </div>\r\n </div>\r\n\r\n</ion-content>\r\n<ion-footer>\r\n <ion-toolbar>\r\n <ion-row align-items-center class=\"row\">\r\n <ion-col size=\"1\">\r\n <ion-label class=\"ion-no-padding\" lines=\"none\">\r\n <ion-icon (click)=\"openChatOptions()\" class=\"chat-icon-options\" src=\"assets/icon/icons-chat-options.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n <ion-col size=\"9\">\r\n <ion-item class=\"ion-no-padding type-message\" lines=\"none\">\r\n <ion-textarea placeholder=\"Escrever uma mensagem\" auto-grow class=\"message-input\" rows=\"1\" [(ngModel)]=\"message\"></ion-textarea>\r\n <ion-icon slot=\"end\" src=\"assets/icon/icons-chat-mic.svg\"></ion-icon>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <!-- [disabled]=\"message === ''\" -->\r\n <ion-label>\r\n <ion-icon (click)=\"sendMessage()\" class=\"chat-icon-send\" src=\"assets/icon/icons-chat-send.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n </ion-row>\r\n </ion-toolbar>\r\n</ion-footer>\r\n");
/* harmony default export */ __webpack_exports__["default"] = ("<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"header-toolbar\">\r\n <div class=\"main-header\">\r\n <div class=\"header-top\">\r\n <app-btn-modal-dismiss></app-btn-modal-dismiss>\r\n <div class=\"middle\">\r\n <ion-label class=\"title\">{{roomName}}</ion-label>\r\n </div>\r\n <div class=\"right\">\r\n <ion-icon (click)=\"openOptions()\" src=\"assets/images/icons-menu.svg\"></ion-icon>\r\n </div> \r\n </div>\r\n <div (click)=\"addContacts()\" class=\"header-bottom\">\r\n <div class=\"header-bottom-icon\">\r\n <ion-icon src=\"assets/icon/icons-user.svg\"></ion-icon>\r\n </div>\r\n <div class=\"header-bottom-contacts\">\r\n <ion-label *ngFor=\"let member of members\" >\r\n {{member.name}},\r\n </ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n\r\n<ion-content>\r\n <ion-refresher name=\"refresher\" slot=\"fixed\" (ionRefresh)=\"doRefresh($event)\">\r\n <ion-progress-bar type=\"indeterminate\" *ngIf=\"showLoader\"></ion-progress-bar>\r\n <ion-refresher-content>\r\n </ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"welcome-text\">\r\n <ion-label>Esta conversa passou a grupo</ion-label><br />\r\n <ion-label>A conversa original mantêm-se como chat individual</ion-label>\r\n </div>\r\n <div *ngFor=\"let msg of messages\" class=\"messages\">\r\n <div *ngIf=\"msg.t != 'r'\" class='incoming-{{msg.u.username!=loggedUser.me.username}}'>\r\n <div class=\"title\">\r\n <ion-label>{{msg.u.name}}</ion-label>\r\n <span class=\"time\">{{msg._updatedAt | date: 'HH:mm' }}</span>\r\n </div>\r\n <div>\r\n <ion-label>{{msg.msg}}</ion-label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"msg.t == 'r'\" class=\"info-text\">\r\n <ion-label>Alterou o assunto de para \"{{msg.msg.split('-').join(' ')}}\"</ion-label><br />\r\n </div>\r\n </div>\r\n\r\n</ion-content>\r\n<ion-footer>\r\n <ion-toolbar>\r\n <ion-row align-items-center class=\"row\">\r\n <ion-col size=\"1\">\r\n <ion-label class=\"ion-no-padding\" lines=\"none\">\r\n <ion-icon (click)=\"openChatOptions()\" class=\"chat-icon-options\" src=\"assets/icon/icons-chat-options.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n <ion-col size=\"9\">\r\n <ion-item class=\"ion-no-padding type-message\" lines=\"none\">\r\n <ion-textarea placeholder=\"Escrever uma mensagem\" auto-grow class=\"message-input\" rows=\"1\" [(ngModel)]=\"message\"></ion-textarea>\r\n <ion-icon slot=\"end\" src=\"assets/icon/icons-chat-mic.svg\"></ion-icon>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <!-- [disabled]=\"message === ''\" -->\r\n <ion-label>\r\n <ion-icon (click)=\"sendMessage()\" class=\"chat-icon-send\" src=\"assets/icon/icons-chat-send.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n </ion-row>\r\n </ion-toolbar>\r\n</ion-footer>\r\n");
/***/ }),
@@ -74,7 +74,7 @@ __webpack_require__.r(__webpack_exports__);
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"header-toolbar\">\r\n <div class=\"main-header\">\r\n <div class=\"header-top\">\r\n <app-btn-modal-dismiss></app-btn-modal-dismiss>\r\n <div class=\"middle\" *ngFor=\"let users of dmUsers\">\r\n <ion-label class=\"title\">{{users.name}}</ion-label>\r\n <span><ion-icon class=\"{{users.status}}\" name=\"ellipse\"></ion-icon></span>\r\n </div>\r\n <div class=\"right\">\r\n <ion-icon (click)=\"openMessagesOptions()\" src=\"assets/images/icons-menu.svg\"></ion-icon>\r\n </div> \r\n </div>\r\n <div class=\"header-bottom\" (click)=\"addContacts()\">\r\n <div class=\"header-bottom-icon\">\r\n <ion-icon src=\"assets/icon/icons-user.svg\"></ion-icon>\r\n </div>\r\n <div class=\"header-bottom-contacts\">\r\n <ion-label class=\"text-color-blue\">Adicionar contacto</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <div class=\"messages\" #scrollMe>\r\n <!-- <ion-infinite-scroll position=\"top\" threshold=\"25%\" (ionInfinite)=\"loadMoreMessages($event)\">\r\n <ion-infinite-scroll-content loadindSpiniter=\"crescent\" loadingText=\"Carregando...\">\r\n\r\n </ion-infinite-scroll-content>\r\n </ion-infinite-scroll> -->\r\n <!-- <div class=\"incoming\">\r\n <div class=\"title\">\r\n <ion-label>Secretário Assuntos sociais</ion-label>\r\n <span class=\"time\">14:23</span>\r\n </div>\r\n <div>\r\n <img src='assets/images/1.jpg' tappable>\r\n <ion-label hidden >Investidura Filipe Nyusi</ion-label>\r\n </div>\r\n </div> -->\r\n <div *ngFor=\"let msg of messages\" class='incoming-{{msg.u.username!=loggedUser.me.username}}'>\r\n <div class=\"title\">\r\n <ion-label>{{msg.u.name}}</ion-label>\r\n <span class=\"time\">{{msg._updatedAt | date: 'HH:mm' }}</span>\r\n </div>\r\n <div>\r\n <ion-label>{{msg.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</ion-content>\r\n<ion-footer>\r\n <ion-toolbar>\r\n <ion-row align-items-center class=\"row\">\r\n <ion-col size=\"1\">\r\n <ion-label class=\"ion-no-padding\" lines=\"none\">\r\n <ion-icon (click)=\"openChatOptions()\" class=\"chat-icon-options\" src=\"assets/icon/icons-chat-options.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n <ion-col size=\"9\">\r\n <ion-item class=\"ion-no-padding type-message\" lines=\"none\">\r\n <ion-textarea clearOnEdit=\"true\" placeholder=\"Escrever uma mensagem\" auto-grow class=\"message-input\" rows=\"1\" [(ngModel)]=\"message\"></ion-textarea>\r\n <ion-icon slot=\"end\" src=\"assets/icon/icons-chat-mic.svg\"></ion-icon>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <!-- [disabled]=\"message === ''\" -->\r\n <ion-label>\r\n <ion-icon (click)=\"sendMessage()\" class=\"chat-icon-send\" src=\"assets/icon/icons-chat-send.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n </ion-row>\r\n </ion-toolbar>\r\n</ion-footer>\r\n");
/* harmony default export */ __webpack_exports__["default"] = ("<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"header-toolbar\">\r\n <div class=\"main-header\">\r\n <div class=\"header-top\">\r\n <app-btn-modal-dismiss></app-btn-modal-dismiss>\r\n <div class=\"middle\" *ngFor=\"let users of dmUsers\">\r\n <ion-label class=\"title\">{{users.name}}</ion-label>\r\n <span><ion-icon class=\"{{users.status}}\" name=\"ellipse\"></ion-icon></span>\r\n </div>\r\n <div class=\"right\">\r\n <ion-icon (click)=\"openMessagesOptions()\" src=\"assets/images/icons-menu.svg\"></ion-icon>\r\n </div> \r\n </div>\r\n <div class=\"header-bottom\" (click)=\"addContacts()\">\r\n <div class=\"header-bottom-icon\">\r\n <ion-icon src=\"assets/icon/icons-user.svg\"></ion-icon>\r\n </div>\r\n <div class=\"header-bottom-contacts\">\r\n <ion-label class=\"text-color-blue\">Adicionar contacto</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <ion-refresher name=\"refresher\" slot=\"fixed\" (ionRefresh)=\"doRefresh($event)\">\r\n <ion-progress-bar type=\"indeterminate\" *ngIf=\"showLoader\"></ion-progress-bar>\r\n <ion-refresher-content>\r\n </ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"messages\" #scrollMe>\r\n <!-- <ion-infinite-scroll position=\"top\" threshold=\"25%\" (ionInfinite)=\"loadMoreMessages($event)\">\r\n <ion-infinite-scroll-content loadindSpiniter=\"crescent\" loadingText=\"Carregando...\">\r\n\r\n </ion-infinite-scroll-content>\r\n </ion-infinite-scroll> -->\r\n <!-- <div class=\"incoming\">\r\n <div class=\"title\">\r\n <ion-label>Secretário Assuntos sociais</ion-label>\r\n <span class=\"time\">14:23</span>\r\n </div>\r\n <div>\r\n <img src='assets/images/1.jpg' tappable>\r\n <ion-label hidden >Investidura Filipe Nyusi</ion-label>\r\n </div>\r\n </div> -->\r\n <div *ngFor=\"let msg of messages\" class='incoming-{{msg.u.username!=loggedUser.me.username}}'>\r\n <div class=\"title\">\r\n <ion-label>{{msg.u.name}}</ion-label>\r\n <span class=\"time\">{{msg._updatedAt | date: 'HH:mm' }}</span>\r\n </div>\r\n <div>\r\n <ion-label>{{msg.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</ion-content>\r\n<ion-footer>\r\n <ion-toolbar>\r\n <ion-row align-items-center class=\"row\">\r\n <ion-col size=\"1\">\r\n <ion-label class=\"ion-no-padding\" lines=\"none\">\r\n <ion-icon (click)=\"openChatOptions()\" class=\"chat-icon-options\" src=\"assets/icon/icons-chat-options.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n <ion-col size=\"9\">\r\n <ion-item class=\"ion-no-padding type-message\" lines=\"none\">\r\n <ion-textarea clearOnEdit=\"true\" placeholder=\"Escrever uma mensagem\" auto-grow class=\"message-input\" rows=\"1\" [(ngModel)]=\"message\"></ion-textarea>\r\n <ion-icon slot=\"end\" src=\"assets/icon/icons-chat-mic.svg\"></ion-icon>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <!-- [disabled]=\"message === ''\" -->\r\n <ion-label>\r\n <ion-icon (click)=\"sendMessage()\" class=\"chat-icon-send\" src=\"assets/icon/icons-chat-send.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n </ion-row>\r\n </ion-toolbar>\r\n</ion-footer>\r\n");
/***/ }),
@@ -311,17 +311,24 @@ let ChatPage = class ChatPage {
this.loggedUser = res;
console.log(this.loggedUser);
});
this.doRefresh();
this.load();
}
onSegmentChange() {
this.doRefresh();
this.load();
}
doRefresh() {
/* setInterval(()=>{ */
this.getDirectMessages();
this.getGroups();
/* this.customRoom(); */
/* }, 2000); */
doRefresh(ev) {
this.load();
ev.target.complete();
}
load() {
switch (this.segment) {
case "Contactos":
this.getDirectMessages();
break;
case "Grupos":
this.getGroups();
break;
}
}
customRoom() {
let params = new _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpParams"]();
@@ -337,10 +344,10 @@ let ChatPage = class ChatPage {
this.userDirectMessages = res.ims.sort((a, b) => {
var dateA = new Date(a._updatedAt).getTime();
var dateB = new Date(b._updatedAt).getTime();
this.showLoader = false;
return dateB - dateA;
});
console.log(this.userDirectMessages);
this.showLoader = false;
});
}
getChatMembers() {
@@ -358,10 +365,10 @@ let ChatPage = class ChatPage {
this.allGroups = all.sort((a, b) => {
var dateA = new Date(a._updatedAt).getTime();
var dateB = new Date(b._updatedAt).getTime();
this.showLoader = false;
return dateB - dateA;
});
console.log(this.allGroups);
this.showLoader = false;
});
});
}
@@ -822,22 +829,27 @@ let GroupMessagesPage = class GroupMessagesPage {
this.loggedUser = res;
console.log(this.loggedUser);
});
this.doRefresh();
this.load();
}
load() {
this.getGroupContacts();
this.loadGroupMessages();
}
close() {
this.modalController.dismiss();
}
doRefresh( /* event */) {
this.getGroupContacts();
this.loadGroupMessages();
/* event.target.complete(); */
doRefresh(ev) {
this.load();
ev.target.complete();
}
getGroupContacts() {
this.showLoader = true;
//If group is private call getGroupMembers
if (this.room.t === 'p') {
this.chatService.getGroupMembers(this.room._id).subscribe(res => {
console.log(res);
this.members = res['members'];
this.showLoader = false;
});
}
//Otherwise call getChannelMembers for públic groups
@@ -845,16 +857,19 @@ let GroupMessagesPage = class GroupMessagesPage {
this.chatService.getChannelMembers(this.room._id).subscribe(res => {
console.log(res);
this.members = res['members'];
this.showLoader = false;
});
}
}
loadGroupMessages() {
this.showLoader = true;
//If group is private call getGroupMembers
if (this.room.t === 'p') {
this.chatService.getPrivateGroupMessages(this.room._id).subscribe(res => {
console.log(res);
let msgOnly = res['messages'].filter(data => data.t != 'au');
this.messages = msgOnly.reverse();
this.showLoader = false;
});
}
//Otherwise call getChannelMembers for públic groups
@@ -893,7 +908,7 @@ let GroupMessagesPage = class GroupMessagesPage {
if (res.data) {
this.roomName = res.data.name.split('-').join(' ');
console.log(this.roomName);
this.doRefresh();
this.load();
/* this.modalController.dismiss(); */
}
;
@@ -930,7 +945,7 @@ let GroupMessagesPage = class GroupMessagesPage {
});
yield modal.present();
modal.onDidDismiss().then(() => {
this.doRefresh();
this.load();
});
});
}
@@ -1182,14 +1197,17 @@ let MessagesPage = class MessagesPage {
this.loggedUser = res;
console.log(this.loggedUser);
});
/* console.log(this.dm); */
/* setInterval(()=>{ */
this.load();
/* }, 9000); */
}
load() {
this.loadMessages();
/* }, 2000); */
this.getChatMembers();
}
loadUser() {
console.log('working');
doRefresh(ev) {
this.load();
ev.target.complete();
}
ngAfterViewChecked() {
this.scrollToBottom();
@@ -1214,6 +1232,7 @@ let MessagesPage = class MessagesPage {
this.message = "";
}
loadMessages() {
this.showLoader = true;
this.chatService.getRoomMessages(this.dm._id).subscribe(res => {
/* console.log(res); */
this.messages = res['messages'].reverse();
@@ -1221,10 +1240,12 @@ let MessagesPage = class MessagesPage {
});
}
getChatMembers() {
this.showLoader = true;
this.chatService.getMembers(this.dm._id).subscribe(res => {
this.dmUsers = res['members'].filter(data => data.username != this.loggedUser.me.username);
console.log(res);
console.log(this.dmUsers);
this.showLoader = false;
});
}
openMessagesOptions(ev) {
File diff suppressed because one or more lines are too long
@@ -21,7 +21,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
/* harmony default export */
__webpack_exports__["default"] = "<ion-header>\r\n <app-header></app-header>\r\n</ion-header>\r\n<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"bg-blue\">\r\n <div class=\"main-header\">\r\n <div class=\"title-content\">\r\n <div class=\"div-title\">\r\n <ion-label class=\"title\">Chat</ion-label>\r\n </div>\r\n <div class=\"div-icon\">\r\n <ion-icon slot=\"end\" (click)=\"newGroup()\" src=\"assets/images/icons-chat-new-group.svg\" ></ion-icon>\r\n <ion-icon slot=\"end\" (click)=\"selectContact()\" src=\"assets/images/icons-chat-new-conversation.svg\"></ion-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <div class=\"main-content\">\r\n <ion-toolbar >\r\n <ion-segment [(ngModel)]=\"segment\" (ionChange)=\"onSegmentChange()\">\r\n <ion-segment-button value=\"Contactos\">\r\n Conversas\r\n </ion-segment-button>\r\n <ion-segment-button value=\"Grupos\">\r\n Grupos\r\n </ion-segment-button>\r\n </ion-segment>\r\n </ion-toolbar>\r\n <ion-refresher name=\"refresher\" slot=\"fixed\" (ionRefresh)=\"doRefresh($event)\">\r\n <ion-progress-bar type=\"indeterminate\" *ngIf=\"showLoader\"></ion-progress-bar>\r\n </ion-refresher>\r\n <div [ngSwitch]=\"segment\">\r\n <ion-list *ngSwitchCase=\"'Contactos'\">\r\n <ion-item-group>\r\n <ion-item-sliding>\r\n <div *ngFor=\"let dm of userDirectMessages\" class=\"item\">\r\n <div class=\"item-icon\">\r\n <ion-icon class=\"icon\" slot=\"start\" src=\"assets/images/icons-chat-chat-40.svg\"></ion-icon>\r\n </div>\r\n <div (click)=\"openMessages(dm)\" class=\"item-content\">\r\n <div class=\"item-title-time\">\r\n <div class=\"item-title\">\r\n <ion-label *ngFor=\"let user of dm.usernames\">\r\n <span *ngIf=\"user !=loggedUser.me.username\">\r\n {{user}}\r\n </span>\r\n </ion-label>\r\n </div>\r\n <div class=\"item-date\">{{dm._updatedAt | date: 'HH:mm'}}</div>\r\n </div>\r\n <div class=\"item-description\">\r\n <ion-label *ngIf=\"dm.lastMessage\">{{dm.lastMessage.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-item-sliding>\r\n </ion-item-group>\r\n </ion-list>\r\n <ion-list *ngSwitchCase=\"'Grupos'\" >\r\n <ion-item-group>\r\n <ion-item-sliding>\r\n <div *ngFor=\"let group of allGroups\" class=\"item\">\r\n <div class=\"item-icon\">\r\n <ion-icon class=\"icon\" slot=\"start\" src=\"assets/images/icons-chat-group-chat-40.svg\"></ion-icon>\r\n </div>\r\n <div (click)=\"openGroupMessages(group)\" class=\"item-content\">\r\n <div class=\"item-title-time\">\r\n <div class=\"item-title\">\r\n <ion-label>{{group.name.split('-').join(' ')}}</ion-label>\r\n </div>\r\n <div class=\"item-date\" *ngIf=\"group.lastMessage\">{{group.lastMessage._updatedAt | date: 'HH:mm'}}</div>\r\n </div>\r\n <div class=\"item-description\" *ngIf=\"group.lastMessage\">\r\n <ion-label>{{group.lastMessage.u.name}}: {{group.lastMessage.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div> \r\n </ion-item-sliding>\r\n </ion-item-group>\r\n \r\n </ion-list>\r\n </div>\r\n</div>\r\n</ion-content>\r\n\r\n\r\n";
__webpack_exports__["default"] = "<ion-header>\r\n <app-header></app-header>\r\n</ion-header>\r\n<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"bg-blue\">\r\n <div class=\"main-header\">\r\n <div class=\"title-content\">\r\n <div class=\"div-title\">\r\n <ion-label class=\"title\">Chat</ion-label>\r\n </div>\r\n <div class=\"div-icon\">\r\n <ion-icon slot=\"end\" (click)=\"newGroup()\" src=\"assets/images/icons-chat-new-group.svg\" ></ion-icon>\r\n <ion-icon slot=\"end\" (click)=\"selectContact()\" src=\"assets/images/icons-chat-new-conversation.svg\"></ion-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <ion-refresher name=\"refresher\" slot=\"fixed\" (ionRefresh)=\"doRefresh($event)\">\r\n <ion-progress-bar type=\"indeterminate\" *ngIf=\"showLoader\"></ion-progress-bar>\r\n <ion-refresher-content>\r\n </ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"main-content\">\r\n <ion-toolbar >\r\n <ion-segment [(ngModel)]=\"segment\" (ionChange)=\"onSegmentChange()\">\r\n <ion-segment-button value=\"Contactos\">\r\n Conversas\r\n </ion-segment-button>\r\n <ion-segment-button value=\"Grupos\">\r\n Grupos\r\n </ion-segment-button>\r\n </ion-segment>\r\n </ion-toolbar>\r\n <ion-refresher name=\"refresher\" slot=\"fixed\" (ionRefresh)=\"doRefresh($event)\">\r\n <ion-progress-bar type=\"indeterminate\" *ngIf=\"showLoader\"></ion-progress-bar>\r\n </ion-refresher>\r\n <div [ngSwitch]=\"segment\">\r\n <ion-list *ngSwitchCase=\"'Contactos'\">\r\n <ion-item-group>\r\n <ion-item-sliding>\r\n <div *ngFor=\"let dm of userDirectMessages\" class=\"item\">\r\n <div class=\"item-icon\">\r\n <ion-icon class=\"icon\" slot=\"start\" src=\"assets/images/icons-chat-chat-40.svg\"></ion-icon>\r\n </div>\r\n <div (click)=\"openMessages(dm)\" class=\"item-content\">\r\n <div class=\"item-title-time\">\r\n <div class=\"item-title\">\r\n <ion-label *ngFor=\"let user of dm.usernames\">\r\n <span *ngIf=\"user !=loggedUser.me.username\">\r\n {{user}}\r\n </span>\r\n </ion-label>\r\n </div>\r\n <div class=\"item-date\">{{dm._updatedAt | date: 'HH:mm'}}</div>\r\n </div>\r\n <div class=\"item-description\">\r\n <ion-label *ngIf=\"dm.lastMessage\">{{dm.lastMessage.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-item-sliding>\r\n </ion-item-group>\r\n </ion-list>\r\n <ion-list *ngSwitchCase=\"'Grupos'\" >\r\n <ion-item-group>\r\n <ion-item-sliding>\r\n <div *ngFor=\"let group of allGroups\" class=\"item\">\r\n <div class=\"item-icon\">\r\n <ion-icon class=\"icon\" slot=\"start\" src=\"assets/images/icons-chat-group-chat-40.svg\"></ion-icon>\r\n </div>\r\n <div (click)=\"openGroupMessages(group)\" class=\"item-content\">\r\n <div class=\"item-title-time\">\r\n <div class=\"item-title\">\r\n <ion-label>{{group.name.split('-').join(' ')}}</ion-label>\r\n </div>\r\n <div class=\"item-date\" *ngIf=\"group.lastMessage\">{{group.lastMessage._updatedAt | date: 'HH:mm'}}</div>\r\n </div>\r\n <div class=\"item-description\" *ngIf=\"group.lastMessage\">\r\n <ion-label>{{group.lastMessage.u.name}}: {{group.lastMessage.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div> \r\n </ion-item-sliding>\r\n </ion-item-group>\r\n \r\n </ion-list>\r\n </div>\r\n</div>\r\n</ion-content>\r\n\r\n\r\n";
/***/
},
@@ -81,7 +81,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
/* harmony default export */
__webpack_exports__["default"] = "<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"header-toolbar\">\r\n <div class=\"main-header\">\r\n <div class=\"header-top\">\r\n <app-btn-modal-dismiss></app-btn-modal-dismiss>\r\n <div class=\"middle\">\r\n <ion-label class=\"title\">{{roomName}}</ion-label>\r\n </div>\r\n <div class=\"right\">\r\n <ion-icon (click)=\"openOptions()\" src=\"assets/images/icons-menu.svg\"></ion-icon>\r\n </div> \r\n </div>\r\n <div (click)=\"addContacts()\" class=\"header-bottom\">\r\n <div class=\"header-bottom-icon\">\r\n <ion-icon src=\"assets/icon/icons-user.svg\"></ion-icon>\r\n </div>\r\n <div class=\"header-bottom-contacts\">\r\n <ion-label *ngFor=\"let member of members\" >\r\n {{member.name}},\r\n </ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n\r\n<ion-content>\r\n <div class=\"welcome-text\">\r\n <ion-label>Esta conversa passou a grupo</ion-label><br />\r\n <ion-label>A conversa original mantêm-se como chat individual</ion-label>\r\n </div>\r\n <div *ngFor=\"let msg of messages\" class=\"messages\">\r\n <div *ngIf=\"msg.t != 'r'\" class='incoming-{{msg.u.username!=loggedUser.me.username}}'>\r\n <div class=\"title\">\r\n <ion-label>{{msg.u.username}}</ion-label>\r\n <span class=\"time\">{{msg._updatedAt | date: 'HH:mm' }}</span>\r\n </div>\r\n <div>\r\n <ion-label>{{msg.msg}}</ion-label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"msg.t == 'r'\" class=\"info-text\">\r\n <ion-label>Alterou o assunto de para \"{{msg.msg.split('-').join(' ')}}\"</ion-label><br />\r\n </div>\r\n </div>\r\n\r\n</ion-content>\r\n<ion-footer>\r\n <ion-toolbar>\r\n <ion-row align-items-center class=\"row\">\r\n <ion-col size=\"1\">\r\n <ion-label class=\"ion-no-padding\" lines=\"none\">\r\n <ion-icon (click)=\"openChatOptions()\" class=\"chat-icon-options\" src=\"assets/icon/icons-chat-options.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n <ion-col size=\"9\">\r\n <ion-item class=\"ion-no-padding type-message\" lines=\"none\">\r\n <ion-textarea placeholder=\"Escrever uma mensagem\" auto-grow class=\"message-input\" rows=\"1\" [(ngModel)]=\"message\"></ion-textarea>\r\n <ion-icon slot=\"end\" src=\"assets/icon/icons-chat-mic.svg\"></ion-icon>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <!-- [disabled]=\"message === ''\" -->\r\n <ion-label>\r\n <ion-icon (click)=\"sendMessage()\" class=\"chat-icon-send\" src=\"assets/icon/icons-chat-send.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n </ion-row>\r\n </ion-toolbar>\r\n</ion-footer>\r\n";
__webpack_exports__["default"] = "<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"header-toolbar\">\r\n <div class=\"main-header\">\r\n <div class=\"header-top\">\r\n <app-btn-modal-dismiss></app-btn-modal-dismiss>\r\n <div class=\"middle\">\r\n <ion-label class=\"title\">{{roomName}}</ion-label>\r\n </div>\r\n <div class=\"right\">\r\n <ion-icon (click)=\"openOptions()\" src=\"assets/images/icons-menu.svg\"></ion-icon>\r\n </div> \r\n </div>\r\n <div (click)=\"addContacts()\" class=\"header-bottom\">\r\n <div class=\"header-bottom-icon\">\r\n <ion-icon src=\"assets/icon/icons-user.svg\"></ion-icon>\r\n </div>\r\n <div class=\"header-bottom-contacts\">\r\n <ion-label *ngFor=\"let member of members\" >\r\n {{member.name}},\r\n </ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n\r\n<ion-content>\r\n <ion-refresher name=\"refresher\" slot=\"fixed\" (ionRefresh)=\"doRefresh($event)\">\r\n <ion-progress-bar type=\"indeterminate\" *ngIf=\"showLoader\"></ion-progress-bar>\r\n <ion-refresher-content>\r\n </ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"welcome-text\">\r\n <ion-label>Esta conversa passou a grupo</ion-label><br />\r\n <ion-label>A conversa original mantêm-se como chat individual</ion-label>\r\n </div>\r\n <div *ngFor=\"let msg of messages\" class=\"messages\">\r\n <div *ngIf=\"msg.t != 'r'\" class='incoming-{{msg.u.username!=loggedUser.me.username}}'>\r\n <div class=\"title\">\r\n <ion-label>{{msg.u.name}}</ion-label>\r\n <span class=\"time\">{{msg._updatedAt | date: 'HH:mm' }}</span>\r\n </div>\r\n <div>\r\n <ion-label>{{msg.msg}}</ion-label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"msg.t == 'r'\" class=\"info-text\">\r\n <ion-label>Alterou o assunto de para \"{{msg.msg.split('-').join(' ')}}\"</ion-label><br />\r\n </div>\r\n </div>\r\n\r\n</ion-content>\r\n<ion-footer>\r\n <ion-toolbar>\r\n <ion-row align-items-center class=\"row\">\r\n <ion-col size=\"1\">\r\n <ion-label class=\"ion-no-padding\" lines=\"none\">\r\n <ion-icon (click)=\"openChatOptions()\" class=\"chat-icon-options\" src=\"assets/icon/icons-chat-options.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n <ion-col size=\"9\">\r\n <ion-item class=\"ion-no-padding type-message\" lines=\"none\">\r\n <ion-textarea placeholder=\"Escrever uma mensagem\" auto-grow class=\"message-input\" rows=\"1\" [(ngModel)]=\"message\"></ion-textarea>\r\n <ion-icon slot=\"end\" src=\"assets/icon/icons-chat-mic.svg\"></ion-icon>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <!-- [disabled]=\"message === ''\" -->\r\n <ion-label>\r\n <ion-icon (click)=\"sendMessage()\" class=\"chat-icon-send\" src=\"assets/icon/icons-chat-send.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n </ion-row>\r\n </ion-toolbar>\r\n</ion-footer>\r\n";
/***/
},
@@ -121,7 +121,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
/* harmony default export */
__webpack_exports__["default"] = "<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"header-toolbar\">\r\n <div class=\"main-header\">\r\n <div class=\"header-top\">\r\n <app-btn-modal-dismiss></app-btn-modal-dismiss>\r\n <div class=\"middle\" *ngFor=\"let users of dmUsers\">\r\n <ion-label class=\"title\">{{users.name}}</ion-label>\r\n <span><ion-icon class=\"{{users.status}}\" name=\"ellipse\"></ion-icon></span>\r\n </div>\r\n <div class=\"right\">\r\n <ion-icon (click)=\"openMessagesOptions()\" src=\"assets/images/icons-menu.svg\"></ion-icon>\r\n </div> \r\n </div>\r\n <div class=\"header-bottom\" (click)=\"addContacts()\">\r\n <div class=\"header-bottom-icon\">\r\n <ion-icon src=\"assets/icon/icons-user.svg\"></ion-icon>\r\n </div>\r\n <div class=\"header-bottom-contacts\">\r\n <ion-label class=\"text-color-blue\">Adicionar contacto</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <div class=\"messages\" #scrollMe>\r\n <!-- <ion-infinite-scroll position=\"top\" threshold=\"25%\" (ionInfinite)=\"loadMoreMessages($event)\">\r\n <ion-infinite-scroll-content loadindSpiniter=\"crescent\" loadingText=\"Carregando...\">\r\n\r\n </ion-infinite-scroll-content>\r\n </ion-infinite-scroll> -->\r\n <!-- <div class=\"incoming\">\r\n <div class=\"title\">\r\n <ion-label>Secretário Assuntos sociais</ion-label>\r\n <span class=\"time\">14:23</span>\r\n </div>\r\n <div>\r\n <img src='assets/images/1.jpg' tappable>\r\n <ion-label hidden >Investidura Filipe Nyusi</ion-label>\r\n </div>\r\n </div> -->\r\n <div *ngFor=\"let msg of messages\" class='incoming-{{msg.u.username!=loggedUser.me.username}}'>\r\n <div class=\"title\">\r\n <ion-label>{{msg.u.name}}</ion-label>\r\n <span class=\"time\">{{msg._updatedAt | date: 'HH:mm' }}</span>\r\n </div>\r\n <div>\r\n <ion-label>{{msg.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</ion-content>\r\n<ion-footer>\r\n <ion-toolbar>\r\n <ion-row align-items-center class=\"row\">\r\n <ion-col size=\"1\">\r\n <ion-label class=\"ion-no-padding\" lines=\"none\">\r\n <ion-icon (click)=\"openChatOptions()\" class=\"chat-icon-options\" src=\"assets/icon/icons-chat-options.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n <ion-col size=\"9\">\r\n <ion-item class=\"ion-no-padding type-message\" lines=\"none\">\r\n <ion-textarea clearOnEdit=\"true\" placeholder=\"Escrever uma mensagem\" auto-grow class=\"message-input\" rows=\"1\" [(ngModel)]=\"message\"></ion-textarea>\r\n <ion-icon slot=\"end\" src=\"assets/icon/icons-chat-mic.svg\"></ion-icon>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <!-- [disabled]=\"message === ''\" -->\r\n <ion-label>\r\n <ion-icon (click)=\"sendMessage()\" class=\"chat-icon-send\" src=\"assets/icon/icons-chat-send.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n </ion-row>\r\n </ion-toolbar>\r\n</ion-footer>\r\n";
__webpack_exports__["default"] = "<ion-header class=\"ion-no-border\">\r\n <ion-toolbar class=\"header-toolbar\">\r\n <div class=\"main-header\">\r\n <div class=\"header-top\">\r\n <app-btn-modal-dismiss></app-btn-modal-dismiss>\r\n <div class=\"middle\" *ngFor=\"let users of dmUsers\">\r\n <ion-label class=\"title\">{{users.name}}</ion-label>\r\n <span><ion-icon class=\"{{users.status}}\" name=\"ellipse\"></ion-icon></span>\r\n </div>\r\n <div class=\"right\">\r\n <ion-icon (click)=\"openMessagesOptions()\" src=\"assets/images/icons-menu.svg\"></ion-icon>\r\n </div> \r\n </div>\r\n <div class=\"header-bottom\" (click)=\"addContacts()\">\r\n <div class=\"header-bottom-icon\">\r\n <ion-icon src=\"assets/icon/icons-user.svg\"></ion-icon>\r\n </div>\r\n <div class=\"header-bottom-contacts\">\r\n <ion-label class=\"text-color-blue\">Adicionar contacto</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <ion-refresher name=\"refresher\" slot=\"fixed\" (ionRefresh)=\"doRefresh($event)\">\r\n <ion-progress-bar type=\"indeterminate\" *ngIf=\"showLoader\"></ion-progress-bar>\r\n <ion-refresher-content>\r\n </ion-refresher-content>\r\n </ion-refresher>\r\n <div class=\"messages\" #scrollMe>\r\n <!-- <ion-infinite-scroll position=\"top\" threshold=\"25%\" (ionInfinite)=\"loadMoreMessages($event)\">\r\n <ion-infinite-scroll-content loadindSpiniter=\"crescent\" loadingText=\"Carregando...\">\r\n\r\n </ion-infinite-scroll-content>\r\n </ion-infinite-scroll> -->\r\n <!-- <div class=\"incoming\">\r\n <div class=\"title\">\r\n <ion-label>Secretário Assuntos sociais</ion-label>\r\n <span class=\"time\">14:23</span>\r\n </div>\r\n <div>\r\n <img src='assets/images/1.jpg' tappable>\r\n <ion-label hidden >Investidura Filipe Nyusi</ion-label>\r\n </div>\r\n </div> -->\r\n <div *ngFor=\"let msg of messages\" class='incoming-{{msg.u.username!=loggedUser.me.username}}'>\r\n <div class=\"title\">\r\n <ion-label>{{msg.u.name}}</ion-label>\r\n <span class=\"time\">{{msg._updatedAt | date: 'HH:mm' }}</span>\r\n </div>\r\n <div>\r\n <ion-label>{{msg.msg}}</ion-label>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</ion-content>\r\n<ion-footer>\r\n <ion-toolbar>\r\n <ion-row align-items-center class=\"row\">\r\n <ion-col size=\"1\">\r\n <ion-label class=\"ion-no-padding\" lines=\"none\">\r\n <ion-icon (click)=\"openChatOptions()\" class=\"chat-icon-options\" src=\"assets/icon/icons-chat-options.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n <ion-col size=\"9\">\r\n <ion-item class=\"ion-no-padding type-message\" lines=\"none\">\r\n <ion-textarea clearOnEdit=\"true\" placeholder=\"Escrever uma mensagem\" auto-grow class=\"message-input\" rows=\"1\" [(ngModel)]=\"message\"></ion-textarea>\r\n <ion-icon slot=\"end\" src=\"assets/icon/icons-chat-mic.svg\"></ion-icon>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <!-- [disabled]=\"message === ''\" -->\r\n <ion-label>\r\n <ion-icon (click)=\"sendMessage()\" class=\"chat-icon-send\" src=\"assets/icon/icons-chat-send.svg\"></ion-icon>\r\n </ion-label>\r\n </ion-col>\r\n </ion-row>\r\n </ion-toolbar>\r\n</ion-footer>\r\n";
/***/
},
@@ -560,22 +560,31 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
_this.loggedUser = res;
console.log(_this.loggedUser);
});
this.doRefresh();
this.load();
}
}, {
key: "onSegmentChange",
value: function onSegmentChange() {
this.doRefresh();
this.load();
}
}, {
key: "doRefresh",
value: function doRefresh() {
/* setInterval(()=>{ */
this.getDirectMessages();
this.getGroups();
/* this.customRoom(); */
value: function doRefresh(ev) {
this.load();
ev.target.complete();
}
}, {
key: "load",
value: function load() {
switch (this.segment) {
case "Contactos":
this.getDirectMessages();
break;
/* }, 2000); */
case "Grupos":
this.getGroups();
break;
}
}
}, {
key: "customRoom",
@@ -597,10 +606,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
_this2.userDirectMessages = res.ims.sort(function (a, b) {
var dateA = new Date(a._updatedAt).getTime();
var dateB = new Date(b._updatedAt).getTime();
_this2.showLoader = false;
return dateB - dateA;
});
console.log(_this2.userDirectMessages);
_this2.showLoader = false;
});
}
}, {
@@ -630,10 +639,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
_this4.allGroups = all.sort(function (a, b) {
var dateA = new Date(a._updatedAt).getTime();
var dateB = new Date(b._updatedAt).getTime();
_this4.showLoader = false;
return dateB - dateA;
});
console.log(_this4.allGroups);
_this4.showLoader = false;
});
});
}
@@ -1489,7 +1498,13 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
_this10.loggedUser = res;
console.log(_this10.loggedUser);
});
this.doRefresh();
this.load();
}
}, {
key: "load",
value: function load() {
this.getGroupContacts();
this.loadGroupMessages();
}
}, {
key: "close",
@@ -1498,29 +1513,29 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
}
}, {
key: "doRefresh",
value: function doRefresh()
/* event */
{
this.getGroupContacts();
this.loadGroupMessages();
/* event.target.complete(); */
value: function doRefresh(ev) {
this.load();
ev.target.complete();
}
}, {
key: "getGroupContacts",
value: function getGroupContacts() {
var _this11 = this;
//If group is private call getGroupMembers
this.showLoader = true; //If group is private call getGroupMembers
if (this.room.t === 'p') {
this.chatService.getGroupMembers(this.room._id).subscribe(function (res) {
console.log(res);
_this11.members = res['members'];
_this11.showLoader = false;
});
} //Otherwise call getChannelMembers for públic groups
else {
this.chatService.getChannelMembers(this.room._id).subscribe(function (res) {
console.log(res);
_this11.members = res['members'];
_this11.showLoader = false;
});
}
}
@@ -1529,7 +1544,8 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
value: function loadGroupMessages() {
var _this12 = this;
//If group is private call getGroupMembers
this.showLoader = true; //If group is private call getGroupMembers
if (this.room.t === 'p') {
this.chatService.getPrivateGroupMessages(this.room._id).subscribe(function (res) {
console.log(res);
@@ -1537,6 +1553,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
return data.t != 'au';
});
_this12.messages = msgOnly.reverse();
_this12.showLoader = false;
});
} //Otherwise call getChannelMembers for públic groups
else {
@@ -1597,7 +1614,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
_this14.roomName = res.data.name.split('-').join(' ');
console.log(_this14.roomName);
_this14.doRefresh();
_this14.load();
/* this.modalController.dismiss(); */
}
@@ -1681,7 +1698,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
case 6:
modal.onDidDismiss().then(function () {
_this15.doRefresh();
_this15.load();
});
case 7:
@@ -2138,19 +2155,22 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
_this20.loggedUser = res;
console.log(_this20.loggedUser);
});
/* console.log(this.dm); */
/* setInterval(()=>{ */
this.load();
/* }, 9000); */
}
}, {
key: "load",
value: function load() {
this.loadMessages();
/* }, 2000); */
this.getChatMembers();
}
}, {
key: "loadUser",
value: function loadUser() {
console.log('working');
key: "doRefresh",
value: function doRefresh(ev) {
this.load();
ev.target.complete();
}
}, {
key: "ngAfterViewChecked",
@@ -2188,6 +2208,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
value: function loadMessages() {
var _this22 = this;
this.showLoader = true;
this.chatService.getRoomMessages(this.dm._id).subscribe(function (res) {
/* console.log(res); */
_this22.messages = res['messages'].reverse();
@@ -2199,12 +2220,14 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
value: function getChatMembers() {
var _this23 = this;
this.showLoader = true;
this.chatService.getMembers(this.dm._id).subscribe(function (res) {
_this23.dmUsers = res['members'].filter(function (data) {
return data.username != _this23.loggedUser.me.username;
});
console.log(res);
console.log(_this23.dmUsers);
_this23.showLoader = false;
});
}
}, {
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -639,7 +639,7 @@ const environment = {
apiChatUrl: 'https://www.tabularium.pt/api/v1/',
/* apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/', */
domain: 'gabinetedigital.local',
defaultuser: 'tiago.kayaya',
defaultuser: 'paulo.pinto',
defaultuserpwd: 'tabteste@006'
};
/*
File diff suppressed because one or more lines are too long
@@ -782,7 +782,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
/* apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/', */
domain: 'gabinetedigital.local',
defaultuser: 'tiago.kayaya',
defaultuser: 'paulo.pinto',
defaultuserpwd: 'tabteste@006'
};
/*
File diff suppressed because one or more lines are too long
-21
View File
@@ -2950,21 +2950,6 @@
}
}
},
"@ng-bootstrap/ng-bootstrap": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-9.0.1.tgz",
"integrity": "sha512-dJFoK2mRsj/zL87PNv9frBD+72MkrMeFshXE26FKPf8P8JNFoL6zrcNLxlBouQ1rWBItH50BmlEqQOwyXazF7w==",
"requires": {
"tslib": "^2.0.0"
},
"dependencies": {
"tslib": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
"integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
}
}
},
"@ngtools/webpack": {
"version": "9.1.12",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.1.12.tgz",
@@ -3528,12 +3513,6 @@
"tslib": "^1.9.0"
}
},
"angular-swipe": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/angular-swipe/-/angular-swipe-0.4.0.tgz",
"integrity": "sha1-wwpyFLEhKIMzIu5ECbM7Ojx0AGc=",
"dev": true
},
"angular-tag-cloud-module": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/angular-tag-cloud-module/-/angular-tag-cloud-module-5.2.2.tgz",
-1
View File
@@ -40,7 +40,6 @@
"@ionic/pwa-elements": "^3.0.1",
"@ionic/storage": "^2.3.1",
"@logisticinfotech/ionic4-datepicker": "^1.4.4",
"@ng-bootstrap/ng-bootstrap": "^9.0.1",
"angular-calendar": "^0.28.22",
"angular-tag-cloud-module": "^5.2.2",
"angular2-calendar": "^0.3.7",
+4
View File
@@ -57,6 +57,10 @@ const routes: Routes = [
{
path: 'group-duration',
loadChildren: () => import('./shared/popover/group-duration/group-duration.module').then( m => m.GroupDurationPageModule)
},
{
path: 'header-no-search',
loadChildren: () => import('./shared/headers/header-no-search/header-no-search.module').then( m => m.HeaderNoSearchPageModule)
},
@@ -18,6 +18,18 @@ const routes: Routes = [
},
{
path: 'emend-message-modal',
loadChildren: () => import('./emend-message-modal/emend-message-modal.module').then( m => m.EmendMessageModalPageModule)
},
{
path: 'new-event',
loadChildren: () => import('./new-event/new-event.module').then( m => m.NewEventPageModule)
},
{
path: 'edit-event',
loadChildren: () => import('./edit-event/edit-event.module').then( m => m.EditEventPageModule)
},
{
path: 'view-event',
loadChildren: () => import('./view-event/view-event.module').then( m => m.ViewEventPageModule)
}
+2
View File
@@ -15,6 +15,7 @@ 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);
@@ -30,6 +31,7 @@ import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';
provide: DateAdapter,
useFactory: adapterFactory
}),
SharedModule,
AgendaPageRoutingModule,
NgCalendarModule,
CalModalPageModule,
+2 -14
View File
@@ -1,17 +1,5 @@
<ion-header class="ion-no-border">
<ion-toolbar class="ion-no-border" class="bg-blue">
<div class="div-top-header">
<div class="div-search">
<ion-icon src='assets/images/icons-search.svg'></ion-icon>
</div>
<div class="div-logo">
<img src='assets/images/logo-no-bg.png' alt='logo'>
</div>
<div class="div-profile">
<ion-icon src='assets/images/icons-profile.svg'></ion-icon>
</div>
</div>
</ion-toolbar>
<ion-header>
<app-header></app-header>
</ion-header>
<ion-header>
<div class="bg-blue">
+42 -2
View File
@@ -11,6 +11,7 @@
display: table-cell;
}
:host ::ng-deep {
.monthview-primary-with-event {
background-color: white !important;
@@ -45,6 +46,45 @@
width: 35px;
}
.main-header{
width: 100%; /* 400px */
height: 100%;
font-family: Roboto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background-color: #fff;
overflow:hidden;
padding: 15px 5px 0px 5px;
color:#000;
transform: translate3d(0, 1px, 0);
.title-content{
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
background: #ecf8ff;
}
.div-title{
padding: 0!important;
float: left;
}
.title{
font-size: 25px;
}
.div-icon{
width: 40px;
float: right;
font-size: 35px;
overflow: auto;
padding: 1px;
}
.div-icon ion-icon{
float: right;
padding-left: 20px;
}
}
/* TOGGLE button */
.switch {
@@ -190,9 +230,9 @@ input:checked[type="checkbox"]::before{
}
.toggle{
position: relative;
display: inline;
display: block;
font-family: 'Montserrat', sans-serif;
display: grid;
/* display: grid; */
text-align: center;
}
label{
+39 -1
View File
@@ -7,6 +7,8 @@ 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';
// showTimeline
import { setHours, setMinutes } from 'date-fns';
@@ -209,7 +211,8 @@ export class AgendaPage implements OnInit {
//Show information of the event
async onEventSelected(ev: { event: Event}){
this.router.navigate(["/home/agenda", ev.event.EventId, 'agenda']);
this.viewEventDetail();
/* this.router.navigate(["/home/agenda", ev.event.EventId, 'agenda']); */
}
@@ -471,4 +474,39 @@ export class AgendaPage implements OnInit {
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
}
}
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();
}
async viewEventDetail() {
console.log(this.profile);
const modal = await this.modalCtrl.create({
component: ViewEventPage,
componentProps:{
segment: this.segment,
profile: this.profile,
/* eventSelectedDate: this.eventSelectedDate, */
},
cssClass: 'modal',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss();
}
}
@@ -37,48 +37,52 @@ ion-menu{
margin-left: 50px;
overflow: auto;
font-size: 18px;
}
.content-location{
width: 360px;
margin: 0 auto;
padding: 0;
overflow: auto;
}
.location-detail{
width: 210px;
font-weight: 700;
font-size: 18px;
float: left;
margin: 5px 5px 5px 0px;
}
.button-calendar-type{
width: 91px;
--border-radius: 12.5px;
--background: #ffb703;
margin-left: 5px;
.content-location{
width: 360px;
margin: 0 auto;
padding: 0;
overflow: auto;
}
.location-detail{
width: 210px;
font-weight: 700;
font-size: 18px;
float: left;
}
.button-calendar-type ion-button{
height: 25px;
}
.button-edit-event {
width: 140px;
height: 44px;
border-radius: 22.5px;
--background: #e0e9ee;
--color:#061b52;
margin: 5px 5px 5px 0px;
}
.button-calendar-type{
width: 91px;
--border-radius: 12.5px;
--background: #ffb703;
margin-left: 5px;
float: left;
}
.button-calendar-type ion-button{
height: 25px;
}
.button-edit-event {
width: 140px;
height: 44px;
border-radius: 22.5px;
--background: #e0e9ee;
--color:#061b52;
}
.content-details p{
font-size: 16px;
font-size: 16px;
}
}
.middle-conten{
.middle-content h3, .middle-content p{
font-size: 16px;
}
.bottom-content{
width: 360px;
margin: 0 auto;
}
}
.bottom-content{
width: 360px;
margin: 0 auto;
.bottom-content h3{
font-size: 16px;
margin: 0 0 0 10px;
@@ -110,6 +114,8 @@ ion-menu{
float: right;
font-size: 13px;
}
}
.buttons{
width: 360px;
margin: 0 auto;
@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { EditEventPage } from './edit-event.page';
const routes: Routes = [
{
path: '',
component: EditEventPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class EditEventPageRoutingModule {}
@@ -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 { EditEventPageRoutingModule } from './edit-event-routing.module';
import { EditEventPage } from './edit-event.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
EditEventPageRoutingModule
],
declarations: [EditEventPage]
})
export class EditEventPageModule {}
@@ -0,0 +1,211 @@
<ion-header class="ion-no-border">
<ion-toolbar class="header-toolbar">
<div class="main-header">
<div class="title-content">
<div class="middle">
<ion-label class="title">Editar Evento</ion-label>
</div>
</div>
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="main-content">
<div class="ion-item-container">
<ion-input placeholder="Assunto"></ion-input>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Localização"></ion-input>
</div>
</div>
<!-- Error messages -->
<!-- <span class="error ion-padding" >
Campo obrigatório
</span> -->
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione agenda" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option value="Oficial">Oficial</ion-select-option>
<ion-select-option value="Pessoal">Pessoal</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione tipo" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option value="Oficial">Reunião</ion-select-option>
<ion-select-option value="Pessoal">Viagem</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-datetime
placeholder="Início"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="2018"
max="2022"
>
</ion-datetime>
<!-- <ion-input placeholder="Data início" [(ngModel)]="postData.StartDate"></ion-input> -->
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-datetime
placeholder="Fim"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="2018"
max="2022"
>
</ion-datetime>
<!-- <ion-input placeholder="Data fim" [(ngModel)]="postData.EndDate"></ion-input> -->
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione repetição" value="false" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option value="false">Não se repete</ion-select-option>
<ion-select-option value="true">Repete</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label class="list-people-title">Adicionar intervenientes</ion-label>
<ion-label hidden >Text</ion-label>
</ion-list>
</ion-item>
</div>
<div class="add-people">
<ion-icon slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
</div>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-people-cc.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label class="list-people-title">Com conhecimento</ion-label>
<ion-label hidden >Text</ion-label>
</ion-list>
</ion-item>
</div>
<div class="add-people">
<ion-icon slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
</div>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Detalhes"></ion-input>
</div>
</div>
</div>
<div hidden class="ion-item-container-no-border">
<ion-label>
<div class="attach-icon">
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
</div>
<div class="attach-document">
<ion-label>Anexar Documentos</ion-label>
</div>
</ion-label>
</div>
<div hidden>
<ion-item>
<ion-label>Documentos Anexados</ion-label>
</ion-item>
<ion-list>
<ion-item>
<ion-label>
<h4 class="attach-title-item">Text</h4>
<p><span class="span-left">Text</span><span class="span-right"> Text </span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</div>
</ion-content>
<ion-footer class="ion-no-border">
<ion-toolbar class="btn-div">
<ion-buttons slot="start">
<ion-button class="btn-cancel" fill="clear" color="#061b52" (click)="close()">
<ion-label>Cancelar</ion-label>
</ion-button>
</ion-buttons>
<ion-title></ion-title>
<ion-buttons slot="end">
<ion-button class="btn-ok" fill="clear" color="#fff" (click)="save()">
<ion-label>Gravar</ion-label>
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-footer>
@@ -0,0 +1,177 @@
ion-content{
--background:transparent;
}
.header-toolbar{
--background:transparent;
--opacity: 1;
}
.main-header{
width: 100%; /* 400px */
height: 100%;
font-family: Roboto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background-color: #fff;
overflow:hidden;
padding: 30px 20px 0px 20px;
color:#000;
transform: translate3d(0, 1px, 0);
.title-content{
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
background: #fff;
.middle{
padding: 0!important;
float: left;
width: 221px;
margin: 2.5px 0 0 5px;
}
}
.title{
font-size: 25px;
}
}
.main-content{
width: 100%; /* 400px */
height: 100%;
font-family: Roboto;
margin: 0 auto;
background-color: #fff;
overflow:auto;
padding: 15px 20px 0 20px;
.ion-item-container{
width: 360px;
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;
}
.container-div{
margin-bottom: 15px;
overflow: auto;
}
.ion-item-class-2{
width: 360px;
margin: 0px auto;
}
.ion-icon-class{
width: 45px;
height: 45px;
float: left;
padding: 10px;
font-size: 25px;
}
ion-select{
padding-left: 5px;
margin-left: 0;
}
.ion-input-class{
width: 315px;
height: 45px;
border: 1px solid #ebebeb;
border-radius: 5px;
padding-left: 5px;
padding-right: 10px;
float: left;
}
.ion-input-class-no-height{
border: 1px solid #ebebeb;
border-radius: 5px;
overflow: auto;
}
.list-people{
width: 256px;
float: left;
}
.add-people{
width: 45px;
float: right;
overflow: auto;
font-size: 25px;
padding: 10px;
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
}
.attach-document{
font-size: 15px;
color: #0d89d1;
margin: 5px 5px 5px 10px;
padding: 5px;
float: left;
}
.attach-icon{
width: 37px;
font-size: 35px;
float: left;
}
.attach-title-item{
width: 100%;
font-size: 15px;
color:#0d89d1;
}
/* SPAN */
.span-left{
float: left;
font-size: 15x;
}
.span-right{
text-align: right;
float: right;
font-size: 13px;
}
.container-footer{
margin:0 auto;
overflow: auto;
}
.button-cancel {
width: 170px;
height: 44px;
border-radius: 22.5px;
--background: #e0e9ee;
--color: #061b52;
margin:10px;
}
.button-save {
width: 170px;
height: 44px;
border-radius: 22.5px;
--background: #42b9fe;
--color:#ffffff;
margin:10px;
}
.text-input{
width: 100%;
border: 1px solid #ebebeb;
margin: 0px 15px 15px 0px;
padding: 0 !important;
border-radius: 5px;
}
/* Error Messages */
.error{
color:red;
font-size: 12px;
font-weight: bold;
padding-bottom: 20px;
}
.span-color{
color:red;
}
}
@@ -0,0 +1,24 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { EditEventPage } from './edit-event.page';
describe('EditEventPage', () => {
let component: EditEventPage;
let fixture: ComponentFixture<EditEventPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ EditEventPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(EditEventPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,24 @@
import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
@Component({
selector: 'app-edit-event',
templateUrl: './edit-event.page.html',
styleUrls: ['./edit-event.page.scss'],
})
export class EditEventPage implements OnInit {
constructor(
private modalController: ModalController,
) { }
ngOnInit() {
}
close(){
this.modalController.dismiss(null);
}
save(){
}
}
@@ -1,12 +1,12 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { FilterPage } from './filter.page';
import { NewEventPage } from './new-event.page';
const routes: Routes = [
{
path: '',
component: FilterPage
component: NewEventPage
}
];
@@ -14,4 +14,4 @@ const routes: Routes = [
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class FilterPageRoutingModule {}
export class NewEventPageRoutingModule {}
@@ -4,17 +4,17 @@ import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { FilterPageRoutingModule } from './filter-routing.module';
import { NewEventPageRoutingModule } from './new-event-routing.module';
import { FilterPage } from './filter.page';
import { NewEventPage } from './new-event.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
FilterPageRoutingModule
NewEventPageRoutingModule
],
declarations: [FilterPage]
declarations: [NewEventPage]
})
export class FilterPageModule {}
export class NewEventPageModule {}
@@ -0,0 +1,217 @@
<ion-header class="ion-no-border">
<ion-toolbar class="header-toolbar">
<div class="main-header">
<div class="title-content">
<div class="middle">
<ion-label class="title">Novo Evento</ion-label>
</div>
</div>
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="main-content">
<div class="ion-item-container">
<ion-input placeholder="Assunto" [(ngModel)]="postEvent.Subject"></ion-input>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-location.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Localização" [(ngModel)]="postEvent.Location"></ion-input>
</div>
</div>
<!-- Error messages -->
<!-- <span class="error ion-padding" >
Campo obrigatório
</span> -->
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione agenda"
selectedText="{{postEvent.CalendarName}}"
[(ngModel)]="postEvent.CalendarName"
interface="action-sheet" Cancel-text="Cancelar"
required>
<ion-select-option value="Oficial">Oficial</ion-select-option>
<ion-select-option value="Pessoal">Pessoal</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione tipo" [(ngModel)]="postEvent.EventType" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option value="Reunião">Reunião</ion-select-option>
<ion-select-option value="Viagem">Viagem</ion-select-option>
<ion-select-option value="Conferência">Conferência</ion-select-option>
<ion-select-option value="Encontro">Encontro</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-datetime
placeholder="Início"
[(ngModel)]="postEvent.StartDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="2018"
max="2022"
>
</ion-datetime>
<!-- <ion-input placeholder="Data início" [(ngModel)]="postData.StartDate"></ion-input> -->
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-calendar.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-datetime
placeholder="Fim"
[(ngModel)]="postEvent.EndDate"
displayFormat="D MMM YYYY H:mm"
minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
min="2018"
max="2022"
>
</ion-datetime>
<!-- <ion-input placeholder="Data fim" [(ngModel)]="postData.EndDate"></ion-input> -->
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-refresh.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-select placeholder="Selecione repetição" value="false" interface="action-sheet" Cancel-text="Cancelar" required>
<ion-select-option value="false">Não se repete</ion-select-option>
<ion-select-option value="true">Repete</ion-select-option>
</ion-select>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-person.svg"></ion-icon>
</div>
<div (click)="openAttendees()" class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label class="list-people-title">Adicionar participantes</ion-label>
<ion-label hidden >Text</ion-label>
</ion-list>
</ion-item>
</div>
<div class="add-people">
<ion-icon slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
</div>
</div>
</div>
</div>
<div hidden class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-people-cc.svg"></ion-icon>
</div>
<div class="ion-input-class-no-height">
<div class="list-people">
<ion-item lines="none">
<ion-list>
<ion-label class="list-people-title">Com conhecimento</ion-label>
<ion-label hidden >Text</ion-label>
</ion-list>
</ion-item>
</div>
<div class="add-people">
<ion-icon slot="start" src="assets/images/icons-arrow-forward.svg"></ion-icon>
</div>
</div>
</div>
</div>
<div class="container-div">
<div class="ion-item-class-2">
<div class="ion-icon-class">
<ion-icon slot="start" src="assets/images/icons-description.svg"></ion-icon>
</div>
<div class="ion-input-class">
<ion-input placeholder="Detalhes" [(ngModel)]="postEvent.Body.Text"></ion-input>
</div>
</div>
</div>
<div hidden class="ion-item-container-no-border">
<ion-label>
<div class="attach-icon">
<ion-icon src="assets/images/icons-attach-doc.svg"></ion-icon>
</div>
<div class="attach-document">
<ion-label>Anexar Documentos</ion-label>
</div>
</ion-label>
</div>
<div hidden>
<ion-item>
<ion-label>Documentos Anexados</ion-label>
</ion-item>
<ion-list>
<ion-item>
<ion-label>
<h4 class="attach-title-item">Text</h4>
<p><span class="span-left">Text</span><span class="span-right"> Text </span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</div>
</ion-content>
<ion-footer class="ion-no-border">
<ion-toolbar class="btn-div">
<ion-buttons slot="start">
<ion-button class="btn-cancel" fill="clear" color="#061b52" (click)="close()">
<ion-label>Cancelar</ion-label>
</ion-button>
</ion-buttons>
<ion-title></ion-title>
<ion-buttons slot="end">
<ion-button class="btn-ok" fill="clear" color="#fff" (click)="save()">
<ion-label>Gravar</ion-label>
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-footer>
@@ -0,0 +1,178 @@
ion-content{
--background:transparent;
}
.header-toolbar{
--background:transparent;
--opacity: 1;
}
.main-header{
width: 100%; /* 400px */
height: 100%;
font-family: Roboto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background-color: #fff;
overflow:hidden;
padding: 30px 20px 0px 20px;
color:#000;
transform: translate3d(0, 1px, 0);
.title-content{
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
background: #fff;
.middle{
padding: 0!important;
float: left;
width: 221px;
margin: 2.5px 0 0 5px;
}
}
.title{
font-size: 25px;
}
}
.main-content{
width: 100%; /* 400px */
height: 100%;
font-family: Roboto;
margin: 0 auto;
background-color: #fff;
overflow:auto;
padding: 15px 20px 0 20px;
.ion-item-container{
width: 360px;
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;
}
.container-div{
margin-bottom: 15px;
overflow: auto;
}
.ion-item-class-2{
width: 360px;
margin: 0px auto;
}
.ion-icon-class{
width: 45px;
height: 45px;
float: left;
padding: 10px;
font-size: 25px;
}
ion-select{
padding-left: 5px;
margin-left: 0;
}
.ion-input-class{
width: 315px;
height: 45px;
border: 1px solid #ebebeb;
border-radius: 5px;
padding-left: 5px;
padding-right: 10px;
float: left;
}
.ion-input-class-no-height{
border: 1px solid #ebebeb;
border-radius: 5px;
overflow: auto;
}
.list-people{
width: 256px;
float: left;
}
.add-people{
width: 45px;
float: right;
overflow: auto;
font-size: 25px;
padding: 10px;
}
.list-people-title{
/* font-size: 13px; */
color: #797979;
}
.attach-document{
font-size: 15px;
color: #0d89d1;
margin: 5px 5px 5px 10px;
padding: 5px;
float: left;
}
.attach-icon{
width: 37px;
font-size: 35px;
float: left;
}
.attach-title-item{
width: 100%;
font-size: 15px;
color:#0d89d1;
}
/* SPAN */
.span-left{
float: left;
font-size: 15x;
}
.span-right{
text-align: right;
float: right;
font-size: 13px;
}
.container-footer{
margin:0 auto;
overflow: auto;
}
.button-cancel {
width: 170px;
height: 44px;
border-radius: 22.5px;
--background: #e0e9ee;
--color: #061b52;
margin:10px;
}
.button-save {
width: 170px;
height: 44px;
border-radius: 22.5px;
--background: #42b9fe;
--color:#ffffff;
margin:10px;
}
.text-input{
width: 100%;
border: 1px solid #ebebeb;
margin: 0px 15px 15px 0px;
padding: 0 !important;
border-radius: 5px;
}
/* Error Messages */
.error{
color:red;
font-size: 12px;
font-weight: bold;
padding-bottom: 20px;
}
.span-color{
color:red;
}
}
@@ -1,19 +1,19 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { FilterPage } from './filter.page';
import { NewEventPage } from './new-event.page';
describe('FilterPage', () => {
let component: FilterPage;
let fixture: ComponentFixture<FilterPage>;
describe('NewEventPage', () => {
let component: NewEventPage;
let fixture: ComponentFixture<NewEventPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ FilterPage ],
declarations: [ NewEventPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(FilterPage);
fixture = TestBed.createComponent(NewEventPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
@@ -0,0 +1,132 @@
import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams } from '@ionic/angular';
import { EventBody } from 'src/app/models/eventbody.model';
import { EventPerson } from 'src/app/models/eventperson.model';
import { EventsService } from 'src/app/services/events.service';
import { Event } from '../../../models/event.model';
import { AttendeesPage } from '../../events/attendees/attendees.page';
@Component({
selector: 'app-new-event',
templateUrl: './new-event.page.html',
styleUrls: ['./new-event.page.scss'],
})
export class NewEventPage implements OnInit {
postEvent: Event;
eventBody: EventBody;
segment:string = "true";
profile:string;
eventAttendees: EventPerson[];
selectedSegment: string;
selectedDate: Date;
minDate: string;
constructor(
private modalController: ModalController,
private navParams: NavParams,
private eventService: EventsService,
) {
this.postEvent = new Event();
this.eventBody = { BodyType : "1", Text : ""};
this.postEvent.Body = this.eventBody;
this.profile = this.navParams.get('profile');
this.selectedSegment = this.navParams.get('segment');
this.selectedDate = this.navParams.get('eventSelectedDate');
}
ngOnInit() {
console.log(this.profile);
let selectedStartdDate = this.selectedDate;
let selectedEndDate = new Date(this.selectedDate);
/* Set + 30minutes to seleted datetime */
/* selectedEndDate.setMinutes(this.selectedDate.getMinutes() + 30) */
/* this.minDate = this.selectedDate.toString(); */
if(this.selectedSegment != "Combinada"){
this.postEvent ={
EventId: '',
Subject: '',
Body: this.eventBody,
Location: '',
CalendarId: '',
CalendarName: this.selectedSegment,
StartDate: selectedStartdDate,
EndDate: new Date(selectedEndDate),
EventType: 'Reunião',
Attendees: null,
IsMeeting: false,
IsRecurring: false,
AppointmentState: 0,
TimeZone: '',
Organizer: '',
Categories: null,
HasAttachments: false,
};
}
else{
this.postEvent ={
EventId: '',
Subject: '',
Body: this.eventBody,
Location: '',
CalendarId: '',
CalendarName: 'Oficial',
StartDate: selectedStartdDate,
EndDate: new Date(selectedEndDate),
EventType: 'Reunião',
Attendees: null,
IsMeeting: false,
IsRecurring: false,
AppointmentState: 0,
TimeZone: '',
Organizer: '',
Categories: null,
HasAttachments: false,
};
}
}
close(){
this.modalController.dismiss();
}
save(){
console.log(this.postEvent);
console.log(this.profile);
if(this.profile=='mdgpr'){
this.eventService.postEventMd(this.postEvent, this.postEvent.CalendarName).subscribe();
}
else if(this.profile=='pr'){
this.eventService.postEventPr(this.postEvent, this.postEvent.CalendarName).subscribe();
}
this.modalController.dismiss(this.postEvent);
}
async openAttendees()
{
const modal = await this.modalController.create({
component: AttendeesPage,
componentProps: {
eventAttendees: this.postEvent.Attendees
},
cssClass: 'attendee',
backdropDismiss: false
});
await modal.present();
modal.onDidDismiss().then((data) => {
if (data['data'] != null)
{
let newattendees: EventPerson[] = data['data'];
this.postEvent.Attendees = newattendees;
}
});
}
}
@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ViewEventPage } from './view-event.page';
const routes: Routes = [
{
path: '',
component: ViewEventPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class ViewEventPageRoutingModule {}
@@ -0,0 +1,22 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { ViewEventPageRoutingModule } from './view-event-routing.module';
import { ViewEventPage } from './view-event.page';
import { SharedModule } from 'src/app/shared/shared.module';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
SharedModule,
ViewEventPageRoutingModule
],
declarations: [ViewEventPage]
})
export class ViewEventPageModule {}
@@ -0,0 +1,64 @@
<ion-header class="ion-no-border">
<ion-toolbar class="header-toolbar">
<div class="main-header">
<div class="title-content">
<app-btn-modal-dismiss></app-btn-modal-dismiss>
<div class="middle">
<ion-label class="title">Ver Evento</ion-label>
</div>
<div class="header-icon-right">
<ion-icon slot="end" src="assets/images/icons-edit.svg" ></ion-icon>
</div>
</div>
</div>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="main-content">
<div class="upper-content">
<div class="content-location">
<div class="location-detail">
<ion-label >Texto</ion-label>
</div>
<div class="button-calendar-type">
<ion-button class="button-calendar-type" slot="end">Texto</ion-button>
</div>
</div>
<div class="content-details">
<ion-label>
<p>Texto</p>
<p>das Texto às Texto</p>
<p >(Não se repete)</p>
<p >Repete</p>
</ion-label>
</div>
</div>
<div class="middle-content">
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<h3>Intervenientes</h3>
<p>Texto</p>
</ion-label>
</ion-item>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<h3>Detalhes</h3>
<p>Texto</p>
</ion-label>
</ion-item>
</div>
<div class="bottom-content">
<ion-list>
<h3>Documentos Anexados</h3>
<ion-item class="ion-no-margin ion-no-padding">
<ion-label>
<p class="attach-title-item">Receita por Natureza</p>
<p><span class="span-left">Texto</span><span class="span-right"><!-- {{ task.CreateDate | date: 'dd-MM-yy' }} --></span></p>
</ion-label>
</ion-item>
</ion-list>
</div>
</div>
</ion-content>
@@ -0,0 +1,144 @@
ion-content{
--background:transparent;
--padding-top:0px;
--padding-start: 20px;
--padding-end: 20px;
font-size: 18px;
}
ion-menu{
--height: 225px;
}
.header-toolbar{
--background:transparent;
--opacity: 1;
}
.main-header{
width: 100%; /* 400px */
height: 100%;
font-family: Roboto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background-color: #fff;
overflow:hidden;
padding: 30px 0px 0px 0px;
color:#000;
transform: translate3d(0, 1px, 0);
.title-content{
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
background: #fff;
.middle{
width: 270px;
padding: 0!important;
float: left;
margin: 2.5px 0 0 0;
}
.header-icon-right{
width: 45px;
font-size: 45px;
float: right;
overflow: auto;
}
}
.title{
font-size: 25px;
}
}
.main-content{
width: 100%; /* 400px */
height: 100%;
font-family: Roboto;
margin: 0 auto;
background-color: #fff;
overflow:auto;
padding: 15px 0px 0 0px;
.upper-content{
margin-left: 50px;
overflow: auto;
font-size: 18px;
.content-location{
width: 100%;
margin: 0 auto;
padding: 0;
overflow: auto;
}
.location-detail{
width: 210px;
font-weight: 700;
font-size: 18px;
float: left;
margin: 5px 5px 5px 0px;
}
.button-calendar-type{
width: 91px;
--border-radius: 12.5px;
--background: #ffb703;
margin-left: 5px;
float: left;
}
.button-calendar-type ion-button{
height: 25px;
}
.button-edit-event {
width: 140px;
height: 44px;
border-radius: 22.5px;
--background: #e0e9ee;
--color:#061b52;
}
.content-details p{
font-size: 16px;
}
}
.middle-conten{
.middle-content h3, .middle-content p{
font-size: 16px;
}
}
.bottom-content{
width: 360px;
margin: 0 auto;
.bottom-content h3{
font-size: 16px;
margin: 0 0 0 10px;
}
.attach-document{
font-size: 15px;
color: #0d89d1;
margin: 5px 5px 5px 10px;
padding: 5px;
float: left;
}
.attach-icon{
width: 37px;
font-size: 35px;
float: left;
}
.attach-title-item{
width: 100%;
font-size: 15px;
color:#0d89d1;
}
/* SPAN */
.span-left{
float: left;
font-size: 15x;
}
.span-right{
text-align: right;
float: right;
font-size: 13px;
}
}
}
@@ -0,0 +1,24 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { ViewEventPage } from './view-event.page';
describe('ViewEventPage', () => {
let component: ViewEventPage;
let fixture: ComponentFixture<ViewEventPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ViewEventPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(ViewEventPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-view-event',
templateUrl: './view-event.page.html',
styleUrls: ['./view-event.page.scss'],
})
export class ViewEventPage implements OnInit {
constructor() { }
ngOnInit() {
}
}
+4 -2
View File
@@ -71,7 +71,8 @@
</span> -->
<ion-item>
<ion-label position="floating">Data Início <span class="span-color">*</span></ion-label>
<ion-datetime placeholder="{{postEvent.StartDate | date: 'dd MMM yyyy H:mm'}}" formControlName="startdate" [(ngModel)]="postEvent.StartDate" min="2020" max="2100"
<ion-datetime placeholder="{{postEvent.StartDate | date: 'dd MMM yyyy H:mm'}}"
formControlName="startdate" [(ngModel)]="postEvent.StartDate" min="2020" max="2100"
displayFormat="D MMM YYYY H:mm" minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
required>
@@ -83,7 +84,8 @@
</span> -->
<ion-item>
<ion-label position="floating">Data Fim <span class="span-color">*</span></ion-label>
<ion-datetime placeholder="{{postEvent.EndDate | date: 'dd MMM yyyy H:mm'}}" formControlName="enddate" [(ngModel)]="postEvent.EndDate" min="2020" max="2100"
<ion-datetime placeholder="{{postEvent.EndDate | date: 'dd MMM yyyy H:mm'}}"
formControlName="enddate" [(ngModel)]="postEvent.EndDate" min="2020" max="2100"
displayFormat="D MMM YYYY H:mm" minuteValues="0,15,30,45"
monthShortNames="Jan, Fev, Mar, Abr, Mai, Jun, Jul, Aug, Sep, Out, Nov, Dez"
required></ion-datetime>
+9 -4
View File
@@ -46,14 +46,19 @@ export class CalModalPage implements OnInit {
profile:string;
constructor(public formBuilder: FormBuilder, private modalCtrl: ModalController, private eventService: EventsService, private alertController:AlertService,
private navParams: NavParams) {
constructor(
public formBuilder: FormBuilder,
private modalCtrl: ModalController,
private eventService: EventsService,
private alertController:AlertService,
private navParams: NavParams
)
{
this.postEvent = new Event();
this.eventBody = { BodyType : "1", Text : ""};
this.postEvent.Body = this.eventBody;
this.profile = this.navParams.get('profile');
}
}
ngOnInit() {
+2 -1
View File
@@ -1,5 +1,6 @@
<ion-header>
<app-header></app-header>
<!-- <app-header></app-header> -->
<app-header-no-search></app-header-no-search>
</ion-header>
<ion-header class="ion-no-border">
<ion-toolbar class="bg-blue">
+1 -1
View File
@@ -1,5 +1,5 @@
<ion-header class="ion-no-border">
<app-header></app-header>
<app-header-no-search></app-header-no-search>
</ion-header>
<!-- Default Refresher -->
@@ -17,10 +17,7 @@ ion-content{
--padding-start: 15px;
--padding-end: 20px;
}
.container-div{
margin-bottom: 15px;
overflow: auto;
}
.ion-item-container{
width: 360px;
margin: 15px auto;
@@ -34,6 +31,10 @@ ion-content{
padding: 0 !important;
overflow: auto;
}
.container-div{
margin-bottom: 15px;
overflow: auto;
}
.ion-item-class-2{
width: 360px;
margin: 0px auto;
@@ -7,6 +7,7 @@ import { IonicModule } from '@ionic/angular';
import { GabineteDigitalPageRoutingModule } from './gabinete-digital-routing.module';
import { GabineteDigitalPage } from './gabinete-digital.page';
import { SharedModule } from 'src/app/shared/shared.module';
/* import { ComponentsModule } from 'src/app/components/components.module'; */
@NgModule({
@@ -14,7 +15,7 @@ import { GabineteDigitalPage } from './gabinete-digital.page';
CommonModule,
FormsModule,
IonicModule,
/* ComponentsModule, */
SharedModule,
GabineteDigitalPageRoutingModule
],
declarations: [GabineteDigitalPage],
@@ -1,4 +1,21 @@
<ion-header class="ion-no-border">
<ion-header>
<app-header></app-header>
</ion-header>
<ion-header class="ion-no-border">
<ion-toolbar class="bg-blue">
<div class="main-header">
<div class="title-content">
<div class="div-title">
<ion-label class="title">Gabinete Digital</ion-label>
</div>
<div class="div-icon">
<ion-icon slot="end" src='assets/images/icons-add.svg'></ion-icon>
</div>
</div>
</div>
</ion-toolbar>
</ion-header>
<!-- <ion-header class="ion-no-border">
<ion-toolbar class="ion-no-border" class="bg-blue">
<div class="div-top-header">
<div class="div-search">
@@ -12,23 +29,15 @@
</div>
</div>
</ion-toolbar>
</ion-header>
</ion-header> -->
<ion-content>
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
<ion-refresher-content>
</ion-refresher-content>
</ion-refresher>
<div class="main-content">
<div class="title-content">
<div class="div-title">
<ion-label class="title">Gabinete Digital</ion-label>
</div>
<div class="div-icon">
<ion-icon slot="end" src='assets/images/icons-add.svg'></ion-icon>
</div>
<ion-refresher name="refresher" slot="fixed" (ionRefresh)="doRefresh($event)">
<ion-progress-bar type="indeterminate" *ngIf="showLoader"></ion-progress-bar>
<ion-refresher-content>
</ion-refresher-content>
</ion-refresher>
</div>
<div class="exp-card" (click)="openEventsToApproveList('MDGPR')">
<div class="exp-card-icon">
<ion-icon src="assets/images/icons-agenda.svg"></ion-icon>
@@ -12,24 +12,24 @@ ion-content{
text-align: center;
}
ion-card{
background-color: #d4d5ca;
border-radius: 20px;
}
ion-item{
--ion-background-color:#dae3f3;
margin-bottom: 10px;
border-radius: 5px;
}
ion-button{
color: #000;
--background:none;
--border-color: none;
--box-shadow:none;
}
ion-label{
padding: 10px;
}
ion-card{
background-color: #d4d5ca;
border-radius: 20px;
}
ion-item{
--ion-background-color:#dae3f3;
margin-bottom: 10px;
border-radius: 5px;
}
ion-button{
color: #000;
--background:none;
--border-color: none;
--box-shadow:none;
}
ion-label{
padding: 10px;
}
}
.ion-item-change-color{
--ion-background-color:#fff2cc !important;
@@ -65,14 +65,51 @@ ion-label{
}
}
.main-header{
width: 100%; /* 400px */
height: 100%;
font-family: Roboto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background-color: #ecf8ff;
overflow:hidden;
padding: 30px 20px 0px 20px;
color:#000;
transform: translate3d(0, 1px, 0);
.title-content{
width: 360px;
margin: 0px auto;
overflow: auto;
padding: 0 !important;
background: #ecf8ff;
}
.div-title{
padding: 0!important;
float: left;
}
.title{
font-size: 25px;
}
.div-icon{
width: 40px;
float: right;
font-size: 35px;
overflow: auto;
padding: 1px;
}
.div-icon ion-icon{
float: right;
padding-left: 20px;
}
}
/* NEW CSS */
.main-content{
width: 100%; /* 400px */
height: 100%;
font-family: Roboto;
margin: 0 auto;
border-top-left-radius: 25px;
border-top-right-radius: 25px;
background:#ecf8ff;;
overflow:auto;
padding: 25px 15px 15px 15px;
@@ -1,21 +1,6 @@
<ion-header>
<app-header></app-header>
</ion-header>
<!-- <ion-header class="ion-no-border">
<ion-toolbar class="bg-blue">
<div class="div-top-header">
<div class="div-search">
<ion-icon src='assets/images/icons-search.svg'></ion-icon>
</div>
<div class="div-logo">
<img src='assets/images/logo-no-bg.png' alt='logo'>
</div>
<div class="div-profile">
<ion-icon src='assets/images/icons-profile.svg'></ion-icon>
</div>
</div>
</ion-toolbar>
</ion-header> -->
<ion-header class="ion-no-border">
<ion-toolbar class="bg-blue">
<div class="main-header">
@@ -26,7 +11,6 @@
<div class="div-icon">
<ion-icon (click)="AddPublicationFolder()" slot="end" src='assets/images/icons-add.svg'></ion-icon>
</div>
</div>
</div>
</ion-toolbar>
@@ -1,7 +0,0 @@
<ion-list>
<ion-list-header>Ionic</ion-list-header>
<button ion-item (click)="close()">Learn Ionic</button>
<button ion-item (click)="close()">Documentation</button>
<button ion-item (click)="close()">Showcase</button>
<button ion-item (click)="close()">GitHub Repo</button>
</ion-list>
@@ -1,15 +0,0 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-filter',
templateUrl: './filter.page.html',
styleUrls: ['./filter.page.scss'],
})
export class FilterPage implements OnInit {
constructor() { }
ngOnInit() {
}
}
@@ -12,10 +12,6 @@ const routes: Routes = [
path: 'sender',
loadChildren: () => import('./sender/sender.module').then( m => m.SenderPageModule)
},
{
path: 'filter',
loadChildren: () => import('./filter/filter.module').then( m => m.FilterPageModule)
},
{
path: 'organic-entity',
loadChildren: () => import('./organic-entity/organic-entity.module').then( m => m.OrganicEntityPageModule)
+2 -1
View File
@@ -89,7 +89,8 @@ export class SearchPage implements OnInit {
basicSearch(){
this.search.basicSearch(this.searchSubject, this.searchDocumentDate, this.searchSender
,this.searchOrganicEntiry, this.searchDocTypeId).subscribe(res=>{
,this.searchOrganicEntiry, this.searchDocTypeId, '386').subscribe(res=>{
console.log(res);
res.Categories.forEach( e => {
e['Active'] = false;
+2 -1
View File
@@ -28,7 +28,7 @@ export class SearchService {
}
basicSearch(subject:string, date:string, sender:string, organicEntity:string, docTypeId:string): Observable<EventSearch>{
basicSearch(subject:string, date:string, sender:string, organicEntity:string, docTypeId:string, applicationType:string): Observable<EventSearch>{
// Endpoint
const geturl = environment.apiURL + 'search';
// store params
@@ -41,6 +41,7 @@ export class SearchService {
params = params.set("remetente", sender);
params = params.set("entidadeOrganica", organicEntity);
params = params.set("docTypeId", docTypeId);
params = params.set("applicationType", applicationType);
const options = {
@@ -0,0 +1,17 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HeaderNoSearchPage } from './header-no-search.page';
const routes: Routes = [
{
path: '',
component: HeaderNoSearchPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class HeaderNoSearchPageRoutingModule {}
@@ -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 { HeaderNoSearchPageRoutingModule } from './header-no-search-routing.module';
import { HeaderNoSearchPage } from './header-no-search.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
HeaderNoSearchPageRoutingModule
],
declarations: [HeaderNoSearchPage]
})
export class HeaderNoSearchPageModule {}
@@ -0,0 +1,25 @@
<ion-toolbar class="bg-blue">
<ion-grid>
<ion-row class="div-top-header ion-justify-content-between">
<ion-col>
<!-- <div (click)="openSearch()" class="div-search">
<ion-icon src='assets/images/icons-search.svg'></ion-icon>
</div> -->
</ion-col>
<ion-col>
<div class="div-logo">
<img src='assets/images/logo-no-bg.png' alt='logo'>
</div>
</ion-col>
<ion-col>
<div class="div-profile">
<ion-icon src='assets/images/icons-profile.svg'></ion-icon>
</div>
</ion-col>
</ion-row>
</ion-grid>
</ion-toolbar>
@@ -0,0 +1,32 @@
@import '~src/function.scss';
.div-top-header{
margin: 0 auto;
background-color: #0782c9;
overflow: auto;
padding-top: em(15px);
border: 0!important;
.div-search{
font-size: 45px;
margin: 0 0 0 10px
}
.div-logo{
background: transparent;
width: em(140px);
margin: 0px auto;
margin-top: 5px;
justify-content: center;
display: flex;
}
.div-logo img{
width: 100%;
margin: 0px auto;
}
.div-profile{
font-size: 45px;
margin-right: 10px;
justify-content: flex-end;
display: flex;
}
}
@@ -0,0 +1,24 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { HeaderNoSearchPage } from './header-no-search.page';
describe('HeaderNoSearchPage', () => {
let component: HeaderNoSearchPage;
let fixture: ComponentFixture<HeaderNoSearchPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ HeaderNoSearchPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(HeaderNoSearchPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
@@ -0,0 +1,27 @@
import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { SearchPage } from 'src/app/pages/search/search.page';
@Component({
selector: 'app-header-no-search',
templateUrl: './header-no-search.page.html',
styleUrls: ['./header-no-search.page.scss'],
})
export class HeaderNoSearchPage implements OnInit {
constructor(private modalController: ModalController) { }
ngOnInit() {
}
async openSearch() {
const modal = await this.modalController.create({
component: SearchPage,
cssClass: 'group-messages',
componentProps: {
}
});
return await modal.present();
}
}
+5 -1
View File
@@ -7,6 +7,7 @@ import { HeaderPrPage } from './header-pr/header-pr.page';
import { BtnSeguintePage } from './btn-seguinte/btn-seguinte.page';
import { BtnModalDismissPage } from './btn-modal-dismiss/btn-modal-dismiss.page';
import { ChatPopoverPage } from './popover/chat-popover/chat-popover.page';
import { HeaderNoSearchPage } from './headers/header-no-search/header-no-search.page';
@NgModule({
imports: [
@@ -17,12 +18,15 @@ import { ChatPopoverPage } from './popover/chat-popover/chat-popover.page';
exports: [
HeaderPage,
HeaderPrPage,
HeaderNoSearchPage,
BtnSeguintePage,
BtnModalDismissPage,
],
entryComponents:[],
declarations: [HeaderPage,
declarations: [
HeaderPage,
HeaderPrPage,
HeaderNoSearchPage,
BtnSeguintePage,
BtnModalDismissPage,
]
+2 -2
View File
@@ -1,7 +1,7 @@
export const environment = {
production: true,
apiURL: 'http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/v1/api/',
apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/',
apiURL: 'https://equilibrium.dyndns.info/GabineteDigital.Services/V4/api/',
apiChatUrl: 'https://www.tabularium.pt/api/v1/',
domain: 'gabinetedigital.local',
defaultuser: '',
defaultuserpwd: ''
+1 -1
View File
@@ -9,7 +9,7 @@ export const environment = {
apiChatUrl: 'https://www.tabularium.pt/api/v1/',
/* apiChatUrl: 'http://chat.gabinetedigital.local:3000/api/v1/', */
domain: 'gabinetedigital.local',
defaultuser: 'tiago.kayaya',
defaultuser: 'paulo.pinto',
defaultuserpwd: 'tabteste@006'
};
+21 -16
View File
@@ -45,7 +45,6 @@ td.monthview-current{
justify-content: center;
align-items: center;
text-align: center;
padding-left: 9px;
color: white;
}
}
@@ -148,34 +147,40 @@ td.monthview-selected {
.calendar-event-type-Oficial{
border-right: 3px solid #f05d5e !important;
border-radius: 21px;
color: black;
margin: 0px auto;
width: 35px;
border-radius: 21px !important;
color: black !important;
margin: 0px auto !important;
width: 35px !important;
}
.calendar-event-type-Pessoal{
border-left: 3px solid #ffb703 !important;
border-radius: 21px;
color: black;
margin: 0px auto;
width: 35px;
border-radius: 21px !important;
color: black !important;
margin: 0px auto !important;
width: 35px !important;
}
.calendar-event-type-both{
border-radius: 21px;
border-left: 3px solid #ffb703;
border-bottom: none;
border-right: 3px solid #f05d5e;
color: black;
margin: 0px auto;
width: 35px;
border-radius: 21px !important;
border-left: 3px solid #ffb703 !important;
border-bottom: none !important;
border-right: 3px solid #f05d5e !important;
color: black !important;
margin: 0px auto !important;
width: 35px !important;
}
.cal-hour-segment {
border-bottom: none !important;
}
td.monthview-current{
border-bottom: 1px solid #3a87ad !important;
}
/* angular-cli file: src/styles.css */
@import "../node_modules/angular-calendar/css/angular-calendar.css";
@import "./style/main.scss";
+1 -1
View File
@@ -263,7 +263,7 @@
padding: 25px;
background: rgba(51, 51, 51, 0.3);
}
.newchat, .new-group, .contacts, .group-messages, .custom-modal{
.modal, .newchat, .new-group, .contacts, .group-messages, .custom-modal{
padding-top: 93px;
--border-radius: 25px 25px 0 0;
--border-width:0px;