Skip to content

Commit c07a1bb

Browse files
committed
Fixing bugs with geojson shapes on the map
1 parent 1d915ed commit c07a1bb

File tree

3 files changed

+81
-38
lines changed

3 files changed

+81
-38
lines changed

src/main/java/org/computate/frFR/java/EcrireGenClasse.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3753,12 +3753,6 @@ else if(entiteSetUpper)
37533753
}
37543754
else {
37553755
l();
3756-
if(
3757-
StringUtils.equals(entiteNomCanonique, VAL_nomCanoniquePoint) || StringUtils.equals(entiteNomCanonique, VAL_nomCanoniquePath) || StringUtils.equals(entiteNomCanonique, VAL_nomCanoniquePolygon)
3758-
|| StringUtils.equals(entiteNomCanoniqueGenerique, VAL_nomCanoniquePoint) || StringUtils.equals(entiteNomCanoniqueGenerique, VAL_nomCanoniquePath) || StringUtils.equals(entiteNomCanoniqueGenerique, VAL_nomCanoniquePolygon)
3759-
) {
3760-
tl(1, "@JsonIgnore");
3761-
}
37623756
tl(1, "public void set", entiteVarCapitalise, "(", entiteNomSimpleComplet, " ", entiteVar, ") {");
37633757
if(StringUtils.equals(entiteNomCanonique, ZonedDateTime.class.getCanonicalName())) {
37643758
tl(2, "this.", entiteVar, " = Optional.ofNullable(", entiteVar, ").map(v -> v.truncatedTo(ChronoUnit.MILLIS)).orElse(null);");

src/main/java/org/computate/frFR/java/EcrirePageClasse.java

Lines changed: 73 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2849,6 +2849,17 @@ public void ecrirePageHeadJinja(String langueNom, JsonObject i18nPage, Boolean e
28492849
tl(6, ", weight: 1");
28502850
tl(6, ", opacity: 0.7");
28512851
tl(6, ", fillOpacity: 0.7");
2852+
2853+
tl(6, ", contextmenu: true");
2854+
tl(6, ", contextmenuItems: [");
2855+
tl(7, "{");
2856+
tl(8, "text: 'Show coordinates'");
2857+
tl(8, ", callback: function(event) {");
2858+
tl(9, "alert(event2.target.getLatLngs());");
2859+
tl(8, "}");
2860+
tl(7, "}");
2861+
tl(6, "]");
2862+
28522863
tl(5, "};");
28532864
tl(4, "} else if(feature.geometry.type == 'LineString') {");
28542865
tl(5, "return {");
@@ -3793,7 +3804,19 @@ else if(entiteAttribuer) {
37933804
}
37943805
auteurPageJs.tl(3, "});");
37953806
auteurPageJs.tl(2, "} else {");
3796-
auteurPageJs.tl(3, "window.map", classeNomSimple, " = L.map('htmBody", i18nPage.getString(I18n.var_Graphique), i18nPage.getString(I18n.var_Emplacement), classePageNomSimple, "', {closePopupOnClick: false});");
3807+
auteurPageJs.tl(3, "window.map", classeNomSimple, " = L.map('htmBody", i18nPage.getString(I18n.var_Graphique), i18nPage.getString(I18n.var_Emplacement), classePageNomSimple, "', {");
3808+
auteurPageJs.tl(4, "closePopupOnClick: false");
3809+
auteurPageJs.tl(4, ", contextmenu: true");
3810+
auteurPageJs.tl(4, ", contextmenuWidth: 140");
3811+
auteurPageJs.tl(4, ", contextmenuItems: [");
3812+
auteurPageJs.tl(5, "{");
3813+
auteurPageJs.tl(6, "text: 'Show coordinates'");
3814+
auteurPageJs.tl(6, ", callback: function(event) {");
3815+
auteurPageJs.tl(7, "alert(event.latlng);");
3816+
auteurPageJs.tl(6, "}");
3817+
auteurPageJs.tl(5, "}");
3818+
auteurPageJs.tl(5, "]");
3819+
auteurPageJs.tl(3, "});");
37973820
auteurPageJs.tl(3, "var data = [];");
37983821
auteurPageJs.tl(3, "var layout = {};");
37993822
auteurPageJs.tl(3, "layout['showlegend'] = true;");
@@ -3869,31 +3892,6 @@ else if(entiteAttribuer) {
38693892
auteurPageJs.tl(4, "}");
38703893
}
38713894
auteurPageJs.tl(3, "});");
3872-
auteurPageJs.tl(3, "window.map", classeNomSimple, ".on('contextmenu', function(e) {");
3873-
auteurPageJs.tl(4, "var htm = '';");
3874-
auteurPageJs.tl(4, "if(window.", i18nPage.getString(I18n.var_liste), classeNomSimple, ".length == 1) {");
3875-
auteurPageJs.tl(5, "window.", i18nPage.getString(I18n.var_liste), classeNomSimple, ".forEach((", varResultat, ", index) => {");
3876-
if(classeVarEmplacement != null) {
3877-
auteurPageJs.tl(6, "htm += '<div><button"
3878-
, " onclick=\"patch", i18nPage.getString(I18n.var_Emplacement), "(event.target, "
3879-
, "{ &quot;coordinates&quot;: [ ' + e.latlng.lng + ', ' + e.latlng.lat + ' ], &quot;type&quot;: &quot;Point&quot; }"
3880-
, ");\">"
3881-
, i18nPage.getString(I18n.str_Definir), " ", classeVarEmplacement, " ", i18nPage.getString(I18n.str_de), " ' + ", varResultat, ".", classeVarTitre, " + '</button></div>';");
3882-
}
3883-
// if(classeVarAire != null) {
3884-
// auteurPageJs.tl(4, "if(", varResultat, ".", classeVarAire, ") {");
3885-
// auteurPageJs.tl(5, "if(!Array.isArray(", varResultat, ".", classeVarAire, ")) {");
3886-
// auteurPageJs.tl(6, "htm += '<div><", composantsWebPrefixe, "button>Set ' + ", varResultat, " + ' of ' + ", varResultat, " + '</", composantsWebPrefixe, "button></div>'");
3887-
// auteurPageJs.tl(5, "}");
3888-
// auteurPageJs.tl(4, "}");
3889-
// }
3890-
auteurPageJs.tl(5, "});");
3891-
auteurPageJs.tl(4, "}");
3892-
auteurPageJs.tl(4, "var popup = L.popup()");
3893-
auteurPageJs.tl(6, ".setLatLng(e.latlng)");
3894-
auteurPageJs.tl(6, ".openOn(window.map", classeNomSimple, ")");
3895-
auteurPageJs.tl(6, ".setContent(htm);");
3896-
auteurPageJs.tl(3, "});");
38973895
auteurPageJs.tl(3, "window.map", classeNomSimple, ".on('popupopen', function(e) {");
38983896
auteurPageJs.tl(4, "if(e.popup._source) {");
38993897
auteurPageJs.tl(5, "var feature = e.popup._source.feature;");
@@ -3918,6 +3916,45 @@ else if(entiteAttribuer) {
39183916
auteurPageJs.tl(3, "window.map", classeNomSimple, ".addControl(drawControl);");
39193917
auteurPageJs.tl(3, "window.map", classeNomSimple, ".on(L.Draw.Event.CREATED, function (event) {");
39203918
auteurPageJs.tl(4, "drawnItems.addLayer(event.layer);");
3919+
3920+
auteurPageJs.tl(4, "var contextmenuItems = [];");
3921+
if(classeVarEmplacement != null) {
3922+
auteurPageJs.tl(4, "if(event.layerType == 'polygon') {");
3923+
auteurPageJs.tl(5, "contextmenuItems.push({");
3924+
auteurPageJs.tl(6, "text: '", i18nPage.getString(I18n.str_Definir), " ", classeVarEmplacement, " ", i18nPage.getString(I18n.str_de), " ' + ", varResultat, ".", classeVarTitre);
3925+
auteurPageJs.tl(6, ", callback: function(event2) {");
3926+
auteurPageJs.tl(7, "patch", i18nPage.getString(I18n.var_Emplacement), "(event.layer, "
3927+
, "{ coordinates: event.layer.getLatLng(), type: \"Point\" }"
3928+
, ");");
3929+
auteurPageJs.tl(6, "}");
3930+
auteurPageJs.tl(5, "});");
3931+
auteurPageJs.tl(4, "}");
3932+
}
3933+
if(classeVarAire != null) {
3934+
auteurPageJs.tl(4, "if(event.layerType == 'polygon') {");
3935+
auteurPageJs.tl(5, "contextmenuItems.push({");
3936+
auteurPageJs.tl(6, "text: '", i18nPage.getString(I18n.str_Definir), " ", classeVarAire, " ", i18nPage.getString(I18n.str_de), " ' + ", varResultat, ".", classeVarTitre);
3937+
auteurPageJs.tl(6, ", callback: function(event2) {");
3938+
auteurPageJs.tl(7, "var latLngs = [];");
3939+
auteurPageJs.tl(7, "event.layer.getLatLngs().forEach(ll1 => {");
3940+
auteurPageJs.tl(8, "var latLngs1 = [];");
3941+
auteurPageJs.tl(8, "ll1.forEach(ll2 => {");
3942+
auteurPageJs.tl(9, "var latLngs2 = [ll2['lng'], ll2['lat']];");
3943+
auteurPageJs.tl(9, "latLngs1.push(latLngs2);");
3944+
auteurPageJs.tl(8, "});");
3945+
auteurPageJs.tl(8, "latLngs.push(latLngs1);");
3946+
auteurPageJs.tl(7, "});");
3947+
auteurPageJs.tl(7, "patch", i18nPage.getString(I18n.var_Aire), "(event.layer, "
3948+
, "{ coordinates: latLngs, type: \"Polygon\" }"
3949+
, ");");
3950+
auteurPageJs.tl(6, "}");
3951+
auteurPageJs.tl(5, "});");
3952+
auteurPageJs.tl(4, "}");
3953+
}
3954+
auteurPageJs.tl(4, "event.layer.bindContextMenu({");
3955+
auteurPageJs.tl(5, "contextmenu: true");
3956+
auteurPageJs.tl(5, ", contextmenuItems: contextmenuItems");
3957+
auteurPageJs.tl(4, "});");
39213958
auteurPageJs.tl(3, "});");
39223959
auteurPageJs.tl(2, "}");
39233960
}
@@ -3933,6 +3970,16 @@ else if(entiteAttribuer) {
39333970
auteurPageJs.tl(3, ");");
39343971
auteurPageJs.tl(0, "}");
39353972
}
3973+
if(classeVarAire != null) {
3974+
auteurPageJs.tl(0, "function patch", i18nPage.getString(I18n.var_Aire), "(target, ", classeVarAire, ") {");
3975+
auteurPageJs.tl(1, "patch", classeNomSimple, "Val([{ name: 'softCommit', value: 'true' }, { name: 'fq', value: '", classeVarId, ":' + ", varResultat, ".", classeVarId, " }]");
3976+
auteurPageJs.tl(3, ", 'set", StringUtils.capitalize(classeVarAire), "', ", classeVarAire);
3977+
auteurPageJs.tl(3, ", target");
3978+
auteurPageJs.tl(3, ", function(", i18nPage.getString(I18n.var_reponse), ", e) { ", i18nPage.getString(I18n.var_ajouterLueur), "(target); }");
3979+
auteurPageJs.tl(3, ", function(", i18nPage.getString(I18n.var_reponse), ", e) { ", i18nPage.getString(I18n.var_ajouterErreur), "(target); }");
3980+
auteurPageJs.tl(3, ");");
3981+
auteurPageJs.tl(0, "}");
3982+
}
39363983
auteurPageJs.l();
39373984
auteurPageJs.tl(0, "function animate", i18nPage.getString(I18n.var_Stats), "() {");
39383985
auteurPageJs.tl(1, "document.querySelector('#pageSearchVal-fq", classeNomSimple, "_time').innerText = '';");

src/main/java/org/computate/frFR/java/IndexerClasse.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5333,8 +5333,10 @@ else if(groupe1 != null && !groupe1.contains("+"))
53335333
}
53345334
}
53355335

5336+
String classeSmartDataModelStr = regex("^SmartDataModel:\\s(.*)", classeCommentaire);
5337+
53365338
indexerStockerSolr(classeDoc, "classeGenere", regexTrouve("^" + i18nGlobale.getString(I18n.str_Genere) + ": \\s*(true)$", classeCommentaire));
5337-
Boolean classeContexte = indexerStockerSolr(classeDoc, "classeContexte", regexTrouve("^" + i18nGlobale.getString(I18n.var_Contexte) + ": \\s*(true)$", classeCommentaire) || classePage);
5339+
Boolean classeContexte = indexerStockerSolr(classeDoc, "classeContexte", regexTrouve("^" + i18nGlobale.getString(I18n.var_Contexte) + ": \\s*(true)$", classeCommentaire) || classePage || classeSmartDataModelStr != null);
53385340

53395341
if(classeContexte) {
53405342
classeCouleur = regex("^" + i18nGlobale.getString(I18n.var_Couleur) + ":\\s*(.*)", classeCommentaire);
@@ -6097,8 +6099,6 @@ else if(StringUtils.contains(classeApiMethode, i18nGlobale.getString(I18n.var_Re
60976099

60986100
indexerStockerSolr(classeDoc, "classeAuth", classeAuth);
60996101

6100-
String classeSmartDataModelStr = regex("^SmartDataModel:\\s(.*)", classeCommentaire);
6101-
61026102
if(classeSmartDataModelStr != null) {
61036103
String encodedStr = "\"" + Arrays.asList(classeSmartDataModelStr.replaceAll("([a-z])([A-Z])", "$1 $2").split(" +")).stream().map(s -> encodeUrl(s)).collect(Collectors.joining("\" OR \"")) + "\"";
61046104
System.out.println(encodedStr);
@@ -6117,7 +6117,8 @@ else if(StringUtils.contains(classeApiMethode, i18nGlobale.getString(I18n.var_Re
61176117
String modelName = ((String)doc.getFieldValue("modelName_docvalues_string"));
61186118
String aName = StringUtils.startsWithAny(modelName.toLowerCase(), "a", "e", "i", "o", "u", "h") ? "an " + modelName : "a " + modelName;
61196119
String idName = toId(StringUtils.join(StringUtils.splitByCharacterTypeCamelCase(StringUtils.uncapitalize(modelName)), " ").toLowerCase());
6120-
String modelDescription = ((List<String>)doc.getFieldValue("modelDescription_text_enUS")).get(0).replace("\n", " ");
6120+
String modelDescription = (Optional.ofNullable((List<String>)doc.getFieldValue("modelDescription_text_enUS"))).orElse(Arrays.asList()).stream().findFirst().orElse("").replace("\n", " ");
6121+
String modeleIcone = Optional.ofNullable(classeIcone).orElse(String.format("<i class=\"%s fa-conveyor-belt\"></i>", fontawesomeStyle));
61216122
List<String> propertiesNames = (List<String>)doc.getFieldValue("propertiesNames_stored_strings");
61226123
List<String> propertiesTypes = (List<String>)doc.getFieldValue("propertiesTypes_stored_strings");
61236124
List<String> propertiesDescriptions = (List<String>)doc.getFieldValue("propertiesDescriptions_stored_strings");
@@ -6157,7 +6158,7 @@ else if(StringUtils.contains(classeApiMethode, i18nGlobale.getString(I18n.var_Re
61576158
wSmartDataModel.l(" * Order: 1");
61586159
wSmartDataModel.l(" * Description: ", modelDescription);
61596160
wSmartDataModel.l(" * AName: ", aName);
6160-
wSmartDataModel.l(" * Icon: <i class=\"", fontawesomeStyle, " fa-conveyor-belt\"></i>");
6161+
wSmartDataModel.l(" * Icon: ", modeleIcone);
61616162
wSmartDataModel.l(" * Rows: 100");
61626163
wSmartDataModel.l(" * ");
61636164
wSmartDataModel.l(" * SearchPageUri: /en-us/search/", idName);
@@ -6254,10 +6255,11 @@ else if("location".equals(fieldName))
62546255
wSmartDataModel.l(" /**");
62556256
wSmartDataModel.l(" * {@inheritDoc}");
62566257
wSmartDataModel.l(" * FiwareType: geo:linestring");
6257-
wSmartDataModel.l(" * Location: true");
6258+
wSmartDataModel.l(" * Area: true");
62586259
}
62596260
if("location".equals(fieldName)) {
62606261
wSmartDataModel.l(" * FiwareType: geo:point");
6262+
wSmartDataModel.l(" * Location: true");
62616263
}
62626264
wSmartDataModel.l(" * DocValues: true");
62636265
wSmartDataModel.l(" * Persist: true");

0 commit comments

Comments
 (0)