- Modified privacywrite query with graphLookup:

$graphLookup: {
        from: "projects",
        startWith: "$id_main_project",
        connectFromField: "id_main_project",
        connectToField: "_id",
        as: "ris",
        restrictSearchWithMatch: { $or: [{ privacyread: server_constants.Privacy.all }, { userId: userId }] }
      }
    },
    { $match: { "ris.privacyread": { $exists: true } } },
This commit is contained in:
Paolo Arena
2019-04-13 03:04:40 +02:00
parent 7b1e24c407
commit 3c05d2d9c7
10 changed files with 94 additions and 95 deletions

View File

@@ -160,12 +160,6 @@ export default class SingleProject extends Vue {
this.clButtPopover += ' pos-item-popover_cursor' this.clButtPopover += ' pos-item-popover_cursor'
} }
// this.getinputdescr = 'inputdescr' + this.itemproject._id
// console.log('classDescrEdit = ', this.classDescrEdit)
// console.log('classDescr', this.classDescr)
// console.log('UserStore.state.lang', UserStore.state.lang)
if (this.isProject()) { if (this.isProject()) {
this.menuPopupProj = tools.menuPopupProj[UserStore.state.lang] this.menuPopupProj = tools.menuPopupProj[UserStore.state.lang]
} }
@@ -191,7 +185,7 @@ export default class SingleProject extends Vue {
} }
public clickRiga(clickmenu: boolean = false) { public clickRiga(clickmenu: boolean = false) {
// console.log('CLICK RIGA ************') console.log('CLICK RIGA PROJ************')
if (!this.sel) { if (!this.sel) {
if (!this.inEdit) { if (!this.inEdit) {
@@ -272,7 +266,7 @@ export default class SingleProject extends Vue {
this.updateClasses() this.updateClasses()
} }
this.faiFocus('inputdescr', false, true) this.faiFocus('inputprojdescr', false, true)
} }
// console.log('FINE - editProject') // console.log('FINE - editProject')
} }
@@ -288,11 +282,12 @@ export default class SingleProject extends Vue {
} }
if (!!theField) { if (!!theField) {
console.log('FOCUS PROJ', theField)
theField.focus() theField.focus()
} }
// console.log('focus()') // console.log('focus()')
}, 100) }, 300)
} }
public getFocus(e) { public getFocus(e) {

View File

@@ -5,7 +5,7 @@
:to="getrouteto"/> :to="getrouteto"/>
<div class="flex-item donotdrag divdescrTot"> <div class="flex-item donotdrag divdescrTot">
<q-input v-if="(sel && inEdit)" hide-underline type="textarea" ref="inputdescr" <q-input v-if="(sel && inEdit)" hide-underline type="textarea" ref="inputprojdescr"
v-model.trim="precDescr" v-model.trim="precDescr"
autogrow autogrow
borderless borderless

View File

@@ -174,20 +174,6 @@ export default class SingleTodo extends Vue {
this.clButtPopover += ' pos-item-popover_cursor' this.clButtPopover += ' pos-item-popover_cursor'
} }
// if (this.inEdit) {
// this.classDescr += ' hide'
// this.classDescrEdit += ' show'
// } else {
// this.classDescrEdit += ' hide'
// this.classDescr += ' show'
// }
// this.getinputdescr = 'inputdescr' + this.itemtodo._id
// console.log('classDescrEdit = ', this.classDescrEdit)
// console.log('classDescr', this.classDescr)
// console.log('UserStore.state.lang', UserStore.state.lang)
if (this.isTodo()) { if (this.isTodo()) {
this.menuPopupTodo = tools.menuPopupTodo[UserStore.state.lang] this.menuPopupTodo = tools.menuPopupTodo[UserStore.state.lang]
} }
@@ -295,10 +281,11 @@ export default class SingleTodo extends Vue {
} }
if (!!theField) { if (!!theField) {
console.log('FOCUS TODO', theField)
theField.focus() theField.focus()
} }
// console.log('focus()') // console.log('focus()')
}, 100) }, 300)
} }
public exitEdit(singola: boolean = false) { public exitEdit(singola: boolean = false) {
@@ -408,6 +395,8 @@ export default class SingleTodo extends Vue {
} else { } else {
this.itemtodo.statustodo = tools.Status.COMPLETED this.itemtodo.statustodo = tools.Status.COMPLETED
} }
this.itemtodo.progress = 100
this.watchupdate('statustodo') this.watchupdate('statustodo')
this.deselectAndExitEdit() this.deselectAndExitEdit()

View File

@@ -263,8 +263,8 @@ const messages = {
costo: '220€ singola, 320€ matrimoniale', costo: '220€ singola, 320€ matrimoniale',
descrizione: 'Affittasi 2 Camere a Málaga - Las Delicias', descrizione: 'Affittasi 2 Camere a Málaga - Las Delicias',
cameramatr: 'Camera matrimoniale (per 1 persona)', cameramatr: 'Camera matrimoniale (per 1 persona)',
matr1: '320€ al mese: da maggio fino a settembre', matr1: '320€ al mese: da maggio fino a settembre (10,50 mq)',
singola1: '220€ al mese: da maggio fino a settembre', singola1: '220€ al mese: da maggio fino a settembre (6,50 mq)',
descrpiso: 'Si sub-affittano 2 camere in un modesto appartamento di 90m2, composto da 3 camere totali, 1 bagno con vasca + bide, sala, cucina, terrazzino coperto per ripostiglio e biciclette.<br>' + descrpiso: 'Si sub-affittano 2 camere in un modesto appartamento di 90m2, composto da 3 camere totali, 1 bagno con vasca + bide, sala, cucina, terrazzino coperto per ripostiglio e biciclette.<br>' +
'L\'appartamento è a <strong>700m dalla spiaggia</strong>.<br>' + 'L\'appartamento è a <strong>700m dalla spiaggia</strong>.<br>' +
'A 3,5 km dal centro.<br>' + 'A 3,5 km dal centro.<br>' +
@@ -279,9 +279,9 @@ const messages = {
'<h5>Periodo</h5>' + '<h5>Periodo</h5>' +
' Da maggio fino ai primi di Settembre (poi da decidere insieme)' + ' Da maggio fino ai primi di Settembre (poi da decidere insieme)' +
'<h5>Costi</h5>' + '<h5>Costi</h5>' +
' - 1 Camera Singola: <strong>220 €</strong><br>' + ' - 1 Camera Singola: <strong>220 €</strong> (6,50 mq) <br>' +
' - 1 Camera Matrimoniale: <strong>320 €</strong> (solo per 1 persona)<br><br>' + ' - 1 Camera Matrimoniale: <strong>320 €</strong> (solo per 1 persona) (10,50 mq)<br><br>' +
'P.S: Per <strong>Vegani</strong>, sconto extra per la matrimoniale!' + 'P.S: Per <strong>Vegani</strong>, sconto extra del 10% per la matrimoniale !' +
'<h5>Caparra</h5>' + '<h5>Caparra</h5>' +
'La caparra da pagare in anticipo è di 300€<br>' + 'La caparra da pagare in anticipo è di 300€<br>' +
'che verrá restituita alla fine della stagione, a Settembre.' + 'che verrá restituita alla fine della stagione, a Settembre.' +
@@ -295,15 +295,16 @@ const messages = {
'Nel caso in cui si debba lasciare l\'appartamento prima della scadenza, è buona norma <strong>avvertire</strong> con 30 giorni di preavviso, per permetterci di trovare un\'altra persona fidata, ' + 'Nel caso in cui si debba lasciare l\'appartamento prima della scadenza, è buona norma <strong>avvertire</strong> con 30 giorni di preavviso, per permetterci di trovare un\'altra persona fidata, ' +
'altrimenti parte della caparra verrá usata come indennizzo, salvo per motivazioni veramente importanti.' + 'altrimenti parte della caparra verrá usata come indennizzo, salvo per motivazioni veramente importanti.' +
'<h5>Spese Aggiuntive:</h5>' + '<h5>Spese Aggiuntive:</h5>' +
'Le <strong>spese</strong> di luce, acqua, gas e internet Wifi con Fibra ottica, sono <strong>da pagare a parte</strong>, da dividere tra i coinquilini, (mediamente circa <strong>50€/mese a testa</strong>)<br><br>' + 'Le <strong>spese</strong> di luce, acqua, gas e internet Wifi con Fibra ottica, sono <strong>da pagare a parte</strong>, da dividere tra i coinquilini, (circa <strong>35 € al mese a testa</strong>)<br><br>' +
'Opzionale: A disposizione una <strong>Bicicietta</strong> MTB (costo 25€ al mese per l\'usura).<br><br>' + 'Opzionale: A disposizione una <strong>Bicicietta</strong> MTB (costo 20€ al mese per l\'usura).<br><br>' +
'' + '' +
'P.S: I prezzi sono bassi perchè le camere vengono sub-affittate e non vogliamo lucrarci sopra, ma semplicemente mantenere l\'appartamento per ritornarci poi a Settembre<br>' + 'P.S: I prezzi sono bassi perchè le camere vengono sub-affittate e non vogliamo lucrarci sopra, ma semplicemente mantenere l\'appartamento per ritornarci poi a Settembre<br>' +
'<h5>Contratto</h5>' + '<h5>Contratto</h5>' +
'Per stare tranquilli, verrà richiesto di firmare un contratto (scrittura privata), in cui si confermano queste condizioni scritte qui sopra.<br>' + 'Per stare tranquilli, verrà richiesto di firmare un contratto (scrittura privata), in cui si confermano queste condizioni scritte qui sopra.<br>' +
'Necessita di foto documenti d\'identità (carta d\'identità o passaporto). ' + 'Necessita di foto documenti d\'identità (carta d\'identità o passaporto). ' +
'<h5>Per contattarci</h5>' + '<h5>Per contattarci</h5>' +
'Paolo: su Whatsapp +34 644932796 <br>' + 'Paolo: Whatsapp +34 644.93.27.96 <br>' +
'Karla: Whatsapp +34 603.24.41.00<br>' +
'Inviare anche contatto Facebook', 'Inviare anche contatto Facebook',
mat_scrivania: 'Scrivania - matrimoniale', mat_scrivania: 'Scrivania - matrimoniale',
mat_finestra: 'Finestra - matrimoniale', mat_finestra: 'Finestra - matrimoniale',
@@ -582,8 +583,8 @@ const messages = {
costo: '220 € single, € 320 doble', costo: '220 € single, € 320 doble',
descrizione: 'Alquiler de 2 habitaciones en Málaga - Las Delicias', descrizione: 'Alquiler de 2 habitaciones en Málaga - Las Delicias',
cameramatr: 'Habitacion doble', cameramatr: 'Habitacion doble',
matr1: '320 € al mes: de mayo a septiembre.', matr1: '320 € al mes: de mayo a septiembre. (10,50 mq)',
singola1: '220 € al mes: de mayo a septiembre.', singola1: '220 € al mes: de mayo a septiembre. (6,50 mq)',
descrpiso: 'Sub-alquilamos 2 habitaciones en un modesto apartamento de 90 m2, que consta de 3 habitaciones en total, 1 baño con bañera + bidet, sala de estar, cocina, terraza cubierta para almacenamiento y bicicletas. <br>' + descrpiso: 'Sub-alquilamos 2 habitaciones en un modesto apartamento de 90 m2, que consta de 3 habitaciones en total, 1 baño con bañera + bidet, sala de estar, cocina, terraza cubierta para almacenamiento y bicicletas. <br>' +
'El apartamento está a <strong>700m de la playa</strong>. <br>' + 'El apartamento está a <strong>700m de la playa</strong>. <br>' +
'A 3.5 km del centro. <br>' + 'A 3.5 km del centro. <br>' +
@@ -595,15 +596,15 @@ const messages = {
'No fumadores, no mascotas (el propietario lo prohíbe)' + 'No fumadores, no mascotas (el propietario lo prohíbe)' +
'<h5> ¿Quién vivirá contigo en el piso? </h5>' + '<h5> ¿Quién vivirá contigo en el piso? </h5>' +
'Una estudiante española vive actualmente aquí' + 'Una estudiante española vive actualmente aquí' +
'<h5> Periodo </h5>' + '<h5> Temporada </h5>' +
'Desde mayo hasta principios de septiembre (luego se decidirá en conjunto)' + 'Desde mayo hasta principios de septiembre (luego se decidirá en conjunto)' +
'<h5> Costos </h5>' + '<h5> Costos </h5>' +
'- 1 habitación individual: <strong> 220 € </strong> <br>' + '- 1 habitación individual: <strong> 220 € </strong> (6,50 mq) <br>' +
'- 1 Habitación Doble: <strong> 320 € </strong><br><br>' + '- 1 Habitación Doble: <strong> 320 € </strong> (10,50 mq)<br><br>' +
'P.S: Para <strong>Veganos</strong>, ¡descuento extra para la Doble!' + 'P.S: Para <strong>Veganos</strong>, ¡descuento extra del 10% para la Doble!' +
'<h5> Fianza </h5>' + '<h5> Fianza </h5>' +
'El anticipo a pagar por adelantado es de € 300 +' + 'El anticipo a pagar por adelantado es de € 300 <br>' +
'Que se devolverá al final de la temporada, en septiembre.' + 'que se devolverá al final de la temporada, en septiembre.' +
'<h5> Ver el apartamento </h5>' + '<h5> Ver el apartamento </h5>' +
'Ponte en contacto conmigo para venir a ver el apartamento.' + 'Ponte en contacto conmigo para venir a ver el apartamento.' +
'<h5> ¿Cuánto tengo que pagar para ingresar? </h5>' + '<h5> ¿Cuánto tengo que pagar para ingresar? </h5>' +
@@ -614,14 +615,15 @@ const messages = {
'En caso de que tenga que abandonar el apartamento antes de la fecha límite, es una buena práctica <strong> avisar </strong> con <strong>30 días de antelación</strong>, para permitirnos encontrar a otra persona de confianza,' + 'En caso de que tenga que abandonar el apartamento antes de la fecha límite, es una buena práctica <strong> avisar </strong> con <strong>30 días de antelación</strong>, para permitirnos encontrar a otra persona de confianza,' +
'De lo contrario, parte del depósito se utilizará como compensación, excepto por razones muy importantes.' + 'De lo contrario, parte del depósito se utilizará como compensación, excepto por razones muy importantes.' +
'<h5> Gastos adicionales: </h5>' + '<h5> Gastos adicionales: </h5>' +
'Los <strong> gastos </strong> de electricidad, agua, gas y internet wifi con fibra óptica, se <strong> pagarán por separado </strong>, se dividirán entre los compañeros de habitación (aproximadamente <strong> 50 € / mes cada uno</strong>) <br> <br> ' + 'Los <strong> gastos </strong> de electricidad, agua, gas y internet wifi con fibra óptica, se <strong> pagarán por separado </strong>, se dividirán entre los compañeros de habitación (aproximadamente <strong> 35 € / mes cada uno</strong>) <br> <br> ' +
'Opcional: hay un Bicicietta <strong> </strong> disponible (25 € al mes por desgaste). <br> <br> ' + 'Opcional: hay un Bicicietta <strong> </strong> disponible (20 € al mes por desgaste). <br> <br> ' +
'P.S: Los precios son bajos porque las habitaciones están sub-alquiladas y no queremos ganar dinero con esto, simplemente mantenemos el apartamento y luego regresamos a septiembre <br>' + 'P.S: Los precios son bajos porque las habitaciones están sub-alquiladas y no queremos ganar dinero con esto, simplemente mantenemos el apartamento y luego regresamos a septiembre <br>' +
'<h5> Contrato </h5>' + '<h5> Contrato </h5>' +
'Para seguridad, se le pedirá que firme un contrato (acuerdo privado), que confirme las condiciones escritas arriba. <br> ' + 'Para seguridad, se le pedirá que firme un contrato (acuerdo privado), que confirme las condiciones escritas arriba. <br> ' +
'Se requieren documentos de identificación con foto (documento de identidad o pasaporte). ' + 'Se requieren documentos de identificación con foto (documento de identidad o pasaporte). ' +
'<h5> Para contactarnos </h5>' + '<h5> Para contactarnos </h5>' +
'Paolo: su Whatsapp +34 644932796 <br>' + 'Paolo: Whatsapp +34 644.93.27.96 <br>' +
'Karla: Whatsapp +34 603.24.41.00<br>' +
'Enviar también contacto de Facebook', 'Enviar también contacto de Facebook',
mat_scrivania: 'Escritorio - cama matrimonial', mat_scrivania: 'Escritorio - cama matrimonial',
mat_finestra: 'Ventana - matrimonial', mat_finestra: 'Ventana - matrimonial',
@@ -901,8 +903,8 @@ const messages = {
costo: '220 € single, € 320 double', costo: '220 € single, € 320 double',
descrizione: 'Rent 2 Rooms in Málaga - Las Delicias district', descrizione: 'Rent 2 Rooms in Málaga - Las Delicias district',
cameramatr: 'Double room (for 1 person)', cameramatr: 'Double room (for 1 person)',
matr1: '€ 320 per month: from May until September', matr1: '€ 320 per month: from May until September (10,50 mq)',
singola1: '€ 220 per month: from May until September', singola1: '€ 220 per month: from May until September (6,50 mq)',
descrpiso: 'We sub-rent 2 rooms in a modest 90m2 apartment, consisting of 3 total bedrooms, 1 bathroom with bath + bidet, living room, kitchen, covered terrace for storage and bicycles. <br> ' + descrpiso: 'We sub-rent 2 rooms in a modest 90m2 apartment, consisting of 3 total bedrooms, 1 bathroom with bath + bidet, living room, kitchen, covered terrace for storage and bicycles. <br> ' +
'The apartment is <strong>700m from the beach</strong>. <br>' + 'The apartment is <strong>700m from the beach</strong>. <br>' +
'3.5 km from the center. <br>' + '3.5 km from the center. <br>' +
@@ -917,11 +919,11 @@ const messages = {
'<h5> Period </h5>' + '<h5> Period </h5>' +
'From May until the beginning of September (later to be decided together)' + 'From May until the beginning of September (later to be decided together)' +
'<h5> Costs </h5>' + '<h5> Costs </h5>' +
'- 1 Single Room: <strong> 220 € </strong> <br>' + '- 1 Single Room: <strong> 220 € </strong> (6,50 mq)<br>' +
'- 1 Double Room: <strong> 320 € </strong> (only for 1 person)<br><br>' + '- 1 Double Room: <strong> 320 € </strong> (only for 1 person) (10,5 mq) <br><br>' +
'P.S: For <strong> Vegans </strong>, extra discount for the double room!' + 'P.S: For <strong> Vegans </strong>, 10% extra discount for the double room!' +
'<h5> Deposit </h5>' + '<h5> Deposit </h5>' +
'The down payment to be paid in advance is € 300 +' + 'The down payment to be paid in advance is € 300 <br>' +
'which will be returned at the end of the season, in September.' + 'which will be returned at the end of the season, in September.' +
'<h5> See the apartment </h5>' + '<h5> See the apartment </h5>' +
'Contact me to come and see the apartment.' + 'Contact me to come and see the apartment.' +
@@ -933,15 +935,16 @@ const messages = {
'In case you have to leave the apartment before the deadline, it is good practice <strong> to warn </strong> with <strong>30 days notice</strong>, to allow us to find another trusted person,' + 'In case you have to leave the apartment before the deadline, it is good practice <strong> to warn </strong> with <strong>30 days notice</strong>, to allow us to find another trusted person,' +
'otherwise part of the deposit will be used as compensation, except for very important reasons.' + 'otherwise part of the deposit will be used as compensation, except for very important reasons.' +
'<h5> Additional Expenses: </h5>' + '<h5> Additional Expenses: </h5>' +
'The <strong> expenses </strong> of electricity, water, gas and internet Wifi with fiber optics, are <strong> to be paid separately </strong>, to be divided among the roommates, (on average about <strong> 50 € / month each </strong>) <br> <br> ' + 'The <strong> expenses </strong> of electricity, water, gas and internet Wifi with fiber optics, are <strong> to be paid separately </strong>, to be divided among the roommates, (about <strong> 35 € / month each </strong>) <br> <br> ' +
'Optional: A <strong> MTB Bike </strong> is available (€ 25 per month). <br> <br>' + 'Optional: A <strong> MTB Bike </strong> is available (€ 20 per month). <br> <br>' +
'' + '' +
'P.S: The prices are low because the rooms are sub-rented and we don\'t want to make money from them, but simply keep the apartment and then return to September <br>' + 'P.S: The prices are low because the rooms are sub-rented and we don\'t want to make money from them, but simply keep the apartment and then return to September <br>' +
'<h5> Contract </h5>' + '<h5> Contract </h5>' +
'To be safe, you will be asked to sign a contract (private agreement), confirming these conditions written above. <br>' + 'To be safe, you will be asked to sign a contract (private agreement), confirming these conditions written above. <br>' +
'Photo identification documents (identity card or passport) are required. ' + 'Photo identification documents (identity card or passport) are required. ' +
'<h5> To contact us </h5>' + '<h5> To contact us </h5>' +
'Paolo: on Whatsapp +34 644932796 <br>' + 'Paolo: Whatsapp +34 644.93.27.96 <br>' +
'Karla: Whatsapp +34 603.24.41.00<br>' +
'Send also Facebook contact', 'Send also Facebook contact',
mat_scrivania: 'Desk - double bed', mat_scrivania: 'Desk - double bed',
mat_finestra: 'Window - double bed', mat_finestra: 'Window - double bed',

View File

@@ -192,6 +192,9 @@ export namespace ApiTool {
} }
} }
console.log(' [Alternative] !!!!!!!!!!!!!!! Error while sending data', err, errorfromserver, 'lettoqualcosa', lettoqualcosa) console.log(' [Alternative] !!!!!!!!!!!!!!! Error while sending data', err, errorfromserver, 'lettoqualcosa', lettoqualcosa)
if (!errorfromserver) {
return globalroutines(null, 'delete', 'swmsg', null, mystrparam)
}
}) })
}) })

View File

@@ -17,7 +17,7 @@ export function getLinkByTableName(nametable) {
} }
} }
export const LIST_START = '0' export const LIST_START = null
export const DB = { export const DB = {
CMD_SYNC: 'sync', CMD_SYNC: 'sync',
@@ -432,5 +432,5 @@ export function table_DeleteRecord(nametable, myobjtrov, id) {
// 3) Delete from the Server (call) // 3) Delete from the Server (call)
Sync_DeleteItem(nametable, myobjtrov, id) Sync_DeleteItem(nametable, myobjtrov, id)
} }

View File

@@ -102,7 +102,7 @@ namespace Getters {
const listaprojects = b.read((state: IProjectsState) => (): IMenuList[] => { const listaprojects = b.read((state: IProjectsState) => (): IMenuList[] => {
if (state.projects) { if (state.projects) {
console.log('state.projects', state.projects) // console.log('state.projects', state.projects)
const listaproj = tools.mapSort(state.projects.filter((proj) => proj.id_parent === process.env.PROJECT_ID_MAIN)) const listaproj = tools.mapSort(state.projects.filter((proj) => proj.id_parent === process.env.PROJECT_ID_MAIN))
const myarr: IMenuList[] = [] const myarr: IMenuList[] = []
for (const proj of listaproj) { for (const proj of listaproj) {
@@ -212,9 +212,9 @@ namespace Actions {
} }
} }
if (UserStore.state.userId === '') { // if (UserStore.state.userId === '') {
return false // Login not made // return false // Login not made
} // }
console.log('dbLoad', nametable, checkPending, 'userid=', UserStore.state.userId) console.log('dbLoad', nametable, checkPending, 'userid=', UserStore.state.userId)

View File

@@ -510,13 +510,15 @@ namespace Actions {
// this.$router.push('/signin') // this.$router.push('/signin')
} }
async function setGlobal(loggedWithNetwork: boolean) { async function setGlobal(isLogged: boolean) {
state.isLogged = true state.isLogged = true
console.log('state.isLogged') console.log('state.isLogged')
GlobalStore.mutations.setleftDrawerOpen(localStorage.getItem(tools.localStorage.leftDrawerOpen) === 'true') if (isLogged) {
GlobalStore.mutations.setCategorySel(localStorage.getItem(tools.localStorage.categorySel)) GlobalStore.mutations.setleftDrawerOpen(localStorage.getItem(tools.localStorage.leftDrawerOpen) === 'true')
GlobalStore.mutations.setCategorySel(localStorage.getItem(tools.localStorage.categorySel))
GlobalStore.actions.checkUpdates() GlobalStore.actions.checkUpdates()
}
await GlobalStore.actions.loadAfterLogin() await GlobalStore.actions.loadAfterLogin()
.then(() => { .then(() => {
@@ -530,36 +532,37 @@ namespace Actions {
console.log('*** autologin_FromLocalStorage ***') console.log('*** autologin_FromLocalStorage ***')
// INIT // INIT
let isLogged = false
UserStore.state.lang = tools.getItemLS(tools.localStorage.lang) UserStore.state.lang = tools.getItemLS(tools.localStorage.lang)
const token = localStorage.getItem(tools.localStorage.token) const token = localStorage.getItem(tools.localStorage.token)
if (!token) { if (token) {
return false const expirationDateStr = localStorage.getItem(tools.localStorage.expirationDate)
const expirationDate = new Date(String(expirationDateStr))
const now = tools.getDateNow()
if (now < expirationDate) {
const userId = String(localStorage.getItem(tools.localStorage.userId))
const username = String(localStorage.getItem(tools.localStorage.username))
const verified_email = localStorage.getItem(tools.localStorage.verified_email) === 'true'
GlobalStore.state.wasAlreadySubOnDb = localStorage.getItem(tools.localStorage.wasAlreadySubOnDb) === 'true'
console.log('************* autologin userId', userId)
UserStore.mutations.setAuth(token)
Mutations.mutations.authUser({
userId,
username,
verified_email
})
isLogged = true
}
} }
const expirationDateStr = localStorage.getItem(tools.localStorage.expirationDate)
const expirationDate = new Date(String(expirationDateStr))
const now = tools.getDateNow()
if (now >= expirationDate) {
console.log('!!! Login Expired')
return false
}
const userId = String(localStorage.getItem(tools.localStorage.userId))
const username = String(localStorage.getItem(tools.localStorage.username))
const verified_email = localStorage.getItem(tools.localStorage.verified_email) === 'true'
GlobalStore.state.wasAlreadySubOnDb = localStorage.getItem(tools.localStorage.wasAlreadySubOnDb) === 'true' await setGlobal(isLogged)
console.log('************* autologin userId', userId)
UserStore.mutations.setAuth(token)
Mutations.mutations.authUser({
userId,
username,
verified_email
})
await setGlobal(false)
console.log('autologin userId STATE ', state.userId) console.log('autologin userId STATE ', state.userId)

View File

@@ -102,7 +102,7 @@ export default class ProjList extends Vue {
get CanIModifyPanelPrivacy() { get CanIModifyPanelPrivacy() {
if (UserStore.state.userId === this.itemselproj.userId) // If it's the owner if ((UserStore.state.userId === this.itemselproj.userId) || (this.itemselproj.privacywrite === Privacy.all)) // If it's the owner
return true return true
} }
@@ -357,7 +357,10 @@ export default class ProjList extends Vue {
myobj.id_main_project = this.idProjAtt myobj.id_main_project = this.idProjAtt
} else { } else {
myobj.typeproj = TypeProj.TYPE_SUBDIR myobj.typeproj = TypeProj.TYPE_SUBDIR
myobj.id_main_project = this.itemproj.id_main_project if (this.itemproj.id_main_project === process.env.PROJECT_ID_MAIN)
myobj.id_main_project = this.itemproj._id
else
myobj.id_main_project = this.itemproj.id_main_project
} }
if (!tools.checkIfUserExist(this)) { if (!tools.checkIfUserExist(this)) {
@@ -392,6 +395,8 @@ export default class ProjList extends Vue {
public deselectAllRowstodo(item: ITodo, check, onlythis: boolean = false) { public deselectAllRowstodo(item: ITodo, check, onlythis: boolean = false) {
console.log('PROJ-LIST deselectAllRowstodo : ', item) console.log('PROJ-LIST deselectAllRowstodo : ', item)
return false
// @ts-ignore // @ts-ignore
for (const i in this.$refs.ctodo.$refs.single) { for (const i in this.$refs.ctodo.$refs.single) {
// @ts-ignore // @ts-ignore
@@ -418,7 +423,7 @@ export default class ProjList extends Vue {
} }
public deselectAllRowsproj(item: IProject, check, onlythis: boolean = false) { public deselectAllRowsproj(item: IProject, check, onlythis: boolean = false) {
// console.log('deselectAllRowsproj: ', item) console.log('deselectAllRowsproj: ', item)
for (const i in this.$refs.singleproject) { for (const i in this.$refs.singleproject) {

View File

@@ -176,14 +176,14 @@
<div class="flex-container clMain"> <div class="flex-container clMain">
<q-icon class="flex-item flex-icon" name="developer_mode"/> <q-icon class="flex-item flex-icon" name="developer_mode"/>
<div class="flex-item itemdata"> <div class="flex-item itemdata">
<CDate :mydate="itemselproj.begin_development" <CDate :readonly="readonly_PanelPrivacy" :mydate="itemselproj.begin_development"
@input="itemselproj.begin_development = new Date(arguments[0])" @input="itemselproj.begin_development = new Date(arguments[0])"
:label="$t('proj.begin_development')"> :label="$t('proj.begin_development')">
</CDate> </CDate>
</div> </div>
<div style="margin: 10px;"></div> <div style="margin: 10px;"></div>
<div class="flex-item itemdata"> <div class="flex-item itemdata">
<CDate :mydate="itemselproj.begin_test" <CDate :readonly="readonly_PanelPrivacy" :mydate="itemselproj.begin_test"
@input="itemselproj.begin_test = new Date(arguments[0])" @input="itemselproj.begin_test = new Date(arguments[0])"
:label="$t('proj.begin_test')"> :label="$t('proj.begin_test')">
</CDate> </CDate>
@@ -192,13 +192,13 @@
<div class="flex-container clMain"> <div class="flex-container clMain">
<q-icon class="flex-item flex-icon" name="outlined_flag"/> <q-icon class="flex-item flex-icon" name="outlined_flag"/>
<div class="flex-item itemstatus"> <div class="flex-item itemstatus">
<q-select rounded outlined v-model="itemselproj.actualphase" :options="selectPhase" <q-select :readonly="readonly_PanelPrivacy" rounded outlined v-model="itemselproj.actualphase" :options="selectPhase"
:label="$t('proj.actualphase')" emit-value map-options> :label="$t('proj.actualphase')" emit-value map-options>
</q-select> </q-select>
</div> </div>
<q-icon class="flex-item flex-icon" name="outlined_flag"/> <q-icon class="flex-item flex-icon" name="outlined_flag"/>
<div class="flex-item itemstatus"> <div class="flex-item itemstatus">
<q-select rounded outlined v-model="itemselproj.totalphases" :options="selectPhase" <q-select :readonly="readonly_PanelPrivacy" rounded outlined v-model="itemselproj.totalphases" :options="selectPhase"
:label="$t('proj.totalphases')" emit-value map-options> :label="$t('proj.totalphases')" emit-value map-options>
</q-select> </q-select>
</div> </div>
@@ -208,6 +208,7 @@
<q-icon class="flex-item flex-icon" name="watch_later"/> <q-icon class="flex-item flex-icon" name="watch_later"/>
<div class="flex-item itemdata content-center"> <div class="flex-item itemdata content-center">
<q-input <q-input
:readonly="readonly_PanelPrivacy"
ref="input3" ref="input3"
type="number" type="number"
v-model="itemselproj.hoursweeky_plannedtowork" v-model="itemselproj.hoursweeky_plannedtowork"