Quantcast
Channel: Experiencing Adobe Experience Manager (AEM, CQ)
Viewing all articles
Browse latest Browse all 525

AEM 6420 - Touch UI Validate Asset file names on Upload

$
0
0

Goal


Validate asset file names when they are uploaded to Assets Touch UI

For similar validation of sites page name check this post

Demo | Package Install | Github




Solution


1) Login to CRXDE Lite, create folder (nt:folder) /apps/eaem-touchui-assets-file-name-validation

2) Create clientlib (type cq:ClientLibraryFolder) /apps/eaem-touchui-assets-file-name-validation/clientlib and set property categories of String[] type to dam.gui.coral.fileupload and dependencies String[] to lodash

3) Create file ( type nt:file ) /apps/eaem-touchui-assets-file-name-validation/clientlib/js.txt, add the following

  file-name-validate.js

4) Create file (type nt:file) /apps/eaem-touchui-assets-file-name-validation/clientlib/file-name-validate.js, add the following code

(function ($, $document) {
"use strict";

var _ = window._,
PATTERN = /^[a-z0-9_\-.]+$/,
ERROR_MSG = "Acceptable characters in file name are lowercase alphabets, numbers, underscore and hyphen <b>" + PATTERN + "</b>",
UPLOAD_DIALOG_CLASS = ".uploadListDialog",
registered = false;

$document.on("foundation-contentloaded", handleFileNames);

function handleFileNames() {
if(registered){
return;
}

registered = true;

var $fileUpload = $("coral-chunkfileupload");

$fileUpload.on('change', checkFileNames);
}

function checkFileNames(event) {
var $uploadDialog = $(UPLOAD_DIALOG_CLASS);

if(_.isEmpty($uploadDialog)){
return;
}

var fileUpload = this;

$uploadDialog.each(function(index, uploadDialog){
if(!uploadDialog.open){
return;
}

if(_.isEmpty(getInvalidFileNames(fileUpload))){
return;
}

uploadDialog.hide();

showAlert(ERROR_MSG);
});
}

function getInvalidFileNames(fileUpload){
var invalidFileNames = [];

if(!fileUpload || _.isEmpty(fileUpload.uploadQueue)){
return invalidFileNames;
}

_.each(fileUpload.uploadQueue, function(file){
if(!PATTERN.test(file.name)){
invalidFileNames.push(file.name)
}
});

return invalidFileNames;
}

function showAlert(message, title, callback){
var fui = $(window).adaptTo("foundation-ui"),
options = [{
id: "ok",
text: "OK",
primary: true
}];

message = message || "Unknown Error";
title = title || "Error";

fui.prompt(title, message, "warning", options, callback);
}
}(jQuery, jQuery(document)));




Viewing all articles
Browse latest Browse all 525

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>