From b241e8f22dd5807b3e4c23bc315a3cae66c0a341 Mon Sep 17 00:00:00 2001 From: Armand Bahi <armand.bahi@veremes.com> Date: Wed, 28 Nov 2018 17:14:16 +0100 Subject: [PATCH] Squashed 'src/module_vmap/' changes from 467dfde..80ac33f MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 80ac33f Merge commit 'fd56b08b8c950792b890153c9cbb0c52ff283156' b22d59b Merge commit 'ec0e1587c956e5208a1cd8362faa7178b3239d35' ccc6bad Merge commit '1ec099860736b22d950437bf3b2392b94c419399' 4337084 pull module_cadastre app_vmap 81d0990 Squashed 'src/module_cadastre/' changes from 0c12f3e..a93f105 1906a37 pull module_cadastreV2 app_vmap 3885f26 Squashed 'src/module_cadastreV2/' changes from 5719ef4..fd56b08 9321087 pull module_anc app_vmap 7ed582e Squashed 'src/module_anc/' changes from 5ef8a76..ec0e158 b10f89f pull module_vm4ms app_vmap 9f5589a Squashed 'src/module_vm4ms/' changes from f42f310..2584bed c051af2 pull module_vmap app_vmap 1ec0998 pull module_cadastre app_vmap da832bf pull module_cadastre app_vmap 354c254 Squashed 'src/module_cadastre/' changes from 0c12f3e..a93f105 3b55bb7 pull module_cadastreV2 app_vmap 9859fc5 pull module_cadastreV2 app_vmap 9980c4b Squashed 'src/module_cadastreV2/' changes from 5719ef4..fd56b08 d0709ee pull module_anc app_vmap b60f114 pull module_anc app_vmap 7ea9ae5 Squashed 'src/module_anc/' changes from 5ef8a76..ec0e158 4572afd pull module_vm4ms app_vmap 8919d3a pull module_vm4ms app_vmap c73d204 Squashed 'src/module_vm4ms/' changes from f42f310..2584bed bb37cbd pull module_vmap app_vmap 6de6c80 pull module_vmap app_vmap 1629e86 Squashed 'src/module_vmap/' changes from 467dfde..83c6b67 f14cfe3 Merge branch 'next_version' Conflicts: src/module_vmap/module/css/vmap.less src/module_vmap/module/template/layers/mapmodal/maplistlitle.html d8339ea Merge branch 'next_version' Conflicts: src/module_vmap/module/css/vmap.less src/module_vmap/module/template/layers/mapmodal/maplistlitle.html 579f292 Fenêtres comparaison et choix de la carte en cours de même largeur a1a294c Fenêtres comparaison et choix de la carte en cours de même largeur fd56b08 Merge commit 'a93f105b814cad44ec1deb72ffc1d192bd2d3720' ec0e158 Merge commit 'a93f105b814cad44ec1deb72ffc1d192bd2d3720' bc6b534 Merge commit 'a93f105b814cad44ec1deb72ffc1d192bd2d3720' 83c6b67 Merge commit 'a93f105b814cad44ec1deb72ffc1d192bd2d3720' c9af259 Merge commit 'a93f105b814cad44ec1deb72ffc1d192bd2d3720' aed57e2 Merge commit '28ac2839fb933147caffe3294df25cc077e41f09' 7ef2ebb Merge commit '28ac2839fb933147caffe3294df25cc077e41f09' 1a0869b Merge commit '28ac2839fb933147caffe3294df25cc077e41f09' 5f38bc7 Merge commit '28ac2839fb933147caffe3294df25cc077e41f09' 13db2f0 Merge commit 'a77c66ec67579160da021bc5521dbc54b5154855' 409c646 Merge commit 'a77c66ec67579160da021bc5521dbc54b5154855' 1e6f02d Merge commit 'a77c66ec67579160da021bc5521dbc54b5154855' 2285d70 Merge commit '9ec6a9125359a496524c3105307946a63760da3c' 749ee86 Merge commit '9ec6a9125359a496524c3105307946a63760da3c' 88027f6 Merge commit '9ec6a9125359a496524c3105307946a63760da3c' bd5282c Merge commit '95760f8e8037d121ac0f9f2b0538fae428a775cb' 1b5b20c Merge commit '95760f8e8037d121ac0f9f2b0538fae428a775cb' cff3af6 Merge commit 'da1ad0ef3177ff6f6fad5bb9265e11bff6f24cfd' 28ac283 Merge branch 'next_version' a93f105 Merge branch 'next_version' a77c66e Merge branch 'next_version' 9ec6a91 Merge branch 'next_version' 95760f8 Merge branch 'next_version' da1ad0e Merge branch 'next_version' 1d29955 Merge branch 'next_version' 55872db Merge branch 'master' into next_version 66eb03a Merge branch 'next_version' de931bc Merge branch 'next_version' 38a75ca Merge branch 'master' 2f9770d Merge branch 'master' 9281372 Merge branch 'master' 78a6c62 Merge branch 'master' 0d5dda2 Merge branch 'master' 642ae49 Merge branch 'master' bf88027 Merge branch 'master' into 'app_vmap' 17aa49c Merge module_cadastreV2 4188d1e Merge module_cadastreV2 3112a2e Merge module_cadastreV2 f6ff85d Merge module_cadastreV2 4dabc71 Merge module_cadastreV2 58a1439 Merge module_cadastreV2 778f28d Merge module_cadastreV2 050f823 Merge commit '1c340f7e20dcc41486d29c6812d09e057081a836' f7b6381 Merge commit '1c340f7e20dcc41486d29c6812d09e057081a836' 64e0916 Merge commit '1c340f7e20dcc41486d29c6812d09e057081a836' 755fd34 Merge commit '1c340f7e20dcc41486d29c6812d09e057081a836' 6db663e Merge commit '1c340f7e20dcc41486d29c6812d09e057081a836' a2957b7 Merge commit '1c340f7e20dcc41486d29c6812d09e057081a836' 1044e68 Merge commit '68cd71305b96656d4b4fc2e3d2ca08654e5302d2' 19df232 Merge commit '68cd71305b96656d4b4fc2e3d2ca08654e5302d2' 7100bf0 Merge commit '68cd71305b96656d4b4fc2e3d2ca08654e5302d2' 86cfabb Merge commit '68cd71305b96656d4b4fc2e3d2ca08654e5302d2' a1d7358 Merge commit '68cd71305b96656d4b4fc2e3d2ca08654e5302d2' 26e216c Merge commit 'af1a2e367201c4fb79711aa447459366b1075d68' a86b0f3 Merge commit 'af1a2e367201c4fb79711aa447459366b1075d68' fccff4b Merge commit 'af1a2e367201c4fb79711aa447459366b1075d68' 041b403 Merge commit 'af1a2e367201c4fb79711aa447459366b1075d68' 749f5d1 Merge commit '348d59b718cb686ea85648f78376400ae15ccbdb' a17c1f4 Merge commit '348d59b718cb686ea85648f78376400ae15ccbdb' fb5f021 Merge commit '348d59b718cb686ea85648f78376400ae15ccbdb' 52b157e Merge commit '4398b26d4ab4082f226a08bea5e3d581bb18e730' 0f812bb Merge commit '4398b26d4ab4082f226a08bea5e3d581bb18e730' a207eb3 Merge branch 'master' into next_version 34a7be7 Rename changelog files 4495e50 Add changelogs from 2017.03.00 7305e1c Merge branch 'ArmandBahi-master-patch-41794' into 'master' c23b994 Update README.md 12d49b7 Merge branch 'patch-1' into 'master' 7841a8f Add license f1cb96c Merge branch 'evolution/27-affiner-l-interface-quand-on-utilise-le-mode-public' into 'next_version' 389330a Ne pas afficher la barre de gauche si le seul outil est vMap 2e6f335 Affichage des outils en fonction des properties 63c138d Affichage des outils en fonction des properties eead76d Merge commit 'a029100abdec58c0e3d867d8f05e12684fc3559f' into next_version a1c50ec Merge commit 'a029100abdec58c0e3d867d8f05e12684fc3559f' into next_version 598c1c3 Merge commit 'c16511be80512da3bed7d4583cc5f73322dd6b34' into next_version 9fb7d98 Merge commit 'c16511be80512da3bed7d4583cc5f73322dd6b34' into next_version 95e4699 Merge commit 'f80d1266b063cb7c0efe13aefae1cafb626de02a' into next_version 270b8fe Merge commit 'f80d1266b063cb7c0efe13aefae1cafb626de02a' into next_version 9043c29 Merge commit '6ecf0ac4cd5cd175aa53ba1389698d45a3861f9c' into next_version d5b7446 Merge commit '6ecf0ac4cd5cd175aa53ba1389698d45a3861f9c' into next_version 3de06dd Merge commit '0d2fdec84a386c64375551ce353118496a196f32' into next_version 99a2138 Merge commit '0d2fdec84a386c64375551ce353118496a196f32' into next_version 1694077 Bug déformation carte imprimée 2f74408 Bug déformation carte imprimée 772b3e0 Bug impressions comparaison : scope.compare_mode not interpreted d2547fb Bug impressions comparaison : scope.compare_mode not interpreted a029100 Merge commit 'ec64b461a62c43778b0b90ceaa8510cbeda39f69' into next_version c16511b Merge commit 'ec64b461a62c43778b0b90ceaa8510cbeda39f69' into next_version f80d126 Merge commit 'ec64b461a62c43778b0b90ceaa8510cbeda39f69' into next_version 6ecf0ac Merge commit 'ec64b461a62c43778b0b90ceaa8510cbeda39f69' into next_version 0d2fdec Merge commit 'ec64b461a62c43778b0b90ceaa8510cbeda39f69' into next_version acd3d63 Merge commit '5719ef4911831174916e5eae65722a3d86daa11e' into next_version 9795f56 Merge commit '5719ef4911831174916e5eae65722a3d86daa11e' into next_version 63499f5 Merge commit '5719ef4911831174916e5eae65722a3d86daa11e' into next_version c465203 Merge commit '5719ef4911831174916e5eae65722a3d86daa11e' into next_version 6d5b584 Merge commit 'a3e5d1d36229f1107457d86efd2f9519ee5a64c9' into next_version a7af232 Merge commit 'a3e5d1d36229f1107457d86efd2f9519ee5a64c9' into next_version 5778862 Merge commit 'a3e5d1d36229f1107457d86efd2f9519ee5a64c9' into next_version 5171052 Merge commit '6a0b53eff0642da887fbeb552b02ea44cb7f823f' into next_version 85c53a9 Merge commit '6a0b53eff0642da887fbeb552b02ea44cb7f823f' into next_version f179ee2 Resolve confilct 305e5c4 Resolve icons conflict da914e9 Icone lien pour generateur url aea547e Icone lien pour generateur url c8a8513 Icone lien pour generateur url 6ec51b8 Merge branch 'evolution/26-generateur-d-url-pour-bo' into 'next_version' b0861e7 Merge branch 'master' into next_version 2931553 Update gitignore 00e7059 Générateur d'url pour BO ca25008 Générateur d'url pour BO f50859e Merge branch 'master' into next_version e89feac Remove squash from subtrees utils b443f83 Merge branch 'master' into next_version 01783af Remove closure from gitignore 16b1d8d Revert "pull subtree" c34ae8c Revert "pull subtree" 8a1d545 Squashed 'src/module_cadastreV2/' changes from 0c12f3e1a..5719ef491 ec64b46 pull subtree a3e5d1d pull subtree 6a0b53e pull subtree 9c324c8 pull subtree 3ce4602 pull subtree ab49657 pull subtree b58c399 Squashed 'src/module_anc/' changes from 0c12f3e1a..5ef8a7624 2234695 pull subtree b93971d pull subtree 28fc805 pull subtree 209350d pull subtree 1a650d5 pull subtree 2f788ee Squashed 'src/module_vm4ms/' changes from 0c12f3e1a..f42f31011 b5bafcb pull subtree 6a13d9e pull subtree 4bb796b pull subtree ee4f9a2 pull subtree 06b33c8 Squashed 'src/module_vmap/' changes from 0c12f3e1a..467dfde8f d140371 pull subtree 5a4861e pull subtree 504d372 pull subtree d640dd3 pull subtree 94d96d8 pull subtree 2e13329 pull subtree 93d178f pull subtree 4e0e577 Squashed 'src/vitis/' changes from 940a5919d..ad685c897 81d25f3 pull subtree 5719ef4 Merge branch 'master' into next_app_vmap 101fad2 Merge branch 'master' into app_vmap 04012fb Remove gitignore d06ee42 Merge branch 'next_version' into next_app_vmap beccf8f Merge branch 'master' into next_version 1c5454e Merge branch 'master' into app_vmap 80c027e Merge branch 'app_vmap' cef5535 Merge branch 'next_app_vmap' into next_version 0c12f3e Merge branch 'next_version' into next_app_vmap db17bf5 Remove gitignore c6890c6 Merge branch 'next_app_vmap' into next_version 1f972d0 Merge branch 'bug/24-url-exporter-ne-fonctionne-pas-si-le-mode-carto-n-est-pas-le-premier-de-l-application' into 'next_version' 2761aec Merge branch 'pre_prod' into next_version c7dc5dc Merge branch 'evolution/2-mode-comparaison-2' into 'pre_prod' 2940c73 Alignement de la projecction de la carte comparée 04a28c5 JS doc 9433179 Ajout de la proj de la carte en comparaison d625dde Syntaxe 42ca573 Ajout du nom de la carte en comparaison 50654dc Correction Recharge légende quand on affiche/cache un service de la carte compare 50b5ed2 Ajout de compare_mode dans le scope e79d29d Comparaison impressions légende 7b74027 Mise au propre a46fa1f Correction problème redimentionnement ba1c14d Comparaison sur la fenêtre légende 051f186 Comparaison sur la fenêtre Jeux de données 2a7c2ee Ajout onglets (visu uniquement) c662099 L'url ouvre l'application sur le mode Carto 5ef8a76 Merge branch 'pre_prod' into evolution/2-mode-comparaison-2 f42f310 Merge branch 'pre_prod' into evolution/2-mode-comparaison-2 d48cfcb Merge branch 'pre_prod' into evolution/2-mode-comparaison-2 9862a97 Remove gitignore e76c445 make push_subtrees.sh executable 9752b76 pull subtree ec4141b Squashed 'src/module_vmap/' changes from fb263937..f081e696 ad685c8 Merge branch 'next_version' into 'next_app_vmap' 4a400f1 Merge branch 'next_app_dtnet' into 'next_version' dc9e09b Merge branch 'next_app_vmap' into 'next_version' ed3718e Next app vmap 6909aee Correctif sur la concaténation de filtres 1e0dea6 Merge branch 'next_version' into 'master' 68d6ee1 Retouche attribut comparator sur les formulaires de filtres ede9aab Add changelog bda76d6 Amélioration forlulaire objet métier fix #9 ffc2d35 Agrandissement du bouton comparaison a9e1f33 [zoom suivant precedent] Dysfonctionnement quand on ouvre les volets latéraux fix #23 2999a93 Supprression des contrôles de la carte de droite fix 22 bc4640e Utilisation de deux champs au lieu d'une checkbox pour la génération des liens dans le mode vMap. fix #21 3493d34 Amélioration de la synchronisation des cartes de comparaison Fix #20 1eeee25 fix #17 image objet metier affiche bouton upload 6ef5abb fix #17 image objet metier affiche bouton upload 77cbfb3 Calcul des superpositions en update Fix #18 ee85f80 fix url uthentification problems Closes #19 5e1ed3c fix url uthentification problems Closes #19 85bb73a Correction problèmes de chargement JS des sous formulaires 1aa1cae Correction problèmes de chargement JS des sous formulaires a74a2a9 pull subtree cb63318 pull subtree dfd4bcb pull subtree 613ccca pull subtree dbebb83 pull subtree 71144e8 pull subtree 181cdba pull subtree 51b130e pull subtree 3868e82 pull subtree 4d555e3 pull subtree 5b7a107 pull subtree a937f6d pull subtree 112cdb5 pull subtree b9ae980 pull subtree 1ad7328 pull subtree 401609c pull subtree 108289c pull subtree 4f5cf22 pull subtree 56346bc pull subtree 116e021 Squashed 'src/module_vmap/' changes from 66dbfede..2b3157a0 30d983f Squashed 'src/vitis/' changes from 4398b26d..940a5919 bf01f32 pull subtree 5e6139f pull subtree 93f3d98 Make push_subtrees runnable bc664f7 Revert "pull subtree" f002069 Correction problèmes chargement JS sous formulaires 9e8f5c6 Correction problèmes chargement JS sous formulaires e999a18 update colonne version pour accepter les version de plus de 10 caractères 4402a3b update colonne version pour accepter les version de plus de 10 caractères ca49780 update colonne version pour accepter les version de plus de 10 caractères 115665f Remove parasit files 3a3fe5d Remove parasit files 07f786f update colonne version pour accepter les version de plus de 10 caractères 1c87936 update colonne version pour accepter les version de plus de 10 caractères 1dd6eeb Merge branch 'next_version' into 'pre_prod' 5883a49 Merge branch 'master' into 'next_version' 7f7f902 Merge branch 'master' into 'next_version' c2776a8 Merge remote-tracking branch 'origin/next_version' into next_version 0b735ab Merge remote-tracking branch 'origin/next_version' into next_version 65aa29c Interface générateur d'URL f29a96e Review Checkbox CSS e85ab01 Review Checkbox CSS f4a1833 Review Checkbox CSS 01d51fa Review Checkbox CSS bdae653 Merge branch 'evolution/2-mode-comparaison-2' into 'next_version' d65f119 Resolve "mode comparaison" d45e75d Interface checkbox 1d9f88d interface liste cartes comparaison 847e66e Amélioration performances f9f4d2c fix problemes coef resolution 233ea36 fix problèmes boutons blockage zone impression 68392db css curseur comparaison ae74ba2 Bouton de comparaison blanc quand la fonctionnalité est activée 1ccb1a8 Mise à l'échelle lors du chargement de la carte f940d51 Correction erreur de compilation sur impression et erreur si élément non présent dans l'impression b3684eb Merge branch 'evolution/9-ajouter-les-listes-deroulantes-au-formulaire-objet-metier' into 'next_version' fb8adf6 Ajout de listes déroulantes au formulaire objet métier 7382c53 Correction Zoom et déformation d'étendue ce3bb9c Resolve "[Studio] suppressions des différents formulaires" 3154da3 Merge branch 'evolution/studio-suppression-des-formulaires' into 'next_version' 4b3c71d Resolve "[Studio] suppressions des différents formulaires" eb48d02 Reset src/module_cadastre 93a4ba8 Reset src/module_cadastre 69a7f28 Utilisation de l'étendue pour la synchronisation 40e7d46 pull subtree dce9cac Merge branch 'bug/5-contraintes-d-urbanisme-remontees-pour-une-parcelle-limitrophe-entre-deux-communes-mauvaise-numerisation' into 'master' 7e14e88 Ajout propertie intersect_id_com pour utiliser un filtre id_com en plus de l'intersection 8a44aec Ajout propertie intersect_id_com pour utiliser un filtre id_com en plus de l'intersection 68214db Update crontab.txt - Changement nom balise a8607fc Merge branch 'bug/4-problemes-lors-qu-un-utilisateur-vmap_admin-et-non-vitis_admin-va-dans-le-mode-configuration' into 'master' a366275 Non affichage du mode configuration pour les utilisateurs vmap_admin 6bdd6f9 retrait console.log et code commenté ed20c32 Merge remote-tracking branch 'origin/next_version' into evolution/2-mode-comparaison-2 10e6f9c Ajout de la fonctionnalitée d'impression sur la carte de comparaison 32fd687 Généralisation de la classe Printbox ceac048 Merge branch 'evolution/7-calculs-de-polygones-jointifs' into 'next_version' 771a565 Merge branch 'Sebastien-master-patch-58096' into 'master' eb1594e Synchronisation 7d3a986 Prettify code 0e53ade Nommage & affichage 500f524 Instanciation du composant Map pour la comparaison et synchro avec le composant classique aee4451 Ajout calcul de polygones jointifs en mode update 3a3c236 correction syntaxe 8fcd4c0 Limite le calcul des polygones jointifs aux types polygon, multipolygon, geometry, geometrycollection 7f4401b Ajout des fonctions de calcul de polygones jointifs 815cedc Add diff_geometry request 40fce0a Retouche pour séparer la vue principale en deux 0974ddb Retouche du sélécteur de carte pour la carte de comparaison af13d1c Ajout de l'outils dans Basictools 0eb3260 Avoid intersections interface 14af3a5 Edit snapping modal title 594f0c3 Add right-click to termine drawing f2ffb07 Add right-click to termine drawing 05c763b Add right-click to termine drawing a05e0fd Add right-click to termine drawing 914a1b6 pull subtree c88aa58 Merge remote-tracking branch 'origin/next_version' into evolution/2-mode-comparaison-2 4cbf5a6 Merge branch 'master' 940a591 Merge branch 'cherry-pick-4398b26d' into 'next_version' 622dea6 Merge branch 'bug/4-formreader-champs-date-non-pris-en-compte-si-on-met-la-date-du-jour-en-insertion' into 'master' 4398b26 Merge branch 'bug/4-formreader-champs-date-non-pris-en-compte-si-on-met-la-date-du-jour-en-insertion' into 'master' d17933b Edit datetime picker event b3b6ec0 Merge branch '1-js-sous-formulaire' into 'master' 41a1553 Load BO Javascript on subforms 4f3da34 Merge branch 'master' into 'next_version' e3923b1 Merge branch 'feature/impressions_144dpi' into 'master' 38bafaf Increase the WMS symbols size to match resolution 431529f Merge branch 'master' into 'next_version' 3516369 Merge branch 'hotfix/swagger_doc' into 'master' 275422b Make swagger work for dev installs 064924e Mise à jour du fichier de version pour fonctionnait avec la version 11.0 de PostgreSQL ee4da38 Add gitignore f53e707 Merge branch 'master' of gitlab.veremes.net:Development/vitis_apps/sources/vitis 6c984be Add client/vas dependencies 1c340f7 pull subtree 895d7e3 pull subtree 12a22d7 pull subtree 7b55e67 Utilisation de dirname($_SERVER['SCRIPT_FILENAME']) au dlieu de __DIR__ 24ea0f3 pull subtree f4326e8 Squashed 'src/module_vm4ms/' changes from 4d95a3da..af1a2e36 68cd713 Merge branch 'master' of gitlab.veremes.net:Development/vitis_apps/application/vmap af1a2e3 Merge branch 'master' of gitlab.veremes.net:Development/vitis_apps/application/vmap 258a417 Modify symlinks strategy 6acd8ed Modify symlinks strategy 1b6864e add subtree 8bb3577 add subtree 4d95a3d add subtree df88c95 Squashed 'src/module_cadastre/' content from commit 0bb9b2fa9 cbd47c2 Squashed 'src/module_cadastre/' content from commit 0bb9b2fa9 a77b5d1 Squashed 'src/module_cadastre/' content from commit 0bb9b2fa9 32487f9 add subtree cc0df5e add subtree d661316 add subtree 16f9769 Merge branch 'master' into next_version b442386 Merge branch 'master' into next_version 24e0fb6 Merge branch 'master' into next_version ad32c46 Merge branch 'master' of gitlab.veremes.net:Development/vitis_apps/sources/module_anc 8158b9a Resolve require problems 373ef42 Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) e132804 Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) 4321adc Change __DIR__ by dirname($_SERVER['SCRIPT_FILENAME']) 7a1818a add subtree 6c1b3e3 Reset sources a195a4d Init from SVN 4ad29c4 add subtree 1ac46cd Squashed 'src/closure/' content from commit 622066d 635a2f9 add subtree 7593c38 Squashed 'src/vitis/' content from commit 01d199c b487cd6 Update from SVN 266e19a Initial commit 3adab3a gitignore 4f506db add gitignore e678ee1 add gitignore b55c5e8 add gitignore 01d199c Update from SVN 7780fca Update from SVN 8ac7a8b Update from SVN df3f8eb Update from SVN 21f8928 gitignore 1d1dcfc gitignore caaa168 gitignore 5674ba2 fixed untracked files bc1486d fixed untracked files 80e8527 fixed untracked files be58244 fixed untracked files 68af99b add subtree 28140b9 add subtree 0b81257 add subtree ce1c22a add subtree 355b5f8 Update from SVN ddd89b9 Update from SVN 4e05585 Update from SVN 1a7d90a Update from SVN 862099b Update from SVN 1f0d403 Update from SVN 519580a Update from SVN 7347d06 Update from SVN 015a4e7 Update from SVN 2feba72 Update from SVN 00cb90d Update from SVN ab8db90 Update dependency.xml 3c167ff Ajout de la dépendance au schema cadastre 9b7aed8 Update dependency.xml d374201 Update dependency.xml 80ef848 Update dependency.xml 8c49823 Divise les dependances client et vas pour apache a7b754e Update _install/dependency.xml 0033955 Update dependency.xml b03d7e5 Update dependency.xml 189e0e6 Update dependency.xml 3bf002c Update dependency.xml 2c489f9 Update dependency.xml b05764f Update dependency.xml 54d83af Update dependency.xml 7743bd8 Update dependency.xml ecf80b3 Update dependency.xml 700adff Change dependencies model 598189b Change dependencies model 87b86b4 Change dependencies model ce4f3cc Change dependencies model 832eb3b Change dependencies model 12a17e1 Change dependencies model a18be2f Chamge dependencies model 449fe8f Modification du titre e3b4bf8 Update README.md git-subtree-dir: src/module_vmap git-subtree-split: 80ac33f902ac5bc6b9254f1411d4265969ac3c52 --- module/css/vmap.less | 32 ++++- ...ration_vitis_configuration_vmapConfig.json | 91 +++++++++++--- ...ap_business_object_vmap_business_object.js | 5 + ..._business_object_vmap_business_object.json | 38 ++++-- module/javascript/app/vmap/map/mapcompare.js | 49 +++++++- .../app/vmap/mapmanager/layerstree.js | 48 ++++++++ .../app/vmap/mapmanager/maplegend.js | 38 +++++- .../app/vmap/mapmanager/mapmanager.js | 10 +- module/javascript/app/vmap/tools/controls.js | 6 +- module/javascript/app/vmap/tools/insert.js | 20 ++- module/javascript/app/vmap/tools/location.js | 19 ++- module/javascript/app/vmap/tools/print.js | 111 +++++++++-------- .../app/vmap/tools/select/basicselect.js | 46 +++++++ .../app/vmap/tools/select/select.js | 8 +- .../javascript/app/vmap/tools/urlexporter.js | 50 ++++---- module/javascript/vitis/script_module.js | 18 +++ module/lang/lang-en.json | 43 +++++-- module/lang/lang-fr.json | 45 +++++-- module/template/layers/layertree.html | 114 +++++++++++++++++- module/template/layers/maplegend.html | 39 +++++- .../layers/mapmodal/maplistlitle.html | 4 +- module/template/tools/basicselect.html | 2 +- module/template/tools/basictools.html | 16 +-- module/template/tools/location.html | 32 ++--- module/template/tools/select.html | 2 +- module/template/tools/urlexporter.html | 32 ++--- module/template/vmap.html | 2 +- web_service/conf/properties.inc | 2 + 28 files changed, 724 insertions(+), 198 deletions(-) diff --git a/module/css/vmap.less b/module/css/vmap.less index cc42f401..aa8dcb82 100644 --- a/module/css/vmap.less +++ b/module/css/vmap.less @@ -2432,9 +2432,39 @@ div.vmap-select-scale-alert{ #basic-tools-dropdown-comapremode{ margin: -10px -1px; - width: 30%; min-width: 450px; max-width: 550px; min-height: 55px; padding-top: 15px !important; } + +@media only screen and (max-width:1200px) { + #basic-tools-dropdown-comapremode { + width: 30%; + } +} +@media only screen and (min-width:1200px) { + #basic-tools-dropdown-comapremode { + width: 550px; + } +} + +.basic-tools-element>span.icon-mirror { + font-size: 16px; + line-height: 0; +} + +.layerstree-nav { + margin-left: 40px; +} + +.layerstree-nav>li>a { + padding: 0px 15px; + border: 1px solid #8a8a8a !important; + color: #333; +} + +.ol-current-projection-compare{ + bottom: 29px; + margin-left: -16%; +} diff --git a/module/forms/configuration/configuration_vitis_configuration_vmapConfig.json b/module/forms/configuration/configuration_vitis_configuration_vmapConfig.json index eed719d9..4304e139 100755 --- a/module/forms/configuration/configuration_vitis_configuration_vmapConfig.json +++ b/module/forms/configuration/configuration_vitis_configuration_vmapConfig.json @@ -1,21 +1,46 @@ { "datasources": { - "datasource_1": { + "datasource_tools": { "type": "object", "dataType": "text", "name": "avaliable_controls", "description": "", "options": [ - "FORM_TOOLS_ATTRIBUTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Attribution", - "FORM_TOOLS_MOUSE_POSITION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|MousePosition", - "FORM_TOOLS_CURRENT_PROJECTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|CurrentProjection", - "FORM_TOOLS_MAP_NAME_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|MapName", - "FORM_TOOLS_SCALE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Scale", - "FORM_TOOLS_SCALE_LINE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|ScaleLine", - "FORM_TOOLS_OVERVIEW_MAP_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|OverviewMap", - "FORM_TOOLS_ZOOM_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Zoom", - "FORM_TOOLS_ZOOM_SLIDER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|ZoomSlider", - "FORM_TOOLS_REFRESH_SOCKET_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|RefreshSocket" + "FORM_TOOLS_MAP_MANAGER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|MapManager", + "FORM_TOOLS_LOCATION_SEARCH_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|LocationSearch", + "FORM_TOOLS_LOCATION_HOME_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|LocationHome", + "FORM_TOOLS_LOCATION_REFRESH_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|LocationRefresh", + "FORM_TOOLS_LOCATION_MAX_EXTENT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|LocationMaxExtent", + "FORM_TOOLS_LOCATION_MY_POSITION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|LocationMyPosition", + "FORM_TOOLS_LOCATION_XY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|LocationXY", + "FORM_TOOLS_LOCATION_PREC_NEXT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|LocationPrecNext", + "FORM_TOOLS_URL_GENERATOR_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|URLGenerator", + "FORM_TOOLS_MAP_COMPARE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|MapCompare", + "FORM_TOOLS_MESURE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Mesure", + "FORM_TOOLS_SELECT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Select", + "FORM_TOOLS_ADVANCED_SELECT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|AdvancedSelect", + "FORM_TOOLS_INSERT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Insert", + "FORM_TOOLS_PRINT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Print", + "FORM_TOOLS_CONFIG_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Config", + "FORM_TOOLS_USER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|User" + ] + }, + "datasource_controls": { + "type": "object", + "dataType": "text", + "name": "avaliable_controls", + "description": "", + "options": [ + "FORM_CONTROLS_ATTRIBUTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Attribution", + "FORM_CONTROLS_MOUSE_POSITION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|MousePosition", + "FORM_CONTROLS_CURRENT_PROJECTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|CurrentProjection", + "FORM_CONTROLS_MAP_NAME_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|MapName", + "FORM_CONTROLS_SCALE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Scale", + "FORM_CONTROLS_SCALE_LINE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|ScaleLine", + "FORM_CONTROLS_OVERVIEW_MAP_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|OverviewMap", + "FORM_CONTROLS_ZOOM_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|Zoom", + "FORM_CONTROLS_ZOOM_SLIDER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|ZoomSlider", + "FORM_CONTROLS_REFRESH_SOCKET_CONFIGURATION_CONFIGURATION_VMAP_CONFIG|RefreshSocket" ] } }, @@ -252,19 +277,53 @@ "fields": [ { "type": "double_select", - "name": "controls.active_controls", + "name": "controls.active_tools", "label_from": "FORM_AVALIABLE_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG", "label_to": "FORM_ACTIVE_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG", "required": false, "nb_cols": 12, "size": 10, - "id": "Element_0_1_1", + "name_to": "controls.active_tools", + "name_from": "controls.active_tool", + "datasource": { + "datasource_id": "datasource_tools" + } + } + ] + }, + { + "fields": [ + { + "type": "double_select", + "name": "controls.public_active_tools", + "label_from": "FORM_AVALIABLE_PUBLIC_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG", + "label_to": "FORM_ACTIVE_PUBLIC_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG", + "required": false, + "nb_cols": 12, + "size": 10, + "name_to": "controls.public_active_tools", + "name_from": "controls.public_active_tool", + "datasource": { + "datasource_id": "datasource_tools" + } + } + ] + }, + { + "fields": [ + { + "type": "double_select", + "name": "controls.active_controls", + "label_from": "FORM_AVALIABLE_CONTROLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG", + "label_to": "FORM_ACTIVE_CONTROLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG", + "required": false, + "nb_cols": 12, + "size": 10, "name_to": "controls.active_controls", "name_from": "controls.active_control", "datasource": { - "datasource_id": "datasource_1" - }, - "id_from": "Element_0_1_1_from" + "datasource_id": "datasource_controls" + } } ] }, diff --git a/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.js b/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.js index 80ce2724..6a1ab146 100644 --- a/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.js +++ b/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.js @@ -250,6 +250,11 @@ var oFormScope; oFormValues['id_field']['options'] = aColumnsOptions; } } + if (angular.isDefined(oFormValues['sorted_by'])) { + if (angular.isDefined(oFormValues['sorted_by']['options'])) { + oFormValues['sorted_by']['options'] = aColumnsOptions; + } + } if (angular.isDefined(oFormValues['geom_column'])) { if (angular.isDefined(oFormValues['geom_column']['options'])) { oFormValues['geom_column']['options'] = aColumnsOptions; diff --git a/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.json b/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.json index 17dbe046..e0168f15 100644 --- a/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.json +++ b/module/forms/vmap_business_object/vmap_business_object_vmap_business_object.json @@ -280,13 +280,24 @@ }, { "fields": [{ - "type": "text", + "type": "editable_select", "name": "sorted_by", "label": "FORM_SORTED_BY_DEVELOPMENT_0", "required": false, - "pattern": "", - "nb_cols": 6, - "id": "New_el_9_11_1" + "nb_cols": 5 + }, { + "type": "button", + "class": "btn-group btn-group-sm margin-top-20", + "nb_cols": 1, + "buttons": [{ + "type": "button", + "name": "table-datalist", + "label": "FORM_SORTED_BY_DEVELOPMENT_0", + "class": "btn-primary", + "event": "loadVMapBoFormColumns()", + "glyphicon": "refresh" + } + ] }] }, { @@ -709,13 +720,24 @@ }, { "fields": [{ - "type": "text", + "type": "editable_select", "name": "sorted_by", "label": "FORM_SORTED_BY_DEVELOPMENT_0", "required": false, - "pattern": "", - "nb_cols": 6, - "id": "New_el_9_11_1" + "nb_cols": 5 + }, { + "type": "button", + "class": "btn-group btn-group-sm margin-top-20", + "nb_cols": 1, + "buttons": [{ + "type": "button", + "name": "table-datalist", + "label": "FORM_SORTED_BY_DEVELOPMENT_0", + "class": "btn-primary", + "event": "loadVMapBoFormColumns()", + "glyphicon": "refresh" + } + ] }] }, { diff --git a/module/javascript/app/vmap/map/mapcompare.js b/module/javascript/app/vmap/map/mapcompare.js index 4fdf3a75..b3304a3c 100644 --- a/module/javascript/app/vmap/map/mapcompare.js +++ b/module/javascript/app/vmap/map/mapcompare.js @@ -86,8 +86,15 @@ nsVmap.MapCompare = function () { * @private */ this.vmapTooltip_ = {}; + // Ajoute les couches à reprojeter en cas de changement de carte dans layersToTransform_ this.layersToTransform_ = []; + + // Vide les controls par défaut + var controls = this.oOpenLayersMap_.getControls().getArray(); + for (var i = 0; i < controls.length; i++) { + this.oOpenLayersMap_.removeControl(controls[i]); + } } /** @@ -512,8 +519,10 @@ nsVmap.MapCompare.prototype.mapCompareController = function ($scope, $window, $e 'size': this_.map.getSize(), 'tileSize': tileSize }); + // Définit la vue de la carte this_.addView(olView_); + // Définit les couches de la carte for (var i = 0; i < olLayers_.length; i++) { this_.addLayer(olLayers_[i]); @@ -526,6 +535,12 @@ nsVmap.MapCompare.prototype.mapCompareController = function ($scope, $window, $e setTimeout(function () { this_.updateCompareScaleMap(); }); + + // Affiche le nom de la carte + this_.displayMapName(); + + // Affiche le nom de la carte + this_.displayMapProj(); }) /** @@ -577,7 +592,7 @@ nsVmap.MapCompare.prototype.mapCompareController.prototype.synchronizeMap = func var this_ = this; // Synchro Échelle - oVmap.getMap().getOLMap().getTargetElement().addEventListener('mouseenter', function(){ + this_.map.getTargetElement().addEventListener('mouseleave', function(){ oVmap.getMap().getOLMap().on("moveend", this_.updateCompareScaleMap, this_); this_.map.un("moveend", this_.updateScaleMap, this_); }); @@ -758,3 +773,35 @@ nsVmap.MapCompare.prototype.mapCompareController.prototype.addView = function (o }); } }; + +/** + * Display the map name tool + */ +nsVmap.MapCompare.prototype.mapCompareController.prototype.displayMapName = function () { + oVmap.log('nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.displayMapName'); + + if ($("#map-name-compare").length == 0) { + $('#olMapCompare').children().children('.ol-overlaycontainer-stopevent').append('<div class="ol-map-name ol-map-name-compare ol-unselectable"><span id="map-name-compare" class="ol-control"></span></div>'); + } + + var vMapCatalog = oVmap.getMapManager().getMapCatalog(); + for (var i = 0; i < vMapCatalog['maps'].length; i++) { + if (vMapCatalog['maps'][i]['compare'] === true) { + var currentMapName = vMapCatalog['maps'][i]['name']; + } + } + $("#map-name-compare").html(currentMapName); +} + +/** + * Display the map proj tool + */ +nsVmap.MapCompare.prototype.mapCompareController.prototype.displayMapProj = function () { + oVmap.log('nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.displayMapProj'); + + if ($("#current-projection-compare").length == 0) { + $('#olMapCompare').children().children('.ol-overlaycontainer-stopevent').append('<div class="ol-current-projection ol-unselectable ol-current-projection-compare"><span id="current-projection-compare" class="ol-control"></span></div>'); + } + + $("#current-projection-compare").html(oVmap['oProjections'][oVmap.getMapCompare().getOLMap().getView().getProjection().getCode()]); +} diff --git a/module/javascript/app/vmap/mapmanager/layerstree.js b/module/javascript/app/vmap/mapmanager/layerstree.js index 673cb4e0..2a5fe743 100644 --- a/module/javascript/app/vmap/mapmanager/layerstree.js +++ b/module/javascript/app/vmap/mapmanager/layerstree.js @@ -117,6 +117,19 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController = function ($scope, */ $scope['tree'] = oVmap.getMapManager().getLayersTree(); + + /** + * The map compare layersTree + * @type {object} + */ + $scope['compareTree'] = {}; + + + /** + * The active map + */ + $scope['activeMap'] = 1; + /** * The current properties */ @@ -194,6 +207,17 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController = function ($scope, }; oVmap.module.controller('AppLayertreeController', nsVmap.nsMapManager.LayersTree.prototype.LayertreeController); +/** + * Resize the layertools + */ +nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.resize = function () { + oVmap.log('nsVmap.nsMapManager.LayersTree.LayertreeController.resize'); + + setTimeout(function () { + oVmap.resizeLayerTools(); + }); +} + /** * Set a layer visible or not * @param {ol.layer.Base} olLayer @@ -270,6 +294,8 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.setGroupV } this.memoriseGroupVisible(node); + + oVmap['scope'].$broadcast('layersChanged'); }; /** @@ -350,6 +376,14 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.reloadTre // relance le chargement des couches avec le nouvel arbre this.loadTree(); + // Arbre pour la comparaison + if(this.scope_["$root"]["compare_enabled"]){ + var oCompareTree = jQuery.extend(true, {}, oVmap.getMapManager().getCompareLayersTree()); + this.scope_['compareTree'] = oCompareTree; + } else { + this.scope_['compareTree'] = {}; + } + oVmap.resizeLayerTools(false); }; @@ -638,6 +672,20 @@ nsVmap.nsMapManager.LayersTree.prototype.LayertreeController.prototype.closeLaye } } } + + if (goog.isDefAndNotNull(this.scope_['compareTree'])) { + if (goog.isArray(this.scope_['compareTree']['children'])) { + for (var i = 0; i < this.scope_['compareTree']['children'].length; i++) { + if (goog.isDefAndNotNull(this.scope_['compareTree']['children'][i]['children'])) { + for (var ii = 0; ii < this.scope_['compareTree']['children'][i]['children'].length; ii++) { + if (goog.isDefAndNotNull(this.scope_['compareTree']['children'][i]['children'][ii]['olLayer'])) { + this.scope_['compareTree']['children'][i]['children'][ii]['displayedMenu'] = false; + } + } + } + } + } + } }; /** diff --git a/module/javascript/app/vmap/mapmanager/maplegend.js b/module/javascript/app/vmap/mapmanager/maplegend.js index 48d2e54e..c6759068 100644 --- a/module/javascript/app/vmap/mapmanager/maplegend.js +++ b/module/javascript/app/vmap/mapmanager/maplegend.js @@ -136,7 +136,17 @@ nsVmap.nsMapManager.MapLegend.prototype.maplegendController = function ($scope) /** * @private */ - this['aUrls'] = []; + this['oUrls'] = {}; + + /** + * @private + */ + this['oCompareUrls'] = {}; + + /** + * The active map + */ + $scope['activeMap'] = 1; /** * Contains the events stocked by listenLayers() @@ -158,6 +168,18 @@ nsVmap.nsMapManager.MapLegend.prototype.maplegendController = function ($scope) }); }; + +/** + * Resize the layertools + */ +nsVmap.nsMapManager.MapLegend.prototype.maplegendController.prototype.resize = function () { + oVmap.log('nsVmap.nsMapManager.MapLegend.maplegendController.resize'); + + setTimeout(function () { + oVmap.resizeLayerTools(); + }); +} + /** * Loads the legend * @export @@ -165,18 +187,26 @@ nsVmap.nsMapManager.MapLegend.prototype.maplegendController = function ($scope) nsVmap.nsMapManager.MapLegend.prototype.maplegendController.prototype.loadLegend = function () { oVmap.log('nsVmap.nsMapManager.MapLegend.maplegendController.loadLegend'); - this['oUrls'] = this.getLegendUrls(); + this['oUrls'] = this.getLegendUrls(oVmap.getMap().getOLMap()); this.downloadLegendImgs(this['oUrls']); + + if(this.$scope_["$root"]["compare_enabled"]){ + this['oCompareUrls'] = this.getLegendUrls(oVmap.getMapCompare().getOLMap()); + this.downloadLegendImgs(this['oCompareUrls']); + } else { + this['oCompareUrls'] = {}; + } }; /** * Get the legend URLs + * @param {object} olMap * @returns {object} */ -nsVmap.nsMapManager.MapLegend.prototype.maplegendController.prototype.getLegendUrls = function () { +nsVmap.nsMapManager.MapLegend.prototype.maplegendController.prototype.getLegendUrls = function (olMap) { oVmap.log('nsVmap.nsMapManager.MapLegend.maplegendController.getLegendUrls'); - var aLayers = oVmap.getMap().getOLMap().getLayers().getArray(); + var aLayers = olMap.getLayers().getArray(); var oUrls = {}; // Récupération des URL WMS diff --git a/module/javascript/app/vmap/mapmanager/mapmanager.js b/module/javascript/app/vmap/mapmanager/mapmanager.js index 13114d60..d42d368d 100644 --- a/module/javascript/app/vmap/mapmanager/mapmanager.js +++ b/module/javascript/app/vmap/mapmanager/mapmanager.js @@ -314,7 +314,7 @@ nsVmap.nsMapManager.MapManager.prototype.loadCompareMap = function (element) { var this_ = this; this_.getAjaxLayersTree(sUrl, function(oTree){ - oVmap.log("oTree: ", oTree); + oVmap.log("oCompareTree: ", oTree); // Change la variable oLayersTree this_.setCompareLayersTree(oTree); @@ -927,7 +927,7 @@ nsVmap.nsMapManager.MapManager.prototype.ajaxGetMapCatalog = function (sUrl) { * @return {object<LayersTree>} */ nsVmap.nsMapManager.MapManager.prototype.getAjaxLayersTree = function (sUrl, callback) { - var LayersTree; + var oLayersTree; ajaxRequest({ 'method': 'GET', @@ -937,11 +937,9 @@ nsVmap.nsMapManager.MapManager.prototype.getAjaxLayersTree = function (sUrl, cal 'success': function (response) { var data = JSON.parse(response['data']); if (goog.isDef(data['mapjsons'])) { - LayersTree = data['mapjsons'][0]; + oLayersTree = data['mapjsons'][0]; } - - oVmap.log(LayersTree); - callback.call(this, LayersTree); + callback.call(this, oLayersTree); } }); }; diff --git a/module/javascript/app/vmap/tools/controls.js b/module/javascript/app/vmap/tools/controls.js index 67b20e2e..6fee41a7 100755 --- a/module/javascript/app/vmap/tools/controls.js +++ b/module/javascript/app/vmap/tools/controls.js @@ -31,7 +31,7 @@ goog.require('ol.format.TopoJSON'); /** * @classdesc * Class {@link nsVmap.nsToolsManager.Controls}: Add the controls defined in data/tools.json, - * available : Attribution, FullScreen, MousePosition, OverviewMap, Rotate, ScaleLine, Zoom, ZoomSlider, + * available : Attribution, FullScreen, MousePosition, OverviewMap, Rotate, ScaleLine, Zoom, ZoomSlider, * ZoomToExtent, CurrentProjection, DragAndDrop (GPX,GeoJSON,IGC,KML,TopoJSON) * @param {array} aControls Controls to set * @constructor @@ -273,7 +273,7 @@ nsVmap.nsToolsManager.Controls.prototype.addControl = function (control) { /** * Toggle a control to the ol map * @param {string} control Control to toggle - * @param {boolean} bActive + * @param {boolean} bActive * @export */ nsVmap.nsToolsManager.Controls.prototype.setToolActive = function (control, bActive) { @@ -426,4 +426,4 @@ nsVmap.nsToolsManager.Controls.prototype.getOverviewMap = function () { // Définit la directive et le controller oVmap.module.directive('appControls', nsVmap.nsToolsManager.Controls.prototype.controlsDirective); -oVmap.module.controller('AppControlsController', nsVmap.nsToolsManager.Controls.prototype.controlsController); \ No newline at end of file +oVmap.module.controller('AppControlsController', nsVmap.nsToolsManager.Controls.prototype.controlsController); diff --git a/module/javascript/app/vmap/tools/insert.js b/module/javascript/app/vmap/tools/insert.js index 456136bc..ce07b268 100644 --- a/module/javascript/app/vmap/tools/insert.js +++ b/module/javascript/app/vmap/tools/insert.js @@ -317,6 +317,19 @@ nsVmap.nsToolsManager.Insert.prototype.inserttoolController = function ($scope, // Supprime du trou de la feature (si il existe) feature lors de la sélection sur l'interaction this.deleteHole_ this.deleteHole_.on('select', this.deleteHole, this); + // Évite les superpositions à l'édition + this.modify_.on('modifyend', function (evt) { + + // Récupère la feature ajoutée + var aFeatures = evt.features.getArray(); + + var j = 0; + for (var i = 0; i < aFeatures.length; i++) { + // Évite les superpositions avec les autres couches si besoin + this_.avoidSuperpositions(aFeatures[i]); + } + }); + // Lance updateInsertObjectFeature lors de chaque changement sur this.oOverlayFeatures_ // si il n'y a pas eut de changements pendant 500ms var iTmpChanges = 0; @@ -324,6 +337,7 @@ nsVmap.nsToolsManager.Insert.prototype.inserttoolController = function ($scope, // Retire les anciennes features si on est pas en mode multi var sGeomType = $scope['oInsertObject']['sGeomType']; + // Si il ne s'agit pas d'une géométrie multiple if (goog.isDefAndNotNull(sGeomType)) { if (sGeomType.substr(0, 5) !== 'MULTI' && sGeomType !== 'GEOMETRYCOLLECTION') { @@ -1244,7 +1258,7 @@ nsVmap.nsToolsManager.Insert.prototype.inserttoolController.prototype.setDiffGeo this_.setDiffGeom_(aSuperpositionBos, olFeature, opt_options); } }, function(err){ - console.error('Cannot get the diff geom: ', err) + console.error('Cannot get the diff geom: ', err); }); } @@ -1282,11 +1296,11 @@ nsVmap.nsToolsManager.Insert.prototype.inserttoolController.prototype.getDiffGeo return 0; } if (!goog.isDefAndNotNull(response['data'][0])) { - deferred.reject('response.data[0] not defined'); + deferred.resolve(sEWKTGeom); return 0; } if (!goog.isDefAndNotNull(response['data'][0]['diff_geom'])) { - deferred.reject('response.data[0].diff_geom not defined'); + deferred.resolve(sEWKTGeom); return 0; } deferred.resolve(response['data'][0]['diff_geom']); diff --git a/module/javascript/app/vmap/tools/location.js b/module/javascript/app/vmap/tools/location.js index 4cd96440..415bd9cb 100644 --- a/module/javascript/app/vmap/tools/location.js +++ b/module/javascript/app/vmap/tools/location.js @@ -197,12 +197,25 @@ nsVmap.nsToolsManager.Location.prototype.locationController = function ($scope, fHistoryDelayHandler = $timeout(function () { if(this_['iHistoryOffset'] === 0){ - this_["aLocationHistory"].push({ + + var oNewLocation = { center: this_.map_.getView().getCenter(), zoom: this_.map_.getView().getZoom() - }); + } + + var oLastLocation = this_['aLocationHistory'][this_['aLocationHistory'].length - 1]; + + if (this_['aLocationHistory'].length > 0) { + if (oNewLocation.zoom === oLastLocation.zoom && + oNewLocation.center[0] === oLastLocation.center[0] && + oNewLocation.center[1] === oLastLocation.center[1]) { + return 0; + } + } + + this_["aLocationHistory"].push(oNewLocation); } else { - // splice + // splice var iHistoryPosition = this_['aLocationHistory'].length - (this_['iHistoryOffset']); this_["aLocationHistory"].splice(iHistoryPosition, this_['iHistoryOffset'], { center: this_.map_.getView().getCenter(), diff --git a/module/javascript/app/vmap/tools/print.js b/module/javascript/app/vmap/tools/print.js index efc99e6a..f2d041ca 100644 --- a/module/javascript/app/vmap/tools/print.js +++ b/module/javascript/app/vmap/tools/print.js @@ -161,11 +161,23 @@ nsVmap.nsToolsManager.Print.prototype.printController = function ($timeout, $com this.template_; /** - * Size of the printZone + * Size of the map printZone * @private */ this.printedMapSize_; + /** + * Size of the compare map printZone + * @private + */ + this.printedCompareMapSize_; + + /** + * Size of the overview map printZone + * @private + */ + this.printedOverviewMapSize_; + /** * this.printedMapSize_ resize coeff * @private @@ -363,10 +375,10 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.loadModelParmas2 oVmap.log('nsVmap.nsToolsManager.Print.printController.loadModelParmas2'); // Récupère la taille de la carte this.printedMapSize_ ainsi que le coefficient this.resizeCoeff_ - oPrintMapSize = this.getPrintedMapSize(this.template_); + this.printedMapSize_ = this.getPrintedMapSize(this.template_, '#map1', '#map_image'); + this.printedOverviewMapSize_ = this.getPrintedMapSize(this.template_, '#map1', '#map_overview'); - this.printedMapSize_ = oPrintMapSize.printedMapSize; - this.resizeCoeff_ = oPrintMapSize.resizeCoeff; + this.resizeCoeff_ = this.printedMapSize_.resizeCoeff; // Pré-rempli le champ "Résolution" this['resolution'] = this.resizeCoeff_; @@ -375,26 +387,29 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.loadModelParmas2 this['currentScale'] = oVmap.getMap().getPrettyScale(oVmap.getMap().getScale() / this.resizeCoeff_); // Dessine un carré d'impression à chaque mouvement de la carte - this.printBox_.setSize(this.printedMapSize_); + this.printBox_.setSize(this.printedMapSize_.printedMapSize); this.printBox_.show(); if(this.$scope_["$root"]["compare_enabled"]){ - this.oComparePrintMapSize = this.getPrintedMapSize(this.template_,"#map1Compare","#map_image_compare"); - if(this.oComparePrintMapSize !== 0){ + this.printedCompareMapSize_ = this.getPrintedMapSize(this.template_, "#map1Compare", "#map_image_compare"); + + if(this.printedCompareMapSize_ !== 0){ // Pré-rempli le champ "Résolution" - this['resolutionCompare'] = this.oComparePrintMapSize.resizeCoeff; + this['resolutionCompare'] = this.printedCompareMapSize_.resizeCoeff; // Ajuste l'échelle avec le niveau de détail - this['currentScaleCompare'] = oVmap.getMapCompare().getPrettyScale(oVmap.getMapCompare().getScale() / this.oComparePrintMapSize.resizeCoeff); + this['currentScaleCompare'] = oVmap.getMapCompare().getPrettyScale(oVmap.getMapCompare().getScale() / this.printedCompareMapSize_.resizeCoeff); // Dessine un carré d'impression à chaque mouvement de la carte - this.printBoxCompare_.setSize(this.oComparePrintMapSize.printedMapSize); + this.printBoxCompare_.setSize(this.printedCompareMapSize_.printedMapSize); this.printBoxCompare_.show(); } else { this.printBoxCompare_.hide(); } } + // Supprime le template du body de Vmap + $(this.template_).remove(); }; /** @@ -420,11 +435,18 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.setTemplate = fu }); } + this.$scope_['compare_mode'] = this.$scope_["$root"]["compare_enabled"]; + if (goog.isDefAndNotNull(oModel['definition'])) { var template = document.createElement("div"); template.innerHTML = oModel['definition']; + + this.$compile_(template)(this.$scope_); this_.template_ = template; - callback.call(this, [template]); + + setTimeout(function () { + callback.call(this_, [template]); + }); } }; @@ -450,6 +472,8 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.getPrintedMapSiz return 0; } + oPrintScope = angular.element($(template).find(sPrintId)).scope(); + // Ajoute temporairement le template au body de Vmap $(template).addClass('print_template'); $('body').append(template); @@ -457,9 +481,6 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.getPrintedMapSiz var mapHeight = imageDiv.height(); var mapWidth = imageDiv.width(); - // Supprime le template du body de Vmap - $(template).remove(); - // Vérifie si la taille de la carte est suppérieur à la taille de l'écran var resizeCoeff = 1; var tmpWidth = angular.copy(mapWidth); @@ -472,6 +493,7 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.getPrintedMapSiz return { printedMapSize: [mapWidth, mapHeight], + realSize: [imageDiv.width(), imageDiv.height()], resizeCoeff: resizeCoeff } }; @@ -575,7 +597,7 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.prepareAndLaunch // récupération des infos pour la carte de comparaison si le mode comparaison est actif if(this.$scope_['$root']["compare_enabled"]){ - if(this.oComparePrintMapSize !== 0){ + if(this.printedCompareMapSize_ !== 0){ // Enregistre l'échelle actuelle this.currentScaleCompare_ = oVmap.getMapCompare().getScale({ 'pretty': true @@ -635,14 +657,22 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.print = function var printStyleId = opt_options.printStyleId; // Set includesJSON - var includesJson = JSON.stringify([{ + var aIncludes = [{ 'target': '#map_legend', - 'html': this_.getLegendTemplate() - }]); + 'html': this_.getLegendTemplate('#maplegend') + }]; + if(this.$scope_["$root"]["compare_enabled"]){ + aIncludes.push({ + 'target': '#map_legend_compare', + 'html': this_.getLegendTemplate('#compare_maplegend') + }); + } + var includesJson = JSON.stringify(aIncludes); // Set scope var oPrintScope = goog.isDefAndNotNull(opt_options.scope) ? opt_options.scope : {}; oPrintScope['date'] = goog.isDefAndNotNull(oPrintScope['date']) ? oPrintScope['date'] : today; + oPrintScope['compare_mode'] = this.$scope_["$root"]["compare_enabled"] === true ? true : false; var sScope = JSON.stringify(oPrintScope); // Ouvre la fenêtre d'impression @@ -687,12 +717,9 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.print = function var sFormat = response['data']['data'][0]['rt_format_id']; var sOrientation = response['data']['data'][0]['rt_orientation_id']; - var template = document.createElement("div"); - template.innerHTML = response['data']['data'][0]['definition']; - - var mapImageSize = this_.getTemplateTargetSize(template, '#map_image'); - var mapImageSizeCompare = this_.getTemplateTargetSize(template, '#map_image_compare'); - var overviewSize = this_.getTemplateTargetSize(template, '#map_overview'); + var mapImageSize = this_.printedMapSize_.realSize; + var mapImageSizeCompare = this_.printedCompareMapSize_.realSize; + var overviewSize = this_.printedOverviewMapSize_.realSize; var oJsonDefOptions = { mapId: opt_options.mapId, @@ -780,6 +807,10 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.print = function return 1; }; +/** + * Get the maps JSON defs + * @param {object} opt_options + */ nsVmap.nsToolsManager.Print.prototype.printController.prototype.getMapsJsonDef = function (opt_options) { oVmap.log('nsVmap.nsToolsManager.Print.prototype.printController.prototype.getMapsJsonDef'); @@ -899,40 +930,14 @@ nsVmap.nsToolsManager.Print.prototype.printController.prototype.getMapsJsonDef = return mapsJson; } -/** - * Get the size of a target in a template - * @param {string} template - * @param {string} target - * @returns {Array<Number>|undefined} - */ -nsVmap.nsToolsManager.Print.prototype.printController.prototype.getTemplateTargetSize = function (template, target) { - - var targetDiv = $(template).find(target); - - // Vérifie la présence de '#map_image' - if (!goog.isDef(targetDiv.get(0))) { - oVmap.log('Aucune balise ' + target + ' trouvée dans le template'); - return undefined; - } - - $('body').append(template); - - var targetHeight = targetDiv.height(); - var targetWidth = targetDiv.width(); - - // Supprime le template du body de Vmap - $(template).remove(); - - return [targetWidth, targetHeight]; -}; - /** * Get the html definition of the template with base64 images + * @param {string} sTarget * @returns {String} */ -nsVmap.nsToolsManager.Print.prototype.printController.prototype.getLegendTemplate = function () { +nsVmap.nsToolsManager.Print.prototype.printController.prototype.getLegendTemplate = function (sTarget) { - var template = $('#maplegend').clone(); + var template = $(sTarget).clone(); // Transforme les images en base64 template.find('img').each(function (index) { diff --git a/module/javascript/app/vmap/tools/select/basicselect.js b/module/javascript/app/vmap/tools/select/basicselect.js index f8d0af3c..200baf00 100755 --- a/module/javascript/app/vmap/tools/select/basicselect.js +++ b/module/javascript/app/vmap/tools/select/basicselect.js @@ -542,6 +542,7 @@ nsVmap.nsToolsManager.BasicSelect.prototype.basicSelectController.prototype.repl nsVmap.nsToolsManager.BasicSelect.prototype.basicSelectController.prototype.displaySelectionPopup = function (aSelection, olPoint) { oVmap.log('nsVmap.nsToolsManager.BasicSelect.prototype.basicSelectController.prototype.displaySelectionPopup'); + var this_ = this; var scope = this.$scope_; for (var i = 0; i < aSelection.length; i++) { @@ -659,6 +660,51 @@ nsVmap.nsToolsManager.BasicSelect.prototype.basicSelectController.prototype.disp } }); } + + aSelection[i]['mapPopup'].addAction({ + 'content': '<span class="icon-link_url"></span> Lien vers cet objet' , + 'event': angular.bind(this, function(i){ + scope.$apply(function () { + // generate url for this object; + var sUrl = this_['properties']['web_server_name'] + "/" + this_['properties']['application']; + + if (goog.isDefAndNotNull(this_['properties']['environment'])){ + if (this_['properties']['environment'] != ""){ + sUrl += "_" + this_['properties']['environment']; + } + } + + sUrl += "?mode_id=vmap&"; + + var oMapCatalog = oVmap.getMapManager().getMapCatalog(); + var iMapId = oMapCatalog["maps"][oMapCatalog["usedMap"]]["map_id"]; + + sUrl += "map_id=" + iMapId + "&"; + sUrl += "bo_id=" + aSelection[i]["bo_type"] + "&"; + sUrl += "ids=" + aSelection[i]["bo_id_value"]; + + //copy url to clipboard + var textArea = document.createElement("textarea"); + textArea.value = sUrl; + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + + try { + var successful = document.execCommand('copy'); + if (successful){ + $.notify('L\'URL d\'accés à cette objet a été copié dans votre presse-papier : \n' + sUrl, 'success'); + } else { + $.notify('L\'URL d\'accés à cette objet n\'a pas pu être copié dans votre presse-papier : \n' + sUrl, 'error'); + } + } catch (err) { + $.notify('L\'URL d\'accés à cette objet n\'a pas pu être copié dans votre presse-papier : \n' + sUrl, 'error'); + console.error('Fallback: Oops, unable to copy', err); + } + document.body.removeChild(textArea); + }); + }, i) + }); } // Ajoute les résultats diff --git a/module/javascript/app/vmap/tools/select/select.js b/module/javascript/app/vmap/tools/select/select.js index 9c89bc22..0944cee5 100755 --- a/module/javascript/app/vmap/tools/select/select.js +++ b/module/javascript/app/vmap/tools/select/select.js @@ -539,13 +539,14 @@ nsVmap.nsToolsManager.Select.prototype.selectController = function ($scope, $tim // Récupère la feature ajoutée var aFeatures = evt.features.getArray(); - // Évite les superpositions avec les autres couches si besoin var j = 0; for (var i = 0; i < aFeatures.length; i++) { + // Évite les superpositions avec les autres couches si besoin this_.avoidSuperpositions(aFeatures[i]).then(function(){ j++; if (!j < aFeatures.length) { setTimeout(function () { + // Enregistre les changements this_.putFeaturesOnTheElement(this_.oOverlayFeatures_.getArray()); }); } @@ -556,6 +557,7 @@ nsVmap.nsToolsManager.Select.prototype.selectController = function ($scope, $tim setTimeout(function () { if (j === 0) { console.error('avoidSuperpositions never sents callback'); + // Enregistre les changements this_.putFeaturesOnTheElement(this_.oOverlayFeatures_.getArray()); } }, 3000); @@ -2332,11 +2334,11 @@ nsVmap.nsToolsManager.Select.prototype.selectController.prototype.getDiffGeom_ = return 0; } if (!goog.isDefAndNotNull(response['data'][0])) { - deferred.reject('response.data[0] not defined'); + deferred.resolve(sEWKTGeom); return 0; } if (!goog.isDefAndNotNull(response['data'][0]['diff_geom'])) { - deferred.reject('response.data[0].diff_geom not defined'); + deferred.resolve(sEWKTGeom); return 0; } deferred.resolve(response['data'][0]['diff_geom']); diff --git a/module/javascript/app/vmap/tools/urlexporter.js b/module/javascript/app/vmap/tools/urlexporter.js index d89684f2..d531827e 100644 --- a/module/javascript/app/vmap/tools/urlexporter.js +++ b/module/javascript/app/vmap/tools/urlexporter.js @@ -68,35 +68,38 @@ nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController = function ($s /** * @type {string} */ - this["urlToExport"] = ""; + this["privateExportUrl"] = ""; + /** - * @type {boolean} + * @type {string} */ - this["usePublicToken"] = false; - - this["urlConstructor"](); + this["publicExportUrl"] = ""; // recalcule l'url quand on change de carte oVmap['scope'].$on('mapChanged', function () { - this_["urlConstructor"](); + this_["privateExportUrl"] = this_.getExportUrl(); + this_["publicExportUrl"] = this_.getExportUrl(true); }); - $scope.$watch("ctrl.usePublicToken", function(){ - this_["urlConstructor"](); - }) - + // recalcule l'url quand on bouge la carte oVmap.getMap().getOLMap().on("moveend", function(event){ - this_["urlConstructor"](); + this_["privateExportUrl"] = this_.getExportUrl(); + this_["publicExportUrl"] = this_.getExportUrl(true); }); + + // Recalcule l'URL + this_["privateExportUrl"] = this_.getExportUrl(); + this_["publicExportUrl"] = this_.getExportUrl(true); }; /** - * Display the user form in display mode - * @returns {undefined} + * Generates and return the export URL + * @param {boolean} bPublic + * @return {string} * @export */ -nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController.prototype.urlConstructor = function () { - oVmap.log("nsVmap.nsToolsManager.Urlexporter.urlExporterController.urlConstructor"); +nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController.prototype.getExportUrl = function (bPublic) { + oVmap.log("nsVmap.nsToolsManager.Urlexporter.urlExporterController.getExportUrl"); var sUrl = this['properties']['web_server_name'] + "/" + this['properties']['application']; @@ -106,7 +109,7 @@ nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController.prototype.urlC } } - sUrl += "?"; + sUrl += "?mode_id=vmap&"; var oMapCatalog = oVmap.getMapManager().getMapCatalog(); var iMapId = oMapCatalog["maps"][oMapCatalog["usedMap"]]["map_id"]; @@ -114,7 +117,7 @@ nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController.prototype.urlC sUrl += "map_id=" + iMapId; // si public add token - if (this["usePublicToken"]){ + if (bPublic === true){ sUrl += "&token=" + this['properties']['public_token']; } @@ -122,20 +125,23 @@ nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController.prototype.urlC var sExtent = oVmap.getMap().getOLMap().getView().calculateExtent(oVmap.getMap().getOLMap().getSize()).join("|"); sUrl += "&extent=" + encodeURI(sExtent); - this["urlToExport"] = sUrl; + return sUrl; }; - /** * Copy the generated URL on the clipboard - * + * @param {boolean} bPublic * @export */ -nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController.prototype.copyUrl = function () { +nsVmap.nsToolsManager.Urlexporter.prototype.urlExporterController.prototype.copyUrl = function (bPublic) { oVmap.log("nsVmap.nsToolsManager.Urlexporter.urlExporterController.copyUrl"); /* Get the text field */ - var copyText = document.getElementById("urlExporterField"); + if (bPublic === true) { + var copyText = document.getElementById("publicExportUrlField"); + } else { + var copyText = document.getElementById("privateExportUrlField"); + } /* Select the text field */ copyText.select(); diff --git a/module/javascript/vitis/script_module.js b/module/javascript/vitis/script_module.js index 00d7bea3..d740803e 100644 --- a/module/javascript/vitis/script_module.js +++ b/module/javascript/vitis/script_module.js @@ -3607,4 +3607,22 @@ vitisApp.on('appMainDrtvLoaded', function () { "sMessage": "LIST_DELETE_CONFIRM_VMAP_BUSINESS_OBJECT" }); }; + + /** + * Return true/false if the tool is avaliable for this user + * @param {string} sTool + * @return {boolean} + */ + angular.element(vitisApp.appMainDrtv).scope()["isVmapToolActive"] = function (sTool) { + + var aTools; + + if (propertiesSrvc['public_user']) { + aTools = propertiesSrvc['controls']['public_active_tools'].split('|'); + } else { + aTools = propertiesSrvc['controls']['active_tools'].split('|'); + } + + return aTools.indexOf(sTool) !== -1 ? true : false; + } }); diff --git a/module/lang/lang-en.json b/module/lang/lang-en.json index 29d2d9f9..dfca19f9 100644 --- a/module/lang/lang-en.json +++ b/module/lang/lang-en.json @@ -251,19 +251,40 @@ "FORM_PRINTSERVER_ALIAS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Printserver alias", "FORM_VEREMAP_API_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Veremap API", "FORM_PROXY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Proxy", + "FORM_AVALIABLE_CONTROLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Avaliable controls", + "FORM_ACTIVE_CONTROLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Actives controls", "FORM_AVALIABLE_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Avaliable tools", "FORM_ACTIVE_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Active tools", - "FORM_TOOLS_ATTRIBUTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Attribution", - "FORM_TOOLS_MOUSE_POSITION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Mouse position", - "FORM_TOOLS_CURRENT_PROJECTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Current projection", - "FORM_TOOLS_MAP_NAME_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Map Name", - "FORM_TOOLS_SCALE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Numeric scale", - "FORM_TOOLS_OVERVIEW_MAP_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Overview map", - "FORM_TOOLS_ROTATE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Rotate", - "FORM_TOOLS_SCALE_LINE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Scale line", - "FORM_TOOLS_ZOOM_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Zoom", - "FORM_TOOLS_ZOOM_SLIDER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Zoom slider", - "FORM_TOOLS_REFRESH_SOCKET_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Refresh auto", + "FORM_AVALIABLE_PUBLIC_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Avaliable tools for public user", + "FORM_ACTIVE_PUBLIC_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Active tools for public user", + "FORM_CONTROLS_ATTRIBUTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Attribution", + "FORM_CONTROLS_MOUSE_POSITION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Mouse position", + "FORM_CONTROLS_CURRENT_PROJECTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Current projection", + "FORM_CONTROLS_MAP_NAME_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Map Name", + "FORM_CONTROLS_SCALE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Numeric scale", + "FORM_CONTROLS_OVERVIEW_MAP_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Overview map", + "FORM_CONTROLS_ROTATE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Rotate", + "FORM_CONTROLS_SCALE_LINE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Scale line", + "FORM_CONTROLS_ZOOM_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Zoom", + "FORM_CONTROLS_ZOOM_SLIDER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Zoom slider", + "FORM_CONTROLS_REFRESH_SOCKET_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Refresh auto", + "FORM_TOOLS_MAP_MANAGER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Gestion des cartes", + "FORM_TOOLS_LOCATION_SEARCH_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Localisation recherche", + "FORM_TOOLS_LOCATION_HOME_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Position initiale", + "FORM_TOOLS_LOCATION_REFRESH_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Rafraichissement carte", + "FORM_TOOLS_LOCATION_MAX_EXTENT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Étendue maximale", + "FORM_TOOLS_LOCATION_MY_POSITION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Position GPS", + "FORM_TOOLS_LOCATION_XY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Position XY", + "FORM_TOOLS_LOCATION_PREC_NEXT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Précédent/suivant", + "FORM_TOOLS_URL_GENERATOR_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "URL de la carte en cours", + "FORM_TOOLS_MAP_COMPARE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Comparaison de cartes", + "FORM_TOOLS_MESURE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Mesures", + "FORM_TOOLS_SELECT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Interrogation", + "FORM_TOOLS_ADVANCED_SELECT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Interrogation avancée", + "FORM_TOOLS_INSERT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Insertion", + "FORM_TOOLS_PRINT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Impressions", + "FORM_TOOLS_CONFIG_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Configuration contrôles", + "FORM_TOOLS_USER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Utilisateur en cours", "TITLE_DISPLAY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Display", "TITLE_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Tools", "TITLE_CONTROLS_KEEPLOADED_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Keep tiles loaded when autorefreshing", diff --git a/module/lang/lang-fr.json b/module/lang/lang-fr.json index 82fca25d..a1b1a7bb 100644 --- a/module/lang/lang-fr.json +++ b/module/lang/lang-fr.json @@ -251,19 +251,40 @@ "FORM_PRINTSERVER_ALIAS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Alias pintserver", "FORM_VEREMAP_API_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "API Veremap", "FORM_PROXY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Proxy", + "FORM_AVALIABLE_CONTROLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Contrôles disponibles", + "FORM_ACTIVE_CONTROLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Contrôles actifs", "FORM_AVALIABLE_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Outils disponibles", - "FORM_ACTIVE_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Outils actifs par défaut", - "FORM_TOOLS_ATTRIBUTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Attributions", - "FORM_TOOLS_MOUSE_POSITION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Position de la souris", - "FORM_TOOLS_CURRENT_PROJECTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Projection en cours", - "FORM_TOOLS_MAP_NAME_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Nom de la carte", - "FORM_TOOLS_SCALE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Échelle numérique", - "FORM_TOOLS_SCALE_LINE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Échelle graphique", - "FORM_TOOLS_OVERVIEW_MAP_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Carte de supervision", - "FORM_TOOLS_ROTATE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Rotation", - "FORM_TOOLS_ZOOM_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Zoom", - "FORM_TOOLS_ZOOM_SLIDER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Slider de zoom", - "FORM_TOOLS_REFRESH_SOCKET_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Rafraichissement auto", + "FORM_ACTIVE_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Outils actifs", + "FORM_AVALIABLE_PUBLIC_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Outils disponibles pour l'utilisateur public", + "FORM_ACTIVE_PUBLIC_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Outils actifs pour l'utilisateur public", + "FORM_CONTROLS_ATTRIBUTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Attributions", + "FORM_CONTROLS_MOUSE_POSITION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Position de la souris", + "FORM_CONTROLS_CURRENT_PROJECTION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Projection en cours", + "FORM_CONTROLS_MAP_NAME_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Nom de la carte", + "FORM_CONTROLS_SCALE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Échelle numérique", + "FORM_CONTROLS_SCALE_LINE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Échelle graphique", + "FORM_CONTROLS_OVERVIEW_MAP_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Carte de supervision", + "FORM_CONTROLS_ROTATE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Rotation", + "FORM_CONTROLS_ZOOM_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Zoom", + "FORM_CONTROLS_ZOOM_SLIDER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Slider de zoom", + "FORM_CONTROLS_REFRESH_SOCKET_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Rafraichissement auto", + "FORM_TOOLS_MAP_MANAGER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Gestion des cartes", + "FORM_TOOLS_LOCATION_SEARCH_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Localisation recherche", + "FORM_TOOLS_LOCATION_HOME_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Localisation position initiale", + "FORM_TOOLS_LOCATION_REFRESH_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Rafraichissement couches", + "FORM_TOOLS_LOCATION_MAX_EXTENT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Localisation étendue maximale", + "FORM_TOOLS_LOCATION_MY_POSITION_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Localisation GPS", + "FORM_TOOLS_LOCATION_XY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Localisation XY", + "FORM_TOOLS_LOCATION_PREC_NEXT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Localisation précédent/suivant", + "FORM_TOOLS_URL_GENERATOR_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "URL de la carte en cours", + "FORM_TOOLS_MAP_COMPARE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Comparaison de cartes", + "FORM_TOOLS_MESURE_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Mesures", + "FORM_TOOLS_SELECT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Interrogation", + "FORM_TOOLS_ADVANCED_SELECT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Interrogation avancée", + "FORM_TOOLS_INSERT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Insertion", + "FORM_TOOLS_PRINT_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Impressions", + "FORM_TOOLS_CONFIG_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Configuration contrôles", + "FORM_TOOLS_USER_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Utilisateur en cours", "TITLE_DISPLAY_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Affichage", "TITLE_TOOLS_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Outils", "TITLE_CONTROLS_KEEPLOADED_CONFIGURATION_CONFIGURATION_VMAP_CONFIG": "Garder les tuiles lors d'un rafraichissement automatique", diff --git a/module/template/layers/layertree.html b/module/template/layers/layertree.html index 5002135b..3141c44e 100644 --- a/module/template/layers/layertree.html +++ b/module/template/layers/layertree.html @@ -12,10 +12,20 @@ </div> <div id="layertree" class="layers-tool" collapse="{{ctrl.layerstree_collapsed === true ? 'out' : 'in'}}"> + + <ul class="nav nav-tabs layerstree-nav left" ng-show="$root.compare_enabled"> + <li ng-class="{'active' : activeMap == 1}"> + <a href="#" ng-click="activeMap=1;ctrl.resize()">Carte 1</a> + </li> + <li ng-class="{'active' : activeMap == 2}"> + <a href="#" ng-click="activeMap=2;ctrl.resize()">Carte 2</a> + </li> + </ul> <div class="indicators"> <span class="text-info icon-eye" style="font-size: 18px;line-height: 0" title="Définit si la couche est visible"></span> </div> - <ul class="tree"> + + <ul class="tree" ng-show="activeMap == 1 || !$root.compare_enabled"> <div ng-repeat="node in tree.children| orderBy : 'name'" ng-if="node.view === undefined"> <!-- Service --> @@ -140,6 +150,108 @@ </ul> </div> </ul> + + <ul class="tree" ng-show="activeMap == 2 && $root.compare_enabled"> + <div ng-repeat="node in compareTree.children| orderBy : 'name'" ng-if="node.view === undefined"> + + <!-- Service --> + <div class="layerstree-phather"> + <div class="tree-father-collapse-btn service-name left" data-toggle="collapse" data-target="#comparetree_element_{{$id}}" onclick="setTimeout(function () { + oVmap.resizeLayerTools(true) + }, 500)" title="{{node.name}}"> + {{node.name}} + </div> + <div class="checkbox checkbox-info inline-checkbox right" + ng-class="{'checkbox_indeterminate': node.visible === null}"> + <input id="compare_service_{{$id}}_visible" + ng-init="node.visible = ctrl.isGroupVisible(node)" + ng-model="node.visible" + ng-model-options="{getterSetter: true}" + ng-click="ctrl.setGroupVisible(node)" + type="checkbox" + style="cursor:pointer; position: absolute" + title="Definit si le groupe est visible"> + <label for="compare_service_{{$id}}_visible" + style="cursor:pointer" + title="Definit si le groupe est visible"></label> + </div> + </div> + + <!-- Calque --> + <ul id="comparetree_element_{{$id}}" class="collapse layers-tree-ul tree-element" ng-class="{'in': ctrl.layers_collapsed !== true}"> + <div ng-repeat="layer in node.children"> + <li> + <ul class="list-group-item layertree-item auto-height"> + + <!-- Nom du calque --> + <div class="layer-name layer-name-tree" title="{{layer.name}}">{{layer.name}}</div> + <div class="layer-checkboxes"> + <button type="button" + class="btn btn-xs margin-sides-10 hidden" + ng-click="layer.olLayer.getSource().refreshWithTimestamp()"> + <span class="glyphicon glyphicon-refresh"></span> + </button> + <div type="button" class="btn btn-xs layer-menu-button" ng-click="ctrl.toggleLayerMenu(layer, $event)"> + <span ng-class="{'icon-filter': layer.olLayer.get('is_filtered'), 'icon-format_list_bulleted': !layer.olLayer.get('is_filtered')}"></span> + </div> + <!-- Checkbox visible --> + <div class="checkbox checkbox-info inline-checkbox" style="z-index: 10;"> + <input id="{{layer.$$hashKey}}_compare_visible_order_checkbox" + type="checkbox" + style="cursor:pointer; position: absolute" + title="Definit si le calque est visible" + ng-checked="layer.olLayer.values.visible === true" + ng-click="ctrl.setVisible(layer.olLayer, !layer.olLayer.values.visible);node.visible = ctrl.isGroupVisible(node)"> + <label for="{{layer.$$hashKey}}_compare_visible_order_checkbox" style="cursor:pointer" title="Definit si la couche est visible"></label> + </div> + </div> + </ul> + </li> + <div class="dropdown-menu layer-menu" ng-class="{'block': layer.displayedMenu === true}"> + <div class="layer-menu-list"> + <li ng-if="layer.olLayer.get('is_filtered')" ng-click="ctrl.displayFilterLayerModal(layer.olLayer)"> + <a href="#"> + <span class="icon-filter"></span> + Filtre + </a> + </li> + <li> + <a href="#"> + <div class="row"> + <div class="col-xs-6"> + <span class="icon-star-half"></span> + Transparence + </div> + <div class="col-xs-6"> + <div class="layer-menu-list-slider"> + <input data-app-layer-opacity-slider="" id="compare_slider_layer_form_{{layer.$$hashKey}}" type="text"> + </div> + </div> + </div> + </a> + </li> + <li ng-if="layer.olLayer.get('type') === 'imagewms' || layer.olLayer.get('type') === 'tilewms'" + ng-repeat="sublayer in layer.olLayer.get('sublayers')"> + <div class="sublayer-checkboxes"> + <!-- Checkbox visible --> + <div class="checkbox checkbox-info sublayer-checkbox inline-checkbox"> + <input id="{{layer.$$hashKey}}_compare_sublayer_{{sublayer}}_visible_checkbox" + type="checkbox" + style="cursor:pointer; position: absolute" + title="Definit si la couche est visible" + ng-checked="ctrl.isSublayerActive(layer.olLayer, sublayer)" + ng-disabled="layer.olLayer.values.visible !== true" + ng-click="ctrl.toggleSubLayer(layer.olLayer, sublayer, '#' + layer.$$hashKey + '_sublayer_' + sublayer + '_visible_checkbox')"> + <label for="{{layer.$$hashKey}}_compare_sublayer_{{sublayer}}_visible_checkbox" style="cursor:pointer" title="Definit si la couche est visible">{{sublayer}}</label> + </div> + </div> + </li> + </div> + </div> + </div> + </ul> + </div> + </ul> </div> <!--Modale pour le filtrage--> diff --git a/module/template/layers/maplegend.html b/module/template/layers/maplegend.html index a82570aa..4c34eb49 100755 --- a/module/template/layers/maplegend.html +++ b/module/template/layers/maplegend.html @@ -1,9 +1,9 @@ <div class="maplegendtool"> <div ng-if="!$root.is_mobile" id="maplegendcontainer-button"> - <div class="list-group-item active pointer maplegend-button-content" - title="Légende de la carte" + <div class="list-group-item active pointer maplegend-button-content" + title="Légende de la carte" collapse="{{ctrl.legend_collapsed === true ? 'out' : 'in'}}" - data-target="#maplegendcontainer" + data-target="#maplegendcontainer" onclick="oVmap.getMapManager().collapseElement(this)"> <span class="icon-info list-group-icon"></span> <span>Légende</span> @@ -12,7 +12,15 @@ </div> </div> <div id="maplegendcontainer" class="layers-tool legend" collapse="{{ctrl.legend_collapsed === true ? 'out' : 'in'}}"> - <div id="maplegend" class="tree legend"> + <ul class="nav nav-tabs layerstree-nav" ng-show="$root.compare_enabled"> + <li ng-class="{'active' : activeMap == 1}"> + <a href="#" ng-click="activeMap=1;ctrl.resize()">Carte 1</a> + </li> + <li ng-class="{'active' : activeMap == 2}"> + <a href="#" ng-click="activeMap=2;ctrl.resize()">Carte 2</a> + </li> + </ul> + <div id="maplegend" class="tree legend" ng-show="activeMap == 1 || !$root.compare_enabled"> <div ng-repeat="(sLayerName, layer) in ctrl.oUrls" class="layer-legend" ng-show="ctrl.areLegendsLoaded(layer)"> <div id="legend_father{{$index}}" data-toggle="collapse" data-target="#legend_element_{{$index}}"> @@ -23,7 +31,26 @@ <div id="legend_element_{{$index}}" class="collapse in"> <ul class="list-group-item auto-height"> <div ng-repeat="node in layer" - ng-show="node.legendBlobURL"> + ng-show="node.legendBlobURL"> + <img ng-src="{{node.legendBlobURL}}" class="legend-img" legend-image-node> + </div> + </ul> + </div> + </div> + </div> + + <div id="compare_maplegend" class="tree legend" ng-show="activeMap == 2 && $root.compare_enabled"> + <div ng-repeat="(sLayerName, layer) in ctrl.oCompareUrls" class="layer-legend" + ng-show="ctrl.areLegendsLoaded(layer)"> + <div id="compare_legend_father{{$index}}" data-toggle="collapse" data-target="#compere_legend_element_{{$index}}"> + <div style="display: inline-block; width:98%"> + <div class="legend_father_name" title="{{sLayerName}}">{{sLayerName}}</div> + </div> + </div> + <div id="compare_legend_element_{{$index}}" class="collapse in"> + <ul class="list-group-item auto-height"> + <div ng-repeat="node in layer" + ng-show="node.legendBlobURL"> <img ng-src="{{node.legendBlobURL}}" class="legend-img" legend-image-node> </div> </ul> @@ -31,4 +58,4 @@ </div> </div> </div> -</div> \ No newline at end of file +</div> diff --git a/module/template/layers/mapmodal/maplistlitle.html b/module/template/layers/mapmodal/maplistlitle.html index e2ff1e2f..bbfb1ce3 100644 --- a/module/template/layers/mapmodal/maplistlitle.html +++ b/module/template/layers/mapmodal/maplistlitle.html @@ -47,7 +47,7 @@ <div url="{{map.url}}" ng-if="compare" title="{{map.description}}" - class="col-md-6 margin-10 pointer opacity-hover underline-hover maplist-map" + class="col-md-3 margin-10 pointer opacity-hover underline-hover maplist-map" style="text-align: center; font-size: 12px;" onclick="oVmap.getMapManager().loadCompareMap(this)" data-dismiss="modal"> @@ -74,7 +74,7 @@ <div ng-if="($index + 1) % 4 !== 0 && compare" url="{{map.url}}" title="{{map.description}}" - class="col-md-6 margin-10 pointer opacity-hover underline-hover maplist-map" + class="col-md-3 margin-10 pointer opacity-hover underline-hover maplist-map" style="text-align: center; font-size: 12px;" onclick="oVmap.getMapManager().loadCompareMap(this)" data-dismiss="modal"> diff --git a/module/template/tools/basicselect.html b/module/template/tools/basicselect.html index 1f829c66..d0ecff8d 100644 --- a/module/template/tools/basicselect.html +++ b/module/template/tools/basicselect.html @@ -1,6 +1,6 @@ <div id="vmap-basicselect-tool"></div> -<li role="presentation" style="position: inherit" class="basic-tools-dropdown"> +<li role="presentation" style="position: inherit" class="basic-tools-dropdown" ng-class="{'hidden': !$root.isVmapToolActive('Select')}"> <a class="basic-tools-element pointer" id="basic-tools-dropdown-basicselect-btn" ng-show="ctrl.aBusinessObjectsList.length > 0 || (ctrl.properties.selection.enable_getfeatureinfo === true && ctrl.aQueryableLayers.length > 0)" diff --git a/module/template/tools/basictools.html b/module/template/tools/basictools.html index 03218712..8d42420c 100644 --- a/module/template/tools/basictools.html +++ b/module/template/tools/basictools.html @@ -5,12 +5,12 @@ <!-- Outils de localisation --> <div app-location app-lang="ctrl.lang" app-map="ctrl.map"></div> <!-- Outil d'export d'url --> - <div> + <div ng-class="{'hidden': !$root.isVmapToolActive('URLGenerator')}"> <li role="presentation" style="position: inherit" class="basic-tools-dropdown"> <a class="basic-tools-element pointer" title="Lien vers la carte en cours" onclick="oVmap.getToolsManager().getBasicTools().toggleTool(this)"> - <span class="fa fa-link" aria-hidden="true"></span> + <span class="icon-link_url" aria-hidden="true"></span> </a> <div app-url-exporter app-lang="ctrl.lang" app-map="ctrl.map" id="basic-tools-dropdown-urlexporter" @@ -20,7 +20,7 @@ </li> </div> <!-- Outil de comparaison --> - <div> + <div ng-class="{'hidden': !$root.isVmapToolActive('MapCompare')}"> <li role="presentation" style="position: inherit" class="basic-tools-dropdown"> <a class="basic-tools-element pointer" id="map-compare-tool-btn" @@ -36,7 +36,7 @@ </li> </div> <!-- Login de l'utilisateur --> - <div class="right"> + <div class="right" ng-class="{'hidden': !$root.isVmapToolActive('User')}"> <li role="presentation" style="position: inherit" class="basic-tools-dropdown"> <a class="basic-tools-element pointer" title="Utilisateur" @@ -50,7 +50,7 @@ </li> </div> <!-- Contrôles --> - <div class="right"> + <div class="right" ng-class="{'hidden': !$root.isVmapToolActive('Config')}"> <li role="presentation" style="position: inherit" class="basic-tools-dropdown"> <a class="basic-tools-element pointer" title="Outils de contrôle" @@ -64,7 +64,7 @@ </li> </div> <!-- Impression --> - <div class="right"> + <div class="right" ng-class="{'hidden': !$root.isVmapToolActive('Print')}"> <li role="presentation" style="position: inherit" class="basic-tools-dropdown"> <a id="print-select-btn" class="basic-tools-element pointer" @@ -79,7 +79,7 @@ </li> </div> <!-- Insertion --> - <div class="right"> + <div class="right" ng-class="{'hidden': !$root.isVmapToolActive('Insert')}"> <li role="presentation" style="position: inherit" class="basic-tools-dropdown"> <a class="basic-tools-element pointer" id="basic-tools-dropdown-insert-btn" @@ -96,7 +96,7 @@ <!--Outils de sélection--> <div app-select app-lang="ctrl.lang" app-map="ctrl.map" app-action="ctrl.currentAction" class="right basic-tools-nav"></div> <!-- Mesure --> - <div class="right"> + <div class="right" ng-class="{'hidden': !$root.isVmapToolActive('Mesure')}"> <li style="position: inherit" class="basic-tools-dropdown"> <a class="basic-tools-element pointer" title="Outils de mesure" diff --git a/module/template/tools/location.html b/module/template/tools/location.html index a9f3e9bc..62e46ed3 100644 --- a/module/template/tools/location.html +++ b/module/template/tools/location.html @@ -1,16 +1,16 @@ <!--location search--> -<li id="location-search-tool" role="presentation"> +<li id="location-search-tool" role="presentation" ng-class="{'hidden': !$root.isVmapToolActive('LocationSearch')}"> <form ng-submit="ctrl.searchLocation()" id="location-search-form" class="margin-sides-5 from-control"> <!--Recherche--> <input id="location-search-input" - type="text" + type="text" placeholder="Localiser.." ng-model="ctrl.locationSearch" ng-click="ctrl.searchLocation()"> <!--Sélecteur--> <select id="location-search-api-select" ng-model="ctrl.sSelectedLocationService" - ng-change="ctrl.searchLocation()"> + ng-change="ctrl.searchLocation()"> <!--Géocodeurs--> <option ng-repeat="(key, value) in ctrl.locationServices" value="{{key}}">{{value.title}}</option> @@ -26,7 +26,7 @@ <!--Bandeau du haut--> <div style="margin: 10px"> <label>Résultats de la recherche: </label> - <span class="glyphicon glyphicon-remove right pointer margin-sides-10" + <span class="glyphicon glyphicon-remove right pointer margin-sides-10" ng-click="ctrl.removeLocation()"></span> </div> @@ -65,12 +65,12 @@ <!-- Géocodeur --> <div ng-if="locationServiceType === 'geocoder'" class="location-search-dropdown-content"> - <div class="location-search-dropdown-result" + <div class="location-search-dropdown-result" ng-repeat="node in ctrl.locationResults"> <div class="pointer opacity-hover" ng-click="ctrl.locatePlace(node)"> <span>{{node.title}}</span> - </div> + </div> <div class="location-search-dropdown-result-buttons pointer collapsed" data-toggle="collapse" href="#location-search-dropdown-result-infos-{{this['$index']}}"> <a>Détails</a> @@ -78,7 +78,7 @@ </div> <div class="collapse" id="location-search-dropdown-result-infos-{{this['$index']}}"> - <div style="padding-bottom: 10px" ng-if="node.summary"> + <div style="padding-bottom: 10px" ng-if="node.summary"> <ul> <li ng-repeat="oSummaryElement in node.summary">{{oSummaryElement.label}}: {{oSummaryElement.value}}</li> </ul> @@ -91,13 +91,13 @@ <div style="text-align: center; margin: 10px;"> <button type="button" class="btn btn-sm btn-primary" ng-click="ctrl.searchLocation(ctrl.locationSearch, 12)"> Plus de résultats - </button> + </button> </div> </div> </li> <!--Go home--> -<li role="presentation"> +<li role="presentation" ng-class="{'hidden': !$root.isVmapToolActive('LocationHome')}"> <a id="original-position-tool" class="basic-tools-element pointer" title="Centrer la carte sur l’emprise par défaut" ng-click="ctrl.goHome()"> @@ -106,7 +106,7 @@ </li> <!--Refresh map--> -<li role="presentation"> +<li role="presentation" ng-class="{'hidden': !$root.isVmapToolActive('LocationRefresh')}"> <a id="original-position-tool" class="basic-tools-element pointer" title="Rafraichir les couches de la carte" ng-click="ctrl.refreshMap()"> @@ -115,7 +115,7 @@ </li> <!--Max extent--> -<li role="presentation"> +<li role="presentation" ng-class="{'hidden': !$root.isVmapToolActive('LocationMaxExtent')}"> <a class="basic-tools-element pointer" title="Centrer la carte à l’étendue maximale" ng-click="ctrl.maxExtent()"> <span class="icon-language" aria-hidden="true"></span> @@ -123,7 +123,7 @@ </li> <!--Geolocate me--> -<li role="presentation"> +<li role="presentation" ng-class="{'hidden': !$root.isVmapToolActive('LocationMyPosition')}"> <a class="basic-tools-element pointer" title="Centrer la carte sur ma position" ng-click="ctrl.geolocateMe()"> <span class="glyphicon glyphicon-map-marker" aria-hidden="true"></span> @@ -131,7 +131,7 @@ </li> <!--Go to--> -<li role="presentation" style="position: inherit" class="basic-tools-dropdown"> +<li role="presentation" style="position: inherit" class="basic-tools-dropdown" ng-class="{'hidden': !$root.isVmapToolActive('LocationXY')}"> <a class="basic-tools-element pointer" title="Centrer la carte sur une position donnée" @@ -148,7 +148,7 @@ <div class="input-group-sm"> <input type="number" class="form-control" placeholder="Y" ng-model="goToY"> </div> - </div> + </div> <div class="col-md-5"> <b>Projection:</b> <select class="form-control" ng-model="goToProj"> @@ -169,7 +169,7 @@ </li> <!--Previous history--> -<li role="presentation"> +<li role="presentation" ng-class="{'hidden': !$root.isVmapToolActive('LocationPrecNext')}"> <a class="basic-tools-element pointer" title="Aller à l'étendue précédente" ng-click="ctrl.previousHistoryExtent()" ng-class="{'inactive' : ctrl.iHistoryOffset >= ctrl.aLocationHistory.length - 1}"> <span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span> @@ -177,7 +177,7 @@ </li> <!--Next history--> -<li role="presentation"> +<li role="presentation" ng-class="{'hidden': !$root.isVmapToolActive('LocationPrecNext')}"> <a class="basic-tools-element pointer" title="Aller à l'étendue suivante" ng-click="ctrl.nextHistoryExtent()" ng-class="{'inactive' : ctrl.iHistoryOffset === 0}"> <span class="glyphicon glyphicon-arrow-right" aria-hidden="true"></span> diff --git a/module/template/tools/select.html b/module/template/tools/select.html index 24ae5ca8..f801d83e 100644 --- a/module/template/tools/select.html +++ b/module/template/tools/select.html @@ -2,7 +2,7 @@ <div id="vmap-select-tool"></div> <!-- Selection Avancée --> -<div class="right" ng-if="!$root.is_mobile"> +<div class="right" ng-if="!$root.is_mobile" ng-class="{'hidden': !$root.isVmapToolActive('AdvancedSelect')}"> <li role="presentation" style="position: inherit" class="basic-tools-dropdown"> <a class="basic-tools-element pointer" id="basic-tools-dropdown-select-btn" diff --git a/module/template/tools/urlexporter.html b/module/template/tools/urlexporter.html index c10845a6..a1602e30 100644 --- a/module/template/tools/urlexporter.html +++ b/module/template/tools/urlexporter.html @@ -2,29 +2,29 @@ <div class="row margin-sides-0 margin-10"> <div class="col-md-12"> <div class="left"> - <label for="urlExporterField" class="control-label">Lien vers la carte en cours</label> - </div> - <div class="right" ng-if="ctrl.properties.allow_public_connection"> - <div class="checkbox checkbox-info checkbox-inline"> - <input id="publicAccountCheckbox" - type="checkbox" - style="cursor:pointer;" - title=">Activer / Désactiver le mode public" - ng-model="ctrl.usePublicToken"> - <label for="publicAccountCheckbox" - style="cursor:pointer" - title="Activer / Désactiver le mode public"> - Public - </label> - </div> + <label for="privateExportUrlField" class="control-label">Lien vers la carte en cours</label> </div> </div> <div class="col-md-12"> <div class="input-group"> - <input type="text" class="form-control" ng-model="ctrl.urlToExport" id="urlExporterField"> + <span class="input-group-btn"> + <button type="button" class="btn btn-default" disabled><span class="fa fa-lock"></span></button> + </span> + <input type="text" class="form-control" ng-model="ctrl.privateExportUrl" id="privateExportUrlField"> <span class="input-group-btn"> <button type="button" class="btn btn-default" ng-click="ctrl.copyUrl()"><span class="icon-copy"></span></button> </span> </div> </div> + <div class="col-md-12 margin-10" ng-if="ctrl.properties.allow_public_connection"> + <div class="input-group"> + <span class="input-group-btn"> + <button type="button" class="btn btn-default" disabled><span class="fa fa-unlock"></span></button> + </span> + <input type="text" class="form-control" ng-model="ctrl.publicExportUrl" id="publicExportUrlField"> + <span class="input-group-btn"> + <button type="button" class="btn btn-default" ng-click="ctrl.copyUrl(true)"><span class="icon-copy"></span></button> + </span> + </div> + </div> </div> diff --git a/module/template/vmap.html b/module/template/vmap.html index 0b1b12f9..3dfe8e97 100755 --- a/module/template/vmap.html +++ b/module/template/vmap.html @@ -19,7 +19,7 @@ <app-maplistlitle app-lang="ctrl.lang" app-maplistlitle-map="ctrl.map"></app-maplistlitle> - <div id="map-manager-button-container" style="text-align: center"> + <div id="map-manager-button-container" style="text-align: center" ng-class="{'hidden': !$root.isVmapToolActive('MapManager')}"> <button id="map-manager-button" type="button" class="btn btn-success btn-sm btn-modal margin-10" diff --git a/web_service/conf/properties.inc b/web_service/conf/properties.inc index f21d672f..14c81c89 100755 --- a/web_service/conf/properties.inc +++ b/web_service/conf/properties.inc @@ -10,6 +10,8 @@ $properties["vmap"]["layers_collapsed"] = false; $properties["vmap"]["layerstree_collapsed"] = false; $properties["vmap"]["layersorder_collapsed"] = true; $properties["vmap"]["legend_collapsed"] = false; +$properties['controls']['active_tools'] = 'LocationMaxExtent|User|Print|Insert|AdvancedSelect|Select|Mesure|URLGenerator|MapManager|LocationSearch|LocationHome|LocationRefresh|LocationXY|MapCompare|LocationMyPosition'; +$properties['controls']['public_active_tools'] = 'User|Insert|AdvancedSelect|LocationXY|MapManager|LocationHome|MapCompare|Select|Print|LocationSearch|LocationMyPosition|Mesure'; $properties['controls']['active_controls'] = 'Attribution|MousePosition|CurrentProjection|MapName|Scale|ScaleLine|OverviewMap|Zoom|ZoomSlider|RefreshSocket'; $properties["selection"]["limit_popup"] = 1; $properties["selection"]["limit_list"] = 50; -- GitLab