diff --git a/android/app/build.gradle b/android/app/build.gradle
index ed789500f..72ad69b1e 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -20,7 +20,7 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode code
- versionName "2.1.0"
+ versionName "2.4.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle
index d224f1d80..6fbed166a 100644
--- a/android/app/capacitor.build.gradle
+++ b/android/app/capacitor.build.gradle
@@ -11,6 +11,7 @@ apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle"
dependencies {
implementation project(':capacitor-app')
implementation project(':capacitor-browser')
+ implementation project(':capacitor-clipboard')
implementation project(':capacitor-filesystem')
implementation project(':capacitor-haptics')
implementation project(':capacitor-keyboard')
diff --git a/android/app/src/main/assets/capacitor.plugins.json b/android/app/src/main/assets/capacitor.plugins.json
index 582b2afb6..e305a1edf 100644
--- a/android/app/src/main/assets/capacitor.plugins.json
+++ b/android/app/src/main/assets/capacitor.plugins.json
@@ -7,6 +7,10 @@
"pkg": "@capacitor/browser",
"classpath": "com.capacitorjs.plugins.browser.BrowserPlugin"
},
+ {
+ "pkg": "@capacitor/clipboard",
+ "classpath": "com.capacitorjs.plugins.clipboard.ClipboardPlugin"
+ },
{
"pkg": "@capacitor/filesystem",
"classpath": "com.capacitorjs.plugins.filesystem.FilesystemPlugin"
diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle
index 014c5a5b0..f97b5ba59 100644
--- a/android/capacitor.settings.gradle
+++ b/android/capacitor.settings.gradle
@@ -8,6 +8,9 @@ project(':capacitor-app').projectDir = new File('../node_modules/@capacitor/app/
include ':capacitor-browser'
project(':capacitor-browser').projectDir = new File('../node_modules/@capacitor/browser/android')
+include ':capacitor-clipboard'
+project(':capacitor-clipboard').projectDir = new File('../node_modules/@capacitor/clipboard/android')
+
include ':capacitor-filesystem'
project(':capacitor-filesystem').projectDir = new File('../node_modules/@capacitor/filesystem/android')
diff --git a/ios/App/Podfile b/ios/App/Podfile
index 2270d97c8..db0743cb8 100644
--- a/ios/App/Podfile
+++ b/ios/App/Podfile
@@ -11,6 +11,7 @@ def capacitor_pods
pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app'
pod 'CapacitorBrowser', :path => '../../node_modules/@capacitor/browser'
+ pod 'CapacitorClipboard', :path => '../../node_modules/@capacitor/clipboard'
pod 'CapacitorFilesystem', :path => '../../node_modules/@capacitor/filesystem'
pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'
pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard'
diff --git a/package.json b/package.json
index 870923082..adb3c5982 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,7 @@
"@capacitor/app": "1.1.1",
"@capacitor/browser": "^1.0.7",
"@capacitor/cli": "^3.5.1",
+ "@capacitor/clipboard": "^1.0.8",
"@capacitor/core": "^3.5.1",
"@capacitor/filesystem": "^1.1.0",
"@capacitor/haptics": "1.1.4",
diff --git a/src/app/core/constants/formConstant.ts b/src/app/core/constants/formConstant.ts
index b28c8ae05..efef3e6ec 100644
--- a/src/app/core/constants/formConstant.ts
+++ b/src/app/core/constants/formConstant.ts
@@ -33,4 +33,18 @@ export const HELP_VIDEOS: IFORM = {
"subType": "videos",
"action": "videoFields",
"templateName":"defaultTemplate",
+}
+
+export const PLATFORMS: IFORM = {
+ "type": "platformApp",
+ "subType": "platformAppForm",
+ "action": "platformAppFields",
+ "templateName": "defaultTemplate"
+}
+
+export const HELP: IFORM = {
+ "type": "help",
+ "subType": "helpForm",
+ "action": "helpFields",
+ "templateName":"defaultTemplate"
}
\ No newline at end of file
diff --git a/src/app/core/constants/urlConstants.ts b/src/app/core/constants/urlConstants.ts
index 54f803d93..85320b7bf 100644
--- a/src/app/core/constants/urlConstants.ts
+++ b/src/app/core/constants/urlConstants.ts
@@ -19,6 +19,7 @@ export const urlConstants = {
UPCOMING_SESSIONS:"/mentoring/v1/mentors/upcomingSessions/",
SHARE_MENTOR_PROFILE:"/mentoring/v1/mentors/share/",
REPORT_ISSUE:"/mentoring/v1/issues/create",
+ GET_MAIL_INFO:"/mentoring/v1/platform/config",
// FORMS
FORM_READ:'/mentoring/v1/form/read',
diff --git a/src/app/core/services/auth/auth.service.ts b/src/app/core/services/auth/auth.service.ts
index f9cf6a48a..d64e7e4e0 100644
--- a/src/app/core/services/auth/auth.service.ts
+++ b/src/app/core/services/auth/auth.service.ts
@@ -119,4 +119,13 @@ export class AuthService {
}
}
+ async getMailInfo(){
+ const config = {
+ url: urlConstants.API_URLS.GET_MAIL_INFO
+ };
+ let data: any = await this.httpService.post(config);
+ let result = _.get(data, 'result');
+ return result;
+ }
+
}
\ No newline at end of file
diff --git a/src/app/core/services/http/http.service.ts b/src/app/core/services/http/http.service.ts
index 80ad378c1..b59ff8101 100644
--- a/src/app/core/services/http/http.service.ts
+++ b/src/app/core/services/http/http.service.ts
@@ -20,6 +20,7 @@ import { FeedbackPage } from 'src/app/pages/feedback/feedback.page';
})
export class HttpService {
baseUrl;
+ isFeedbackTriggered = false;
constructor(
private http: HTTP,
private userService: UserService,
@@ -75,7 +76,8 @@ export class HttpService {
return this.http.get(this.baseUrl + requestParam.url, '', headers)
.then((data: any) => {
let result: any = JSON.parse(data.data);
- if(result?.meta?.data?.length){
+ if(result?.meta?.data?.length && !this.isFeedbackTriggered){
+ this.isFeedbackTriggered = true;
this.openModal(result?.meta?.data[0]);
}
if (result.responseCode === "OK") {
@@ -179,6 +181,8 @@ export class HttpService {
data: sessionData,
}
});
- return await modal.present();
+ await modal.present();
+ const isModelClosed = await modal.onWillDismiss();
+ this.isFeedbackTriggered = isModelClosed.data;
}
}
diff --git a/src/app/core/services/session/session.service.ts b/src/app/core/services/session/session.service.ts
index d6678c374..e04783552 100644
--- a/src/app/core/services/session/session.service.ts
+++ b/src/app/core/services/session/session.service.ts
@@ -4,13 +4,15 @@ import { urlConstants } from '../../constants/urlConstants';
import * as _ from 'lodash-es';
import { InAppBrowser } from '@awesome-cordova-plugins/in-app-browser/ngx';
import { Router } from '@angular/router';
+import { JoinDialogBoxComponent } from 'src/app/shared/components/join-dialog-box/join-dialog-box.component';
+import { ModalController } from '@ionic/angular';
@Injectable({
providedIn: 'root'
})
export class SessionService {
- constructor(private loaderService: LoaderService, private httpService: HttpService, private toast: ToastService, private inAppBrowser: InAppBrowser, private router: Router) { }
+ constructor(private loaderService: LoaderService, private httpService: HttpService, private toast: ToastService, private inAppBrowser: InAppBrowser, private router: Router, private modalCtrl: ModalController) { }
async createSession(formData, id?: string) {
@@ -29,6 +31,7 @@ export class SessionService {
}
catch (error) {
this.loaderService.stopLoader();
+ return false
}
}
@@ -151,7 +154,8 @@ async getSessionsList(obj) {
}
}
- async joinSession(id) {
+ async joinSession(sessionData) {
+ let id = sessionData.sessionId?sessionData.sessionId: sessionData._id;
await this.loaderService.startLoader();
const config = {
url: urlConstants.API_URLS.JOIN_SESSION + id,
@@ -161,7 +165,12 @@ async getSessionsList(obj) {
let data = await this.httpService.get(config);
this.loaderService.stopLoader();
if (data.responseCode == "OK") {
- this.openBrowser(data.result.link);
+ let modal = await this.modalCtrl.create({
+ component: JoinDialogBoxComponent,
+ componentProps: { data: data.result, sessionData : sessionData},
+ cssClass: 'example-modal'
+ });
+ modal.present()
}
}
catch (error) {
diff --git a/src/app/core/services/toast.service.ts b/src/app/core/services/toast.service.ts
index 53d33885c..cd5743e1e 100644
--- a/src/app/core/services/toast.service.ts
+++ b/src/app/core/services/toast.service.ts
@@ -11,7 +11,7 @@ export class ToastService {
private translate : TranslateService
) { }
- async showToast(msg, color) {
+ async showToast(msg, color , duration= 5000,toastButton = []) {
let texts;
this.translate.get([msg]).subscribe(resp =>{
texts = resp;
@@ -19,8 +19,10 @@ export class ToastService {
let toast = await this.toastCtrl.create({
message: texts[msg],
color:color,
- duration: 5000,
+ duration: duration,
position: 'top',
+ buttons: toastButton,
+ cssClass: 'custom-toast'
});
toast.present();
}
diff --git a/src/app/pages/auth/login/login.page.html b/src/app/pages/auth/login/login.page.html
index 731d37eb6..90d0f5150 100644
--- a/src/app/pages/auth/login/login.page.html
+++ b/src/app/pages/auth/login/login.page.html
@@ -24,6 +24,14 @@
+
{{"TERMS_AND_CONDITION"|translate}}
{{"PRIVACY_POLICY"|translate}} & {{"TERMS_OF_SERVICE"|translate}}
diff --git a/src/app/pages/auth/login/login.page.ts b/src/app/pages/auth/login/login.page.ts
index 4a1581ca1..61a0c36db 100644
--- a/src/app/pages/auth/login/login.page.ts
+++ b/src/app/pages/auth/login/login.page.ts
@@ -55,6 +55,7 @@ export class LoginPage implements OnInit {
};
labels = ["LOGIN_TO_MENTOR_ED"];
mentorId: any;
+ supportInfo: any;
constructor(private authService: AuthService, private router: Router,
private menuCtrl: MenuController, private activatedRoute: ActivatedRoute,
private translateService: TranslateService, private localStorage: LocalStorageService) {
@@ -63,6 +64,7 @@ export class LoginPage implements OnInit {
ngOnInit() {
this.translateText();
+ this.getMailInfo();
}
async translateText() {
@@ -116,5 +118,9 @@ export class LoginPage implements OnInit {
goToSignup() {
this.router.navigate([`/${CommonRoutes.AUTH}/${CommonRoutes.PERSONA_SELECTION}`]);
}
-
+ getMailInfo(){
+ this.authService.getMailInfo().then((result:any) =>{
+ this.supportInfo = result
+ })
+}
}
diff --git a/src/app/pages/auth/register/register.page.html b/src/app/pages/auth/register/register.page.html
index ea9f9a589..2ac8cd4a0 100644
--- a/src/app/pages/auth/register/register.page.html
+++ b/src/app/pages/auth/register/register.page.html
@@ -4,7 +4,6 @@
-
@@ -20,4 +19,5 @@
{{"LOGIN"|translate}}
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/app/pages/create-session/create-session.page.html b/src/app/pages/create-session/create-session.page.html
index 2d9d072af..5e1096a98 100644
--- a/src/app/pages/create-session/create-session.page.html
+++ b/src/app/pages/create-session/create-session.page.html
@@ -1,15 +1,56 @@
-
-
-
-
-
+
+
+
+ 1
+ {{ firstStepperTitle | translate}}
+
+
+ 2
+ {{"MEETING_LINK" | translate}}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{"SELECT_MEETING_PLATFORM" | translate}}
+
+
+
+
+
+ {{ option.name }}
+
+
+
+
+ {{selectedHint}}
+
+
+
+
+
+
-
-
+
+
- {{'PUBLISH' | translate}}
+ {{'PUBLISH_AND_ADD_LINK' | translate}}
+
+
+ {{'SET_IT_LATER' | translate}}
+ {{'SUBMIT' | translate}}
\ No newline at end of file
diff --git a/src/app/pages/create-session/create-session.page.scss b/src/app/pages/create-session/create-session.page.scss
index e69de29bb..8eed97edd 100644
--- a/src/app/pages/create-session/create-session.page.scss
+++ b/src/app/pages/create-session/create-session.page.scss
@@ -0,0 +1,38 @@
+.segment{
+ display: flex;
+ justify-content: space-evenly;
+}
+.height{
+ height: 100%;
+}
+ion-label{
+ text-transform: none;
+}
+.card-title{
+ font-weight: 800;
+}
+.select{
+ width: 100%;
+}
+.hint-icon{
+ font-size: 12px;
+ margin: 0%;
+}
+.hint-label{
+ font-size: 12px;
+ padding-left: 5px;
+ margin: 0%;
+}
+.btns{
+ width: 100%;
+}
+.icon-2{
+ background: var(--ion-color-primary);
+ height: 25px;
+ width: 25px;
+ border-radius: 50px;
+ color: var(--white);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
\ No newline at end of file
diff --git a/src/app/pages/create-session/create-session.page.ts b/src/app/pages/create-session/create-session.page.ts
index fc3ab04bf..3b208b71f 100644
--- a/src/app/pages/create-session/create-session.page.ts
+++ b/src/app/pages/create-session/create-session.page.ts
@@ -1,5 +1,5 @@
import { HttpClient } from '@angular/common/http';
-import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
+import { ChangeDetectorRef, Component, Input, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { AttachmentService, LoaderService, ToastService } from 'src/app/core/services';
import { HttpService } from 'src/app/core/services/http/http.service';
@@ -16,7 +16,7 @@ import { File } from "@ionic-native/file/ngx";
import { urlConstants } from 'src/app/core/constants/urlConstants';
import * as moment from 'moment';
import { TranslateService } from '@ngx-translate/core';
-import { CREATE_SESSION_FORM } from 'src/app/core/constants/formConstant';
+import { CREATE_SESSION_FORM, PLATFORMS } from 'src/app/core/constants/formConstant';
import { FormService } from 'src/app/core/services/form/form.service';
@Component({
@@ -28,13 +28,14 @@ export class CreateSessionPage implements OnInit {
lastUploadedImage: boolean;
private win: any = window;
@ViewChild('form1') form1: DynamicFormComponent;
+ @ViewChild('platformForm') platformForm: DynamicFormComponent;
id: any = null;
localImage;
path;
public headerConfig: any = {
// menu: true,
backButton: {
- label: 'CREATE_SESSION',
+ label: '',
},
notification: false,
};
@@ -42,9 +43,17 @@ export class CreateSessionPage implements OnInit {
type: 'session',
haveValidationError: false
}
+
public formData: JsonFormData;
showForm: boolean = false;
isSubmited: boolean;
+ type: any ;
+ selectedLink: any;
+ selectedHint: any;
+ meetingPlatforms:any ;
+ firstStepperTitle: string;
+ sessionDetails: any;
+
constructor(
private http: HttpClient,
private sessionService: SessionService,
@@ -62,60 +71,75 @@ export class CreateSessionPage implements OnInit {
private changeDetRef: ChangeDetectorRef,
private router: Router
) {
- this.activatedRoute.queryParamMap.subscribe(params => {
- this.id = params?.get('id');
- this.path = this.platform.is("ios") ? this.file.documentsDirectory : this.file.externalDataDirectory;
- });
+ this.path = this.platform.is("ios") ? this.file.documentsDirectory : this.file.externalDataDirectory;
}
async ngOnInit() {
const result = await this.form.getForm(CREATE_SESSION_FORM);
this.formData = _.get(result, 'result.data.fields');
- if (this.id) {
- let response = await this.sessionService.getSessionDetailsAPI(this.id);
- this.profileImageData.image = response.image;
- this.profileImageData.isUploaded = true;
- response.startDate = moment.unix(response.startDate).format("YYYY-MM-DDTHH:mm");
- response.endDate = moment.unix(response.endDate).format("YYYY-MM-DDTHH:mm");
- this.preFillData(response);
- } else {
- this.showForm = true;
- }
+ this.changeDetRef.detectChanges();
+ this.activatedRoute.queryParamMap.subscribe(async (params) => {
+ this.id = params?.get('id');
+ this.headerConfig.label = this.id ? "EDIT_SESSION":"CREATE_NEW_SESSION";
+ this.type = params?.get('type')? params?.get('type'): 'default';
+ this.firstStepperTitle = (this.id) ? "EDIT_SESSION_LABEL":"CREATE_NEW_SESSION";
+ if (this.id) {
+ let response = await this.sessionService.getSessionDetailsAPI(this.id);
+ this.sessionDetails= response;
+ this.profileImageData.image = response.image;
+ this.profileImageData.isUploaded = true;
+ response.startDate = moment.unix(response.startDate).format("YYYY-MM-DDTHH:mm");
+ response.endDate = moment.unix(response.endDate).format("YYYY-MM-DDTHH:mm");
+ this.preFillData(response);
+ } else {
+ this.showForm = true;
+ }
+ });
+ this.getPlatformFormDetails();
this.isSubmited = false; //to be removed
this.profileImageData.isUploaded = true;
this.changeDetRef.detectChanges();
}
+ async getPlatformFormDetails() {
+ let form = await this.form.getForm(PLATFORMS);
+ this.meetingPlatforms = form.result.data.fields.forms;
+ this.selectedLink = this.meetingPlatforms[0];
+ this.selectedHint = this.meetingPlatforms[0].hint;
+ }
+
async canPageLeave() {
- if (!this.form1.myForm.pristine || this.profileImageData.haveValidationError) {
- let texts: any;
- this.translate.get(['SESSION_FORM_UNSAVED_DATA', 'EXIT', 'BACK']).subscribe(text => {
- texts = text;
- })
- const alert = await this.alert.create({
- message: texts['SESSION_FORM_UNSAVED_DATA'],
- buttons: [
- {
- text: texts['EXIT'],
- cssClass: "alert-button",
- handler: () => { }
- },
- {
- text: texts['BACK'],
- cssClass: "alert-button",
- role: 'cancel',
- handler: () => { }
- }
- ]
- });
- await alert.present();
- let data = await alert.onDidDismiss();
- if (data.role == 'cancel') {
- return false;
+ if(this.type=='default'){
+ if (!this.form1?.myForm.pristine || this.profileImageData.haveValidationError) {
+ let texts: any;
+ this.translate.get(['SESSION_FORM_UNSAVED_DATA', 'EXIT', 'BACK']).subscribe(text => {
+ texts = text;
+ })
+ const alert = await this.alert.create({
+ message: texts['SESSION_FORM_UNSAVED_DATA'],
+ buttons: [
+ {
+ text: texts['EXIT'],
+ cssClass: "alert-button",
+ handler: () => { }
+ },
+ {
+ text: texts['BACK'],
+ cssClass: "alert-button",
+ role: 'cancel',
+ handler: () => { }
+ }
+ ]
+ });
+ await alert.present();
+ let data = await alert.onDidDismiss();
+ if (data.role == 'cancel') {
+ return false;
+ } else {
+ return true;
+ }
} else {
return true;
}
- } else {
- return true;
}
return true
}
@@ -124,7 +148,6 @@ export class CreateSessionPage implements OnInit {
async onSubmit() {
if(!this.isSubmited){
this.form1.onSubmit();
- this.isSubmited = true;
}
if (this.form1.myForm.valid) {
if (this.profileImageData.image && !this.profileImageData.isUploaded) {
@@ -137,8 +160,15 @@ export class CreateSessionPage implements OnInit {
form.timeZone = timezone;
this.form1.myForm.markAsPristine();
let result = await this.sessionService.createSession(form, this.id);
+ this.id = this.id ? this.id : result._id;
if (result) {
- this.id ? this.location.back() : this.router.navigate([`${CommonRoutes.SESSIONS_DETAILS}/`+result._id],{replaceUrl:true})
+ this.sessionDetails = _.isEmpty(result) ? this.sessionDetails : result;
+ this.isSubmited = true;
+ this.firstStepperTitle = (this.id) ? "EDIT_SESSION_LABEL":"CREATE_NEW_SESSION";
+ this.headerConfig.label = this.id ? "EDIT_SESSION":"CREATE_NEW_SESSION";
+ result.startDate = moment.unix(result.startDate).format("YYYY-MM-DDTHH:mm");
+ result.endDate = moment.unix(result.endDate).format("YYYY-MM-DDTHH:mm");
+ this.router.navigate([CommonRoutes.CREATE_SESSION], { queryParams: { id: this.id , type: 'segment'}, replaceUrl: true });
} else {
this.profileImageData.image = this.lastUploadedImage;
this.profileImageData.isUploaded = false;
@@ -177,6 +207,21 @@ export class CreateSessionPage implements OnInit {
}
preFillData(existingData) {
+ for(let j=0;j
link?.name == 'link')
+ let meetingId = this?.meetingPlatforms[j]?.form?.controls.find( (meetingId:any) => meetingId?.name == 'meetingId')
+ let password = this?.meetingPlatforms[j]?.form?.controls.find( (password:any) => password?.name == 'password')
+ if(existingData.meetingInfo.link){
+ obj.value = existingData?.meetingInfo?.link;
+ meetingId = existingData?.meetingInfo?.meta?.meetingId;
+ password = existingData?.meetingInfo?.meta?.password;
+ }
+ }
+ }
+
for (let i = 0; i < this.formData.controls.length; i++) {
this.formData.controls[i].value =
existingData[this.formData.controls[i].name];
@@ -202,4 +247,39 @@ export class CreateSessionPage implements OnInit {
this.profileImageData.isUploaded = true;
this.profileImageData.haveValidationError = false;
}
+ segmentChanged(event){
+ this.type = event.target.value;
+ }
+ isValid(event){
+ this.isSubmited = event;
+ }
+ clickOptions(event:any){
+ this.selectedHint = event.detail.value.hint;
+ }
+ setItLater(){
+ this.id ? this.router.navigate([`/${"session-detail"}/${this.id}`], {replaceUrl: true}): this.location.back();
+
+ }
+ onSubmitLink(){
+ if (this.platformForm.myForm.valid){
+ let meetingInfo = {
+ 'meetingInfo':{
+ 'platform': this.selectedLink.name,
+ 'link': this.platformForm.myForm.value?.link,
+ 'value': this.selectedLink.value,
+ "meta": {
+ "password": this.platformForm.myForm.value?.password,
+ "meetingId":this.platformForm.myForm.value?.meetingId
+ }
+
+ }}
+ this.sessionService.createSession(meetingInfo,this.id).then(()=>{
+ this.router.navigate([`/${"session-detail"}/${this.id}`],{replaceUrl: true})
+ })
+ }
+ }
+ compareWithFn(o1, o2) {
+ return o1 === o2;
+ };
+
}
diff --git a/src/app/pages/feedback/feedback.page.ts b/src/app/pages/feedback/feedback.page.ts
index 35fe398dd..914aaf593 100644
--- a/src/app/pages/feedback/feedback.page.ts
+++ b/src/app/pages/feedback/feedback.page.ts
@@ -64,11 +64,11 @@ export class FeedbackPage implements OnInit {
if (result) {
this.toast.showToast(result?.message, "success");
}
- await this.modalController.dismiss();
+ await this.modalController.dismiss(false);
}
async closeModal() {
await this.sessionService.submitFeedback({ skippedFeedback: true, feedbackAs: this.feedbackData.feedbackAs }, this.sessionData._id);
- await this.modalController.dismiss();
+ await this.modalController.dismiss(false);
}
}
diff --git a/src/app/pages/help/help.page.html b/src/app/pages/help/help.page.html
index 9de44a95a..c5f28637f 100644
--- a/src/app/pages/help/help.page.html
+++ b/src/app/pages/help/help.page.html
@@ -1,11 +1,23 @@
-
- {{"SUBMIT" | translate}}
+
+ {{option?.buttonText | translate}}
\ No newline at end of file
diff --git a/src/app/pages/help/help.page.ts b/src/app/pages/help/help.page.ts
index e2bebd54d..47948f8a3 100644
--- a/src/app/pages/help/help.page.ts
+++ b/src/app/pages/help/help.page.ts
@@ -5,6 +5,13 @@ import { HttpService, LoaderService, ToastService } from 'src/app/core/services'
import { DynamicFormComponent, JsonFormData } from 'src/app/shared/components/dynamic-form/dynamic-form.component';
import { CommonRoutes } from 'src/global.routes';
import { Device } from '@awesome-cordova-plugins/device/ngx';
+import { FormService } from 'src/app/core/services/form/form.service';
+import { HELP } from 'src/app/core/constants/formConstant';
+import * as _ from 'lodash';
+import { App } from '@capacitor/app';
+import { TranslateService } from '@ngx-translate/core';
+import { AlertController } from '@ionic/angular';
+import { ProfileService } from 'src/app/core/services/profile/profile.service';
@Component({
selector: 'app-help',
@@ -17,34 +24,37 @@ export class HelpPage implements OnInit {
backButton: true,
label: "HELP"
};
- formData: JsonFormData = {
- controls: [
- {
- "name": "description",
- "label": "Tell us here",
- "value": "",
- "class": "ion-margin",
- "type": "text",
- "position": "floating",
- "validators": {}
- },
- ]
- };
- metaData: { deviceName: string; androidVersion: string; };
+ public formData: JsonFormData;
+ metaData: { deviceName: string; androidVersion: string; version: string; type: string};
+ selectedOption: any;
+ helpForms: any;
+ userDetails: any;
+ message: any;
- constructor(private router: Router, private loaderService: LoaderService, private toast: ToastService, private httpService: HttpService, private device: Device) { }
+ constructor(private router: Router, private loaderService: LoaderService, private toast: ToastService, private httpService: HttpService, private device: Device,
+ private form: FormService, private translate: TranslateService,private alert: AlertController,private profileService: ProfileService,) { }
- ngOnInit() {
- this.metaData = {
- deviceName: this.device.model,
- androidVersion: this.device.version
- }
+ async ngOnInit() {
+ this.helpForm();
+ await this.profileService.profileDetails().then((userDetails) => {
+ this.userDetails = userDetails;
+ });
+ App.getInfo().then((data)=>{
+ this.metaData = {
+ deviceName: this.device.model,
+ androidVersion: this.device.version,
+ version: data.version,
+ type: ''
+ }
+ })
+
}
- onSubmit() {
+ onSubmit(option: any) {
+ this.metaData.type = option.value;
this.form1.myForm.value.metaData = this.metaData;
- this.submitHelpReport()
- this.router.navigate([`/${CommonRoutes.TABS}/${CommonRoutes.HOME}`])
+ this.form1.myForm.value.description = this.form1.myForm.value.description ? this.form1.myForm.value.description: option.value;
+ (option.buttonText == "DELETE_ACCOUNT") ? this.deteteAccount(): this.submitHelpReport();
}
async submitHelpReport() {
await this.loaderService.startLoader();
@@ -60,5 +70,44 @@ export class HelpPage implements OnInit {
catch (error) {
this.loaderService.stopLoader();
}
+ this.router.navigate([`/${CommonRoutes.TABS}/${CommonRoutes.HOME}`])
+ }
+ async deteteAccount(){
+ let texts: any;
+ this.translate.get(['DELETE_ALERT_MSG', 'YES', 'NO']).subscribe(text => {
+ texts = text;
+ })
+ const alert = await this.alert.create({
+ message: texts['DELETE_ALERT_MSG'],
+ buttons: [
+ {
+ text: texts['YES'],
+ cssClass: "alert-button",
+ handler: () => { }
+ },
+ {
+ text: texts['NO'],
+ cssClass: "alert-button-no",
+ role: 'no',
+ handler: () => { }
+ }
+ ]
+ });
+ await alert.present();
+ let data = await alert.onDidDismiss();
+ if(data.role == 'no'){
+ this.submitHelpReport();
+ }
+ }
+ async helpForm(){
+ const result = await this.form.getForm(HELP);
+ this.formData = _.get(result, 'result.data.fields');
+ this.helpForms = _.get(result, 'result.data.fields.forms');
+ this.selectedOption = this.helpForms[0];
+ this.message = (this.userDetails?.isAMentor) ? this.selectedOption?.menterMessage : this.selectedOption?.menteeMessage;
+ }
+ clickOptions(event:any){
+ this.selectedOption = event.detail.value;
+ this.message = (this.userDetails.isAMentor) ? this.selectedOption?.menterMessage : this.selectedOption?.menteeMessage;
}
}
\ No newline at end of file
diff --git a/src/app/pages/home-search/home-search.page.ts b/src/app/pages/home-search/home-search.page.ts
index c217c56ac..f33b4bf08 100644
--- a/src/app/pages/home-search/home-search.page.ts
+++ b/src/app/pages/home-search/home-search.page.ts
@@ -86,7 +86,7 @@ export class HomeSearchPage implements OnInit {
break;
case 'joinAction':
- (event.data.sessionId)?await this.sessionService.joinSession(event.data.sessionId):await this.sessionService.joinSession(event.data._id);
+ this.sessionService.joinSession(event.data)
this.search();
break;
diff --git a/src/app/pages/mentor-details/mentor-details.page.ts b/src/app/pages/mentor-details/mentor-details.page.ts
index cde5de66d..efc022b9a 100644
--- a/src/app/pages/mentor-details/mentor-details.page.ts
+++ b/src/app/pages/mentor-details/mentor-details.page.ts
@@ -112,7 +112,7 @@ export class MentorDetailsPage implements OnInit {
break;
case 'joinAction':
- await this.sessionService.joinSession(event.data._id);
+ await this.sessionService.joinSession(event.data);
this.upcomingSessions = await this.sessionService.getUpcomingSessions(this.mentorId);
break;
diff --git a/src/app/pages/session-detail/session-detail.page.html b/src/app/pages/session-detail/session-detail.page.html
index f764ffc80..fdceb8812 100644
--- a/src/app/pages/session-detail/session-detail.page.html
+++ b/src/app/pages/session-detail/session-detail.page.html
@@ -21,10 +21,11 @@ {{detailData?.data?.title}}
-
-
+ {{"START_SESSIONS" | translate}}
-
+
+
{{"ENROLL" | translate}}
diff --git a/src/app/pages/session-detail/session-detail.page.scss b/src/app/pages/session-detail/session-detail.page.scss
index 0ff4786fb..26f542ba8 100644
--- a/src/app/pages/session-detail/session-detail.page.scss
+++ b/src/app/pages/session-detail/session-detail.page.scss
@@ -1,8 +1,11 @@
.main-wrapper{
- margin : 10px 15px 0px 15px
+ margin : 10px 15px 0px 15px;
+ padding-bottom: 40px;
}
.load-more-button{
height: 50px;
+ width: 100%;
+ font-size: 15px !important;
}
.session-btn{
margin: 10px,;
@@ -40,4 +43,9 @@ img{
width: 93%;
border-radius: 10px;
height: 220px;
-}
\ No newline at end of file
+}
+ion-item {
+ --padding-end: 0px;
+ --inner-padding-end: 0px;
+ --padding-start: 0px;
+ }
\ No newline at end of file
diff --git a/src/app/pages/session-detail/session-detail.page.ts b/src/app/pages/session-detail/session-detail.page.ts
index b5e3e144c..d0800fef7 100644
--- a/src/app/pages/session-detail/session-detail.page.ts
+++ b/src/app/pages/session-detail/session-detail.page.ts
@@ -6,6 +6,9 @@ import { CommonRoutes } from 'src/global.routes';
import * as moment from 'moment';
import { localKeys } from 'src/app/core/constants/localStorage.keys';
import { Location } from '@angular/common';
+import { ToastController } from '@ionic/angular';
+import { TranslateService } from '@ngx-translate/core';
+import { App, AppState } from '@capacitor/app';
@Component({
selector: 'app-session-detail',
@@ -20,13 +23,21 @@ export class SessionDetailPage implements OnInit {
isEnabled: boolean;
startDate: any;
endDate: any;
+ sessionDatas: any;
+ snackbarRef: any;
constructor(private localStorage: LocalStorageService, private router: Router,
private activatedRoute: ActivatedRoute, private sessionService: SessionService,
- private utilService: UtilService, private toast: ToastService, private _location: Location, private user: UserService) {
+ private utilService: UtilService, private toast: ToastService, private _location: Location, private user: UserService ,private toaster: ToastController,private translate : TranslateService) {
this.id = this.activatedRoute.snapshot.paramMap.get('id')
}
- ngOnInit() {}
+ ngOnInit() {
+ App.addListener('appStateChange', (state: AppState) => {
+ if (state.isActive == true) {
+ this.fetchSessionDetails();
+ }
+ });
+ }
async ionViewWillEnter() {
await this.user.getUserValue();
@@ -41,6 +52,10 @@ export class SessionDetailPage implements OnInit {
};
detailData = {
form: [
+ {
+ title: "MEETING_PLATFORM",
+ key: "meetingInfo",
+ },
{
title: 'RECOMMENDED_FOR',
key: 'recommendedFor',
@@ -103,12 +118,14 @@ export class SessionDetailPage implements OnInit {
status:null,
isEnrolled:null,
title:"",
- startDate:""
+ startDate:"",
+ meetingInfo:""
},
};
async fetchSessionDetails() {
var response = await this.sessionService.getSessionDetailsAPI(this.id);
+ this.sessionDatas = response;
if (response) {
this.setPageHeader(response);
let readableStartDate = moment.unix(response.startDate).toLocaleString();
@@ -120,10 +137,25 @@ export class SessionDetailPage implements OnInit {
}
this.detailData.data = Object.assign({}, response);
this.detailData.data.startDate = readableStartDate;
+ this.detailData.data.meetingInfo = response.meetingInfo.platform;
this.startDate = (response.startDate>0)?moment.unix(response.startDate).toLocaleString():this.startDate;
this.endDate = (response.endDate>0)?moment.unix(response.endDate).toLocaleString():this.endDate;
}
+ if((response.meetingInfo.platform == 'OFF') && this.isCreator && response.status=='published'){
+ this.showToasts('ADD_MEETING_LINK', 0 , [
+ {
+ text: 'Add meeting link',
+ role: 'cancel',
+ handler: () => {
+ this.router.navigate([CommonRoutes.CREATE_SESSION], { queryParams: { id: this.id , type: 'segment'} });
+ }
+ }
+ ])
+ }
}
+ ionViewWillLeave(){
+ this.snackbarRef = this.toaster.dismiss();
+ }
setPageHeader(response) {
let currentTimeInSeconds=Math.floor(Date.now()/1000);
@@ -133,7 +165,7 @@ export class SessionDetailPage implements OnInit {
if(this.userDetails){
this.isCreator = this.userDetails._id == response.userId ? true : false;
}
- this.headerConfig.edit = (this.isCreator && response.status=="published")?true:null;
+ this.headerConfig.edit = (this.isCreator && response.status=="published"&& !this.isEnabled)?true:null;
this.headerConfig.delete = (this.isCreator && response.status=="published" && !this.isEnabled)?true:null;
}
@@ -192,7 +224,7 @@ export class SessionDetailPage implements OnInit {
}
async onJoin() {
- await this.sessionService.joinSession(this.id);
+ await this.sessionService.joinSession(this.sessionDatas);
}
async onEnroll() {
@@ -235,4 +267,19 @@ export class SessionDetailPage implements OnInit {
}
}).catch(error => { })
}
+ showToasts(message: any,duration : any, toastButton : any){
+ let texts;
+ this.translate.get([message]).subscribe(resp =>{
+ texts = resp;
+ });
+ this.snackbarRef = this.toaster.create({
+ message: texts[message],
+ // color: "danger",
+ buttons: toastButton,
+ cssClass: 'custom-toast'
+ }).then((toastData) => {
+
+ toastData.present();
+ });
+ }
}
diff --git a/src/app/pages/sessions/sessions.ts b/src/app/pages/sessions/sessions.ts
index 8b6238ede..fa67fb10c 100644
--- a/src/app/pages/sessions/sessions.ts
+++ b/src/app/pages/sessions/sessions.ts
@@ -94,6 +94,6 @@ export class SessionsPage implements OnInit {
}
async onJoin(event){
- await this.sessionService.joinSession(event.data.sessionId);
+ await this.sessionService.joinSession(event.data);
}
}
\ No newline at end of file
diff --git a/src/app/pages/tabs/home/home.page.ts b/src/app/pages/tabs/home/home.page.ts
index 820509098..b5109968a 100644
--- a/src/app/pages/tabs/home/home.page.ts
+++ b/src/app/pages/tabs/home/home.page.ts
@@ -12,6 +12,8 @@ import { urlConstants } from 'src/app/core/constants/urlConstants';
import { SessionService } from 'src/app/core/services/session/session.service';
import { Location } from '@angular/common';
import { TermsAndConditionsPage } from '../../terms-and-conditions/terms-and-conditions.page';
+import { App, AppState } from '@capacitor/app';
+
@Component({
selector: 'app-home',
@@ -54,6 +56,15 @@ export class HomePage implements OnInit {
private toast:ToastService) { }
ngOnInit() {
+ App.addListener('appStateChange', (state: AppState) => {
+ if (state.isActive == true) {
+ this.getSessions();
+ var obj = { page: this.page, limit: this.limit, searchText: "" };
+ this.sessionService.getAllSessionsAPI(obj).then((data)=>{
+ this.createdSessions = data;
+ })
+ }
+ });
this.getUser();
this.userService.userEventEmitted$.subscribe(data => {
if (data) {
@@ -78,7 +89,7 @@ export class HomePage implements OnInit {
break;
case 'joinAction':
- (event.data.sessionId)?await this.sessionService.joinSession(event.data.sessionId):await this.sessionService.joinSession(event.data._id);
+ await this.sessionService.joinSession(event.data)
this.getSessions();
break;
diff --git a/src/app/shared/components/dynamic-form/dynamic-form.component.html b/src/app/shared/components/dynamic-form/dynamic-form.component.html
index 48baa4e39..31b8f11a4 100644
--- a/src/app/shared/components/dynamic-form/dynamic-form.component.html
+++ b/src/app/shared/components/dynamic-form/dynamic-form.component.html
@@ -42,6 +42,7 @@
[value]="control.value"
[maxlength]="control?.validators?.maxLength"
(ionChange)="removeSpace($event)"
+ [placeholder]="control.platformPlaceHolder"
>
+
+
+
+
+
+
+
+
+
+ {{startDate | date: 'EEEE, MMMM d'}} . {{startDate | date:'hh:mm'}} - {{startDate | date:'shortTime'}}
+
+
+
+
+
+
+
+
+ {{ "MEETING_PLATFORM" | translate }} :
+ {{ meetingPlatform.platform }}
+
+
+
+
+
+
+
+
+
+ {{'PASSWORD' | translate}}:
+ {{ data?.meta?.password }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{'MEETING_ID' | translate}}:
+ {{ data?.meta?.meetingId }}
+
+
+
+
+
+
+
+
+
+
+ {{'JOIN' | translate}}
+
+
+
+
\ No newline at end of file
diff --git a/src/app/shared/components/join-dialog-box/join-dialog-box.component.scss b/src/app/shared/components/join-dialog-box/join-dialog-box.component.scss
new file mode 100644
index 000000000..aa7823ed3
--- /dev/null
+++ b/src/app/shared/components/join-dialog-box/join-dialog-box.component.scss
@@ -0,0 +1,15 @@
+.join-header{
+ text-align: center;
+ max-width: 300px;
+ padding-left: 11%;
+}
+.join-platform{
+ font-size: 12px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.platform-ellipsis{
+ overflow: hidden;
+ text-overflow:ellipsis;
+ white-space: nowrap;
+}
\ No newline at end of file
diff --git a/src/app/shared/components/join-dialog-box/join-dialog-box.component.spec.ts b/src/app/shared/components/join-dialog-box/join-dialog-box.component.spec.ts
new file mode 100644
index 000000000..7d3f7f20c
--- /dev/null
+++ b/src/app/shared/components/join-dialog-box/join-dialog-box.component.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+import { IonicModule } from '@ionic/angular';
+
+import { JoinDialogBoxComponent } from './join-dialog-box.component';
+
+describe('JoinDialogBoxComponent', () => {
+ let component: JoinDialogBoxComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(waitForAsync(() => {
+ TestBed.configureTestingModule({
+ declarations: [ JoinDialogBoxComponent ],
+ imports: [IonicModule.forRoot()]
+ }).compileComponents();
+
+ fixture = TestBed.createComponent(JoinDialogBoxComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ }));
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/shared/components/join-dialog-box/join-dialog-box.component.ts b/src/app/shared/components/join-dialog-box/join-dialog-box.component.ts
new file mode 100644
index 000000000..3b16848f3
--- /dev/null
+++ b/src/app/shared/components/join-dialog-box/join-dialog-box.component.ts
@@ -0,0 +1,50 @@
+import { Component, OnInit } from '@angular/core';
+import { ModalController } from '@ionic/angular';
+import * as moment from 'moment';
+import { InAppBrowser } from '@awesome-cordova-plugins/in-app-browser/ngx';
+import { ToastService } from 'src/app/core/services';
+import { Clipboard } from '@capacitor/clipboard';
+
+@Component({
+ selector: 'app-join-dialog-box',
+ templateUrl: './join-dialog-box.component.html',
+ styleUrls: ['./join-dialog-box.component.scss'],
+})
+export class JoinDialogBoxComponent implements OnInit {
+ data;
+ sessionData;
+ startDate: any;
+ endDate: any;
+ meetingPlatform: any;
+
+ constructor(private modalCtrl: ModalController, private inAppBrowser: InAppBrowser, private toast: ToastService) { }
+
+ ngOnInit() {
+ this.startDate = (this.sessionData.startDate>0)?moment.unix(this.sessionData.startDate).toLocaleString():this.startDate;
+ this.endDate = (this.sessionData.endDate>0)?moment.unix(this.sessionData.endDate).toLocaleString():this.endDate;
+ this.meetingPlatform = (this.sessionData.meetingInfo);
+ }
+ openBrowser(link) {
+ let browser = this.inAppBrowser.create(link, `_system`);
+ browser.on('exit').subscribe(() => {
+ }, err => {
+ console.error(err);
+ });
+ }
+
+ cancel(){
+ return this.modalCtrl.dismiss(null, 'cancel');
+ }
+ onButtonClick(){
+ this.modalCtrl.dismiss();
+ this.openBrowser(this.data.link);
+ }
+
+ copyToClipBoard = async (copyData: any) => {
+ await Clipboard.write({
+ string: copyData
+ }).then(()=>{
+ this.toast.showToast('Copied successfully',"success");
+ });
+ };
+}
diff --git a/src/app/shared/components/session-card/session-card.component.html b/src/app/shared/components/session-card/session-card.component.html
index ee5e9f84c..0019fa7d1 100644
--- a/src/app/shared/components/session-card/session-card.component.html
+++ b/src/app/shared/components/session-card/session-card.component.html
@@ -19,18 +19,35 @@ {{data?.name || data?.title}}
-
+
+ {{"STARTS_ON"|translate}} {{startDate|date:'dd/MM/yyyy'}} {{"AT"|translate}} {{startDate|date:'shortTime'}}
+ {{"STARTED_ON"|translate}} {{startDate|date:'dd/MM/yyyy'}} {{"AT"|translate}} {{startDate|date:'shortTime'}}
+ {{"COMPLETED_ON"|translate}} {{endDate|date:'dd/MM/yyyy'}} {{"AT"|translate}} {{endDate|date:'shortTime'}}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{buttonConfig?.label | translate}}
+
\ No newline at end of file
diff --git a/src/app/shared/components/session-card/session-card.component.scss b/src/app/shared/components/session-card/session-card.component.scss
index b31a9abdf..1df22329f 100644
--- a/src/app/shared/components/session-card/session-card.component.scss
+++ b/src/app/shared/components/session-card/session-card.component.scss
@@ -23,9 +23,6 @@
margin-top: 0px;
font-size: 16px;
}
- p {
- margin: 6px 0px 0px 0px;
- }
}
.text-align {
overflow: hidden;
@@ -45,11 +42,26 @@ ion-icon{
font-size: 20px;
color: black;
}
-.date-label{
- margin-left: 8px;
+.header{
+ margin-top: 10px;
+}
+.platform-date-label{
+ padding-left: 8px;
font-size: 12px;
color: rgb(41, 41, 41);
}
-.header{
- margin-top: 10px;
+.add-meeting-link{
+ width: 75%;
+ text-decoration: underline;
+ font-weight: 600;
+ color: var(--ion-color-primary);
+ z-index: 1000;
+
+}
+.join-platform-container{
+ width: 350px;
+}
+.meeting-platform{
+ padding-left: 10px;
+ width: max-content;
}
\ No newline at end of file
diff --git a/src/app/shared/components/session-card/session-card.component.ts b/src/app/shared/components/session-card/session-card.component.ts
index ee047d79a..83f87eeaf 100644
--- a/src/app/shared/components/session-card/session-card.component.ts
+++ b/src/app/shared/components/session-card/session-card.component.ts
@@ -1,10 +1,12 @@
-import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';
+import { Component, Input, OnInit, Output, EventEmitter, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import * as moment from 'moment';
import { localKeys } from 'src/app/core/constants/localStorage.keys';
import { LocalStorageService, ToastService } from 'src/app/core/services';
import { SessionService } from 'src/app/core/services/session/session.service';
import { CommonRoutes } from 'src/global.routes';
+import { IonModal } from '@ionic/angular';
+import { App, AppState } from '@capacitor/app';
@Component({
selector: 'app-session-card',
@@ -14,15 +16,24 @@ import { CommonRoutes } from 'src/global.routes';
export class SessionCardComponent implements OnInit {
@Input() data: any;
@Output() onClickEvent = new EventEmitter();
+ @ViewChild(IonModal) modal: IonModal;
startDate: string;
isCreator: boolean;
buttonConfig;
userData: any;
endDate: string;
+ isModalOpen = false;
+ meetingPlatform: any;
constructor(private router: Router, private sessionService: SessionService, private toast: ToastService, private localStorage: LocalStorageService) { }
async ngOnInit() {
+ App.addListener('appStateChange', (state: AppState) => {
+ if (state.isActive == true) {
+ this.setButtonConfig(this.isCreator);
+ }
+ });
+ this.meetingPlatform = (this.data?.meetingInfo);
this.isCreator = await this.checkIfCreator();
this.setButtonConfig(this.isCreator);
this.startDate = (this.data.startDate>0)?moment.unix(this.data.startDate).toLocaleString():this.startDate;
@@ -33,11 +44,10 @@ export class SessionCardComponent implements OnInit {
let currentTimeInSeconds=Math.floor(Date.now()/1000);
if(isCreator){
this.buttonConfig={label:"START",type:"startAction"};
- this.buttonConfig.isEnabled = ((this.data.startDate-currentTimeInSeconds)<600 || this.data.status=='live')?true:false;
} else {
this.buttonConfig=(!isCreator&&this.data.isEnrolled || !isCreator&&this.data.sessionId)?{label:"JOIN",type:"joinAction"}:{label:"ENROLL",type:"enrollAction"};
- this.buttonConfig.isEnabled = ((this.data.startDate-currentTimeInSeconds)<300 || this.data.status=='live')?true:false;
}
+ this.buttonConfig.isEnabled = ((this.data.startDate - currentTimeInSeconds) < 600 && !(this.data?.meetingInfo?.platform == 'OFF')) ? true : false
}
async checkIfCreator() {
@@ -60,4 +70,8 @@ export class SessionCardComponent implements OnInit {
}
this.userData.about?this.onClickEvent.emit(value):this.router.navigate([`/${CommonRoutes.EDIT_PROFILE}`]);
}
+ clickOnAddMeetingLink(cardData:any){
+ let id = cardData._id;
+ this.router.navigate([CommonRoutes.CREATE_SESSION], { queryParams: { id: id , type: 'segment'} });
+ }
}
diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts
index 0f362fc84..aed650e6b 100644
--- a/src/app/shared/shared.module.ts
+++ b/src/app/shared/shared.module.ts
@@ -24,6 +24,7 @@ import {
import { SafeHtmlPipe } from './safe-html.pipe';
import { MentorCardComponent } from './components/mentor-card/mentor-card.component';
import { NumberOnlyDirective } from './directive/onlyNumbers';
+import { JoinDialogBoxComponent } from './components/join-dialog-box/join-dialog-box.component';
@NgModule({
declarations: [
@@ -45,7 +46,8 @@ import { NumberOnlyDirective } from './directive/onlyNumbers';
PersonaSelectionCardComponent,
GenericProfileHeaderComponent,
MentorCardComponent,
- NumberOnlyDirective
+ NumberOnlyDirective,
+ JoinDialogBoxComponent
],
imports: [
CommonModule,
@@ -72,7 +74,8 @@ import { NumberOnlyDirective } from './directive/onlyNumbers';
SafeHtmlPipe,
PersonaSelectionCardComponent,
GenericProfileHeaderComponent,
- MentorCardComponent
+ MentorCardComponent,
+ JoinDialogBoxComponent
],
})
export class SharedModule {}
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 7c063f959..a976bd0dd 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -100,7 +100,7 @@
"SAVE":"Save",
"TERMS_OF_USE": "Terms of use",
"SOMETHING_WENT_WRONG":"Something went wrong",
- "CREATE_NEW_SESSION": "Create new Session",
+ "CREATE_NEW_SESSION": "Create a new session",
"DELETE": "Delete",
"START_SESSIONS": "Start session",
"START": "Start",
@@ -168,5 +168,20 @@
"CATEGORIES": "Categories",
"MEDIUM": "Medium",
"DON'T_DELETE": "Don't delete",
- "YES_DELETE": "Yes delete"
+ "YES_DELETE": "Yes delete",
+ "SET_IT_LATER": "Set it later",
+ "SELECT_MEETING_PLATFORM": "Add meeting link",
+ "MEETING_PLATFORM": "Meeting platform",
+ "MEETING_LINK": "Meeting link",
+ "EDIT_SESSION": "Edit session details",
+ "PUBLISH_AND_ADD_LINK": "Publish and Add link",
+ "MEETING_ID": "Meeting id",
+ "PASSWORD": "Password",
+ "EDIT_SESSION_LABEL": "Edit session",
+ "HAVING_TROUBLE_LOGIN": "Having trouble in logging in/signing up? Write to us.",
+ "ADD_MEETING_LINK": "Meeting link is not added, please add a link.",
+ "DELETE_ACCOUNT": "Delete account",
+ "DELETE_ALERT_MSG": "Deleting your account will remove all your data from the app forever. You will have to create a new account if you decide to come back. Do you want to continue?",
+ "YES": "Yes",
+ "NO": "No"
}
diff --git a/src/global.scss b/src/global.scss
index 93cbbf8ce..82a608e0f 100644
--- a/src/global.scss
+++ b/src/global.scss
@@ -270,4 +270,32 @@ ion-accordion-group{
color: grey;
}
}
+}
+
+//////////////
+
+
+.example-modal {
+ --width: fit-content;
+ --min-width: 95%;
+ --height: fit-content;
+ --border-radius: 6px;
+ --box-shadow: 0 28px 48px rgba(0, 0, 0, 0.4);
+}
+
+.example-modal .wrapper {
+ margin-bottom: 10px;
+}
+ion-toast.custom-toast::part(button) {
+ border-radius: 5px;
+ background-color: #39a464;
+ font-size: 15px;
+ text-transform: none;
+}
+ion-toast.custom-toast{
+ --background: var(--ion-color-primary);
+}
+.alert-button-no {
+ background: var(--white) !important;
+ color: var(--ion-color-primary) !important;
}
\ No newline at end of file