Expand my Community achievements bar.

SOLVED

Component refresh when switching between edit and preview mode

Avatar

Level 2

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!

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

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));



Arun Patidar

View solution in original post

5 Replies

Avatar

Level 10

AEM OOTB does not support this. As Praveen suggests in the other thread - you need to use script to do this.

Avatar

Correct answer by
Community Advisor

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));



Arun Patidar

Avatar

Level 2

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!

Avatar

Level 3

Hi arun, code is not working for categories other than cq.authoring.dialog ? Any Reason.

Avatar

Community Advisor

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.



Arun Patidar