From 3c05d2d9c7c6a3e704f4d3d31ea01613da846de6 Mon Sep 17 00:00:00 2001 From: Paolo Arena Date: Sat, 13 Apr 2019 03:04:40 +0200 Subject: [PATCH] - 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 } } }, --- .../projects/SingleProject/SingleProject.ts | 13 ++-- .../projects/SingleProject/SingleProject.vue | 2 +- src/components/todos/SingleTodo/SingleTodo.ts | 19 ++---- src/statics/i18n.js | 59 +++++++++--------- src/store/Api/index.ts | 3 + src/store/Modules/ApiTables.ts | 4 +- src/store/Modules/Projects.ts | 8 +-- src/store/Modules/UserStore.ts | 61 ++++++++++--------- src/views/projects/proj-list/proj-list.ts | 11 +++- src/views/projects/proj-list/proj-list.vue | 9 +-- 10 files changed, 94 insertions(+), 95 deletions(-) diff --git a/src/components/projects/SingleProject/SingleProject.ts b/src/components/projects/SingleProject/SingleProject.ts index 4e06b72..b87f3ae 100644 --- a/src/components/projects/SingleProject/SingleProject.ts +++ b/src/components/projects/SingleProject/SingleProject.ts @@ -160,12 +160,6 @@ export default class SingleProject extends Vue { 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()) { this.menuPopupProj = tools.menuPopupProj[UserStore.state.lang] } @@ -191,7 +185,7 @@ export default class SingleProject extends Vue { } public clickRiga(clickmenu: boolean = false) { - // console.log('CLICK RIGA ************') + console.log('CLICK RIGA PROJ************') if (!this.sel) { if (!this.inEdit) { @@ -272,7 +266,7 @@ export default class SingleProject extends Vue { this.updateClasses() } - this.faiFocus('inputdescr', false, true) + this.faiFocus('inputprojdescr', false, true) } // console.log('FINE - editProject') } @@ -288,11 +282,12 @@ export default class SingleProject extends Vue { } if (!!theField) { + console.log('FOCUS PROJ', theField) theField.focus() } // console.log('focus()') - }, 100) + }, 300) } public getFocus(e) { diff --git a/src/components/projects/SingleProject/SingleProject.vue b/src/components/projects/SingleProject/SingleProject.vue index 0e81fbc..8114c5a 100644 --- a/src/components/projects/SingleProject/SingleProject.vue +++ b/src/components/projects/SingleProject/SingleProject.vue @@ -5,7 +5,7 @@ :to="getrouteto"/>
- ' + 'L\'appartamento è a 700m dalla spiaggia.
' + 'A 3,5 km dal centro.
' + @@ -279,9 +279,9 @@ const messages = { '
Periodo
' + ' Da maggio fino ai primi di Settembre (poi da decidere insieme)' + '
Costi
' + - ' - 1 Camera Singola: 220 €
' + - ' - 1 Camera Matrimoniale: 320 € (solo per 1 persona)

' + - 'P.S: Per Vegani, sconto extra per la matrimoniale!' + + ' - 1 Camera Singola: 220 € (6,50 mq)
' + + ' - 1 Camera Matrimoniale: 320 € (solo per 1 persona) (10,50 mq)

' + + 'P.S: Per Vegani, sconto extra del 10% per la matrimoniale !' + '
Caparra
' + 'La caparra da pagare in anticipo è di 300€
' + '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 avvertire 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.' + '
Spese Aggiuntive:
' + - 'Le spese di luce, acqua, gas e internet Wifi con Fibra ottica, sono da pagare a parte, da dividere tra i coinquilini, (mediamente circa 50€/mese a testa)

' + - 'Opzionale: A disposizione una Bicicietta MTB (costo 25€ al mese per l\'usura).

' + + 'Le spese di luce, acqua, gas e internet Wifi con Fibra ottica, sono da pagare a parte, da dividere tra i coinquilini, (circa 35 € al mese a testa)

' + + 'Opzionale: A disposizione una Bicicietta MTB (costo 20€ al mese per l\'usura).

' + '' + '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
' + '
Contratto
' + 'Per stare tranquilli, verrà richiesto di firmare un contratto (scrittura privata), in cui si confermano queste condizioni scritte qui sopra.
' + 'Necessita di foto documenti d\'identità (carta d\'identità o passaporto). ' + '
Per contattarci
' + - 'Paolo: su Whatsapp +34 644932796
' + + 'Paolo: Whatsapp +34 644.93.27.96
' + + 'Karla: Whatsapp +34 603.24.41.00
' + 'Inviare anche contatto Facebook', mat_scrivania: 'Scrivania - matrimoniale', mat_finestra: 'Finestra - matrimoniale', @@ -582,8 +583,8 @@ const messages = { costo: '220 € single, € 320 doble', descrizione: 'Alquiler de 2 habitaciones en Málaga - Las Delicias', cameramatr: 'Habitacion doble', - matr1: '320 € al mes: de mayo a septiembre.', - singola1: '220 € 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. (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.
' + 'El apartamento está a 700m de la playa.
' + 'A 3.5 km del centro.
' + @@ -595,15 +596,15 @@ const messages = { 'No fumadores, no mascotas (el propietario lo prohíbe)' + '
¿Quién vivirá contigo en el piso?
' + 'Una estudiante española vive actualmente aquí' + - '
Periodo
' + + '
Temporada
' + 'Desde mayo hasta principios de septiembre (luego se decidirá en conjunto)' + '
Costos
' + - '- 1 habitación individual: 220 €
' + - '- 1 Habitación Doble: 320 €

' + - 'P.S: Para Veganos, ¡descuento extra para la Doble!' + + '- 1 habitación individual: 220 € (6,50 mq)
' + + '- 1 Habitación Doble: 320 € (10,50 mq)

' + + 'P.S: Para Veganos, ¡descuento extra del 10% para la Doble!' + '
Fianza
' + - 'El anticipo a pagar por adelantado es de € 300 +' + - 'Que se devolverá al final de la temporada, en septiembre.' + + 'El anticipo a pagar por adelantado es de € 300
' + + 'que se devolverá al final de la temporada, en septiembre.' + '
Ver el apartamento
' + 'Ponte en contacto conmigo para venir a ver el apartamento.' + '
¿Cuánto tengo que pagar para ingresar?
' + @@ -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 avisar con 30 días de antelación, 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.' + '
Gastos adicionales:
' + - 'Los gastos de electricidad, agua, gas y internet wifi con fibra óptica, se pagarán por separado , se dividirán entre los compañeros de habitación (aproximadamente 50 € / mes cada uno)

' + - 'Opcional: hay un Bicicietta disponible (25 € al mes por desgaste).

' + + 'Los gastos de electricidad, agua, gas y internet wifi con fibra óptica, se pagarán por separado , se dividirán entre los compañeros de habitación (aproximadamente 35 € / mes cada uno)

' + + 'Opcional: hay un Bicicietta disponible (20 € al mes por desgaste).

' + '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
' + '
Contrato
' + 'Para seguridad, se le pedirá que firme un contrato (acuerdo privado), que confirme las condiciones escritas arriba.
' + 'Se requieren documentos de identificación con foto (documento de identidad o pasaporte). ' + '
Para contactarnos
' + - 'Paolo: su Whatsapp +34 644932796
' + + 'Paolo: Whatsapp +34 644.93.27.96
' + + 'Karla: Whatsapp +34 603.24.41.00
' + 'Enviar también contacto de Facebook', mat_scrivania: 'Escritorio - cama matrimonial', mat_finestra: 'Ventana - matrimonial', @@ -901,8 +903,8 @@ const messages = { costo: '220 € single, € 320 double', descrizione: 'Rent 2 Rooms in Málaga - Las Delicias district', cameramatr: 'Double room (for 1 person)', - matr1: '€ 320 per month: from May until September', - singola1: '€ 220 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 (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.
' + 'The apartment is 700m from the beach.
' + '3.5 km from the center.
' + @@ -917,11 +919,11 @@ const messages = { '
Period
' + 'From May until the beginning of September (later to be decided together)' + '
Costs
' + - '- 1 Single Room: 220 €
' + - '- 1 Double Room: 320 € (only for 1 person)

' + - 'P.S: For Vegans , extra discount for the double room!' + + '- 1 Single Room: 220 € (6,50 mq)
' + + '- 1 Double Room: 320 € (only for 1 person) (10,5 mq)

' + + 'P.S: For Vegans , 10% extra discount for the double room!' + '
Deposit
' + - 'The down payment to be paid in advance is € 300 +' + + 'The down payment to be paid in advance is € 300
' + 'which will be returned at the end of the season, in September.' + '
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 to warn with 30 days notice, to allow us to find another trusted person,' + 'otherwise part of the deposit will be used as compensation, except for very important reasons.' + '
Additional Expenses:
' + - 'The expenses of electricity, water, gas and internet Wifi with fiber optics, are to be paid separately , to be divided among the roommates, (on average about 50 € / month each )

' + - 'Optional: A MTB Bike is available (€ 25 per month).

' + + 'The expenses of electricity, water, gas and internet Wifi with fiber optics, are to be paid separately , to be divided among the roommates, (about 35 € / month each )

' + + 'Optional: A MTB Bike is available (€ 20 per month).

' + '' + '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
' + '
Contract
' + 'To be safe, you will be asked to sign a contract (private agreement), confirming these conditions written above.
' + 'Photo identification documents (identity card or passport) are required. ' + '
To contact us
' + - 'Paolo: on Whatsapp +34 644932796
' + + 'Paolo: Whatsapp +34 644.93.27.96
' + + 'Karla: Whatsapp +34 603.24.41.00
' + 'Send also Facebook contact', mat_scrivania: 'Desk - double bed', mat_finestra: 'Window - double bed', diff --git a/src/store/Api/index.ts b/src/store/Api/index.ts index 1d42f49..765458d 100644 --- a/src/store/Api/index.ts +++ b/src/store/Api/index.ts @@ -192,6 +192,9 @@ export namespace ApiTool { } } console.log(' [Alternative] !!!!!!!!!!!!!!! Error while sending data', err, errorfromserver, 'lettoqualcosa', lettoqualcosa) + if (!errorfromserver) { + return globalroutines(null, 'delete', 'swmsg', null, mystrparam) + } }) }) diff --git a/src/store/Modules/ApiTables.ts b/src/store/Modules/ApiTables.ts index 9fbd41e..971258d 100644 --- a/src/store/Modules/ApiTables.ts +++ b/src/store/Modules/ApiTables.ts @@ -17,7 +17,7 @@ export function getLinkByTableName(nametable) { } } -export const LIST_START = '0' +export const LIST_START = null export const DB = { CMD_SYNC: 'sync', @@ -432,5 +432,5 @@ export function table_DeleteRecord(nametable, myobjtrov, id) { // 3) Delete from the Server (call) Sync_DeleteItem(nametable, myobjtrov, id) - + } diff --git a/src/store/Modules/Projects.ts b/src/store/Modules/Projects.ts index 7fa1143..24bef66 100644 --- a/src/store/Modules/Projects.ts +++ b/src/store/Modules/Projects.ts @@ -102,7 +102,7 @@ namespace Getters { const listaprojects = b.read((state: IProjectsState) => (): IMenuList[] => { 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 myarr: IMenuList[] = [] for (const proj of listaproj) { @@ -212,9 +212,9 @@ namespace Actions { } } - if (UserStore.state.userId === '') { - return false // Login not made - } + // if (UserStore.state.userId === '') { + // return false // Login not made + // } console.log('dbLoad', nametable, checkPending, 'userid=', UserStore.state.userId) diff --git a/src/store/Modules/UserStore.ts b/src/store/Modules/UserStore.ts index 04d0916..df997da 100644 --- a/src/store/Modules/UserStore.ts +++ b/src/store/Modules/UserStore.ts @@ -510,13 +510,15 @@ namespace Actions { // this.$router.push('/signin') } - async function setGlobal(loggedWithNetwork: boolean) { + async function setGlobal(isLogged: boolean) { state.isLogged = true console.log('state.isLogged') - GlobalStore.mutations.setleftDrawerOpen(localStorage.getItem(tools.localStorage.leftDrawerOpen) === 'true') - GlobalStore.mutations.setCategorySel(localStorage.getItem(tools.localStorage.categorySel)) + if (isLogged) { + 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() .then(() => { @@ -530,36 +532,37 @@ namespace Actions { console.log('*** autologin_FromLocalStorage ***') // INIT + let isLogged = false + UserStore.state.lang = tools.getItemLS(tools.localStorage.lang) const token = localStorage.getItem(tools.localStorage.token) - if (!token) { - return false + if (token) { + 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' - - console.log('************* autologin userId', userId) - - UserStore.mutations.setAuth(token) - - Mutations.mutations.authUser({ - userId, - username, - verified_email - }) - - await setGlobal(false) + await setGlobal(isLogged) console.log('autologin userId STATE ', state.userId) diff --git a/src/views/projects/proj-list/proj-list.ts b/src/views/projects/proj-list/proj-list.ts index 9d82863..1648b29 100644 --- a/src/views/projects/proj-list/proj-list.ts +++ b/src/views/projects/proj-list/proj-list.ts @@ -102,7 +102,7 @@ export default class ProjList extends Vue { 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 } @@ -357,7 +357,10 @@ export default class ProjList extends Vue { myobj.id_main_project = this.idProjAtt } else { 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)) { @@ -392,6 +395,8 @@ export default class ProjList extends Vue { public deselectAllRowstodo(item: ITodo, check, onlythis: boolean = false) { console.log('PROJ-LIST deselectAllRowstodo : ', item) + return false + // @ts-ignore for (const i in this.$refs.ctodo.$refs.single) { // @ts-ignore @@ -418,7 +423,7 @@ export default class ProjList extends Vue { } public deselectAllRowsproj(item: IProject, check, onlythis: boolean = false) { - // console.log('deselectAllRowsproj: ', item) + console.log('deselectAllRowsproj: ', item) for (const i in this.$refs.singleproject) { diff --git a/src/views/projects/proj-list/proj-list.vue b/src/views/projects/proj-list/proj-list.vue index 8128f22..731f2e8 100644 --- a/src/views/projects/proj-list/proj-list.vue +++ b/src/views/projects/proj-list/proj-list.vue @@ -176,14 +176,14 @@
-
- @@ -192,13 +192,13 @@
-
-
@@ -208,6 +208,7 @@