Adding the GoogleMapsEditor not working


I'm having issues adding the GoogleMapsEditor

I have a local block

public class CoordinatesBlock : SiteBlockData, IGoogleMapsCoordinates
        public virtual double Longitude { get; set; }
        public virtual double Latitude { get; set; }

If I understand it correctly the editor should automatically be added to propertyes having a type inheriting from this class so this would work?

[Display(GroupName = SystemTabNames.Content, Order = 900)]
        public virtual CoordinatesBlock Coordinates { get; set; }

However it doesn't. In the editor mode the block is added with just two basic input fields like a regular block.

Adding either of these attributes result in the same behaviour:

        [Display(GroupName = SystemTabNames.Content, Order = 900)]
        public virtual CoordinatesBlock Coordinates { get; set; }

//Or my custom editordescriptor available in the 1.0.12 update to set our own api-key
        [Display(GroupName = SystemTabNames.Content, Order = 900)]
        public virtual CoordinatesBlock Coordinates { get; set; }

But, adding this attribute result in an error in edit mode stating that /EPiServer/Shell/11.17.0/ClientResources/googlemapseditor/Editor.js is not found

[ClientEditor(ClientEditingClass = "googlemapseditor/Editor")]
        [Display(GroupName = SystemTabNames.Content, Order = 900)]
        public virtual CoordinatesBlock Coordinates { get; set; }

What is the correct way to get this to work? TargetFramework 4.6.2, Epi version 11.11.3

Apr 04, 2019 13:54

Hmm, it should work with Episerver 11 and we use it and it works.
When it says that it can not find the file I would look and see that the files below modules/_protected for it has been included and then try to reinstall it:
update-package Episerver.GoogleMapsEditor -reinstall

But I see now that we do not use it that way. We use it like this:

[ClientEditor(ClientEditingClass = "googlemapseditor/Editor")]
[Display(GroupName = SystemTabNames.Content, Order = 1040)]
public virtual CoordinatesBlock Location { get; set; }

So the last example you show should be correct.

Maybe @ted could help

Edited, Apr 05, 2019 7:44

Looking in the modules/_protected folder it seems correct:

And we have other addons like DBLocalizationProvider, Geta.Epi.FontThumbnail installed and working. 

Tried reinstalling it with same issue

Comparing with AlloyDemoKit (web.config settings etc.) I see no difference

Edited, Apr 08, 2019 10:52

Make sure you dump references of the old way for referring to this Nuget and download the latest and make sure you register the API-key for your Google API as Ted describes below:

Hopefulle this will resolve your issues

Apr 08, 2019 11:58

What do you mean by dumping references of the old way? I just installed this addon to the project and haven't had any old version of it in the project before. I have also created a custom descriptor for it with our own apikey (not listed below ;) )

 [EditorDescriptorRegistration(TargetType = typeof(IGoogleMapsCoordinates), UIHint = UIHint, EditorDescriptorBehavior = EditorDescriptorBehavior.OverrideDefault)]
    [EditorDescriptorRegistration(TargetType = typeof(string), UIHint = UIHint, EditorDescriptorBehavior = EditorDescriptorBehavior.OverrideDefault)]
    public class SiteGoogleMapsEditorDescriptor : GoogleMapsEditorDescriptorBase
        public override void ModifyMetadata(ExtendedMetadata metadata, IEnumerable<Attribute> attributes)
            base.ModifyMetadata(metadata, attributes);

            // API key for the Google Maps JavaScript API
            metadata.EditorConfiguration["apiKey"] = "nnnnnnnnnnnnn";

            // Default zoom level from 1 (least) to 20 (most)
            metadata.EditorConfiguration["defaultZoom"] = 5;

            // Default coordinates when no property value is set
            metadata.EditorConfiguration["defaultCoordinates"] = new { latitude = 57.781958, longitude = 14.231367 };

 Regarding that editor update blog post I see Waldis has made a rather cryptic comment about it, wonder if it has anything to do with that code example being wrong or something that might cause this issue.

Edited, Apr 08, 2019 13:28
Apr 08, 2019 13:49

I just had the same issue, and had to manually add the editor to protectedModules in web.config:



<protectedModules rootPath="...">

<add name="EPiServer.XForms" />
<add name="EPiServer.VisitorGroupsCriteriaPack" />
<add name="EPiServer.Cms.TinyMce" />
<add name="Geta.SEO.Sitemaps" />
<add name="Shell" />
<add name="CMS" />
<add name="Find">
<add name="TedGustaf.Episerver.GoogleMapsEditor" />

Jun 23, 2020 12:42
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.