This commit is contained in:
CHIEFSOFT\ameye
2023-12-06 00:26:31 -05:00
parent d7fffe0dc9
commit 3f60d26437
8 changed files with 198 additions and 44 deletions
+1
View File
@@ -21,6 +21,7 @@
"@angular/router": "^14.0.0",
"@capacitor-community/apple-sign-in": "^5.0.0",
"@capacitor-community/barcode-scanner": "^4.0.1",
"@capacitor-community/contacts": "^5.0.4",
"@capacitor-community/facebook-login": "^5.0.3",
"@capacitor/android": "5.0.5",
"@capacitor/app": "^5.0.0",
+105 -42
View File
@@ -10,55 +10,118 @@
</ion-header>
<ion-content class="ion-padding">
<div class="inv-head">Invite Firends</div>
<ion-accordion-group>
<ion-accordion value="first">
<ion-item class="arcord_head" slot="header" color="secondary" style="margin-bottom: 1px;">
<ion-label>Invite with Email</ion-label>
</ion-item>
<div class="ion-padding" slot="content" style="background-color: white; padding: 5px">
<div style="margin-top: 10px; background-color: aliceblue; border-radius: 10px; padding: 5px">
<ion-item lines="none">
<ion-icon slot="start" name="mail-outline"></ion-icon>
<ion-input type="email" placeholder="Email" maxlength="55" [(ngModel)]='email'></ion-input>
</ion-item>
<ion-item lines="none">
<ion-icon slot="start" name="text-outline"></ion-icon>
<ion-input type="text" placeholder="Firstname" maxlength="15" [(ngModel)]='ref_firstname'></ion-input>
</ion-item>
<ion-item lines="none">
<ion-icon slot="start" name="text-outline"></ion-icon>
<ion-input type="text" placeholder="Lastname" maxlength="15" [(ngModel)]='lastname'></ion-input>
</ion-item>
<div lines="none" style="text-align: right">
<ion-button
style="padding: 3px; height: 45px"
shape="round"
expand="block"
(click)="sendRefer()">
Send Invite
</ion-button>
</div>
<!-- <ion-grid>-->
<!-- <ion-row>-->
<!-- <ion-col>-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- <ion-button expand="block" (click)="sendRefer()">-->
<!-- Send-->
<!-- </ion-button>-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- </ion-grid>-->
</div>
</div>
</ion-accordion>
<ion-accordion value="second">
<ion-item class="arcord_head" slot="header" color="secondary" style="margin-bottom: 1px;">
<ion-label>Invite from Contacts</ion-label>
</ion-item>
<div class="ion-padding" slot="content" style="background-color: white; padding: 5px">
<div style="margin-top: 10px; background-color: aliceblue; min-height: 150px;">
<ion-button (click)="refreshContacts()">Refresh Contacts</ion-button>
</div>
<ion-segment [(ngModel)]="tabs">
<ion-segment-button value="refer">
<ion-label>Refer</ion-label>
</ion-segment-button>
<ion-segment-button value="history">
<ion-label>History</ion-label>
</ion-segment-button>
</ion-segment>
</div>
</ion-accordion>
</ion-accordion-group>
<div *ngIf="tabs =='refer'" class="refer">
<ion-card>
<ion-card-header>
<ion-card-title>Invite Friends</ion-card-title>
<ion-card-subtitle>Enter email and name.</ion-card-subtitle>
</ion-card-header>
<ion-card-content>
<ion-item lines="none">
<ion-icon slot="start" name="mail-outline"></ion-icon>
<ion-input type="email" placeholder="Email" maxlength="55" [(ngModel)]='email'></ion-input>
</ion-item>
<!-- <ion-segment [(ngModel)]="tabs">-->
<!-- <ion-segment-button value="refer">-->
<!-- <ion-label>Refer</ion-label>-->
<!-- </ion-segment-button>-->
<!-- <ion-segment-button value="history">-->
<!-- <ion-label>History</ion-label>-->
<!-- </ion-segment-button>-->
<!-- </ion-segment>-->
<ion-item lines="none">
<ion-icon slot="start" name="text-outline"></ion-icon>
<ion-input type="text" placeholder="Firstname" maxlength="15" [(ngModel)]='ref_firstname'></ion-input>
</ion-item>
<!-- <div *ngIf="tabs =='refer'" class="refer">-->
<!-- <ion-card>-->
<!-- <ion-card-header>-->
<!-- <ion-card-title>Invite Friends</ion-card-title>-->
<!-- <ion-card-subtitle>Enter email and name.</ion-card-subtitle>-->
<!-- </ion-card-header>-->
<ion-item lines="none">
<ion-icon slot="start" name="text-outline"></ion-icon>
<ion-input type="text" placeholder="Lastname" maxlength="15" [(ngModel)]='lastname'></ion-input>
</ion-item>
<!-- <ion-card-content>-->
<!-- <ion-item lines="none">-->
<!-- <ion-icon slot="start" name="mail-outline"></ion-icon>-->
<!-- <ion-input type="email" placeholder="Email" maxlength="55" [(ngModel)]='email'></ion-input>-->
<!-- </ion-item>-->
<ion-grid>
<ion-row>
<ion-col>
</ion-col>
<ion-col>
<ion-button expand="block" (click)="sendRefer()">
Send
</ion-button>
</ion-col>
</ion-row>
</ion-grid>
</ion-card-content>
</ion-card>
</div>
<div *ngIf="tabs =='history'" class="history">
<!-- <ion-item lines="none">-->
<!-- <ion-icon slot="start" name="text-outline"></ion-icon>-->
<!-- <ion-input type="text" placeholder="Firstname" maxlength="15" [(ngModel)]='ref_firstname'></ion-input>-->
<!-- </ion-item>-->
<!-- <ion-item lines="none">-->
<!-- <ion-icon slot="start" name="text-outline"></ion-icon>-->
<!-- <ion-input type="text" placeholder="Lastname" maxlength="15" [(ngModel)]='lastname'></ion-input>-->
<!-- </ion-item>-->
<!-- <ion-grid>-->
<!-- <ion-row>-->
<!-- <ion-col>-->
<!-- </ion-col>-->
<!-- <ion-col>-->
<!-- <ion-button expand="block" (click)="sendRefer()">-->
<!-- Send-->
<!-- </ion-button>-->
<!-- </ion-col>-->
<!-- </ion-row>-->
<!-- </ion-grid>-->
<!-- </ion-card-content>-->
<!-- </ion-card>-->
<!-- </div>-->
<!-- <div *ngIf="tabs =='history'" class="history">-->
<div class="inv-head">Recent Invitations</div>
<div class="history" style="background-color: aliceblue; padding: 5px;">
<div class="chat" *ngFor="let item of referData">
<div class="flex">
<div class="bg_image back_image" [style.backgroundImage]="'url(https://www.wrenchboard.com/assets/images/apps/invite-friend.svg)'"></div>
+6
View File
@@ -1,3 +1,9 @@
.inv-head{
font-weight: bolder;
font-size: 18px;
margin-bottom: 10px;
}
ion-item {
--background: #f7f7f7;
border-radius: 10px;
+6 -1
View File
@@ -5,6 +5,7 @@ import { WrenchService } from 'src/app/services/wrench.service';
import {SessionDataProviderService} from "../../store/session-data-provider.service";
import {last} from "rxjs/operators";
import { AlertController } from '@ionic/angular';
import {ContactsDataService} from "../../store/contacts-data.service";
@Component({
selector: 'app-invite',
@@ -23,7 +24,8 @@ export class InvitePage implements OnInit {
private router: Router,
public sessionDataProviderService: SessionDataProviderService,
private wrenchService: WrenchService,
private alertController: AlertController
private alertController: AlertController,
private contactsDataService:ContactsDataService
) {
}
/*
@@ -128,4 +130,7 @@ export class InvitePage implements OnInit {
// alert.present();
// // alert(amessage);
}
refreshContacts(){
this.contactsDataService.refeshContacts();
}
}
@@ -28,7 +28,7 @@
</div>
<div class="row">
<ion-label class="bg_text">{{jobData.offer_code}}</ion-label>
<!-- <ion-label class="bg_text">{{jobData.offer_code}}</ion-label>-->
<div class="rate">
<!-- <ion-icon name="star-half-outline" color="warning"></ion-icon>-->
<ion-label class="review"> ({{jobData.interest_count}} interest)</ion-label>
@@ -62,6 +62,32 @@
</ion-segment-button>
</ion-segment>
<ion-card *ngIf="interestStatus==false;">
<ion-card-header>
<ion-card-subtitle>Interested in the task?</ion-card-subtitle>
</ion-card-header>
<ion-card-content>
<ion-button color="secondary" expand="block" (click)="sendJobInterestMessage()">Send Interest Request to Owner</ion-button>
<ion-label class="description">{{interest_status}}
</ion-label>
</ion-card-content>
</ion-card>
<ion-card *ngIf="interestStatus==true;">
<img alt="Silhouette of mountains" src="https://www.wrenchboard.com/assets/images/apps/waiting-task.jpg" />
<ion-card-header>
<ion-card-title>Waiting for feedback</ion-card-title>
<ion-card-subtitle>Sent: {{interestDate |date}}</ion-card-subtitle>
</ion-card-header>
<ion-card-content>
You have already sent a notice of interest. If the owner accepts, you will receive a notification to start.
</ion-card-content>
</ion-card>
<div *ngIf="tabs =='about'" class="about">
<div style="padding: 13px; width: 100%;">
<ion-label class="head_text">{{jobData.offer_code}}</ion-label>
+5
View File
@@ -87,6 +87,9 @@ ionic generate component market-messages
ionic generate service help-data
ionic generate component job-details
ionic generate service contacts-data
https://masteringionic.com/blog/working-with-capacitor-googlemaps-in-ionic
ionic generate interface interfaces/location
ionic generate interface interfaces/marker
@@ -112,6 +115,8 @@ ionic generate service familysuggest-pending
npm i @capacitor/camera @capacitor/filesystem
npm i @capacitor-community/contacts
https://devdactic.com/ionic-image-upload-capacitor
@@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { ContactsDataService } from './contacts-data.service';
describe('ContactsDataService', () => {
let service: ContactsDataService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(ContactsDataService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});
+32
View File
@@ -0,0 +1,32 @@
import { Injectable } from '@angular/core';
import {Contacts } from "@capacitor-community/contacts";
import { Plugin} from "@capacitor/core";
//const { Contacts } = Plugins;
import { isPlatform } from "@ionic/angular";
@Injectable({
providedIn: 'root'
})
export class ContactsDataService {
constructor() { }
async refeshContacts(){
if (isPlatform('android') || isPlatform('iphone') || isPlatform('ios')){
//return;
}
else{
return;
}
Contacts.getContacts({projection: {
name: true,
phones: true,
image: true
}}).then( result=>{
console.log(result);
});
}
}