fix page layout

This commit is contained in:
CHIEFSOFT\ameye
2025-08-20 10:21:28 -04:00
parent 008706f5f3
commit 1029966bdc
10 changed files with 871 additions and 844 deletions
@@ -1,45 +1,35 @@
<div class="task_activity">
<!-- <div class="flex">-->
<!-- <ion-label class="bold">Most Popular Courses</ion-label>-->
<!-- <ion-label class="color">See all</ion-label>-->
<!-- </div>-->
<div class="task_activity">
<div class="sec">
<ion-label class="red">Due Date:{{jobData.delivery_date | date }}</ion-label>
<ion-label class="color">{{jobData.contract}}</ion-label>
</div>
<div class="video {{item.who}}" *ngFor="let item of msgListData">
<div class="left">
<div class="bg_image men_image" [style.backgroundImage]="'url(https://www.wrenchboard.com/assets/images/apps/msg/TEXT.svg)'"></div>
<div class="text" style="padding: 1px; width: 100%;">
<ion-label class="bold_text">{{item.msg_firstname}}-{{item.msg_date |date}}</ion-label>
<ion-label *ngIf="item.msg_type != 'FILE' " class="grey_text">
<!-- <ion-textarea> {{item.message}} </ion-textarea>-->
<!-- <ion-input [innerHTML]="item.message"></ion-input>-->
<div style="width: 100%; padding: 1px; ">
<div style="word-break: break-word">{{item.message.replace("_"," ")}}</div>
<!-- <ion-input-->
<!-- style="background-color: white;-->
<!-- height: 40px;-->
<!-- width: 100%; "-->
<!-- value={{item.message}}></ion-input>-->
<!-- <ion-textarea [readonly]="true"-->
<!-- [wrap]="hard"-->
<!-- [autoGrow]="true"-->
<!-- [scrollLeft]="true"-->
<!-- class="grey_text" [innerHTML]="item.message"> </ion-textarea>-->
<!-- <div style="background-color: lightgoldenrodyellow; word-wrap: break-word;overflow-wrap:break-word; width: 100%;" class="grey_text" [innerHTML]="item.message"></div>-->
</div>
</ion-label>
<ion-label *ngIf="item.msg_type == 'FILE' " class="grey_text"><a href="{{session_image_server}}/{{curr_session}}/contracts/{{item.msg_uid}}">{{item.message}}</a></ion-label>
</div>
<div class="sec" style="font-size: 12px;">
<ion-label class="red">Due Date:{{jobData.delivery_date | date }}</ion-label>
<ion-label class="color">{{jobData.contract}}</ion-label>
</div>
<div *ngIf="msg_count > 0" style="font-size: 12px; font-weight: bold; color: #1f1f3b; padding: 10px 0 5px ;">
Click any message to copy
<span style="color: red;">{{resultText}}</span>
</div>
<div class="video {{item.who}}" *ngFor="let item of msgListData">
<div class="left">
<div style="width: 20px; height: auto; background-repeat: no-repeat;"
[style.backgroundImage]="'url(https://www.wrenchboard.com/assets/images/apps/msg/TEXT.svg)'"></div>
<div class="text" style="padding: 1px; width: 100%;">
<ion-label class="bold_text" style="font-size:12px;">{{item.msg_firstname}}
-{{item.msg_date |date}}</ion-label>
<ion-label *ngIf="item.msg_type != 'FILE' " class="grey_text">
<div style="width: 100%; padding: 1px; background-color: white; border-radius: 5px;"
(click)="copyThisText(item.message)">
<div style="word-break: break-word">{{item.message.replace("_", " ")}}</div>
</div>
</ion-label>
<ion-label *ngIf="item.msg_type == 'FILE' " class="grey_text"><a
href="{{session_image_server}}/{{curr_session}}/contracts/{{item.msg_uid}}">{{item.message}}</a>
</ion-label>
</div>
</div>
</div>
</div>
</div>
@@ -1,67 +1,100 @@
import { Component, OnInit,Input } from '@angular/core';
import {Component, OnInit, Input} from '@angular/core';
import {SessionDataProviderService} from "../../store/session-data-provider.service";
import {WrenchService} from "../../services/wrench.service";
import {ToastController} from "@ionic/angular";
@Component({
selector: 'app-taskactivities',
templateUrl: './taskactivities.component.html',
styleUrls: ['./taskactivities.component.scss'],
selector: 'app-taskactivities',
templateUrl: './taskactivities.component.html',
styleUrls: ['./taskactivities.component.scss'],
})
export class TaskactivitiesComponent implements OnInit {
@Input('jobData') jobData:any;
session_image_server:string='';
curr_session:string="";
constructor(
public sessionDataProviderService: SessionDataProviderService,
private wrenchService: WrenchService
) {
addEventListener('app-taskactivities-refresh', () => {
this.activeJobMsgList();
});
@Input('jobData') jobData: any;
session_image_server: string = '';
curr_session: string = "";
}
constructor(
public sessionDataProviderService: SessionDataProviderService,
public toastController: ToastController,
private wrenchService: WrenchService
) {
addEventListener('app-taskactivities-refresh', () => {
this.activeJobMsgList();
});
ngOnInit() {
this.session_image_server = this.sessionDataProviderService.session_image_server;
this.curr_session = this.sessionDataProviderService.session;
}
console.log("IN COMPO ACT", this.jobData);
this.activeJobMsgList();
}
contrData: {
action:number,
member_id: number,
uid: string,
sessionid: string,
limit:20,
contract:string,
offset: 0
};
msgListTotalData:any;
msgListData:any;
ngOnInit() {
this.session_image_server = this.sessionDataProviderService.session_image_server;
this.curr_session = this.sessionDataProviderService.session;
activeJobMsgList(){
this.contrData = {
action:14011,
member_id: this.sessionDataProviderService.member_id,
uid: this.sessionDataProviderService.member_uid,
sessionid: this.sessionDataProviderService.session ,
limit:20,
contract: this.jobData.contract,
offset: 0}
console.log("IN COMPO ACT", this.jobData);
this.activeJobMsgList();
}
this.wrenchService.activeJobMsgList(this.contrData).subscribe(
msgListTotalData => {
this.msgListTotalData = msgListTotalData;
// console.log("REFER RETURN->", this.referTotalData);
this.msgListData = this.msgListTotalData.result_list;
console.log("REFER RETURN DATA->", this.msgListData);
contrData: {
action: number,
member_id: number,
uid: string,
sessionid: string,
limit: 20,
contract: string,
offset: 0
};
msgListTotalData: any;
msgListData: any;
msg_count: number = 0;
activeJobMsgList() {
this.contrData = {
action: 14011,
member_id: this.sessionDataProviderService.member_id,
uid: this.sessionDataProviderService.member_uid,
sessionid: this.sessionDataProviderService.session,
limit: 20,
contract: this.jobData.contract,
offset: 0
}
);
}
this.wrenchService.activeJobMsgList(this.contrData).subscribe(
msgListTotalData => {
this.msgListTotalData = msgListTotalData;
// console.log("REFER RETURN->", this.referTotalData);
this.msgListData = this.msgListTotalData.result_list;
this.msg_count = this.msgListData?.length;
console.log("REFER RETURN DATA->", this.msgListData);
}
);
jobInterest(item){
}
}
jobInterest(item) {
}
resultText: string = '';
async copyThisText(textStr) {
try {
await navigator.clipboard.writeText(textStr);
this.resultText = "Copied";
await this.presentToast("Message copied to clipboard ", "bottom");
setTimeout(() => {
this.resultText = ""
}, 3000);
console.log('Text copied to clipboard successfully!');
} catch (err) {
console.error('Failed to copy text: ', err);
}
}
async presentToast(amessage, position: "top" | "middle" | "bottom") {
const toast = await this.toastController.create({
message: amessage,
duration: 3000,
position: position,
});
await toast.present();
}
}
+38 -38
View File
@@ -11,7 +11,8 @@
<ion-content>
<div class="boxed_contents">
<div class="bg_image back_image" [style.backgroundImage]="'url('+session_image_server+'/'+curr_session+'/job/'+jobData.job_uid+')'">
<div class="bg_image back_image"
[style.backgroundImage]="'url('+session_image_server+'/'+curr_session+'/job/'+jobData.job_uid+')'">
<div class="ion-padding">
<ion-icon slot="start" name="arrow-back" class="back" (click)="onBack()"></ion-icon>
</div>
@@ -22,16 +23,8 @@
<!-- <ion-icon slot="end" name="bookmark-outline" color="primary"></ion-icon>-->
</div>
<!-- <div class="row">-->
<!-- <ion-label class="bg_text">{{jobData.contract}}</ion-label>-->
<!-- <div class="rate">-->
<!-- &lt;!&ndash; <ion-icon name="star-half-outline" color="warning"></ion-icon>&ndash;&gt;-->
<!-- &lt;!&ndash; <ion-label class="review"> ({{jobData.interest_count}} interest)</ion-label>&ndash;&gt;-->
<!-- </div>-->
<!-- </div>-->
<!-- <ion-label class="color_text">Price: {{jobData.price*0.01| number : '1.2-2'}} {{jobData.currency}}</ion-label>-->
<ion-label style="font-size: 16px; color: #0b5e86; font-weight: bolder;">Reward : {{jobData.price*0.01| number : '1.2-2'}} {{jobData.currency}}</ion-label>
<ion-label style="font-size: 16px; color: #0b5e86; font-weight: bolder;">Reward
: {{jobData.price * 0.01| number : '1.2-2'}} {{jobData.currency}}</ion-label>
<div class="items">
<div class="stud">
@@ -44,7 +37,7 @@
<!-- </div>-->
</div>
<div *ngIf="status_description == 'ACTIVE'" >
<div *ngIf="status_description == 'ACTIVE'">
<ion-segment class="common_segment" [(ngModel)]="tabs">
<ion-segment-button value="activities">
<ion-label>Send Updates</ion-label>
@@ -73,33 +66,35 @@
<div *ngIf="tabs =='activities'" class="lesson">
<ion-card style="margin: 0px;">
<ion-card-content style="padding: 1px;">
<ion-card-content style="padding: 1px;">
<ion-textarea
style="background-color: aliceblue; margin: 0px; min-height: 120px"
label="Your Message to Job Owner"
placeholder="Enter your updates message here"
[(ngModel)]='yourmessage' ></ion-textarea>
[(ngModel)]='yourmessage'></ion-textarea>
</ion-card-content>
<ion-grid>
<ion-row>
<ion-col style="text-align: left;">
<ion-button fill="outline" size="small" color="secondary" (click)="pickFiles(100)">
<ion-icon name="document-attach-outline"></ion-icon> Send File
<ion-button fill="outline" size="small" color="secondary" (click)="pickFiles(100)">
<ion-icon name="document-attach-outline"></ion-icon>
Send File
</ion-button>
<!-- -->
<!-- <ion-button fill="outline" size="small" color="secondary" (click)="startCamera(100)">-->
<!-- <ion-icon slot="icon-only" name="camera-reverse-outline"></ion-icon>-->
<!-- </ion-button>-->
<!-- <ion-button fill="outline" size="small" style="margin-left: 10px;" (click)="startCamera(0)">-->
<!-- <ion-icon slot="icon-only" name="folder-outline"></ion-icon>-->
<!-- </ion-button>-->
<!-- -->
<!-- <ion-button fill="outline" size="small" color="secondary" (click)="startCamera(100)">-->
<!-- <ion-icon slot="icon-only" name="camera-reverse-outline"></ion-icon>-->
<!-- </ion-button>-->
<!-- <ion-button fill="outline" size="small" style="margin-left: 10px;" (click)="startCamera(0)">-->
<!-- <ion-icon slot="icon-only" name="folder-outline"></ion-icon>-->
<!-- </ion-button>-->
</ion-col>
<ion-col>
<ion-button style="margin-left: 20px;"
size="small"
color="secondary"
expand="block"
(click)="sendActiveJobMessage()">Send Updates</ion-button>
(click)="sendActiveJobMessage()">Send Updates
</ion-button>
</ion-col>
</ion-row>
</ion-grid>
@@ -118,7 +113,7 @@
<!-- &lt;!&ndash; <ion-label class="color">See all</ion-label>&ndash;&gt;-->
<!-- </div>-->
<ion-card style="background-color: #f4f4fb;
<ion-card style="background-color: #f4f4fb;
font-weight: bolder;
color:darkblue;
font-size: 10px;">
@@ -126,7 +121,8 @@
<ion-grid>
<ion-row>
<ion-col style="font-size: 12px;">
Checking the requirements and delivery details is essential to ensure fast approval.
Checking the requirements and delivery details is essential to ensure fast
approval.
</ion-col>
</ion-row>
<ion-row>
@@ -137,7 +133,8 @@
shape="round"
expand="block"
fill="solid"
(click)="taskCompleted()">Task is Completed</ion-button>
(click)="taskCompleted()">Task is Completed
</ion-button>
</ion-col>
</ion-row>
<ion-row>
@@ -149,17 +146,18 @@
shape="round"
fill="solid"
(click)="taskCancel()"
>Cancel Request</ion-button>
>Cancel Request
</ion-button>
</div>
<!-- <div color=danger class="ion-text-wrap task_button" (click)="taskCancel()">Send cancellation request</div>-->
<!-- <div color=danger class="ion-text-wrap task_button" (click)="taskCancel()">Send cancellation request</div>-->
</ion-col>
<ion-col>
<span style="font-size: 12px; color:red;padding-top: 5px;">I am not able to perform this task.</span>
</ion-col>
<!-- <ion-col>-->
<!-- <div color="secondary" class="ion-text-wrap task_button cpl" (click)="taskCompleted()">Send completion Message</div>-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- <div color="secondary" class="ion-text-wrap task_button cpl" (click)="taskCompleted()">Send completion Message</div>-->
<!-- </ion-col>-->
</ion-row>
</ion-grid>
@@ -181,7 +179,7 @@
</div>
</div>
<div *ngIf="status_description == 'PASTDUE'" >
<div *ngIf="status_description == 'PASTDUE'">
<ion-card color="danger">
<ion-card-header>
<ion-card-subtitle>Task is pat due date</ion-card-subtitle>
@@ -191,19 +189,21 @@
<ion-button *ngIf="jobData.ext_request==''; " color="secondary" size="small"
shape="round"
[disabled]="isDisabled"
expand="block" (click)="requestExtension()">Request Extension</ion-button>
<div *ngIf="jobData.ext_request != ''; " >You have requested extension on : {{jobData.ext_request |date}}</div>
<div *ngIf="request_result != ''; " >{{request_result}}</div>
expand="block" (click)="requestExtension()">Request Extension
</ion-button>
<div *ngIf="jobData.ext_request != ''; ">You have requested extension on
: {{jobData.ext_request |date}}</div>
<div *ngIf="request_result != ''; ">{{request_result}}</div>
</ion-card-content>
</ion-card>
</div>
<div *ngIf="status_description == 'REVIEW'" >
<div *ngIf="status_description == 'REVIEW'">
<ion-card color="success">
<ion-card-header>
<ion-card-subtitle>Task is in Review</ion-card-subtitle>
</ion-card-header>
<ion-card-content> THis task is in review , the owner will give feedback soon. </ion-card-content>
<ion-card-content> THis task is in review , the owner will give feedback soon.</ion-card-content>
</ion-card>
</div>
<app-taskactivities [jobData]="jobData"></app-taskactivities>
+185 -167
View File
@@ -1,197 +1,215 @@
<ion-header class="ion-no-border">
<ion-toolbar>
<ion-buttons slot="start" (click)="onBack()">
<ion-button>
<ion-icon name="arrow-back-outline"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title>Invite Friends</ion-title>
</ion-toolbar>
<ion-toolbar>
<ion-buttons slot="start" (click)="onBack()">
<ion-button>
<ion-icon name="arrow-back-outline"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title>Invite Friends</ion-title>
</ion-toolbar>
</ion-header>
<ion-content class="ion-padding">
<div class="boxed_contents">
<div class="inv-head">Invite Friends</div>
<ion-toolbar>
<ion-buttons slot="start">
<ion-button style="background-color: #fcf7ee; color: black; font-size: 14px; font-weight: bolder;" (click)="setTabMode(100);">Name & Email</ion-button>
<!-- <ion-button style="background-color: aliceblue; color: black; font-size: 14px; font-weight: bolder;" (click)="setTabMode(200);">From Contacts</ion-button>-->
<ion-button style="background-color: #ebe4ee; color: black; font-size: 14px; font-weight: bolder;" (click)="setTabMode(300);">Links</ion-button>
</ion-buttons>
<div class="boxed_contents">
<div class="inv-head">Invite Friends</div>
<ion-toolbar>
<ion-buttons slot="start">
<ion-button style="background-color: #fcf7ee; color: black; font-size: 14px; font-weight: bolder;"
(click)="setTabMode(100);">Name & Email
</ion-button>
<!-- <ion-button style="background-color: aliceblue; color: black; font-size: 14px; font-weight: bolder;" (click)="setTabMode(200);">From Contacts</ion-button>-->
<ion-button style="background-color: #ebe4ee; color: black; font-size: 14px; font-weight: bolder;"
(click)="setTabMode(300);">Links
</ion-button>
</ion-buttons>
<ion-buttons slot="end">
<ion-button style="background-color: #ebe4ee; color: black; font-size: 14px; font-weight: bolder;" (click)="setTabMode(400);">Points</ion-button>
</ion-buttons>
</ion-toolbar>
<ion-buttons slot="end">
<ion-button style="background-color: #ebe4ee; color: black; font-size: 14px; font-weight: bolder;"
(click)="setTabMode(400);">Points
</ion-button>
</ion-buttons>
</ion-toolbar>
<div *ngIf="tabMode == 400 " class="lesson">
<div class="ion-padding" slot="content" style="background-color: white; padding: 5px; min-height: 150px;">
<div style="margin-top: 10px; background-color: #fcf7ee;
<div *ngIf="tabMode == 400 " class="lesson">
<div class="ion-padding" slot="content" style="background-color: white; padding: 5px; min-height: 150px;">
<div style="margin-top: 10px; background-color: #fcf7ee;
font-size: 40px;
font-weight: bolder;
text-align: center;
border-radius: 10px;
padding: 5px">
Points : {{refer_points}}
Points : {{refer_points}}
</div>
</div>
</div>
<div *ngIf="tabMode == 100 " class="lesson">
<div class="ion-padding" slot="content" style="background-color: white; padding: 5px">
<div style="margin-top: 10px; background-color: #fcf7ee; border-radius: 10px; padding: 5px">
<ion-grid style="margin: 0px; padding: 5px; background-color: #0b5e86; border-radius: 10px;">
<ion-row style="margin: 0px; padding: 10px 0px; font-size: 12px">
<ion-col style="margin: 0px; padding: 0px 5px 0px 0px;">
<ion-input style="background-color: white; border-radius: 5px;" type="text"
placeholder="Firstname" maxlength="15"
[(ngModel)]='ref_firstname'></ion-input>
</ion-col>
<ion-col style="margin: 0px; padding: 0px;">
<ion-input style="background-color: white; border-radius: 5px;" type="text"
placeholder="Lastname" maxlength="15" [(ngModel)]='lastname'></ion-input>
</ion-col>
</ion-row>
<ion-row style="margin: 0px; padding: 10px 0px; font-size: 12px">
<ion-col style="margin: 0px; padding: 0px;">
<ion-input style="background-color: white; border-radius: 5px; " type="email"
placeholder="Email" maxlength="55" [(ngModel)]='email'></ion-input>
</ion-col>
</ion-row>
<ion-row style="margin: 0px; padding: 10px 0px; font-size: 12px">
<ion-col style="margin: 0px; padding: 0px;">
</div>
</div>
</ion-col>
<ion-col style="margin: 0px; padding: 0px;">
<ion-button
style="font-weight: bolder;"
shape="round"
expand="block"
size="small"
color="primary"
(click)="sendRefer()">
Send Invite
</ion-button>
</ion-col>
</ion-row>
</ion-grid>
</div>
<div *ngIf="tabMode == 100 " class="lesson">
<div class="ion-padding" slot="content" style="background-color: white; padding: 5px">
<div style="margin-top: 10px; background-color: #fcf7ee; border-radius: 10px; padding: 5px">
<ion-grid style="margin: 0px; padding: 5px; background-color: #0b5e86; border-radius: 10px;">
<ion-row style="margin: 0px; padding: 10px 0px; font-size: 12px">
<ion-col style="margin: 0px; padding: 0px 5px 0px 0px;"><ion-input style="background-color: white; border-radius: 5px;" type="text" placeholder="Firstname" maxlength="15" [(ngModel)]='ref_firstname'></ion-input></ion-col>
<ion-col style="margin: 0px; padding: 0px;"><ion-input style="background-color: white; border-radius: 5px;" type="text" placeholder="Lastname" maxlength="15" [(ngModel)]='lastname'></ion-input></ion-col>
</ion-row>
<div style="padding: 10px 10px 0px 10px;">
<ion-row style="margin: 0px; padding: 10px 0px; font-size: 12px">
<ion-col style="margin: 0px; padding: 0px;">
<ion-input style="background-color: white; border-radius: 5px; " type="email" placeholder="Email" maxlength="55" [(ngModel)]='email'></ion-input>
</ion-col>
</ion-row>
<ion-row style="margin: 0px; padding: 10px 0px; font-size: 12px">
<ion-col style="margin: 0px; padding: 0px;">
</div>
</ion-col>
<ion-col style="margin: 0px; padding: 0px;">
<ion-button
style="font-weight: bolder;"
shape="round"
expand="block"
size="small"
color="primary"
(click)="sendRefer()">
Send Invite
</ion-button>
</ion-col>
</ion-row>
</ion-grid>
</div>
</div>
<div style="padding: 10px 10px 0px 10px;">
<div *ngIf="tabMode == 200 " class="lesson">
<div class="ion-padding" slot="content" style="background-color: white; padding: 5px">
<div style="margin-top: 10px; background-color: aliceblue; min-height: 150px; border-radius: 10px;">
<ion-grid>
<ion-row style="padding: 0px; margin: 0px;">
<ion-col style="padding: 0px; margin: 0px;">
<ion-searchbar animated="true" placeholder="Search Contacts"
style="margin: 0px;"></ion-searchbar>
</ion-col>
</ion-row>
<ion-row>
<ion-col>
</div>
</div>
</div>
<div *ngIf="tabMode == 200 " class="lesson">
<div class="ion-padding" slot="content" style="background-color: white; padding: 5px">
<div style="margin-top: 10px; background-color: aliceblue; min-height: 150px; border-radius: 10px;">
<ion-grid>
<ion-row style="padding: 0px; margin: 0px;">
<ion-col style="padding: 0px; margin: 0px;">
<ion-searchbar animated="true" placeholder="Search Contacts" style="margin: 0px;"></ion-searchbar>
</ion-col>
</ion-row>
<ion-row>
<ion-col>
</ion-col>
</ion-row>
</ion-grid>
</div>
<div style="padding:10px 10px 0px 10px;">
<ion-button (click)="refreshContacts()"
shape="round"
expand="block"
size="small">Refresh Contacts</ion-button>
</div>
</div>
</div>
<div *ngIf="tabMode == 300 " class="lesson">
<div class="ion-padding" slot="content" style="padding: 5px">
<div style="margin-top: 10px; background-color: whitesmoke; min-height: 100px; border-radius: 10px;">
<ion-grid style="background-color: #0b5e86;border-radius: 10px;">
<ion-row>
<ion-col style="text-align: left; color: #ffffff; font-size: 12px;">
Send your link to your email and share it with your friend; any signup will automatically link to your account for points.
</ion-col>
</ion-row>
<ion-row style="padding: 0; margin: 0;">
<ion-col style="padding: 0; margin: 0;">
<ion-textarea label="Refer Link"
style="min-height: 70px; background-color: white; font-size: 12px; font-weight: bolder; text-align: center;"
maxlength="1440"
labelPlacement="floating"
[(ngModel)]="refer_link"
value={{refer_link}}
placeholder="Refer Link">
</ion-textarea>
</ion-col>
</ion-row>
<ion-row style="padding: 0; margin: 0;">
<ion-col style="padding: 0; margin: 0;">
<ion-toolbar style="font-size: 12px;">
<ion-buttons slot="secondary">
<ion-button fill="solid" (click)="sendToMyEmail()" style="font-size: 12px;" >
<ion-icon slot="start" name="person-circle"></ion-icon>
Send link to my email
</ion-col>
</ion-row>
</ion-grid>
</div>
<div style="padding:10px 10px 0px 10px;">
<ion-button (click)="refreshContacts()"
shape="round"
expand="block"
size="small">Refresh Contacts
</ion-button>
</ion-buttons>
<ion-buttons slot="primary">
<ion-button fill="solid" style="font-size: 12px;" (click)="copyTextToClipboard(refer_link)">
Copy
<ion-icon slot="end" name="help-circle"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title>{{resultText}}</ion-title>
</ion-toolbar>
</ion-col>
</ion-row>
</ion-grid>
</div>
</div>
</div>
<!-- <div style="padding: 10px 10px 0px 10px;">-->
<!-- <ion-button (click)="sendtoMyEmail()"-->
<!-- shape="round"-->
<!-- expand="block"-->
<!-- size="small">Send to my Email</ion-button>-->
<!-- </div>-->
<div *ngIf="tabMode == 300 " class="lesson">
<div class="ion-padding" slot="content" style="padding: 5px">
<div style="margin-top: 10px; background-color: whitesmoke; min-height: 100px; border-radius: 10px;">
<ion-grid style="background-color: #0b5e86;border-radius: 10px;">
<ion-row>
<ion-col style="text-align: left; color: #ffffff; font-size: 12px;">
Send your link to your email and share it with your friend; any signup will
automatically link to your account for points.
</ion-col>
</ion-row>
<ion-row style="padding: 0; margin: 0;">
<ion-col style="padding: 0; margin: 0;">
<ion-textarea label="Refer Link"
style="min-height: 70px; background-color: white; font-size: 12px; font-weight: bolder; text-align: center;"
maxlength="1440"
labelPlacement="floating"
[(ngModel)]="refer_link"
value={{refer_link}}
placeholder="Refer Link">
</ion-textarea>
</ion-col>
</ion-row>
<ion-row style="padding: 0; margin: 0;">
<ion-col style="padding: 0; margin: 0;">
<ion-toolbar style="font-size: 12px;">
<ion-buttons slot="secondary">
<ion-button fill="solid" (click)="sendToMyEmail()" style="font-size: 12px;">
<ion-icon slot="start" name="person-circle"></ion-icon>
Send link to my email
</ion-button>
</ion-buttons>
<ion-buttons slot="primary">
<ion-button fill="solid" style="font-size: 12px;"
(click)="copyTextToClipboard(refer_link)">
Copy
<ion-icon slot="end" name="help-circle"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title style="font-size: 10px; font-weight: normal;">{{resultText}}</ion-title>
</ion-toolbar>
</ion-col>
</ion-row>
</ion-grid>
</div>
<!-- <div style="padding: 10px 10px 0px 10px;">-->
<!-- <ion-button (click)="sendtoMyEmail()"-->
<!-- shape="round"-->
<!-- expand="block"-->
<!-- size="small">Send to my Email</ion-button>-->
<!-- </div>-->
</div>
<div style="text-align: right; z-index: 0; ">
</div>
<div style="text-align: right; z-index: 0; ">
</div>
</div>
<div class="lesson" style="background-color: white; padding: 5px;">
<div style="flex-direction: column;">
<div class="inv-head">Previous Invitations</div>
<div style="font-size: 10px;">Uncompleted signup will be removed automatically after 7 days</div>
</div>
<div class="video" *ngFor="let item of referData;">
<div class="left">
<div class="bg_image back_image"
[style.backgroundImage]="'url(https://www.wrenchboard.com/assets/images/apps/invite-friend.svg)'"></div>
<div class="text">
<div class="bold_text">{{item.firstname}} {{item.lastname}} </div>
<div class="email_msg_text"> {{item.email}}</div>
<ion-label class="due_date">{{item.added_date}} - {{item.status}}</ion-label>
</div>
</div>
<div class="right">
<ion-icon name="chevron-forward-outline" color="medium"></ion-icon>
</div>
</div>
</div>
</div>
</div>
<div class="lesson" style="background-color: white; padding: 5px;">
<div style="flex-direction: column;">
<div class="inv-head">Previous Invitations</div>
<div style="font-size: 10px;">Uncompleted signup will be removed automatically after 7 days</div>
</div>
<div class="video" *ngFor="let item of referData;" >
<div class="left">
<div class="bg_image back_image" [style.backgroundImage]="'url(https://www.wrenchboard.com/assets/images/apps/invite-friend.svg)'"></div>
<div class="text">
<div class="bold_text" >{{item.firstname}} {{item.lastname}} </div>
<div class="email_msg_text"> {{item.email}}</div>
<ion-label class="due_date">{{item.added_date}} - {{item.status}}</ion-label>
</div>
</div>
<div class="right">
<ion-icon name="chevron-forward-outline" color="medium"></ion-icon>
</div>
</div>
</div>
</div>
</ion-content>
+7
View File
@@ -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);
+35 -156
View File
@@ -1,175 +1,54 @@
<ion-header mode="ios" class="ion-no-border">
<ion-toolbar>
<ion-buttons slot="start" (click)="onBack()">
<ion-button>
<ion-icon name="arrow-back-outline"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title>Offers</ion-title>
</ion-toolbar>
<ion-toolbar>
<ion-buttons slot="start" (click)="onBack()">
<ion-button>
<ion-icon name="arrow-back-outline"></ion-icon>
</ion-button>
</ion-buttons>
<ion-title>Offers</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="boxed_contents">
<div class="ion-padding">
<!-- <div class="flex hdt">-->
<!-- <ion-label class="bold_text">You have {{total_offers}} Offer(s)</ion-label>-->
<!-- </div>-->
<!-- <div class="flex hdt">-->
<!-- <ion-label class="bold_text">You have {{total_offers}} Offer(s)</ion-label>-->
<!-- </div>-->
<app-offers-received
[showCount]="showCount"
[noLimit]="noLimit" >
[noLimit]="noLimit">
</app-offers-received>
<!-- <div *ngIf="total_offers>3;">-->
<!-- <ion-accordion-group>-->
<!-- <ion-accordion *ngFor="let item of myOffersData" value="{{item.offer_uid}}">-->
<!-- <ion-item slot="header" color="light">-->
<!-- <ion-label>{{item.title}}</ion-label>-->
<!-- </ion-item>-->
<!-- <div class="ion-padding" slot="content">-->
<!-- <div class="offers_div">-->
<!-- <ion-grid>-->
<!-- <ion-row>-->
<!-- <ion-col>-->
<!-- <img class="offer_banner" alt="{{item.title}}" src="{{session_image_server+'/'+curr_session+'/job/'+item.job_uid}}" />-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- <div>-->
<!-- <div class="offer_title">{{item.title}}</div>-->
<!-- <div class="expire">Expiration : {{item.expire | date}}</div>-->
<!-- <div class="price">Price : {{item.price*0.01| number : '1.2-2'}} {{item.currency}}</div>-->
<!-- </div>-->
<!-- <div class="detail_txt">-->
<!-- {{(item.job_description.length<95)? item.job_description :item.job_description.substring(0,95)+'...' }}-->
<!-- </div>-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- <ion-row>-->
<!-- <ion-col>-->
<!-- <ion-grid class="action_area">-->
<!-- <ion-row>-->
<!-- <ion-col>-->
<!-- <ion-button size="small" (click)="requestReject(item)" color="danger" fill="solid" shape="round">Reject</ion-button>-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- <ion-button size="small" (click)="requestStart(item)" color="success" fill="solid" shape="round">Start Now</ion-button>-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- </ion-grid>-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- </ion-grid>-->
<!-- </div>-->
<!-- </div>-->
<!-- </ion-accordion>-->
<!-- </ion-accordion-group>-->
<!-- </div>-->
<!-- <div *ngIf="total_offers>0 && total_offers<4;">-->
<!-- <div *ngFor="let item of myOffersData">-->
<!-- <div class="offers_div">-->
<!-- <ion-grid>-->
<!-- <ion-row>-->
<!-- <ion-col>-->
<!-- <img class="offer_banner" alt="{{item.title}}" src="{{session_image_server+'/'+curr_session+'/job/'+item.job_uid}}" />-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- <div>-->
<!-- <div class="offer_title">{{item.title}}</div>-->
<!-- <div class="expire">Expiration : {{item.expire | date}}</div>-->
<!-- <div class="price">Price : {{item.price*0.01| number : '1.2-2'}} {{item.currency}}</div>-->
<!-- </div>-->
<!-- <div class="detail_txt">-->
<!-- {{(item.job_description.length<95)? item.job_description :item.job_description.substring(0,95)+'...' }}-->
<!-- </div>-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- <ion-row>-->
<!-- <ion-col>-->
<!-- <ion-grid class="action_area">-->
<!-- <ion-row>-->
<!-- <ion-col>-->
<!-- <ion-button size="small" (click)="requestReject(item)" color="danger" fill="solid" shape="round">Reject</ion-button>-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- <ion-button size="small" (click)="requestStart(item)" color="success" fill="solid" shape="round">Start Now</ion-button>-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- </ion-grid>-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- </ion-grid>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<div class="lesson" *ngIf="active_job_count > 0 ">
<div style="font-weight: bolder">
Current Active Task
</div>
<div class="video" *ngFor="let item of jobsData;" (click)="activeTaskSelected(item)">
<!-- <div class="video" *ngFor="let item of jobsData;" (click)="viewMarketItem( item )">-->
<div class="left">
<div class="text">
<div class="bold_text">{{(item.title.length > 55) ? item.title.substring(0, 54) + "..." : item.title }}</div>
<ion-label class="price_line"><span
style="color: #0b5e86; font-weight: bolder;"> Reward :</span>
{{item.price * 0.01| number : '1.2-2'}} {{item.currency_code}} </ion-label>
<ion-label class="due_date"><span
style="color: #0b5e86; font-weight: bolder;"> Timeline : </span> {{item.timeline_days}}
days
</ion-label>
</div>
</div>
<div class="right">
<ion-icon name="chevron-forward-outline" color="medium"></ion-icon>
</div>
</div>
</div>
</div>
</div>
<!-- <div class="top_banner">-->
<!--&lt;!&ndash; <img class="offer_banner" alt="{{item.title}}" src="https://www.wrenchboard.com/assets/images/apps/offerslist/{{item.banner}}" />&ndash;&gt;-->
<!-- <img class="offer_banner" alt="{{item.title}}" src="{{session_image_server+'/'+curr_session+'/job/'+item.job_uid}}" />-->
<!-- </div>-->
<!-- <ion-card-header>-->
<!-- <ion-card-title class="offer_title">{{item.title}}</ion-card-title>-->
<!-- <ion-card-subtitle>Expiration:{{item.expire | date}}</ion-card-subtitle>-->
<!-- </ion-card-header>-->
<!-- <ion-card-content>-->
<!-- {{item.job_description}}-->
<!-- </ion-card-content>-->
<!-- <ion-grid>-->
<!-- <ion-row>-->
<!-- <ion-col>-->
<!-- <ion-button size="small" (click)="requestReject(item)" color="danger" fill="outline">Reject</ion-button>-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- <ion-button size="small" (click)="requestStart(item)" color="success" fill="outline">Start Now</ion-button>-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- </ion-grid>-->
<!-- <div class="bg_image back_image" [style.backgroundImage]="'url(assets/images/p4.jpg)'">-->
<!-- <div class="ion-padding">-->
<!-- <ion-icon slot="start" name="arrow-back" class="back" (click)="onBack()"></ion-icon>-->
<!-- </div>-->
<!-- </div>-->
</ion-content>
<!--<ion-footer>-->
<!-- <ion-toolbar>-->
<!-- <div class="button" (click)="onBack()">-->
<!-- <ion-label class="text">Return</ion-label>-->
<!-- </div>-->
<!-- </ion-toolbar>-->
<!--</ion-footer>-->
+173 -152
View File
@@ -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});
}
}
+195 -192
View File
@@ -1,206 +1,209 @@
<ion-content class="no-scroll" style="padding: 0">
<div class="start-pages">
<div class="page_logo">
<img alt="WrenchBoard" src="/assets/images/wrenchboard-line.png" />
</div>
<div *ngIf="loginType==='normal';">
<div class="ion-padding space">
<div>
<!-- <ion-label class="simp_lbl">Login to continue</ion-label>-->
<div class="start-pages">
<div class="page_logo">
<img alt="WrenchBoard" src="/assets/images/wrenchboard-line.png"/>
</div>
<div *ngIf="loginType==='normal';">
<div class="ion-padding space">
<div>
<!-- <ion-label class="simp_lbl">Login to continue</ion-label>-->
<div class="boxed_contents">
<div class="boxed_contents">
<div class="login_box">
<ion-label
style="padding-top: 2px; padding-bottom: 10px"
class="simp_lbl"
>Welcome back</ion-label
>
<ion-item lines="none">
<ion-icon slot="start" name="mail-outline"></ion-icon>
<ion-input
class="login_entry"
(ionChange)="refreshBut()"
type="email"
placeholder="Email"
maxlength="35"
[(ngModel)]="username"
></ion-input>
</ion-item>
<div class="login_box">
<ion-label
style="padding-top: 2px; padding-bottom: 10px"
class="simp_lbl"
>Welcome back
</ion-label
>
<ion-item lines="none">
<ion-icon slot="start" name="mail-outline"></ion-icon>
<ion-input
class="login_entry"
(ionChange)="refreshBut()"
type="email"
placeholder="Email"
maxlength="35"
[(ngModel)]="username"
></ion-input>
</ion-item>
<ion-item lines="none">
<ion-icon slot="start" name="lock-closed-outline"></ion-icon>
<ion-input
class="login_entry"
(ionChange)="refreshBut()"
type="password"
placeholder="Password"
maxlength="15"
[(ngModel)]="password"
></ion-input>
</ion-item>
<ion-item lines="none">
<ion-icon slot="start" name="lock-closed-outline"></ion-icon>
<ion-input
class="login_entry"
(ionChange)="refreshBut()"
type="password"
placeholder="Password"
maxlength="15"
[(ngModel)]="password"
></ion-input>
</ion-item>
<div class="check" style="padding-left: 35px">
<ion-checkbox mode="md" checked></ion-checkbox>
<ion-label>Remember me</ion-label>
</div>
<div style="margin-left: 55px">
<ion-button
size="small"
shape="round"
expand="block"
(click)="startLogin()"
[disabled]="isDisabled"
<div class="check" style="padding-left: 35px">
<ion-checkbox mode="md" checked></ion-checkbox>
<ion-label>Remember me</ion-label>
</div>
<div style="margin-left: 55px">
<ion-button
size="small"
shape="round"
expand="block"
(click)="startLogin()"
[disabled]="isDisabled"
>
<span style="font-weight: bolder;">Login</span>
</ion-button>
</div>
<div style="color: red;">{{login_response}}</div>
</div>
<ion-label class="forgot_lbl" (click)="onForgot()"
>Forgot your password ?
</ion-label
>
<div *ngIf="showSocial == true ">
<ion-label class="or">Or Continue With</ion-label>
<div class="button">
<ion-buttons>
<ion-button (click)="onLoginFacebook()">
<ion-icon name="logo-facebook"></ion-icon>
</ion-button>
</ion-buttons>
<ion-buttons>
<ion-button (click)="onLoginGoogle()">
<ion-icon name="logo-google"></ion-icon>
</ion-button>
</ion-buttons>
<ion-buttons *ngIf="ios">
<ion-button (click)="onLoginApple()">
<ion-icon name="logo-apple"></ion-icon>
</ion-button>
</ion-buttons>
</div>
</div>
</div>
<div class="bottom">
<ion-label class="last_lbl"
>Don't have an account?
<span (click)="onRegister()">Sign up</span></ion-label
>
</div>
</div>
</div>
<div class="bottom">
<ion-label class="last_lbl"
>
<span (click)="familyLogin()">Family Login</span></ion-label
>
Login
</ion-button>
</div>
<div style="color: red;">{{login_response}}</div>
</div>
<ion-label class="forgot_lbl" (click)="onForgot()"
>Forgot your password ?</ion-label
>
<div *ngIf="showSocial == true ">
<ion-label class="or">Or Continue With</ion-label>
<div class="button">
<ion-buttons>
<ion-button (click)="onLoginFacebook()">
<ion-icon name="logo-facebook"></ion-icon>
</ion-button>
</ion-buttons>
<ion-buttons>
<ion-button (click)="onLoginGoogle()">
<ion-icon name="logo-google"></ion-icon>
</ion-button>
</ion-buttons>
<!-- <div-->
<!-- style="max-width: 450px; margin-left: auto; margin-right: auto"-->
<!-- >-->
<!-- <ion-grid>-->
<!-- <ion-row>-->
<!-- <ion-col size="6">-->
<!-- <ion-button-->
<!-- fill="outline"-->
<!-- size="large"-->
<!-- class="scan_login_button"-->
<!-- (click)="moveToStartScan()"-->
<!-- >-->
<!-- <ion-icon slot="start" name="scan"></ion-icon>-->
<!-- Scan Login</ion-button-->
<!-- >-->
<!-- </ion-col>-->
<!-- <ion-col size="6">-->
<!-- <ion-button class="login-type22" (click)="familyLogin()">-->
<!-- <ion-icon name="people-circle-outline"></ion-icon>-->
<!-- <span style="margin-left: 5px"-->
<!-- >Kids Login</span-->
<!-- ></ion-button-->
<!-- >-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- </ion-grid>-->
<!-- </div>-->
<ion-buttons *ngIf="ios">
<ion-button (click)="onLoginApple()">
<ion-icon name="logo-apple"></ion-icon>
</ion-button>
</ion-buttons>
</div>
</div>
<div *ngIf="loginType==='pending';">
<div class="ion-padding space">
<div>
<!-- <ion-label class="simp_lbl">Login to continue</ion-label>-->
<div class="boxed_contents">
<ion-label class="simp_lbl_tx">Complete your signup</ion-label>
<ion-grid>
<ion-row>
<ion-col size-md="3">Country</ion-col>
<ion-col size-md="9">{{signup_country}}</ion-col>
</ion-row>
<ion-row>
<ion-col size-md="3">Username</ion-col>
<ion-col size-md="9">{{signup_username}}</ion-col>
</ion-row>
</ion-grid>
<ion-label class="or"
>Enter Confirmation Received In Email
</ion-label
>
<ion-item lines="none">
<ion-icon slot="start" name="pin-outline"></ion-icon>
<ion-input
type="text"
(ionChange)="signupVerify()"
placeholder="Random text"
maxlength="8"
[(ngModel)]="random_text"
></ion-input>
</ion-item>
<ion-item lines="none">
<ion-icon slot="start" name="lock-closed-outline"></ion-icon>
<ion-input
type="password"
(ionChange)="signupVerify()"
placeholder="Password"
maxlength="15"
[(ngModel)]="signup_password"
></ion-input>
</ion-item>
<!-- <ion-item lines="none">-->
<!-- <ion-icon slot="start" name="mail-outline"></ion-icon>-->
<!-- <ion-input (ionChange)="refreshBut()" type="email" placeholder="Email" [(ngModel)]='username'></ion-input>-->
<!-- </ion-item>-->
<!-- <ion-item lines="none">-->
<!-- <ion-icon slot="start" name="lock-closed-outline"></ion-icon>-->
<!-- <ion-input (ionChange)="refreshBut()" type="password" placeholder="Password" [(ngModel)]='password'></ion-input>-->
<!-- </ion-item>-->
<ion-button
shape="round"
expand="block"
color="danger"
(click)="onCompleteProfile()"
[disabled]="isPendingDisabled"
>
Complete Signup
</ion-button>
</div>
<div class="bottom pending-buttom">
<ion-label class="last_lbl"
>Have an account?
<span (click)="onReturnToLogin()">Login</span></ion-label
>
</div>
</div>
</div>
</div>
<div class="bottom">
<ion-label class="last_lbl"
>Don't have an account?
<span (click)="onRegister()">Sign up</span></ion-label
>
</div>
</div>
</div>
<div class="bottom">
<ion-label class="last_lbl"
>
<span (click)="familyLogin()">Family Login</span></ion-label
>
</div>
<!-- <div-->
<!-- style="max-width: 450px; margin-left: auto; margin-right: auto"-->
<!-- >-->
<!-- <ion-grid>-->
<!-- <ion-row>-->
<!-- <ion-col size="6">-->
<!-- <ion-button-->
<!-- fill="outline"-->
<!-- size="large"-->
<!-- class="scan_login_button"-->
<!-- (click)="moveToStartScan()"-->
<!-- >-->
<!-- <ion-icon slot="start" name="scan"></ion-icon>-->
<!-- Scan Login</ion-button-->
<!-- >-->
<!-- </ion-col>-->
<!-- <ion-col size="6">-->
<!-- <ion-button class="login-type22" (click)="familyLogin()">-->
<!-- <ion-icon name="people-circle-outline"></ion-icon>-->
<!-- <span style="margin-left: 5px"-->
<!-- >Kids Login</span-->
<!-- ></ion-button-->
<!-- >-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- </ion-grid>-->
<!-- </div>-->
</div>
<div *ngIf="loginType==='pending';">
<div class="ion-padding space">
<div>
<!-- <ion-label class="simp_lbl">Login to continue</ion-label>-->
<div class="boxed_contents">
<ion-label class="simp_lbl_tx">Complete your signup</ion-label>
<ion-grid>
<ion-row>
<ion-col size-md="3">Country</ion-col>
<ion-col size-md="9">{{signup_country}}</ion-col>
</ion-row>
<ion-row>
<ion-col size-md="3">Username</ion-col>
<ion-col size-md="9">{{signup_username}}</ion-col>
</ion-row>
</ion-grid>
<ion-label class="or"
>Enter Confirmation Received In Email</ion-label
>
<ion-item lines="none">
<ion-icon slot="start" name="pin-outline"></ion-icon>
<ion-input
type="text"
(ionChange)="signupVerify()"
placeholder="Random text"
maxlength="8"
[(ngModel)]="random_text"
></ion-input>
</ion-item>
<ion-item lines="none">
<ion-icon slot="start" name="lock-closed-outline"></ion-icon>
<ion-input
type="password"
(ionChange)="signupVerify()"
placeholder="Password"
maxlength="15"
[(ngModel)]="signup_password"
></ion-input>
</ion-item>
<!-- <ion-item lines="none">-->
<!-- <ion-icon slot="start" name="mail-outline"></ion-icon>-->
<!-- <ion-input (ionChange)="refreshBut()" type="email" placeholder="Email" [(ngModel)]='username'></ion-input>-->
<!-- </ion-item>-->
<!-- <ion-item lines="none">-->
<!-- <ion-icon slot="start" name="lock-closed-outline"></ion-icon>-->
<!-- <ion-input (ionChange)="refreshBut()" type="password" placeholder="Password" [(ngModel)]='password'></ion-input>-->
<!-- </ion-item>-->
<ion-button
shape="round"
expand="block"
color="danger"
(click)="onCompleteProfile()"
[disabled]="isPendingDisabled"
>
Complete Signup
</ion-button>
</div>
<div class="bottom pending-buttom">
<ion-label class="last_lbl"
>Have an account?
<span (click)="onReturnToLogin()">Login</span></ion-label
>
</div>
</div>
</div>
</div>
</div>
</ion-content>
@@ -1,10 +1,5 @@
<ion-header mode="ios" class="ion-no-border">
<ion-toolbar>
<!-- <ion-buttons slot="end">-->
<!-- <ion-button>-->
<!-- <ion-icon name="search-outline"></ion-icon>-->
<!-- </ion-button>-->
<!-- </ion-buttons>-->
<ion-title>Wallet</ion-title>
</ion-toolbar>
</ion-header>
@@ -72,11 +67,6 @@
<!-- </ion-card>-->
<div class="ion-padding" *ngIf="account_type=='FULL';">
<div class="lesson">
<!-- <div class="flex">-->
<!-- <ion-label class="bold">Wallet(s)</ion-label>-->
<!-- &lt;!&ndash; <ion-label class="color">.</ion-label>&ndash;&gt;-->
<!-- </div>-->
<ion-accordion-group>
<ion-accordion *ngFor="let item of walletData" value="{{item.wallet_uid}}">
<ion-item class="arcord_head" slot="header" color="secondary">
+123 -37
View File
@@ -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;
}
}
}