diff --git a/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.js b/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.js index 09b807b1..3cb1e251 100644 --- a/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.js +++ b/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.js @@ -426,7 +426,9 @@ function InputfieldRepeater($) { if($repeater.hasClass('InputfieldNoDraft')) ajaxURL += '&nodraft=1'; if(pageVersion) ajaxURL += '&version=' + pageVersion; - $spinner.removeClass('fa-arrows').addClass('fa-spin fa-spinner'); + var iconName = $item.attr('data-icon'); + if(typeof iconName === 'undefined' || !iconName) iconName = 'fa-arrows'; + $spinner.removeClass(iconName).addClass('fa-spin fa-spinner'); repeaterID = repeaterID.replace(/_repeater\d+$/, '').replace('_LPID' + pageID, ''); if(typeof contextStr !== 'undefined' && contextStr.length) { @@ -454,7 +456,7 @@ function InputfieldRepeater($) { } $content.slideDown('fast', function() { - $spinner.removeClass('fa-spin fa-spinner').addClass('fa-arrows'); + $spinner.removeClass('fa-spin fa-spinner').addClass(iconName); updateAccordion($item); }); diff --git a/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.min.js b/wire/modules/Fieldtype/FieldtypeRepeater/InputfieldRepeater.min.js index 4e35e823..61b3c9a2 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 pageVersion=0;var togglingItemVisibility=false;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")};function toggleItemFamilyVisibility($item,open){var $inputfield=$item.closest(".InputfieldRepeater");if(!$inputfield.hasClass("InputfieldRepeaterFamilyToggle"))return;if(!$inputfield.hasClass("InputfieldRepeaterDepth"))return;if($inputfield.hasClass("InputfieldRepeaterAccordion"))false;var depth=getItemDepth($item);var $nextItem=$item.next(".InputfieldRepeaterItem");if($nextItem.length){var nextDepth=getItemDepth($nextItem);if(nextDepth>depth){togglingItemVisibility=nextDepth;open?Inputfields.open($nextItem):Inputfields.close($nextItem)}else if(nextDepth===depth&&depth>0&&togglingItemVisibility){open?Inputfields.open($nextItem):Inputfields.close($nextItem)}else{togglingItemVisibility=false}}else{togglingItemVisibility=false}}function itemOpenComplete($item){toggleItemFamilyVisibility($item,true)}var eventItemOpened=function(){var $item=$(this);var $loaded=$item.find(".InputfieldRepeaterLoaded");updateState($item);if(parseInt($loaded.val())>0){updateAccordion($item);toggleItemFamilyVisibility($item,true);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");var contextStr=$repeater.attr("data-context");if($repeater.hasClass("InputfieldRenderValueMode"))ajaxURL+="&inrvm=1";if($repeater.hasClass("InputfieldNoDraft"))ajaxURL+="&nodraft=1";if(pageVersion)ajaxURL+="&version="+pageVersion;$spinner.removeClass("fa-arrows").addClass("fa-spin fa-spinner");repeaterID=repeaterID.replace(/_repeater\d+$/,"").replace("_LPID"+pageID,"");if(typeof contextStr!=="undefined"&&contextStr.length){repeaterID=repeaterID.replace(contextStr,"")}$.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"]);itemOpenComplete($item)},50);runScripts(data)})};var eventItemClosed=function(){updateState($(this));toggleItemFamilyVisibility($(this),false)};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;if(pageVersion)ajaxURL+="&version="+pageVersion;$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 if(!$inputfieldRepeater.hasClass("InputfieldRepeaterNoScroll")){$("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").children(".Inputfields").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){if($item.closest(".InputfieldRepeater").hasClass("InputfieldRepeaterNoScroll"))return;$("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(){if(typeof ProcessWire.config.PagesVersions!=="undefined"){pageVersion=ProcessWire.config.PagesVersions.version}$(".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 pageVersion=0;var togglingItemVisibility=false;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")};function toggleItemFamilyVisibility($item,open){var $inputfield=$item.closest(".InputfieldRepeater");if(!$inputfield.hasClass("InputfieldRepeaterFamilyToggle"))return;if(!$inputfield.hasClass("InputfieldRepeaterDepth"))return;if($inputfield.hasClass("InputfieldRepeaterAccordion"))false;var depth=getItemDepth($item);var $nextItem=$item.next(".InputfieldRepeaterItem");if($nextItem.length){var nextDepth=getItemDepth($nextItem);if(nextDepth>depth){togglingItemVisibility=nextDepth;open?Inputfields.open($nextItem):Inputfields.close($nextItem)}else if(nextDepth===depth&&depth>0&&togglingItemVisibility){open?Inputfields.open($nextItem):Inputfields.close($nextItem)}else{togglingItemVisibility=false}}else{togglingItemVisibility=false}}function itemOpenComplete($item){toggleItemFamilyVisibility($item,true)}var eventItemOpened=function(){var $item=$(this);var $loaded=$item.find(".InputfieldRepeaterLoaded");updateState($item);if(parseInt($loaded.val())>0){updateAccordion($item);toggleItemFamilyVisibility($item,true);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");var contextStr=$repeater.attr("data-context");if($repeater.hasClass("InputfieldRenderValueMode"))ajaxURL+="&inrvm=1";if($repeater.hasClass("InputfieldNoDraft"))ajaxURL+="&nodraft=1";if(pageVersion)ajaxURL+="&version="+pageVersion;var iconName=$item.attr("data-icon");if(typeof iconName==="undefined"||!iconName)iconName="fa-arrows";$spinner.removeClass(iconName).addClass("fa-spin fa-spinner");repeaterID=repeaterID.replace(/_repeater\d+$/,"").replace("_LPID"+pageID,"");if(typeof contextStr!=="undefined"&&contextStr.length){repeaterID=repeaterID.replace(contextStr,"")}$.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(iconName);updateAccordion($item)});setTimeout(function(){$inputfields.find(".Inputfield").trigger("reloaded",["InputfieldRepeaterItemEdit"]);itemOpenComplete($item)},50);runScripts(data)})};var eventItemClosed=function(){updateState($(this));toggleItemFamilyVisibility($(this),false)};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;if(pageVersion)ajaxURL+="&version="+pageVersion;$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 if(!$inputfieldRepeater.hasClass("InputfieldRepeaterNoScroll")){$("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").children(".Inputfields").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){if($item.closest(".InputfieldRepeater").hasClass("InputfieldRepeaterNoScroll"))return;$("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(){if(typeof ProcessWire.config.PagesVersions!=="undefined"){pageVersion=ProcessWire.config.PagesVersions.version}$(".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