diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.esm.js b/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.esm.js index 7032da6d2..d3f59443d 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.esm.js +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.esm.js @@ -64,6 +64,26 @@ export class GeoengineController extends Component { }); } + /** + * Allow you to edit form view for the filled-in model + * from new tab in the browser window. + * @param {*} resModel + * @param {*} resId + */ + async editRecord(resModel, resId) { + const url = window.location.href; + const searchParams = new URLSearchParams(url.split("#")[1]); + searchParams.set("view_type", "form"); + searchParams.set("id", resId); + searchParams.set("menu_id", searchParams.get("menu_id")); + const action_url = url.split("#")[0] + "#" + searchParams.toString(); + this.actionService.doAction({ + type: "ir.actions.act_url", + target: "_blank", + url: action_url, + }); + } + /** * When you finished drawing a new shape, this method is called to open form view and create the record. * @param {*} resModel diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.xml b/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.xml index 4779297a1..4b23c5f77 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.xml +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_controller/geoengine_controller.xml @@ -29,6 +29,7 @@ data="model.root" editable="editable" openRecord.bind="openRecord" + editRecord.bind="editRecord" updateRecord.bind="updateRecord" onClickDiscard.bind="onClickDiscard" createRecord.bind="createRecord" diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js index b322ce797..57b5156c4 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.esm.js @@ -631,6 +631,14 @@ export class GeoengineRenderer extends Component { this.props.openRecord(this.record.resModel, this.record.resId); } + /** + * When you click on the edit button, it calls the controller's + * editRecord method. + */ + onEditButtonClicked() { + this.props.editRecord(this.record.resModel, this.record.resId); + } + /** * Allows you to change the visibility of layers. This method is called * when the user changes raster layers. @@ -1256,6 +1264,7 @@ GeoengineRenderer.props = { archInfo: {type: Object}, data: {type: Object}, openRecord: {type: Function}, + editRecord: {type: Function}, editable: {type: Boolean, optional: true}, updateRecord: {type: Function}, onClickDiscard: {type: Function}, diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss index 214502b68..74a32cdab 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.scss @@ -65,3 +65,14 @@ .ol-popup-closer:after { content: "✖"; } +.ol-popup-editor { + text-decoration: none; + position: absolute; + top: 1px; + right: 25px; +} +.ol-popup-editor:after { + font-family: FontAwesome; + content: "\f040"; + cursor: pointer; +} diff --git a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml index addbbbf16..bb74a20d7 100644 --- a/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml +++ b/base_geoengine/static/src/js/views/geoengine/geoengine_renderer/geoengine_renderer.xml @@ -14,6 +14,11 @@ />