-
-
-
-
-
-
-
-
-
{{itemtodo.descr}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{percentageProgress}}%
- { model = val }"
- :readonly="!CanIModifyTodo"
- @save="aggiornaProgress"
- >
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
{{itemtodo.pos}}:
{{ itemtodo.descr }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ percentageProgress }}%
+ { model = val }"
+ :readonly="!CanIModifyTodo"
+ @save="aggiornaProgress"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/globalroutines/index.ts b/src/globalroutines/index.ts
index 782d89e..7fdaffa 100755
--- a/src/globalroutines/index.ts
+++ b/src/globalroutines/index.ts
@@ -5,15 +5,14 @@ export default async (context, cmd, table, data = null, id = '') => {
const descr = data !== null ? data.descr : ''
// console.log('globalroutines', cmd, table, descr, id)
return await indexdb(context, cmd, table, data, id)
- .then(ris => {
- setTimeout(() => {
- GlobalStore.state.connData.uploading_indexeddb = 0
- GlobalStore.state.connData.downloading_indexeddb = 0
- }, 1000)
- return ris
- }
-
- ).catch(err => {
+ .then((ris) => {
+ setTimeout(() => {
+ GlobalStore.state.connData.uploading_indexeddb = 0
+ GlobalStore.state.connData.downloading_indexeddb = 0
+ }, 1000)
+ return ris
+ }
+ ).catch((err) => {
setTimeout(() => {
GlobalStore.state.connData.uploading_indexeddb = (GlobalStore.state.connData.uploading_indexeddb === 1) ? -1 : GlobalStore.state.connData.uploading_indexeddb
GlobalStore.state.connData.downloading_indexeddb = (GlobalStore.state.connData.downloading_indexeddb === 1) ? -1 : GlobalStore.state.connData.downloading_indexeddb
diff --git a/src/globalroutines/indexdb.ts b/src/globalroutines/indexdb.ts
index 2d36551..c9154ba 100755
--- a/src/globalroutines/indexdb.ts
+++ b/src/globalroutines/indexdb.ts
@@ -67,7 +67,7 @@ async function readfromIndexDbToState(context, table) {
} else {
const arrris = tools.setArrayMainByTable(table, reccat)
- // console.log('************ ARRAYS SALVATI IN MEMORIA ', table, arrris)
+ console.log('************ ARRAYS SALVATI IN MEMORIA ', table, arrris)
}
diff --git a/src/layouts/menuone/menuOne.ts b/src/layouts/menuone/menuOne.ts
index bd3a334..1bd845b 100755
--- a/src/layouts/menuone/menuOne.ts
+++ b/src/layouts/menuone/menuOne.ts
@@ -60,7 +60,7 @@ export default class MenuOne extends Vue {
return text
}
- get static_data(){
+ get static_data() {
return static_data
}
@@ -80,6 +80,10 @@ export default class MenuOne extends Vue {
menu += ' isAdmin'
if (elem.onlyManager)
menu += ' isManager'
+ if (elem.onlySocioResidente)
+ menu += ' isSocioResidente'
+ if (elem.onlyDepartment)
+ menu += ' isDepartment'
if (elem.onlyTutor)
menu += ' isTutor'
if (elem.onlyTraduttrici)
diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts
index fa50872..22243aa 100755
--- a/src/model/GlobalStore.ts
+++ b/src/model/GlobalStore.ts
@@ -2,7 +2,7 @@ import { IAction } from '@src/model/Projects'
import { Component } from 'vue-router/types/router'
import { lists } from '@src/store/Modules/lists'
import { IPaymentType } from '@src/model/UserStore'
-import { ICart, IProducer, IProduct, IShareWithUs, IStorehouse } from '@src/model/Products'
+import { ICart, IDepartment, IProducer, IProduct, IShareWithUs, IStorehouse } from '@src/model/Products'
export interface IPost {
title: string
@@ -98,6 +98,11 @@ export interface ICalZoom {
note?: string
}
+export interface IGroup {
+ _id?: any
+ descr?: string
+}
+
export interface IMailinglist {
name?: string
surname?: string
@@ -175,7 +180,9 @@ export interface IGlobalState {
calzoom: ICalZoom[],
producers: IProducer[],
storehouses: IStorehouse[],
+ departments: IDepartment[],
sharewithus: IShareWithUs[],
+ groups: IGroup[],
autoplaydisc: number
}
@@ -208,6 +215,8 @@ export interface IListRoutes {
onlyAdmin?: boolean
onlyif_logged?: boolean
onlyManager?: boolean
+ onlySocioResidente?: boolean
+ onlyDepartment?: boolean
onlyTutor?: boolean
onlyTraduttrici?: boolean
extraclass?: string
diff --git a/src/model/Products.ts b/src/model/Products.ts
index 0a36c2d..f83097e 100755
--- a/src/model/Products.ts
+++ b/src/model/Products.ts
@@ -70,6 +70,13 @@ export interface IProducer {
website?: string,
}
+export interface IDepartment {
+ _id?: any
+ idapp?: string
+ name?: string,
+ username?: string,
+}
+
export interface IStorehouse {
_id?: any
idapp?: string
@@ -89,6 +96,7 @@ export interface ICart {
userId?: string
totalQty?: number
totalPrice?: number
+ department?: string
items?: IBaseOrder[]
note?: string
modify_at?: Date
@@ -101,6 +109,7 @@ export interface IOrderCart {
userId?: string
totalQty?: number
totalPrice?: number
+ department?: string
items?: IBaseOrder[]
status?: number
note?: string
diff --git a/src/model/Projects.ts b/src/model/Projects.ts
index d9b2e5e..886eecb 100755
--- a/src/model/Projects.ts
+++ b/src/model/Projects.ts
@@ -26,7 +26,6 @@ export interface IProject {
completed_at?: Date
expiring_at?: Date
enableExpiring?: boolean
- id_prev?: string
modified?: boolean
favourite?: number
pos?: number
@@ -47,6 +46,9 @@ export interface IProject {
privacywrite?: string
themecolor?: string
themebgcolor?: string
+ groupId?: string
+ respUsername?: string
+ viceRespUsername?: string
}
export interface IProjectsState {
diff --git a/src/model/Todos.ts b/src/model/Todos.ts
index a02f268..990a712 100755
--- a/src/model/Todos.ts
+++ b/src/model/Todos.ts
@@ -12,7 +12,6 @@ export interface ITodo {
completed_at?: Date,
expiring_at?: Date,
enableExpiring?: boolean,
- id_prev?: string,
modified?: boolean,
pos?: number,
order?: number,
@@ -25,6 +24,7 @@ export interface ITodo {
start_date?: Date
themecolor?: string
themebgcolor?: string
+ assignedToUsers?: string[]
}
export interface IParamTodo {
diff --git a/src/model/UserStore.ts b/src/model/UserStore.ts
index 923ca46..f79c032 100755
--- a/src/model/UserStore.ts
+++ b/src/model/UserStore.ts
@@ -120,6 +120,7 @@ export interface IUserState {
isLogged?: boolean
isAdmin?: boolean
isManager?: boolean
+ isDepartment?: boolean
isTutor?: boolean
isZoomeri?: boolean
isTraduttrici?: boolean
diff --git a/src/rootgen/admin/departments/departments.scss b/src/rootgen/admin/departments/departments.scss
new file mode 100755
index 0000000..e69de29
diff --git a/src/rootgen/admin/departments/departments.ts b/src/rootgen/admin/departments/departments.ts
new file mode 100755
index 0000000..3a31186
--- /dev/null
+++ b/src/rootgen/admin/departments/departments.ts
@@ -0,0 +1,44 @@
+import Vue from 'vue'
+import { Component, Prop } from 'vue-property-decorator'
+import { GlobalStore, UserStore } from '@store'
+
+import { tools } from '../../../store/Modules/tools'
+import { toolsext } from '../../../store/Modules/toolsext'
+import { static_data } from '../../../db/static_data'
+import { Screen } from 'quasar'
+
+import { colTabledepartments } from '@src/store/Modules/fieldsTable'
+
+import { CImgText } from '../../../components/CImgText/index'
+import { CCard, CGridTableRec, CMyPage, CTitleBanner } from '@components'
+import MixinMetaTags from '../../../mixins/mixin-metatags'
+import MixinBase from '@src/mixins/mixin-base'
+
+@Component({
+ mixins: [MixinBase],
+ components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec }
+})
+export default class StorehousePage extends MixinMetaTags {
+ public pagination = {
+ sortBy: 'name',
+ descending: false,
+ page: 2,
+ rowsPerPage: 5
+ // rowsNumber: xx if getting data from a server
+ }
+
+ public selected = []
+ public dataPages = []
+
+ get getcoldepartments() {
+ return colTabledepartments
+ }
+
+ public meta() {
+ return tools.metafunc(this)
+ }
+
+ get static_data() {
+ return static_data
+ }
+}
diff --git a/src/rootgen/admin/departments/departments.vue b/src/rootgen/admin/departments/departments.vue
new file mode 100755
index 0000000..35978ad
--- /dev/null
+++ b/src/rootgen/admin/departments/departments.vue
@@ -0,0 +1,27 @@
+
+
+ {{ setmeta({
+ title: 'Uffici',
+ description: "",
+ keywords: '' } ) }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/rootgen/admin/groups/groups.scss b/src/rootgen/admin/groups/groups.scss
new file mode 100755
index 0000000..e69de29
diff --git a/src/rootgen/admin/groups/groups.ts b/src/rootgen/admin/groups/groups.ts
new file mode 100755
index 0000000..33d8b9a
--- /dev/null
+++ b/src/rootgen/admin/groups/groups.ts
@@ -0,0 +1,44 @@
+import Vue from 'vue'
+import { Component, Prop } from 'vue-property-decorator'
+import { GlobalStore, UserStore } from '@store'
+
+import { tools } from '../../../store/Modules/tools'
+import { toolsext } from '../../../store/Modules/toolsext'
+import { static_data } from '../../../db/static_data'
+import { Screen } from 'quasar'
+
+import { colTablegroups } from '@src/store/Modules/fieldsTable'
+
+import { CImgText } from '../../../components/CImgText/index'
+import { CCard, CGridTableRec, CMyPage, CTitleBanner } from '@components'
+import MixinMetaTags from '../../../mixins/mixin-metatags'
+import MixinBase from '@src/mixins/mixin-base'
+
+@Component({
+ mixins: [MixinBase],
+ components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec }
+})
+export default class GroupPage extends MixinMetaTags {
+ public pagination = {
+ sortBy: 'descr',
+ descending: false,
+ page: 2,
+ rowsPerPage: 5
+ // rowsNumber: xx if getting data from a server
+ }
+
+ public selected = []
+ public dataPages = []
+
+ get getcolgroups() {
+ return colTablegroups
+ }
+
+ public meta() {
+ return tools.metafunc(this)
+ }
+
+ get static_data() {
+ return static_data
+ }
+}
diff --git a/src/rootgen/admin/groups/groups.vue b/src/rootgen/admin/groups/groups.vue
new file mode 100755
index 0000000..cbb3fb1
--- /dev/null
+++ b/src/rootgen/admin/groups/groups.vue
@@ -0,0 +1,27 @@
+
+
+ {{ setmeta({
+ title: 'Gruppi',
+ description: "",
+ keywords: '' } ) }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/rootgen/admin/orders/orders.scss b/src/rootgen/admin/orders/orders.scss
new file mode 100755
index 0000000..e69de29
diff --git a/src/rootgen/admin/orders/orders.ts b/src/rootgen/admin/orders/orders.ts
new file mode 100755
index 0000000..0f5b7e2
--- /dev/null
+++ b/src/rootgen/admin/orders/orders.ts
@@ -0,0 +1,44 @@
+import Vue from 'vue'
+import { Component, Prop } from 'vue-property-decorator'
+import { GlobalStore, UserStore } from '@store'
+
+import { tools } from '../../../store/Modules/tools'
+import { toolsext } from '../../../store/Modules/toolsext'
+import { static_data } from '../../../db/static_data'
+import { Screen } from 'quasar'
+
+import { getcolorderscart } from '@src/store/Modules/fieldsTable'
+
+import { CImgText } from '../../../components/CImgText/index'
+import { CCard, CGridTableRec, CMyPage, CTitleBanner } from '@components'
+import MixinMetaTags from '../../../mixins/mixin-metatags'
+import MixinBase from '@src/mixins/mixin-base'
+
+@Component({
+ mixins: [MixinBase],
+ components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec }
+})
+export default class StorehousePage extends MixinMetaTags {
+ public pagination = {
+ sortBy: 'name',
+ descending: false,
+ page: 2,
+ rowsPerPage: 5
+ // rowsNumber: xx if getting data from a server
+ }
+
+ public selected = []
+ public dataPages = []
+
+ get getcolorderscart() {
+ return getcolorderscart
+ }
+
+ public meta() {
+ return tools.metafunc(this)
+ }
+
+ get static_data() {
+ return static_data
+ }
+}
diff --git a/src/rootgen/admin/orders/orders.vue b/src/rootgen/admin/orders/orders.vue
new file mode 100755
index 0000000..25ef95e
--- /dev/null
+++ b/src/rootgen/admin/orders/orders.vue
@@ -0,0 +1,28 @@
+
+
+ {{ setmeta({
+ title: 'Ordini Ufficio',
+ description: "",
+ keywords: '' } ) }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/statics/lang/it.js b/src/statics/lang/it.js
index 581f4bf..ea209e7 100755
--- a/src/statics/lang/it.js
+++ b/src/statics/lang/it.js
@@ -220,6 +220,7 @@ const msg_it = {
options: 'Opzioni',
},
dashboard: {
+ info: 'Info',
commento: 'Commento',
azione: 'Azione',
inviato: 'Inviato',
@@ -416,6 +417,9 @@ const msg_it = {
non_verificato: "Non Verificato",
forgetpassword: "Password dimenticata?",
modificapassword: "Modifica Password",
+ resp: "Responsabile",
+ viceResp: "Vice Rrsponsabile",
+ userslist: "Lista Persone",
err: {
required: 'è richiesto',
email: 'inserire una email valida',
@@ -534,7 +538,8 @@ const msg_it = {
privacywrite: 'Chi lo puo modificare:',
totalphases: 'Totale Fasi',
themecolor: 'Tema Colore',
- themebgcolor: 'Tema Colore Sfondo'
+ themebgcolor: 'Tema Colore Sfondo',
+ group: 'Gruppo'
},
where: {
code: 'Id',
diff --git a/src/store/Modules/ApiTables.ts b/src/store/Modules/ApiTables.ts
index 92d53f3..0965a06 100755
--- a/src/store/Modules/ApiTables.ts
+++ b/src/store/Modules/ApiTables.ts
@@ -8,7 +8,7 @@ import { toolsext } from '@src/store/Modules/toolsext'
export const OtherTables = ['categories', 'config', 'swmsg']
export const MainTables = ['todos', 'projects']
-export const allMethod = ['sync_post_', 'sync_patch_', 'delete_']
+export const allMethod = ['sync_post_', 'sync_patch_', 'delete_', 'hide_']
export function getLinkByTableName(nametable) {
if (nametable === 'todos') {
@@ -24,9 +24,11 @@ export const DB = {
CMD_SYNC: 'sync',
CMD_SYNC_NEW: 'sync-new',
CMD_DELETE: 'sync-delete',
+ CMD_HIDE: 'sync-hide',
TABLE_SYNC_POST: 'sync_post_',
TABLE_SYNC_PATCH: 'sync_patch_',
- TABLE_DELETE: 'delete_'
+ TABLE_DELETE: 'delete_',
+ TABLE_HIDE: 'hide_'
}
export function allTables() {
@@ -82,7 +84,7 @@ async function dbDeleteItem(call, item) {
call = '/' + call
- const res = await Api.SendReq(call + item._id, 'DELETE', item)
+ const res = await Api.SendReq(call + item._id, 'DELETE', null)
.then((myres) => {
console.log('dbdeleteItem to the Server')
return myres
@@ -96,6 +98,37 @@ async function dbDeleteItem(call, item) {
}
}
+async function dbHideItem(call, item) {
+
+ if (!('serviceWorker' in navigator)) {
+ // console.log('dbdeleteItem', item)
+ if (UserStore.getters.isUserInvalid) {
+ return false
+ } // Login not made
+
+ item = {
+ ...item,
+ hide: true
+ }
+
+ console.log('dbHideItem', item)
+
+ call = '/' + call
+
+ const res = await Api.SendReq(call + item._id + '/true', 'DELETE', null)
+ .then((myres) => {
+ console.log('dbHideItem to the Server')
+ return myres
+ })
+ .catch((error) => {
+ UserStore.mutations.setErrorCatch(error)
+ return UserStore.getters.getServerCode
+ })
+
+ return res
+ }
+}
+
async function Sync_Execute(cmd, tablesync, nametab, method, item: ITodo, id, msg: String) {
// Send to Server to Sync
@@ -105,7 +138,7 @@ async function Sync_Execute(cmd, tablesync, nametab, method, item: ITodo, id, ms
}
let cmdSw = cmd
- if ((cmd === DB.CMD_SYNC_NEW) || (cmd === DB.CMD_DELETE)) {
+ if ((cmd === DB.CMD_SYNC_NEW) || (cmd === DB.CMD_DELETE) || (cmd === DB.CMD_HIDE)) {
cmdSw = DB.CMD_SYNC
}
@@ -161,7 +194,7 @@ async function Sync_Execute(cmd, tablesync, nametab, method, item: ITodo, id, ms
}
}
-async function Sync_ExecuteCmd(cmd, nametab: string, method, item: ITodo, id, msg: String) {
+async function Sync_ExecuteCmd(cmd, nametab: string, method, item: ITodo, id, msg: string) {
// Send to Server to Sync
let tablesync = ''
@@ -171,6 +204,8 @@ async function Sync_ExecuteCmd(cmd, nametab: string, method, item: ITodo, id, ms
tablesync = DB.TABLE_SYNC_PATCH + nametab
} else if (method === 'DELETE') {
tablesync = DB.TABLE_DELETE + nametab
+ } else if (method === 'HIDE') {
+ tablesync = DB.TABLE_HIDE + nametab
}
const risdata = await Sync_Execute(cmd, tablesync, nametab, method, item, id, msg)
@@ -181,6 +216,8 @@ async function Sync_ExecuteCmd(cmd, nametab: string, method, item: ITodo, id, ms
}
} else if (cmd === DB.CMD_DELETE) {
await dbDeleteItem(nametab, item)
+ } else if (cmd === DB.CMD_HIDE) {
+ await dbHideItem(nametab, item)
}
return risdata
@@ -194,6 +231,10 @@ export function Sync_DeleteItem(nametab: string, item, id) {
Sync_ExecuteCmd(DB.CMD_DELETE, nametab, 'DELETE', item, id, '')
}
+export function Sync_HideItem(nametab: string, item, id) {
+ Sync_ExecuteCmd(DB.CMD_HIDE, nametab, 'HIDE', item, id, '')
+}
+
export async function aftercalling(ris, checkPending: boolean, nametabindex: string) {
if (ris.status !== 200) {
@@ -387,13 +428,14 @@ function setmodifiedIfchanged(recOut, recIn, field) {
}
export async function table_ModifyRecord(nametable, myitem, listFieldsToChange, field) {
+ console.log('table_ModifyRecord ... ', nametable)
if (myitem === null) {
return new Promise((resolve, reject) => {
resolve()
})
}
- console.log('--> table_ModifyRecord', nametable, myitem.descr)
+ // console.log('--> table_ModifyRecord', nametable, myitem.descr)
if ((field === 'status') && (nametable === 'todos') && (myitem.status === tools.Status.COMPLETED)) {
myitem.completed_at = tools.getDateNow()
@@ -412,8 +454,10 @@ export async function table_ModifyRecord(nametable, myitem, listFieldsToChange,
setmodifiedIfchanged(miorec, myobjsaved, myfield)
})
+ console.log( ' ... 4 ')
+
if (miorec.modified) {
- // console.log(' ' + nametable + ' MODIFICATO! ', miorec.descr, miorec.pos, 'SALVALO SULLA IndexedDB')
+ console.log(' ' + nametable + ' MODIFICATO! ', miorec.descr, miorec.pos, 'SALVALO SULLA IndexedDB')
miorec.modify_at = tools.getDateNow()
miorec.modified = false
@@ -429,7 +473,7 @@ export async function table_ModifyRecord(nametable, myitem, listFieldsToChange,
return Sync_SaveItem(nametable, 'PATCH', miorec)
})
- // } else {
+ // } else {
// console.log(' ', miorec.descr, 'NON MODIF!')
}
}
@@ -448,3 +492,18 @@ export function table_DeleteRecord(nametable, myobjtrov, id) {
Sync_DeleteItem(nametable, myobjtrov, id)
}
+
+export function table_HideRecord(nametable, myobjtrov, id) {
+
+ const mymodule = tools.getModulesByTable(nametable)
+
+ // 1) Delete from the Todos Array
+ mymodule.mutations.deletemyitem(myobjtrov)
+
+ // 2) Delete from the IndexedDb
+ globalroutines(null, 'delete', nametable, null, id)
+
+ // 3) Hide from the Server (call)
+ Sync_DeleteItem(nametable, myobjtrov, id)
+
+}
diff --git a/src/store/Modules/GlobalStore.ts b/src/store/Modules/GlobalStore.ts
index d5fcb3b..0d96904 100755
--- a/src/store/Modules/GlobalStore.ts
+++ b/src/store/Modules/GlobalStore.ts
@@ -83,7 +83,9 @@ const state: IGlobalState = {
mypage: [],
calzoom: [],
producers: [],
+ groups: [],
storehouses: [],
+ departments: [],
sharewithus: []
}
@@ -133,8 +135,7 @@ namespace Getters {
const config = state.arrConfig.find((item) => item._id === costanti.CONFIG_ID_SHOW_TYPE_TODOS)
if (config) {
return config.value
- }
- else {
+ } else {
return ''
}
@@ -205,6 +206,10 @@ namespace Getters {
return GlobalStore.state.producers
else if (table === 'storehouses')
return GlobalStore.state.storehouses
+ else if (table === 'groups')
+ return GlobalStore.state.groups
+ else if (table === 'departments')
+ return GlobalStore.state.departments
else if (table === 'sharewithus')
return GlobalStore.state.sharewithus
else if (table === 'paymenttypes')
@@ -1042,7 +1047,7 @@ namespace Actions {
})
}
- async function GetFlotta(context, { riga, col_prima, col_ultima}) {
+ async function GetFlotta(context, { riga, col_prima, col_ultima }) {
console.log('GetFlotta')
const mydata = {
@@ -1092,11 +1097,13 @@ namespace Actions {
GlobalStore.state.calzoom = (res.data.calzoom) ? [...res.data.calzoom] : []
GlobalStore.state.producers = (res.data.producers) ? [...res.data.producers] : []
GlobalStore.state.storehouses = (res.data.storehouses) ? [...res.data.storehouses] : []
+ GlobalStore.state.groups = (res.data.groups) ? [...res.data.groups] : []
+ GlobalStore.state.departments = (res.data.departments) ? [...res.data.departments] : []
// console.log('res.data.cart', res.data.cart)
if (res.data.cart)
- Products.state.cart = (res.data.cart) ? {...res.data.cart} : {}
+ Products.state.cart = (res.data.cart) ? { ...res.data.cart } : {}
else
- Products.state.cart = { items: [], totalPrice: 0, totalQty: 0, userId: ''}
+ Products.state.cart = { items: [], totalPrice: 0, totalQty: 0, userId: '' }
Products.state.orders = (res.data.orders) ? [...res.data.orders] : []
@@ -1134,8 +1141,14 @@ namespace Actions {
return true
- })
- .catch((error) => {
+ }).then((res) => {
+
+ if (static_data.functionality.ENABLE_PROJECTS_LOADING)
+ Projects.actions.dbLoad({ checkPending: false, onlyiffirsttime: true })
+
+ return res
+
+ }).catch((error) => {
console.log('error dbLoad', error)
// UserStore.mutations.setErrorCatch(error)
return new Types.AxiosError(serv_constants.RIS_CODE_ERR, null, tools.ERR_GENERICO, error)
@@ -1222,9 +1235,15 @@ namespace Actions {
static_data.routes = static_data.routes.sort((a, b) => a.order - b.order)
if (tools.sito_online(false)) {
- router.addRoutes([...arrpagesroute, last])
+ for (const r of arrpagesroute) {
+ router.addRoute(r)
+ }
+ router.addRoute(last)
+ // router.addRoutes([...arrpagesroute, last])
} else {
- router.addRoutes([sito_offline, last])
+ router.addRoute(sito_offline)
+ router.addRoute(last)
+ // router.addRoutes([sito_offline, last])
this.$router.replace('/sito_offline')
}
}
diff --git a/src/store/Modules/Products.ts b/src/store/Modules/Products.ts
index 63d877d..bf292b5 100755
--- a/src/store/Modules/Products.ts
+++ b/src/store/Modules/Products.ts
@@ -75,9 +75,9 @@ namespace Getters {
const getOrdersCart = b.read((stateparamf: IProductsState) => (tipoord: string): IOrderCart[] => {
if (tipoord === 'incorso')
- return state.orders.filter((rec) => rec.status <= shared_consts.OrderStatus.CHECKOUT_CONFIRMED)
+ return state.orders.filter((rec) => rec.status <= shared_consts.OrderStatus.CHECKOUT_SENT)
else
- return state.orders.filter((rec) => rec.status < shared_consts.OrderStatus.RECEIVED && rec.status > shared_consts.OrderStatus.CHECKOUT_CONFIRMED)
+ return state.orders.filter((rec) => rec.status < shared_consts.OrderStatus.RECEIVED && rec.status > shared_consts.OrderStatus.CHECKOUT_SENT)
}, 'getOrdersCart')
const existProductInCart = b.read((stateparamf: IProductsState) => (idproduct): boolean => {
@@ -218,14 +218,14 @@ namespace Actions {
return ris
}
- async function loadCart(context) {
+ async function loadOrders(context) {
- console.log('loadCart')
+ console.log('loadOrders')
if (!static_data.functionality.ENABLE_ECOMMERCE)
return null
- console.log('loadCart', 'userid=', UserStore.state.my._id)
+ console.log('loadOrders', 'userid=', UserStore.state.my._id)
// if (UserStore.state.my._id === '') {
// return new Types.AxiosError(0, null, 0, '')
@@ -244,7 +244,7 @@ namespace Actions {
return res
})
.catch((error) => {
- console.log('error loadCart', error)
+ console.log('error loadOrders', error)
UserStore.mutations.setErrorCatch(error)
return new Types.AxiosError(serv_constants.RIS_CODE_ERR, null, tools.ERR_GENERICO, error)
})
@@ -349,7 +349,7 @@ namespace Actions {
ris = await Api.SendReq('/cart/' + UserStore.state.my._id + '/cartstatus', 'POST', { cart_id, status })
.then((res) => {
- if (res.data.status === shared_consts.OrderStatus.CHECKOUT_CONFIRMED) {
+ if (res.data.status === shared_consts.OrderStatus.CHECKOUT_SENT) {
ProductsModule.state.cart = {}
if (res.data.orders)
Products.state.orders = res.data.orders
@@ -366,13 +366,13 @@ namespace Actions {
}
export const actions = {
- // loadCart: b.dispatch(loadCart),
loadProduct: b.dispatch(loadProduct),
loadProducts: b.dispatch(loadProducts),
addToCart: b.dispatch(addToCart),
addSubQtyToItem: b.dispatch(addSubQtyToItem),
UpdateStatusCart: b.dispatch(UpdateStatusCart),
removeFromCart: b.dispatch(removeFromCart),
+ loadOrders: b.dispatch(loadOrders),
}
}
diff --git a/src/store/Modules/Projects.ts b/src/store/Modules/Projects.ts
index d37abfe..87c562b 100755
--- a/src/store/Modules/Projects.ts
+++ b/src/store/Modules/Projects.ts
@@ -27,8 +27,8 @@ const stateglob: IProjectsState = {
visuLastCompleted: 10
}
-const listFieldsToChange: string [] = ['descr', 'longdescr', 'hoursplanned', 'hoursleft', 'hoursworked', 'id_parent', 'statusproj',
- 'category', 'expiring_at', 'priority', 'id_prev', 'pos', 'enableExpiring', 'progressCalc', 'live_url', 'test_url',
+const listFieldsToChange: string [] = ['descr', 'respUsername', 'viceRespUsername', 'longdescr', 'hoursplanned', 'hoursleft', 'hoursworked', 'id_parent', 'statusproj',
+ 'category', 'expiring_at', 'priority', 'pos', 'groupId', 'enableExpiring', 'progressCalc', 'live_url', 'test_url',
'begin_development', 'begin_test', 'actualphase', 'totalphases', 'hoursweeky_plannedtowork', 'endwork_estimate',
'privacyread', 'privacywrite', 'id_main_project', 'typeproj', 'favourite', 'themecolor', 'themebgcolor']
@@ -62,12 +62,14 @@ function getproj(projects, idproj, tipoproj: string) {
let ris = null
if (tipoproj === RouteNames.myprojects)
- ris = projects.filter((proj) => (proj.id_parent === idproj) && (proj.userId === UserStore.state.my._id) && (proj.privacyread === Privacy.onlyme))
+ ris = projects.filter((proj) => (proj.id_parent === idproj) && (proj.userId === UserStore.state.my._id))
else if (tipoproj === RouteNames.projectsshared)
ris = projects.filter((proj) => (proj.id_parent === idproj) && (proj.userId === UserStore.state.my._id) && (proj.privacyread !== Privacy.onlyme))
else if (tipoproj === RouteNames.projectsall)
ris = projects.filter((proj) => (proj.id_parent === idproj) && (proj.userId !== UserStore.state.my._id) )
+ if (ris)
+ ris = ris.sort((a, b) => a.pos - b.pos)
// console.log('idproj', idproj, 'projects', projects, 'getproj', tipoproj, 'ris=', ris)
return ris
@@ -93,7 +95,6 @@ namespace Getters {
category: '',
// expiring_at: tomorrow,
enableExpiring: false,
- id_prev: '',
pos: 0,
modified: false,
live_url: '',
@@ -111,7 +112,10 @@ namespace Getters {
hoursweeky_plannedtowork: 0,
endwork_estimate: tools.getDateNull(),
themecolor: '',
- themebgcolor: ''
+ themebgcolor: '',
+ groupId: '',
+ respUsername: '',
+ viceRespUsername: ''
}
return obj
@@ -156,6 +160,8 @@ namespace Getters {
}, 'getDescrById')
const getRecordById = b.read((state: IProjectsState) => (id: string): IProject => {
+ // console.log('state.projects', state.projects)
+ // console.log('find', state.projects.find((item) => item._id === id))
if (state.projects) {
return state.projects.find((item) => item._id === id)
}
@@ -293,6 +299,8 @@ namespace Actions {
// return false // Login not made
// }
+ console.log('UserStore.state.my', UserStore.state.my)
+
console.log('dbLoad', nametable, checkPending, 'userid=', UserStore.state.my._id)
const ris = await Api.SendReq('/projects/' + UserStore.state.my._id, 'GET', null)
@@ -333,15 +341,19 @@ namespace Actions {
console.log('myobjtrov', myobjtrov.descr)
if (!!myobjtrov) {
+ /*
const myobjnext = tools.getElemPrevById(myarr, myobjtrov._id)
if (!!myobjnext) {
- myobjnext.id_prev = myobjtrov.id_prev
+ myobjnext.pos = myobjtrov.pos + 1
myobjnext.modified = true
- await modify(context, { myitem: myobjnext, field: 'id_prev' })
+ await modify(context, { myitem: myobjnext, field: 'pos' })
}
- ApiTables.table_DeleteRecord(nametable, myobjtrov, idobj)
+ */
+
+ // ApiTables.table_DeleteRecord(nametable, myobjtrov, idobj)
+ ApiTables.table_HideRecord(nametable, myobjtrov, idobj)
}
}
@@ -365,13 +377,13 @@ namespace Actions {
if (atfirst) {
console.log('INSERT AT THE TOP')
elemtochange = tools.getFirstList(myarr)
- objproj.id_prev = ApiTables.LIST_START
+ objproj.pos = 10
} else {
console.log('INSERT AT THE BOTTOM')
// INSERT AT THE BOTTOM , so GET LAST ITEM
const lastelem = tools.getLastListNotCompleted(nametable, objproj.id_parent, this.tipoProj)
- objproj.id_prev = (!!lastelem) ? lastelem._id : ApiTables.LIST_START
+ objproj.pos = (!!lastelem) ? lastelem.pos + 10 : 10
}
objproj.modified = false
@@ -382,9 +394,9 @@ namespace Actions {
let field = ''
if (atfirst) { // update also the last elem
if (!!elemtochange) {
- elemtochange.id_prev = id
+ elemtochange.pos = objproj.pos
console.log('elemtochange', elemtochange)
- field = 'id_prev'
+ field = 'pos'
// Modify the other record
await modify(context, { myitem: elemtochange, field })
@@ -429,7 +441,6 @@ namespace Actions {
dest_obj.id_parent = dest._id
dest_obj.id_main_project = dest.id_main_project
dest_obj.modified = true
- dest_obj.id_prev = null
GlobalStore.state.lastaction.type = 0
diff --git a/src/store/Modules/Todos.ts b/src/store/Modules/Todos.ts
index 3ca18bc..583e0e4 100755
--- a/src/store/Modules/Todos.ts
+++ b/src/store/Modules/Todos.ts
@@ -32,7 +32,7 @@ const state: ITodosState = {
visuLastCompleted: 10
}
-const listFieldsToChange: string [] = ['descr', 'statustodo', 'category', 'expiring_at', 'priority', 'id_prev', 'pos', 'enableExpiring', 'progress', 'phase', 'assigned_to_userId', 'hoursplanned', 'hoursworked', 'start_date', 'completed_at', 'themecolor', 'themebgcolor']
+const listFieldsToChange: string [] = ['descr', 'statustodo', 'category', 'expiring_at', 'priority', 'pos', 'enableExpiring', 'progress', 'phase', 'assigned_to_userId', 'hoursplanned', 'hoursworked', 'start_date', 'completed_at', 'themecolor', 'themebgcolor', 'assignedToUsers']
const b = storeBuilder.module
('Todos', state)
const stateGetter = b.state()
@@ -77,7 +77,6 @@ namespace Getters {
category: '',
expiring_at: tomorrow,
enableExpiring: false,
- id_prev: '',
pos: 0,
modified: false,
progress: 0,
@@ -88,7 +87,8 @@ namespace Getters {
hoursworked: 0,
start_date: tools.getDateNull(),
themecolor: 'blue',
- themebgcolor: 'white'
+ themebgcolor: 'white',
+ assignedToUsers: []
}
// return this.copy(objtodo)
return objtodo
@@ -104,6 +104,9 @@ namespace Getters {
arrout = []
}
+ if (arrout)
+ arrout = arrout.sort((a, b) => a.pos - b.pos)
+
// return tools.mapSort(arrout)
return arrout
}, 'items_dacompletare')
@@ -126,7 +129,10 @@ namespace Getters {
arrout = []
}
- console.log('arrout', arrout)
+ if (arrout)
+ arrout = arrout.sort((a, b) => a.pos - b.pos)
+
+ // console.log('arrout', arrout)
return arrout
// return tools.mapSort(arrout)
@@ -309,15 +315,18 @@ namespace Actions {
console.log('myobjtrov', myobjtrov.descr)
if (!!myobjtrov) {
+ /*
const myobjnext = tools.getElemPrevById(myarr, myobjtrov._id)
if (!!myobjnext) {
- myobjnext.id_prev = myobjtrov.id_prev
+ myobjnext.pos = myobjtrov.pos + 1
myobjnext.modified = true
- await modify(context, { myitem: myobjnext, field: 'id_prev' })
+ await modify(context, { myitem: myobjnext, field: 'pos' })
}
- ApiTables.table_DeleteRecord(nametable, myobjtrov, idobj)
+ */
+
+ ApiTables.table_HideRecord(nametable, myobjtrov, idobj)
}
}
}
@@ -336,13 +345,13 @@ namespace Actions {
if (atfirst) {
console.log('INSERT AT THE TOP')
elemtochange = tools.getFirstList(myarr)
- objtodo.id_prev = ApiTables.LIST_START
+ objtodo.pos = 10
} else {
console.log('INSERT AT THE BOTTOM')
// INSERT AT THE BOTTOM , so GET LAST ITEM
const lastelem = tools.getLastListNotCompleted(nametable, objtodo.category, this.tipoProj)
- objtodo.id_prev = (!!lastelem) ? lastelem._id : ApiTables.LIST_START
+ objtodo.pos = (!!lastelem) ? lastelem.pos + 10 : 10
}
objtodo.modified = false
@@ -353,9 +362,9 @@ namespace Actions {
let field = ''
if (atfirst) { // update also the last elem
if (!!elemtochange) {
- elemtochange.id_prev = id
+ elemtochange.pos = objtodo.pos
console.log('elemtochange', elemtochange)
- field = 'id_prev'
+ field = 'pos'
// Modify the other record
await modify(context, { myitem: elemtochange, field })
@@ -444,7 +453,7 @@ namespace Actions {
if (!!dest_obj) {
dest_obj.category = action._id
dest_obj.modified = true
- dest_obj.id_prev = null
+ dest_obj.pos = 1
GlobalStore.state.lastaction.type = 0
diff --git a/src/store/Modules/UserStore.ts b/src/store/Modules/UserStore.ts
index 1ba98e7..cf48b24 100755
--- a/src/store/Modules/UserStore.ts
+++ b/src/store/Modules/UserStore.ts
@@ -57,6 +57,7 @@ export const DefaultUser: IUserFields = {
userId: '',
items: [],
totalPrice: 0,
+ department: '',
totalQty: 0,
note: '',
}
@@ -103,6 +104,7 @@ const state: IUserState = {
isLogged: false,
isAdmin: false,
isManager: false,
+ isDepartment: false,
isTutor: false,
isZoomeri: false,
isTraduttrici: false,
@@ -341,6 +343,7 @@ namespace Mutations {
mystate.isManager = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Manager.value)
mystate.isTutor = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Tutor.value)
mystate.isZoomeri = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Zoomeri.value)
+ mystate.isDepartment = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Department.value)
mystate.isTeacher = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Teacher.value)
mystate.isTraduttrici = tools.isBitActive(mystate.my.perm, shared_consts.Permissions.Traduttrici.value)
@@ -897,6 +900,7 @@ namespace Actions {
GlobalStore.mutations.setCategorySel(localStorage.getItem(tools.localStorage.categorySel))
GlobalStore.actions.checkUpdates()
+
}
const isok = await GlobalStore.actions.loadAfterLogin()
diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts
index 6414305..6e299e3 100755
--- a/src/store/Modules/fieldsTable.ts
+++ b/src/store/Modules/fieldsTable.ts
@@ -174,11 +174,36 @@ export const colTableProducer = [
AddCol({ name: 'website', label_trans: 'producer.website' }),
]
+export const getcolorderscart = [
+ AddCol({ name: 'numorder', label_trans: 'order.numorder' }),
+ AddCol({ name: 'created_at', label_trans: 'order.created_at', fieldtype: tools.FieldType.date }),
+ AddCol({ name: 'status', label_trans: 'order.status' }),
+ AddCol({ name: 'items', label_trans: 'order.items' }),
+ AddCol({ name: 'userId', label_trans: 'order.users', fieldtype: tools.FieldType.select, jointable: 'users' }),
+ AddCol({ name: 'note', label_trans: 'order.note' }),
+]
+
export const colTableShareWithUs = [
AddCol({ name: 'description', label_trans: 'share.description' }),
AddCol({ name: 'numshared', label_trans: 'share.numshared', fieldtype: tools.FieldType.number }),
AddCol({ name: 'rating', label_trans: 'share.rating', fieldtype: tools.FieldType.number }),
]
+export const colTablegroups = [
+ AddCol({ name: 'descr', label_trans: 'share.description' }),
+ AddCol({ name: 'resp', label_trans: 'reg.resp' }),
+ AddCol({ name: 'viceResp', label_trans: 'reg.viceResp' }),
+ AddCol({
+ name: 'assignedToUsers',
+ label_trans: 'reg.userslist',
+ fieldtype: tools.FieldType.multiselect,
+ jointable: 'users'
+ }),
+]
+
+export const colTabledepartments = [
+ AddCol({ name: 'name', label_trans: 'store.name' }),
+ AddCol({ name: 'username', label_trans: 'store.username' })
+]
export const colTableStorehouse = [
AddCol({ name: 'name', label_trans: 'store.name' }),
@@ -197,7 +222,6 @@ export const colTableProducts = [
AddCol({ name: 'description', label_trans: 'products.description' }),
AddCol({ name: 'icon', label_trans: 'products.icon' }),
AddCol({ name: 'img', label_trans: 'products.img' }),
- AddCol({ name: 'department', label_trans: 'products.department' }),
// AddCol({ name: 'idProducer', label_trans: 'products.idProducer' }),
AddCol({
name: 'idProducer',
@@ -211,6 +235,13 @@ export const colTableProducts = [
fieldtype: tools.FieldType.multiselect,
jointable: 'storehouses'
}),
+ AddCol({
+ name: 'department',
+ label_trans: 'products.department',
+ fieldtype: tools.FieldType.select,
+ jointable: 'departments'
+ }),
+ // AddCol({ name: 'department', label_trans: 'products.department' }),
AddCol({ name: 'category', label_trans: 'products.category' }),
AddCol({ name: 'price', label_trans: 'products.price', fieldtype: tools.FieldType.number }),
AddCol({ name: 'color', label_trans: 'products.color' }),
@@ -517,7 +548,7 @@ export const fieldsTable = {
getTableJoinByName(table) {
if (table === 'permissions')
- return [shared_consts.Permissions.Admin, shared_consts.Permissions.Manager, shared_consts.Permissions.Teacher, shared_consts.Permissions.Tutor, shared_consts.Permissions.Traduttrici, shared_consts.Permissions.Zoomeri]
+ return [shared_consts.Permissions.Admin, shared_consts.Permissions.Manager, shared_consts.Permissions.Teacher, shared_consts.Permissions.Tutor, shared_consts.Permissions.Traduttrici, shared_consts.Permissions.Zoomeri, shared_consts.Permissions.Department]
else if (table === 'accepted')
return [shared_consts.Accepted.CHECK_READ_GUIDELINES, shared_consts.Accepted.CHECK_SEE_VIDEO_PRINCIPI]
else if (table === 'fieldstype')
@@ -932,6 +963,13 @@ export const fieldsTable = {
colkey: '_id',
collabel: 'name'
},
+ {
+ value: 'departments',
+ label: 'Uffici',
+ columns: colTabledepartments,
+ colkey: 'username',
+ collabel: 'name'
+ },
{
value: 'storehouses',
label: 'Magazzini',
diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts
index b746dc1..a32d615 100755
--- a/src/store/Modules/tools.ts
+++ b/src/store/Modules/tools.ts
@@ -110,6 +110,7 @@ export const tools = {
TABMAILINGLIST: 'mailinglist',
TABMYPAGE: 'mypage',
TABCALZOOM: 'calzoom',
+ TABGROUPS: 'groups',
TABTEMPLEMAIL: 'templemail',
TABOPZEMAIL: 'opzemail',
TABSHAREWITHUS: 'sharewithus',
@@ -1072,11 +1073,9 @@ export const tools = {
if (priority === tools.Priority.PRIORITY_HIGH) {
cl = 'high_priority'
- }
- else if (priority === tools.Priority.PRIORITY_NORMAL) {
+ } else if (priority === tools.Priority.PRIORITY_NORMAL) {
cl = 'medium_priority'
- }
- else if (priority === tools.Priority.PRIORITY_LOW) {
+ } else if (priority === tools.Priority.PRIORITY_LOW) {
cl = 'low_priority'
}
@@ -1116,12 +1115,12 @@ export const tools = {
,
logelem(mystr, elem) {
- console.log(mystr, 'elem [', elem._id, '] ', elem.descr, ' Pr(', tools.getPriorityByInd(elem.priority), ') [', elem.id_prev, '] modif=', elem.modified)
+ console.log(mystr, 'elem [', elem._id, '] ', elem.descr, 'pos', elem.pos, ' Pr(', tools.getPriorityByInd(elem.priority), ') modif=', elem.modified)
}
,
getelemprojstr(elem) {
- return 'elem [id= ' + elem._id + '] ' + elem.descr + ' [id_prev= ' + elem.id_prev + '] '
+ return elem.descr + ' [id= ' + elem._id + '] ' + 'pos: ' + elem.pos + ']\n'
}
,
@@ -1141,7 +1140,7 @@ export const tools = {
,
getstrelem(elem) {
- return 'elem [' + elem._id + '] ' + elem.descr + ' Pr(' + tools.getPriorityByInd(elem.priority) + ') [ID_PREV=' + elem.id_prev + '] modif=' + elem.modified + ' '
+ return 'elem [' + elem._id + '] ' + elem.descr + ' Pr(' + tools.getPriorityByInd(elem.priority) + ') modif=' + elem.modified + ' '
}
,
@@ -1151,7 +1150,7 @@ export const tools = {
) {
let mystr = '\n'
myarr.forEach((item) => {
- mystr += '[' + item.pos + '] ' + item.descr + ' Pr(' + tools.getPriorityByInd(item.priority) + ') [' + item.id_prev + '] modif=' + item.modified + '\n'
+ mystr += '[' + item.pos + '] ' + item.descr + ' Pr(' + tools.getPriorityByInd(item.priority) + ')' + ' modif=' + item.modified + '\n'
// mystr += '[' + item.pos + '] ' + item.descr + '\n'
})
@@ -1198,25 +1197,28 @@ export const tools = {
}
,
- update_idprev(myarr, indelemchange, indelemId) {
+ /* update_idprev(myarr, indelemchange, indelemId) {
if (tools.isOkIndex(myarr, indelemchange)) {
- const id_prev = (indelemId >= 0) ? myarr[indelemId]._id : ApiTables.LIST_START
- console.log('update_idprev [', indelemchange, ']', '[id_prev=', id_prev, ']')
- if (myarr[indelemchange].id_prev !== id_prev) {
+ // const id_prev = (indelemId >= 0) ? myarr[indelemId]._id : ApiTables.LIST_START
+ const id_prevnew = myarr[indelemchange].id_prevnew
+ console.log('update_idprev [', indelemchange, ']', myarr[indelemchange].descr, '[id_prev=', myarr[indelemchange].id_prev, ']', '[id_prevnew=', id_prevnew, ']')
+ if (myarr[indelemchange].id_prev !== id_prevnew) {
// tools.notifyarraychanged(myarr)
// myarr[indelemchange].modified = true
// console.log('update_idprev Index=', indelemchange, 'indtoget', indelemId, tools.getstrelem(myarr[indelemchange]))
- console.log(' MODIFICATO! ', myarr[indelemchange].descr, ' PRIMA:', myarr[indelemchange].id_prev, 'DOPO: ', id_prev)
- myarr[indelemchange].id_prev = id_prev
+ console.log(' MODIFICATO! ', myarr[indelemchange].descr, ' PRIMA:', myarr[indelemchange].id_prev, 'DOPO: ', id_prevnew)
+ myarr[indelemchange].id_prev = id_prevnew
return myarr[indelemchange]
}
}
return null
- }
- ,
+ }, */
+
async swapGeneralElem(nametable, myarr, itemdragend, listFieldsToChange) {
+ const arrprec = [...myarr]
+
if (itemdragend.field === 'priority') {
// get last elem priority
console.log('get last elem priority')
@@ -1235,15 +1237,16 @@ export const tools = {
if (tools.isOkIndex(myarr, itemdragend.newIndex) && tools.isOkIndex(myarr, itemdragend.oldIndex)) {
console.log('*** SPLICE!')
- // console.log(' PRIMA!', tools.logga_arrproj(myarr))
+ console.log(' PRIMA!', tools.logga_arrproj(myarr))
myarr.splice(itemdragend.newIndex, 0, myarr.splice(itemdragend.oldIndex, 1)[0])
- // console.log(' DOPO!', tools.logga_arrproj(myarr))
+ console.log(' DOPO!', tools.logga_arrproj(myarr))
// Ora inverti gli indici
const indold = itemdragend.oldIndex
itemdragend.oldIndex = itemdragend.newIndex
itemdragend.newIndex = indold
+ /*
if (nametable === 'todos') {
if (itemdragend.field !== 'priority') {
const precind = itemdragend.newIndex - 1
@@ -1273,22 +1276,72 @@ export const tools = {
}
}
+ } */
+
+ let status = 0
+
+ // const arr = lists.selectPriority[toolsext.getLocale()]
+ // for (const priority of arr) {
+ for (let i = 0; i < myarr.length; ++i) {
+ if (nametable === 'todos') {
+ status = myarr[i].statustodo
+ } else if (nametable === 'projects') {
+ status = myarr[i].statusproj
+ }
+ if (status !== tools.Status.COMPLETED) {
+ myarr[i].pos = i
+
+ const findelem = arrprec.find((rec) => rec._id === myarr[i]._id)
+
+ if (findelem !== myarr[i].pos) {
+ myarr[i].modified = true
+ await ApiTables.table_ModifyRecord(nametable, myarr[i], listFieldsToChange, 'pos')
+ }
+ }
+
}
+ for (let i = 0; i < myarr.length; ++i) {
+ if (nametable === 'todos') {
+ status = myarr[i].statustodo
+ } else if (nametable === 'projects') {
+ status = myarr[i].statusproj
+ }
+ // (myarr[i].priority === priority.value)
+ if ((status === tools.Status.COMPLETED)) {
+ myarr[i].pos = 1000 + i
- // Update the id_prev property
- const elem1 = tools.update_idprev(myarr, itemdragend.newIndex, itemdragend.newIndex - 1) // 0, -1
- const elem2 = tools.update_idprev(myarr, itemdragend.newIndex + 1, itemdragend.newIndex) // 1, 0
- const elem3 = tools.update_idprev(myarr, itemdragend.oldIndex, itemdragend.oldIndex - 1) // 1, 0
- const elem4 = tools.update_idprev(myarr, itemdragend.oldIndex + 1, itemdragend.oldIndex) // 2, 1
+ const findelem = arrprec.find((rec) => rec._id === myarr[i]._id)
- await
- ApiTables.table_ModifyRecord(nametable, elem1, listFieldsToChange, 'id_prev')
- await
- ApiTables.table_ModifyRecord(nametable, elem2, listFieldsToChange, 'id_prev')
- await
- ApiTables.table_ModifyRecord(nametable, elem3, listFieldsToChange, 'id_prev')
- await
- ApiTables.table_ModifyRecord(nametable, elem4, listFieldsToChange, 'id_prev')
+ if (findelem !== myarr[i].pos) {
+ myarr[i].modified = true
+ await ApiTables.table_ModifyRecord(nametable, myarr[i], listFieldsToChange, 'pos')
+ }
+ }
+
+ }
+ // }
+
+ /*
+
+ console.table(myarr)
+
+ // Update the id_prev property
+ const elem1 = tools.update_idprev(myarr, itemdragend.newIndex, itemdragend.newIndex - 1) // 0, -1
+ const elem2 = tools.update_idprev(myarr, itemdragend.newIndex + 1, itemdragend.newIndex) // 1, 0
+ const elem3 = tools.update_idprev(myarr, itemdragend.oldIndex, itemdragend.oldIndex - 1) // 1, 0
+ const elem4 = tools.update_idprev(myarr, itemdragend.oldIndex + 1, itemdragend.oldIndex) // 2, 1
+
+ await
+ ApiTables.table_ModifyRecord(nametable, elem1, listFieldsToChange, 'id_prev')
+ await
+ ApiTables.table_ModifyRecord(nametable, elem2, listFieldsToChange, 'id_prev')
+ await
+ ApiTables.table_ModifyRecord(nametable, elem3, listFieldsToChange, 'id_prev')
+ await
+ ApiTables.table_ModifyRecord(nametable, elem4, listFieldsToChange, 'id_prev')
+
+
+ */
tools.notifyarraychanged(myarr)
@@ -1318,8 +1371,8 @@ export const tools = {
if (myarr === undefined)
return null
return myarr.find((elem) => elem.id_prev === id)
- }
- ,
+ },
+
getLastFirstElemPriority(myarr, priority: number, atfirst: boolean, escludiId: string) {
if (myarr === null) {
@@ -1350,8 +1403,7 @@ export const tools = {
} else {
if (priority === tools.Priority.PRIORITY_LOW) {
return myarr.length - 1
- }
- else if (priority === tools.Priority.PRIORITY_HIGH) {
+ } else if (priority === tools.Priority.PRIORITY_HIGH) {
return 0
}
}
@@ -1380,8 +1432,7 @@ export const tools = {
Projects.state.projects = tools.jsonCopy(myarr)
return Projects.state.projects
}
- }
- ,
+ },
getmyid(id) {
return 'row' + id
@@ -1406,8 +1457,7 @@ export const tools = {
getElemByIndex(myarr, index) {
if (index >= 0 && index < myarr.length) {
return myarr[index]
- }
- else {
+ } else {
return null
}
}
@@ -1429,8 +1479,11 @@ export const tools = {
visumenu(elem) { // : IListRoutes
let visu = ((elem.onlyAdmin && UserStore.state.isAdmin) || (elem.onlyManager && UserStore.state.isManager)
+ || (elem.onlySocioResidente && UserStore.state.my.profile.socioresidente)
|| (elem.onlyTutor && UserStore.state.isTutor) || (elem.onlyTraduttrici && UserStore.state.isTraduttrici)
- || ((!elem.onlyAdmin) && (!elem.onlyManager) && (!elem.onlyTutor) && (!elem.onlyTraduttrici))) && elem.active
+ || (elem.onlyDepartment && UserStore.state.isDepartment)
+ || ((!elem.onlyAdmin) && (!elem.onlyManager) && (!elem.onlyTutor) && (!elem.onlyTraduttrici) && (!elem.onlyDepartment)
+ && (!elem.onlySocioResidente))) && elem.active
if (!tools.isLoggedToSystem()) {
if (elem.onlyif_logged)
@@ -2091,6 +2144,14 @@ export const tools = {
return UserStore.state.isManager
},
+ isSocioResidente() {
+ return UserStore.state.my.profile.socioresidente
+ },
+
+ isDepartment() {
+ return UserStore.state.isDepartment
+ },
+
isAdmin() {
return UserStore.state.isAdmin
},
@@ -2209,24 +2270,24 @@ export const tools = {
if (tools.getstrDate(myevent.dateTimeStart) === tools.getstrDate(myevent.dateTimeEnd)) {
if (withhtml) {
mystr += `${tools.getstrDate(myevent.dateTimeStart)}
- ${mythis.$t('cal.starttime')} ${ tools.getstrTime(myevent.dateTimeStart) }
- ${ mythis.$t('cal.endtime')} ${ tools.getstrTime(myevent.dateTimeEnd) }`
+ ${mythis.$t('cal.starttime')} ${tools.getstrTime(myevent.dateTimeStart)}
+ ${mythis.$t('cal.endtime')} ${tools.getstrTime(myevent.dateTimeEnd)}`
} else {
mystr = `${tools.getstrDate(myevent.dateTimeStart)}
- ${mythis.$t('cal.starttime')} ${ tools.getstrTime(myevent.dateTimeStart) }
- ${ mythis.$t('cal.endtime')} ${ tools.getstrTime(myevent.dateTimeEnd) }`
+ ${mythis.$t('cal.starttime')} ${tools.getstrTime(myevent.dateTimeStart)}
+ ${mythis.$t('cal.endtime')} ${tools.getstrTime(myevent.dateTimeEnd)}`
}
} else {
mystr = `${tools.getstrDate(myevent.dateTimeStart)}
- ${mythis.$t('cal.starttime')} ${ tools.getstrTime(myevent.dateTimeStart) }
- ${ mythis.$t('cal.enddate')} ${tools.getstrDate(myevent.dateTimeEnd)}
- ${ mythis.$t('cal.endtime')} ${ tools.getstrTime(myevent.dateTimeEnd) } `
+ ${mythis.$t('cal.starttime')} ${tools.getstrTime(myevent.dateTimeStart)}
+ ${mythis.$t('cal.enddate')} ${tools.getstrDate(myevent.dateTimeEnd)}
+ ${mythis.$t('cal.endtime')} ${tools.getstrTime(myevent.dateTimeEnd)} `
}
if (myevent.infoextra) {
mystr += `
${mythis.$t('cal.hours')}:
- ${ myevent.infoextra }
+ ${myevent.infoextra}
`
}
@@ -2238,9 +2299,9 @@ export const tools = {
// is same day?
if (tools.getstrShortDate(myevent.dateTimeStart) === tools.getstrShortDate(myevent.dateTimeEnd)) {
mystr = `${tools.getstrShortDate(myevent.dateTimeStart)}
- - ${ tools.getstrTime(myevent.dateTimeStart) }`
+ - ${tools.getstrTime(myevent.dateTimeStart)}`
} else {
- mystr = `${tools.getstrVeryVeryShortDate(myevent.dateTimeStart)} - ${ tools.getstrShortDate(myevent.dateTimeEnd) }`
+ mystr = `${tools.getstrVeryVeryShortDate(myevent.dateTimeStart)} - ${tools.getstrShortDate(myevent.dateTimeEnd)}`
}
@@ -2252,9 +2313,9 @@ export const tools = {
// is same day?
if (tools.getstrShortDate(myevent.dateTimeStart) === tools.getstrShortDate(myevent.dateTimeEnd)) {
mystr = `${tools.getstrVeryShortDate(myevent.dateTimeStart)}
- h. ${ tools.getstrTime(myevent.dateTimeStart) }`
+ h. ${tools.getstrTime(myevent.dateTimeStart)}`
} else {
- mystr = `${tools.getstrVeryShortDate(myevent.dateTimeStart)} - ${ tools.getstrVeryShortDate(myevent.dateTimeEnd) }`
+ mystr = `${tools.getstrVeryShortDate(myevent.dateTimeStart)} - ${tools.getstrVeryShortDate(myevent.dateTimeEnd)}`
}
@@ -3076,8 +3137,7 @@ export const tools = {
} finally {
// ...
}
- }
- ,
+ },
SignUpcheckErrors(mythis, riscode: number, msg: string) {
console.log('SignUpcheckErrors', riscode)
@@ -3114,19 +3174,16 @@ export const tools = {
}
return endload
- }
- ,
+ },
isCssColor(color) {
return !!color && !!color.match(/^(#|(rgb|hsl)a?\()/)
- }
- ,
+ },
displayClasses(eventparam) {
return {
// [`bg-${eventparam.bgcolor}`]: !tools.isCssColor(eventparam.bgcolor),
'text-white': !tools.isCssColor(eventparam.bgcolor)
}
- }
- ,
+ },
displayStyles(eventparam) {
const s = { color: '' }
if (tools.isCssColor(eventparam.bgcolor)) {
@@ -3134,8 +3191,7 @@ export const tools = {
s.color = colors.luminosity(eventparam.bgcolor) > 0.5 ? 'black' : 'white'
}
return s
- }
- ,
+ },
CancelBookingEvent(mythis, eventparam: IEvents, bookeventid: string, notify: boolean) {
console.log('CancelBookingEvent ', eventparam)
tools.askConfirm(mythis.$q, translate('cal.titlebooking'), translate('cal.cancelbooking') + ' ' + tools.gettextevent(mythis, eventparam) + '?', translate('dialog.yes'), translate('dialog.no'), mythis, '', lists.MenuAction.DELETE, 0, {
@@ -3143,8 +3199,7 @@ export const tools = {
param2: notify,
param3: eventparam.title
})
- }
- ,
+ },
CancelEvent(mythis, eventparam: IEvents) {
console.log('CancelEvent ', eventparam)
tools.askConfirm(mythis.$q, translate('cal.event'), translate('cal.cancelevent') + ' ' + tools.gettextevent(mythis, eventparam) + '?', translate('dialog.yes'), translate('dialog.no'), mythis, '', lists.MenuAction.DELETE_EVENT, 0, {
@@ -3166,8 +3221,7 @@ export const tools = {
param1: id,
param2: item
})
- }
- ,
+ },
async createNewRecord(mythis, table, data, withnotif = true) {
@@ -3687,6 +3741,14 @@ export const tools = {
}
},
+ getGroupById(myid) {
+ const group = GlobalStore.state.groups.find((rec) => rec._id === myid)
+ if (group) {
+ return group.descr
+ }
+ return ''
+ },
+
getLinkZoom() {
let id = ''
if (GlobalStore.state.calzoom.length > 0) {
@@ -3944,6 +4006,30 @@ export const tools = {
return false
}
+ },
+
+ getGroupList() {
+
+ // console.log('GlobalStore.state.groups', GlobalStore.state.groups)
+ const mylist = {
+ it: [],
+ es: [],
+ enUs: []
+ }
+
+ let myrec = {}
+
+ for (const mygroup of GlobalStore.state.groups) {
+ myrec = {
+ id: mygroup._id,
+ label: mygroup.descr,
+ value: mygroup._id
+ }
+ mylist.it.push(myrec)
+
+ }
+
+ return mylist
}
// getLocale() {
diff --git a/src/views/Error404.vue b/src/views/Error404.vue
index 198c0f1..0c5fb02 100755
--- a/src/views/Error404.vue
+++ b/src/views/Error404.vue
@@ -12,8 +12,8 @@
keyboard_arrow_left
Go back
-
-