Export Movements to CSV File
fix Visibility for a Circuit
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.12"
|
APP_VERSION="0.5.13"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.12"
|
APP_VERSION="0.5.13"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.12"
|
APP_VERSION="0.5.13"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.12"
|
APP_VERSION="0.5.13"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="12"
|
APP_ID="12"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.12"
|
APP_VERSION="0.5.13"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.12"
|
APP_VERSION="0.5.13"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="13"
|
APP_ID="13"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.12"
|
APP_VERSION="0.5.13"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="14"
|
APP_ID="14"
|
||||||
DIRECTORY_LOCAL="newfreeplanet"
|
DIRECTORY_LOCAL="newfreeplanet"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
APP_VERSION="0.5.12"
|
APP_VERSION="0.5.13"
|
||||||
SERVICE_WORKER_FILE="service-worker.js"
|
SERVICE_WORKER_FILE="service-worker.js"
|
||||||
APP_ID="14"
|
APP_ID="14"
|
||||||
DIRECTORY_LOCAL=newfreeplanet
|
DIRECTORY_LOCAL=newfreeplanet
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
(function () {
|
(function () {
|
||||||
console.log('LOADING IDB.JS .....')
|
// console.log('LOADING IDB.JS .....')
|
||||||
function toArray(arr) {
|
function toArray(arr) {
|
||||||
return Array.prototype.slice.call(arr);
|
return Array.prototype.slice.call(arr);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ export const shared_consts = {
|
|||||||
|
|
||||||
PUBTOSHARE: {
|
PUBTOSHARE: {
|
||||||
ALL: 0,
|
ALL: 0,
|
||||||
ONLY_GROUPS_FOLLOW: 1,
|
ONLY_TABLE_FOLLOW: 1,
|
||||||
},
|
},
|
||||||
|
|
||||||
REPORT_FILT_RESP: 1,
|
REPORT_FILT_RESP: 1,
|
||||||
|
|||||||
@@ -885,17 +885,6 @@ export default defineComponent({
|
|||||||
// param1: shared_consts.PARAM_SHOW_PROVINCE,
|
// param1: shared_consts.PARAM_SHOW_PROVINCE,
|
||||||
tablesel: 'cities',
|
tablesel: 'cities',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: 'Visibilità',
|
|
||||||
table: 'pub_to_share',
|
|
||||||
key: 'pub_to_share',
|
|
||||||
type: costanti.FieldType.select,
|
|
||||||
value: tools.getCookie(tools.COOK_SEARCH + 'pub_to_share', shared_consts.PUBTOSHARE.ALL, true),
|
|
||||||
addall: false,
|
|
||||||
arrvalue: [],
|
|
||||||
useinput: false,
|
|
||||||
filter: null,
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
searchList_MyGroups.value = [
|
searchList_MyGroups.value = [
|
||||||
@@ -1100,6 +1089,7 @@ export default defineComponent({
|
|||||||
symbol: 1,
|
symbol: 1,
|
||||||
idCity: 1,
|
idCity: 1,
|
||||||
pub_to_share: 1,
|
pub_to_share: 1,
|
||||||
|
visibility: 1,
|
||||||
color: 1,
|
color: 1,
|
||||||
abbrev: 1,
|
abbrev: 1,
|
||||||
data_costituz: 1,
|
data_costituz: 1,
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import { CTitleBanner } from '../CTitleBanner'
|
|||||||
|
|
||||||
import { useUserStore } from '@store/UserStore'
|
import { useUserStore } from '@store/UserStore'
|
||||||
import { useGlobalStore } from '@store/globalStore'
|
import { useGlobalStore } from '@store/globalStore'
|
||||||
import { useQuasar } from 'quasar'
|
import { useQuasar, exportFile } from 'quasar'
|
||||||
import { costanti } from '@costanti'
|
import { costanti } from '@costanti'
|
||||||
import translate from '@/globalroutines/util'
|
import translate from '@/globalroutines/util'
|
||||||
import { toolsext } from '@store/Modules/toolsext'
|
import { toolsext } from '@store/Modules/toolsext'
|
||||||
@@ -92,6 +92,11 @@ export default defineComponent({
|
|||||||
required: false,
|
required: false,
|
||||||
default: 0,
|
default: 0,
|
||||||
},
|
},
|
||||||
|
enableExport: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
finder_noNull: {
|
finder_noNull: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
@@ -960,7 +965,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
function refresh_infscroll(done: any) {
|
function refresh_infscroll(done: any) {
|
||||||
console.log('refresh_infscroll')
|
// console.log('refresh_infscroll')
|
||||||
rowclicksel.value = null
|
rowclicksel.value = null
|
||||||
|
|
||||||
onUpdateData(0,
|
onUpdateData(0,
|
||||||
@@ -972,7 +977,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
|
|
||||||
function refresh() {
|
function refresh() {
|
||||||
console.log('refresh', 'startsearch', startsearch.value)
|
// console.log('refresh', 'startsearch', startsearch.value)
|
||||||
|
|
||||||
clickbuttsearch.value = true
|
clickbuttsearch.value = true
|
||||||
// console.log('refresh')
|
// console.log('refresh')
|
||||||
@@ -1932,7 +1937,66 @@ export default defineComponent({
|
|||||||
done()
|
done()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function wrapCsvValue (val: any, formatFn?: any, row?: any, col?: IColGridTable) {
|
||||||
|
let formatted = formatFn !== void 0
|
||||||
|
? formatFn(val, row)
|
||||||
|
: val
|
||||||
|
|
||||||
|
formatted = formatted === void 0 || formatted === null
|
||||||
|
? ''
|
||||||
|
: String(formatted)
|
||||||
|
|
||||||
|
formatted = formatted.split('"').join('""')
|
||||||
|
/**
|
||||||
|
* Excel accepts \n and \r in strings, but some other CSV parsers do not
|
||||||
|
* Uncomment the next two lines to escape new lines
|
||||||
|
*/
|
||||||
|
// .split('\n').join('\\n')
|
||||||
|
// .split('\r').join('\\r')
|
||||||
|
|
||||||
|
if (col) {
|
||||||
|
if (col.label_trans === t('movement.accountFromId')) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (col)
|
||||||
|
console.log(' valu', formatted, ' (col=', col.name)
|
||||||
|
|
||||||
|
return `"${formatted}"`
|
||||||
|
}
|
||||||
|
|
||||||
// onMounted(mounted)
|
// onMounted(mounted)
|
||||||
|
function exportTable () {
|
||||||
|
// console.log('row', serverData.value)
|
||||||
|
// console.log('mycolumns.value', mycolumns.value)
|
||||||
|
// naive encoding to csv format
|
||||||
|
const content = [mycolumns.value.map((col: any) => wrapCsvValue(col.label))].concat(
|
||||||
|
serverData.value.map((row: any) => mycolumns.value.map((col: any) => wrapCsvValue(
|
||||||
|
typeof col.field === 'function'
|
||||||
|
? col.field(row)
|
||||||
|
: tools.getValue(row, col.field, col.subfield),
|
||||||
|
col.format,
|
||||||
|
row,
|
||||||
|
col
|
||||||
|
)).join(','))
|
||||||
|
).join('\r\n')
|
||||||
|
|
||||||
|
const status = exportFile(
|
||||||
|
'export-' + mytable.value + '_' + tools.getstrYYMMDDHHMMDateTime(tools.getDateNow()) + '.csv',
|
||||||
|
content,
|
||||||
|
'text/csv'
|
||||||
|
)
|
||||||
|
|
||||||
|
if (status !== true) {
|
||||||
|
$q.notify({
|
||||||
|
message: 'Il Browser ha negato il download del file.',
|
||||||
|
color: 'negative',
|
||||||
|
icon: 'warning'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
created()
|
created()
|
||||||
mounted()
|
mounted()
|
||||||
@@ -2025,6 +2089,7 @@ export default defineComponent({
|
|||||||
numRecLoaded,
|
numRecLoaded,
|
||||||
myinfscroll,
|
myinfscroll,
|
||||||
t,
|
t,
|
||||||
|
exportTable,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -413,9 +413,18 @@
|
|||||||
</q-tr>
|
</q-tr>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-slot:top-right v-if="tablesList || arrfilters">
|
<template v-slot:top-right v-if="tablesList || arrfilters || enableExport">
|
||||||
<span style="display: none">{{ actual = null }}</span>
|
<span style="display: none">{{ actual = null }}</span>
|
||||||
|
|
||||||
|
<q-btn
|
||||||
|
v-if="enableExport"
|
||||||
|
color="primary"
|
||||||
|
icon-right="archive"
|
||||||
|
:label="t('export.csv')"
|
||||||
|
no-caps
|
||||||
|
@click="exportTable"
|
||||||
|
/>
|
||||||
|
|
||||||
<q-select
|
<q-select
|
||||||
v-if="tablesList"
|
v-if="tablesList"
|
||||||
v-model="tablesel"
|
v-model="tablesel"
|
||||||
|
|||||||
@@ -66,7 +66,6 @@ export default defineComponent({
|
|||||||
const mybutt = []
|
const mybutt = []
|
||||||
mybutt.push({ label: t('mypages.follow_circuits') + ' (' + numMyCircuits.value + ')', value: costanti.MY_CIRCUITS })
|
mybutt.push({ label: t('mypages.follow_circuits') + ' (' + numMyCircuits.value + ')', value: costanti.MY_CIRCUITS })
|
||||||
mybutt.push({ label: t('mypages.find_circuit'), value: costanti.FIND_CIRCUIT })
|
mybutt.push({ label: t('mypages.find_circuit'), value: costanti.FIND_CIRCUIT })
|
||||||
// mybutt.push({ label: t('mypages.manage_my_circuits') + ' (' + numManageCircuits.value + ')', value: costanti.MANAGE_CIRCUITS })
|
|
||||||
|
|
||||||
|
|
||||||
if (numAskSentCircuits.value > 0 || props.modelValue === costanti.ASK_SENT_CIRCUIT)
|
if (numAskSentCircuits.value > 0 || props.modelValue === costanti.ASK_SENT_CIRCUIT)
|
||||||
@@ -104,8 +103,6 @@ export default defineComponent({
|
|||||||
arr = circuitStore.listcircuits
|
arr = circuitStore.listcircuits
|
||||||
} else if (props.modelValue === costanti.MY_CIRCUITS ) {
|
} else if (props.modelValue === costanti.MY_CIRCUITS ) {
|
||||||
arr = circuitStore.listcircuits.filter((circ: any) => userStore.my.profile.mycircuits.findIndex((rec: any) => circ.name === rec.circuitname) >= 0)
|
arr = circuitStore.listcircuits.filter((circ: any) => userStore.my.profile.mycircuits.findIndex((rec: any) => circ.name === rec.circuitname) >= 0)
|
||||||
} else if (props.modelValue === costanti.MANAGE_CIRCUITS) {
|
|
||||||
// arr = userStore.my.profile.manage_mycircuits
|
|
||||||
} else if (props.modelValue === costanti.ASK_SENT_CIRCUIT) {
|
} else if (props.modelValue === costanti.ASK_SENT_CIRCUIT) {
|
||||||
arr = userStore.my.profile.asked_circuits
|
arr = userStore.my.profile.asked_circuits
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ const msg_it = {
|
|||||||
guida: 'Guida',
|
guida: 'Guida',
|
||||||
guida_passopasso: 'Guida Passo Passo',
|
guida_passopasso: 'Guida Passo Passo',
|
||||||
},
|
},
|
||||||
|
export: {
|
||||||
|
csv: 'Esporta in CSV',
|
||||||
|
},
|
||||||
grid: {
|
grid: {
|
||||||
editvalues: 'Modifica Valori',
|
editvalues: 'Modifica Valori',
|
||||||
addrecord: 'Aggiungi Riga',
|
addrecord: 'Aggiungi Riga',
|
||||||
@@ -1137,6 +1140,10 @@ const msg_it = {
|
|||||||
durata_deper: 'Durata Dep.',
|
durata_deper: 'Durata Dep.',
|
||||||
img_logo: 'NomeFile Logo',
|
img_logo: 'NomeFile Logo',
|
||||||
regulation: 'Regolamento',
|
regulation: 'Regolamento',
|
||||||
|
disclaimer: 'Questo Strumento vuole essere un\'aiuto per contabilizzare gli scambi tra utenti. ' +
|
||||||
|
'Consigliamo vivamente di scaricarsi con frequenza le transazioni utenti, per ogni possibile evento imprevisto ' +
|
||||||
|
'(Server inaccessibile, ecc..) declinando così il creatore della APP da ogni responsabilità su come' +
|
||||||
|
'verrà utilizzata dal gruppo. ',
|
||||||
acceptregulation: 'Accetta il Regolamento',
|
acceptregulation: 'Accetta il Regolamento',
|
||||||
domanda_ask: 'Chiedere l\'invito al Circuito {circuitname} accettando il suo Regolamento?',
|
domanda_ask: 'Chiedere l\'invito al Circuito {circuitname} accettando il suo Regolamento?',
|
||||||
domanda_revoke: 'Revocare la richiesta al Circuito {circuitname}?',
|
domanda_revoke: 'Revocare la richiesta al Circuito {circuitname}?',
|
||||||
|
|||||||
@@ -206,8 +206,6 @@ export const costanti = {
|
|||||||
ADMIN_GROUPS: 40,
|
ADMIN_GROUPS: 40,
|
||||||
FIND_CIRCUIT: 50,
|
FIND_CIRCUIT: 50,
|
||||||
MY_CIRCUITS: 51,
|
MY_CIRCUITS: 51,
|
||||||
CREATE_CIRCUIT: 52,
|
|
||||||
MANAGE_CIRCUITS: 53,
|
|
||||||
ADMIN_CIRCUITS: 54,
|
ADMIN_CIRCUITS: 54,
|
||||||
ASK_SENT_CIRCUIT: 55,
|
ASK_SENT_CIRCUIT: 55,
|
||||||
|
|
||||||
|
|||||||
@@ -2197,7 +2197,7 @@ export const tools = {
|
|||||||
|
|
||||||
isManager() {
|
isManager() {
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
return userStore.isManager
|
return userStore.isManager || userStore.isAdmin
|
||||||
},
|
},
|
||||||
|
|
||||||
isSocioResidente() {
|
isSocioResidente() {
|
||||||
@@ -2465,6 +2465,10 @@ export const tools = {
|
|||||||
return date.formatDate(mytimestamp, 'YYYY-MM-DD HH:mm')
|
return date.formatDate(mytimestamp, 'YYYY-MM-DD HH:mm')
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getstrYYMMDDHHMMDateTime(mytimestamp: Date | number | string | undefined) {
|
||||||
|
return date.formatDate(mytimestamp, 'YYYY-MM-DD_HH:mm')
|
||||||
|
},
|
||||||
|
|
||||||
getstrYYMMDDDateTimeAll(mytimestamp: Date | number | string | undefined) {
|
getstrYYMMDDDateTimeAll(mytimestamp: Date | number | string | undefined) {
|
||||||
return date.formatDate(mytimestamp, 'YYYY-MM-DD HH:mm:ss')
|
return date.formatDate(mytimestamp, 'YYYY-MM-DD HH:mm:ss')
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -650,6 +650,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
|
|
||||||
// If is not already stored in DB, then show the message to the user.
|
// If is not already stored in DB, then show the message to the user.
|
||||||
if (!this.wasAlreadySubscribed || notreg) {
|
if (!this.wasAlreadySubscribed || notreg) {
|
||||||
|
/*
|
||||||
options = {
|
options = {
|
||||||
title: tools.translate('notification.title_subscribed', [{
|
title: tools.translate('notification.title_subscribed', [{
|
||||||
strin: 'sitename',
|
strin: 'sitename',
|
||||||
@@ -658,6 +659,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
|||||||
content: translate('notification.subscribed'),
|
content: translate('notification.subscribed'),
|
||||||
openUrl: '/',
|
openUrl: '/',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
const myres = {
|
const myres = {
|
||||||
|
|||||||
@@ -122,6 +122,7 @@
|
|||||||
:vertical="0"
|
:vertical="0"
|
||||||
nodataLabel="Nessun Movimento effettuato"
|
nodataLabel="Nessun Movimento effettuato"
|
||||||
:prop_search="true"
|
:prop_search="true"
|
||||||
|
:enableExport="true"
|
||||||
hint="nota da trovare"
|
hint="nota da trovare"
|
||||||
:finder="false"
|
:finder="false"
|
||||||
:choose_visutype="false"
|
:choose_visutype="false"
|
||||||
@@ -152,6 +153,7 @@
|
|||||||
col_title="Lista Movimenti"
|
col_title="Lista Movimenti"
|
||||||
:vertical="costanti.VISUTABLE_LISTA"
|
:vertical="costanti.VISUTABLE_LISTA"
|
||||||
nodataLabel="Nessun Movimento effettuato"
|
nodataLabel="Nessun Movimento effettuato"
|
||||||
|
:enableExport="true"
|
||||||
:prop_search="true"
|
:prop_search="true"
|
||||||
hint="nota da trovare"
|
hint="nota da trovare"
|
||||||
:finder="false"
|
:finder="false"
|
||||||
@@ -487,7 +489,18 @@
|
|||||||
class="bg-green text-white"
|
class="bg-green text-white"
|
||||||
style="text-align: center;"
|
style="text-align: center;"
|
||||||
>
|
>
|
||||||
<em style="font-weight: bold">Regolamento:</em><br>
|
<em style="font-weight: bold">Disclaimer:</em><br>
|
||||||
|
</q-banner>
|
||||||
|
<div v-html="t('circuit.disclaimer')">
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
|
<q-card-section class="inset-shadow">
|
||||||
|
<q-banner
|
||||||
|
rounded
|
||||||
|
class="bg-green text-white"
|
||||||
|
style="text-align: center;"
|
||||||
|
>
|
||||||
|
<em style="font-weight: bold">Regolamento interno:</em><br>
|
||||||
</q-banner>
|
</q-banner>
|
||||||
<div v-html="circuit.regulation">
|
<div v-html="circuit.regulation">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ export default defineComponent({
|
|||||||
colmyUserCircuit,
|
colmyUserCircuit,
|
||||||
toolsext,
|
toolsext,
|
||||||
isfinishLoading,
|
isfinishLoading,
|
||||||
|
tools,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -8,14 +8,12 @@
|
|||||||
|
|
||||||
<CFinder
|
<CFinder
|
||||||
:table="toolsext.TABCIRCUITS"
|
:table="toolsext.TABCIRCUITS"
|
||||||
|
:noButtAdd="!tools.isManager()"
|
||||||
:showFilterPersonal="true"
|
:showFilterPersonal="true"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</CMyCircuits>
|
</CMyCircuits>
|
||||||
|
|
||||||
<div v-if="filter === costanti.CREATE_CIRCUIT">
|
|
||||||
Nuovo Circuito:
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user