Ordini
This commit is contained in:
224
src/components/CShareWithUs/CShareWithUs.ts
Executable file
224
src/components/CShareWithUs/CShareWithUs.ts
Executable file
@@ -0,0 +1,224 @@
|
||||
import { Component, Prop, Watch } from 'vue-property-decorator'
|
||||
import { INotData, IParamsQuery, IShareWithUs } from '../../model/index'
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
import { NotevoleStore } from '@store'
|
||||
import MixinBase from '@src/mixins/mixin-base'
|
||||
import { validationMixin } from 'vuelidate'
|
||||
import { validations } from '../CSignUpNotevole/CSignUp-validate'
|
||||
import { CTitleBanner } from '@components'
|
||||
import { CCardState } from '../CCardState'
|
||||
import { UserStore } from '../../store/Modules'
|
||||
import { GlobalStore } from '../../store'
|
||||
import { CCopyBtn } from '../CCopyBtn'
|
||||
|
||||
import { date } from 'quasar'
|
||||
import objectId from '@src/js/objectId'
|
||||
|
||||
@Component({
|
||||
name: 'CShareWithUs',
|
||||
components: { CTitleBanner, CCardState, CCopyBtn }
|
||||
})
|
||||
|
||||
export default class CShareWithUs extends MixinBase {
|
||||
public $t
|
||||
public myshares: IShareWithUs[] = []
|
||||
public mydescr: string = ''
|
||||
|
||||
get listasharewithus() {
|
||||
return GlobalStore.state.sharewithus.sort((a, b) => b.numshared - a.numshared)
|
||||
}
|
||||
|
||||
get listamyshare() {
|
||||
return UserStore.state.my.profile.myshares
|
||||
}
|
||||
|
||||
public myload() {
|
||||
const sortBy = 'numshared'
|
||||
const descending = 1
|
||||
const myobj = {}
|
||||
if (descending)
|
||||
myobj[sortBy] = -1
|
||||
else
|
||||
myobj[sortBy] = 1
|
||||
|
||||
const params: IParamsQuery = {
|
||||
table: 'sharewithus',
|
||||
startRow: 0,
|
||||
endRow: 10000,
|
||||
filter: '',
|
||||
filterand: '',
|
||||
sortBy: myobj,
|
||||
descending
|
||||
}
|
||||
|
||||
console.log('myload', params)
|
||||
|
||||
GlobalStore.actions.loadTable(params).then((data) => {
|
||||
GlobalStore.state.sharewithus = data.rows
|
||||
})
|
||||
}
|
||||
|
||||
public mounted() {
|
||||
this.myload()
|
||||
}
|
||||
|
||||
public recsharenow(mydescr): IShareWithUs {
|
||||
return {
|
||||
idapp: process.env.APP_ID,
|
||||
description: mydescr,
|
||||
userId: UserStore.state.my._id,
|
||||
numshared: 0,
|
||||
rating: 0
|
||||
}
|
||||
}
|
||||
|
||||
public add_newshare(mydescr) {
|
||||
if (!mydescr)
|
||||
return false
|
||||
const recfound = UserStore.state.my.profile.myshares.find((rec) => rec.description.toLowerCase() === mydescr.toLowerCase())
|
||||
if (!!recfound) {
|
||||
tools.showNegativeNotif(this.$q, '"' + mydescr + '" è già presente!')
|
||||
return false
|
||||
}
|
||||
UserStore.state.my.profile.myshares.push({ description: mydescr, rating: 5 })
|
||||
|
||||
const mydata = {
|
||||
'profile.myshares': UserStore.state.my.profile.myshares
|
||||
}
|
||||
tools.saveFieldToServer(this, 'users', UserStore.state.my._id, mydata)
|
||||
|
||||
const myrec = this.recsharenow(mydescr)
|
||||
|
||||
const updatedexistingrec = this.updaterecnow(mydescr, true)
|
||||
if (!updatedexistingrec) {
|
||||
tools.createNewRecord(this, 'sharewithus', myrec, false).then((myrecris) => {
|
||||
GlobalStore.state.sharewithus.push(myrecris)
|
||||
this.myload()
|
||||
this.mydescr = ''
|
||||
return true
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public updaterecnow(mydescr, add) {
|
||||
const recesistente = GlobalStore.state.sharewithus.find((rec) => rec.description.toLowerCase() === mydescr.toLowerCase())
|
||||
const indrec = GlobalStore.state.sharewithus.findIndex((rec) => rec.description.toLowerCase() === mydescr.toLowerCase())
|
||||
console.log('recesistente', recesistente)
|
||||
if (recesistente) {
|
||||
const mydatatosave = {
|
||||
id: recesistente._id,
|
||||
table: tools.TABSHAREWITHUS,
|
||||
fieldsvalue: recesistente
|
||||
}
|
||||
|
||||
if (add)
|
||||
recesistente.numshared++
|
||||
else {
|
||||
if (recesistente.numshared <= 0)
|
||||
return false
|
||||
else
|
||||
recesistente.numshared--
|
||||
}
|
||||
|
||||
GlobalStore.actions.saveFieldValue(mydatatosave).then((myrecris) => {
|
||||
if (myrecris) {
|
||||
GlobalStore.state.sharewithus[indrec] = recesistente
|
||||
this.myload()
|
||||
}
|
||||
this.mydescr = ''
|
||||
})
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
public selected(value, shared) {
|
||||
shared.numshared++
|
||||
tools.saveFieldToServer(this, 'sharewithus', shared._id, { numshared: shared.numshared })
|
||||
|
||||
}
|
||||
|
||||
public checkifICanRemove(shared) {
|
||||
// Controlla se questo è stato aggiunto da me
|
||||
const recfound = GlobalStore.state.sharewithus.find((rec) => rec.description.toLowerCase() === shared.description.toLowerCase())
|
||||
if (!!recfound)
|
||||
return recfound.userId === UserStore.state.my._id
|
||||
else
|
||||
return true
|
||||
}
|
||||
|
||||
public removeShared(shared) {
|
||||
this.$q.dialog({
|
||||
message: 'Vuoi cancellare "' + shared.description + '" dalla tua lista ?',
|
||||
ok: {
|
||||
label: this.$t('dialog.yes'),
|
||||
push: true
|
||||
},
|
||||
cancel: {
|
||||
label: this.$t('dialog.cancel')
|
||||
},
|
||||
title: this.$t('pages.sharedwithus')
|
||||
}).onOk(async () => {
|
||||
|
||||
const descr = shared.description
|
||||
|
||||
// Aggiorna Record Personale
|
||||
UserStore.state.my.profile.myshares = UserStore.state.my.profile.myshares.filter((rec) => rec.description !== descr)
|
||||
|
||||
const mydata = {
|
||||
'profile.myshares': UserStore.state.my.profile.myshares
|
||||
}
|
||||
tools.saveFieldToServer(this, 'users', UserStore.state.my._id, mydata)
|
||||
|
||||
const updatedexistingrec = this.updaterecnow(shared.description, false)
|
||||
if (!updatedexistingrec) {
|
||||
if (this.checkifICanRemove(shared)) {
|
||||
const myrec = GlobalStore.state.sharewithus.find((rec) => rec.description.toLowerCase() === descr.toLowerCase())
|
||||
if (!!myrec) {
|
||||
GlobalStore.actions.DeleteRec({ table: tools.TABSHAREWITHUS, id: myrec._id })
|
||||
.then((ris) => {
|
||||
console.log('DELETEREC ris=', ris)
|
||||
if (ris) {
|
||||
|
||||
// Aggiorna Array Globale
|
||||
GlobalStore.state.sharewithus = GlobalStore.state.sharewithus.filter((rec) => rec.description !== descr)
|
||||
this.myload()
|
||||
|
||||
console.log('GlobalStore.state.sharewithus', GlobalStore.state.sharewithus)
|
||||
tools.showPositiveNotif(this.$q, this.$t('db.deletedrecord'))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
public findrec(descr) {
|
||||
if (UserStore.state.my.profile.myshares.length === 0)
|
||||
return false
|
||||
return UserStore.state.my.profile.myshares.find((rec) => rec.description.toLowerCase() === descr.toLowerCase())
|
||||
}
|
||||
|
||||
public mycolorbtn(shared) {
|
||||
if (this.findrec(shared.description)) {
|
||||
return 'positive'
|
||||
} else {
|
||||
return 'primary'
|
||||
}
|
||||
}
|
||||
|
||||
public geticon(shared) {
|
||||
if (this.findrec(shared.description))
|
||||
return undefined
|
||||
else
|
||||
return 'fas fa-plus'
|
||||
}
|
||||
|
||||
public getifdisable(shared) {
|
||||
return this.findrec(shared.description)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user