diff --git a/wire/core/Pageimage.php b/wire/core/Pageimage.php index 429c34b3..75f68b32 100644 --- a/wire/core/Pageimage.php +++ b/wire/core/Pageimage.php @@ -1629,8 +1629,7 @@ class Pageimage extends Pagefile { } } - /** @var Sanitizer $sanitizer */ - $sanitizer = $this->wire('sanitizer'); + $sanitizer = $this->wire()->sanitizer; $image = $this; $original = null; $replacements = array(); @@ -1663,7 +1662,7 @@ class Pageimage extends Pagefile { } if(strpos($markup, '{class}')) { - $class = isset($options['class']) ? $this->wire('sanitizer')->entities($options['class']) : 'pw-pageimage'; + $class = isset($options['class']) ? $sanitizer->entities($options['class']) : 'pw-pageimage'; $replacements["{class}"] = $class; } @@ -1711,7 +1710,7 @@ class Pageimage extends Pagefile { $webp = $this->extras('webp'); if(!$webp) { $webp = new PagefileExtra($this, 'webp'); - $webp->setArray($this->wire('config')->webpOptions); + $webp->setArray($this->wire()->config->webpOptions); $this->extras('webp', $webp); $webp->addHookAfter('create', $this, 'hookWebpCreate'); } diff --git a/wire/modules/AdminTheme/AdminThemeUikit/config-field.js b/wire/modules/AdminTheme/AdminThemeUikit/config-field.js index dd741bb3..8a03976f 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/config-field.js +++ b/wire/modules/AdminTheme/AdminThemeUikit/config-field.js @@ -123,11 +123,11 @@ function initAdminThemeUikitColumnWidth() { example.trigger('showInputfield', [ example[0] ]); }); - $columnWidth.change(); + $columnWidth.trigger('change'); } $(document).ready(function() { - $('#_adminTheme').find('input[type=radio],input[type=checkbox]').change(function() { + $('#_adminTheme').find('input[type=radio],input[type=checkbox]').on('change', function() { updateAdminThemeUikitExample(); }); updateAdminThemeUikitExample(); diff --git a/wire/modules/AdminTheme/AdminThemeUikit/config-field.min.js b/wire/modules/AdminTheme/AdminThemeUikit/config-field.min.js index 8d38da91..dcd633d1 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/config-field.min.js +++ b/wire/modules/AdminTheme/AdminThemeUikit/config-field.min.js @@ -1 +1 @@ -function updateAdminThemeUikitExample(){var example;example=$("#wrap__adminThemeExample");if(!example.length)example=$("#_adminThemeExample");var input=example.find("input,select,textarea");example.removeClass("InputfieldIsOffset InputfieldIsOffsetSm InputfieldIsOffsetLg "+"InputfieldNoBorder InputfieldHideBorder uk-card uk-card-default "+"InputfieldIsPrimary InputfieldIsSecondary InputfieldIsHighlight InputfieldIsWarning");var f=$("#wrap_Inputfield_themeInputSize");if(f.length){var v=f.find("input:checked").val();if(v=="s"){input.removeClass("uk-form-large uk-form-medium").addClass("uk-form-small")}else if(v=="m"){input.removeClass("uk-form-large uk-form-small").addClass("uk-form-medium")}else if(v=="l"){input.removeClass("uk-form-small uk-form-medium").addClass("uk-form-large")}else{input.removeClass("uk-form-large uk-form-medium uk-form-small")}}var f=$("#wrap_Inputfield_themeInputWidth");if(f.length){input.removeClass("uk-form-width-large uk-form-width-medium uk-form-width-small uk-form-width-xsmall");input.removeClass("InputfieldMaxWidth InputfieldSetWidth");var v=f.find("input:checked").val();if(v=="s"){input.addClass("uk-form-width-small")}else if(v=="xs"){input.addClass("uk-form-width-xsmall")}else if(v=="m"){input.addClass("uk-form-width-medium")}else if(v=="l"){input.addClass("uk-form-width-large")}else if(v=="f"){input.addClass("InputfieldMaxWidth")}if(v.length&&v!="f")input.addClass("InputfieldSetWidth")}var f=$("#Inputfield_themeBlank");if(f.length){if(f.is(":checked")){input.addClass("uk-form-blank")}else{input.removeClass("uk-form-blank")}}var f=$("#wrap_Inputfield_themeOffset");var v=f.find("input:checked").val();if(v=="s"){example.addClass("InputfieldIsOffset InputfieldIsOffsetSm")}else if(v=="m"){example.addClass("InputfieldIsOffset")}else if(v=="l"){example.addClass("InputfieldIsOffset InputfieldIsOffsetLg")}f=$("#wrap_Inputfield_themeBorder");v=f.find("input:checked").val();if(v=="card"){example.addClass("uk-card uk-card-default")}else if(v=="none"){example.addClass("InputfieldNoBorder")}else if(v=="hide"){example.addClass("InputfieldHideBorder")}f=$("#wrap_Inputfield_themeColor");v=f.find("input:checked").val();if(v=="primary"){example.addClass("InputfieldIsPrimary")}else if(v=="secondary"){example.addClass("InputfieldIsSecondary")}else if(v=="highlight"){example.addClass("InputfieldIsHighlight")}else if(v=="warning"){example.addClass("InputfieldIsWarning")}var bgcolor=example.css("background-color");$("#_adminTheme, #_adminTheme > *").css("background-color",bgcolor)}function initAdminThemeUikitColumnWidth(){var example=$("#wrap__adminThemeExample");var example2=$("#wrap__adminThemeExample2");if(!example.length)example=$("#_adminThemeExample");if(!example2.length)example2=$("#_adminThemeExample2");var $columnWidth=$("#columnWidth");var noGrid=$("body").hasClass("AdminThemeUikitNoGrid");$columnWidth.on("change",function(e){var pct=parseInt($(this).val());var minPct=9;var maxPct=91;if(noGrid)minPct=0;if(pct>minPct&&pct *").css("background-color",bgcolor)}function initAdminThemeUikitColumnWidth(){var example=$("#wrap__adminThemeExample");var example2=$("#wrap__adminThemeExample2");if(!example.length)example=$("#_adminThemeExample");if(!example2.length)example2=$("#_adminThemeExample2");var $columnWidth=$("#columnWidth");var noGrid=$("body").hasClass("AdminThemeUikitNoGrid");$columnWidth.on("change",function(e){var pct=parseInt($(this).val());var minPct=9;var maxPct=91;if(noGrid)minPct=0;if(pct>minPct&&pct-1){href=href.replace(/([?&]layout)=[-_a-zA-Z0-9]+/,"$1=sidenav-init")}else{href+=(href.indexOf("?")>0?"&":"?")+"layout=sidenav-init"}window.location.href=href}},windowResized:function(){if($("body").hasClass("pw-fake-resize"))return;this.setupMasthead()},setupMasthead:function(){var $masthead=$("#pw-masthead");var $mastheadMobile=$("#pw-masthead-mobile");var width=$(window).width();var height=0;var maxHeight=0;if(width>767){maxHeight=parseInt($masthead.data("pw-height"));height=$masthead.children(".pw-container").height()}else{height=999}if($masthead.hasClass("uk-hidden"))$masthead.removeClass("uk-hidden");if(height>maxHeight){if(!$masthead.hasClass("pw-masthead-hidden")){$masthead.addClass("pw-masthead-hidden").css({position:"absolute",top:"-9999px"});$mastheadMobile.removeClass("uk-hidden");$("#offcanvas-toggle").removeClass("uk-hidden")}}else{if($masthead.hasClass("pw-masthead-hidden")){$mastheadMobile.addClass("uk-hidden");$masthead.removeClass("pw-masthead-hidden").css({position:"relative",top:0});$("#offcanvas-toggle").addClass("uk-hidden")}}},setupCloneButton:function(){if($("body").is(".modal"))return;var $buttons=$("button.pw-head-button, button.head_button_clone");if($buttons.length==0)return;var $head=$("#pw-content-head-buttons");var $lastToggle=null;var $lastButton=null;var toggles={};$buttons.each(function(){var $t=$(this);var $a=$t.parent("a");var $button;if($a.length>0){$button=$t.parent("a").clone(true);$head.prepend($button)}else if($t.hasClass("pw-head-button")||$t.hasClass("head_button_clone")){$button=$t.clone(true);$button.attr("data-from_id",$t.attr("id")).attr("id",$t.attr("id")+"_copy").addClass("pw-head-button");$button.click(function(){$("#"+$(this).attr("data-from_id")).click();return false});if($button.hasClass("pw-button-dropdown-toggle")){var id=$button.attr("id").replace("pw-dropdown-toggle-","");toggles[id]=$button}else if($button.hasClass("pw-button-dropdown-main")){var $wrap=$("").addClass("pw-button-dropdown-wrap");$wrap.append($button).addClass("uk-float-right");$head.prepend($wrap)}else{$button.addClass("uk-float-right");$head.prepend($button)}}});for(var id in toggles){var $toggle=toggles[id];var $button=$("#"+id);$button.after($toggle)}},setupSearch:function(){$.widget("custom.adminsearchautocomplete",$.ui.autocomplete,{_renderMenu:function(ul,items){var that=this;var currentType="";ul.addClass("pw-dropdown-menu-shorter uk-nav uk-nav-default");ul.css("z-index",9999);$.each(items,function(index,item){if(item.type!=currentType){if(currentType.length){$("
  • ").appendTo(ul)}$("
  • "+item.type+"
  • ").addClass("uk-nav-header").appendTo(ul);currentType=item.type}that._renderItemData(ul,item)})},_renderItem:function(ul,item){if(item.label==item.template)item.template="";var $label=$("").text(item.label).css("margin-right","3px");if(item.unpublished)$label.css("text-decoration","line-through");if(item.hidden)$label.addClass("ui-priority-secondary");if(item.icon.length){var $icon=$("").addClass("fa fa-fw fa-"+item.icon).css("margin-right","2px");$label.prepend($icon)}var $a=$("").attr("href",item.edit_url).attr("title",item.tip).append($label).append($("").text(item.template));if(item.edit_url=="#"||!item.edit_url.length){$a.removeAttr("href")}return $("
  • ").append($a).appendTo(ul)}});$(".pw-search-form").each(function(){var $form=$(this);var $input=$form.find(".pw-search-input");var position={my:"right top",at:"right bottom"};if($form.closest(".uk-offcanvas-bar").length){position.my="left top";position.at="left bottom"}$input.click(function(event){event.stopPropagation()});$input.adminsearchautocomplete({minLength:2,position:position,search:function(event,ui){$form.find(".pw-search-icon").addClass("uk-hidden");$form.find(".pw-spinner-icon").removeClass("uk-hidden")},open:function(event,ui){},close:function(event,ui){},source:function(request,response){if(request.term===$input.attr("data-help-term"))request.term="help";var url=$input.parents("form").attr("data-action")+"?q="+request.term;$.getJSON(url,function(data){var len=data.matches.length;if(len");$ul.append($spinner);$.getJSON(url,function(data){var $a2=$a.clone();var $icon2=$a2.find("i");if(!$icon2.length){$icon2=$("");$a2.prepend($icon2)}$icon2.attr("class","fa fa-fw fa-arrow-circle-right pw-nav-icon");$a2.removeAttr("data-json").removeAttr("class");$a2.find("small").remove();var $li=$("
  • ").addClass("pw-nav-dup").append($a2);$ul.append($li);if(data.add){var $li2=$("
  • "+""+""+data.add.label+""+"
  • ");$ul.append($li2)}$.each(data.list,function(i){if(this.label.indexOf("-1){this.label=this.label.replace(/<\/?span[^>]*>/g,"")}var icon="";var $label=$("
    "+this.label+"
    ");var label=$label.text();if(label.length>30){var $small=$label.find("small");if($small.length)$small.remove();label=$label.text();label=label.substring(0,30);var n=label.lastIndexOf(" ");if(n>3)label=label.substring(0,n)+"… ";$label.html(label);if($small.length)$label.append($small)}label=$label.html().replace(" "," ");if(this.icon)icon="";var url=this.url.indexOf("/")===0?this.url:data.url+this.url;var $a=$(""+icon+label+"");var $li=$("
  • ").append($a);if(this.navJSON!="undefined"&&this.navJSON){$a.addClass("pw-has-items pw-has-ajax-items").attr("data-json",this.navJSON);var $ul2=$("
      ");$li.addClass("uk-parent").append($ul2);UIkit.nav($ul2,{multiple:true})}if(typeof this.className!="undefined"&&this.className&&this.className.length){$li.addClass(this.className)}if($li.hasClass("pw-nav-add")||$li.hasClass("pw-pagelist-show-all")){$ul.children(".pw-nav-dup").after($li.removeClass("separator").addClass("pw-nav-add"))}else{$ul.append($li)}});$spinner.remove();$ul.addClass("navJSON").addClass("length"+parseInt(data.list.length)).hide();if($ul.children().length)$ul.css("opacity",1).fadeIn("fast")});return false})},setupInputfields:function(){var noGrid=$("body").hasClass("AdminThemeUikitNoGrid");function initFormMarkup($target){$("form.uk-form-horizontal").each(function(){$(this).find(".InputfieldContent > .Inputfields").each(function(){var $content=$(this);$content.addClass("uk-form-vertical");$content.find(".uk-form-label").removeClass("uk-form-label");$content.find(".uk-form-controls").removeClass("uk-form-controls")});$(this).find(".InputfieldSubmit, .InputfieldButton").each(function(){$(this).find(".InputfieldContent").before("
       
      ")})});$(".InputfieldNoBorder.uk-card").removeClass("uk-card uk-card-default");$(".InputfieldIsOffset.InputfieldColumnWidthFirst").each(function(){var $t=$(this);var $f;do{$f=$t.next(".InputfieldColumnWidth");if(!$f.length||$f.hasClass("InputfieldColumnWidthFirst"))break;$f.addClass("InputfieldIsOffset");$t=$f}while(true)});$(".Inputfields").each(function(){identifyFirstLastRows($(this))});$(".ui-widget.Inputfield, .ui-widget-header.InputfieldHeader, .ui-widget-content.InputfieldContent").removeClass("ui-widget ui-widget-header ui-widget-content");$(".MarkupPagerNav:not(.uk-pagination)").each(function(){$(this).addClass("uk-pagination")});if(typeof $target=="undefined")$target=$(".InputfieldForm");var $selects=$("select:not([multiple]):not(.uk-select)",$target);$selects.addClass("uk-select")}function identifyFirstLastRows($inputfields){$(".InputfieldRowFirst",$inputfields).removeClass("InputfieldRowFirst");$(".InputfieldRowLast",$inputfields).removeClass("InputfieldRowLast");var $in=$inputfields.children(".Inputfield:not(.InputfieldStateHidden):eq(0)");if(!$in.length)return;do{$in.addClass("InputfieldRowFirst");$in=$in.next(".Inputfield:not(.InputfieldStateHidden)")}while($in.hasClass("InputfieldColumnWidth")&&!$in.hasClass("InputfieldColumnWidthFirst"));$in=$inputfields.children(".Inputfield:last-child");while($in.length&&$in.hasClass("InputfieldStateHidden")){$in=$in.prev(".Inputfield")}do{$in.addClass("InputfieldRowLast");if(!$in.hasClass("InputfieldColumnWidth")||$in.hasClass("InputfieldColumnWidthFirst"))break;$in=$in.prev(".Inputfield:not(.InputfieldStateHidden)")}while($in.hasClass("InputfieldColumnWidth"))}var ukGridClassCache=[];function ukGridClass(width,$in){if(noGrid&&typeof $in!="undefined"){if(typeof width=="string"){$in.addClass(width)}else{$in.css("width",width+"%")}return""}var ukGridClassDefault="uk-width-1-1";var ukGridClass=ukGridClassDefault;var widthIsClass=false;if(typeof width=="string"&&typeof $in!="undefined"){ukGridClass=width;widthIsClass=true}else if(!width||width>=100){ukGridClass=ukGridClassDefault}else if(typeof ukGridClassCache[width]!="undefined"){ukGridClass="uk-width-"+ukGridClassCache[width]}else{for(var pct in ProcessWire.config.ukGridWidths){var cn=ProcessWire.config.ukGridWidths[pct];pct=parseInt(pct);if(width>=pct){ukGridClass=cn;break}}if(ukGridClass.length){ukGridClassCache[width]=ukGridClass;ukGridClass="uk-width-"+ukGridClass}}if(!widthIsClass&&ukGridClass&&ukGridClass!=ukGridClassDefault){ukGridClass+="@m"}if(typeof $in!="undefined"){if(ukGridClass&&$in.hasClass(ukGridClass)){}else{removeUkGridClass($in);if(ukGridClass)$in.addClass(ukGridClass)}}return ukGridClass}function removeUkGridClass(str){var $in=null;if(typeof str!="string"){$in=str;str=$in.attr("class")}if(str.indexOf("uk-width-")>-1){var cls=str.replace(/uk-width-(\d-\d|expand)[@smxl]*\s*/g,"");if($in!==null)$in.attr("class",cls)}return str}function updateInputfieldRow($inputfield){if(!$inputfield)return;var $inputfields=$inputfield.parent().children(".Inputfield");var $lastInputfield=null;var width=0;var widthHidden=0;var w=0;var lastW=0;var debug=false;function consoleLog(msg,$in){if(!debug)return;if(typeof $in=="undefined")$in=$inputfield;var id=$in.attr("id");id=id.replace("wrap_Inputfield_","");console.log(id+" (combined width="+width+", w="+w+"): "+msg)}function expandLastInputfield($in){if(typeof $in=="undefined")$in=$lastInputfield;if($in){if(noGrid){$in.addClass("InputfieldColumnWidthLast")}else{ukGridClass("InputfieldColumnWidthLast uk-width-expand",$in)}}}function applyHiddenInputfield(){if(debug)consoleLog("A: hidden",$inputfield);lastW+=w;width+=w;if($lastInputfield&&width>=95){if(debug)consoleLog("Updating last visible Inputfield to width="+lastW,$lastInputfield);ukGridClass(lastW,$lastInputfield);width=0;lastW=0;widthHidden=0;$lastInputfield=null}else{widthHidden+=w}}function applyFullWidthInputfield(){if(debug)consoleLog("Skipping because full-width",$inputfield);if(width<100&&$lastInputfield)expandLastInputfield($lastInputfield);$lastInputfield=null;widthHidden=0;lastW=0;width=0}$inputfields.each(function(){$inputfield=$(this);var isLastColumn=false;var isFirstColumn=false;var hasWidth=$inputfield.hasClass("InputfieldColumnWidth");var isNewRow=!hasWidth||$inputfield.hasClass("InputfieldColumnWidthFirst");if(isNewRow&&$lastInputfield&&width<100){expandLastInputfield($lastInputfield)}w=hasWidth?parseInt($inputfield.attr("data-colwidth")):0;if(!w||w>=95){applyFullWidthInputfield();return}if($inputfield.hasClass("InputfieldStateHidden")){applyHiddenInputfield();return}if(!width||width>=100){width=0;isFirstColumn=true;isLastColumn=false;if(debug)consoleLog("B: starting new row",$inputfield)}else if(width+w>100){if($lastInputfield)expandLastInputfield($lastInputfield);width=0;isFirstColumn=true;if(debug)consoleLog("C: start new row because width would exceed 100%",$inputfield)}else if(width+w==100){isLastColumn=true;if(debug)consoleLog("D: width is exactly 100%, so this is the last column",$inputfield)}else if(width+w>=95){isLastColumn=true;w=100-width;if(debug)consoleLog("D2: width is close enough to 100%, so this is the last column",$inputfield)}else{if(debug)consoleLog("E: not first or last column",$inputfield)}if(isLastColumn){$inputfield.addClass("InputfieldColumnWidthLast")}else{$inputfield.removeClass("InputfieldColumnWidthLast")}if(isFirstColumn){$inputfield.addClass("InputfieldColumnWidthFirst");widthHidden=0}else{$inputfield.removeClass("InputfieldColumnWidthFirst")}if(isLastColumn){$lastInputfield=null;width=0;lastW=0;if(widthHidden)w+=widthHidden;widthHidden=0}else{$lastInputfield=$inputfield;width+=w;lastW=w}ukGridClass(w,$inputfield)});if(width<100&&$lastInputfield)expandLastInputfield($lastInputfield)}var showHideInputfieldTimer=null;var showHideInputfield=function(event,inputfield){var $inputfield=$(inputfield);if(event.type=="showInputfield"){$inputfield.removeClass("uk-hidden")}else{$inputfield.show();$inputfield.addClass("uk-hidden")}updateInputfieldRow($inputfield);if(showHideInputfieldTimer)return;showHideInputfieldTimer=setTimeout(function(){identifyFirstLastRows($inputfield.closest(".Inputfields"));var $inputfields=$inputfield.find(".Inputfields");if($inputfields.length){$inputfields.each(function(){identifyFirstLastRows($(this))})}showHideInputfieldTimer=null},100)};$(document).on("reloaded",function(){initFormMarkup($(this))});$(document).on("hideInputfield",showHideInputfield);$(document).on("showInputfield",showHideInputfield);$(document).on("columnWidth",".Inputfield",function(e,width){ukGridClass(width,$(this));return false});$("body").addClass("InputfieldColumnWidthsInit");Inputfields.toggleBehavior=ProcessWire.config.adminTheme.toggleBehavior;initFormMarkup()},setupTooltips:function(){$(".tooltip, .pw-tooltip").each(function(){$(this).removeClass("tooltip pw-tooltip");UIkit.tooltip($(this))})},linkTargetMainMouseoverEvent:function(){var $a=$(this);var href=$a.attr("href");if(href.length<2)return;if($a.attr("target"))return;if($a.parent("li").hasClass("PageListActionView")){$a.attr("target","_top")}else{$a.attr("target","main")}},logoClickEvent:function(){if($("body").hasClass("pw-layout-sidenav-init")){if($("#pw-admin-side").length){toggleSidebarPane()}else{UIkit.toggle("#offcanvas-nav").toggle()}}else if(ProcessWire.config.adminTheme.logoAction==1){UIkit.toggle("#offcanvas-nav").toggle()}else{return true}return false}};$(document).ready(function(){ProcessWireAdminTheme.ready()}); \ No newline at end of file +var ProcessWireAdminTheme={init:function(){this.setupInputfields();this.setupTooltips();this.checkLayout()},ready:function(){this.setupCloneButton();ProcessWireAdmin.init();this.setupSearch();this.setupSideNav();var $body=$("body");$(document).on("wiretabclick opened",function(e){$("body").addClass("pw-fake-resize");$(window).trigger("resize");setTimeout(function(){$("body").removeClass("pw-fake-resize")},100)});$("a.notice-remove","#notices").on("click",function(){$("#notices").slideUp("fast",function(){$(this).remove()});return false});$("a.pw-logo-link").on("click",this.logoClickEvent);$("#_ProcessPageEditView").on("click",function(e){e.stopPropagation()});var resizeTimer=null;$(window).on("resize",function(){if(resizeTimer)return;resizeTimer=setTimeout(function(){ProcessWireAdminTheme.windowResized();resizeTimer=null},250)});this.setupMasthead();this.setupWireTabs();$body.removeClass("pw-init").addClass("pw-ready")},setupWireTabs:function(){var $tabs=$(".WireTabs");if($tabs.length){$(document).on("wiretabclick",function(event,$newTabContent){ProcessWireAdminTheme.wireTabClick($newTabContent)});setTimeout(function(){var $activeTab=$tabs.children(".uk-active");if($activeTab.length){var href=$activeTab.find("a").attr("href");if(href.indexOf("#")===0){var $activeContent=$(href);if($activeContent.length)ProcessWireAdminTheme.wireTabClick($activeContent)}}},500)}},wireTabClick:function($newTabContent){if(!$newTabContent.length)return;var $header=null;var $inputfield=null;if($newTabContent.hasClass("InputfieldWrapper")){$inputfield=$newTabContent.children(".Inputfields").children(".Inputfield").first();$header=$inputfield.children(".InputfieldHeader")}else if($newTabContent.hasClass("Inputfield")){$inputfield=$newTabContent;$header=$newTabContent.children(".InputfieldHeader")}if(!$header||!$header.length)return;var skip=false;var skipClasses=["InputfieldIsPrimary","InputfieldIsWarning","InputfieldIsError","InputfieldIsHighlight","InputfieldIsSuccess"];for(var n=0;n-1){href=href.replace(/([?&]layout)=[-_a-zA-Z0-9]+/,"$1=sidenav-init")}else{href+=(href.indexOf("?")>0?"&":"?")+"layout=sidenav-init"}window.location.href=href}},windowResized:function(){if($("body").hasClass("pw-fake-resize"))return;this.setupMasthead()},setupMasthead:function(){var $masthead=$("#pw-masthead");var $mastheadMobile=$("#pw-masthead-mobile");var width=$(window).width();var height=0;var maxHeight=0;if(width>767){maxHeight=parseInt($masthead.data("pw-height"));height=$masthead.children(".pw-container").height()}else{height=999}if($masthead.hasClass("uk-hidden"))$masthead.removeClass("uk-hidden");if(height>maxHeight){if(!$masthead.hasClass("pw-masthead-hidden")){$masthead.addClass("pw-masthead-hidden").css({position:"absolute",top:"-9999px"});$mastheadMobile.removeClass("uk-hidden");$("#offcanvas-toggle").removeClass("uk-hidden")}}else{if($masthead.hasClass("pw-masthead-hidden")){$mastheadMobile.addClass("uk-hidden");$masthead.removeClass("pw-masthead-hidden").css({position:"relative",top:0});$("#offcanvas-toggle").addClass("uk-hidden")}}},setupCloneButton:function(){if($("body").is(".modal"))return;var $buttons=$("button.pw-head-button, button.head_button_clone");if($buttons.length==0)return;var $head=$("#pw-content-head-buttons");var $lastToggle=null;var $lastButton=null;var toggles={};$buttons.each(function(){var $t=$(this);var $a=$t.parent("a");var $button;if($a.length>0){$button=$t.parent("a").clone(true);$head.prepend($button)}else if($t.hasClass("pw-head-button")||$t.hasClass("head_button_clone")){$button=$t.clone(true);$button.attr("data-from_id",$t.attr("id")).attr("id",$t.attr("id")+"_copy").addClass("pw-head-button");$button.on("click",function(){$("#"+$(this).attr("data-from_id")).trigger("click");return false});if($button.hasClass("pw-button-dropdown-toggle")){var id=$button.attr("id").replace("pw-dropdown-toggle-","");toggles[id]=$button}else if($button.hasClass("pw-button-dropdown-main")){var $wrap=$("").addClass("pw-button-dropdown-wrap");$wrap.append($button).addClass("uk-float-right");$head.prepend($wrap)}else{$button.addClass("uk-float-right");$head.prepend($button)}}});for(var id in toggles){var $toggle=toggles[id];var $button=$("#"+id);$button.after($toggle)}},setupSearch:function(){$.widget("custom.adminsearchautocomplete",$.ui.autocomplete,{_renderMenu:function(ul,items){var that=this;var currentType="";ul.addClass("pw-dropdown-menu-shorter uk-nav uk-nav-default");ul.css("z-index",9999);$.each(items,function(index,item){if(item.type!=currentType){if(currentType.length){$("
    • ").appendTo(ul)}$("
    • "+item.type+"
    • ").addClass("uk-nav-header").appendTo(ul);currentType=item.type}that._renderItemData(ul,item)})},_renderItem:function(ul,item){if(item.label==item.template)item.template="";var $label=$("").text(item.label).css("margin-right","3px");if(item.unpublished)$label.css("text-decoration","line-through");if(item.hidden)$label.addClass("ui-priority-secondary");if(item.icon.length){var $icon=$("").addClass("fa fa-fw fa-"+item.icon).css("margin-right","2px");$label.prepend($icon)}var $a=$("").attr("href",item.edit_url).attr("title",item.tip).append($label).append($("").text(item.template));if(item.edit_url=="#"||!item.edit_url.length){$a.removeAttr("href")}return $("
    • ").append($a).appendTo(ul)}});$(".pw-search-form").each(function(){var $form=$(this);var $input=$form.find(".pw-search-input");var position={my:"right top",at:"right bottom"};if($form.closest(".uk-offcanvas-bar").length){position.my="left top";position.at="left bottom"}$input.on("click",function(event){event.stopPropagation()});$input.adminsearchautocomplete({minLength:2,position:position,search:function(event,ui){$form.find(".pw-search-icon").addClass("uk-hidden");$form.find(".pw-spinner-icon").removeClass("uk-hidden")},open:function(event,ui){},close:function(event,ui){},source:function(request,response){if(request.term===$input.attr("data-help-term"))request.term="help";var url=$input.parents("form").attr("data-action")+"?q="+request.term;$.getJSON(url,function(data){var len=data.matches.length;if(len");$ul.append($spinner);$.getJSON(url,function(data){var $a2=$a.clone();var $icon2=$a2.find("i");if(!$icon2.length){$icon2=$("");$a2.prepend($icon2)}$icon2.attr("class","fa fa-fw fa-arrow-circle-right pw-nav-icon");$a2.removeAttr("data-json").removeAttr("class");$a2.find("small").remove();var $li=$("
    • ").addClass("pw-nav-dup").append($a2);$ul.append($li);if(data.add){var $li2=$("
    • "+""+""+data.add.label+""+"
    • ");$ul.append($li2)}$.each(data.list,function(i){if(this.label.indexOf("-1){this.label=this.label.replace(/<\/?span[^>]*>/g,"")}var icon="";var $label=$("
      "+this.label+"
      ");var label=$label.text();if(label.length>30){var $small=$label.find("small");if($small.length)$small.remove();label=$label.text();label=label.substring(0,30);var n=label.lastIndexOf(" ");if(n>3)label=label.substring(0,n)+"… ";$label.html(label);if($small.length)$label.append($small)}label=$label.html().replace(" "," ");if(this.icon)icon="";var url=this.url.indexOf("/")===0?this.url:data.url+this.url;var $a=$(""+icon+label+"");var $li=$("
    • ").append($a);if(this.navJSON!="undefined"&&this.navJSON){$a.addClass("pw-has-items pw-has-ajax-items").attr("data-json",this.navJSON);var $ul2=$("
        ");$li.addClass("uk-parent").append($ul2);UIkit.nav($ul2,{multiple:true})}if(typeof this.className!="undefined"&&this.className&&this.className.length){$li.addClass(this.className)}if($li.hasClass("pw-nav-add")||$li.hasClass("pw-pagelist-show-all")){$ul.children(".pw-nav-dup").after($li.removeClass("separator").addClass("pw-nav-add"))}else{$ul.append($li)}});$spinner.remove();$ul.addClass("navJSON").addClass("length"+parseInt(data.list.length)).hide();if($ul.children().length)$ul.css("opacity",1).fadeIn("fast")});return false})},setupInputfields:function(){var noGrid=$("body").hasClass("AdminThemeUikitNoGrid");function initFormMarkup($target){$("form.uk-form-horizontal").each(function(){$(this).find(".InputfieldContent > .Inputfields").each(function(){var $content=$(this);$content.addClass("uk-form-vertical");$content.find(".uk-form-label").removeClass("uk-form-label");$content.find(".uk-form-controls").removeClass("uk-form-controls")});$(this).find(".InputfieldSubmit, .InputfieldButton").each(function(){$(this).find(".InputfieldContent").before("
         
        ")})});$(".InputfieldNoBorder.uk-card").removeClass("uk-card uk-card-default");$(".InputfieldIsOffset.InputfieldColumnWidthFirst").each(function(){var $t=$(this);var $f;do{$f=$t.next(".InputfieldColumnWidth");if(!$f.length||$f.hasClass("InputfieldColumnWidthFirst"))break;$f.addClass("InputfieldIsOffset");$t=$f}while(true)});$(".Inputfields").each(function(){identifyFirstLastRows($(this))});$(".ui-widget.Inputfield, .ui-widget-header.InputfieldHeader, .ui-widget-content.InputfieldContent").removeClass("ui-widget ui-widget-header ui-widget-content");$(".MarkupPagerNav:not(.uk-pagination)").each(function(){$(this).addClass("uk-pagination")});if(typeof $target=="undefined")$target=$(".InputfieldForm");var $selects=$("select:not([multiple]):not(.uk-select)",$target);$selects.addClass("uk-select")}function identifyFirstLastRows($inputfields){$(".InputfieldRowFirst",$inputfields).removeClass("InputfieldRowFirst");$(".InputfieldRowLast",$inputfields).removeClass("InputfieldRowLast");var $in=$inputfields.children(".Inputfield:not(.InputfieldStateHidden)").first();if(!$in.length)return;do{$in.addClass("InputfieldRowFirst");$in=$in.next(".Inputfield:not(.InputfieldStateHidden)")}while($in.hasClass("InputfieldColumnWidth")&&!$in.hasClass("InputfieldColumnWidthFirst"));$in=$inputfields.children(".Inputfield:last-child");while($in.length&&$in.hasClass("InputfieldStateHidden")){$in=$in.prev(".Inputfield")}do{$in.addClass("InputfieldRowLast");if(!$in.hasClass("InputfieldColumnWidth")||$in.hasClass("InputfieldColumnWidthFirst"))break;$in=$in.prev(".Inputfield:not(.InputfieldStateHidden)")}while($in.hasClass("InputfieldColumnWidth"))}var ukGridClassCache=[];function ukGridClass(width,$in){if(noGrid&&typeof $in!="undefined"){if(typeof width=="string"){$in.addClass(width)}else{$in.css("width",width+"%")}return""}var ukGridClassDefault="uk-width-1-1";var ukGridClass=ukGridClassDefault;var widthIsClass=false;if(typeof width=="string"&&typeof $in!="undefined"){ukGridClass=width;widthIsClass=true}else if(!width||width>=100){ukGridClass=ukGridClassDefault}else if(typeof ukGridClassCache[width]!="undefined"){ukGridClass="uk-width-"+ukGridClassCache[width]}else{for(var pct in ProcessWire.config.ukGridWidths){var cn=ProcessWire.config.ukGridWidths[pct];pct=parseInt(pct);if(width>=pct){ukGridClass=cn;break}}if(ukGridClass.length){ukGridClassCache[width]=ukGridClass;ukGridClass="uk-width-"+ukGridClass}}if(!widthIsClass&&ukGridClass&&ukGridClass!=ukGridClassDefault){ukGridClass+="@m"}if(typeof $in!="undefined"){if(ukGridClass&&$in.hasClass(ukGridClass)){}else{removeUkGridClass($in);if(ukGridClass)$in.addClass(ukGridClass)}}return ukGridClass}function removeUkGridClass(str){var $in=null;if(typeof str!="string"){$in=str;str=$in.attr("class")}if(str.indexOf("uk-width-")>-1){var cls=str.replace(/uk-width-(\d-\d|expand)[@smxl]*\s*/g,"");if($in!==null)$in.attr("class",cls)}return str}function updateInputfieldRow($inputfield){if(!$inputfield)return;var $inputfields=$inputfield.parent().children(".Inputfield");var $lastInputfield=null;var width=0;var widthHidden=0;var w=0;var lastW=0;var debug=false;function consoleLog(msg,$in){if(!debug)return;if(typeof $in=="undefined")$in=$inputfield;var id=$in.attr("id");id=id.replace("wrap_Inputfield_","");console.log(id+" (combined width="+width+", w="+w+"): "+msg)}function expandLastInputfield($in){if(typeof $in=="undefined")$in=$lastInputfield;if($in){if(noGrid){$in.addClass("InputfieldColumnWidthLast")}else{ukGridClass("InputfieldColumnWidthLast uk-width-expand",$in)}}}function applyHiddenInputfield(){if(debug)consoleLog("A: hidden",$inputfield);lastW+=w;width+=w;if($lastInputfield&&width>=95){if(debug)consoleLog("Updating last visible Inputfield to width="+lastW,$lastInputfield);ukGridClass(lastW,$lastInputfield);width=0;lastW=0;widthHidden=0;$lastInputfield=null}else{widthHidden+=w}}function applyFullWidthInputfield(){if(debug)consoleLog("Skipping because full-width",$inputfield);if(width<100&&$lastInputfield)expandLastInputfield($lastInputfield);$lastInputfield=null;widthHidden=0;lastW=0;width=0}$inputfields.each(function(){$inputfield=$(this);var isLastColumn=false;var isFirstColumn=false;var hasWidth=$inputfield.hasClass("InputfieldColumnWidth");var isNewRow=!hasWidth||$inputfield.hasClass("InputfieldColumnWidthFirst");if(isNewRow&&$lastInputfield&&width<100){expandLastInputfield($lastInputfield)}w=hasWidth?parseInt($inputfield.attr("data-colwidth")):0;if(!w||w>=95){applyFullWidthInputfield();return}if($inputfield.hasClass("InputfieldStateHidden")){applyHiddenInputfield();return}if(!width||width>=100){width=0;isFirstColumn=true;isLastColumn=false;if(debug)consoleLog("B: starting new row",$inputfield)}else if(width+w>100){if($lastInputfield)expandLastInputfield($lastInputfield);width=0;isFirstColumn=true;if(debug)consoleLog("C: start new row because width would exceed 100%",$inputfield)}else if(width+w==100){isLastColumn=true;if(debug)consoleLog("D: width is exactly 100%, so this is the last column",$inputfield)}else if(width+w>=95){isLastColumn=true;w=100-width;if(debug)consoleLog("D2: width is close enough to 100%, so this is the last column",$inputfield)}else{if(debug)consoleLog("E: not first or last column",$inputfield)}if(isLastColumn){$inputfield.addClass("InputfieldColumnWidthLast")}else{$inputfield.removeClass("InputfieldColumnWidthLast")}if(isFirstColumn){$inputfield.addClass("InputfieldColumnWidthFirst");widthHidden=0}else{$inputfield.removeClass("InputfieldColumnWidthFirst")}if(isLastColumn){$lastInputfield=null;width=0;lastW=0;if(widthHidden)w+=widthHidden;widthHidden=0}else{$lastInputfield=$inputfield;width+=w;lastW=w}ukGridClass(w,$inputfield)});if(width<100&&$lastInputfield)expandLastInputfield($lastInputfield)}var showHideInputfieldTimer=null;var showHideInputfield=function(event,inputfield){var $inputfield=$(inputfield);if(event.type=="showInputfield"){$inputfield.removeClass("uk-hidden")}else{$inputfield.show();$inputfield.addClass("uk-hidden")}updateInputfieldRow($inputfield);if(showHideInputfieldTimer)return;showHideInputfieldTimer=setTimeout(function(){identifyFirstLastRows($inputfield.closest(".Inputfields"));var $inputfields=$inputfield.find(".Inputfields");if($inputfields.length){$inputfields.each(function(){identifyFirstLastRows($(this))})}showHideInputfieldTimer=null},100)};$(document).on("reloaded",function(){initFormMarkup($(this))});$(document).on("hideInputfield",showHideInputfield);$(document).on("showInputfield",showHideInputfield);$(document).on("columnWidth",".Inputfield",function(e,width){ukGridClass(width,$(this));return false});$("body").addClass("InputfieldColumnWidthsInit");Inputfields.toggleBehavior=ProcessWire.config.adminTheme.toggleBehavior;initFormMarkup()},setupTooltips:function(){$(".tooltip, .pw-tooltip").each(function(){$(this).removeClass("tooltip pw-tooltip");UIkit.tooltip($(this))})},linkTargetMainMouseoverEvent:function(){var $a=$(this);var href=$a.attr("href");if(href.length<2)return;if($a.attr("target"))return;if($a.parent("li").hasClass("PageListActionView")){$a.attr("target","_top")}else{$a.attr("target","main")}},logoClickEvent:function(){if($("body").hasClass("pw-layout-sidenav-init")){if($("#pw-admin-side").length){toggleSidebarPane()}else{UIkit.toggle("#offcanvas-nav").toggle()}}else if(ProcessWire.config.adminTheme.logoAction==1){UIkit.toggle("#offcanvas-nav").toggle()}else{return true}return false}};$(document).ready(function(){ProcessWireAdminTheme.ready()}); \ No newline at end of file diff --git a/wire/modules/Fieldtype/FieldtypeComments/comments.js b/wire/modules/Fieldtype/FieldtypeComments/comments.js index 2125240b..923c1894 100644 --- a/wire/modules/Fieldtype/FieldtypeComments/comments.js +++ b/wire/modules/Fieldtype/FieldtypeComments/comments.js @@ -89,7 +89,7 @@ function CommentFormStars() { if(value === valuePrev) value = 0; // click on current value to unset $input.val(value).attr('value', value); // redundancy intended, val() not working on webkit mobile for some reason setStars($parent, value); - $input.change(); + $input.trigger('change'); return false; }); @@ -132,7 +132,7 @@ function CommentActionReplyClick() { $form = jQuery('#CommentForm form').clone().removeAttr('id'); $form.addClass('CommentForm' + commentID); $form.hide().find('.CommentFormParent').val(commentID); - var $formPlaceholder = $item.find('form:not(.CommentFormReply):eq(0)'); + var $formPlaceholder = $item.find('form:not(.CommentFormReply)').first(); if($formPlaceholder.length) { // use existing
        placed in there as optional target for reply form $formPlaceholder.replaceWith($form); diff --git a/wire/modules/Fieldtype/FieldtypeComments/comments.min.js b/wire/modules/Fieldtype/FieldtypeComments/comments.min.js index 097f7ac7..f355e544 100644 --- a/wire/modules/Fieldtype/FieldtypeComments/comments.min.js +++ b/wire/modules/Fieldtype/FieldtypeComments/comments.min.js @@ -1 +1 @@ -function CommentFormSetCookie(name,value,days){var cookieValue=name+"="+escape(value)+";path=/";if(days==null)days=0;if(days>0){var today=new Date;var expire=new Date;expire.setTime(today.getTime()+36e5*24*days);document.cookie=cookieValue+";expires="+expire.toGMTString()}else{document.cookie=cookieValue}}function CommentFormGetCookie(name){var regex=new RegExp("[; ]"+name+"=([^\\s;]*)");var match=(" "+document.cookie).match(regex);if(name&&match)return unescape(match[1]);return""}function CommentFormStars(){function decodeEntities(encodedString){if(encodedString.indexOf("&")==-1)return encodedString;var textarea=document.createElement("textarea");textarea.innerHTML=encodedString;return textarea.value}function setStars($parent,star){var onClass,offClass,starOn,starOff;onClass=$parent.attr("data-onclass");offClass=$parent.attr("data-offclass");starOn=$parent.attr("data-on");if(typeof onClass=="undefined")onClass="CommentStarOff";if(typeof offClass=="undefined")offClass="CommentStarOff";if(typeof starOn!="undefined"){starOff=$parent.attr("data-off");starOn=decodeEntities(starOn);starOff=decodeEntities(starOff)}else{starOn="";starOff=""}$parent.children("span").each(function(){var val=parseInt(jQuery(this).attr("data-value"));if(val<=star){if(starOn.length)jQuery(this).html(starOn);jQuery(this).addClass(onClass).removeClass(offClass)}else{if(starOff.length)jQuery(this).html(starOff);jQuery(this).removeClass(onClass).addClass(offClass)}})}jQuery(".CommentFormStars input").hide();jQuery(document).on("click",".CommentStarsInput span",function(e){var value=parseInt(jQuery(this).attr("data-value"));var $parent=jQuery(this).parent();var $input=$parent.prev("input");var valuePrev=parseInt($input.val());if(value===valuePrev)value=0;$input.val(value).attr("value",value);setStars($parent,value);$input.change();return false})}function CommentActionReplyClick(){var $this=jQuery(this);var $item=$this.closest(".CommentListItem");var $form=$this.parent().next("form.CommentForm");var commentID=$item.attr("data-comment");if($form.length==0){$form=$item.find(".CommentForm"+commentID)}if($form.length==0){$form=jQuery("#CommentForm form").clone().removeAttr("id");$form.addClass("CommentForm"+commentID);$form.hide().find(".CommentFormParent").val(commentID);var $formPlaceholder=$item.find("form:not(.CommentFormReply):eq(0)");if($formPlaceholder.length){$formPlaceholder.replaceWith($form)}else{$this.parent().after($form)}$form.addClass("CommentFormReply");if($form.is("form[hidden]")){$form.removeAttr("hidden")}else if(!$form.is(":visible")){$form.slideDown()}$form.trigger("CommentFormReplyAdd");$form.trigger("CommentFormReplyShow")}else if(!$form.is(":visible")){$form.slideDown();$form.trigger("CommentFormReplyShow")}else{$form.slideUp();$form.trigger("CommentFormReplyHide")}return false}function CommentActionRepliesClick(){var $this=jQuery(this);var href=$this.attr("href");var $list=$this.closest(".CommentListItem").find(href);if($list.is(":hidden")){$list.removeAttr("hidden")}else{$list.attr("hidden",true)}return false}function CommentFormSubmitClick(){var $this=jQuery(this);var $form=$this.closest("form.CommentForm");var $wrapStars=$form.find(".CommentFormStarsRequired");if($wrapStars.length){var stars=parseInt($wrapStars.find("input").val());if(!stars){alert($wrapStars.attr("data-note"));return false}}var cite=$form.find(".CommentFormCite input").val();var email=$form.find(".CommentFormEmail input").val();var $website=$form.find(".CommentFormWebsite input");var website=$website.length>0?$website.val():"";var $notify=$form.find(".CommentFormNotify :checked");var notify=$notify.length>0?$notify.val():"";if(cite.indexOf("|")>-1)cite="";if(email.indexOf("|")>-1)email="";if(website.indexOf("|")>-1)website="";var cookieValue=cite+"|"+email+"|"+website+"|"+notify;CommentFormSetCookie("CommentForm",cookieValue,0)}function CommentFormCookies(){var $form=jQuery("form.CommentForm");if(!$form.length)return;var cookieValue=CommentFormGetCookie("CommentForm");if(cookieValue.length<1)return;var values=cookieValue.split("|");$form.find(".CommentFormCite input").val(values[0]);$form.find(".CommentFormEmail input").val(values[1]);$form.find(".CommentFormWebsite input").val(values[2]);$form.find(".CommentFormNotify :input[value='"+values[3]+"']").prop("checked",true)}function CommentFormUpvoteDownvote(){var voting=false;jQuery(".CommentActionUpvote, .CommentActionDownvote").on("click",function(){if(voting)return false;voting=true;var $a=jQuery(this);jQuery.getJSON($a.attr("data-url"),function(data){if("success"in data){if(data.success){var $votes=$a.closest(".CommentVotes");$votes.find(".CommentUpvoteCnt").text(data.upvotes);$votes.find(".CommentDownvoteCnt").text(data.downvotes);$a.addClass("CommentVoted")}else if(data.message.length){alert(data.message)}}else{voting=false;return true}voting=false});return false})}function CommentFormInit(){jQuery(".CommentActionReply").on("click",CommentActionReplyClick);jQuery(".CommentActionReplies").on("click",CommentActionRepliesClick);jQuery(".CommentFormSubmit button").on("click",CommentFormSubmitClick);CommentFormCookies();CommentFormUpvoteDownvote();if(jQuery(".CommentStarsInput").length)CommentFormStars()}jQuery(document).ready(function(){CommentFormInit()}); \ No newline at end of file +function CommentFormSetCookie(name,value,days){var cookieValue=name+"="+escape(value)+";path=/";if(days==null)days=0;if(days>0){var today=new Date;var expire=new Date;expire.setTime(today.getTime()+36e5*24*days);document.cookie=cookieValue+";expires="+expire.toGMTString()}else{document.cookie=cookieValue}}function CommentFormGetCookie(name){var regex=new RegExp("[; ]"+name+"=([^\\s;]*)");var match=(" "+document.cookie).match(regex);if(name&&match)return unescape(match[1]);return""}function CommentFormStars(){function decodeEntities(encodedString){if(encodedString.indexOf("&")==-1)return encodedString;var textarea=document.createElement("textarea");textarea.innerHTML=encodedString;return textarea.value}function setStars($parent,star){var onClass,offClass,starOn,starOff;onClass=$parent.attr("data-onclass");offClass=$parent.attr("data-offclass");starOn=$parent.attr("data-on");if(typeof onClass=="undefined")onClass="CommentStarOff";if(typeof offClass=="undefined")offClass="CommentStarOff";if(typeof starOn!="undefined"){starOff=$parent.attr("data-off");starOn=decodeEntities(starOn);starOff=decodeEntities(starOff)}else{starOn="";starOff=""}$parent.children("span").each(function(){var val=parseInt(jQuery(this).attr("data-value"));if(val<=star){if(starOn.length)jQuery(this).html(starOn);jQuery(this).addClass(onClass).removeClass(offClass)}else{if(starOff.length)jQuery(this).html(starOff);jQuery(this).removeClass(onClass).addClass(offClass)}})}jQuery(".CommentFormStars input").hide();jQuery(document).on("click",".CommentStarsInput span",function(e){var value=parseInt(jQuery(this).attr("data-value"));var $parent=jQuery(this).parent();var $input=$parent.prev("input");var valuePrev=parseInt($input.val());if(value===valuePrev)value=0;$input.val(value).attr("value",value);setStars($parent,value);$input.trigger("change");return false})}function CommentActionReplyClick(){var $this=jQuery(this);var $item=$this.closest(".CommentListItem");var $form=$this.parent().next("form.CommentForm");var commentID=$item.attr("data-comment");if($form.length==0){$form=$item.find(".CommentForm"+commentID)}if($form.length==0){$form=jQuery("#CommentForm form").clone().removeAttr("id");$form.addClass("CommentForm"+commentID);$form.hide().find(".CommentFormParent").val(commentID);var $formPlaceholder=$item.find("form:not(.CommentFormReply)").first();if($formPlaceholder.length){$formPlaceholder.replaceWith($form)}else{$this.parent().after($form)}$form.addClass("CommentFormReply");if($form.is("form[hidden]")){$form.removeAttr("hidden")}else if(!$form.is(":visible")){$form.slideDown()}$form.trigger("CommentFormReplyAdd");$form.trigger("CommentFormReplyShow")}else if(!$form.is(":visible")){$form.slideDown();$form.trigger("CommentFormReplyShow")}else{$form.slideUp();$form.trigger("CommentFormReplyHide")}return false}function CommentActionRepliesClick(){var $this=jQuery(this);var href=$this.attr("href");var $list=$this.closest(".CommentListItem").find(href);if($list.is(":hidden")){$list.removeAttr("hidden")}else{$list.attr("hidden",true)}return false}function CommentFormSubmitClick(){var $this=jQuery(this);var $form=$this.closest("form.CommentForm");var $wrapStars=$form.find(".CommentFormStarsRequired");if($wrapStars.length){var stars=parseInt($wrapStars.find("input").val());if(!stars){alert($wrapStars.attr("data-note"));return false}}var cite=$form.find(".CommentFormCite input").val();var email=$form.find(".CommentFormEmail input").val();var $website=$form.find(".CommentFormWebsite input");var website=$website.length>0?$website.val():"";var $notify=$form.find(".CommentFormNotify :checked");var notify=$notify.length>0?$notify.val():"";if(cite.indexOf("|")>-1)cite="";if(email.indexOf("|")>-1)email="";if(website.indexOf("|")>-1)website="";var cookieValue=cite+"|"+email+"|"+website+"|"+notify;CommentFormSetCookie("CommentForm",cookieValue,0)}function CommentFormCookies(){var $form=jQuery("form.CommentForm");if(!$form.length)return;var cookieValue=CommentFormGetCookie("CommentForm");if(cookieValue.length<1)return;var values=cookieValue.split("|");$form.find(".CommentFormCite input").val(values[0]);$form.find(".CommentFormEmail input").val(values[1]);$form.find(".CommentFormWebsite input").val(values[2]);$form.find(".CommentFormNotify :input[value='"+values[3]+"']").prop("checked",true)}function CommentFormUpvoteDownvote(){var voting=false;jQuery(".CommentActionUpvote, .CommentActionDownvote").on("click",function(){if(voting)return false;voting=true;var $a=jQuery(this);jQuery.getJSON($a.attr("data-url"),function(data){if("success"in data){if(data.success){var $votes=$a.closest(".CommentVotes");$votes.find(".CommentUpvoteCnt").text(data.upvotes);$votes.find(".CommentDownvoteCnt").text(data.downvotes);$a.addClass("CommentVoted")}else if(data.message.length){alert(data.message)}}else{voting=false;return true}voting=false});return false})}function CommentFormInit(){jQuery(".CommentActionReply").on("click",CommentActionReplyClick);jQuery(".CommentActionReplies").on("click",CommentActionRepliesClick);jQuery(".CommentFormSubmit button").on("click",CommentFormSubmitClick);CommentFormCookies();CommentFormUpvoteDownvote();if(jQuery(".CommentStarsInput").length)CommentFormStars()}jQuery(document).ready(function(){CommentFormInit()}); \ No newline at end of file diff --git a/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.js b/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.js index 8dae9d6b..c7f9af95 100644 --- a/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.js +++ b/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.js @@ -103,7 +103,7 @@ function InputfieldRepeater($) { $checkbox.prop('checked', true); $header.removeClass('ui-state-default').addClass('ui-state-error'); if(!$item.hasClass('InputfieldStateCollapsed')) { - $header.find('.toggle-icon').click(); + $header.find('.toggle-icon').trigger('click'); //$item.toggleClass('InputfieldStateCollapsed', 100); } $item.addClass('InputfieldRepeaterDeletePending').trigger('repeaterdelete'); @@ -133,9 +133,9 @@ function InputfieldRepeater($) { var $item = $(this); var $trashLink = $item.children('.InputfieldHeader').find('.InputfieldRepeaterTrash'); if($item.hasClass('InputfieldRepeaterDeletePending')) { - if(undelete) $trashLink.click(); + if(undelete) $trashLink.trigger('click'); } else { - if(!undelete) $trashLink.click(); + if(!undelete) $trashLink.trigger('click'); } }); } @@ -160,7 +160,7 @@ function InputfieldRepeater($) { ProcessWire.confirm(ProcessWire.config.InputfieldRepeater.labels.clone, function() { var itemID = $item.attr('data-page'); var $addLink = $item.closest('.InputfieldRepeater').children('.InputfieldContent') - .children('.InputfieldRepeaterAddItem').find('.InputfieldRepeaterAddLink:eq(0)'); + .children('.InputfieldRepeaterAddItem').find('.InputfieldRepeaterAddLink').first(); // $('html, body').animate({ scrollTop: $addLink.offset().top - 100}, 250, 'swing'); $item.siblings('.InputfieldRepeaterInsertItem').remove(); @@ -185,7 +185,7 @@ function InputfieldRepeater($) { } setItemDepth($newItem, depth); $newItem.show(); - $addLink.attr('data-clone', itemID).click(); + $addLink.attr('data-clone', itemID).trigger('click'); }); return false; }; @@ -276,7 +276,7 @@ function InputfieldRepeater($) { } if($item.hasClass('InputfieldStateCollapsed')) { - $this.closest('.InputfieldHeader').click(); //find('.InputfieldRepeaterToggle').click(); + $this.closest('.InputfieldHeader').trigger('click'); } if($settings.is(':visible')) { @@ -586,7 +586,7 @@ function InputfieldRepeater($) { } ProcessWire.confirm(label, function() { $items.filter(selector).each(function() { - $(this).children('.InputfieldHeader').find('.toggle-icon').click(); + $(this).children('.InputfieldHeader').find('.toggle-icon').trigger('click'); }); }); return false; @@ -638,11 +638,10 @@ function InputfieldRepeater($) { if(!insertBefore && !$item.hasClass('InputfieldStateCollapsed')) scrollToItem($insertItem); $insertItem.children('.InputfieldHeader').effect('highlight', {}, 500); - // var $addLinks = $item.parent('.Inputfields').siblings('.InputfieldRepeaterAddItem').find('.InputfieldRepeaterAddLink:eq(0)').click(); var $addLinks = $item.parent('.Inputfields').siblings('.InputfieldRepeaterAddItem').find('.InputfieldRepeaterAddLink'); if($addLinks.length === 1) { // add new item now - $addLinks.eq(0).click(); + $addLinks.eq(0).trigger('click'); } else if($addLinks.length > 1) { // we need to know what type of link to add (i.e. matrix) $item.trigger('repeaterinsert', [ $insertItem, $item, insertBefore ]); @@ -1186,9 +1185,9 @@ function InputfieldRepeater($) { sortableOptions.axis = 'y'; } // apply "ui-state-focus" class when an item is being dragged - $(".InputfieldRepeaterDrag", $inputfields).hover(function() { + $(".InputfieldRepeaterDrag", $inputfields).on('mouseenter', function() { $(this).parent('label').addClass('ui-state-focus'); - }, function() { + }).on('mouseleave', function() { $(this).parent('label').removeClass('ui-state-focus'); }); @@ -1288,7 +1287,7 @@ function InputfieldRepeater($) { isItem = true; } else { // enter repeater - $inputfields = $this.find('.Inputfields:eq(0)'); + $inputfields = $this.find('.Inputfields').first(); $inputfieldRepeater = $this; isItem = false; } @@ -1315,18 +1314,18 @@ function InputfieldRepeater($) { } // hovering the trash gives a preview of what clicking it would do - $(".InputfieldRepeaterTrash", $this).hover(function() { + $(".InputfieldRepeaterTrash", $this).on('mouseenter', function() { var $label = $(this).closest('label'); if(!$label.parents().hasClass('InputfieldRepeaterDeletePending')) $label.addClass('ui-state-error'); $label.find('.InputfieldRepeaterItemControls').css('background-color', $label.css('background-color')); - }, function() { + }).on('mouseleave', function() { var $label = $(this).closest('label'); if(!$label.parent().hasClass('InputfieldRepeaterDeletePending')) $label.removeClass('ui-state-error'); $label.find('.InputfieldRepeaterItemControls').css('background-color', $label.css('background-color')); }); // if we only init'd a single item, now make $inputfields refer to all repeater items for sortable init - if(isItem) $inputfields = $inputfieldRepeater.find('.Inputfields:eq(0)'); + if(isItem) $inputfields = $inputfieldRepeater.find('.Inputfields').first(); // setup the sortable initSortable($inputfieldRepeater, $inputfields); @@ -1334,7 +1333,7 @@ function InputfieldRepeater($) { // setup the add links $(".InputfieldRepeaterAddLink:not(.InputfieldRepeaterAddLinkInit)", $inputfieldRepeater) .addClass('InputfieldRepeaterAddLinkInit') - .click(eventAddLinkClick); + .on('click', eventAddLinkClick); // check for maximum items if($inputfieldRepeater.hasClass('InputfieldRepeaterMax')) { @@ -1482,7 +1481,7 @@ function InputfieldRepeater($) { var actionName = pasteValue === null ? 'clone' : 'paste'; var $addLink = $item.closest('.InputfieldRepeater').children('.InputfieldContent') - .children('.InputfieldRepeaterAddItem').find('.InputfieldRepeaterAddLink:eq(0)'); + .children('.InputfieldRepeaterAddItem').find('.InputfieldRepeaterAddLink').first(); // $('html, body').animate({ scrollTop: $addLink.offset().top - 100}, 250, 'swing'); $item.siblings('.InputfieldRepeaterInsertItem').remove(); @@ -1517,10 +1516,10 @@ function InputfieldRepeater($) { if(actionName === 'paste') { // data-clone attribute with 'pageID:itemID' indicates page ID and item ID to clone - $addLink.attr('data-clone', pasteValue.page + ':' + pasteValue.item).click(); + $addLink.attr('data-clone', pasteValue.page + ':' + pasteValue.item).trigger('click'); } else { // current page ID is implied when only itemID is supplied - $addLink.attr('data-clone', $item.attr('data-page')).click(); + $addLink.attr('data-clone', $item.attr('data-page')).trigger('click'); } } diff --git a/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.min.js b/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.min.js index 2f838b68..cc98af37 100644 --- a/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.min.js +++ b/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.min.js @@ -1 +1 @@ -function InputfieldRepeater($){var depthSize=50;var isAdminDefault=$("body").hasClass("AdminThemeDefault");var doubleClickTimer=null;var currentlyAddingItem=false;var insertTimeout=null;var eventReloaded=function(event,source){if(typeof source!="undefined"){if(source=="InputfieldRepeaterItemEdit"||source=="InputfieldRepeaterItemAdd"){event.stopPropagation();var $r=$(this).find(".InputfieldRepeater");if($r.length)$r.each(function(){initRepeater($(this))});return}}initRepeater($(this))};var eventDeleteClick=function(e){var $this=$(this);var $header=$this.closest(".InputfieldHeader");var $item=$header.parent();if(isActionDisabled($this))return false;if($item.hasClass("InputfieldRepeaterNewItem")){var $numAddInput=$item.children(".InputfieldContent").children(".InputfieldRepeaterAddItem").children("input");$numAddInput.attr("value",parseInt($numAddInput.attr("value")-1));$item.remove()}else{var pageID=$item.attr("data-page");var $checkbox=$item.find("#delete_repeater"+pageID);if($checkbox.is(":checked")){$checkbox.prop("checked",false);$header.removeClass("ui-state-error").addClass("ui-state-default");$item.removeClass("InputfieldRepeaterDeletePending").trigger("repeaterundelete")}else{$checkbox.prop("checked",true);$header.removeClass("ui-state-default").addClass("ui-state-error");if(!$item.hasClass("InputfieldStateCollapsed")){$header.find(".toggle-icon").click()}$item.addClass("InputfieldRepeaterDeletePending").trigger("repeaterdelete");$item.closest(".Inputfield").addClass("InputfieldStateChanged")}$header.find(".InputfieldRepeaterItemControls").css("background-color",$header.css("background-color"))}checkMinMax($item.closest(".InputfieldRepeater"));e.stopPropagation()};var eventDeleteDblClick=function(){var $this=$(this);var $li=$(this).closest("li");var undelete=$li.hasClass("InputfieldRepeaterDeletePending");if(isActionDisabled($this))return false;function selectAll(){$li.parent().children("li").each(function(){var $item=$(this);var $trashLink=$item.children(".InputfieldHeader").find(".InputfieldRepeaterTrash");if($item.hasClass("InputfieldRepeaterDeletePending")){if(undelete)$trashLink.click()}else{if(!undelete)$trashLink.click()}})}if(undelete){selectAll()}else{ProcessWire.confirm(ProcessWire.config.InputfieldRepeater.labels.removeAll,selectAll)}};var eventCloneClick=function(){var $this=$(this);if(isActionDisabled($this))return false;var $item=$this.closest(".InputfieldRepeaterItem");ProcessWire.confirm(ProcessWire.config.InputfieldRepeater.labels.clone,function(){var itemID=$item.attr("data-page");var $addLink=$item.closest(".InputfieldRepeater").children(".InputfieldContent").children(".InputfieldRepeaterAddItem").find(".InputfieldRepeaterAddLink:eq(0)");$item.siblings(".InputfieldRepeaterInsertItem").remove();var depth=getItemDepth($item);var $newItem=$item.siblings(".InputfieldRepeaterNewItem").clone();var $nextItem=$item.next(".InputfieldRepeaterItem");var nextItemDepth=$nextItem.length?getItemDepth($nextItem):depth;var $prevItem=$item.prev(".InputfieldRepeaterItem");var prevItemDepth=$prevItem.length?getItemDepth($prevItem):depth;var insertBefore=depth");if(insertBefore){depth=getInsertBeforeItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemBefore");$newItem.insertBefore($item)}else{depth=getInsertAfterItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemAfter");$newItem.insertAfter($item)}setItemDepth($newItem,depth);$newItem.show();$addLink.attr("data-clone",itemID).click()});return false};var eventCopyCloneClick=function(){if(isActionDisabled($(this)))return false;var labels=ProcessWire.config.InputfieldRepeater.labels;var $item=$(this).closest(".InputfieldRepeaterItem");var itemID=$item.attr("data-page");var $inputfield=$item.closest(".InputfieldRepeater");var fieldName=$inputfield.attr("data-name");var cookieName=copyPasteCookieName(fieldName);var copyValue=jQuery.cookie(cookieName);var itemLabel=getItemLabel($item).text();var pasteID=copyValue?parseInt(copyValue.item):"";var pasteDisabled=copyValue?"":"disabled ";var pasteSelected=pasteID>0?"selected ":"";var note="";if(pasteID>0){note="
        "+labels.copyInMemory+" (id "+pasteID+")
        "}var input='"+'"+'"+""+""+"";if(note.length)note=""+note+"";var options={message:labels.selectAction+" (id "+itemID+")",input:'"+note,callback:function(value){var action=value.action;if(action==="copy"){copyRepeaterItem($item);$item.fadeOut("fast",function(){$item.fadeIn("fast")});$inputfield.addClass("InputfieldRepeaterCanPaste")}else if(action==="clone-before"){cloneRepeaterItem($item,true)}else if(action==="clone-after"){cloneRepeaterItem($item,false)}else if(action==="paste-before"){pasteRepeaterItem($item,true)}else if(action==="paste-after"){pasteRepeaterItem($item,false)}else if(action==="clear"){jQuery.cookie(cookieName,null);$inputfield.removeClass("InputfieldRepeaterCanPaste")}else{console.log("unknown action: "+action)}}};vex.dialog.open(options);return false};var eventSettingsClick=function(e){var $this=$(this);var $item=$this.closest(".InputfieldRepeaterItem");var $settingsParent=$item.children(".InputfieldContent").children(".Inputfields");var $settings=$settingsParent.children(".InputfieldRepeaterSettings");if(!$settings.length){$settingsParent=$settingsParent.children(".InputfieldWrapper").children(".Inputfields");$settings=$settingsParent.children(".InputfieldRepeaterSettings")}if($item.hasClass("InputfieldStateCollapsed")){$this.closest(".InputfieldHeader").click()}if($settings.is(":visible")){$settings.slideUp("fast");$this.addClass("ui-priority-secondary")}else{$settings.slideDown("fast");$this.removeClass("ui-priority-secondary")}return false};var eventToggleClick=function(e){var $this=$(this);var toggleOn=$this.attr("data-on");var toggleOff=$this.attr("data-off");var $item=$this.closest(".InputfieldRepeaterItem");var $input=$item.find(".InputfieldRepeaterPublish");if(doubleClickTimer)clearTimeout(doubleClickTimer);doubleClickTimer=setTimeout(function(){if(isActionDisabled($this))return false;if($this.hasClass(toggleOn)){$this.removeClass(toggleOn).addClass(toggleOff);$item.addClass("InputfieldRepeaterUnpublished InputfieldRepeaterOff");$input.val("-1")}else{$this.removeClass(toggleOff).addClass(toggleOn);$item.removeClass("InputfieldRepeaterUnpublished InputfieldRepeaterOff").addClass("InputfieldRepeaterWasUnpublished");$input.val("1")}$input.trigger("change");checkMinMax($item.closest(".InputfieldRepeater"))},250);e.stopPropagation()};var eventItemOpenReady=function(){var $item=$(this);var $loaded=$item.find(".InputfieldRepeaterLoaded");if(parseInt($loaded.val())>0)return;$item.addClass("InputfieldRepeaterItemLoading")};var eventItemOpened=function(){var $item=$(this);var $loaded=$item.find(".InputfieldRepeaterLoaded");updateState($item);if(parseInt($loaded.val())>0){updateAccordion($item);return}$loaded.val("1");var $content=$item.find(".InputfieldContent").hide();var $repeater=$item.closest(".InputfieldRepeater");var pageID=$repeater.attr("data-page");var itemID=parseInt($item.attr("data-page"));var repeaterID=$repeater.attr("id");var fieldName=getRepeaterFieldName($repeater);var ajaxURL=ProcessWire.config.InputfieldRepeater.editorUrl+"?id="+pageID+"&field="+fieldName+"&repeater_edit="+itemID;var $spinner=$item.find(".InputfieldRepeaterDrag");var $inputfields=$loaded.closest(".Inputfields");if($repeater.hasClass("InputfieldRenderValueMode"))ajaxURL+="&inrvm=1";if($repeater.hasClass("InputfieldNoDraft"))ajaxURL+="&nodraft=1";$spinner.removeClass("fa-arrows").addClass("fa-spin fa-spinner");repeaterID=repeaterID.replace(/_repeater\d+$/,"").replace("_LPID"+pageID,"");$.get(ajaxURL,function(data){var $inputs=$(data).find("#"+repeaterID+" > "+".InputfieldContent > .Inputfields > "+".InputfieldRepeaterItem > .InputfieldContent > .Inputfields > .InputfieldWrapper > "+".Inputfields > .Inputfield");$inputfields.append($inputs);$item.removeClass("InputfieldRepeaterItemLoading");InputfieldsInit($inputfields);var $repeaters=$inputs.find(".InputfieldRepeater");if($repeaters.length){$repeaters.each(function(){initRepeater($(this))})}else{$item.find(".InputfieldRepeaterSettings").hide()}$content.slideDown("fast",function(){$spinner.removeClass("fa-spin fa-spinner").addClass("fa-arrows");updateAccordion($item)});setTimeout(function(){$inputfields.find(".Inputfield").trigger("reloaded",["InputfieldRepeaterItemEdit"])},50);runScripts(data)})};var eventItemClosed=function(){updateState($(this))};var eventAddLinkClick=function(){currentlyAddingItem=true;var $addLink=$(this);var $inputfields=$addLink.parent("p").prev("ul.Inputfields");var $inputfieldRepeater=$addLink.closest(".InputfieldRepeater");var $numAddInput=$addLink.parent().children("input");var newItemTotal=0;var useAjax=$addLink.attr("data-noajax").length==0;var cloneID=$addLink.attr("data-clone");var pageID=0;var depth=0;var redoSortAll=false;var inputfieldPageID=parseInt($inputfieldRepeater.attr("data-page"));function addRepeaterItem($addItem){var id=$addItem.attr("id")+"_";while($("#"+id).length>0)id+="_";$addItem.attr("id",id);var $insertItem=$inputfields.children(".InputfieldRepeaterInsertItem");if($insertItem.length){depth=getItemDepth($insertItem);$addItem.addClass("InputfieldStateCollapsed");var $toggleIcon=$addItem.children(".InputfieldHeader").find(".toggle-icon");$toggleIcon.toggleClass($toggleIcon.attr("data-to"));$insertItem.replaceWith($addItem);redoSortAll=true}else{$inputfields.append($addItem)}$addItem.css("display","block");adjustItemLabel($addItem,true);$addLink.trigger("repeateradd",[$addItem])}if(typeof cloneID=="undefined"||!cloneID)cloneID=null;if(cloneID){$addLink.removeAttr("data-clone");if(cloneID.indexOf(":")>0){var a=cloneID.split(":");pageID=parseInt(a[0]);cloneID=parseInt(a[1])}}if(!useAjax){var $newItem=$inputfields.children(".InputfieldRepeaterNewItem");newItemTotal=$newItem.length;if(newItemTotal>0){if(newItemTotal>1)$newItem=$newItem.slice(0,1);var $addItem=$newItem.clone(true);if(depth)setItemDepth($addItem,depth);addRepeaterItem($addItem);$numAddInput.attr("value",newItemTotal);checkMinMax($inputfieldRepeater)}currentlyAddingItem=false;return false}if(!pageID)pageID=inputfieldPageID;var fieldName=getRepeaterFieldName($inputfieldRepeater);var $spinner=$addLink.parent().find(".InputfieldRepeaterSpinner");var ajaxURL=ProcessWire.config.InputfieldRepeater.editorUrl+"?id="+pageID+"&field="+fieldName;$spinner.removeClass($spinner.attr("data-off")).addClass($spinner.attr("data-on"));if(cloneID){ajaxURL+="&repeater_clone="+cloneID+"&repeater_clone_to="+inputfieldPageID}else{ajaxURL+="&repeater_add="+$addLink.attr("data-type")}var $existingItems=$inputfields.find(".InputfieldRepeaterItem:not(.InputfieldRepeaterNewItem)");if($existingItems.length){ajaxURL+="&repeater_not=";$existingItems.each(function(){ajaxURL+=$(this).attr("data-page")+","})}$.get(ajaxURL,function(data){$spinner.removeClass($spinner.attr("data-on")).addClass($spinner.attr("data-off"));var $addItem=$(data).find(".InputfieldRepeaterItemRequested");if(!$addItem.length){return}addRepeaterItem($addItem);$addItem.wrap("
        ");InputfieldsInit($addItem.parent());initRepeater($addItem);$addItem.unwrap();$addItem.find(".Inputfield").trigger("reloaded",["InputfieldRepeaterItemAdd"]);if(cloneID){$addItem.find(".Inputfield").trigger("cloned",["InputfieldRepeaterItemAdd"]);$addItem.find(".InputfieldTableRowID").val(0)}if(redoSortAll){$inputfields.children(".InputfieldRepeaterItem").each(function(n){setItemSort($(this),n)})}else{setItemSort($addItem,$inputfields.children().length)}if(depth)setItemDepth($addItem,depth);if($addItem.hasClass("InputfieldStateCollapsed")){}else{$("html, body").animate({scrollTop:$addItem.offset().top},500,"swing")}updateState($addItem);checkMinMax($inputfieldRepeater);updateAccordion($addItem);var $nestedRepeaters=$addItem.find(".InputfieldRepeater");if($nestedRepeaters.length){$nestedRepeaters.each(function(){initRepeater($(this))})}runScripts(data);setTimeout(function(){currentlyAddingItem=false},500)});return false};var eventOpenAllClick=function(e){e.stopPropagation();e.preventDefault();if(doubleClickTimer)clearTimeout(doubleClickTimer);if($(this).closest(".InputfieldRepeater").hasClass("InputfieldRepeaterAccordion"))return false;var $repeater=$(this).closest(".InputfieldRepeater");var $items=$repeater.children(".InputfieldContent").children(".Inputfields").children(".InputfieldRepeaterItem");if(!$items.length)return false;var $item=$items.eq(0);var label,selector;if($item.hasClass("InputfieldStateCollapsed")){label=ProcessWire.config.InputfieldRepeater.labels.openAll;selector=".InputfieldStateCollapsed"}else{label=ProcessWire.config.InputfieldRepeater.labels.collapseAll;selector=".InputfieldRepeaterItem:not(.InputfieldStateCollapsed)"}ProcessWire.confirm(label,function(){$items.filter(selector).each(function(){$(this).children(".InputfieldHeader").find(".toggle-icon").click()})});return false};var eventInsertBeforeClick=function(e){var $item=$(this).closest(".InputfieldRepeaterItem");eventInsertClick($item,true);e.stopPropagation()};var eventInsertAfterClick=function(e){var $item=$(this).closest(".InputfieldRepeaterItem");eventInsertClick($item,false);e.stopPropagation()};function eventInsertClick($item,insertBefore){if(currentlyAddingItem)return false;currentlyAddingItem=true;if(insertTimeout)clearTimeout(insertTimeout);var depth=getInsertItemDepth($item,insertBefore);var $oldInsertItem=$item.siblings(".InputfieldRepeaterInsertItem");if($oldInsertItem.length)$oldInsertItem.remove();var $insertItem=$item.siblings(".InputfieldRepeaterNewItem").clone().removeClass(".InputfieldRepeaterNewItem").addClass("InputfieldRepeaterInsertItem");$insertItem.attr("id",$insertItem.attr("id")+"-placeholder");$insertItem.find(".InputfieldHeader").html("");if(insertBefore){$insertItem.insertBefore($item)}else{$insertItem.insertAfter($item)}if(depth>0)setItemDepth($insertItem,depth);$insertItem.show();if(!insertBefore&&!$item.hasClass("InputfieldStateCollapsed"))scrollToItem($insertItem);$insertItem.children(".InputfieldHeader").effect("highlight",{},500);var $addLinks=$item.parent(".Inputfields").siblings(".InputfieldRepeaterAddItem").find(".InputfieldRepeaterAddLink");if($addLinks.length===1){$addLinks.eq(0).click()}else if($addLinks.length>1){$item.trigger("repeaterinsert",[$insertItem,$item,insertBefore]);currentlyAddingItem=false}}var eventPasteClick=function(e){var $inputfield=$(this).closest(".InputfieldRepeater");var $newItem=$inputfield.children(".InputfieldContent").children(".Inputfields").children(".InputfieldRepeaterNewItem");pasteRepeaterItem($newItem,false);return false};var eventInsertMouseout=function(e){if(currentlyAddingItem)return;if(insertTimeout)clearTimeout(insertTimeout);var $action=$(this);var $newItem=$action.data("newItem");$action.removeClass("hov");if($newItem&&$newItem.length){if($newItem.hasClass("hov"))return;$newItem.remove()}};var eventInsertMouseover=function(e){if(currentlyAddingItem)return;if(insertTimeout)clearTimeout(insertTimeout);var $action=$(this);var insertBefore=$action.hasClass("InputfieldRepeaterInsertBefore");var $item=$(this).closest(".InputfieldRepeaterItem");var depth=0;$item.siblings(".InputfieldRepeaterInsertItem").remove();var $newItem=$item.siblings(".InputfieldRepeaterNewItem").clone();$newItem.addClass("InputfieldRepeaterInsertItem").attr("id",$newItem.attr("id")+"-insert");if(insertBefore){depth=getInsertBeforeItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemBefore");$newItem.addClass("hov")}else{depth=getInsertAfterItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemAfter")}$newItem.find(".InputfieldRepeaterItemControls").hide();$newItem.find(".InputfieldRepeaterItemLabel").text(ProcessWire.config.InputfieldRepeater.labels.insertHere);$action.addClass("hov").data("newItem",$newItem);setItemDepth($newItem,depth);insertTimeout=setTimeout(function(){insertTimeout=null;if(!$action.hasClass("hov")){$newItem.remove();return}else if(insertBefore){$newItem.insertBefore($item)}else{$newItem.addClass("hov").insertAfter($item)}$newItem.on("mouseover",function(){$(this).addClass("hov")}).on("click",function(e){e.stopPropagation();eventInsertClick($item,insertBefore)}).on("mouseout",function(){$(this).removeClass("hov").remove()});$newItem.slideDown()},1e3)};function isActionDisabled($this){if($this.hasClass("pw-icon-disabled")){ProcessWire.alert(ProcessWire.config.InputfieldRepeater.labels.disabledMinMax);return true}return false}function updateAccordion($item){if(!$item.closest(".InputfieldRepeater").hasClass("InputfieldRepeaterAccordion"))return false;var itemID=$item.attr("id");var useScroll=false;var $siblings=$item.parent().children(".InputfieldRepeaterItem");var itemHasPassed=false;var hasOpen=false;$siblings.each(function(){var $sibling=$(this);if($sibling.attr("id")==itemID){itemHasPassed=true;return}if($sibling.hasClass("InputfieldStateCollapsed"))return;if(!$sibling.is(":visible"))return;if(!itemHasPassed)useScroll=true;$sibling.children(".InputfieldHeader").find(".toggle-icon").trigger("click",[{duration:0}]);hasOpen=true});if(useScroll&&hasOpen){scrollToItem($item)}return true}function adjustItemLabel($item,doIncrement){var $label;$label=$item.children(".InputfieldHeader").find(".InputfieldRepeaterItemLabel");if(typeof $label=="undefined")$label=$item.children("label");var labelHTML=$label.html();var _labelHTML=labelHTML;if(typeof labelHTML!="undefined"){if(doIncrement&&labelHTML.indexOf("#")>-1){var num=$item.siblings(".InputfieldRepeaterItem:visible").length+1;labelHTML=labelHTML.replace(/#[0-9]+/,"#"+num)}while(labelHTML.indexOf("}")>-1){labelHTML=labelHTML.replace(/\{/,'');labelHTML=labelHTML.replace(/}/,"")}if(labelHTML!=_labelHTML){$label.html(labelHTML)}}}function getItemLabel($item){return $item.children(".InputfieldHeader").children(".InputfieldRepeaterItemLabel")}function getRepeaterFieldName($inputfield){if(!$inputfield.hasClass("InputfieldRepeater"))$inputfield=$inputfield.closest(".InputfieldRepeater");if(!$inputfield.length)return"";var fieldName=$inputfield.attr("data-name");if(typeof fieldName==="undefined"){fieldName=$inputfield.attr("id").replace("wrap_Inputfield_","");if(fieldName.indexOf("_LPID")>-1)fieldName=fieldName.replace(/_LPID\d+$/,"");console.log("Warning: repeater inputfield lacks data-name so used fallback",$inputfield)}return fieldName}function setItemSort($item,sort){var $input=getItemSortInput($item);if($input.length)$input.val(sort)}function getItemSort($item){var $input=getItemSortInput($item);if($input.length)return parseInt($input.val());return-1}function getItemSortInput($item){if(!$item.hasClass("InputfieldRepeaterItem"))$item=$item.closest(".InputfieldRepeaterItem");return $item.children(".InputfieldContent").children(".Inputfields").children(".InputfieldRepeaterItemSort").find(".InputfieldRepeaterSort")}function sortableItemAllowed($item){if($item.hasClass("InputfieldRepeaterMatrixItem")){if(typeof InputfieldRepeaterMatrixTools!=="undefined"){return InputfieldRepeaterMatrixTools.sortableItemAllowed($item)}}return true}function sortableDepth(ui,maxDepth,updateNow){var $wrap=ui.item.children(".InputfieldContent").children(".Inputfields").children(".InputfieldRepeaterItemDepth");var $depth=$wrap.find("input");var depth=-1;var prevDepth=parseInt($depth.val());var left=ui.position.left;if(left<0){depth=prevDepth-Math.round(Math.abs(left)/depthSize)}else{depth=Math.round(left/depthSize)+prevDepth}if(updateNow){depth=setItemDepth(ui.item,depth,maxDepth);ui.item.children(".InputfieldHeader").removeClass("ui-state-error")}return depth}function setItemDepth($item,depth,maxDepth,noValidate){noValidate=typeof noValidate==="undefined"?false:noValidate;if(depth<1)depth=0;if(typeof maxDepth!=="undefined"&&depth>maxDepth)depth=maxDepth;if(!$item.hasClass("InputfieldRepeaterItem"))$item=$item.closest(".InputfieldRepeaterItem");if(!$item.length)return-1;var $depthInput=$item.children(".InputfieldContent").children(".Inputfields").children(".InputfieldRepeaterItemDepth").find("input");if(!$depthInput.length&&!$item.hasClass("InputfieldRepeaterNewItem")){console.log("Cannot find depth input for "+$item.attr("id"))}if(!noValidate&&$item.closest(".InputfieldRepeater").hasClass("InputfieldRepeaterFamilyFriendly")){var $prevItem=$item.prev(".InputfieldRepeaterItem:not(.InputfieldRepeaterNewItem)");if($prevItem.length){var prevItemDepth=parseInt($prevItem.attr("data-depth"));if(depth-prevItemDepth>1)depth=prevItemDepth+1}else{depth=0}}$depthInput.val(depth);$item.attr("data-depth",depth);if(depth>0){$item.css("padding-left",depth*depthSize+"px");$item.addClass("InputfieldRepeaterItemHasDepth")}else{$item.css("padding-left",0);$item.removeClass("InputfieldRepeaterItemHasDepth")}return depth}function getItemDepth($item){if(!$item.hasClass("InputfieldRepeaterItem"))$item=$item.closest(".InputfieldRepeaterItem");if(!$item.length)return-1;return parseInt($item.attr("data-depth"))}function getInsertItemDepth($contextItem,insertBefore){var depth=0;if(insertBefore){depth=getItemDepth($contextItem)}else{var $nextItem=$contextItem.next(".InputfieldRepeaterItem");depth=getItemDepth($contextItem);if($nextItem.hasClass("InputfieldRepeaterNewItem")){if(!$nextItem.hasClass("InputfieldRepeaterInsertItem"))$nextItem=null}var nextDepth=$nextItem&&$nextItem.length?getItemDepth($nextItem):depth;if(nextDepth>depth)depth=nextDepth}return depth}function getInsertBeforeItemDepth($item){return getInsertItemDepth($item,true)}function getInsertAfterItemDepth($item){return getInsertItemDepth($item,false)}function getDepthChildren($item){var children=[];var n=0;var startDepth=parseInt($item.attr("data-depth"));var pageId=$item.attr("data-page");var pageIdClass="Inputfield_repeater_item_"+pageId;while($item.hasClass(pageIdClass)){var $nextItem=$item.next(".InputfieldRepeaterItem:not(.InputfieldRepeaterNewItem)");if(!$nextItem.length||!$nextItem.hasClass(pageIdClass))break;$item=$nextItem}do{var $child=$item.next(".InputfieldRepeaterItem:not(.InputfieldRepeaterNewItem)");if(!$child.length)break;var childDepth=parseInt($child.attr("data-depth"));if(!childDepth||childDepth<=startDepth)break;$item=$child;children[n]=$child;n++}while(true);return children}function initDepths($inputfieldRepeater){$inputfieldRepeater.find(".InputfieldRepeaterItemDepth").each(function(){var $wrap=$(this);var $depth=$wrap.find("input");var depth=$depth.val();var $item=$depth.closest(".InputfieldRepeaterItem");var currentLeft=$item.css("padding-left");if(currentLeft=="auto")currentLeft=0;currentLeft=parseInt(currentLeft);var targetLeft=depth*depthSize;if(targetLeft!=currentLeft){$item.css("padding-left",targetLeft+"px")}if(targetLeft>0){$item.addClass("InputfieldRepeaterItemHasDepth")}else{$item.removeClass("InputfieldRepeaterItemHasDepth")}});$inputfieldRepeater.children(".InputfieldContent").css("position","relative")}function initSortable($inputfieldRepeater,$inputfields){var maxDepth=parseInt($inputfieldRepeater.attr("data-depth"));var depthChildren=[];var startDepth=0;var familyFriendly=$inputfieldRepeater.hasClass("InputfieldRepeaterFamilyFriendly");var sortableOptions={items:"> li:not(.InputfieldRepeaterNewItem)",handle:".InputfieldRepeaterDrag",start:function(e,ui){ui.item.find(".InputfieldHeader").addClass("ui-state-highlight");ui.item.find("textarea.InputfieldCKEditorNormal.InputfieldCKEditorLoaded").each(function(){$(this).removeClass("InputfieldCKEditorLoaded");var editor=CKEDITOR.instances[$(this).attr("id")];editor.destroy();CKEDITOR.remove($(this).attr("id"))});if(familyFriendly&&maxDepth>0){startDepth=parseInt(ui.item.attr("data-depth"));depthChildren=getDepthChildren(ui.item);for(var n=0;n0){sortableDepth(ui,maxDepth,true)}if(!sortableItemAllowed(ui.item))return false;if(maxDepth>0&&familyFriendly&&depthChildren.length){var $item=ui.item;var stopDepth=parseInt($item.attr("data-depth"));var diffDepth=stopDepth-startDepth;for(var n=0;n0){initDepths($inputfieldRepeater);sortableOptions.grid=[depthSize,1];sortableOptions.sort=function(event,ui){var depth=sortableDepth(ui,99,false);var $header=ui.item.children(".InputfieldHeader");if(depth>maxDepth){$header.addClass("ui-state-error InputfieldRepeaterItemOOB")}else if($header.hasClass("ui-state-error")){$header.removeClass("ui-state-error InputfieldRepeaterItemOOB")}}}else{sortableOptions.axis="y"}$(".InputfieldRepeaterDrag",$inputfields).hover(function(){$(this).parent("label").addClass("ui-state-focus")},function(){$(this).parent("label").removeClass("ui-state-focus")});$inputfields.sortable(sortableOptions)}function initHeaders($headers,$inputfieldRepeater,renderValueMode){var $clone=$("").css("display","block");var $delete=$("");var $toggle=$("");var $insertAfter=$("");var $insertBefore=$("");var cfg=ProcessWire.config.InputfieldRepeater;var allowClone=!$inputfieldRepeater.hasClass("InputfieldRepeaterNoAjaxAdd");var allowSettings=$inputfieldRepeater.hasClass("InputfieldRepeaterHasSettings");if(cfg){$toggle.attr("title",cfg.labels.toggle);$delete.attr("title",cfg.labels.remove);$clone.attr("title",cfg.labels.clone);$insertBefore.attr("title",cfg.labels.insertBefore);$insertAfter.attr("title",cfg.labels.insertAfter)}if(allowSettings){$inputfieldRepeater.find(".InputfieldRepeaterSettings").hide()}$headers.each(function(){var $t=$(this);if($t.hasClass("InputfieldRepeaterHeaderInit"))return;var $item=$t.parent();var icon=$item.attr("data-icon");if(typeof icon==="undefined"||!icon.length)icon="fa-arrows";if(icon.indexOf("fa-")!==0)icon="fa-"+icon;if($item.hasClass("InputfieldRepeaterNewItem")){icon="fa-plus-circle";$t.addClass("ui-priority-secondary")}$t.addClass("ui-state-default InputfieldRepeaterHeaderInit");$t.prepend("");if(!renderValueMode){var $controls=$("");var $toggleControl=$toggle.clone(true).addClass($t.parent().hasClass("InputfieldRepeaterOff")?"fa-toggle-off":"fa-toggle-on");var $deleteControl=$delete.clone(true);var $collapseControl=$t.find(".toggle-icon");var $insertBeforeControl=$insertBefore.clone(true);var $insertAfterControl=$insertAfter.clone(true);$controls.prepend($collapseControl);$controls.prepend($insertBeforeControl);$controls.prepend($insertAfterControl);var $closestRepeater=$t.closest(".InputfieldRepeater");if($closestRepeater.hasClass("InputfieldRepeaterHasSettings")){var $settingsToggle=$("").attr("title",cfg.labels.settings);$controls.prepend($settingsToggle)}if(allowClone||!$closestRepeater.hasClass("InputfieldRepeaterNoAjaxAdd")){$controls.prepend($clone.clone(true))}$controls.prepend($toggleControl);$controls.prepend($deleteControl);$t.prepend($controls);$controls.css("background-color",$t.css("background-color"))}adjustItemLabel($item,false)})}function initRepeater($this){var $inputfields,$inputfieldRepeater,isItem;if($this.hasClass("InputfieldRepeaterItem")){$inputfields=$this;$inputfieldRepeater=$this.closest(".InputfieldRepeater");isItem=true}else{$inputfields=$this.find(".Inputfields:eq(0)");$inputfieldRepeater=$this;isItem=false}if($inputfields.hasClass("InputfieldRepeaterInit"))return;if($("body").hasClass("touch-device"))$inputfieldRepeater.addClass("InputfieldRepeaterLoudControls");var renderValueMode=$inputfields.closest(".InputfieldRenderValueMode").length>0;$inputfields.addClass("InputfieldRepeaterInit");if(isItem){initHeaders($this.children(".InputfieldHeader"),$inputfieldRepeater,renderValueMode)}else{initHeaders($(".InputfieldRepeaterItem > .InputfieldHeader",$this),$inputfieldRepeater,renderValueMode)}if(renderValueMode){initDepths($inputfieldRepeater);return}$(".InputfieldRepeaterTrash",$this).hover(function(){var $label=$(this).closest("label");if(!$label.parents().hasClass("InputfieldRepeaterDeletePending"))$label.addClass("ui-state-error");$label.find(".InputfieldRepeaterItemControls").css("background-color",$label.css("background-color"))},function(){var $label=$(this).closest("label");if(!$label.parent().hasClass("InputfieldRepeaterDeletePending"))$label.removeClass("ui-state-error");$label.find(".InputfieldRepeaterItemControls").css("background-color",$label.css("background-color"))});if(isItem)$inputfields=$inputfieldRepeater.find(".Inputfields:eq(0)");initSortable($inputfieldRepeater,$inputfields);$(".InputfieldRepeaterAddLink:not(.InputfieldRepeaterAddLinkInit)",$inputfieldRepeater).addClass("InputfieldRepeaterAddLinkInit").click(eventAddLinkClick);if($inputfieldRepeater.hasClass("InputfieldRepeaterMax")){checkMinMax($inputfieldRepeater)}}function checkMinMax($inputfieldRepeater){if(!$inputfieldRepeater.hasClass("InputfieldRepeaterMax")&&!$inputfieldRepeater.hasClass("InputfieldRepeaterMin"))return;var max=parseInt($inputfieldRepeater.attr("data-max"));var min=parseInt($inputfieldRepeater.attr("data-min"));if(max<=0&&min<=0)return;var $content=$inputfieldRepeater.children(".InputfieldContent");var num=$content.children(".Inputfields").children("li:not(.InputfieldRepeaterDeletePending):not(.InputfieldRepeaterOff):visible").length;var $addItem=$content.children(".InputfieldRepeaterAddItem");var cloneChange="";var trashChange="";if(max>0){if(num>=max){$addItem.hide();cloneChange="hide"}else if(!$addItem.is(":visible")){$addItem.show();cloneChange="show"}}if(min>0){if(num<=min){trashChange="hide";$content.addClass("InputfieldRepeaterTrashHidden")}else if($content.hasClass("InputfieldRepeaterTrashHidden")){$content.removeClass("InputfieldRepeaterTrashHidden");trashChange="show"}}if(cloneChange.length||trashChange.length){var $items=$content.children(".Inputfields").children(".InputfieldRepeaterItem");if(cloneChange.length){$items.each(function(){var $clone=$(this).children(".InputfieldHeader").find(".InputfieldRepeaterClone");if(cloneChange==="show"){$clone.removeClass("pw-icon-disabled")}else{$clone.addClass("pw-icon-disabled")}})}if(trashChange.length){$items.each(function(){var $header=$(this).children(".InputfieldHeader");var $trash=$header.find(".InputfieldRepeaterTrash");var $toggle=$header.find(".InputfieldRepeaterToggle.fa-toggle-on");if(trashChange==="show"){$trash.removeClass("pw-icon-disabled");$toggle.removeClass("pw-icon-disabled")}else{$trash.addClass("pw-icon-disabled");$toggle.addClass("pw-icon-disabled")}});if(trashChange=="hide"){$content.children(".Inputfields").children("li.InputfieldRepeaterDeletePending").each(function(){var $trash=$(this).children(".InputfieldHeader").find(".InputfieldRepeaterTrash");$trash.removeClass("pw-icon-disabled")})}}}}function scrollToItem($item){$("html, body").animate({scrollTop:$item.offset().top-10},250,"swing")}function runScripts(data){if(data.indexOf("<\/script>")==-1)return;var d=document.createElement("div");d.innerHTML=data;var scripts=d.querySelectorAll(".Inputfield script");$(scripts).each(function(){$.globalEval(this.text||this.textContent||this.innerHTML||"")})}function updateState($item){if($item.closest(".InputfieldRepeaterRememberOpen").length<1)return;var val="";$(".InputfieldRepeaterItem:not(.InputfieldStateCollapsed)").each(function(){var id=parseInt($(this).attr("data-page"));if(id>0){val+=id+"|"}});$.cookie("repeaters_open",val)}function cloneRepeaterItem($item,insertBefore,pasteValue){if(typeof pasteValue==="undefined")pasteValue=null;var actionName=pasteValue===null?"clone":"paste";var $addLink=$item.closest(".InputfieldRepeater").children(".InputfieldContent").children(".InputfieldRepeaterAddItem").find(".InputfieldRepeaterAddLink:eq(0)");$item.siblings(".InputfieldRepeaterInsertItem").remove();var depth=getItemDepth($item);var $newItem=$item.hasClass("InputfieldRepeaterNewItem")?$item.clone():$item.siblings(".InputfieldRepeaterNewItem").clone();var $nextItem=$item.next(".InputfieldRepeaterItem");var nextItemDepth=$nextItem.length?getItemDepth($nextItem):depth;var $prevItem=$item.prev(".InputfieldRepeaterItem");var prevItemDepth=$prevItem.length?getItemDepth($prevItem):depth;if(typeof insertBefore==="undefined"){insertBefore=depth");if(insertBefore){depth=getInsertBeforeItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemBefore");$newItem.insertBefore($item)}else{depth=getInsertAfterItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemAfter");$newItem.insertAfter($item)}setItemDepth($newItem,depth);$newItem.show();if(actionName==="paste"){$addLink.attr("data-clone",pasteValue.page+":"+pasteValue.item).click()}else{$addLink.attr("data-clone",$item.attr("data-page")).click()}}function pasteRepeaterItem($item,insertBefore){var $inputfield=$item.closest(".InputfieldRepeater");var fieldName=$inputfield.attr("data-name");var cookieName=copyPasteCookieName(fieldName);var copyValue=jQuery.cookie(cookieName);if(copyValue)cloneRepeaterItem($item,insertBefore,copyValue)}function copyRepeaterItem($item){var $title=$("#Inputfield_title");var $name=$("#Inputfield__pw_page_name");var $inputfield=$item.closest(".InputfieldRepeater");var fieldName=$inputfield.attr("data-name");var copyValue={page:parseInt($inputfield.attr("data-page")),item:parseInt($item.attr("data-page")),field:fieldName};var cookieName=copyPasteCookieName(fieldName);jQuery.cookie(cookieName,copyValue)}function copyPasteCookieName(fieldName){return fieldName+"_copy"}function init(){$(".InputfieldRepeater").each(function(){initRepeater($(this))});$(document).on("reloaded",".InputfieldRepeater",eventReloaded).on("click",".InputfieldRepeaterTrash",eventDeleteClick).on("dblclick",".InputfieldRepeaterTrash",eventDeleteDblClick).on("click",".InputfieldRepeaterClone",eventCopyCloneClick).on("click",".InputfieldRepeaterPaste",eventPasteClick).on("click",".InputfieldRepeaterSettingsToggle",eventSettingsClick).on("dblclick",".InputfieldRepeaterToggle",eventOpenAllClick).on("click",".InputfieldRepeaterToggle",eventToggleClick).on("opened",".InputfieldRepeaterItem",eventItemOpened).on("closed",".InputfieldRepeaterItem",eventItemClosed).on("openReady",".InputfieldRepeaterItem",eventItemOpenReady).on("click",".InputfieldRepeaterInsertBefore",eventInsertBeforeClick).on("click",".InputfieldRepeaterInsertAfter",eventInsertAfterClick).on("mouseover",".InputfieldRepeaterInsertBefore",eventInsertMouseover).on("mouseover",".InputfieldRepeaterInsertAfter",eventInsertMouseover).on("mouseout",".InputfieldRepeaterInsertBefore",eventInsertMouseout).on("mouseout",".InputfieldRepeaterInsertAfter",eventInsertMouseout)}init()}jQuery(document).ready(function($){InputfieldRepeater($)}); \ No newline at end of file +function InputfieldRepeater($){var depthSize=50;var isAdminDefault=$("body").hasClass("AdminThemeDefault");var doubleClickTimer=null;var currentlyAddingItem=false;var insertTimeout=null;var eventReloaded=function(event,source){if(typeof source!="undefined"){if(source=="InputfieldRepeaterItemEdit"||source=="InputfieldRepeaterItemAdd"){event.stopPropagation();var $r=$(this).find(".InputfieldRepeater");if($r.length)$r.each(function(){initRepeater($(this))});return}}initRepeater($(this))};var eventDeleteClick=function(e){var $this=$(this);var $header=$this.closest(".InputfieldHeader");var $item=$header.parent();if(isActionDisabled($this))return false;if($item.hasClass("InputfieldRepeaterNewItem")){var $numAddInput=$item.children(".InputfieldContent").children(".InputfieldRepeaterAddItem").children("input");$numAddInput.attr("value",parseInt($numAddInput.attr("value")-1));$item.remove()}else{var pageID=$item.attr("data-page");var $checkbox=$item.find("#delete_repeater"+pageID);if($checkbox.is(":checked")){$checkbox.prop("checked",false);$header.removeClass("ui-state-error").addClass("ui-state-default");$item.removeClass("InputfieldRepeaterDeletePending").trigger("repeaterundelete")}else{$checkbox.prop("checked",true);$header.removeClass("ui-state-default").addClass("ui-state-error");if(!$item.hasClass("InputfieldStateCollapsed")){$header.find(".toggle-icon").trigger("click")}$item.addClass("InputfieldRepeaterDeletePending").trigger("repeaterdelete");$item.closest(".Inputfield").addClass("InputfieldStateChanged")}$header.find(".InputfieldRepeaterItemControls").css("background-color",$header.css("background-color"))}checkMinMax($item.closest(".InputfieldRepeater"));e.stopPropagation()};var eventDeleteDblClick=function(){var $this=$(this);var $li=$(this).closest("li");var undelete=$li.hasClass("InputfieldRepeaterDeletePending");if(isActionDisabled($this))return false;function selectAll(){$li.parent().children("li").each(function(){var $item=$(this);var $trashLink=$item.children(".InputfieldHeader").find(".InputfieldRepeaterTrash");if($item.hasClass("InputfieldRepeaterDeletePending")){if(undelete)$trashLink.trigger("click")}else{if(!undelete)$trashLink.trigger("click")}})}if(undelete){selectAll()}else{ProcessWire.confirm(ProcessWire.config.InputfieldRepeater.labels.removeAll,selectAll)}};var eventCloneClick=function(){var $this=$(this);if(isActionDisabled($this))return false;var $item=$this.closest(".InputfieldRepeaterItem");ProcessWire.confirm(ProcessWire.config.InputfieldRepeater.labels.clone,function(){var itemID=$item.attr("data-page");var $addLink=$item.closest(".InputfieldRepeater").children(".InputfieldContent").children(".InputfieldRepeaterAddItem").find(".InputfieldRepeaterAddLink").first();$item.siblings(".InputfieldRepeaterInsertItem").remove();var depth=getItemDepth($item);var $newItem=$item.siblings(".InputfieldRepeaterNewItem").clone();var $nextItem=$item.next(".InputfieldRepeaterItem");var nextItemDepth=$nextItem.length?getItemDepth($nextItem):depth;var $prevItem=$item.prev(".InputfieldRepeaterItem");var prevItemDepth=$prevItem.length?getItemDepth($prevItem):depth;var insertBefore=depth");if(insertBefore){depth=getInsertBeforeItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemBefore");$newItem.insertBefore($item)}else{depth=getInsertAfterItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemAfter");$newItem.insertAfter($item)}setItemDepth($newItem,depth);$newItem.show();$addLink.attr("data-clone",itemID).trigger("click")});return false};var eventCopyCloneClick=function(){if(isActionDisabled($(this)))return false;var labels=ProcessWire.config.InputfieldRepeater.labels;var $item=$(this).closest(".InputfieldRepeaterItem");var itemID=$item.attr("data-page");var $inputfield=$item.closest(".InputfieldRepeater");var fieldName=$inputfield.attr("data-name");var cookieName=copyPasteCookieName(fieldName);var copyValue=jQuery.cookie(cookieName);var itemLabel=getItemLabel($item).text();var pasteID=copyValue?parseInt(copyValue.item):"";var pasteDisabled=copyValue?"":"disabled ";var pasteSelected=pasteID>0?"selected ":"";var note="";if(pasteID>0){note="
        "+labels.copyInMemory+" (id "+pasteID+")
        "}var input='"+'"+'"+""+""+"";if(note.length)note=""+note+"";var options={message:labels.selectAction+" (id "+itemID+")",input:'"+note,callback:function(value){var action=value.action;if(action==="copy"){copyRepeaterItem($item);$item.fadeOut("fast",function(){$item.fadeIn("fast")});$inputfield.addClass("InputfieldRepeaterCanPaste")}else if(action==="clone-before"){cloneRepeaterItem($item,true)}else if(action==="clone-after"){cloneRepeaterItem($item,false)}else if(action==="paste-before"){pasteRepeaterItem($item,true)}else if(action==="paste-after"){pasteRepeaterItem($item,false)}else if(action==="clear"){jQuery.cookie(cookieName,null);$inputfield.removeClass("InputfieldRepeaterCanPaste")}else{console.log("unknown action: "+action)}}};vex.dialog.open(options);return false};var eventSettingsClick=function(e){var $this=$(this);var $item=$this.closest(".InputfieldRepeaterItem");var $settingsParent=$item.children(".InputfieldContent").children(".Inputfields");var $settings=$settingsParent.children(".InputfieldRepeaterSettings");if(!$settings.length){$settingsParent=$settingsParent.children(".InputfieldWrapper").children(".Inputfields");$settings=$settingsParent.children(".InputfieldRepeaterSettings")}if($item.hasClass("InputfieldStateCollapsed")){$this.closest(".InputfieldHeader").trigger("click")}if($settings.is(":visible")){$settings.slideUp("fast");$this.addClass("ui-priority-secondary")}else{$settings.slideDown("fast");$this.removeClass("ui-priority-secondary")}return false};var eventToggleClick=function(e){var $this=$(this);var toggleOn=$this.attr("data-on");var toggleOff=$this.attr("data-off");var $item=$this.closest(".InputfieldRepeaterItem");var $input=$item.find(".InputfieldRepeaterPublish");if(doubleClickTimer)clearTimeout(doubleClickTimer);doubleClickTimer=setTimeout(function(){if(isActionDisabled($this))return false;if($this.hasClass(toggleOn)){$this.removeClass(toggleOn).addClass(toggleOff);$item.addClass("InputfieldRepeaterUnpublished InputfieldRepeaterOff");$input.val("-1")}else{$this.removeClass(toggleOff).addClass(toggleOn);$item.removeClass("InputfieldRepeaterUnpublished InputfieldRepeaterOff").addClass("InputfieldRepeaterWasUnpublished");$input.val("1")}$input.trigger("change");checkMinMax($item.closest(".InputfieldRepeater"))},250);e.stopPropagation()};var eventItemOpenReady=function(){var $item=$(this);var $loaded=$item.find(".InputfieldRepeaterLoaded");if(parseInt($loaded.val())>0)return;$item.addClass("InputfieldRepeaterItemLoading")};var eventItemOpened=function(){var $item=$(this);var $loaded=$item.find(".InputfieldRepeaterLoaded");updateState($item);if(parseInt($loaded.val())>0){updateAccordion($item);return}$loaded.val("1");var $content=$item.find(".InputfieldContent").hide();var $repeater=$item.closest(".InputfieldRepeater");var pageID=$repeater.attr("data-page");var itemID=parseInt($item.attr("data-page"));var repeaterID=$repeater.attr("id");var fieldName=getRepeaterFieldName($repeater);var ajaxURL=ProcessWire.config.InputfieldRepeater.editorUrl+"?id="+pageID+"&field="+fieldName+"&repeater_edit="+itemID;var $spinner=$item.find(".InputfieldRepeaterDrag");var $inputfields=$loaded.closest(".Inputfields");if($repeater.hasClass("InputfieldRenderValueMode"))ajaxURL+="&inrvm=1";if($repeater.hasClass("InputfieldNoDraft"))ajaxURL+="&nodraft=1";$spinner.removeClass("fa-arrows").addClass("fa-spin fa-spinner");repeaterID=repeaterID.replace(/_repeater\d+$/,"").replace("_LPID"+pageID,"");$.get(ajaxURL,function(data){var $inputs=$(data).find("#"+repeaterID+" > "+".InputfieldContent > .Inputfields > "+".InputfieldRepeaterItem > .InputfieldContent > .Inputfields > .InputfieldWrapper > "+".Inputfields > .Inputfield");$inputfields.append($inputs);$item.removeClass("InputfieldRepeaterItemLoading");InputfieldsInit($inputfields);var $repeaters=$inputs.find(".InputfieldRepeater");if($repeaters.length){$repeaters.each(function(){initRepeater($(this))})}else{$item.find(".InputfieldRepeaterSettings").hide()}$content.slideDown("fast",function(){$spinner.removeClass("fa-spin fa-spinner").addClass("fa-arrows");updateAccordion($item)});setTimeout(function(){$inputfields.find(".Inputfield").trigger("reloaded",["InputfieldRepeaterItemEdit"])},50);runScripts(data)})};var eventItemClosed=function(){updateState($(this))};var eventAddLinkClick=function(){currentlyAddingItem=true;var $addLink=$(this);var $inputfields=$addLink.parent("p").prev("ul.Inputfields");var $inputfieldRepeater=$addLink.closest(".InputfieldRepeater");var $numAddInput=$addLink.parent().children("input");var newItemTotal=0;var useAjax=$addLink.attr("data-noajax").length==0;var cloneID=$addLink.attr("data-clone");var pageID=0;var depth=0;var redoSortAll=false;var inputfieldPageID=parseInt($inputfieldRepeater.attr("data-page"));function addRepeaterItem($addItem){var id=$addItem.attr("id")+"_";while($("#"+id).length>0)id+="_";$addItem.attr("id",id);var $insertItem=$inputfields.children(".InputfieldRepeaterInsertItem");if($insertItem.length){depth=getItemDepth($insertItem);$addItem.addClass("InputfieldStateCollapsed");var $toggleIcon=$addItem.children(".InputfieldHeader").find(".toggle-icon");$toggleIcon.toggleClass($toggleIcon.attr("data-to"));$insertItem.replaceWith($addItem);redoSortAll=true}else{$inputfields.append($addItem)}$addItem.css("display","block");adjustItemLabel($addItem,true);$addLink.trigger("repeateradd",[$addItem])}if(typeof cloneID=="undefined"||!cloneID)cloneID=null;if(cloneID){$addLink.removeAttr("data-clone");if(cloneID.indexOf(":")>0){var a=cloneID.split(":");pageID=parseInt(a[0]);cloneID=parseInt(a[1])}}if(!useAjax){var $newItem=$inputfields.children(".InputfieldRepeaterNewItem");newItemTotal=$newItem.length;if(newItemTotal>0){if(newItemTotal>1)$newItem=$newItem.slice(0,1);var $addItem=$newItem.clone(true);if(depth)setItemDepth($addItem,depth);addRepeaterItem($addItem);$numAddInput.attr("value",newItemTotal);checkMinMax($inputfieldRepeater)}currentlyAddingItem=false;return false}if(!pageID)pageID=inputfieldPageID;var fieldName=getRepeaterFieldName($inputfieldRepeater);var $spinner=$addLink.parent().find(".InputfieldRepeaterSpinner");var ajaxURL=ProcessWire.config.InputfieldRepeater.editorUrl+"?id="+pageID+"&field="+fieldName;$spinner.removeClass($spinner.attr("data-off")).addClass($spinner.attr("data-on"));if(cloneID){ajaxURL+="&repeater_clone="+cloneID+"&repeater_clone_to="+inputfieldPageID}else{ajaxURL+="&repeater_add="+$addLink.attr("data-type")}var $existingItems=$inputfields.find(".InputfieldRepeaterItem:not(.InputfieldRepeaterNewItem)");if($existingItems.length){ajaxURL+="&repeater_not=";$existingItems.each(function(){ajaxURL+=$(this).attr("data-page")+","})}$.get(ajaxURL,function(data){$spinner.removeClass($spinner.attr("data-on")).addClass($spinner.attr("data-off"));var $addItem=$(data).find(".InputfieldRepeaterItemRequested");if(!$addItem.length){return}addRepeaterItem($addItem);$addItem.wrap("
        ");InputfieldsInit($addItem.parent());initRepeater($addItem);$addItem.unwrap();$addItem.find(".Inputfield").trigger("reloaded",["InputfieldRepeaterItemAdd"]);if(cloneID){$addItem.find(".Inputfield").trigger("cloned",["InputfieldRepeaterItemAdd"]);$addItem.find(".InputfieldTableRowID").val(0)}if(redoSortAll){$inputfields.children(".InputfieldRepeaterItem").each(function(n){setItemSort($(this),n)})}else{setItemSort($addItem,$inputfields.children().length)}if(depth)setItemDepth($addItem,depth);if($addItem.hasClass("InputfieldStateCollapsed")){}else{$("html, body").animate({scrollTop:$addItem.offset().top},500,"swing")}updateState($addItem);checkMinMax($inputfieldRepeater);updateAccordion($addItem);var $nestedRepeaters=$addItem.find(".InputfieldRepeater");if($nestedRepeaters.length){$nestedRepeaters.each(function(){initRepeater($(this))})}runScripts(data);setTimeout(function(){currentlyAddingItem=false},500)});return false};var eventOpenAllClick=function(e){e.stopPropagation();e.preventDefault();if(doubleClickTimer)clearTimeout(doubleClickTimer);if($(this).closest(".InputfieldRepeater").hasClass("InputfieldRepeaterAccordion"))return false;var $repeater=$(this).closest(".InputfieldRepeater");var $items=$repeater.children(".InputfieldContent").children(".Inputfields").children(".InputfieldRepeaterItem");if(!$items.length)return false;var $item=$items.eq(0);var label,selector;if($item.hasClass("InputfieldStateCollapsed")){label=ProcessWire.config.InputfieldRepeater.labels.openAll;selector=".InputfieldStateCollapsed"}else{label=ProcessWire.config.InputfieldRepeater.labels.collapseAll;selector=".InputfieldRepeaterItem:not(.InputfieldStateCollapsed)"}ProcessWire.confirm(label,function(){$items.filter(selector).each(function(){$(this).children(".InputfieldHeader").find(".toggle-icon").trigger("click")})});return false};var eventInsertBeforeClick=function(e){var $item=$(this).closest(".InputfieldRepeaterItem");eventInsertClick($item,true);e.stopPropagation()};var eventInsertAfterClick=function(e){var $item=$(this).closest(".InputfieldRepeaterItem");eventInsertClick($item,false);e.stopPropagation()};function eventInsertClick($item,insertBefore){if(currentlyAddingItem)return false;currentlyAddingItem=true;if(insertTimeout)clearTimeout(insertTimeout);var depth=getInsertItemDepth($item,insertBefore);var $oldInsertItem=$item.siblings(".InputfieldRepeaterInsertItem");if($oldInsertItem.length)$oldInsertItem.remove();var $insertItem=$item.siblings(".InputfieldRepeaterNewItem").clone().removeClass(".InputfieldRepeaterNewItem").addClass("InputfieldRepeaterInsertItem");$insertItem.attr("id",$insertItem.attr("id")+"-placeholder");$insertItem.find(".InputfieldHeader").html("");if(insertBefore){$insertItem.insertBefore($item)}else{$insertItem.insertAfter($item)}if(depth>0)setItemDepth($insertItem,depth);$insertItem.show();if(!insertBefore&&!$item.hasClass("InputfieldStateCollapsed"))scrollToItem($insertItem);$insertItem.children(".InputfieldHeader").effect("highlight",{},500);var $addLinks=$item.parent(".Inputfields").siblings(".InputfieldRepeaterAddItem").find(".InputfieldRepeaterAddLink");if($addLinks.length===1){$addLinks.eq(0).trigger("click")}else if($addLinks.length>1){$item.trigger("repeaterinsert",[$insertItem,$item,insertBefore]);currentlyAddingItem=false}}var eventPasteClick=function(e){var $inputfield=$(this).closest(".InputfieldRepeater");var $newItem=$inputfield.children(".InputfieldContent").children(".Inputfields").children(".InputfieldRepeaterNewItem");pasteRepeaterItem($newItem,false);return false};var eventInsertMouseout=function(e){if(currentlyAddingItem)return;if(insertTimeout)clearTimeout(insertTimeout);var $action=$(this);var $newItem=$action.data("newItem");$action.removeClass("hov");if($newItem&&$newItem.length){if($newItem.hasClass("hov"))return;$newItem.remove()}};var eventInsertMouseover=function(e){if(currentlyAddingItem)return;if(insertTimeout)clearTimeout(insertTimeout);var $action=$(this);var insertBefore=$action.hasClass("InputfieldRepeaterInsertBefore");var $item=$(this).closest(".InputfieldRepeaterItem");var depth=0;$item.siblings(".InputfieldRepeaterInsertItem").remove();var $newItem=$item.siblings(".InputfieldRepeaterNewItem").clone();$newItem.addClass("InputfieldRepeaterInsertItem").attr("id",$newItem.attr("id")+"-insert");if(insertBefore){depth=getInsertBeforeItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemBefore");$newItem.addClass("hov")}else{depth=getInsertAfterItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemAfter")}$newItem.find(".InputfieldRepeaterItemControls").hide();$newItem.find(".InputfieldRepeaterItemLabel").text(ProcessWire.config.InputfieldRepeater.labels.insertHere);$action.addClass("hov").data("newItem",$newItem);setItemDepth($newItem,depth);insertTimeout=setTimeout(function(){insertTimeout=null;if(!$action.hasClass("hov")){$newItem.remove();return}else if(insertBefore){$newItem.insertBefore($item)}else{$newItem.addClass("hov").insertAfter($item)}$newItem.on("mouseover",function(){$(this).addClass("hov")}).on("click",function(e){e.stopPropagation();eventInsertClick($item,insertBefore)}).on("mouseout",function(){$(this).removeClass("hov").remove()});$newItem.slideDown()},1e3)};function isActionDisabled($this){if($this.hasClass("pw-icon-disabled")){ProcessWire.alert(ProcessWire.config.InputfieldRepeater.labels.disabledMinMax);return true}return false}function updateAccordion($item){if(!$item.closest(".InputfieldRepeater").hasClass("InputfieldRepeaterAccordion"))return false;var itemID=$item.attr("id");var useScroll=false;var $siblings=$item.parent().children(".InputfieldRepeaterItem");var itemHasPassed=false;var hasOpen=false;$siblings.each(function(){var $sibling=$(this);if($sibling.attr("id")==itemID){itemHasPassed=true;return}if($sibling.hasClass("InputfieldStateCollapsed"))return;if(!$sibling.is(":visible"))return;if(!itemHasPassed)useScroll=true;$sibling.children(".InputfieldHeader").find(".toggle-icon").trigger("click",[{duration:0}]);hasOpen=true});if(useScroll&&hasOpen){scrollToItem($item)}return true}function adjustItemLabel($item,doIncrement){var $label;$label=$item.children(".InputfieldHeader").find(".InputfieldRepeaterItemLabel");if(typeof $label=="undefined")$label=$item.children("label");var labelHTML=$label.html();var _labelHTML=labelHTML;if(typeof labelHTML!="undefined"){if(doIncrement&&labelHTML.indexOf("#")>-1){var num=$item.siblings(".InputfieldRepeaterItem:visible").length+1;labelHTML=labelHTML.replace(/#[0-9]+/,"#"+num)}while(labelHTML.indexOf("}")>-1){labelHTML=labelHTML.replace(/\{/,'');labelHTML=labelHTML.replace(/}/,"")}if(labelHTML!=_labelHTML){$label.html(labelHTML)}}}function getItemLabel($item){return $item.children(".InputfieldHeader").children(".InputfieldRepeaterItemLabel")}function getRepeaterFieldName($inputfield){if(!$inputfield.hasClass("InputfieldRepeater"))$inputfield=$inputfield.closest(".InputfieldRepeater");if(!$inputfield.length)return"";var fieldName=$inputfield.attr("data-name");if(typeof fieldName==="undefined"){fieldName=$inputfield.attr("id").replace("wrap_Inputfield_","");if(fieldName.indexOf("_LPID")>-1)fieldName=fieldName.replace(/_LPID\d+$/,"");console.log("Warning: repeater inputfield lacks data-name so used fallback",$inputfield)}return fieldName}function setItemSort($item,sort){var $input=getItemSortInput($item);if($input.length)$input.val(sort)}function getItemSort($item){var $input=getItemSortInput($item);if($input.length)return parseInt($input.val());return-1}function getItemSortInput($item){if(!$item.hasClass("InputfieldRepeaterItem"))$item=$item.closest(".InputfieldRepeaterItem");return $item.children(".InputfieldContent").children(".Inputfields").children(".InputfieldRepeaterItemSort").find(".InputfieldRepeaterSort")}function sortableItemAllowed($item){if($item.hasClass("InputfieldRepeaterMatrixItem")){if(typeof InputfieldRepeaterMatrixTools!=="undefined"){return InputfieldRepeaterMatrixTools.sortableItemAllowed($item)}}return true}function sortableDepth(ui,maxDepth,updateNow){var $wrap=ui.item.children(".InputfieldContent").children(".Inputfields").children(".InputfieldRepeaterItemDepth");var $depth=$wrap.find("input");var depth=-1;var prevDepth=parseInt($depth.val());var left=ui.position.left;if(left<0){depth=prevDepth-Math.round(Math.abs(left)/depthSize)}else{depth=Math.round(left/depthSize)+prevDepth}if(updateNow){depth=setItemDepth(ui.item,depth,maxDepth);ui.item.children(".InputfieldHeader").removeClass("ui-state-error")}return depth}function setItemDepth($item,depth,maxDepth,noValidate){noValidate=typeof noValidate==="undefined"?false:noValidate;if(depth<1)depth=0;if(typeof maxDepth!=="undefined"&&depth>maxDepth)depth=maxDepth;if(!$item.hasClass("InputfieldRepeaterItem"))$item=$item.closest(".InputfieldRepeaterItem");if(!$item.length)return-1;var $depthInput=$item.children(".InputfieldContent").children(".Inputfields").children(".InputfieldRepeaterItemDepth").find("input");if(!$depthInput.length&&!$item.hasClass("InputfieldRepeaterNewItem")){console.log("Cannot find depth input for "+$item.attr("id"))}if(!noValidate&&$item.closest(".InputfieldRepeater").hasClass("InputfieldRepeaterFamilyFriendly")){var $prevItem=$item.prev(".InputfieldRepeaterItem:not(.InputfieldRepeaterNewItem)");if($prevItem.length){var prevItemDepth=parseInt($prevItem.attr("data-depth"));if(depth-prevItemDepth>1)depth=prevItemDepth+1}else{depth=0}}$depthInput.val(depth);$item.attr("data-depth",depth);if(depth>0){$item.css("padding-left",depth*depthSize+"px");$item.addClass("InputfieldRepeaterItemHasDepth")}else{$item.css("padding-left",0);$item.removeClass("InputfieldRepeaterItemHasDepth")}return depth}function getItemDepth($item){if(!$item.hasClass("InputfieldRepeaterItem"))$item=$item.closest(".InputfieldRepeaterItem");if(!$item.length)return-1;return parseInt($item.attr("data-depth"))}function getInsertItemDepth($contextItem,insertBefore){var depth=0;if(insertBefore){depth=getItemDepth($contextItem)}else{var $nextItem=$contextItem.next(".InputfieldRepeaterItem");depth=getItemDepth($contextItem);if($nextItem.hasClass("InputfieldRepeaterNewItem")){if(!$nextItem.hasClass("InputfieldRepeaterInsertItem"))$nextItem=null}var nextDepth=$nextItem&&$nextItem.length?getItemDepth($nextItem):depth;if(nextDepth>depth)depth=nextDepth}return depth}function getInsertBeforeItemDepth($item){return getInsertItemDepth($item,true)}function getInsertAfterItemDepth($item){return getInsertItemDepth($item,false)}function getDepthChildren($item){var children=[];var n=0;var startDepth=parseInt($item.attr("data-depth"));var pageId=$item.attr("data-page");var pageIdClass="Inputfield_repeater_item_"+pageId;while($item.hasClass(pageIdClass)){var $nextItem=$item.next(".InputfieldRepeaterItem:not(.InputfieldRepeaterNewItem)");if(!$nextItem.length||!$nextItem.hasClass(pageIdClass))break;$item=$nextItem}do{var $child=$item.next(".InputfieldRepeaterItem:not(.InputfieldRepeaterNewItem)");if(!$child.length)break;var childDepth=parseInt($child.attr("data-depth"));if(!childDepth||childDepth<=startDepth)break;$item=$child;children[n]=$child;n++}while(true);return children}function initDepths($inputfieldRepeater){$inputfieldRepeater.find(".InputfieldRepeaterItemDepth").each(function(){var $wrap=$(this);var $depth=$wrap.find("input");var depth=$depth.val();var $item=$depth.closest(".InputfieldRepeaterItem");var currentLeft=$item.css("padding-left");if(currentLeft=="auto")currentLeft=0;currentLeft=parseInt(currentLeft);var targetLeft=depth*depthSize;if(targetLeft!=currentLeft){$item.css("padding-left",targetLeft+"px")}if(targetLeft>0){$item.addClass("InputfieldRepeaterItemHasDepth")}else{$item.removeClass("InputfieldRepeaterItemHasDepth")}});$inputfieldRepeater.children(".InputfieldContent").css("position","relative")}function initSortable($inputfieldRepeater,$inputfields){var maxDepth=parseInt($inputfieldRepeater.attr("data-depth"));var depthChildren=[];var startDepth=0;var familyFriendly=$inputfieldRepeater.hasClass("InputfieldRepeaterFamilyFriendly");var sortableOptions={items:"> li:not(.InputfieldRepeaterNewItem)",handle:".InputfieldRepeaterDrag",start:function(e,ui){ui.item.find(".InputfieldHeader").addClass("ui-state-highlight");ui.item.find("textarea.InputfieldCKEditorNormal.InputfieldCKEditorLoaded").each(function(){$(this).removeClass("InputfieldCKEditorLoaded");var editor=CKEDITOR.instances[$(this).attr("id")];editor.destroy();CKEDITOR.remove($(this).attr("id"))});if(familyFriendly&&maxDepth>0){startDepth=parseInt(ui.item.attr("data-depth"));depthChildren=getDepthChildren(ui.item);for(var n=0;n0){sortableDepth(ui,maxDepth,true)}if(!sortableItemAllowed(ui.item))return false;if(maxDepth>0&&familyFriendly&&depthChildren.length){var $item=ui.item;var stopDepth=parseInt($item.attr("data-depth"));var diffDepth=stopDepth-startDepth;for(var n=0;n0){initDepths($inputfieldRepeater);sortableOptions.grid=[depthSize,1];sortableOptions.sort=function(event,ui){var depth=sortableDepth(ui,99,false);var $header=ui.item.children(".InputfieldHeader");if(depth>maxDepth){$header.addClass("ui-state-error InputfieldRepeaterItemOOB")}else if($header.hasClass("ui-state-error")){$header.removeClass("ui-state-error InputfieldRepeaterItemOOB")}}}else{sortableOptions.axis="y"}$(".InputfieldRepeaterDrag",$inputfields).on("mouseenter",function(){$(this).parent("label").addClass("ui-state-focus")}).on("mouseleave",function(){$(this).parent("label").removeClass("ui-state-focus")});$inputfields.sortable(sortableOptions)}function initHeaders($headers,$inputfieldRepeater,renderValueMode){var $clone=$("").css("display","block");var $delete=$("");var $toggle=$("");var $insertAfter=$("");var $insertBefore=$("");var cfg=ProcessWire.config.InputfieldRepeater;var allowClone=!$inputfieldRepeater.hasClass("InputfieldRepeaterNoAjaxAdd");var allowSettings=$inputfieldRepeater.hasClass("InputfieldRepeaterHasSettings");if(cfg){$toggle.attr("title",cfg.labels.toggle);$delete.attr("title",cfg.labels.remove);$clone.attr("title",cfg.labels.clone);$insertBefore.attr("title",cfg.labels.insertBefore);$insertAfter.attr("title",cfg.labels.insertAfter)}if(allowSettings){$inputfieldRepeater.find(".InputfieldRepeaterSettings").hide()}$headers.each(function(){var $t=$(this);if($t.hasClass("InputfieldRepeaterHeaderInit"))return;var $item=$t.parent();var icon=$item.attr("data-icon");if(typeof icon==="undefined"||!icon.length)icon="fa-arrows";if(icon.indexOf("fa-")!==0)icon="fa-"+icon;if($item.hasClass("InputfieldRepeaterNewItem")){icon="fa-plus-circle";$t.addClass("ui-priority-secondary")}$t.addClass("ui-state-default InputfieldRepeaterHeaderInit");$t.prepend("");if(!renderValueMode){var $controls=$("");var $toggleControl=$toggle.clone(true).addClass($t.parent().hasClass("InputfieldRepeaterOff")?"fa-toggle-off":"fa-toggle-on");var $deleteControl=$delete.clone(true);var $collapseControl=$t.find(".toggle-icon");var $insertBeforeControl=$insertBefore.clone(true);var $insertAfterControl=$insertAfter.clone(true);$controls.prepend($collapseControl);$controls.prepend($insertBeforeControl);$controls.prepend($insertAfterControl);var $closestRepeater=$t.closest(".InputfieldRepeater");if($closestRepeater.hasClass("InputfieldRepeaterHasSettings")){var $settingsToggle=$("").attr("title",cfg.labels.settings);$controls.prepend($settingsToggle)}if(allowClone||!$closestRepeater.hasClass("InputfieldRepeaterNoAjaxAdd")){$controls.prepend($clone.clone(true))}$controls.prepend($toggleControl);$controls.prepend($deleteControl);$t.prepend($controls);$controls.css("background-color",$t.css("background-color"))}adjustItemLabel($item,false)})}function initRepeater($this){var $inputfields,$inputfieldRepeater,isItem;if($this.hasClass("InputfieldRepeaterItem")){$inputfields=$this;$inputfieldRepeater=$this.closest(".InputfieldRepeater");isItem=true}else{$inputfields=$this.find(".Inputfields").first();$inputfieldRepeater=$this;isItem=false}if($inputfields.hasClass("InputfieldRepeaterInit"))return;if($("body").hasClass("touch-device"))$inputfieldRepeater.addClass("InputfieldRepeaterLoudControls");var renderValueMode=$inputfields.closest(".InputfieldRenderValueMode").length>0;$inputfields.addClass("InputfieldRepeaterInit");if(isItem){initHeaders($this.children(".InputfieldHeader"),$inputfieldRepeater,renderValueMode)}else{initHeaders($(".InputfieldRepeaterItem > .InputfieldHeader",$this),$inputfieldRepeater,renderValueMode)}if(renderValueMode){initDepths($inputfieldRepeater);return}$(".InputfieldRepeaterTrash",$this).on("mouseenter",function(){var $label=$(this).closest("label");if(!$label.parents().hasClass("InputfieldRepeaterDeletePending"))$label.addClass("ui-state-error");$label.find(".InputfieldRepeaterItemControls").css("background-color",$label.css("background-color"))}).on("mouseleave",function(){var $label=$(this).closest("label");if(!$label.parent().hasClass("InputfieldRepeaterDeletePending"))$label.removeClass("ui-state-error");$label.find(".InputfieldRepeaterItemControls").css("background-color",$label.css("background-color"))});if(isItem)$inputfields=$inputfieldRepeater.find(".Inputfields").first();initSortable($inputfieldRepeater,$inputfields);$(".InputfieldRepeaterAddLink:not(.InputfieldRepeaterAddLinkInit)",$inputfieldRepeater).addClass("InputfieldRepeaterAddLinkInit").on("click",eventAddLinkClick);if($inputfieldRepeater.hasClass("InputfieldRepeaterMax")){checkMinMax($inputfieldRepeater)}}function checkMinMax($inputfieldRepeater){if(!$inputfieldRepeater.hasClass("InputfieldRepeaterMax")&&!$inputfieldRepeater.hasClass("InputfieldRepeaterMin"))return;var max=parseInt($inputfieldRepeater.attr("data-max"));var min=parseInt($inputfieldRepeater.attr("data-min"));if(max<=0&&min<=0)return;var $content=$inputfieldRepeater.children(".InputfieldContent");var num=$content.children(".Inputfields").children("li:not(.InputfieldRepeaterDeletePending):not(.InputfieldRepeaterOff):visible").length;var $addItem=$content.children(".InputfieldRepeaterAddItem");var cloneChange="";var trashChange="";if(max>0){if(num>=max){$addItem.hide();cloneChange="hide"}else if(!$addItem.is(":visible")){$addItem.show();cloneChange="show"}}if(min>0){if(num<=min){trashChange="hide";$content.addClass("InputfieldRepeaterTrashHidden")}else if($content.hasClass("InputfieldRepeaterTrashHidden")){$content.removeClass("InputfieldRepeaterTrashHidden");trashChange="show"}}if(cloneChange.length||trashChange.length){var $items=$content.children(".Inputfields").children(".InputfieldRepeaterItem");if(cloneChange.length){$items.each(function(){var $clone=$(this).children(".InputfieldHeader").find(".InputfieldRepeaterClone");if(cloneChange==="show"){$clone.removeClass("pw-icon-disabled")}else{$clone.addClass("pw-icon-disabled")}})}if(trashChange.length){$items.each(function(){var $header=$(this).children(".InputfieldHeader");var $trash=$header.find(".InputfieldRepeaterTrash");var $toggle=$header.find(".InputfieldRepeaterToggle.fa-toggle-on");if(trashChange==="show"){$trash.removeClass("pw-icon-disabled");$toggle.removeClass("pw-icon-disabled")}else{$trash.addClass("pw-icon-disabled");$toggle.addClass("pw-icon-disabled")}});if(trashChange=="hide"){$content.children(".Inputfields").children("li.InputfieldRepeaterDeletePending").each(function(){var $trash=$(this).children(".InputfieldHeader").find(".InputfieldRepeaterTrash");$trash.removeClass("pw-icon-disabled")})}}}}function scrollToItem($item){$("html, body").animate({scrollTop:$item.offset().top-10},250,"swing")}function runScripts(data){if(data.indexOf("<\/script>")==-1)return;var d=document.createElement("div");d.innerHTML=data;var scripts=d.querySelectorAll(".Inputfield script");$(scripts).each(function(){$.globalEval(this.text||this.textContent||this.innerHTML||"")})}function updateState($item){if($item.closest(".InputfieldRepeaterRememberOpen").length<1)return;var val="";$(".InputfieldRepeaterItem:not(.InputfieldStateCollapsed)").each(function(){var id=parseInt($(this).attr("data-page"));if(id>0){val+=id+"|"}});$.cookie("repeaters_open",val)}function cloneRepeaterItem($item,insertBefore,pasteValue){if(typeof pasteValue==="undefined")pasteValue=null;var actionName=pasteValue===null?"clone":"paste";var $addLink=$item.closest(".InputfieldRepeater").children(".InputfieldContent").children(".InputfieldRepeaterAddItem").find(".InputfieldRepeaterAddLink").first();$item.siblings(".InputfieldRepeaterInsertItem").remove();var depth=getItemDepth($item);var $newItem=$item.hasClass("InputfieldRepeaterNewItem")?$item.clone():$item.siblings(".InputfieldRepeaterNewItem").clone();var $nextItem=$item.next(".InputfieldRepeaterItem");var nextItemDepth=$nextItem.length?getItemDepth($nextItem):depth;var $prevItem=$item.prev(".InputfieldRepeaterItem");var prevItemDepth=$prevItem.length?getItemDepth($prevItem):depth;if(typeof insertBefore==="undefined"){insertBefore=depth");if(insertBefore){depth=getInsertBeforeItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemBefore");$newItem.insertBefore($item)}else{depth=getInsertAfterItemDepth($item);$newItem.addClass("InputfieldRepeaterInsertItemAfter");$newItem.insertAfter($item)}setItemDepth($newItem,depth);$newItem.show();if(actionName==="paste"){$addLink.attr("data-clone",pasteValue.page+":"+pasteValue.item).trigger("click")}else{$addLink.attr("data-clone",$item.attr("data-page")).trigger("click")}}function pasteRepeaterItem($item,insertBefore){var $inputfield=$item.closest(".InputfieldRepeater");var fieldName=$inputfield.attr("data-name");var cookieName=copyPasteCookieName(fieldName);var copyValue=jQuery.cookie(cookieName);if(copyValue)cloneRepeaterItem($item,insertBefore,copyValue)}function copyRepeaterItem($item){var $title=$("#Inputfield_title");var $name=$("#Inputfield__pw_page_name");var $inputfield=$item.closest(".InputfieldRepeater");var fieldName=$inputfield.attr("data-name");var copyValue={page:parseInt($inputfield.attr("data-page")),item:parseInt($item.attr("data-page")),field:fieldName};var cookieName=copyPasteCookieName(fieldName);jQuery.cookie(cookieName,copyValue)}function copyPasteCookieName(fieldName){return fieldName+"_copy"}function init(){$(".InputfieldRepeater").each(function(){initRepeater($(this))});$(document).on("reloaded",".InputfieldRepeater",eventReloaded).on("click",".InputfieldRepeaterTrash",eventDeleteClick).on("dblclick",".InputfieldRepeaterTrash",eventDeleteDblClick).on("click",".InputfieldRepeaterClone",eventCopyCloneClick).on("click",".InputfieldRepeaterPaste",eventPasteClick).on("click",".InputfieldRepeaterSettingsToggle",eventSettingsClick).on("dblclick",".InputfieldRepeaterToggle",eventOpenAllClick).on("click",".InputfieldRepeaterToggle",eventToggleClick).on("opened",".InputfieldRepeaterItem",eventItemOpened).on("closed",".InputfieldRepeaterItem",eventItemClosed).on("openReady",".InputfieldRepeaterItem",eventItemOpenReady).on("click",".InputfieldRepeaterInsertBefore",eventInsertBeforeClick).on("click",".InputfieldRepeaterInsertAfter",eventInsertAfterClick).on("mouseover",".InputfieldRepeaterInsertBefore",eventInsertMouseover).on("mouseover",".InputfieldRepeaterInsertAfter",eventInsertMouseover).on("mouseout",".InputfieldRepeaterInsertBefore",eventInsertMouseout).on("mouseout",".InputfieldRepeaterInsertAfter",eventInsertMouseout)}init()}jQuery(document).ready(function($){InputfieldRepeater($)}); \ No newline at end of file diff --git a/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.js b/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.js index 3de946d3..0f127407 100644 --- a/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.js +++ b/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.js @@ -141,10 +141,10 @@ buildSelect(); - $select.change(selectChangeEvent) - .click(selectClickEvent); + $select.on('change', selectChangeEvent) + .on('click', selectClickEvent); - $original.change(originalChangeEvent) + $original.on('change', originalChangeEvent) .wrap($container).before($select).before($ol); if(options.sortable) makeSortable(); @@ -337,8 +337,7 @@ // collapse any existing parents that are open (behave as accordion) if(!$option.hasClass(options.optionChildClass)) { $select.find('.' + options.optionParentOpenClass).each(function() { - // $(this).attr('selected', 'selected').change(); // trigger close if any existing open - $(this).prop('selected', true).change(); // trigger close if any existing open + $(this).prop('selected', true).trigger('change'); // trigger close if any existing open }); } // make the parent selected, encouraging them to click to select a child @@ -377,7 +376,7 @@ */ function selectClickEvent() { // IE6 lets you scroll around in a select without it being pulled down - // making sure a click preceded the change() event reduces the chance + // making sure a click preceded the change event reduces the chance // if unintended items being added. there may be a better solution? ieClick = true; } @@ -585,8 +584,7 @@ * */ function selectFirstItem() { - // $select.children(":eq(0)").attr("selected", true); - $select.children(":eq(0)").prop("selected", true); + $select.children().first().prop("selected", true); } /** @@ -644,7 +642,7 @@ .attr("href", "#") .addClass(options.removeClass) .prepend(options.removeLabel) - .click(function() { + .on('click', function() { dropListItem($(this).parent('li').attr('rel')); return false; }); @@ -667,7 +665,7 @@ if(options.editLinkModal === "longclick") { $editLink.addClass('asmEditLinkModalLongclick'); } else if(options.editLinkModal) { - $editLink.click(clickEditLink); + $editLink.on('click', clickEditLink); } $itemLabel.addClass(options.editClass).append($editLink); @@ -681,7 +679,7 @@ if(options.editLinkModal === "longclick") { $editLink2.addClass('asmEditLinkModalLongclick'); } else if(options.editLinkModal) { - $editLink2.click(clickEditLink); + $editLink2.on('click', clickEditLink); } } @@ -701,9 +699,9 @@ if(options.jQueryUI) { $item.addClass('ui-state-default') - .hover(function() { + .on('mouseenter', function() { $(this).addClass('ui-state-hover').removeClass('ui-state-default'); - }, function() { + }).on('mouseleave', function() { $(this).addClass('ui-state-default').removeClass('ui-state-hover'); }); if(options.sortable) { @@ -939,7 +937,7 @@ var href = $(this).attr('href'); var $iframe = pwModalWindow(href, {}, 'medium'); - $iframe.load(function() { + $iframe.on('load', function() { var $icontents = $iframe.contents(); var buttons = []; @@ -962,7 +960,7 @@ 'class': (secondary ? 'ui-priority-secondary' : ''), click: function() { if($button.attr('type') == 'submit') { - $button.click(); + $button.trigger('click'); $asmItem.effect('highlight', {}, 500); var $asmSetStatus = $icontents.find('#' + options.listItemStatusClass); // first try to find by ID diff --git a/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.min.js b/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.min.js index bd66655c..2366bc0d 100644 --- a/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.min.js +++ b/wire/modules/Inputfield/InputfieldAsmSelect/asmselect/jquery.asmselect.min.js @@ -1 +1 @@ -(function($){$.fn.asmSelect=function(customOptions){var options={listType:"ol",sortable:false,addable:true,deletable:true,highlight:false,fieldset:false,animate:false,addItemTarget:"bottom",hideWhenAdded:false,hideWhenEmpty:false,debugMode:false,jQueryUI:true,hideDeleted:true,deletedOpacity:.5,deletedPrepend:"-",useSelect2:true,removeWhenAdded:false,highlightTag:"",sortLabel:'',removeLabel:'×',highlightAddedLabel:"Added: ",highlightRemovedLabel:"Removed: ",containerClass:"asmContainer",selectClass:"asmSelect",optionDisabledClass:"asmOptionDisabled",listClass:"asmList",listSortableClass:"asmListSortable",listItemClass:"asmListItem",listItemLabelClass:"asmListItemLabel",listItemDescClass:"asmListItemDesc",listItemStatusClass:"asmListItemStatus",listItemHandleClass:"asmListItemHandle",removeClass:"asmListItemRemove",editClass:"asmListItemEdit",highlightClass:"asmHighlight",deletedClass:"asmListItemDeleted",editLink:"",editLabel:'',editLinkOnlySelected:true,editLinkModal:true,editLinkButtonSelector:"form button.ui-button:visible",optionParentClass:"asmParent",optionParentIcon:"⬇",optionChildAttr:"data-asmParent",optionParentOpenClass:"asmParentOpen",optionChildClass:"asmChild",optionChildIndent:"   ",optionParentLabel:"← Click again to make selection"};$.extend(options,customOptions);return this.each(function(index){var $original=$(this);var $container;var $select;var $select2=null;var $ol;var buildingSelect=false;var ieClick=false;var ignoreOriginalChangeEvent=false;var fieldsetCloseItems={};var msie=0;var $highlightSpan=null;function init(){if(options.deletable&&!options.addable)options.hideDeleted=false;$original.find("option[selected]").addClass("asmOriginalSelected");while($("#"+options.containerClass+index).length>0)index++;$select=$("").addClass(options.selectClass).addClass($original.attr("class")).attr("name",options.selectClass+index).attr("id",options.selectClass+index);if(!options.addable)$select.hide();$selectRemoved=$("");$ol=$("<"+options.listType+">").addClass(options.listClass).attr("id",options.listClass+index);$container=$("
        ").addClass(options.containerClass).attr("id",options.containerClass+index);buildSelect();$select.change(selectChangeEvent).click(selectClickEvent);$original.change(originalChangeEvent).wrap($container).before($select).before($ol);if(options.sortable)makeSortable();if(options.fieldset){setupFieldsets();$original.children("option").each(function(){var name=$(this).text();if(name.indexOf("_END")>0&&name.substring(name.length-4)=="_END"){fieldsetCloseItems[name]=$(this)}})}$original.trigger("init");if(options.editLinkModal==="longclick"){$ol.on("longclick","a.asmEditLinkModalLongclick",clickEditLink)}if($select2&&$select2.length){$select2.addClass($select.attr("class")).removeClass("asmSelect").attr("id",$select.attr("id")+"-helper").hide();$select.after($select2)}}function makeSortable(){var fieldsetItems=[];var sortableUpdate=function($ul,e,data){var $option=$("#"+data.item.attr("rel"));var updatedOptionId=$option.attr("id");$ul.children("li").each(function(n){$option=$("#"+$(this).attr("rel"));$original.append($option)});if(updatedOptionId){triggerOriginalChange(updatedOptionId,"sort")}};$ol.sortable({items:"li."+options.listItemClass,axis:"y",cancel:"a.asmEditLinkModalLongclick",update:function(e,data){if(data.item.hasClass("asmFieldsetStart"))return;sortableUpdate(jQuery(this),e,data);$ol.trigger("sorted",[data.item])},start:function(e,data){if(options.jQueryUI)data.item.addClass("ui-state-highlight");if(data.item.hasClass("asmFieldsetStart")){var $next=data.item;var stopName=data.item.find("."+options.listItemLabelClass).text()+"_END";do{if($next.find("."+options.listItemLabelClass).text()==stopName)break;$next=$next.next("li");if($next.length&&!$next.hasClass("ui-sortable-placeholder")){$next.fadeTo(50,.7).slideUp("fast");fieldsetItems.push($next)}}while($next.length)}},stop:function(e,data){if(options.jQueryUI)data.item.removeClass("ui-state-highlight");if(data.item.hasClass("asmFieldsetStart")){var $lastItem=data.item;for(var n=0;n0&&msie<7&&!ieClick)return;var $select=$(this);var $option=$select.children("option:selected");if($highlightSpan&&$highlightSpan.length)$highlightSpan.remove();if(!$option.attr("value").length)return false;if($option.hasClass(options.optionParentClass)){parentOptionSelected($select,$option);e.stopPropagation();return false}var id=$option.slice(0,1).attr("rel");addListItem(id);ieClick=false;triggerOriginalChange(id,"add");if($option.hasClass(options.optionChildClass)){childOptionSelected($select,$option)}}function parentOptionSelected($select,$option){var $sel=$select;var isOpenParent=$option.hasClass(options.optionParentOpenClass);if(options.useSelect2&&!isOpenParent)$sel=getSelect2();var $children=$sel.find("option."+options.optionChildClass+"["+options.optionChildAttr+"='"+$option.attr("value")+"']");var parentHTML=$option.html();var openLabel=" +"+$children.filter(":not(:disabled)").length+" "+options.optionParentIcon;if(isOpenParent){hideSelectOptions($children);parentHTML=parentHTML.replace(/\+\d+ ./,"");$option.removeClass(options.optionParentOpenClass).prop("selected",false)}else{var indent=options.optionChildIndent;if($option.hasClass(options.optionChildClass))indent+=indent;$children.each(function(){var $child=$(this);var childHTML=$child.html();if(childHTML.indexOf(options.optionChildIndent)!==0){$child.html(indent+childHTML)}});showSelectOptions($children,$option);$select.find(":selected").prop("selected",false);if(!$option.hasClass(options.optionChildClass)){$select.find("."+options.optionParentOpenClass).each(function(){$(this).prop("selected",true).change()})}$option.addClass(options.optionParentOpenClass).prop("selected",true);parentHTML+=openLabel;var highlightOption=options.highlight;options.highlight=true;setHighlight(null,options.optionParentLabel,true);if(!highlightOption)options.highlight=false}$option.html(parentHTML)}function childOptionSelected($select,$option){$select.find("option[value='"+$option.attr(options.optionChildAttr)+"']").prop("selected",true)}function selectClickEvent(){ieClick=true}function originalChangeEvent(e){if(ignoreOriginalChangeEvent){ignoreOriginalChangeEvent=false;return}$select.empty();if(options.useSelect2&&$select2)$select2.empty();$ol.empty();buildSelect();if(typeof $.browser!="undefined"){if($.browser.opera)$ol.hide().fadeIn("fast")}if(options.fieldset)setupFieldsets()}function buildSelect(){buildingSelect=true;var title=$original.attr("title");var numActive=0;if(title===undefined)title="";$select.prepend("");$original.children("option").each(function(n){var $t=$(this);var id;if(!$t.attr("id"))$t.attr("id","asm"+index+"option"+n);id=$t.attr("id");if($t.is(":selected")){addListItem(id);addSelectOption(id,true)}else if($t.is(":disabled")){addSelectOption(id,true)}else{numActive++;addSelectOption(id)}});if(!options.debugMode)$original.hide();selectFirstItem();if(options.hideWhenEmpty){if(numActive>0)$select.show();else $select.hide()}buildingSelect=false}function addSelectOption(optionId,disabled){if(typeof disabled=="undefined")disabled=false;var $O=$("#"+optionId);var data_asmParent=options.optionChildAttr;var $option=$("").val($O.val()).attr("rel",optionId);if($O.hasClass(options.optionParentClass)){$option.addClass(options.optionParentClass)}if(disabled)disableSelectOption($option);if($O.attr(data_asmParent)){$option.addClass(options.optionChildClass);$option.attr(data_asmParent,$O.attr(data_asmParent));if(options.useSelect2){var $sel2=getSelect2();$sel2.append($option)}else{hideSelectOptions($option);$select.append($option)}}else{$select.append($option)}}function getSelect2(){if($select2&&$select2.length)return $select2;$select2=$("");return $select2}function hideSelectOptions($options){$options.each(function(){var $option=$(this);if(options.useSelect2){var $sel2=getSelect2();$sel2.append($option);if($option.hasClass(options.optionParentOpenClass)){hideSelectOptions($select.children("option."+options.optionChildClass+"["+options.optionChildAttr+'="'+$option.attr("value")+'"]'))}}else{$option.attr("hidden","hidden")}})}function showSelectOptions($options,$afterOption){$options.each(function(){var $option=$(this);if(options.useSelect2){if(typeof $afterOption!="undefined"){$afterOption.after($option);$afterOption=$option}else{$select.append($option)}}else{$option.removeAttr("hidden")}})}function selectFirstItem(){$select.children(":eq(0)").prop("selected",true)}function disableSelectOption($option){$option.addClass(options.optionDisabledClass).prop("selected",false).prop("disabled",true);if(options.hideWhenEmpty){if($option.siblings("[disabled!=true]").length<2)$select.hide()}if(options.hideWhenAdded)$option.hide();if(msie)$select.hide().show()}function enableSelectOption($option){$option.removeClass(options.optionDisabledClass).attr("disabled",false);if(options.hideWhenEmpty)$select.show();if(options.hideWhenAdded)$option.show();if(msie)$select.hide().show()}function addListItem(optionId){var $O=$("#"+optionId);if(!$O)return;var $removeLink=null;if(options.deletable)$removeLink=$("").attr("href","#").addClass(options.removeClass).prepend(options.removeLabel).click(function(){dropListItem($(this).parent("li").attr("rel"));return false});var $itemLabel=$("").addClass(options.listItemLabelClass);var $itemStatus=$("").addClass(options.listItemStatusClass);if($O.attr("data-status"))$itemStatus.html($O.attr("data-status"));var $itemDesc=$("").addClass(options.listItemDescClass);if(options.editLink.length>0&&($O.is(":selected")||!options.editLinkOnlySelected)){var $editLink=$("").html($O.html()).attr("href",options.editLink.replace(/\{value\}/,$O.val())).append(options.editLabel);if(options.editLinkModal==="longclick"){$editLink.addClass("asmEditLinkModalLongclick")}else if(options.editLinkModal){$editLink.click(clickEditLink)}$itemLabel.addClass(options.editClass).append($editLink);if($O.attr("data-desc")){var $editLink2=$("").html($O.attr("data-desc")).attr("href",$editLink.attr("href")).append(options.editLabel);$itemDesc.addClass(options.editClass).append($editLink2);if(options.editLinkModal==="longclick"){$editLink2.addClass("asmEditLinkModalLongclick")}else if(options.editLinkModal){$editLink2.click(clickEditLink)}}}else{$itemLabel.html($O.html());if($O.attr("data-desc"))$itemDesc.html($O.attr("data-desc"))}var $item=$("
      • ").attr("rel",optionId).addClass(options.listItemClass).append($itemLabel).append($itemDesc).append($itemStatus);if($removeLink)$item.append($removeLink);$item.hide();if(options.jQueryUI){$item.addClass("ui-state-default").hover(function(){$(this).addClass("ui-state-hover").removeClass("ui-state-default")},function(){$(this).addClass("ui-state-default").removeClass("ui-state-hover")});if(options.sortable){if($O.attr("data-handle")){$item.prepend($($O.attr("data-handle")).addClass(options.listItemHandleClass))}else{$item.prepend($(options.sortLabel).addClass(options.listItemHandleClass))}}}if(!buildingSelect){if($O.is(":selected"))return;$O.prop("selected",true)}if(options.addItemTarget=="top"&&!buildingSelect){$ol.prepend($item);if(options.sortable)$original.prepend($O)}else{$ol.append($item);if(options.sortable)$original.append($O)}addListItemShow($item);disableSelectOption($("[rel="+optionId+"]",$select));if(!buildingSelect){setHighlight($item,options.highlightAddedLabel);selectFirstItem();if(options.sortable)$ol.sortable("refresh");if(options.fieldset){var itemName=$O.text();if(itemName.indexOf("_END")>0&&itemName.substring(itemName.length-4)=="_END"){$item.addClass("asmFieldset asmFieldsetEnd")}else{var fieldsetCloseName=itemName+"_END";if(typeof fieldsetCloseItems[fieldsetCloseName]!="undefined"){$item.addClass("asmFieldset asmFieldsetStart");addListItem(fieldsetCloseItems[fieldsetCloseName].attr("id"))}}}}}function addListItemShow($item){if(options.animate&&!buildingSelect){$item.animate({opacity:"show",height:"show"},100,"swing",function(){$item.animate({height:"+=2px"},50,"swing",function(){$item.animate({height:"-=2px"},25,"swing")})})}else{$item.show()}}function dropListItem(optionId,highlightItem){var $O=$("#"+optionId);if(options.hideDeleted||!$O.hasClass("asmOriginalSelected")){if(typeof highlightItem=="undefined")highlightItem=true;$O.prop("selected",false);$item=$ol.children("li[rel="+optionId+"]");dropListItemHide($item);enableSelectOption($("option[rel="+optionId+"]"));if(highlightItem)setHighlight($item,options.highlightRemovedLabel)}else{$item=$ol.children("li[rel="+optionId+"]");var value=$O.attr("value");if(value=="undefined")value=$O.text();if($item.hasClass(options.deletedClass)){$item.removeClass(options.deletedClass);if(options.deletedOpacity!=1)$item.css("opacity",1);$O.attr("value",value.substring(options.deletedPrepend.length))}else{$item.addClass(options.deletedClass);if(options.deletedOpacity!=1)$item.css("opacity",options.deletedOpacity);$O.attr("value",options.deletedPrepend+value)}}triggerOriginalChange(optionId,"drop")}function dropListItemHide($item){if(options.animate&&!buildingSelect){$prevItem=$item.prev("li");$item.animate({opacity:"hide",height:"hide"},100,"linear",function(){$prevItem.animate({height:"-=2px"},50,"swing",function(){$prevItem.animate({height:"+=2px"},100,"swing")});$item.remove()})}else{$item.remove()}}function setHighlight($item,label,remain){if(!options.highlight)return;if(typeof remain=="undefined")remain=false;$select.next("#"+options.highlightClass+index).remove();var $highlight=$(options.highlightTag).hide().addClass(options.highlightClass).attr("id",options.highlightClass+index);if($item){$highlight.html(label+$item.children("."+options.listItemLabelClass).slice(0,1).text())}else{$highlight.html(label)}$select.after($highlight);if(remain){$highlight.fadeIn("fast");$highlightSpan=$highlight}else{$highlight.fadeIn("fast",function(){setTimeout(function(){$highlight.fadeOut("slow",function(){$(this).remove()})},50)})}}function triggerOriginalChange(optionId,type){ignoreOriginalChangeEvent=true;$option=$("#"+optionId);$original.trigger("change",[{option:$option,value:$option.val(),id:optionId,item:$ol.children("[rel="+optionId+"]"),type:type}])}function clickEditLink(e){if(!options.editLinkModal)return true;var $asmItem=$(this).parents("."+options.listItemClass);var href=$(this).attr("href");var $iframe=pwModalWindow(href,{},"medium");$iframe.load(function(){var $icontents=$iframe.contents();var buttons=[];var buttonCnt=0;$icontents.find(options.editLinkButtonSelector).each(function(n){var $button=$(this);var label=$button.text();var valid=true;var secondary=$button.is(".ui-priority-secondary");for(var i=0;i0)$asmItem.find("."+options.listItemStatusClass).html($asmSetStatus.eq(0).val());var $asmSetDesc=$icontents.find("#"+options.listItemDescClass);if($asmSetDesc.length==0)$asmSetDesc=$icontents.find(":input."+options.listItemDescClass);if($asmSetDesc.length>0){$asmSetDesc=$asmSetDesc.eq(0);var asmSetDesc=$("