diff --git a/README.md b/README.md
index 5f4904f2e..42f94a621 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@ Available addons
addon | version | maintainers | summary
--- | --- | --- | ---
[base_google_map](base_google_map/) | 19.0.1.0.0 |
| View modes and widgets to integrate Google Maps in your UI
-[web_view_google_map](web_view_google_map/) | 19.0.1.0.0 |
| Add a Google Map view type to the Odoo web client
+[web_view_google_map](web_view_google_map/) | 19.0.1.0.2 |
| Add a Google Map view type to the Odoo web client
[//]: # (end addons)
diff --git a/web_view_google_map/README.rst b/web_view_google_map/README.rst
index 0d2480621..0cac0cce4 100644
--- a/web_view_google_map/README.rst
+++ b/web_view_google_map/README.rst
@@ -11,7 +11,7 @@ Google Map View
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:e3204ed739e2c2f17e8303da58167c42e5549fe7c6e2ac0959fb3fdac82bb9a1
+ !! source digest: sha256:247a050c0bbf71a4ea225999772a9e018f353b64e164a16e90c6371051440788
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
diff --git a/web_view_google_map/__manifest__.py b/web_view_google_map/__manifest__.py
index f1f6719fc..04861e3a9 100644
--- a/web_view_google_map/__manifest__.py
+++ b/web_view_google_map/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "Google Map View",
"summary": "Add a Google Map view type to the Odoo web client",
- "version": "19.0.1.0.0",
+ "version": "19.0.1.0.2",
"author": "Open Source Integrators, Gray Matter Logic, "
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/geospatial",
diff --git a/web_view_google_map/i18n/web_view_google_map.pot b/web_view_google_map/i18n/web_view_google_map.pot
index 712de28de..ced2abcb1 100644
--- a/web_view_google_map/i18n/web_view_google_map.pot
+++ b/web_view_google_map/i18n/web_view_google_map.pot
@@ -18,6 +18,12 @@ msgstr ""
msgid "Action Window View"
msgstr ""
+#. module: web_view_google_map
+#. odoo-javascript
+#: code:addons/web_view_google_map/static/src/views/google_map/google_map_renderer.xml:0
+msgid "Configure API key"
+msgstr ""
+
#. module: web_view_google_map
#: model:ir.model.fields,field_description:web_view_google_map.field_ir_actions_act_window_view__display_name
#: model:ir.model.fields,field_description:web_view_google_map.field_ir_ui_view__display_name
@@ -35,6 +41,12 @@ msgstr ""
msgid "Google Maps"
msgstr ""
+#. module: web_view_google_map
+#. odoo-javascript
+#: code:addons/web_view_google_map/static/src/views/google_map/google_map_renderer.xml:0
+msgid "Google Maps API key required"
+msgstr ""
+
#. module: web_view_google_map
#. odoo-javascript
#: code:addons/web_view_google_map/static/src/fields/gplaces_address_form.esm.js:0
@@ -59,6 +71,15 @@ msgstr ""
msgid "New"
msgstr ""
+#. module: web_view_google_map
+#. odoo-javascript
+#: code:addons/web_view_google_map/static/src/views/google_map/google_map_renderer.xml:0
+msgid ""
+"Set a valid Google Maps API key to display this map.\n"
+" Enable the Maps JavaScript API for your key in Google Cloud\n"
+" Console."
+msgstr ""
+
#. module: web_view_google_map
#: model:ir.model,name:web_view_google_map.model_ir_ui_view
msgid "View"
diff --git a/web_view_google_map/static/description/index.html b/web_view_google_map/static/description/index.html
index cc9238ae1..4bd1fa590 100644
--- a/web_view_google_map/static/description/index.html
+++ b/web_view_google_map/static/description/index.html
@@ -372,7 +372,7 @@
This module adds a Google Maps view type and Places autocomplete field
diff --git a/web_view_google_map/static/src/views/google_map/google_map_renderer.esm.js b/web_view_google_map/static/src/views/google_map/google_map_renderer.esm.js
index 03ddd1d90..dd0988833 100644
--- a/web_view_google_map/static/src/views/google_map/google_map_renderer.esm.js
+++ b/web_view_google_map/static/src/views/google_map/google_map_renderer.esm.js
@@ -65,6 +65,7 @@ export class GoogleMapRenderer extends Component {
this.infoWindow = null;
this.records = [];
this.theme = "default";
+ this.missingApiKey = false;
const archEl = normalizeArch(this.props.archInfo?.arch || this.props.arch);
const attrs = archEl.attributes || {};
@@ -80,12 +81,19 @@ export class GoogleMapRenderer extends Component {
);
onWillStart(async () => {
- await loadGoogleMaps(this.orm);
+ const maps = await loadGoogleMaps(this.orm);
+ if (!maps) {
+ this.missingApiKey = true;
+ return;
+ }
await this.loadTheme();
await this.loadRecords();
});
onMounted(() => {
+ if (this.missingApiKey) {
+ return;
+ }
this.initMap();
this.renderMarkers();
});
@@ -97,6 +105,16 @@ export class GoogleMapRenderer extends Component {
});
}
+ openGoogleMapsSettings() {
+ this.action.doAction({
+ type: "ir.actions.act_window",
+ res_model: "res.config.settings",
+ views: [[false, "form"]],
+ target: "current",
+ context: {module: "base_google_map"},
+ });
+ }
+
async loadTheme() {
try {
const data = await rpc("/web/map_theme");
diff --git a/web_view_google_map/static/src/views/google_map/google_map_renderer.scss b/web_view_google_map/static/src/views/google_map/google_map_renderer.scss
index 717ac77fc..eda0e4d76 100644
--- a/web_view_google_map/static/src/views/google_map/google_map_renderer.scss
+++ b/web_view_google_map/static/src/views/google_map/google_map_renderer.scss
@@ -17,3 +17,12 @@
margin-bottom: 0.25rem;
}
}
+
+.o_google_map_missing_key {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ min-height: 400px;
+ height: 100%;
+ text-align: center;
+}
diff --git a/web_view_google_map/static/src/views/google_map/google_map_renderer.xml b/web_view_google_map/static/src/views/google_map/google_map_renderer.xml
index 106d9b474..6ae88c5cf 100644
--- a/web_view_google_map/static/src/views/google_map/google_map_renderer.xml
+++ b/web_view_google_map/static/src/views/google_map/google_map_renderer.xml
@@ -2,7 +2,26 @@
+ Google Maps API key required
+
+ Set a valid Google Maps API key to display this map.
+ Enable the Maps JavaScript API for your key in Google Cloud
+ Console.
+