@iloveionic1 wrote:
cannot understand this code that i have been given to modify.Could you guys help me out
how should i code this in typescript and ionic if i am new to .ts entirely and ionic entirely
import { Component, ViewChild, OnInit, AfterViewInit } from ‘@angular/core’;
import { IonicPage, Nav, NavController, NavParams, AlertController } from ‘ionic-angular’;
import { MenuController } from ‘ionic-angular’;
import { Items } from ‘…/…/providers/providers’;
import { AlertService, LocalStorageItemChangeService } from ‘…/…/service/’;
import { Storage } from ‘@ionic/storage’;
import { isArray } from ‘ionic-angular/util/util’;@IonicPage()
@Component({
selector: ‘item-list’,
templateUrl: ‘item-list.html’
})
export class ItemListPage implements OnInit, AfterViewInit {urlData: any = {};
searchData: any = {};
products: any;
custNo: any;
public searchStr = ‘’;
public order: Array = ;
public shouldShowCancel = true;
isSearchedFlag: boolean = false;@ViewChild(Nav) nav: Nav;
constructor(public menuCtrl: MenuController,
private productService: Items,
private util: AlertService,
private alertCtrl: AlertController,
private navCtrl: NavController,
private storage: Storage,
private navParams: NavParams,
private orderChangeService: LocalStorageItemChangeService) {
// console.log(‘param====’ + this.navParams);
// console.log(‘param====’ + this.navParams.get(‘custNo’));
this.order = ;
this.custNo = this.navParams.get(‘custNo’);}
ngOnInit() {
// console.log(‘in product list ngOnInit===’);
if (this.storage.get(‘order’)) {
let orderedData = this.storage.get(‘order’);
orderedData.then((data) => {
// console.log(‘datatype 1’ + isArray(this.order));if (data) { // console.log('in local data==' + JSON.stringify(data)); this.order = JSON.parse(data); if (isArray(this.order)) { } else { this.order = []; } } else { this.order = []; } // console.log('datatype 2' + isArray(this.order)); }, (err) => { }); } this.orderChangeService.currentData.subscribe((data: any) => { // console.log('order data===' + JSON.stringify(data)); // console.log('datatype 3' + isArray(this.order)); if (data) { this.order = data; } else { this.order = []; } // console.log('datatype 4' + isArray(this.order)); }); this.urlData.skip = 0; this.urlData.take = 10; this.searchData.skip = 0; this.searchData.take = 10; if (this.navParams.get('custNo')) { // console.log("Url===" + this.navParams.get('custNo')) this.urlData.custNo = this.navParams.get('custNo'); this.getproducts(); } else { this.storage.get('TEST').then((val) => { // console.log('user==11===', val.No); this.custNo = val.No; this.urlData.custNo = this.custNo; this.getproducts(); }); }
}
ngAfterViewInit() {
// console.log(‘in product list page===’);}
getproducts(event?: any) {
let spinner: any;
if (!event) {
spinner = this.util.loading();
}this.productService.getProductList(this.urlData).subscribe((res: any) => { if (!event) { spinner.dismiss(); } if (res.Status == 'Success') { this.searchData.skip = 0; this.searchData.take = 10; if (typeof res.PayLoad[0] === 'string') { this.util.present('No product found..'); if (this.products.length === 1) { this.urlData.skip = 0; this.urlData.take = 10; this.searchData.skip = 0; this.searchData.take = 10; this.getproducts(); } } else { if (event) { res.PayLoad.forEach(element => { this.products.push(element) }); event.complete(); } else { this.products = res.PayLoad; } } } else if (res.Status == "Failure") { this.util.present(res.ErrorMessage); } }, err => { if (!event) { spinner.dismiss(); } this.util.present('Error loading products...'); });
}
loadItems(event) {
this.urlData.skip += 10;
this.urlData.take += 10;
this.searchData.skip += 10;
this.searchData.take += 10;
if (this.searchStr) {
this.searchProduct(event);
} else {
this.getproducts(event);
}}
addQuantity(item, value, index) {
const thisPtr = this;
if (item && item.Quantity && item.Quantity > 0) {
let alert = this.alertCtrl.create({
title: ‘Quantity’,
inputs: [
{
name: ‘Quantity’,
placeholder: ‘Enter quantity’,
type: ‘number’,
value: value
}
],
buttons: [
{
text: ‘Cancel’,
role: ‘cancel’,
handler: data => { }
},
{
text: ‘Done’,
handler: data => {
if (data.Quantity && data.Quantity !== ‘0’ && data.Quantity.indexOf(‘e’) === -1) {// item.orderedQuantity = data.Quantity; if (data.Quantity < 0) { this.util.present("Please enter proper quantity"); item.orderedQuantity = 0; } else { item.orderedQuantity = data.Quantity; // console.log("snaldkajsd" + JSON.stringify(item)); // console.log(' thisPtr.order' + isArray(thisPtr.order)); // this.order.push(item); if (thisPtr.order && thisPtr.order.length > 0) { // console.log('in order-3-----'); thisPtr.order.forEach((orderElement, ind) => { if (orderElement.ItemNo == item.ItemNo) { // console.log('in if------'); thisPtr.order.splice(ind, 1); } }); } if (thisPtr.order) { thisPtr.order.push(item); } } } else { delete item.orderedQuantity; } } } ] }); alert.present(); } else { this.util.present("Sorry, Stock is over."); }
}
public gotoReviewOreder() {
if (this.order) {
this.storage.set(‘order’, JSON.stringify(this.order));
this.navCtrl.push(‘OrderPage’);
}
}public searchProduct(event) {
// Keyboard.close();
// console.log(‘search==’ + this.searchStr);
if (!this.searchStr || this.searchStr.length < 2) {
/// DO Nothing
} else {
let itemNo = {
“search”: this.searchStr,
“skip”: this.searchData.skip,
“take”: this.searchData.take
}
let spinner = this.util.loading();
this.productService.searchProduct(itemNo, this.custNo).subscribe((res: any) => {
spinner.dismiss();
if (res.Status == ‘Success’) {
if (typeof res.PayLoad[0] === ‘string’) {
this.util.present(‘No product found…’);
if (this.products.length === 1) {
this.urlData.skip = 0;
this.urlData.take = 10;
this.searchData.skip = 0;
this.searchData.take = 10;
this.getproducts();
}} else { this.isSearchedFlag = true; if (event) { res.PayLoad.forEach(element => { this.products.push(element) }); event.complete(); } else { this.products = res.PayLoad; } } } else if (res.Status == "Failure") { this.util.present(res.ErrorMessage); } }, err => { spinner.dismiss(); this.util.present('Error loading products...'); }); }
}
itemDetails(product) {
// this.navCtrl.push(ItemDetailsPage)
let alert = this.alertCtrl.create({
title: product.ItemNo,
subTitle: product.Description,
buttons: [‘OK’]
});
alert.present();
/* let modal = this.modalCtrl.create(ModalPage);
modal.present(); */}
clearSearch() {
this.products.splice(0, this.products.length);
this.isSearchedFlag = false;
this.searchStr = “”;
this.urlData.skip = 0;
this.urlData.take = 10;
this.searchData.skip = 0;
this.searchData.take = 10;
this.getproducts();
}}
Posts: 1
Participants: 1