Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.

how to validate in assets dam properties?

Avatar

Level 3

I need to validate in asset dam properties.

I took reference from https://helpx.adobe.com/experience-manager/using/creating-touchui-validate.html 

 

Code Snippet - 

$(document).on("click", ".aem-assets-admin-properties-submit", function (e) {

        e.stopPropagation();
        e.preventDefault();
      ddlOrderValue = $("#ddlChar option:selected").val();

    if(typeof ddlOrderValue == "string" && typeof primaryBVTag == "string" && typeof primarySLTag == "string"){
          var ddlOrderValueCheck  = ddlOrderValue.substring(ddlOrderValue.lastIndexOf("/")+1);
          var primaryBVTagCheck  = primaryBVTag.substring(primaryBVTag.lastIndexOf("/")+1);
          var primarySLTagCheck  = primarySLTag.substring(primarySLTag.lastIndexOf("/")+1);
      }


        if( (($('#setcontentownerid').hasClass("hide")) == false ) && (ddlOrderValueCheck == '') || ( primaryBVTagCheck == '' &&  primarySLTagCheck == '') ||             ((ddlOrderValueCheck != primaryBVTagCheck) && (ddlOrderValueCheck != primarySLTagCheck)) ) {
                alert("Check your Inputs");
              ns.ui.helpers.prompt({
                title: Granite.I18n.get("Invalid Input"),
                message: "Please Enter valid Inputs",
                actions: [{
                    id: "CANCEL",
                    text: "CANCEL",
                    className: "coral-Button"
                }],
            callback: function (actionId) {
                if (actionId === "CANCEL") {
                }
            }
        });

        }else{
            alert("else");

                createNewTags($(".data-fields.active form")).done(function(){
                var form = $('.data-fields.active form');
                alert("else aem-submit -createNewTags");
                handleResponse(form, submitForm(form));
            }).fail(function(response){
                var modal = $('#aem-assets-metadataedit-error');
                var body = Granite.I18n.get('Unable to create new tags. Check for access privileges to create tags.');
                modal.find(".coral-Modal-body").html('<p>' + body + '</p>');
                modal.modal("show");
            });
            alert("end of else");
          }

    }); 


// -----------------------------------------------------------------------------------------------------------------------   
    function createNewTags (form) {
        return $.when.apply(null, form.find('[data-metatype="tags"].coral-PathBrowser+ul.coral-TagList input[type="hidden"][name]').map(function() {
            var el = this;

            if (el.value.indexOf(":") >= 0) return;

            var tenantId = $(".foundation-form.mode-edit").attr("tenant-id");
            el.value = tenantId ? ("mac:" + tenantId + "/default/" + el.previousElementSibling.textContent ) : el.previousElementSibling.textContent;
            return createSingleTag(el.value).then(function(tag) {
                // Fix tag name in select element
                var tenantId = $(".foundation-form.mode-edit").attr("tenant-id");
                if (!tenantId) {
                    // Fix tag name in select element
                    el.value = tag;
                }
            });
        }));
    }

I am getting error because of ns.ui.helper.prompt({     });  , error in browser console is -

Uncaught TypeError: Cannot read property 'ui' of undefined
    at HTMLButtonElement.<anonymous> (clientlib-assetspropertiesdialog.js:287)
    at HTMLDocument.dispatch (jquery.js:4665)
    at HTMLDocument.elemData.handle (jquery.js:4333)

4 Replies

Avatar

Administrator

Hi

Moving this post to AEM "Assets" topic so that contextual experts can help you.

~kautuk



Kautuk Sahni

Avatar

Level 10

The article you mentioned is about how to validate fields in a component dialog.  Has nothing to do with Assets.

Avatar

Level 2

Can you make sure "ns" is defined? Or can you share the complete code?

Avatar

Level 10

please mention aem version