Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

DAM Embargoed asset pop-up (asset publish only when on time reached)

tushaar_srivastava
Level 4
Level 4

Hi Team,

 

When author activates the asset, and the effective publish date is not reached, a popup will display.

 

So here, we have an option in metadata of an asset is "effective date" it is a date field.

image.png

 

Now the requirement if we publish the asset only when it reach effective dates, it we try to publish asset before effective date then it'll show a pop-up,

Asset will not be published until effective date is reached.."

 

Give option to Cancel or Proceed with in Pop-up.  Proceed will activate the asset.

 

Not sure how to do this, we need to write a JS, but which OOTB JS we need to overlay for asset metadata, or how to do this?

 

Note : here "Effective dates" is a custom date field in metadaschema.

Scenario : Suppose, if author set Effective date as 30-Dec-2020 and want to activate the asset before mention effective date 30-Dec-2020, then instead of publishing it'll show the pop-up 

"Asset will not be published until effective date is reached.."

Give option to Cancel or Proceed with in Pop-up.  Proceed will activate the asset.

 

@Arun_Patidar  @Vijayalakshmi_S  @kautuk_sahni @Theo_Pendle   @Nikhil-Kumar 

 

 

aem6.5 Asset DAM Assets DAM Schema Metadataschema Touch UI
1 Accepted Solution
Vijayalakshmi_S
Correct answer by
Community Advisor
Community Advisor

Hi @tushaar_srivastava,

OOB Default Metadata Schema doesn't has this field named "Effective Dates". (Per 6.5.0)

Is it a custom field you have as part of your project specific schema?

 

View solution in original post

6 Replies
Vijayalakshmi_S
Correct answer by
Community Advisor
Community Advisor

Hi @tushaar_srivastava,

OOB Default Metadata Schema doesn't has this field named "Effective Dates". (Per 6.5.0)

Is it a custom field you have as part of your project specific schema?

 

View solution in original post

tushaar_srivastava
Level 4
Level 4

Yes Effective Dates is a custom field and example is author set effective date as 15-sept-2020 and if want to publish before 15-sept-2020 then it'll not publish the asset instead will show the pop-up

 

Updated the same in above question, thank you 

Vijayalakshmi_S
Community Advisor
Community Advisor
Thanks for the details. I will check in my local and respond.
Vijayalakshmi_S
Community Advisor
Community Advisor

Hi @tushaar_srivastava,

Below mentioned details are per AEM 6.5.0

JS responsible for Quick Publish : 

  • /libs/dam/gui/coral/components/admin/publish/clientlibs/publishasset/publishasset.js

JS for Manage Publication :

  •  /libs/dam/gui/coral/components/admin/managepublication/clientlibs/managepublication/js/managepublication.js

Steps for Overlay:

  • You need to overlay the publishasset node to apps (Right click on the publishasset node from libs path -> Overlay node -> Check "Match node types")
  • Copy paste the publishasset.js and js.txt file to /apps
  • Amend the publishasset.js in the apps path (Understand the complete flow of existing JS and introduce pop up accordingly)

Code responsible for pop up:

 

var ui = $(window).adaptTo("foundation-ui");
            		ui.prompt("Asset Quick Publish", message.html(), "notice", [{
                	text: "CANCEL"
            		}, {
                	text: "PUBLISH",
                	primary: true,
                	handler: function() {
                    	replicateToPublish(activator);
                	}
            		}]);

 

foundation-ui JS component's prompt is responsible for pop up

https://helpx.adobe.com/experience-manager/6-4/sites/developing/using/reference-materials/granite-ui...

Logic related to asset's Effective date:

You can introduce above prompt snippet within the desired effective date condition. (Selected asset path can be accessed as below)

 

var $collection = $(".cq-damadmin-admin-childpages.foundation-collection");
        	var items = $collection.find(".foundation-selections-item");
			var assetPath = $(items[0]).data("foundation-collection-item-id");

 

I suggest to understand the existing logic in JS files shared and incorporate the code accordingly. 

Will try to cover it in my blog post with detailed steps. 

Please update this thread in case of clarification. 

tushaar_srivastava
Level 4
Level 4
Hi @Vijayalakshmi_S, Thank you for details, I have analyzed it and got the way how to do, It will be very helpful if you cover this with detailed steps .to your blog : https://myaemlearnings.blogspot.com/ 🙂