277 lines
8.8 KiB
Vue
Executable File
277 lines
8.8 KiB
Vue
Executable File
<template>
|
|
<div>
|
|
<q-dialog
|
|
v-model="show"
|
|
:maximized="$q.screen.lt.sm"
|
|
@hide="hide"
|
|
@show="qtyRef ? qtyRef.focus() : ''"
|
|
>
|
|
<q-card class="dialog_card">
|
|
<q-bar class="bg-primary text-white">
|
|
{{ $t('circuit.sendcoins') }}
|
|
<q-space />
|
|
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
|
</q-bar>
|
|
<q-card-section class="q-px-xs inset-shadow">
|
|
<q-select
|
|
v-if="!circuitname"
|
|
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
|
rounded
|
|
dense
|
|
outlined
|
|
v-model="circuitsel"
|
|
:options="bothcircuits"
|
|
label="Circuito"
|
|
>
|
|
</q-select>
|
|
<div v-else>Circuito: {{ circuitname }}</div>
|
|
|
|
<q-banner
|
|
rounded
|
|
dense
|
|
class="shadow-5 q-my-sm"
|
|
color="primary q-title"
|
|
style="text-align: center"
|
|
>
|
|
<div class="mybanner_left bg-blue text-white q-mb-sm">
|
|
{{ $t('circuit.sender') }}:
|
|
</div>
|
|
<div>
|
|
<q-btn-toggle
|
|
v-if="arrTypesAccounts.length > 0"
|
|
v-model="tipoConto"
|
|
class="my-custom-toggle"
|
|
no-caps
|
|
rounded
|
|
unelevated
|
|
toggle-color="primary"
|
|
color="white"
|
|
text-color="primary"
|
|
:options="arrTypesAccounts"
|
|
/>
|
|
</div>
|
|
<q-input
|
|
v-if="tipoConto === costanti.AccountType.USER"
|
|
v-model="from_username"
|
|
class="full-width"
|
|
readonly
|
|
>
|
|
</q-input>
|
|
<div
|
|
v-else-if="tipoConto === costanti.AccountType.COLLECTIVE_ACCOUNT"
|
|
>
|
|
<q-select
|
|
v-model="from_groupname"
|
|
:options="arrGroupsList"
|
|
:label="$t('circuit.choosecontocom')"
|
|
rounded
|
|
emit-value
|
|
map-options
|
|
>
|
|
<!-- Mostra i gruppi su cui sei Admin -->
|
|
</q-select>
|
|
</div>
|
|
<div
|
|
v-else-if="tipoConto === costanti.AccountType.COMMUNITY_ACCOUNT"
|
|
>
|
|
<q-input
|
|
v-model="from_contocom"
|
|
:label="$t('circuit.contocom')"
|
|
readonly
|
|
class="q-my-sm"
|
|
>
|
|
</q-input>
|
|
</div>
|
|
|
|
<CSaldo
|
|
v-if="circuitloaded && circuitloaded.symbol"
|
|
:symbol="circuitloaded.symbol"
|
|
:color="circuitloaded.color"
|
|
:saldo="accountloaded ? accountloaded.saldo : 0"
|
|
:qtarem="
|
|
accountloaded
|
|
? circuitStore.getRemainingCoinsToSend(accountloaded)
|
|
: 0
|
|
"
|
|
>
|
|
</CSaldo>
|
|
</q-banner>
|
|
|
|
<q-banner
|
|
rounded
|
|
dense
|
|
class="shadow-5 q-my-sm"
|
|
color="primary q-title"
|
|
>
|
|
<div class="mybanner_left bg-green text-white q-mb-sm">
|
|
{{ $t('circuit.dest') }}
|
|
</div>
|
|
|
|
<!-- Destination -->
|
|
<CMyUserOnlyView
|
|
v-if="to_user"
|
|
:mycontact="to_user"
|
|
:visu="costanti.FIND_PEOPLE"
|
|
@setCmd="tools.setCmd"
|
|
>
|
|
</CMyUserOnlyView>
|
|
<CMyGroupOnlyView
|
|
v-if="to_group"
|
|
:mygrp="to_group"
|
|
:visu="costanti.USER_GROUPS"
|
|
:circuitname="circuitloaded.name"
|
|
>
|
|
</CMyGroupOnlyView>
|
|
<CMyGroupOnlyView
|
|
v-if="circuitloaded && to_contocom"
|
|
:mygrp="{ groupname: to_contocom }"
|
|
:visu="costanti.USER_GROUPS"
|
|
:circuitname="circuitloaded.name"
|
|
>
|
|
</CMyGroupOnlyView>
|
|
</q-banner>
|
|
|
|
<q-inner-loading id="spinner" :showing="loading">
|
|
<q-spinner-tail size="6em" color="primary" />
|
|
</q-inner-loading>
|
|
|
|
<div v-if="circuitloaded">
|
|
<q-banner
|
|
v-if="!circuitloaded.transactionsEnabled"
|
|
rounded
|
|
class="bg-red text-white"
|
|
style="text-align: center"
|
|
>
|
|
<em style="font-weight: bold">{{
|
|
$t('circuit.transactionsEnabled_text')
|
|
}}</em
|
|
><br />
|
|
</q-banner>
|
|
|
|
<q-input
|
|
ref="qtyRef"
|
|
class="q-py-sm text-h5"
|
|
outlined
|
|
v-model="qty"
|
|
type="number"
|
|
:rules="[
|
|
(val) =>
|
|
val <= circuitStore.getRemainingCoinsToSend(accountloaded) ||
|
|
t('circuit.qta_remaining_to_send', {
|
|
maxqta: circuitStore.getRemainingCoinsToSend(accountloaded),
|
|
symbol: circuitloaded.symbol,
|
|
}),
|
|
(val) => val > 0 || t('circuit.qta_not_valid'),
|
|
]"
|
|
:label="
|
|
t('movement.amount_to_send', {
|
|
qtamax: circuitStore.getRemainingCoinsToSend(accountloaded)
|
|
? circuitStore
|
|
.getRemainingCoinsToSend(accountloaded)
|
|
.toFixed(2)
|
|
: 0 + ` ` + circuitloaded.symbol,
|
|
})
|
|
"
|
|
input-class="text-right"
|
|
v-on:keyup.enter="$event.target.nextElementSibling.focus()"
|
|
>
|
|
<!--val => val > circuitStore.getMaxCoinsToSend(accountloaded) || t('circuit.qta_max_to_send', { maxqta: tools.getRemainingCoinsToSend(accountloaded), symbol: circuitloaded.symbol })]" -->
|
|
<template v-slot:append>
|
|
<div class="text-h5">
|
|
<em
|
|
class="q-px-sm text-white rounded-borders"
|
|
:style="
|
|
`background-color: ` +
|
|
(circuitloaded.color ? circuitloaded.color : '#ff5500')
|
|
"
|
|
>{{ circuitloaded.symbol }}</em
|
|
>
|
|
</div>
|
|
</template>
|
|
</q-input>
|
|
|
|
<!--<q-slider
|
|
class="q-ma-xs"
|
|
v-if="
|
|
qty !== '' &&
|
|
circuitStore.getRemainingCoinsToSend(accountloaded) > 0
|
|
"
|
|
v-model="qty"
|
|
color="green"
|
|
markers
|
|
track-size="10px"
|
|
:step="numstep / 2"
|
|
:marker-labels="arrayMarkerLabel"
|
|
label-always
|
|
:label-value="priceLabel"
|
|
switch-label-side
|
|
switch-marker-labels-side
|
|
:inner-max="remainingCoins"
|
|
:min="0"
|
|
:max="Number(maxsendable ? maxsendable : 0)"
|
|
/>
|
|
--></div>
|
|
|
|
<q-input
|
|
ref="causalRef"
|
|
v-model="causal"
|
|
:label="$t('circuit.note')"
|
|
class="q-my-sm full-width"
|
|
>
|
|
</q-input>
|
|
</q-card-section>
|
|
<q-card-actions align="center">
|
|
<q-btn
|
|
v-if="
|
|
circuitloaded &&
|
|
(qtyRef
|
|
? !(
|
|
qtyRef.hasError ||
|
|
!circuitloaded.transactionsEnabled ||
|
|
(tipoConto === costanti.AccountType.USER &&
|
|
to_user &&
|
|
from_username === to_user.username) ||
|
|
(tipoConto === costanti.AccountType.COLLECTIVE_ACCOUNT &&
|
|
!from_groupname) ||
|
|
(tipoConto === costanti.AccountType.COLLECTIVE_ACCOUT &&
|
|
to_group &&
|
|
from_groupname &&
|
|
to_group.groupname === from_groupname) ||
|
|
(tipoConto === costanti.AccountType.COMMUNITY_ACCOUNT &&
|
|
!from_contocom)
|
|
)
|
|
: true)
|
|
"
|
|
:label="
|
|
$t('circuit.sendcoinsto', {
|
|
qty,
|
|
coin: circuitloaded.symbol,
|
|
dest: to_group
|
|
? to_group.groupname
|
|
: to_user
|
|
? tools.getNomeUtenteByRecUser(to_user)
|
|
: to_contocom,
|
|
})
|
|
"
|
|
color="positive"
|
|
@click="sendCoin()"
|
|
></q-btn>
|
|
<q-btn
|
|
flat
|
|
:label="$t('dialog.cancel')"
|
|
color="primary"
|
|
v-close-popup
|
|
></q-btn>
|
|
</q-card-actions>
|
|
</q-card>
|
|
</q-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts" src="./CSendCoins.ts">
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
@import './CSendCoins.scss';
|
|
</style>
|