From 04115a878f6cdb0cc40add31032c0b4845056191 Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Fri, 18 Jun 2021 08:18:37 -0400 Subject: [PATCH] Update for PR #99 --- .../Inputfield/InputfieldPage/InputfieldPage.js | 13 +++++++++++-- .../Inputfield/InputfieldPage/InputfieldPage.min.js | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/wire/modules/Inputfield/InputfieldPage/InputfieldPage.js b/wire/modules/Inputfield/InputfieldPage/InputfieldPage.js index 7e434086..0ae3ac7d 100644 --- a/wire/modules/Inputfield/InputfieldPage/InputfieldPage.js +++ b/wire/modules/Inputfield/InputfieldPage/InputfieldPage.js @@ -123,7 +123,7 @@ function initInputfieldPageDependentSelects($inputfieldPage) { var labelFieldName = $t.attr('data-label'); var formatName = $t.attr('data-formatname'); - var $repeater = $t.closest('.InputfieldRepeaterItem'); + var $repeaterItems = $t.parents('.InputfieldRepeaterItem'); if(!labelFieldName.length) $labelFieldName = 'name'; @@ -138,7 +138,16 @@ function initInputfieldPageDependentSelects($inputfieldPage) { var part = parts[n]; // page matching part of the selector var name = part.replace('=page.', ''); - var $select1 = $repeater.length === 0 ? $('#Inputfield_' + name) : $('#Inputfield_' + name + '_repeater' + $repeater.data('page')); + var $select1 = $('#Inputfield_' + name); // see if available in page editor + + if(!$select1.length && $repeaterItems.length) { + // if not available in page editor, and we are in a repeater, + // see if available in any of the repeaters we are nested within + $repeaterItems.each(function() { + if($select1.length) return; + $select1 = $('#Inputfield_' + name + '_repeater' + $(this).attr('data-page')); + }); + } if($select1.length < 1) continue; diff --git a/wire/modules/Inputfield/InputfieldPage/InputfieldPage.min.js b/wire/modules/Inputfield/InputfieldPage/InputfieldPage.min.js index cb4e3a66..27de5efe 100644 --- a/wire/modules/Inputfield/InputfieldPage/InputfieldPage.min.js +++ b/wire/modules/Inputfield/InputfieldPage/InputfieldPage.min.js @@ -1 +1 @@ -function initInputfieldPage($this){$this.find("p.InputfieldPageAddButton a").click(function(){var $input=$(this).parent("p").next(".InputfieldPageAddItems");if($input.is(":visible"))$input.slideUp("fast").find(":input").val("");else $input.slideDown("fast").parents(".ui-widget-content").slice(0,1).effect("highlight",{},500);return false});initInputfieldPageDependentSelects($this)}function initInputfieldPageDependentSelects($inputfieldPage){function selectChanged($select1,$select2,selector,formatName,labelFieldName,part,changed){var v=$select1.val();if(v==null){if($select2.children().length){$select2.children().remove();$select2.change()}return}v=v.toString();v=v.replace(/,/g,"|");selector=selector.replace(part,"="+v);selector=selector.replace(/,\s*/g,"&");if(selector.indexOf("_LPID"))selector=selector.replace(/_LPID[0-9]+/g,"");var url=ProcessWire.config.urls.admin+"page/search/for?"+selector+"&limit=9999&get="+labelFieldName;if(formatName.length)url+="&format_name="+formatName;$.getJSON(url,{},function(data){var numSelected=0;$select2.children().addClass("option-tbd");for(var n=0;n0)selected=$option.is(":selected")||$option.is(":checked");if(selected)numSelected++;$option.remove();if(formatName.length)label=page[formatName];if(!label.length)label=page[labelFieldName];if(!label.length)label=page.name;$option=$("");if(selected)$option.attr("selected","selected");$select2.append($option)}if(!$select2.attr("multiple")){$blankOption=$("");if(!numSelected)$blankOption.attr("selected","selected");$select2.prepend($blankOption)}$select2.children(".option-tbd").remove();if(changed||$select2.closest(".InputfieldAsmSelect").length){$select2.change()}})}function initSelector($t){var selector=$t.val();if(selector.indexOf("=page.")==-1)return;var labelFieldName=$t.attr("data-label");var formatName=$t.attr("data-formatname");var $repeater=$t.closest(".InputfieldRepeaterItem");if(!labelFieldName.length)$labelFieldName="name";var $wrap=$t.parents(".InputfieldPage");var $select2=$("select#"+$wrap.attr("id").replace(/^wrap_/,""));if($select2.length<1)return;var parts=selector.match(/(=page.[_a-zA-Z0-9]+)/g);for(var n=0;n0)selected=$option.is(":selected")||$option.is(":checked");if(selected)numSelected++;$option.remove();if(formatName.length)label=page[formatName];if(!label.length)label=page[labelFieldName];if(!label.length)label=page.name;$option=$("");if(selected)$option.attr("selected","selected");$select2.append($option)}if(!$select2.attr("multiple")){$blankOption=$("");if(!numSelected)$blankOption.attr("selected","selected");$select2.prepend($blankOption)}$select2.children(".option-tbd").remove();if(changed||$select2.closest(".InputfieldAsmSelect").length){$select2.change()}})}function initSelector($t){var selector=$t.val();if(selector.indexOf("=page.")==-1)return;var labelFieldName=$t.attr("data-label");var formatName=$t.attr("data-formatname");var $repeaterItems=$t.parents(".InputfieldRepeaterItem");if(!labelFieldName.length)$labelFieldName="name";var $wrap=$t.parents(".InputfieldPage");var $select2=$("select#"+$wrap.attr("id").replace(/^wrap_/,""));if($select2.length<1)return;var parts=selector.match(/(=page.[_a-zA-Z0-9]+)/g);for(var n=0;n