admin front : create new entite refresh concernementMapitem; fixed historique (active_revision)
This commit is contained in:
parent
340da92a46
commit
052a37d714
11
src/App.vue
11
src/App.vue
@ -33,6 +33,7 @@ export default {
|
|||||||
...mapState(ConcernementsStore,['map_mode',
|
...mapState(ConcernementsStore,['map_mode',
|
||||||
'concernements',
|
'concernements',
|
||||||
'concernements_loaded',
|
'concernements_loaded',
|
||||||
|
'concernements_loading_nb',
|
||||||
'concernementsByID',
|
'concernementsByID',
|
||||||
'allSuperpositions_bycids',
|
'allSuperpositions_bycids',
|
||||||
'allSuperpositions_clustered',
|
'allSuperpositions_clustered',
|
||||||
@ -47,6 +48,13 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
deep: true
|
deep: true
|
||||||
|
},
|
||||||
|
concernements_loading_nb: {
|
||||||
|
handler (n, o) {
|
||||||
|
console.log('App watch concernements_loading_nb o, n', o, n);
|
||||||
|
this.parseMapitems();
|
||||||
|
},
|
||||||
|
deep: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -54,6 +62,8 @@ export default {
|
|||||||
...mapActions(ConcernementsStore,['loadContentTypeDefinition']),
|
...mapActions(ConcernementsStore,['loadContentTypeDefinition']),
|
||||||
...mapActions(UserStore,['checkUser']),
|
...mapActions(UserStore,['checkUser']),
|
||||||
parseMapitems() {
|
parseMapitems() {
|
||||||
|
console.log(`App parseMapitems`);
|
||||||
|
this.mapitems = [];
|
||||||
// let couple_ids = Object.keys(this.allSuperpositions_bycids);
|
// let couple_ids = Object.keys(this.allSuperpositions_bycids);
|
||||||
// console.log('App couple_ids', couple_ids);
|
// console.log('App couple_ids', couple_ids);
|
||||||
// loop through all concernement
|
// loop through all concernement
|
||||||
@ -65,6 +75,7 @@ export default {
|
|||||||
// superposition_ids: [],
|
// superposition_ids: [],
|
||||||
superposition_cluster_index: -1,
|
superposition_cluster_index: -1,
|
||||||
clone: false,
|
clone: false,
|
||||||
|
concernements_loading_nb: this.concernements_loading_nb
|
||||||
}
|
}
|
||||||
|
|
||||||
// loop through all superposition_clusters
|
// loop through all superposition_clusters
|
||||||
|
@ -67,6 +67,23 @@ body{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.loading{
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.134em;
|
||||||
|
&::after{
|
||||||
|
background: url(../assets/Ellipsis-5s-100px.svg);
|
||||||
|
background-clip: content-box;
|
||||||
|
background-size: contain;
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 40px; height: 30px;
|
||||||
|
// border: #01ffe2;
|
||||||
|
content: " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#main-content{
|
#main-content{
|
||||||
|
|
||||||
#map-backgrounds{
|
#map-backgrounds{
|
||||||
@ -80,9 +97,7 @@ body{
|
|||||||
// display:none;
|
// display:none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#map-concernements{
|
#map-concernements{
|
||||||
div.loading{
|
div.loading{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -92,20 +107,8 @@ body{
|
|||||||
transform: translateX(-50%) translateY(-50%);
|
transform: translateX(-50%) translateY(-50%);
|
||||||
width: 150px;
|
width: 150px;
|
||||||
display: block;
|
display: block;
|
||||||
text-align: center;
|
|
||||||
// font-weight: 600;
|
|
||||||
font-size: 1.134em;
|
|
||||||
&::after{
|
&::after{
|
||||||
background: url(../assets/Ellipsis-5s-100px.svg);
|
width: 150px;
|
||||||
background-clip: content-box;
|
|
||||||
background-size: contain;
|
|
||||||
background-position: center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
display: inline-block;
|
|
||||||
width: 150px; height: 30px;
|
|
||||||
|
|
||||||
border: #01ffe2;
|
|
||||||
content: " ";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,9 @@ export default {
|
|||||||
'allMapItems_byid',
|
'allMapItems_byid',
|
||||||
'opened_concernement',
|
'opened_concernement',
|
||||||
'opened_entite_id',
|
'opened_entite_id',
|
||||||
'detailsZoomValue']),
|
'concernement_active_revision',
|
||||||
|
'detailsZoomValue',
|
||||||
|
'concernements_loading_nb']),
|
||||||
...mapState(CommonStore,['hover_elmt',
|
...mapState(CommonStore,['hover_elmt',
|
||||||
'map_item_ray',
|
'map_item_ray',
|
||||||
'cartouch_width',
|
'cartouch_width',
|
||||||
@ -82,18 +84,10 @@ export default {
|
|||||||
'paper_symbol_definitions'])
|
'paper_symbol_definitions'])
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
// console.log('ConcernementMapItem created', this.mapitem);
|
console.log('ConcernementMapItem created', this.mapitem);
|
||||||
// this.id = this.superposition_id ? `${this.cid}___${this.superposition_id}` : this.cid;
|
// this.id = this.superposition_id ? `${this.cid}___${this.superposition_id}` : this.cid;
|
||||||
// console.log(`this.mapitem.id`, this.mapitem.id);
|
// console.log(`this.mapitem.id`, this.mapitem.id);
|
||||||
this.id = this.mapitem.id;
|
this.resetConcernement();
|
||||||
this.concernement = this.mapitem.concernement;
|
|
||||||
this.cid = this.concernement.id;
|
|
||||||
// console.log('mapitem this.cid', this.cid);
|
|
||||||
this.active_revision = this.concernement.active_revision;
|
|
||||||
|
|
||||||
// console.log(`ConcernementsMapItem ${this.id} created`);
|
|
||||||
// this.entites = this.concernement.entites
|
|
||||||
this.entites = this.concernement.revisions_byid[this.concernement.revision_id].entites;
|
|
||||||
|
|
||||||
|
|
||||||
// disable concernement if less than 3 entite
|
// disable concernement if less than 3 entite
|
||||||
@ -163,8 +157,13 @@ export default {
|
|||||||
},
|
},
|
||||||
opened_concernement: {
|
opened_concernement: {
|
||||||
handler (n, o) {
|
handler (n, o) {
|
||||||
|
console.log(`concernementMapitem ${this.cid} watch opened_concernement o, n`, o, n);
|
||||||
if (!n) { // if there is no opened concernement
|
if (!n) { // if there is no opened concernement
|
||||||
this.is_open = false;
|
this.is_open = false;
|
||||||
|
if (this.active_revision !== this.concernement.active_revision) {
|
||||||
|
this.active_revision = this.concernement.active_revision;
|
||||||
|
this.resetPaperEntitesAndContours();
|
||||||
|
}
|
||||||
this.applyShuffleForces();
|
this.applyShuffleForces();
|
||||||
} else {
|
} else {
|
||||||
if(this.cid === n.id && this.id === n.opened_mapitem_id){
|
if(this.cid === n.id && this.id === n.opened_mapitem_id){
|
||||||
@ -255,13 +254,23 @@ export default {
|
|||||||
},
|
},
|
||||||
concernement: {
|
concernement: {
|
||||||
handler (n, o){
|
handler (n, o){
|
||||||
|
console.log(`ConcernementMapItem ${this.id} watch concernement o, n`, this.concernement.parsedEntites, o, n);
|
||||||
// check for active_revision changes
|
// check for active_revision changes
|
||||||
// do not trigger on first variable filling (if o is null)
|
// do not trigger on first variable filling (if o is null)
|
||||||
if(this.is_open && o && o.active_revision && n.active_revision && this.map_mode === "terraindevie"){
|
// check for new concernement object
|
||||||
// be aware that here o & n active_revision are already the same :( !?
|
if(!this.concernement.parsedEntites){
|
||||||
console.log(`concernementMapItem watch concernement o.active_revision:${o.active_revision}, n.active_revision:${n.active_revision}`);
|
console.log(`watch mapItem ${this.cid} reseting paperentitiesandcontours`);
|
||||||
this.resetPaperActiveRevision();
|
this.resetPaperEntitesAndContours();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// // check for new active_revision
|
||||||
|
// // TODO fix that (it is loop triggering when new concernement object)
|
||||||
|
// if(this.is_open && o && o.active_revision && n.active_revision && this.map_mode === "terraindevie"){
|
||||||
|
// // be aware that here o & n active_revision are already the same :( !?
|
||||||
|
// console.log(`concernementMapItem watch concernement o.active_revision:${o.active_revision}, n.active_revision:${n.active_revision}`);
|
||||||
|
// // this.resetPaperEntitesAndContours();
|
||||||
|
// }
|
||||||
|
|
||||||
// // check for doleance change
|
// // check for doleance change
|
||||||
// if (this.is_open && o && o.opened_doleance && n.opened_doleance && this.map_mode === "doleancer") {
|
// if (this.is_open && o && o.opened_doleance && n.opened_doleance && this.map_mode === "doleancer") {
|
||||||
// // be aware that here o & n opened_doleance are already the same :( !?
|
// // be aware that here o & n opened_doleance are already the same :( !?
|
||||||
@ -280,6 +289,20 @@ export default {
|
|||||||
},
|
},
|
||||||
deep: true
|
deep: true
|
||||||
},
|
},
|
||||||
|
concernement_active_revision: {
|
||||||
|
handler (n, o){
|
||||||
|
// console.log(`ConcernementMapItem ${this.id} watch concernement_active_revision o, n`, o, n);
|
||||||
|
if (this.is_open && o) {
|
||||||
|
// console.log(`n.cid: ${n.cid}, n.rid: ${n.rid}, this.is_open: ${this.is_open}, this.cid: ${this.cid}`);
|
||||||
|
// console.log(this.cid, n.cid, n.rid);
|
||||||
|
if (parseInt(n.cid) === this.cid) {
|
||||||
|
this.active_revision = n.rid;
|
||||||
|
this.resetPaperEntitesAndContours();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deep: true
|
||||||
|
},
|
||||||
detailsZoomValue: {
|
detailsZoomValue: {
|
||||||
handler (n, o) {
|
handler (n, o) {
|
||||||
if (this.is_open && this.map_mode === "terraindevie") {
|
if (this.is_open && this.map_mode === "terraindevie") {
|
||||||
@ -288,6 +311,24 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
deep: true
|
deep: true
|
||||||
|
},
|
||||||
|
// concernements_loading_nb: {
|
||||||
|
// handler (n, o) {
|
||||||
|
// console.log(`concernementMapItem ${this.id} watch concernements_loading_nb o, n`, o, n);
|
||||||
|
// // this.resetPaperEntitesAndContours();
|
||||||
|
// },
|
||||||
|
// deep: true
|
||||||
|
// },
|
||||||
|
mapitem: {
|
||||||
|
handler (n, o) {
|
||||||
|
console.log(`ConcernementMapItem ${this.id} watch mapitem o, n`, o, n);
|
||||||
|
if (n.concernements_loading_nb !== o.concernements_loading_nb) {
|
||||||
|
// this.resetPaperEntitesAndContours();
|
||||||
|
// this.concernement = this.mapitem.concernement;
|
||||||
|
this.resetConcernement();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deep: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -301,6 +342,17 @@ export default {
|
|||||||
'setOpenedRecit',
|
'setOpenedRecit',
|
||||||
'setDetailsZoomValue',
|
'setDetailsZoomValue',
|
||||||
]),
|
]),
|
||||||
|
resetConcernement(){
|
||||||
|
this.id = this.mapitem.id;
|
||||||
|
this.concernement = this.mapitem.concernement;
|
||||||
|
this.cid = this.concernement.id;
|
||||||
|
// console.log('mapitem this.cid', this.cid);
|
||||||
|
this.active_revision = this.concernement.active_revision;
|
||||||
|
|
||||||
|
// console.log(`ConcernementsMapItem ${this.id} created`);
|
||||||
|
// this.entites = this.concernement.entites
|
||||||
|
this.entites = this.concernement.revisions_byid[this.concernement.revision_id].entites;
|
||||||
|
},
|
||||||
parseEntityPointsValues (){
|
parseEntityPointsValues (){
|
||||||
// converts data (menace/maintien, actuel/future, prise) into atcual position x,y
|
// converts data (menace/maintien, actuel/future, prise) into atcual position x,y
|
||||||
for (let r = 0; r < this.concernement.revisions.length; r++) { // loop through all revisions
|
for (let r = 0; r < this.concernement.revisions.length; r++) { // loop through all revisions
|
||||||
@ -347,6 +399,7 @@ export default {
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.concernement.parsedEntites = true;
|
||||||
},
|
},
|
||||||
getSalientPoints_OLD() {
|
getSalientPoints_OLD() {
|
||||||
// debugger
|
// debugger
|
||||||
@ -776,10 +829,14 @@ export default {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
resetPaperActiveRevision(){
|
resetPaperEntitesAndContours(){
|
||||||
console.log('resetPaperActiveRevision');
|
console.log(`concernementMapitem ${this.id} resetPaperEntitesAndContours this.concernement`, this.concernement);
|
||||||
|
if (!this.isResetingPaperEntites) {
|
||||||
|
console.log(`ResetingPaperEntites ${this.id}`);
|
||||||
|
this.isResetingPaperEntites = true;
|
||||||
|
this.parseEntityPointsValues()
|
||||||
|
|
||||||
this.sailentEntites = this.getJarvisEnvelopeConvexeEntites(this.concernement.revisions_byid[this.concernement.active_revision].entites);
|
this.sailentEntites = this.getJarvisEnvelopeConvexeEntites(this.concernement.revisions_byid[this.active_revision].entites);
|
||||||
|
|
||||||
// remove contours if already exists
|
// remove contours if already exists
|
||||||
if (this.paper_main_object.children.contours) {
|
if (this.paper_main_object.children.contours) {
|
||||||
@ -794,6 +851,11 @@ export default {
|
|||||||
}
|
}
|
||||||
// redraw entites
|
// redraw entites
|
||||||
this.paper_main_object.addChild(this.setPaperEntites());
|
this.paper_main_object.addChild(this.setPaperEntites());
|
||||||
|
|
||||||
|
this.isResetingPaperEntites = false;
|
||||||
|
console.log(`END ResetingPaperEntites ${this.id}`);
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
clearPaperContents(){
|
clearPaperContents(){
|
||||||
let clearable_children = ['boussole_bg', 'entites',
|
let clearable_children = ['boussole_bg', 'entites',
|
||||||
@ -932,8 +994,8 @@ export default {
|
|||||||
g.addChild(g_label);
|
g.addChild(g_label);
|
||||||
g_label.sendToBack();
|
g_label.sendToBack();
|
||||||
// for (let i = 0; i < this.entites.length; i++) {
|
// for (let i = 0; i < this.entites.length; i++) {
|
||||||
for (let i = 0; i < this.concernement.revisions_byid[this.concernement.active_revision].entites.length; i++) {
|
for (let i = 0; i < this.concernement.revisions_byid[this.active_revision].entites.length; i++) {
|
||||||
let entite = this.concernement.revisions_byid[this.concernement.active_revision].entites[i];
|
let entite = this.concernement.revisions_byid[this.active_revision].entites[i];
|
||||||
// item type
|
// item type
|
||||||
let item_type = entite.entite ? entite.entite.agissante ? 'entite_action' : 'entite' : 'entite_hidden';
|
let item_type = entite.entite ? entite.entite.agissante ? 'entite_action' : 'entite' : 'entite_hidden';
|
||||||
|
|
||||||
@ -1024,8 +1086,8 @@ export default {
|
|||||||
pivot: new paper.Point(this.pos),
|
pivot: new paper.Point(this.pos),
|
||||||
name: 'entites_superposes'
|
name: 'entites_superposes'
|
||||||
});
|
});
|
||||||
for (let i = 0; i < this.concernement.revisions_byid[this.concernement.active_revision].entites.length; i++) {
|
for (let i = 0; i < this.concernement.revisions_byid[this.active_revision].entites.length; i++) {
|
||||||
let entite = this.concernement.revisions_byid[this.concernement.active_revision].entites[i];
|
let entite = this.concernement.revisions_byid[this.active_revision].entites[i];
|
||||||
if (entite.entite // check if we have an entite object with all the contents
|
if (entite.entite // check if we have an entite object with all the contents
|
||||||
&& this.superposedEntiteID === entite.entite.id) // check if entite id
|
&& this.superposedEntiteID === entite.entite.id) // check if entite id
|
||||||
{
|
{
|
||||||
@ -1051,8 +1113,8 @@ export default {
|
|||||||
pivot: new paper.Point(this.pos),
|
pivot: new paper.Point(this.pos),
|
||||||
name: 'entites_proximites'
|
name: 'entites_proximites'
|
||||||
});
|
});
|
||||||
for (let i = 0; i < this.concernement.revisions_byid[this.concernement.active_revision].entites.length; i++) {
|
for (let i = 0; i < this.concernement.revisions_byid[this.active_revision].entites.length; i++) {
|
||||||
let entite = this.concernement.revisions_byid[this.concernement.active_revision].entites[i];
|
let entite = this.concernement.revisions_byid[this.active_revision].entites[i];
|
||||||
if (entite.entite // check if we have an entite object with all the contents
|
if (entite.entite // check if we have an entite object with all the contents
|
||||||
&& entite.entite.proximite.length ) // check if entite id is in the list builded above
|
&& entite.entite.proximite.length ) // check if entite id is in the list builded above
|
||||||
{
|
{
|
||||||
@ -1080,8 +1142,8 @@ export default {
|
|||||||
});
|
});
|
||||||
// loop through all concernement's entites
|
// loop through all concernement's entites
|
||||||
// keeping only those who have proximite
|
// keeping only those who have proximite
|
||||||
for (let i = 0; i < this.concernement.revisions_byid[this.concernement.active_revision].entites.length; i++) {
|
for (let i = 0; i < this.concernement.revisions_byid[this.active_revision].entites.length; i++) {
|
||||||
let entite = this.concernement.revisions_byid[this.concernement.active_revision].entites[i];
|
let entite = this.concernement.revisions_byid[this.active_revision].entites[i];
|
||||||
if (entite.entite // check if we have an entite object with all the contents
|
if (entite.entite // check if we have an entite object with all the contents
|
||||||
&& entite.entite.proximite.length ) // check if entite id is in the list builded above
|
&& entite.entite.proximite.length ) // check if entite id is in the list builded above
|
||||||
{
|
{
|
||||||
@ -1302,7 +1364,7 @@ export default {
|
|||||||
// name: 'agissantes_icons'
|
// name: 'agissantes_icons'
|
||||||
// });
|
// });
|
||||||
// for (let i = 0; i < this.concernement.revisions_byid[this.concernement.revision_id].entites.length; i++) {
|
// for (let i = 0; i < this.concernement.revisions_byid[this.concernement.revision_id].entites.length; i++) {
|
||||||
// let entite = this.concernement.revisions_byid[this.concernement.active_revision].entites[i];
|
// let entite = this.concernement.revisions_byid[this.active_revision].entites[i];
|
||||||
// if (entite.entite && entite.entite.agissante) {
|
// if (entite.entite && entite.entite.agissante) {
|
||||||
// let instance = new paper.SymbolItem(this.paper_symbol_definitions['entite_action_icon']);
|
// let instance = new paper.SymbolItem(this.paper_symbol_definitions['entite_action_icon']);
|
||||||
// instance.name = 'entite_action';
|
// instance.name = 'entite_action';
|
||||||
@ -2302,7 +2364,7 @@ export default {
|
|||||||
},
|
},
|
||||||
openClose(open) { // async
|
openClose(open) { // async
|
||||||
// await nextTick(); // not working
|
// await nextTick(); // not working
|
||||||
console.log(`ConcernementsMapItem ${this.id} openClose: ${open}`);
|
console.log(`ConcernementsMapItem openClose ${this.id} openClose: ${open}`);
|
||||||
if (this.tween) {
|
if (this.tween) {
|
||||||
this.tween.stop();
|
this.tween.stop();
|
||||||
}
|
}
|
||||||
@ -2382,9 +2444,9 @@ export default {
|
|||||||
Matter.Composite.remove(this.matterEngine.world, this.constraint);
|
Matter.Composite.remove(this.matterEngine.world, this.constraint);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this.concernement.active_revision = this.concernement.revision_id;
|
// this.active_revision = this.concernement.revision_id;
|
||||||
this.setActiveRevision(this.cid, this.concernement.revision_id);//this.concernement.revisions[this.concernement.revisions.length -1].revision_id);
|
// this.setActiveRevision(this.cid, this.concernement.revision_id);//this.concernement.revisions[this.concernement.revisions.length -1].revision_id);
|
||||||
this.resetPaperActiveRevision();
|
// this.resetPaperEntitesAndContours();
|
||||||
|
|
||||||
this.handlePaperVisibilityOnBeforeClose();
|
this.handlePaperVisibilityOnBeforeClose();
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@ export default {
|
|||||||
...mapState(ConcernementsStore,['map_mode',
|
...mapState(ConcernementsStore,['map_mode',
|
||||||
'opened_concernement',
|
'opened_concernement',
|
||||||
'concernementsByID',
|
'concernementsByID',
|
||||||
'concernements_loaded',
|
|
||||||
'ct_concernement',
|
'ct_concernement',
|
||||||
'ct_cercle_politique',
|
'ct_cercle_politique',
|
||||||
'p_groupes_interets',
|
'p_groupes_interets',
|
||||||
|
@ -44,6 +44,7 @@ export default {
|
|||||||
chevrondown_path: mdiChevronDown,
|
chevrondown_path: mdiChevronDown,
|
||||||
headerreduced: false,
|
headerreduced: false,
|
||||||
mdiStickerPlusOutline_path: mdiStickerPlusOutline,
|
mdiStickerPlusOutline_path: mdiStickerPlusOutline,
|
||||||
|
reloading_concernements: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -52,7 +53,9 @@ export default {
|
|||||||
'concernementsByID',
|
'concernementsByID',
|
||||||
'ct_concernement',
|
'ct_concernement',
|
||||||
'ct_entite',
|
'ct_entite',
|
||||||
'detailsZoomValue']),
|
'detailsZoomValue',
|
||||||
|
// 'concernements_are_loading'
|
||||||
|
]),
|
||||||
...mapState(UserStore,['name','csrf_token']),
|
...mapState(UserStore,['name','csrf_token']),
|
||||||
created(){
|
created(){
|
||||||
let d = new Date(this.concernement.created);
|
let d = new Date(this.concernement.created);
|
||||||
@ -184,7 +187,12 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions(ConcernementsStore, ['setActiveRevision', 'setDetailsZoomValue']), // 'loadConcernementsRevisions'
|
...mapActions(ConcernementsStore, ['setActiveRevision',
|
||||||
|
'setDetailsZoomValue',
|
||||||
|
'loadConcernements',
|
||||||
|
'reloadConcernements',
|
||||||
|
'reloadConcernementEntites']),
|
||||||
|
// 'loadConcernementsRevisions'
|
||||||
onClickInfos(){
|
onClickInfos(){
|
||||||
this.infos_opened = !this.infos_opened;
|
this.infos_opened = !this.infos_opened;
|
||||||
},
|
},
|
||||||
@ -224,6 +232,7 @@ export default {
|
|||||||
},
|
},
|
||||||
addEntite(e){
|
addEntite(e){
|
||||||
console.log('add entite');
|
console.log('add entite');
|
||||||
|
this.reloading_concernements = true;
|
||||||
// 1 create entite node
|
// 1 create entite node
|
||||||
this.createEntiteNode()
|
this.createEntiteNode()
|
||||||
.then((entite) => {
|
.then((entite) => {
|
||||||
@ -237,6 +246,11 @@ export default {
|
|||||||
.then((concernement) => {
|
.then((concernement) => {
|
||||||
console.log('concernement', concernement);
|
console.log('concernement', concernement);
|
||||||
// TODO reload the map item
|
// TODO reload the map item
|
||||||
|
// this.reloadConcernementEntites(concernement.nid[0].value);
|
||||||
|
this.reloadConcernements()
|
||||||
|
.then(() => {
|
||||||
|
this.reloading_concernements = false;
|
||||||
|
});
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -436,10 +450,13 @@ export default {
|
|||||||
|
|
||||||
</section>
|
</section>
|
||||||
<template v-if="concernement.can_update">
|
<template v-if="concernement.can_update">
|
||||||
<div @click="addEntite" class="add-entite-btn">
|
<div v-if="!reloading_concernements" @click="addEntite" class="add-entite-btn">
|
||||||
<span>Ajouter une entité</span>
|
<span>Ajouter une entité</span>
|
||||||
<svg-icon type="mdi" :path="mdiStickerPlusOutline_path"/>
|
<svg-icon type="mdi" :path="mdiStickerPlusOutline_path"/>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-else class="add-entite-btn">
|
||||||
|
<div class="loading">Chargement</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ export const ConcernementsStore = defineStore({
|
|||||||
id: 'concernements',
|
id: 'concernements',
|
||||||
state: () => ({
|
state: () => ({
|
||||||
map_mode: null,
|
map_mode: null,
|
||||||
|
concernements_loading_nb: 0,
|
||||||
concernements: [],
|
concernements: [],
|
||||||
concernementsByID: {},
|
concernementsByID: {},
|
||||||
allEntitesById: {},
|
allEntitesById: {},
|
||||||
@ -38,6 +39,8 @@ export const ConcernementsStore = defineStore({
|
|||||||
p_mise_en_oeuvre_decision: {},
|
p_mise_en_oeuvre_decision: {},
|
||||||
p_reception_application_decision: {},
|
p_reception_application_decision: {},
|
||||||
concernements_loaded: false,
|
concernements_loaded: false,
|
||||||
|
concernements_are_loading: false,
|
||||||
|
concernement_active_revision: null,
|
||||||
detailsZoomValue: 1,
|
detailsZoomValue: 1,
|
||||||
}),
|
}),
|
||||||
getters: {
|
getters: {
|
||||||
@ -51,6 +54,7 @@ export const ConcernementsStore = defineStore({
|
|||||||
},
|
},
|
||||||
loadConcernements () {
|
loadConcernements () {
|
||||||
console.log('concernements store loadConcernements');
|
console.log('concernements store loadConcernements');
|
||||||
|
this.concernements_are_loading = true;
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const ast = gql`{
|
const ast = gql`{
|
||||||
allconcernements {
|
allconcernements {
|
||||||
@ -62,11 +66,26 @@ export const ConcernementsStore = defineStore({
|
|||||||
// console.log('ast', ast);
|
// console.log('ast', ast);
|
||||||
GQL.post('', { query: print(ast) })
|
GQL.post('', { query: print(ast) })
|
||||||
.then(({ data : { data : { allconcernements } } }) => {
|
.then(({ data : { data : { allconcernements } } }) => {
|
||||||
console.log('loadconcernements all loaded', allconcernements)
|
console.log('loadconcernements loaded', allconcernements)
|
||||||
this.concernements = [];
|
this.concernements = [];
|
||||||
// parse concernements
|
this.parseConcernements(allconcernements, true)
|
||||||
|
this.concernements_loaded = true;
|
||||||
|
this.concernements_loading_nb ++;
|
||||||
|
this.concernements_are_loading = false;
|
||||||
|
resolve();
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.warn('Issue with loadConcernements', error)
|
||||||
|
this.concernements_are_loading = false;
|
||||||
|
Promise.reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
parseConcernements(allconcernements, init) {
|
||||||
|
console.log('parse concernements');
|
||||||
let temp_allSuperpositions = [];
|
let temp_allSuperpositions = [];
|
||||||
allconcernements.forEach(concernement => {
|
allconcernements.forEach((concernement) => {
|
||||||
|
// console.log(`parsing concernement ${concernement.id}`);
|
||||||
concernement.visible = true;
|
concernement.visible = true;
|
||||||
|
|
||||||
concernement.entites_byid = {};
|
concernement.entites_byid = {};
|
||||||
@ -77,31 +96,40 @@ export const ConcernementsStore = defineStore({
|
|||||||
// var entites_temp = concernement.entites; // record a temp entites liste
|
// var entites_temp = concernement.entites; // record a temp entites liste
|
||||||
// concernement.entites = []; // erase the concernement.entite array as we want to keep only visible entites
|
// concernement.entites = []; // erase the concernement.entite array as we want to keep only visible entites
|
||||||
concernement.entites.forEach(entite => {
|
concernement.entites.forEach(entite => {
|
||||||
|
// console.log(`parsing entite ${entite.id}`);
|
||||||
if (entite.entite) { // entite.entite may be null because of workflow confidentiality
|
if (entite.entite) { // entite.entite may be null because of workflow confidentiality
|
||||||
|
if (!concernement.entites_byid[entite.entite.id]) {
|
||||||
concernement.entites_byid[entite.entite.id] = entite;
|
concernement.entites_byid[entite.entite.id] = entite;
|
||||||
|
}
|
||||||
// record entite agissante
|
// record entite agissante
|
||||||
if (entite.entite.agissante) {
|
if (entite.entite.agissante) {
|
||||||
|
if (!concernement.entitesagissantes_byid[entite.entite.id]) {
|
||||||
concernement.entitesagissantes_byid[entite.entite.id] = entite;
|
concernement.entitesagissantes_byid[entite.entite.id] = entite;
|
||||||
|
}
|
||||||
concernement.has_agissantes = true;
|
concernement.has_agissantes = true;
|
||||||
}
|
}
|
||||||
// record a flat list of all entités of all concernement for map-popup
|
// record a flat list of all entités of all concernement for map-popup
|
||||||
|
if (!this.allEntitesById[entite.entite.id]) {
|
||||||
this.allEntitesById[entite.entite.id] = entite;
|
this.allEntitesById[entite.entite.id] = entite;
|
||||||
this.allEntitesById[entite.entite.id].cid = concernement.id;
|
this.allEntitesById[entite.entite.id].cid = concernement.id;
|
||||||
|
}
|
||||||
// concernement.entites.push(entite); // fill the entites array with visible entite only
|
// concernement.entites.push(entite); // fill the entites array with visible entite only
|
||||||
|
|
||||||
// PROXIMITES
|
// PROXIMITES
|
||||||
if (entite.entite.proximite.length) {
|
if (entite.entite.proximite.length) {
|
||||||
console.log("proximite", entite.entite.proximite);
|
// console.log("proximite", entite.entite.proximite);
|
||||||
concernement.has_proximites = true;
|
concernement.has_proximites = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// SUPERPOSITIONS
|
// SUPERPOSITIONS
|
||||||
if (entite.entite.superposition.length) {
|
if (entite.entite.superposition.length) {
|
||||||
// create properties for later
|
// create properties for later
|
||||||
|
if (init) {
|
||||||
concernement.superpositions = {};
|
concernement.superpositions = {};
|
||||||
concernement.superposition_constraints_id = {};
|
concernement.superposition_constraints_id = {};
|
||||||
concernement.all_superposed_concernements_id = [];
|
concernement.all_superposed_concernements_id = [];
|
||||||
concernement.superposed_mapitem_id_by_mapitem_id = {};
|
concernement.superposed_mapitem_id_by_mapitem_id = {};
|
||||||
|
}
|
||||||
|
|
||||||
entite.entite.superposition.forEach(entite_superpose => {
|
entite.entite.superposition.forEach(entite_superpose => {
|
||||||
// console.log(`superposition eid:${entite.entite.id}, teid:${entite_superpose.id}`);
|
// console.log(`superposition eid:${entite.entite.id}, teid:${entite_superpose.id}`);
|
||||||
@ -143,7 +171,7 @@ export const ConcernementsStore = defineStore({
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
}); // end of concernement.entites loop
|
||||||
|
|
||||||
|
|
||||||
// revisions
|
// revisions
|
||||||
@ -162,7 +190,7 @@ export const ConcernementsStore = defineStore({
|
|||||||
// doleance
|
// doleance
|
||||||
concernement.has_doleance = concernement.doleances.length ? true : false;
|
concernement.has_doleance = concernement.doleances.length ? true : false;
|
||||||
if (concernement.has_doleance) {
|
if (concernement.has_doleance) {
|
||||||
console.log('concernement has doleance', concernement.doleances);
|
// console.log('concernement has doleance', concernement.doleances);
|
||||||
concernement.opened_doleance = {
|
concernement.opened_doleance = {
|
||||||
id: concernement.doleances[0].id
|
id: concernement.doleances[0].id
|
||||||
};
|
};
|
||||||
@ -172,13 +200,23 @@ export const ConcernementsStore = defineStore({
|
|||||||
concernement.has_recit = concernement.recit !== null;
|
concernement.has_recit = concernement.recit !== null;
|
||||||
|
|
||||||
// common
|
// common
|
||||||
|
// if (!concernement_is_reloaded) {
|
||||||
this.concernements.push(concernement);
|
this.concernements.push(concernement);
|
||||||
this.concernementsByID[concernement.id] = concernement;
|
this.concernementsByID[concernement.id] = concernement;
|
||||||
|
// }else{
|
||||||
|
// // this.concernements[concernement_index] = concernement;
|
||||||
|
// this.concernementsByID[concernement.id] = concernement;
|
||||||
|
// // TODO check that this.concernements and this.concernementsByID contains the same item
|
||||||
|
// }
|
||||||
|
|
||||||
}); // end of concernements loop
|
}); // end of concernements loop
|
||||||
console.log('temp_allSuperpositions', temp_allSuperpositions);
|
// console.log('this.concernements', this.concernements);
|
||||||
|
// console.log('this.concernementsByID', this.concernementsByID);
|
||||||
|
|
||||||
|
// console.log('temp_allSuperpositions', temp_allSuperpositions);
|
||||||
|
|
||||||
// cleaning superpositions, removing all incomplète onces
|
// cleaning superpositions, removing all incomplète onces
|
||||||
|
this.allSuperpositions = [];
|
||||||
temp_allSuperpositions.forEach(s => {
|
temp_allSuperpositions.forEach(s => {
|
||||||
if (s[0] && s[0].cid && s[0].eid && s[1] && s[1].cid && s[1].eid) {
|
if (s[0] && s[0].cid && s[0].eid && s[1] && s[1].cid && s[1].eid) {
|
||||||
this.allSuperpositions.push(s);
|
this.allSuperpositions.push(s);
|
||||||
@ -186,9 +224,12 @@ export const ConcernementsStore = defineStore({
|
|||||||
this.concernementsByID[s[1].cid].has_superpositions = true;
|
this.concernementsByID[s[1].cid].has_superpositions = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
console.log('this.allSuperpositions', this.allSuperpositions);
|
// console.log('this.allSuperpositions', this.allSuperpositions);
|
||||||
|
|
||||||
|
// 1 check if cluster already exists and if yes complete with the next item of cluster
|
||||||
|
// 2 if cluster deos not exists, create the cluster and fill it with first item of cluster
|
||||||
|
|
||||||
|
// 1 check if cluster already exists and if yes complete with the next item of cluster
|
||||||
// get superpositions by cluster
|
// get superpositions by cluster
|
||||||
for(let superpos_to_record of this.allSuperpositions){
|
for(let superpos_to_record of this.allSuperpositions){
|
||||||
let recorded = false;
|
let recorded = false;
|
||||||
@ -207,15 +248,25 @@ export const ConcernementsStore = defineStore({
|
|||||||
if (superpos_to_record[i].cid === s.cid && superpos_to_record[i].eid === s.eid){
|
if (superpos_to_record[i].cid === s.cid && superpos_to_record[i].eid === s.eid){
|
||||||
// console.log('-- recorded');
|
// console.log('-- recorded');
|
||||||
let j = i === 0 ? 1 : 0;
|
let j = i === 0 ? 1 : 0;
|
||||||
|
// check if item is not already recorded in the cluster (in case of reparsing concernements)
|
||||||
|
let already_clustered = false;
|
||||||
|
for (let s2 of superpo_cluster) {
|
||||||
|
if (superpos_to_record[j].cid === s2.cid && superpos_to_record[j].eid === s2.eid){
|
||||||
|
already_clustered = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if not already recorded
|
||||||
|
if (!already_clustered) {
|
||||||
// add the right item to the cluster
|
// add the right item to the cluster
|
||||||
this.allSuperpositions_clustered[cluster_index].push(superpos_to_record[j]);
|
this.allSuperpositions_clustered[cluster_index].push(superpos_to_record[j]);
|
||||||
|
}
|
||||||
|
|
||||||
// record the superposition on the concernement BY cluster index
|
// record the superposition on the concernement BY cluster index
|
||||||
// console.log(`superpos_to_record[j].cid:${superpos_to_record[j].cid}`);
|
|
||||||
// console.log('concernement', this.concernementsByID[superpos_to_record[j].cid]);
|
|
||||||
// create array if not already exists
|
// create array if not already exists
|
||||||
if(typeof this.concernementsByID[superpos_to_record[j].cid].superpositions[cluster_index] === 'undefined'){
|
if(typeof this.concernementsByID[superpos_to_record[j].cid].superpositions[cluster_index] === 'undefined'){
|
||||||
this.concernementsByID[superpos_to_record[j].cid].superpositions[cluster_index] = [superpos_to_record];
|
this.concernementsByID[superpos_to_record[j].cid].superpositions[cluster_index] = [superpos_to_record];
|
||||||
}else{
|
}else if(!already_clustered){
|
||||||
this.concernementsByID[superpos_to_record[j].cid].superpositions[cluster_index].push(superpos_to_record);
|
this.concernementsByID[superpos_to_record[j].cid].superpositions[cluster_index].push(superpos_to_record);
|
||||||
}
|
}
|
||||||
recorded = true;
|
recorded = true;
|
||||||
@ -226,9 +277,10 @@ export const ConcernementsStore = defineStore({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 2 if cluster deos not exists, create the cluster and fill it with first item of cluster
|
||||||
if(!recorded){
|
if(!recorded){
|
||||||
// console.log('-- not recorded');
|
// console.log('-- not recorded');
|
||||||
// create cluster and fill it it with first couple
|
// create cluster and fill it with first item of couple
|
||||||
this.allSuperpositions_clustered.push(superpos_to_record);
|
this.allSuperpositions_clustered.push(superpos_to_record);
|
||||||
// record superposition on each concernement of each couple member BY cluster index
|
// record superposition on each concernement of each couple member BY cluster index
|
||||||
for( let i=0; i <= 1; i++){
|
for( let i=0; i <= 1; i++){
|
||||||
@ -237,24 +289,59 @@ export const ConcernementsStore = defineStore({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log('this.allSuperpositions_clustered', this.allSuperpositions_clustered);
|
// console.log('this.allSuperpositions_clustered', this.allSuperpositions_clustered);
|
||||||
|
// console.log(`end of parsing concernements`);
|
||||||
|
|
||||||
|
|
||||||
this.concernements_loaded = true;
|
|
||||||
})
|
|
||||||
.catch(error => {
|
|
||||||
console.warn('Issue with loadConcernements', error)
|
|
||||||
Promise.reject(error)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
reloadConcernements () {
|
reloadConcernements () {
|
||||||
console.log('reloadConcernements');
|
console.log('reloadConcernements');
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
// reset the arrays
|
// reset the arrays
|
||||||
// this.concernements = [];
|
this.concernements = [];
|
||||||
// this.concernementsByID = {};
|
this.concernementsByID = {};
|
||||||
// this.concernements_loaded = false;
|
// this.concernements_loaded = false;
|
||||||
this.loadConcernements();
|
this.loadConcernements()
|
||||||
|
.then(()=>{
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
},
|
||||||
|
reloadConcernementEntites(nid){
|
||||||
|
// console.log('reloadConcernementEntites nid', nid);
|
||||||
|
// const ast = gql`{
|
||||||
|
// concernement(id:${nid}) {
|
||||||
|
// entites {
|
||||||
|
// id
|
||||||
|
// revision_id
|
||||||
|
// menacemaintien
|
||||||
|
// actuelfuture
|
||||||
|
// entite {
|
||||||
|
// title
|
||||||
|
// id
|
||||||
|
// agissante
|
||||||
|
// proximite {
|
||||||
|
// id
|
||||||
|
// title
|
||||||
|
// }
|
||||||
|
// superposition {
|
||||||
|
// id
|
||||||
|
// title
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// `
|
||||||
|
// // console.log('ast', ast);
|
||||||
|
// GQL.post('', { query: print(ast) })
|
||||||
|
// .then(({ data : { data : { concernement } } }) => {
|
||||||
|
// console.log('reloadConcernementEntites loaded', concernement)
|
||||||
|
// // this.concernementsByID[concernement.id].entites = concernement.entites;
|
||||||
|
// })
|
||||||
|
// .catch(error => {
|
||||||
|
// console.warn('Issue with reloadConcernementEntites', error)
|
||||||
|
// Promise.reject(error)
|
||||||
|
// })
|
||||||
},
|
},
|
||||||
loadContentTypeDefinition () {
|
loadContentTypeDefinition () {
|
||||||
const body = {
|
const body = {
|
||||||
@ -372,15 +459,15 @@ export const ConcernementsStore = defineStore({
|
|||||||
this.opened_concernement = null;
|
this.opened_concernement = null;
|
||||||
this.opened_recit = null;
|
this.opened_recit = null;
|
||||||
this.concernements.forEach((c, i) => {
|
this.concernements.forEach((c, i) => {
|
||||||
state = cid === c.id;
|
|
||||||
// console.log(`openCloseConcernements foreach id: ${id}, c.id: ${c.id}, state: ${state}`, id, c.id);
|
// console.log(`openCloseConcernements foreach id: ${id}, c.id: ${c.id}, state: ${state}`, id, c.id);
|
||||||
c.opened = this.concernements[i].opened = this.concernementsByID[c.id].opened = state;
|
c.opened = this.concernements[i].opened = this.concernementsByID[c.id].opened = cid === c.id;
|
||||||
if (state) {
|
if (c.opened) {
|
||||||
this.opened_concernement = c;
|
this.opened_concernement = c;
|
||||||
this.opened_concernement.opened_mapitem_id = mapitem_id;
|
this.opened_concernement.opened_mapitem_id = mapitem_id;
|
||||||
if (c.has_recit && this.map_mode === "terraindevie") {
|
if (c.has_recit && this.map_mode === "terraindevie") {
|
||||||
this.opened_recit = c.recit;
|
this.opened_recit = c.recit;
|
||||||
}
|
}
|
||||||
|
this.concernement_active_revision = {cid: cid, rid: c.active_revision}
|
||||||
// console.log('openCloseConcernements', this.opened_concernement.opened);
|
// console.log('openCloseConcernements', this.opened_concernement.opened);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -440,8 +527,9 @@ export const ConcernementsStore = defineStore({
|
|||||||
this.recit_plyr_player = player;
|
this.recit_plyr_player = player;
|
||||||
},
|
},
|
||||||
setActiveRevision (cid, rid) {
|
setActiveRevision (cid, rid) {
|
||||||
// console.log(`setActiveRevision, cid:${cid}, rid:${rid}`);
|
console.log(`setActiveRevision, cid:${cid}, rid:${rid}`);
|
||||||
this.concernementsByID[cid].active_revision = rid;
|
// this.concernementsByID[cid].active_revision = rid;
|
||||||
|
this.concernement_active_revision = {cid: cid, rid: rid};
|
||||||
},
|
},
|
||||||
setDetailsZoomValue (z) {
|
setDetailsZoomValue (z) {
|
||||||
console.log(`concernement store setDetailsZoomValue ${z}`);
|
console.log(`concernement store setDetailsZoomValue ${z}`);
|
||||||
|
@ -76,7 +76,7 @@ export const UserStore = defineStore({
|
|||||||
console.log('User Loggedin')
|
console.log('User Loggedin')
|
||||||
// todo reload concernements
|
// todo reload concernements
|
||||||
// concrnmtStore().reloadConcernements(); // INFO would be good but to much complicated for now, just reload the page
|
// concrnmtStore().reloadConcernements(); // INFO would be good but to much complicated for now, just reload the page
|
||||||
// window.location.reload();
|
window.location.reload();
|
||||||
resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user