Component refresh when switching between edit and preview mode

DriesVanbilloen

27-12-2018

Hi all,

We recently had an upgrade from AEM 6.1 to AEM 6.3 SP3 and now we are evaluating the different custom components and see how they are in the touch UI.

One thing that we noticed is that there is no refresh when switching between Edit and Preview mode in the touch UI, while the classic UI does.

We used this refresh to switch styles because the classic Ui is sometimes very messy.

Is there some way to fix the switch between the 2 wcmmodes (I already tried the solution in javascript described here: AEM6.3 - force page refresh when change mode to preview on touch ui  , but it doesn't work)?

Thanks in advance!

Accepted Solutions (1)

Accepted Solutions (1)

Arun_Patidar

MVP

27-12-2018

Hi,

You can create clientlibs of category and add cq.authoring.dialog below code.

This code only works when you click on edit and preview button and Edit button inside popover

(function($, $document) {

    "use strict";

    $(document).on("click", ".editor-GlobalBar-previewTrigger", function(e) {

    window.location.reload();

    });

    $('.editor-GlobalBar-item[data-layer="Edit"]').on("click", function(e) {

    window.location.reload();

    });

    $(document).on("click", ".coral-BasicList-item.js-editor-LayerSwitcherTrigger", function(e) {

        if($(this).data("layer")=="Edit")

        {

            window.location.reload();

        }

    });

})($, $(document));

Answers (4)

Answers (4)

Arun_Patidar

MVP

23-08-2019

because it may not be loading if other categories are not being used.

But why you need to load with another category.

If the script is getting loaded in proper order it should work.

DriesVanbilloen

08-01-2019

You code gave me an idea on how to solve it. I tried your code at first (with some minor changes). This didn't work because apparently the project i'm working on has an Iframe to wrap its content. I had to add a line of code to reach the buttons in Javascript. But the concept stayed the same.

I had to use the parent.document.getElementsByClassName()

Thanks for the idea!