-
-
+
+
- Points : {{refer_points}}
+ Points : {{refer_points}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+ Send Invite
+
+
+
+
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
-
-
-
- Send Invite
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Refresh Contacts
-
-
-
-
-
-
-
-
-
-
- Send your link to your email and share it with your friend; any signup will automatically link to your account for points.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Send link to my email
+
+
+
+
+
+ Refresh Contacts
-
-
-
- Copy
-
-
-
- {{resultText}}
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+ Send your link to your email and share it with your friend; any signup will
+ automatically link to your account for points.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Send link to my email
+
+
+
+
+ Copy
+
+
+
+ {{resultText}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
Previous Invitations
+
Uncompleted signup will be removed automatically after 7 days
+
+
+
+
+
+
+
+
{{item.firstname}} {{item.lastname}}
+
{{item.email}}
+
{{item.added_date}} - {{item.status}}
+
+
+
+
+
+
+
-
-
-
-
-
Previous Invitations
-
Uncompleted signup will be removed automatically after 7 days
-
-
-
-
-
-
-
-
{{item.firstname}} {{item.lastname}}
-
{{item.email}}
-
{{item.added_date}} - {{item.status}}
-
-
-
-
-
-
-
-
-
-
diff --git a/src/app/pages/invite/invite.page.ts b/src/app/pages/invite/invite.page.ts
index 355b930..8d8bf9e 100644
--- a/src/app/pages/invite/invite.page.ts
+++ b/src/app/pages/invite/invite.page.ts
@@ -167,9 +167,16 @@ export class InvitePage implements OnInit {
action: number, member_id: number, uid: string, sessionid: string, refer_link: string
};
+ copyMessage = ""
+
async copyTextToClipboard(linkToCopy) {
try {
await navigator.clipboard.writeText(linkToCopy);
+ this.resultText = "Copied";
+
+ setTimeout(() => {
+ this.resultText = ""
+ }, 3000);
console.log('Text copied to clipboard successfully!');
} catch (err) {
console.error('Failed to copy text: ', err);
diff --git a/src/app/pages/joboffers/joboffers.page.html b/src/app/pages/joboffers/joboffers.page.html
index 82be90f..5bb50f6 100644
--- a/src/app/pages/joboffers/joboffers.page.html
+++ b/src/app/pages/joboffers/joboffers.page.html
@@ -1,175 +1,54 @@
-
-
-
-
-
-
- Offers
-
+
+
+
+
+
+
+ Offers
+
-
-
-
+
+
+
+ [noLimit]="noLimit">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
0 ">
+
+ Current Active Task
+
+
+
+
+
+
{{(item.title.length > 55) ? item.title.substring(0, 54) + "..." : item.title }}
+
Reward :
+ {{item.price * 0.01| number : '1.2-2'}} {{item.currency_code}}
+
Timeline : {{item.timeline_days}}
+ days
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/app/pages/joboffers/joboffers.page.ts b/src/app/pages/joboffers/joboffers.page.ts
index 95866de..a187f8d 100644
--- a/src/app/pages/joboffers/joboffers.page.ts
+++ b/src/app/pages/joboffers/joboffers.page.ts
@@ -1,172 +1,193 @@
-import { Component, OnInit } from '@angular/core';
+import {Component, OnInit} from '@angular/core';
import {AlertController, LoadingController, NavController} from "@ionic/angular";
import {Router} from "@angular/router";
-import { WrenchService } from 'src/app/services/wrench.service';
+import {WrenchService} from 'src/app/services/wrench.service';
import {SessionDataProviderService} from "../../store/session-data-provider.service";
+import {TasksDataService} from "../../store/tasks-data.service";
+
@Component({
- selector: 'app-joboffers',
- templateUrl: './joboffers.page.html',
- styleUrls: ['./joboffers.page.scss'],
+ selector: 'app-joboffers',
+ templateUrl: './joboffers.page.html',
+ styleUrls: ['./joboffers.page.scss'],
})
export class JoboffersPage implements OnInit {
- noLimit:boolean=true;
- showCount:boolean=true;
+ noLimit: boolean = true;
+ showCount: boolean = true;
+ active_job_count: number = 0;
+ tabs = 'about';
+ jobsData: [];
+ session_image_server: string = '';
+ curr_session: string = '';
- tabs = 'about';
+ constructor(
+ private navctr: NavController,
+ private router: Router,
+ public sessionDataProviderService: SessionDataProviderService,
+ private alertController: AlertController,
+ private wrenchService: WrenchService,
+ private loadingCtrl: LoadingController,
+ public tasksDataService: TasksDataService,
+ ) {
+ this.active_job_count = this.tasksDataService.active_job_count;
+ this.jobsData = this.tasksDataService.jobsData;
+ this.session_image_server = this.tasksDataService.session_image_server;
+ this.curr_session = this.sessionDataProviderService.session;
+ }
- constructor(
- private navctr: NavController,
- private router: Router,
- public sessionDataProviderService: SessionDataProviderService,
- private alertController:AlertController,
- private wrenchService: WrenchService,
- private loadingCtrl: LoadingController
- ) { }
+ ngOnInit() {
- ngOnInit() {
+ const offer_refresh = new CustomEvent("force-offers-refresh", {
+ detail: {
+ offers: this.myOffersData
+ }
+ });
+ dispatchEvent(offer_refresh);
- const offer_refresh = new CustomEvent("force-offers-refresh", {detail: {
- offers: this.myOffersData
- }});
- dispatchEvent(offer_refresh);
-
- }
+ }
- onBack() {
- this.navctr.back();
- }
+ onBack() {
+ this.navctr.back();
+ }
- onMentor() {
- this.router.navigate(['mentor']);
- }
+ onMentor() {
+ this.router.navigate(['mentor']);
+ }
- onEnroll() {
- this.router.navigate(['enroll']);
- }
+ onEnroll() {
+ this.router.navigate(['enroll']);
+ }
- session_image_server:string='';
- curr_session:string='';
- //
- usrData: {
- action:number, member_id: number, uid: string,
- sessionid: string,
- limit:20,
- page:1, offset:number
- };
- total_offers:number = 0;
- myOffersTotalData:any;
- myOffersData: [];
- async getMyOffersData(){
- this.usrData = {action:15010,
- member_id: this.sessionDataProviderService.member_id,
- uid: this.sessionDataProviderService.member_uid,
- sessionid: this.sessionDataProviderService.session ,
- limit:20, page:1,offset: 0}
-
- this.curr_session = this.sessionDataProviderService.session;
- this.wrenchService.getMyOffers(this.usrData).subscribe(
- myOffersTotalData => {
- this.myOffersTotalData = myOffersTotalData;
- this.session_image_server = this.myOffersTotalData.session_image_server;
- console.log("myOffersTotalData RETURN->", this.myOffersTotalData);
- this.myOffersData = this.myOffersTotalData.result_list;
- console.log("myOffersData RETURN DATA->", this.myOffersData);
- this.total_offers = this.myOffersData.length;
- }
- );
-
- }
-
-
- async requestStart(item) {
- const alert = await this.alertController.create({
- header: "Ready to start",
- message: "You will start the task now, offer shall be completed in allocated timeline.",
- buttons: [
- {
- text: "Cancel",
- role: "cancel",
- handler: () => {
- this.getMyOffersData();
- },
- },
- {
- text: "Start Now",
- handler: () => {
- this.sendOfferResponse(item, 100);
- this.getMyOffersData();
- },
- },
- ],
- });
- await alert.present();
- }
-
- async requestReject(item) {
- const alert = await this.alertController.create({
- header: "Confirm Reject",
- message: "This task will go away, you dont have to do anything.",
- buttons: [
- {
- text: "Cancel",
- role: "cancel",
- handler: () => {
- this.getMyOffersData();
- },
- },
- {
- text: "Reject",
- handler: () => {
- this.sendOfferResponse(item, 333);
- this.getMyOffersData();
- },
- },
- ],
- });
- await alert.present();
- }
-
- responseData: {
- action:number,
- member_id: number,
- uid: string,
- sessionid: string,
- offer_result:number,
- contract:string,
- offer_code:string
- };
-/*
-'offer_result' => int 100
- 'offer_code' => string 'W047P6BRRQ' (length=10)
- 'contract' => string 'W047P6BRRQ' (length=10)
- */
-
- offerRespData:any;
- // offferResponse(respData)
- async sendOfferResponse(item, respType){
- const loading = await this.loadingCtrl.create({
- message: 'Processing',
- duration: 3000,
- });
- this.responseData = {
- action:15010,
- member_id: this.sessionDataProviderService.member_id,
- uid: this.sessionDataProviderService.member_uid,
- sessionid: this.sessionDataProviderService.session ,
- offer_result:respType,
- contract:item.contract,
- offer_code: item.contract
+ // session_image_server: string = '';
+ // curr_session: string = '';
+ //
+ usrData: {
+ action: number, member_id: number, uid: string,
+ sessionid: string,
+ limit: 20,
+ page: 1, offset: number
};
- loading.present();
- this.wrenchService.offferResponse(this.responseData).subscribe(
- offerRespData => {
- this.offerRespData = offerRespData;
- console.log("offerRespData RETURN->", this.offerRespData);
- this.getMyOffersData();
+ total_offers: number = 0;
+ myOffersTotalData: any;
+ myOffersData: [];
+
+ async getMyOffersData() {
+ this.usrData = {
+ action: 15010,
+ member_id: this.sessionDataProviderService.member_id,
+ uid: this.sessionDataProviderService.member_uid,
+ sessionid: this.sessionDataProviderService.session,
+ limit: 20, page: 1, offset: 0
}
- );
- }
+
+ this.curr_session = this.sessionDataProviderService.session;
+ this.wrenchService.getMyOffers(this.usrData).subscribe(
+ myOffersTotalData => {
+ this.myOffersTotalData = myOffersTotalData;
+ this.session_image_server = this.myOffersTotalData.session_image_server;
+ console.log("myOffersTotalData RETURN->", this.myOffersTotalData);
+ this.myOffersData = this.myOffersTotalData.result_list;
+ console.log("myOffersData RETURN DATA->", this.myOffersData);
+ this.total_offers = this.myOffersData.length;
+ }
+ );
+
+ }
+
+
+ async requestStart(item) {
+ const alert = await this.alertController.create({
+ header: "Ready to start",
+ message: "You will start the task now, offer shall be completed in allocated timeline.",
+ buttons: [
+ {
+ text: "Cancel",
+ role: "cancel",
+ handler: () => {
+ this.getMyOffersData();
+ },
+ },
+ {
+ text: "Start Now",
+ handler: () => {
+ this.sendOfferResponse(item, 100);
+ this.getMyOffersData();
+ },
+ },
+ ],
+ });
+ await alert.present();
+ }
+
+ async requestReject(item) {
+ const alert = await this.alertController.create({
+ header: "Confirm Reject",
+ message: "This task will go away, you dont have to do anything.",
+ buttons: [
+ {
+ text: "Cancel",
+ role: "cancel",
+ handler: () => {
+ this.getMyOffersData();
+ },
+ },
+ {
+ text: "Reject",
+ handler: () => {
+ this.sendOfferResponse(item, 333);
+ this.getMyOffersData();
+ },
+ },
+ ],
+ });
+ await alert.present();
+ }
+
+ responseData: {
+ action: number,
+ member_id: number,
+ uid: string,
+ sessionid: string,
+ offer_result: number,
+ contract: string,
+ offer_code: string
+ };
+ /*
+ 'offer_result' => int 100
+ 'offer_code' => string 'W047P6BRRQ' (length=10)
+ 'contract' => string 'W047P6BRRQ' (length=10)
+ */
+
+ offerRespData: any;
+
+ // offferResponse(respData)
+ async sendOfferResponse(item, respType) {
+ const loading = await this.loadingCtrl.create({
+ message: 'Processing',
+ duration: 3000,
+ });
+ this.responseData = {
+ action: 15010,
+ member_id: this.sessionDataProviderService.member_id,
+ uid: this.sessionDataProviderService.member_uid,
+ sessionid: this.sessionDataProviderService.session,
+ offer_result: respType,
+ contract: item.contract,
+ offer_code: item.contract
+ };
+ loading.present();
+ this.wrenchService.offferResponse(this.responseData).subscribe(
+ offerRespData => {
+ this.offerRespData = offerRespData;
+ console.log("offerRespData RETURN->", this.offerRespData);
+ this.getMyOffersData();
+ }
+ );
+ }
+
+ activeTaskSelected(item) {
+ this.router.navigate(["activetask"], {state: item});
+ }
}
diff --git a/src/app/pages/login/login.page.html b/src/app/pages/login/login.page.html
index 26c5837..99dda8b 100644
--- a/src/app/pages/login/login.page.html
+++ b/src/app/pages/login/login.page.html
@@ -1,206 +1,209 @@
-
-
-

-
-
-
-
-
+
+
+

+
+
+
+
+
-
+
-
-
Welcome back
-
-
-
-
+
+
Welcome back
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
- Remember me
-
-
-
+
+ Remember me
+
+
+
+ Login
+
+
+
{{login_response}}
+
+
Forgot your password ?
+
+
+
Or Continue With
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Don't have an account?
+ Sign up
+
+
+
+
+
+
+ Family Login
- Login
-
-
-
{{login_response}}
-
Forgot your password ?
-
-
Or Continue With
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+ Complete your signup
+
+
+ Country
+ {{signup_country}}
+
+
+ Username
+ {{signup_username}}
+
+
+ Enter Confirmation Received In Email
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Complete Signup
+
+
+
+
+ Have an account?
+ Login
+
+
-
-
-
- Don't have an account?
- Sign up
-
-
-
-
-
- Family Login
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Complete your signup
-
-
- Country
- {{signup_country}}
-
-
- Username
- {{signup_username}}
-
-
- Enter Confirmation Received In Email
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Complete Signup
-
-
-
-
- Have an account?
- Login
-
-
-
-
-
diff --git a/src/app/pages/transaction/transaction.page.html b/src/app/pages/transaction/transaction.page.html
index ce1a9a4..505905e 100644
--- a/src/app/pages/transaction/transaction.page.html
+++ b/src/app/pages/transaction/transaction.page.html
@@ -1,10 +1,5 @@
-
-
-
-
-
Wallet
@@ -72,11 +67,6 @@
-
-
-
-
-
diff --git a/src/global.scss b/src/global.scss
index 88194d4..928a1c6 100644
--- a/src/global.scss
+++ b/src/global.scss
@@ -49,7 +49,7 @@
font-family: 'regular';
}
-.no-scroll .scroll-content{
+.no-scroll .scroll-content {
overflow: hidden;
}
@@ -88,24 +88,26 @@ ion-modal.custom_modal_bottom {
align-items: flex-end;
}
-.boxed_contents{
+.boxed_contents {
//background-color: red;
max-width: 550px;
margin-left: auto;
margin-right: auto;
}
-.due_date{
+.due_date {
color: red;
font-size: 12px;
}
-.price_line{
+
+.price_line {
color: green;
font-weight: bolder;
font-size: 12px;
}
-.balance_line{
- color:darkgreen;
+
+.balance_line {
+ color: darkgreen;
font-size: 14px;
font-weight: bolder;
margin-left: 50px;
@@ -114,29 +116,32 @@ ion-modal.custom_modal_bottom {
.bold_text_red {
font-size: 20px;
font-family: 'bold';
- color:red;
+ color: red;
}
-.bold_text_green{
+
+.bold_text_green {
font-size: 20px;
font-family: 'bold';
- color:green;
+ color: green;
}
-.SENDER{
+
+.SENDER {
background-color: #eaf3f6;
margin-left: 50px;
}
-.RECIPIENT{
+
+.RECIPIENT {
background-color: #e3f8f8;
margin-right: 50px;
}
-.work_area{
+.work_area {
background-color: #e9f3f6;
padding: 10px;
border-radius: 5px;
}
-.page_logo{
+.page_logo {
text-align: center;
margin-top: 40px;
// background-color: red;
@@ -224,7 +229,8 @@ ion-modal.custom_modal_bottom {
}
}
}
-ion-header{
+
+ion-header {
margin-top: 0px !important;
}
@@ -232,41 +238,48 @@ body.scanner-active {
--background: transparent;
--ion-background-color: transparent;
}
-ion-content{
+
+ion-content {
margin-top: 0px !important;
- .start-pages{
+
+ .start-pages {
padding-top: 15px;
- // background-color: #3dc2ff;
+ // background-color: #3dc2ff;
background-image: linear-gradient(white, aliceblue);
margin: 0px;
height: 100%;
width: 100%;
}
}
-.scan_login_button{
+
+.scan_login_button {
font-size: 16px;
font-weight: bolder;
}
-.common_segment{
+
+.common_segment {
background-color: #3dc2ff;
border-radius: 20px;
font-weight: bolder;
- ion-segment-button{
+
+ ion-segment-button {
border-radius: 20px;
- ion-label{
+
+ ion-label {
font-weight: bolder;
}
}
}
-.login_entry{
+.login_entry {
background-color: white;
border-radius: 10px;
font-size: 14px;
color: #052944;
//padding: 0 10px 0 10px;
}
-.login_box{
+
+.login_box {
padding: 10px;
background-color: #F6F6FF;
border-radius: 10px;
@@ -277,6 +290,7 @@ ion-content{
margin-right: auto;
//font-weight: bolder;
}
+
.simp_lbl {
margin-top: 15px;
font-size: 19px;
@@ -286,6 +300,7 @@ ion-content{
color: #0E4977;
//font-family: 'semi-bold';
}
+
//.simp_lbl {
// margin-top: 20px;
// font-size: 30px;
@@ -293,34 +308,38 @@ ion-content{
// margin-bottom: 30px;
// //font-family: 'semi-bold';
//}
-.extra_text{
+.extra_text {
font-size: 11px;
margin-left: 20px;
- .title{
+
+ .title {
font-weight: bolder;
color: #030728;
}
}
-.send-grid{
+.send-grid {
background-color: #eff2f4;
border-radius: 10px;
font-size: 14px;
font-weight: bolder;
- ion-select, ion-input{
+
+ ion-select, ion-input {
border-radius: 10px;
border-color: #383a3e;
background-color: white;
text-align: right;
}
- .intrl{
+
+ .intrl {
//text-align: right;
//margin-top: 10px;
color: #8b198e;
font-weight: bolder;
}
- .intr{
+
+ .intr {
text-align: right;
margin-top: 10px;
color: #8b198e;
@@ -328,24 +347,26 @@ ion-content{
}
}
-.common_modal{
+.common_modal {
background-color: aliceblue;
max-width: 320px;
- min-width: 300px ;
+ min-width: 300px;
min-height: 490px;
max-height: 550px;
border-radius: 20px;
margin: auto;
- .modal-head{
+ .modal-head {
padding: 0px;
- height: 45px !important;
+ height: 45px !important;
color: white;
font-weight: bolder;
font-size: 18px;
- ion-toolbar{
+
+ ion-toolbar {
height: 45px !important;
- ion-title{
+
+ ion-title {
height: 45px !important;
}
}
@@ -358,7 +379,72 @@ ion-backdrop {
opacity: 0.3;
height: auto;
}
-.arcord_head{
-height: 45px;
+
+.arcord_head {
+ height: 45px;
background-color: green;
}
+
+
+.lesson {
+ margin-top: 20px;
+
+ .bold {
+ font-family: 'semi-bold';
+ }
+
+ .color {
+ color: var(--ion-color-primary);
+ }
+
+ .grey {
+ color: grey;
+ }
+
+ .sec {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-top: 10px;
+ }
+
+ .back_image {
+ min-width: 50px;
+ height: auto;
+ }
+
+ .video {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ background-color: white;
+ padding: 15px;
+ box-shadow: 0px 0px 20px 1px rgba(0, 0, 0, 0.1);
+ border-radius: 10px;
+ margin-top: 20px;
+
+ .left {
+ display: flex;
+ }
+
+ .men_image {
+ height: 40px;
+ width: 40px;
+ border-radius: 100%;
+ }
+
+ .text {
+ margin-left: 10px;
+ }
+
+ .bold_text {
+ font-size: 16px;
+ font-family: 'bold';
+ }
+
+ .grey_text {
+ font-size: 14px;
+ color: grey;
+ }
+ }
+}
\ No newline at end of file