diff --git a/wire/modules/Inputfield/InputfieldPageName/InputfieldPageName.js b/wire/modules/Inputfield/InputfieldPageName/InputfieldPageName.js index b9e034e0..c5980588 100644 --- a/wire/modules/Inputfield/InputfieldPageName/InputfieldPageName.js +++ b/wire/modules/Inputfield/InputfieldPageName/InputfieldPageName.js @@ -43,9 +43,6 @@ var InputfieldPageName = { // convert whitespace to dash name = name.replace(/\s+/g, '-') - // convert multiple dashes or dots to single - name = name.replace(/--+/g, '-'); - // convert multiple dots to single name = name.replace(/\.\.+/g, '.'); @@ -53,7 +50,10 @@ var InputfieldPageName = { name = name.replace(/(\.-|-\.)/g, '-'); // remove leading or trailing dashes, underscores and dots - name = name.replace(/(^[-_.]+|[-_.]+$)/g, ''); + name = name.replace(/(^[-_.]+|[-_.]+$)/g, ''); + + // convert multiple dashes or dots to single + name = name.replace(/--+/g, '-'); // make sure it's not too long // if(name.length > 128) name = name.substring(0, 128); diff --git a/wire/modules/Inputfield/InputfieldPageName/InputfieldPageName.min.js b/wire/modules/Inputfield/InputfieldPageName/InputfieldPageName.min.js index 55377ef4..86bcefe8 100644 --- a/wire/modules/Inputfield/InputfieldPageName/InputfieldPageName.min.js +++ b/wire/modules/Inputfield/InputfieldPageName/InputfieldPageName.min.js @@ -1 +1 @@ -var InputfieldPageName={sanitize:function(b){b=jQuery.trim(b);b=b.toLowerCase();var g;for(g in ProcessWire.config.InputfieldPageName.replacements){var f=ProcessWire.config.InputfieldPageName.replacements[g];if(b.indexOf(g)>-1){if(g=="."){g="\\."}var e=new RegExp(g,"g");b=b.replace(e,f)}}b=b.replace(/['"\u0022\u0027\u00AB\u00BB\u2018\u2019\u201A\u201B\u201C\u201D\u201E\u201F\u2039\u203A\u300C\u300D\u300E\u300F\u301D\u301E\u301F\uFE41\uFE42\uFE43\uFE44\uFF02\uFF07\uFF62\uFF63]/g,"");if(ProcessWire.config.InputfieldPageName.charset=="UTF8"){var d=ProcessWire.config.InputfieldPageName.whitelist;if(d.length){var a="";for(var i=0;i128){b=$.trim(b).substring(0,128).split("-").slice(0,-1).join(" ")}return b},updatePreview:function(d,b){var c=$("#"+d.attr("id")+"_path");var a=parseInt(c.attr("data-slashUrls"))>0?"/":"";c.find("strong").text((b.length>0?b+a:""))}};jQuery(document).ready(function(a){a(document).on("keyup",".InputfieldPageName input[type=text]",function(){var b=InputfieldPageName.sanitize(a(this).val());InputfieldPageName.updatePreview(a(this),b)}).on("blur",".InputfieldPageName input[type=text]",function(){var b=InputfieldPageName.sanitize(a(this).val());a(this).val(b);InputfieldPageName.updatePreview(a(this),b)});a(document).on("reloaded",".InputfieldPageName",function(){a(this).find("input[type=text]").keyup()});a(".InputfieldPageName").find("input[type=text]").keyup()}); \ No newline at end of file +var InputfieldPageName={sanitize:function(name){name=jQuery.trim(name);name=name.toLowerCase();var srch;for(srch in ProcessWire.config.InputfieldPageName.replacements){var repl=ProcessWire.config.InputfieldPageName.replacements[srch];if(name.indexOf(srch)>-1){if(srch==".")srch="\\.";var re=new RegExp(srch,"g");name=name.replace(re,repl)}}name=name.replace(/['"\u0022\u0027\u00AB\u00BB\u2018\u2019\u201A\u201B\u201C\u201D\u201E\u201F\u2039\u203A\u300C\u300D\u300E\u300F\u301D\u301E\u301F\uFE41\uFE42\uFE43\uFE44\uFF02\uFF07\uFF62\uFF63]/g,"");if(ProcessWire.config.InputfieldPageName.charset=="UTF8"){var whitelist=ProcessWire.config.InputfieldPageName.whitelist;if(whitelist.length){var newName="";for(var n=0;n128)name=$.trim(name).substring(0,128).split("-").slice(0,-1).join(" ");return name},updatePreview:function($t,value){var $previewPath=$("#"+$t.attr("id")+"_path");var slash=parseInt($previewPath.attr("data-slashUrls"))>0?"/":"";$previewPath.find("strong").text(value.length>0?value+slash:"")}};jQuery(document).ready(function($){$(document).on("keyup",".InputfieldPageName input[type=text]",function(){var value=InputfieldPageName.sanitize($(this).val());InputfieldPageName.updatePreview($(this),value)}).on("blur",".InputfieldPageName input[type=text]",function(){var value=InputfieldPageName.sanitize($(this).val());$(this).val(value);InputfieldPageName.updatePreview($(this),value)});$(document).on("reloaded",".InputfieldPageName",function(){$(this).find("input[type=text]").keyup()});$(".InputfieldPageName").find("input[type=text]").keyup()}); \ No newline at end of file