diff --git a/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module b/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module index 38aa99d5..6ef06712 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module +++ b/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module @@ -19,6 +19,7 @@ * @property bool|int $groupNotices Whether or not notices should be grouped by type * @property string $inputSize Size for input/select elements. One of "s" for small, "m" for medium (default), or "l" for large. * @property bool|int $ukGrid When true, use uk-width classes for Inputfields (rather than CSS percentages). + * @property int $toggleBehavior (0=Standard, 1=Consistent) * * @method string getUikitCSS() * @@ -78,6 +79,7 @@ class AdminThemeUikit extends AdminThemeFramework implements Module, Configurabl $this->set('layout', ''); $this->set('noBorderTypes', array()); // 'InputfieldCKEditor' is a good one for this $this->set('logoAction', 0); + $this->set('toggleBehavior', 0); $this->set('userLabel', '{Name}'); $this->set('userAvatar', 'icon.user-circle'); $this->set('maxWidth', 1600); @@ -1091,11 +1093,13 @@ class AdminThemeUikit extends AdminThemeFramework implements Module, Configurabl * */ public function getHeadJS() { - - $data = $this->wire('config')->js('adminTheme'); + + $config = $this->wire()->config; + $data = $config->js('adminTheme'); if(!is_array($data)) $data = array(); $data['logoAction'] = (int) $this->logoAction; - $this->wire('config')->js('adminTheme', $data); + $data['toggleBehavior'] = (int) $this->toggleBehavior; + $config->js('adminTheme', $data); return parent::getHeadJS(); } diff --git a/wire/modules/AdminTheme/AdminThemeUikit/_head.php b/wire/modules/AdminTheme/AdminThemeUikit/_head.php index 444100ac..97c4ffd8 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/_head.php +++ b/wire/modules/AdminTheme/AdminThemeUikit/_head.php @@ -14,7 +14,7 @@ if(!defined("PROCESSWIRE")) die(); /** @var Paths $urls */ /** @var string $layout */ -$version = $adminTheme->version . 'e'; +$version = $adminTheme->version . 'f'; $rootUrl = $config->urls->root; $themeUrl = $adminTheme->url(); $styles = $config->styles; diff --git a/wire/modules/AdminTheme/AdminThemeUikit/config.php b/wire/modules/AdminTheme/AdminThemeUikit/config.php index 09a9d526..17049c45 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/config.php +++ b/wire/modules/AdminTheme/AdminThemeUikit/config.php @@ -320,7 +320,25 @@ class AdminThemeUikitConfigHelper extends Wire { } $f->attr('value', $adminTheme->offsetTypes); $fieldset->add($f); - + + /** @var InputfieldRadios $f */ + $f = $modules->get('InputfieldRadios'); + $f->attr('name', 'toggleBehavior'); + $f->label = $this->_('Inputfield label toggle behavior'); + $f->icon = 'eye-slash'; + $f->description = + $this->_('Inputfield elements in ProcessWire can have an open or closed state.') . ' ' . + $this->_('This setting determines what happens when a user clicks any Inputfield label, which appears as a header above the input.') . ' ' . + $this->_('The “Standard” option makes a click of a label on an open Inputfield focus the input element, a standard HTML form behavior.') . ' ' . + $this->_('While a click of a closed Inputfield label will open and then focus the Inputfield (and close it when clicked again).') . ' ' . + $this->_('The “Consistent” option makes the Inputfield label always behave consistently as an open/close toggle, regardless of what state the Inputfield is in.'); + $f->notes = $this->_('Regardless of what setting you choose, the toggle icon in the upper right of each Inputfield always toggles the open/closed state.'); + $f->addOption(0, $this->_('Standard')); + $f->addOption(1, $this->_('Consistent')); + $f->optionColumns = 1; + $f->val($adminTheme->toggleBehavior); + $fieldset->add($f); + /** @var InputfieldCheckboxes $f */ /* $f = $modules->get('InputfieldCheckbox'); diff --git a/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.js b/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.js index 411f21fe..8cfcd50a 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.js +++ b/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.js @@ -840,6 +840,7 @@ var ProcessWireAdminTheme = { }); $('body').addClass('InputfieldColumnWidthsInit'); + Inputfields.toggleBehavior = ProcessWire.config.adminTheme.toggleBehavior; initFormMarkup(); }, diff --git a/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.min.js b/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.min.js index c86b3657..0f4500d2 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.min.js +++ b/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.min.js @@ -1 +1 @@ -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).resize();setTimeout(function(){$("body").removeClass("pw-fake-resize")},100)});$("a.notice-remove","#notices").click(function(){$("#notices").slideUp("fast",function(){$(this).remove()});return false});$("a.pw-logo-link").click(this.logoClickEvent);$("#_ProcessPageEditView").click(function(e){e.stopPropagation()});var resizeTimer=null;$(window).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:eq(0)");$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.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");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).resize();setTimeout(function(){$("body").removeClass("pw-fake-resize")},100)});$("a.notice-remove","#notices").click(function(){$("#notices").slideUp("fast",function(){$(this).remove()});return false});$("a.pw-logo-link").click(this.logoClickEvent);$("#_ProcessPageEditView").click(function(e){e.stopPropagation()});var resizeTimer=null;$(window).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:eq(0)");$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.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 diff --git a/wire/templates-admin/scripts/inputfields.js b/wire/templates-admin/scripts/inputfields.js index c1b2c635..adec526a 100644 --- a/wire/templates-admin/scripts/inputfields.js +++ b/wire/templates-admin/scripts/inputfields.js @@ -148,7 +148,13 @@ var Inputfields = { * Are we currently toggling collapsed state or visibility? * */ - toggling: false, + toggling: false, + + /** + * Toggle behavior (0=standard, 1=consistent) + * + */ + toggleBehavior: 0, /** * Default duration (in MS) for certain visual animations @@ -308,6 +314,28 @@ var Inputfields = { return $inputfield; }, + /** + * Toggle all given $inputfields open or closed + * + * Also triggers these events on each $inputfield: openReady, closeReady, opened, closed + * + * @param object $inputfields jQuery object of one or more Inputfields or selector string that matches Inputfields + * @param bool open Boolean true to open, false to close, or null (or omit) for opposite of current state (default=opposite of current state) + * @param int duration How many milliseconds for animation? (default=100) + * @param function callback Optional function to call upon completion, receives Inputfield object, open and duration as arguments (default=none) + * @returns Returns jQuery object of Inputfields + * @since 3.0.178 + * + */ + toggleAll: function($inputfields, open, duration, callback) { + if(typeof $inputfields === "string") $inputfields = jQuery($inputfields); + var Inputfields = this; + $($inputfields.get().reverse()).each(function(i, el) { + Inputfields.toggle($(el), open, duration, callback); + }); + return $inputfields; + }, + /** * Open a collapsed Inputfield * @@ -2028,7 +2056,7 @@ function InputfieldStates($target) { }); if(isTab) { $header.effect('highlight', 500); - } else { + } else if(Inputfields.toggleBehavior < 1) { $header.click(); } }, 500); @@ -2085,6 +2113,7 @@ function InputfieldStates($target) { var isCollapsed = $li.hasClass("InputfieldStateCollapsed"); var wasCollapsed = $li.hasClass("InputfieldStateWasCollapsed"); var duration = 100; + var isAjax = $li.hasClass('collapsed10') || $li.hasClass('collapsed11'); if(!$li.length) return; if($li.hasClass('InputfieldAjaxLoading')) return false; @@ -2094,13 +2123,16 @@ function InputfieldStates($target) { if(typeof data.duration != "undefined") duration = data.duration; } - if(isCollapsed && ($li.hasClass('collapsed10') || $li.hasClass('collapsed11'))) { + if(isCollapsed && isAjax) { if(InputfieldStateAjaxClick($li)) return false; } if(isCollapsed || wasCollapsed || isIcon) { $li.addClass('InputfieldStateWasCollapsed'); // this class only used here Inputfields.toggle($li, null, duration); + } else if(Inputfields.toggleBehavior === 1) { + // open/close implied by header label click + $icon.click(); } else { // Inputfield not collapsible unless toggle icon clicked, so pulsate the toggle icon and focus any inputs if(typeof jQuery.ui != 'undefined') { diff --git a/wire/templates-admin/scripts/inputfields.min.js b/wire/templates-admin/scripts/inputfields.min.js index ae4fe8a9..e636f85b 100644 --- a/wire/templates-admin/scripts/inputfields.min.js +++ b/wire/templates-admin/scripts/inputfields.min.js @@ -1 +1 @@ -var Inputfields={debug:false,processingIfs:false,toggling:false,defaultDuration:0,init:function($target){InputfieldsInit($target)},toggle:function($inputfield,open,duration,callback){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return $inputfield;var $header=$inputfield.children(".InputfieldHeader, .ui-widget-header");var $content=$inputfield.children(".InputfieldContent, .ui-widget-content");var $toggleIcon=$header.find(".toggle-icon");var isCollapsed=$inputfield.hasClass("InputfieldStateCollapsed");var isAjax=$inputfield.hasClass("collapsed10")||$inputfield.hasClass("collapsed11");var Inputfields=this;var $siblings=null;if($inputfield.hasClass("InputfieldAjaxLoading"))return $inputfield;if($inputfield.hasClass("InputfieldStateToggling"))return $inputfield;if(!isAjax&&!this.toggling&&$inputfield.hasClass("InputfieldColumnWidth")){var $siblings=Inputfields.getAllInRow($inputfield);if($siblings.length<2)$siblings=null}if(typeof open=="undefined"||open===null)open=isCollapsed;if(typeof duration=="undefined")duration=this.defaultDuration;function completed(){if(Inputfields.toggling===$inputfield.prop("id")){if($siblings&&$siblings.length){$siblings.each(function(){Inputfields.toggle(jQuery(this),open,0)})}setTimeout(function(){Inputfields.toggling=false},100);$siblings=null}if(typeof callback!="undefined")callback($inputfield,open,duration)}function toggled(){if($inputfield.css("overflow")=="hidden")$inputfield.css("overflow","");$toggleIcon.toggleClass($toggleIcon.attr("data-to"));$inputfield.removeClass("InputfieldStateToggling");Inputfields.redraw($inputfield,500);completed()}function opened(){$inputfield.trigger("opened",$inputfield);if($inputfield.hasClass("InputfieldColumnWidth")){$inputfield.children(".InputfieldContent").show()}if($inputfield.prop("id")===Inputfields.toggling&&!$inputfield.hasClass("InputfieldNoFocus")){Inputfields.focus($inputfield)}toggled()}function closed(){if($inputfield.css("overflow")=="hidden")$inputfield.css("overflow","");$inputfield.trigger("closed",$inputfield);if($inputfield.hasClass("InputfieldColumnWidth")){$inputfield.children(".InputfieldContent").hide()}toggled()}if(open&&!$inputfield.is(":visible")){var $tabContent=$inputfield.parents(".InputfieldWrapper").last();if($tabContent.length&&!$tabContent.is(":visible")){var $tabButton=jQuery("#_"+$tabContent.attr("id"));if($tabButton.length){$tabContent.show();setTimeout(function(){$tabButton.click()},25)}}var $collapsedParent=$inputfield.closest(".InputfieldStateCollapsed:not([id="+$inputfield.attr("id")+"])");if($collapsedParent.length){Inputfields.toggle($collapsedParent,true,duration,function($in){Inputfields.toggle($in,true,duration,callback)})}}if(open&&!isCollapsed){completed();return $inputfield}if(!open&&isCollapsed){completed();return $inputfield}if(isCollapsed&&isAjax){$toggleIcon.click();return $inputfield}if(!this.toggling)this.toggling=$inputfield.prop("id");if(open&&isCollapsed){$inputfield.addClass("InputfieldStateToggling").trigger("openReady",$inputfield);if(duration&&jQuery.ui){$inputfield.toggleClass("InputfieldStateCollapsed",duration,opened)}else{$inputfield.removeClass("InputfieldStateCollapsed");opened()}}else if(!open&&!isCollapsed){$inputfield.addClass("InputfieldStateToggling").trigger("closeReady",$inputfield);if(duration&&jQuery.ui){$inputfield.toggleClass("InputfieldStateCollapsed",duration,closed)}else{$inputfield.addClass("InputfieldStateCollapsed");closed()}}return $inputfield},open:function($inputfield,duration,callback){return this.toggle($inputfield,true,duration)},close:function($inputfield,duration,callback){return this.toggle($inputfield,false,duration)},show:function($inputfield){$inputfield=this.inputfield($inputfield);if(!this.hidden($inputfield))return $inputfield;$inputfield.removeClass("InputfieldStateHidden").show();jQuery(document).trigger("showInputfield",$inputfield);this.redraw(null,50);return $inputfield},hide:function($inputfield){$inputfield=this.inputfield($inputfield);if(this.hidden($inputfield))return $inputfield;$inputfield.addClass("InputfieldStateHidden").hide();jQuery(document).trigger("hideInputfield",$inputfield);this.redraw(null,50);return $inputfield},redraw:function($target,delay){if(typeof delay=="undefined")delay=0;setTimeout(function(){if(typeof $target!="undefined"&&$target&&$target.length){if($target.hasClass("Inputfield"))$target=$target.closest("Inputfields");InputfieldColumnWidths($target)}else{InputfieldColumnWidths()}jQuery(window).resize()},delay)},reload:function($inputfield,callback){$inputfield=this.inputfield($inputfield);if($inputfield.length){if(typeof callback!="undefined")$inputfield.one("reloaded",callback);$inputfield.trigger("reload")}return $inputfield},focus:function($inputfield,callback){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return $inputfield;var Inputfields=this;if($inputfield.hasClass("InputfieldStateCollapsed")||!$inputfield.is(":visible")){Inputfields.toggle($inputfield,true,0,function($in,open,duration){Inputfields.focus($in,callback)});return $inputfield}var $input;var focused=false;var showOnly=false;if($inputfield.hasClass("InputfieldNoFocus")){showOnly=true}if(showOnly){$input=jQuery([])}else{$input=$inputfield.find(":input:visible:enabled:not(button):not(.InputfieldNoFocus):first");if($input.css("position")=="absolute"||$input.is("button"))$input=jQuery([])}if($input.length){var t=$input.attr("type");if($input.is("textarea")||t=="text"||t=="email"||t=="url"||t=="number"){$input.focus();focused=true}}if(focused){if(typeof callback!="undefined")callback($inputfield)}else if(!this.inView($inputfield)){Inputfields.find($inputfield,false,callback)}return $inputfield},find:function($inputfield,highlight,callback,level){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return $inputfield;if(typeof highlight=="undefined")highlight=true;if(typeof level=="undefined")level=0;if($inputfield.hasClass("InputfieldStateCollapsed")||!$inputfield.is(":visible")){var hasNoFocus=$inputfield.hasClass("InputfieldNoFocus");if(!hasNoFocus)$inputfield.addClass("InputfieldNoFocus");this.toggle($inputfield,true,0,function($in,open,duration){if(level>9)return;var timeout=level>0?10*level:0;setTimeout(function(){Inputfields.find($inputfield,highlight,callback,level+1)},timeout)});if(!hasNoFocus)$inputfield.removeClass("InputfieldNoFocus");return $inputfield}var completed=function(){if(highlight)Inputfields.highlight($inputfield);if(typeof callback!="undefined")callback($inputfield)};setTimeout(function(){if(false&&Inputfields.inView($inputfield)){completed()}else{var properties={scrollTop:$inputfield.offset().top-10};var options={duration:100,complete:completed};jQuery("html, body").animate(properties,options)}},100);return $inputfield},highlight:function($inputfield,duration,cls){$inputfield=this.inputfield($inputfield);if(typeof cls=="undefined"){cls=$inputfield.hasClass("InputfieldIsHighlight")?"InputfieldIsPrimary":"InputfieldIsHighlight"}if(typeof duration=="undefined"){duration=1e3}$inputfield.addClass(cls);if(duration>0){setTimeout(function(){$inputfield.removeClass(cls)},duration)}return $inputfield},inView:function($inputfield){$inputfield=this.inputfield($inputfield);if(!$inputfield.is(":visible"))return false;var pageTop=jQuery(window).scrollTop();var pageBottom=pageTop+jQuery(window).height();var inputTop=$inputfield.offset().top;var inputBottom=inputTop+$inputfield.height();var inView=inputTop<=pageBottom&&inputBottom>=pageTop;return inView},columnWidth:function($inputfield,value){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return 0;if(typeof value!="undefined"&&value){if(value>100||value<1)value=100;if(value<100&&!$inputfield.hasClass("InputfieldColumnWidth")){$inputfield.addClass("InputfieldColumnWidth")}var w=this.columnWidth($inputfield);if(w!=value){if(!$inputfield.attr("data-original-width")){$inputfield.attr("data-original-width",w)}$inputfield.attr("data-colwidth",value);$inputfield.trigger("columnWidth",value)}return $inputfield}else{if(!$inputfield.hasClass("InputfieldColumnWidth"))return 100;var pct=$inputfield.attr("data-colwidth");if(typeof pct=="undefined"||!pct.length){var style=$inputfield.attr("style");if(typeof style=="undefined"||!style)return 100;pct=parseInt(style.match(/width:\s*(\d+)/i)[1])}else{pct=parseInt(pct)}if(!$inputfield.attr("data-original-width")){$inputfield.attr("data-original-width",pct)}if(pct<1)pct=100;return pct}},startSpinner:function($inputfield){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return;var id=$inputfield.attr("id")+"-spinner";var $spinner=$("#"+id);var $header=$inputfield.children(".InputfieldHeader");if(!$spinner.length){$spinner=$("");$spinner.attr("id",id)}$spinner.css({float:"right",marginRight:"30px",marginTop:"3px"});$header.append($spinner.hide());$spinner.fadeIn()},stopSpinner:function($inputfield){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return;var $spinner=$("#"+$inputfield.attr("id")+"-spinner");if($spinner.length)$spinner.fadeOut("fast",function(){$spinner.remove()})},hidden:function($inputfield){$inputfield=this.inputfield($inputfield);return $inputfield.hasClass("InputfieldStateHidden")},changed:function($inputfield,value){$inputfield=this.inputfield($inputfield);if($inputfield.hasClass("InputfieldIgnoreChanges"))return false;var changed=$inputfield.hasClass("InputfieldStateChanged");if(typeof value=="undefined")return changed;if(value&&!changed){$inputfield.addClass("InputfieldStateChanged").trigger("change");return true}else if(changed){$inputfield.removeClass("InputfieldStateChanged");return false}},name:function($inputfield){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return"";var name=$inputfield.attr("data-name");if(typeof name!="undefined"&&name&&name.length)return name;name="";var id=$inputfield.prop("id");if(id.indexOf("wrap_Inputfield_")===0){name=id.replace("wrap_Inputfield_","")}else if(id.indexOf("wrap_")===0){name=id.substring(5)}else{var classes=$inputfield.attr("class").split(" ");for(var n=0;n99)return jQuery([]);var $col=this.getFirstInRow($inputfield);var sel="";while($col.length){if($col.hasClass("InputfieldStateHidden")&&!andHidden){}else if(andSelf||$col.prop("id")!==$inputfield.prop("id")){sel+=(sel.length?",":"")+"#"+$col.prop("id")}$col=$col.next(".InputfieldColumnWidth");if($col.hasClass("InputfieldColumnWidthFirst"))break}return sel.length?jQuery(sel):$inputfield},getAllInRow:function($inputfield,andHidden){if(typeof andHidden==="undefined")andHidden=false;return this.getSiblingsInRow($inputfield,true,andHidden)}};function consoleLog(note){if(Inputfields.debug)console.log(note)}function InputfieldDependencies($target){var $=jQuery;if(Inputfields.processingIfs)return;if(typeof $target=="undefined"){$target=$(".InputfieldForm:not(.InputfieldFormNoDependencies)")}else if($target.hasClass("InputfieldForm")){if($target.hasClass("InputfieldFormNoDependencies"))return}else{if($target.closest(".InputfieldFormNoDependencies").length>0)return}function trimValue(value){value=jQuery.trim(value);var first=value.substring(0,1);var last=value.substring(value.length-1,value.length);if((first=='"'||first=="'")&&first==last)value=value.substring(1,value.length-1);return value}function trimParseValue(value){return parseValue(trimValue(value))}function extractFieldAndSubfield(field){var subfield="";var dot=field.indexOf(".");if(dot>0){subfield=field.substring(dot+1);field=field.substring(0,dot)}return{field:field,subfield:subfield}}function parseValue(str,str2){str=jQuery.trim(str);if(str.length>0&&!jQuery.isNumeric(str)){return str}if(str.length==0){var t=typeof str2;if(t!="undefined"){if(t=="integer")return 0;if(t=="float")return 0;return str}else{return str}}var dot1=str.indexOf(".");var dot2=str.lastIndexOf(".");if(dot1==-1&&/^-?\d+$/.test(str)){return parseInt(str)}if(dot2>-1&&dot1!=dot2){return str}if(/^-?[\d.]+$/.test(str)){return parseFloat(str)}return str}function matchValue(field,operator,value,conditionValue){var matched=0;switch(operator){case"=":if(value==conditionValue)matched++;break;case"!=":if(value!=conditionValue)matched++;break;case">":if(value>conditionValue)matched++;break;case"<":if(value=":if(value>=conditionValue)matched++;break;case"<=":if(value<=conditionValue)matched++;break;case"*=":case"%=":if(value.indexOf(conditionValue)>-1)matched++;break}consoleLog("Field "+field+" - Current value: "+value);consoleLog("Field "+field+" - Matched? "+(matched>0?"YES":"NO"));return matched}function getCheckboxFieldAndValue(condition,conditionField,conditionSubfield){var $field=null;var value;consoleLog("getCheckboxFieldAndValue(see-next-line, "+conditionField+", "+conditionSubfield+")");consoleLog(condition);if(conditionSubfield=="count"||conditionSubfield=="count-checkbox"){consoleLog("Using count checkbox condition");$field=$("#wrap_Inputfield_"+conditionField+" :input");if($field.length){value=$("#wrap_Inputfield_"+conditionField+" :checked").length;condition.subfield="count-checkbox";return{field:$field,value:value,condition:condition}}return null}consoleLog("Using checkbox value or label comparison option");value=[];for(var i=0;i0)consoleLog("Subfield: "+condition.subfield);consoleLog("Operator: "+condition.operator);consoleLog("Required value: "+condition.value)}var matched=0;for(var fn=0;fn-1&&value.match(/^[,0-9]+$/)){values=value.split(",")}else{values[0]=value}var numMatchesRequired=1;if(condition.operator=="!=")numMatchesRequired=values.length*condition.values.length;if(($field.attr("type")=="checkbox"||$field.attr("type")=="radio")&&!$field.is(":checked")){if($("#Inputfield_"+conditionField+"_0").length==0){values[1]="0"}}for(var n=0;n=numMatchesRequired)break}consoleLog("----");if(condition.type=="show"){if(matched>=numMatchesRequired){}else{show=false}}else if(condition.type=="required"){if(matched>0){requiredMatches++}else{notRequiredMatches++}}}var required=requiredMatches>0&¬RequiredMatches==0;if(show){consoleLog('Determined that field "'+fieldNameToShow+'" should be visible.');if(Inputfields.hidden($fieldToShow)){Inputfields.show($fieldToShow);numVisibilityChanges++;consoleLog("Field is now visible.")}else{consoleLog("Field is already visible.")}}else{consoleLog('Determined that field "'+fieldNameToShow+'" should be hidden.');if(Inputfields.hidden($fieldToShow)){consoleLog("Field is already hidden.")}else{Inputfields.hide($fieldToShow);consoleLog("Field is now hidden.");numVisibilityChanges++}if(required){consoleLog("Field is required but cancelling that since it is not visible.");required=false}}if(required&&requiredMatches>0){consoleLog('Determined that field "'+fieldNameToShow+'" should be required.');$fieldToShow.addClass("InputfieldStateRequired").find(":input:visible[type!=hidden]").addClass("required")}else if(!required&¬RequiredMatches>0){consoleLog('Determined that field "'+fieldNameToShow+'" should not be required.');$fieldToShow.removeClass("InputfieldStateRequired").find(":input.required").removeClass("required")}if(numVisibilityChanges>0){consoleLog(numVisibilityChanges+" visibility changes were made.")}Inputfields.processingIfs=false}function setupConditions(conditionType,conditions,$fieldToShow){var selector=$fieldToShow.attr("data-"+conditionType+"-if");if(!selector||selector.length<1){return conditions}selector=$("
        ").html(selector).text();consoleLog("-------------------------------------------------------------------");consoleLog('Analyzing "'+conditionType+'" selector: '+selector);var fieldNameToShow=$fieldToShow.attr("id").replace("wrap_Inputfield_","");var parts=selector.match(/(^|,)([^,]+)/g);for(var n=0;n=|<|>|%=)([^,]+),?$/);if(!match)continue;var field=match[1];var operator=match[2];var value=match[3];var subfield="";var fields=[];var values=[];if(field.indexOf("|")>-1){consoleLog("OR field dependency: "+field);fields=field.split("|")}else{fields=[field]}var fieldAndSubfield=extractFieldAndSubfield(field);field=fieldAndSubfield.field;subfield=fieldAndSubfield.subfield;if(Inputfields.debug){consoleLog("Field: "+field);if(subfield.length)consoleLog("Subfield: "+subfield);consoleLog("Operator: "+operator);consoleLog("value: "+value)}if(value.indexOf("|")>-1){consoleLog("OR value dependency: "+value);values=value.split("|");for(var i=0;i> "+maxColHeight+" ("+h+")");if(h==maxColHeight)return;if($item.hasClass("InputfieldStateCollapsed"))return;var pad=maxColHeight-h;if(pad<0)pad=0;var $container=$item.children(".InputfieldContent, .ui-widget-content");if(pad==0){}else{consoleLog("Adjusting "+$item.attr("id")+" from "+h+" to "+maxColHeight);var $spacer=$("
        ");$container.append($spacer);$spacer.height(pad)}}function updateInputfieldRow($firstItem){var $items=$firstItem.nextUntil(".InputfieldColumnWidthFirst",".InputfieldColumnWidth:not(.InputfieldStateHidden)");var firstItemHidden=$firstItem.hasClass("InputfieldStateHidden");var rowWidth=firstItemHidden?0:getWidth($firstItem);var $item=firstItemHidden?null:$firstItem;var itemWidth=$item==null?0:rowWidth;var numItems=$items.length;var $leadItem;if(firstItemHidden){numItems--;$leadItem=$items.eq(0)}else{$leadItem=$firstItem}if(useHeights){$leadItem.find(".maxColHeightSpacer").remove();$items.find(".maxColHeightSpacer").remove()}var maxRowWidth=100-numItems*colspacing;var maxColHeight=useHeights?getHeight($leadItem):0;$items.removeClass("InputfieldColumnWidthFirstTmp");$items.each(function(){$item=$(this);itemWidth=getWidth($item);rowWidth+=itemWidth;if(useHeights){var h=getHeight($item);if(h>maxColHeight)maxColHeight=h}});if(useHeights){if(Inputfields.debug){var lab=$leadItem.find("label").text();consoleLog("maxColHeight: "+lab+" = "+maxColHeight)}if(maxColHeight>0){setHeight($leadItem,maxColHeight);$items.each(function(){setHeight($(this),maxColHeight)})}}var originalWidth=0;var leftoverWidth=0;if(rowWidth0&&itemWidthmaxRowWidth){consoleLog("Reduce width of row because rowWidth > maxRowWidth ("+rowWidth+" > "+maxRowWidth+")");if(!firstItemHidden)$items=$firstItem.add($items);rowWidth=0;$items.each(function(){$item=$(this);itemWidth=getOriginalWidth($item);if(itemWidth>0)setWidth($item,itemWidth,false);rowWidth+=itemWidth});leftoverWidth=maxRowWidth-rowWidth;itemWidth+=leftoverWidth;originalWidth=getOriginalWidth($item);if(originalWidth>0&&itemWidth");var offset=$header.offset();var interval;var maxRuns=10;var runs=0;var hAdjust=.8;$("body").append($spinner.hide());if($header.is("a")&&$header.closest("ul").hasClass("uk-tab"))hAdjust=.1;$spinner.css({position:"absolute",top:offset.top-($spinner.height()+5),left:offset.left+$header.width()/2+$spinner.width()*hAdjust}).fadeIn();interval=setInterval(function(){if(++runs>maxRuns||!$li.hasClass("InputfieldAjaxLoading")){clearInterval(interval);$spinner.fadeOut("normal",function(){$spinner.remove()})}},500)}var $parent=$li.children(".InputfieldContent").children(".renderInputfieldAjax");var isTab=false;if(!$parent.length){$parent=$li.children(".renderInputfieldAjax");isTab=true}var ajaxURL=$parent.children("input").attr("value");if(typeof ajaxURL=="undefined"||ajaxURL.length<1)return false;var $spinner=null;var $header;if(isTab){$header=$("#_"+$li.attr("id"));headerHighlightEffect($header,$li)}else{$header=$li.children(".InputfieldHeader");$spinner=$("");$spinner.css("margin-left","0.5em");$header.append($spinner)}$li.removeClass("collapsed10 collapsed11").addClass("InputfieldAjaxLoading");$.get(ajaxURL,function(data){$li.removeClass("InputfieldAjaxLoading InputfieldStateCollapsed");var $icon=$li.children(".InputfieldHeader").find(".toggle-icon");if($icon.length)$icon.toggleClass($icon.attr("data-to"));$parent.replaceWith($(data)).hide();$parent.slideDown();var $inputfields=$li.find(".Inputfield");if($inputfields.length){$inputfields.trigger("reloaded",["InputfieldAjaxLoad"]);InputfieldStates($li);InputfieldRequirements($li);InputfieldColumnWidths()}else{$li.trigger("reloaded",["InputfieldAjaxLoad"]);InputfieldColumnWidths()}if($li.closest(".InputfieldFormNoDependencies").length==0){InputfieldDependencies($li.parent())}setTimeout(function(){if($spinner)$spinner.fadeOut("fast",function(){$spinner.remove()});if(isTab){$header.effect("highlight",500)}else{$header.click()}},500)},"html");return true}$(".Inputfield:not(.collapsed9) > .InputfieldHeader, .Inputfield:not(.collapsed9) > .ui-widget-header",$target).addClass("InputfieldStateToggle");var $icon=$(".Inputfields .InputfieldStateCollapsed > .InputfieldHeader i.toggle-icon, .Inputfields .InputfieldStateCollapsed > .ui-widget-header i.toggle-icon",$target);$icon.toggleClass($icon.attr("data-to"));if(typeof ProcessWire!="undefined"){var config=ProcessWire.config}if(typeof config!=="undefined"&&config.debug){$(".InputfieldHeader > i.toggle-icon",$target).hover(function(){var $label=$(this).parent("label");if($label.length==0)return;var forId=$label.attr("for");if(!forId)forId=$label.parent().attr("id");if(!forId)return;var text=forId.replace(/^Inputfield_|wrap_Inputfield_|wrap_/,"");if(text.length){var $tip=$(" "+text+" ");$tip.css("float","right");$label.append($tip)}},function(){var $label=$(this).parent("label");if($label.length==0)return;$label.find(".InputfieldNameTip").remove()})}if(hasTarget)return;$(document).on("wiretabclick",function(e,$newTab,$oldTab){if($newTab.hasClass("collapsed10"))InputfieldStateAjaxClick($newTab)});$(document).on("click",".InputfieldStateToggle, .toggle-icon",function(event,data){var $t=$(this);var $li=$t.closest(".Inputfield");var isIcon=$t.hasClass("toggle-icon");var $icon=isIcon?$t:$li.children(".InputfieldHeader, .ui-widget-header").find(".toggle-icon");var isCollapsed=$li.hasClass("InputfieldStateCollapsed");var wasCollapsed=$li.hasClass("InputfieldStateWasCollapsed");var duration=100;if(!$li.length)return;if($li.hasClass("InputfieldAjaxLoading"))return false;if($li.hasClass("InputfieldStateToggling"))return false;if(typeof data!="undefined"){if(typeof data.duration!="undefined")duration=data.duration}if(isCollapsed&&($li.hasClass("collapsed10")||$li.hasClass("collapsed11"))){if(InputfieldStateAjaxClick($li))return false}if(isCollapsed||wasCollapsed||isIcon){$li.addClass("InputfieldStateWasCollapsed");Inputfields.toggle($li,null,duration)}else{if(typeof jQuery.ui!="undefined"){var color1=$icon.css("color");var color2=$li.children(".InputfieldHeader, .ui-widget-header").css("color");$icon.css("color",color2);$icon.effect("pulsate",300,function(){$icon.css("color",color1)})}Inputfields.focus($li)}return false});var $focusInputs=$("input.InputfieldFocusFirst");if(!$focusInputs.length){$focusInputs=$("#content .InputfieldFormFocusFirst:not(.InputfieldFormNoFocus)").find("input[type=text]:enabled:first:not(.hasDatepicker):not(.InputfieldNoFocus)")}if($focusInputs.length)$focusInputs.each(function(){var $t=$(this);if($t.val())return;if($t.offset().top<$(window).height()){window.setTimeout(function(){if($t.is(":visible"))$t.focus()},250)}});$(document).on("change",".InputfieldFormConfirm :input, .InputfieldFormConfirm .Inputfield",function(){var $this=$(this);if($this.hasClass("Inputfield")){if(!$this.hasClass("InputfieldIgnoreChanges"))$this.addClass("InputfieldStateChanged");return false}else{if($this.hasClass("InputfieldIgnoreChanges")||$this.closest(".InputfieldIgnoreChanges").length)return false;$this.closest(".Inputfield").addClass("InputfieldStateChanged")}});$(document).on("submit",".InputfieldFormConfirm",function(){$(this).addClass("InputfieldFormSubmitted")});$(document).on("dragenter",".InputfieldHasUpload.InputfieldStateCollapsed",function(e){var dt=e.originalEvent.dataTransfer;if(dt.types&&(dt.types.indexOf?dt.types.indexOf("Files")!==-1:dt.types.contains("Files"))){InputfieldOpen($(this))}});window.addEventListener("beforeunload",InputfieldFormBeforeUnloadEvent)}function InputfieldIntentions(){var $=jQuery;$(".InputfieldForm").each(function(){var $form=$(this);var numButtons=null;var $input=null;$form.submit(function(){if(!$(this).hasClass("nosubmit"))return;if(!$input)return;var $buttons=null;var $inputfields=$input.closest(".Inputfields");do{$buttons=$inputfields.find("input[type=submit]:visible, button[type=submit]:visible");if($buttons.length>0)break;$inputfields=$inputfields.parent().closest(".Inputfields")}while($inputfields.length>0);if($buttons.length>0){var $button=$buttons.eq(0);$("html, body").animate({scrollTop:$button.offset().top},"fast");$button.focus()}return false}).on("focus","input, select",function(){if(numButtons===null)numButtons=$form.find("input[type=submit], button[type=submit]").length;if(numButtons<2)return;$form.addClass("nosubmit");$input=$(this)}).on("blur","input, select",function(){$form.removeClass("nosubmit")})});if($("input[type=file]").length){$(document).on({dragover:function(){if($(this).is("input[type=file]"))return;return false},drop:function(){if($(this).is("input[type=file]"))return;return false}})}}var InputfieldWindowResizeQueued=false;function InputfieldWindowResizeActions1(){consoleLog("InputfieldWindowResizeActions1()");jQuery(".Inputfield").trigger("resized")}function InputfieldWindowResizeActions2(){consoleLog("InputfieldWindowResizeActions2()");InputfieldColumnWidths();InputfieldWindowResizeQueued=false}function InputfieldRequirements($target){jQuery(":input[required]",$target).on("invalid",function(){var $input=jQuery(this);Inputfields.focus($input)})}function InputfieldReloadEvent(event,extraData){var $t=$(this);var $form=$t.closest("form");var fieldName=$t.attr("id").replace("wrap_Inputfield_","");var fnsx="";var url=$form.attr("action");if(fieldName.indexOf("_repeater")>0){var $repeaterItem=$t.closest(".InputfieldRepeaterItem");var pageID=$repeaterItem.attr("data-page");url=url.replace(/\?id=\d+/,"?id="+pageID);fnsx=$repeaterItem.attr("data-fnsx");fieldName=fieldName.replace(/_repeater\d+$/,"")}url+=url.indexOf("?")>-1?"&":"?";url+="field="+fieldName+"&reloadInputfieldAjax="+fieldName;if(fnsx.length)url+="&fnsx="+fnsx;if(typeof extraData!="undefined"){if(typeof extraData["queryString"]!="undefined"){url+="&"+extraData["queryString"]}}consoleLog("Inputfield reload: "+fieldName);$.get(url,function(data){var id=$t.attr("id");var $content=jQuery(data).find("#"+id).children(".InputfieldContent");if(!$content.length&&id.indexOf("_repeater")>-1){id="wrap_Inputfield_"+fieldName;$content=jQuery(data).find("#"+id).children(".InputfieldContent");if(!$content.length){console.log("Unable to find #"+$t.attr("id")+" in response from "+url)}}$t.children(".InputfieldContent").html($content.html());$t.trigger("reloaded",["reload"])});event.stopPropagation()}function InputfieldsInit($target){InputfieldStates($target);InputfieldDependencies($target);InputfieldRequirements($target);setTimeout(function(){InputfieldColumnWidths()},100)}jQuery(document).ready(function($){InputfieldStates();InputfieldDependencies($(".InputfieldForm:not(.InputfieldFormNoDependencies)"));InputfieldIntentions();setTimeout(function(){InputfieldColumnWidths()},100);var windowResized=function(){if(InputfieldWindowResizeQueued)return;InputfieldWindowResizeQueued=true;setTimeout("InputfieldWindowResizeActions1()",1e3);setTimeout("InputfieldWindowResizeActions2()",2e3)};$(window).resize(windowResized);$("ul.WireTabs > li > a").click(function(){if(InputfieldWindowResizeQueued)return;InputfieldWindowResizeQueued=true;setTimeout("InputfieldWindowResizeActions1()",250);setTimeout("InputfieldWindowResizeActions2()",500);return true});InputfieldRequirements($(".InputfieldForm"));$(document).on("reload",".Inputfield",InputfieldReloadEvent);if($(".InputfieldForm:not(.InputfieldFormNoWidths)").length){$(document).on("change",".InputfieldColumnWidth :input",function(){InputfieldColumnWidths();setTimeout(InputfieldColumnWidths,300)});$(document).on("AjaxUploadDone",".InputfieldFileList",function(){InputfieldColumnWidths()});$(document).on("heightChanged",".InputfieldColumnWidth",function(){InputfieldColumnWidths()})}if(window.location.hash){Inputfields.hashAction(window.location.hash.substring(1))}}); \ No newline at end of file +var Inputfields={debug:false,processingIfs:false,toggling:false,toggleBehavior:0,defaultDuration:0,init:function($target){InputfieldsInit($target)},toggle:function($inputfield,open,duration,callback){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return $inputfield;var $header=$inputfield.children(".InputfieldHeader, .ui-widget-header");var $content=$inputfield.children(".InputfieldContent, .ui-widget-content");var $toggleIcon=$header.find(".toggle-icon");var isCollapsed=$inputfield.hasClass("InputfieldStateCollapsed");var isAjax=$inputfield.hasClass("collapsed10")||$inputfield.hasClass("collapsed11");var Inputfields=this;var $siblings=null;if($inputfield.hasClass("InputfieldAjaxLoading"))return $inputfield;if($inputfield.hasClass("InputfieldStateToggling"))return $inputfield;if(!isAjax&&!this.toggling&&$inputfield.hasClass("InputfieldColumnWidth")){var $siblings=Inputfields.getAllInRow($inputfield);if($siblings.length<2)$siblings=null}if(typeof open=="undefined"||open===null)open=isCollapsed;if(typeof duration=="undefined")duration=this.defaultDuration;function completed(){if(Inputfields.toggling===$inputfield.prop("id")){if($siblings&&$siblings.length){$siblings.each(function(){Inputfields.toggle(jQuery(this),open,0)})}setTimeout(function(){Inputfields.toggling=false},100);$siblings=null}if(typeof callback!="undefined")callback($inputfield,open,duration)}function toggled(){if($inputfield.css("overflow")=="hidden")$inputfield.css("overflow","");$toggleIcon.toggleClass($toggleIcon.attr("data-to"));$inputfield.removeClass("InputfieldStateToggling");Inputfields.redraw($inputfield,500);completed()}function opened(){$inputfield.trigger("opened",$inputfield);if($inputfield.hasClass("InputfieldColumnWidth")){$inputfield.children(".InputfieldContent").show()}if($inputfield.prop("id")===Inputfields.toggling&&!$inputfield.hasClass("InputfieldNoFocus")){Inputfields.focus($inputfield)}toggled()}function closed(){if($inputfield.css("overflow")=="hidden")$inputfield.css("overflow","");$inputfield.trigger("closed",$inputfield);if($inputfield.hasClass("InputfieldColumnWidth")){$inputfield.children(".InputfieldContent").hide()}toggled()}if(open&&!$inputfield.is(":visible")){var $tabContent=$inputfield.parents(".InputfieldWrapper").last();if($tabContent.length&&!$tabContent.is(":visible")){var $tabButton=jQuery("#_"+$tabContent.attr("id"));if($tabButton.length){$tabContent.show();setTimeout(function(){$tabButton.click()},25)}}var $collapsedParent=$inputfield.closest(".InputfieldStateCollapsed:not([id="+$inputfield.attr("id")+"])");if($collapsedParent.length){Inputfields.toggle($collapsedParent,true,duration,function($in){Inputfields.toggle($in,true,duration,callback)})}}if(open&&!isCollapsed){completed();return $inputfield}if(!open&&isCollapsed){completed();return $inputfield}if(isCollapsed&&isAjax){$toggleIcon.click();return $inputfield}if(!this.toggling)this.toggling=$inputfield.prop("id");if(open&&isCollapsed){$inputfield.addClass("InputfieldStateToggling").trigger("openReady",$inputfield);if(duration&&jQuery.ui){$inputfield.toggleClass("InputfieldStateCollapsed",duration,opened)}else{$inputfield.removeClass("InputfieldStateCollapsed");opened()}}else if(!open&&!isCollapsed){$inputfield.addClass("InputfieldStateToggling").trigger("closeReady",$inputfield);if(duration&&jQuery.ui){$inputfield.toggleClass("InputfieldStateCollapsed",duration,closed)}else{$inputfield.addClass("InputfieldStateCollapsed");closed()}}return $inputfield},toggleAll:function($inputfields,open,duration,callback){if(typeof $inputfields==="string")$inputfields=jQuery($inputfields);var Inputfields=this;$($inputfields.get().reverse()).each(function(i,el){Inputfields.toggle($(el),open,duration,callback)});return $inputfields},open:function($inputfield,duration,callback){return this.toggle($inputfield,true,duration)},close:function($inputfield,duration,callback){return this.toggle($inputfield,false,duration)},show:function($inputfield){$inputfield=this.inputfield($inputfield);if(!this.hidden($inputfield))return $inputfield;$inputfield.removeClass("InputfieldStateHidden").show();jQuery(document).trigger("showInputfield",$inputfield);this.redraw(null,50);return $inputfield},hide:function($inputfield){$inputfield=this.inputfield($inputfield);if(this.hidden($inputfield))return $inputfield;$inputfield.addClass("InputfieldStateHidden").hide();jQuery(document).trigger("hideInputfield",$inputfield);this.redraw(null,50);return $inputfield},redraw:function($target,delay){if(typeof delay=="undefined")delay=0;setTimeout(function(){if(typeof $target!="undefined"&&$target&&$target.length){if($target.hasClass("Inputfield"))$target=$target.closest("Inputfields");InputfieldColumnWidths($target)}else{InputfieldColumnWidths()}jQuery(window).resize()},delay)},reload:function($inputfield,callback){$inputfield=this.inputfield($inputfield);if($inputfield.length){if(typeof callback!="undefined")$inputfield.one("reloaded",callback);$inputfield.trigger("reload")}return $inputfield},focus:function($inputfield,callback){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return $inputfield;var Inputfields=this;if($inputfield.hasClass("InputfieldStateCollapsed")||!$inputfield.is(":visible")){Inputfields.toggle($inputfield,true,0,function($in,open,duration){Inputfields.focus($in,callback)});return $inputfield}var $input;var focused=false;var showOnly=false;if($inputfield.hasClass("InputfieldNoFocus")){showOnly=true}if(showOnly){$input=jQuery([])}else{$input=$inputfield.find(":input:visible:enabled:not(button):not(.InputfieldNoFocus):first");if($input.css("position")=="absolute"||$input.is("button"))$input=jQuery([])}if($input.length){var t=$input.attr("type");if($input.is("textarea")||t=="text"||t=="email"||t=="url"||t=="number"){$input.focus();focused=true}}if(focused){if(typeof callback!="undefined")callback($inputfield)}else if(!this.inView($inputfield)){Inputfields.find($inputfield,false,callback)}return $inputfield},find:function($inputfield,highlight,callback,level){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return $inputfield;if(typeof highlight=="undefined")highlight=true;if(typeof level=="undefined")level=0;if($inputfield.hasClass("InputfieldStateCollapsed")||!$inputfield.is(":visible")){var hasNoFocus=$inputfield.hasClass("InputfieldNoFocus");if(!hasNoFocus)$inputfield.addClass("InputfieldNoFocus");this.toggle($inputfield,true,0,function($in,open,duration){if(level>9)return;var timeout=level>0?10*level:0;setTimeout(function(){Inputfields.find($inputfield,highlight,callback,level+1)},timeout)});if(!hasNoFocus)$inputfield.removeClass("InputfieldNoFocus");return $inputfield}var completed=function(){if(highlight)Inputfields.highlight($inputfield);if(typeof callback!="undefined")callback($inputfield)};setTimeout(function(){if(false&&Inputfields.inView($inputfield)){completed()}else{var properties={scrollTop:$inputfield.offset().top-10};var options={duration:100,complete:completed};jQuery("html, body").animate(properties,options)}},100);return $inputfield},highlight:function($inputfield,duration,cls){$inputfield=this.inputfield($inputfield);if(typeof cls=="undefined"){cls=$inputfield.hasClass("InputfieldIsHighlight")?"InputfieldIsPrimary":"InputfieldIsHighlight"}if(typeof duration=="undefined"){duration=1e3}$inputfield.addClass(cls);if(duration>0){setTimeout(function(){$inputfield.removeClass(cls)},duration)}return $inputfield},inView:function($inputfield){$inputfield=this.inputfield($inputfield);if(!$inputfield.is(":visible"))return false;var pageTop=jQuery(window).scrollTop();var pageBottom=pageTop+jQuery(window).height();var inputTop=$inputfield.offset().top;var inputBottom=inputTop+$inputfield.height();var inView=inputTop<=pageBottom&&inputBottom>=pageTop;return inView},columnWidth:function($inputfield,value){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return 0;if(typeof value!="undefined"&&value){if(value>100||value<1)value=100;if(value<100&&!$inputfield.hasClass("InputfieldColumnWidth")){$inputfield.addClass("InputfieldColumnWidth")}var w=this.columnWidth($inputfield);if(w!=value){if(!$inputfield.attr("data-original-width")){$inputfield.attr("data-original-width",w)}$inputfield.attr("data-colwidth",value);$inputfield.trigger("columnWidth",value)}return $inputfield}else{if(!$inputfield.hasClass("InputfieldColumnWidth"))return 100;var pct=$inputfield.attr("data-colwidth");if(typeof pct=="undefined"||!pct.length){var style=$inputfield.attr("style");if(typeof style=="undefined"||!style)return 100;pct=parseInt(style.match(/width:\s*(\d+)/i)[1])}else{pct=parseInt(pct)}if(!$inputfield.attr("data-original-width")){$inputfield.attr("data-original-width",pct)}if(pct<1)pct=100;return pct}},startSpinner:function($inputfield){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return;var id=$inputfield.attr("id")+"-spinner";var $spinner=$("#"+id);var $header=$inputfield.children(".InputfieldHeader");if(!$spinner.length){$spinner=$("");$spinner.attr("id",id)}$spinner.css({float:"right",marginRight:"30px",marginTop:"3px"});$header.append($spinner.hide());$spinner.fadeIn()},stopSpinner:function($inputfield){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return;var $spinner=$("#"+$inputfield.attr("id")+"-spinner");if($spinner.length)$spinner.fadeOut("fast",function(){$spinner.remove()})},hidden:function($inputfield){$inputfield=this.inputfield($inputfield);return $inputfield.hasClass("InputfieldStateHidden")},changed:function($inputfield,value){$inputfield=this.inputfield($inputfield);if($inputfield.hasClass("InputfieldIgnoreChanges"))return false;var changed=$inputfield.hasClass("InputfieldStateChanged");if(typeof value=="undefined")return changed;if(value&&!changed){$inputfield.addClass("InputfieldStateChanged").trigger("change");return true}else if(changed){$inputfield.removeClass("InputfieldStateChanged");return false}},name:function($inputfield){$inputfield=this.inputfield($inputfield);if(!$inputfield.length)return"";var name=$inputfield.attr("data-name");if(typeof name!="undefined"&&name&&name.length)return name;name="";var id=$inputfield.prop("id");if(id.indexOf("wrap_Inputfield_")===0){name=id.replace("wrap_Inputfield_","")}else if(id.indexOf("wrap_")===0){name=id.substring(5)}else{var classes=$inputfield.attr("class").split(" ");for(var n=0;n99)return jQuery([]);var $col=this.getFirstInRow($inputfield);var sel="";while($col.length){if($col.hasClass("InputfieldStateHidden")&&!andHidden){}else if(andSelf||$col.prop("id")!==$inputfield.prop("id")){sel+=(sel.length?",":"")+"#"+$col.prop("id")}$col=$col.next(".InputfieldColumnWidth");if($col.hasClass("InputfieldColumnWidthFirst"))break}return sel.length?jQuery(sel):$inputfield},getAllInRow:function($inputfield,andHidden){if(typeof andHidden==="undefined")andHidden=false;return this.getSiblingsInRow($inputfield,true,andHidden)}};function consoleLog(note){if(Inputfields.debug)console.log(note)}function InputfieldDependencies($target){var $=jQuery;if(Inputfields.processingIfs)return;if(typeof $target=="undefined"){$target=$(".InputfieldForm:not(.InputfieldFormNoDependencies)")}else if($target.hasClass("InputfieldForm")){if($target.hasClass("InputfieldFormNoDependencies"))return}else{if($target.closest(".InputfieldFormNoDependencies").length>0)return}function trimValue(value){value=jQuery.trim(value);var first=value.substring(0,1);var last=value.substring(value.length-1,value.length);if((first=='"'||first=="'")&&first==last)value=value.substring(1,value.length-1);return value}function trimParseValue(value){return parseValue(trimValue(value))}function extractFieldAndSubfield(field){var subfield="";var dot=field.indexOf(".");if(dot>0){subfield=field.substring(dot+1);field=field.substring(0,dot)}return{field:field,subfield:subfield}}function parseValue(str,str2){str=jQuery.trim(str);if(str.length>0&&!jQuery.isNumeric(str)){return str}if(str.length==0){var t=typeof str2;if(t!="undefined"){if(t=="integer")return 0;if(t=="float")return 0;return str}else{return str}}var dot1=str.indexOf(".");var dot2=str.lastIndexOf(".");if(dot1==-1&&/^-?\d+$/.test(str)){return parseInt(str)}if(dot2>-1&&dot1!=dot2){return str}if(/^-?[\d.]+$/.test(str)){return parseFloat(str)}return str}function matchValue(field,operator,value,conditionValue){var matched=0;switch(operator){case"=":if(value==conditionValue)matched++;break;case"!=":if(value!=conditionValue)matched++;break;case">":if(value>conditionValue)matched++;break;case"<":if(value=":if(value>=conditionValue)matched++;break;case"<=":if(value<=conditionValue)matched++;break;case"*=":case"%=":if(value.indexOf(conditionValue)>-1)matched++;break}consoleLog("Field "+field+" - Current value: "+value);consoleLog("Field "+field+" - Matched? "+(matched>0?"YES":"NO"));return matched}function getCheckboxFieldAndValue(condition,conditionField,conditionSubfield){var $field=null;var value;consoleLog("getCheckboxFieldAndValue(see-next-line, "+conditionField+", "+conditionSubfield+")");consoleLog(condition);if(conditionSubfield=="count"||conditionSubfield=="count-checkbox"){consoleLog("Using count checkbox condition");$field=$("#wrap_Inputfield_"+conditionField+" :input");if($field.length){value=$("#wrap_Inputfield_"+conditionField+" :checked").length;condition.subfield="count-checkbox";return{field:$field,value:value,condition:condition}}return null}consoleLog("Using checkbox value or label comparison option");value=[];for(var i=0;i0)consoleLog("Subfield: "+condition.subfield);consoleLog("Operator: "+condition.operator);consoleLog("Required value: "+condition.value)}var matched=0;for(var fn=0;fn-1&&value.match(/^[,0-9]+$/)){values=value.split(",")}else{values[0]=value}var numMatchesRequired=1;if(condition.operator=="!=")numMatchesRequired=values.length*condition.values.length;if(($field.attr("type")=="checkbox"||$field.attr("type")=="radio")&&!$field.is(":checked")){if($("#Inputfield_"+conditionField+"_0").length==0){values[1]="0"}}for(var n=0;n=numMatchesRequired)break}consoleLog("----");if(condition.type=="show"){if(matched>=numMatchesRequired){}else{show=false}}else if(condition.type=="required"){if(matched>0){requiredMatches++}else{notRequiredMatches++}}}var required=requiredMatches>0&¬RequiredMatches==0;if(show){consoleLog('Determined that field "'+fieldNameToShow+'" should be visible.');if(Inputfields.hidden($fieldToShow)){Inputfields.show($fieldToShow);numVisibilityChanges++;consoleLog("Field is now visible.")}else{consoleLog("Field is already visible.")}}else{consoleLog('Determined that field "'+fieldNameToShow+'" should be hidden.');if(Inputfields.hidden($fieldToShow)){consoleLog("Field is already hidden.")}else{Inputfields.hide($fieldToShow);consoleLog("Field is now hidden.");numVisibilityChanges++}if(required){consoleLog("Field is required but cancelling that since it is not visible.");required=false}}if(required&&requiredMatches>0){consoleLog('Determined that field "'+fieldNameToShow+'" should be required.');$fieldToShow.addClass("InputfieldStateRequired").find(":input:visible[type!=hidden]").addClass("required")}else if(!required&¬RequiredMatches>0){consoleLog('Determined that field "'+fieldNameToShow+'" should not be required.');$fieldToShow.removeClass("InputfieldStateRequired").find(":input.required").removeClass("required")}if(numVisibilityChanges>0){consoleLog(numVisibilityChanges+" visibility changes were made.")}Inputfields.processingIfs=false}function setupConditions(conditionType,conditions,$fieldToShow){var selector=$fieldToShow.attr("data-"+conditionType+"-if");if(!selector||selector.length<1){return conditions}selector=$("
        ").html(selector).text();consoleLog("-------------------------------------------------------------------");consoleLog('Analyzing "'+conditionType+'" selector: '+selector);var fieldNameToShow=$fieldToShow.attr("id").replace("wrap_Inputfield_","");var parts=selector.match(/(^|,)([^,]+)/g);for(var n=0;n=|<|>|%=)([^,]+),?$/);if(!match)continue;var field=match[1];var operator=match[2];var value=match[3];var subfield="";var fields=[];var values=[];if(field.indexOf("|")>-1){consoleLog("OR field dependency: "+field);fields=field.split("|")}else{fields=[field]}var fieldAndSubfield=extractFieldAndSubfield(field);field=fieldAndSubfield.field;subfield=fieldAndSubfield.subfield;if(Inputfields.debug){consoleLog("Field: "+field);if(subfield.length)consoleLog("Subfield: "+subfield);consoleLog("Operator: "+operator);consoleLog("value: "+value)}if(value.indexOf("|")>-1){consoleLog("OR value dependency: "+value);values=value.split("|");for(var i=0;i> "+maxColHeight+" ("+h+")");if(h==maxColHeight)return;if($item.hasClass("InputfieldStateCollapsed"))return;var pad=maxColHeight-h;if(pad<0)pad=0;var $container=$item.children(".InputfieldContent, .ui-widget-content");if(pad==0){}else{consoleLog("Adjusting "+$item.attr("id")+" from "+h+" to "+maxColHeight);var $spacer=$("
        ");$container.append($spacer);$spacer.height(pad)}}function updateInputfieldRow($firstItem){var $items=$firstItem.nextUntil(".InputfieldColumnWidthFirst",".InputfieldColumnWidth:not(.InputfieldStateHidden)");var firstItemHidden=$firstItem.hasClass("InputfieldStateHidden");var rowWidth=firstItemHidden?0:getWidth($firstItem);var $item=firstItemHidden?null:$firstItem;var itemWidth=$item==null?0:rowWidth;var numItems=$items.length;var $leadItem;if(firstItemHidden){numItems--;$leadItem=$items.eq(0)}else{$leadItem=$firstItem}if(useHeights){$leadItem.find(".maxColHeightSpacer").remove();$items.find(".maxColHeightSpacer").remove()}var maxRowWidth=100-numItems*colspacing;var maxColHeight=useHeights?getHeight($leadItem):0;$items.removeClass("InputfieldColumnWidthFirstTmp");$items.each(function(){$item=$(this);itemWidth=getWidth($item);rowWidth+=itemWidth;if(useHeights){var h=getHeight($item);if(h>maxColHeight)maxColHeight=h}});if(useHeights){if(Inputfields.debug){var lab=$leadItem.find("label").text();consoleLog("maxColHeight: "+lab+" = "+maxColHeight)}if(maxColHeight>0){setHeight($leadItem,maxColHeight);$items.each(function(){setHeight($(this),maxColHeight)})}}var originalWidth=0;var leftoverWidth=0;if(rowWidth0&&itemWidthmaxRowWidth){consoleLog("Reduce width of row because rowWidth > maxRowWidth ("+rowWidth+" > "+maxRowWidth+")");if(!firstItemHidden)$items=$firstItem.add($items);rowWidth=0;$items.each(function(){$item=$(this);itemWidth=getOriginalWidth($item);if(itemWidth>0)setWidth($item,itemWidth,false);rowWidth+=itemWidth});leftoverWidth=maxRowWidth-rowWidth;itemWidth+=leftoverWidth;originalWidth=getOriginalWidth($item);if(originalWidth>0&&itemWidth");var offset=$header.offset();var interval;var maxRuns=10;var runs=0;var hAdjust=.8;$("body").append($spinner.hide());if($header.is("a")&&$header.closest("ul").hasClass("uk-tab"))hAdjust=.1;$spinner.css({position:"absolute",top:offset.top-($spinner.height()+5),left:offset.left+$header.width()/2+$spinner.width()*hAdjust}).fadeIn();interval=setInterval(function(){if(++runs>maxRuns||!$li.hasClass("InputfieldAjaxLoading")){clearInterval(interval);$spinner.fadeOut("normal",function(){$spinner.remove()})}},500)}var $parent=$li.children(".InputfieldContent").children(".renderInputfieldAjax");var isTab=false;if(!$parent.length){$parent=$li.children(".renderInputfieldAjax");isTab=true}var ajaxURL=$parent.children("input").attr("value");if(typeof ajaxURL=="undefined"||ajaxURL.length<1)return false;var $spinner=null;var $header;if(isTab){$header=$("#_"+$li.attr("id"));headerHighlightEffect($header,$li)}else{$header=$li.children(".InputfieldHeader");$spinner=$("");$spinner.css("margin-left","0.5em");$header.append($spinner)}$li.removeClass("collapsed10 collapsed11").addClass("InputfieldAjaxLoading");$.get(ajaxURL,function(data){$li.removeClass("InputfieldAjaxLoading InputfieldStateCollapsed");var $icon=$li.children(".InputfieldHeader").find(".toggle-icon");if($icon.length)$icon.toggleClass($icon.attr("data-to"));$parent.replaceWith($(data)).hide();$parent.slideDown();var $inputfields=$li.find(".Inputfield");if($inputfields.length){$inputfields.trigger("reloaded",["InputfieldAjaxLoad"]);InputfieldStates($li);InputfieldRequirements($li);InputfieldColumnWidths()}else{$li.trigger("reloaded",["InputfieldAjaxLoad"]);InputfieldColumnWidths()}if($li.closest(".InputfieldFormNoDependencies").length==0){InputfieldDependencies($li.parent())}setTimeout(function(){if($spinner)$spinner.fadeOut("fast",function(){$spinner.remove()});if(isTab){$header.effect("highlight",500)}else if(Inputfields.toggleBehavior<1){$header.click()}},500)},"html");return true}$(".Inputfield:not(.collapsed9) > .InputfieldHeader, .Inputfield:not(.collapsed9) > .ui-widget-header",$target).addClass("InputfieldStateToggle");var $icon=$(".Inputfields .InputfieldStateCollapsed > .InputfieldHeader i.toggle-icon, .Inputfields .InputfieldStateCollapsed > .ui-widget-header i.toggle-icon",$target);$icon.toggleClass($icon.attr("data-to"));if(typeof ProcessWire!="undefined"){var config=ProcessWire.config}if(typeof config!=="undefined"&&config.debug){$(".InputfieldHeader > i.toggle-icon",$target).hover(function(){var $label=$(this).parent("label");if($label.length==0)return;var forId=$label.attr("for");if(!forId)forId=$label.parent().attr("id");if(!forId)return;var text=forId.replace(/^Inputfield_|wrap_Inputfield_|wrap_/,"");if(text.length){var $tip=$(" "+text+" ");$tip.css("float","right");$label.append($tip)}},function(){var $label=$(this).parent("label");if($label.length==0)return;$label.find(".InputfieldNameTip").remove()})}if(hasTarget)return;$(document).on("wiretabclick",function(e,$newTab,$oldTab){if($newTab.hasClass("collapsed10"))InputfieldStateAjaxClick($newTab)});$(document).on("click",".InputfieldStateToggle, .toggle-icon",function(event,data){var $t=$(this);var $li=$t.closest(".Inputfield");var isIcon=$t.hasClass("toggle-icon");var $icon=isIcon?$t:$li.children(".InputfieldHeader, .ui-widget-header").find(".toggle-icon");var isCollapsed=$li.hasClass("InputfieldStateCollapsed");var wasCollapsed=$li.hasClass("InputfieldStateWasCollapsed");var duration=100;var isAjax=$li.hasClass("collapsed10")||$li.hasClass("collapsed11");if(!$li.length)return;if($li.hasClass("InputfieldAjaxLoading"))return false;if($li.hasClass("InputfieldStateToggling"))return false;if(typeof data!="undefined"){if(typeof data.duration!="undefined")duration=data.duration}if(isCollapsed&&isAjax){if(InputfieldStateAjaxClick($li))return false}if(isCollapsed||wasCollapsed||isIcon){$li.addClass("InputfieldStateWasCollapsed");Inputfields.toggle($li,null,duration)}else if(Inputfields.toggleBehavior===1){$icon.click()}else{if(typeof jQuery.ui!="undefined"){var color1=$icon.css("color");var color2=$li.children(".InputfieldHeader, .ui-widget-header").css("color");$icon.css("color",color2);$icon.effect("pulsate",300,function(){$icon.css("color",color1)})}Inputfields.focus($li)}return false});var $focusInputs=$("input.InputfieldFocusFirst");if(!$focusInputs.length){$focusInputs=$("#content .InputfieldFormFocusFirst:not(.InputfieldFormNoFocus)").find("input[type=text]:enabled:first:not(.hasDatepicker):not(.InputfieldNoFocus)")}if($focusInputs.length)$focusInputs.each(function(){var $t=$(this);if($t.val())return;if($t.offset().top<$(window).height()){window.setTimeout(function(){if($t.is(":visible"))$t.focus()},250)}});$(document).on("change",".InputfieldFormConfirm :input, .InputfieldFormConfirm .Inputfield",function(){var $this=$(this);if($this.hasClass("Inputfield")){if(!$this.hasClass("InputfieldIgnoreChanges"))$this.addClass("InputfieldStateChanged");return false}else{if($this.hasClass("InputfieldIgnoreChanges")||$this.closest(".InputfieldIgnoreChanges").length)return false;$this.closest(".Inputfield").addClass("InputfieldStateChanged")}});$(document).on("submit",".InputfieldFormConfirm",function(){$(this).addClass("InputfieldFormSubmitted")});$(document).on("dragenter",".InputfieldHasUpload.InputfieldStateCollapsed",function(e){var dt=e.originalEvent.dataTransfer;if(dt.types&&(dt.types.indexOf?dt.types.indexOf("Files")!==-1:dt.types.contains("Files"))){InputfieldOpen($(this))}});window.addEventListener("beforeunload",InputfieldFormBeforeUnloadEvent)}function InputfieldIntentions(){var $=jQuery;$(".InputfieldForm").each(function(){var $form=$(this);var numButtons=null;var $input=null;$form.submit(function(){if(!$(this).hasClass("nosubmit"))return;if(!$input)return;var $buttons=null;var $inputfields=$input.closest(".Inputfields");do{$buttons=$inputfields.find("input[type=submit]:visible, button[type=submit]:visible");if($buttons.length>0)break;$inputfields=$inputfields.parent().closest(".Inputfields")}while($inputfields.length>0);if($buttons.length>0){var $button=$buttons.eq(0);$("html, body").animate({scrollTop:$button.offset().top},"fast");$button.focus()}return false}).on("focus","input, select",function(){if(numButtons===null)numButtons=$form.find("input[type=submit], button[type=submit]").length;if(numButtons<2)return;$form.addClass("nosubmit");$input=$(this)}).on("blur","input, select",function(){$form.removeClass("nosubmit")})});if($("input[type=file]").length){$(document).on({dragover:function(){if($(this).is("input[type=file]"))return;return false},drop:function(){if($(this).is("input[type=file]"))return;return false}})}}var InputfieldWindowResizeQueued=false;function InputfieldWindowResizeActions1(){consoleLog("InputfieldWindowResizeActions1()");jQuery(".Inputfield").trigger("resized")}function InputfieldWindowResizeActions2(){consoleLog("InputfieldWindowResizeActions2()");InputfieldColumnWidths();InputfieldWindowResizeQueued=false}function InputfieldRequirements($target){jQuery(":input[required]",$target).on("invalid",function(){var $input=jQuery(this);Inputfields.focus($input)})}function InputfieldReloadEvent(event,extraData){var $t=$(this);var $form=$t.closest("form");var fieldName=$t.attr("id").replace("wrap_Inputfield_","");var fnsx="";var url=$form.attr("action");if(fieldName.indexOf("_repeater")>0){var $repeaterItem=$t.closest(".InputfieldRepeaterItem");var pageID=$repeaterItem.attr("data-page");url=url.replace(/\?id=\d+/,"?id="+pageID);fnsx=$repeaterItem.attr("data-fnsx");fieldName=fieldName.replace(/_repeater\d+$/,"")}url+=url.indexOf("?")>-1?"&":"?";url+="field="+fieldName+"&reloadInputfieldAjax="+fieldName;if(fnsx.length)url+="&fnsx="+fnsx;if(typeof extraData!="undefined"){if(typeof extraData["queryString"]!="undefined"){url+="&"+extraData["queryString"]}}consoleLog("Inputfield reload: "+fieldName);$.get(url,function(data){var id=$t.attr("id");var $content=jQuery(data).find("#"+id).children(".InputfieldContent");if(!$content.length&&id.indexOf("_repeater")>-1){id="wrap_Inputfield_"+fieldName;$content=jQuery(data).find("#"+id).children(".InputfieldContent");if(!$content.length){console.log("Unable to find #"+$t.attr("id")+" in response from "+url)}}$t.children(".InputfieldContent").html($content.html());$t.trigger("reloaded",["reload"])});event.stopPropagation()}function InputfieldsInit($target){InputfieldStates($target);InputfieldDependencies($target);InputfieldRequirements($target);setTimeout(function(){InputfieldColumnWidths()},100)}jQuery(document).ready(function($){InputfieldStates();InputfieldDependencies($(".InputfieldForm:not(.InputfieldFormNoDependencies)"));InputfieldIntentions();setTimeout(function(){InputfieldColumnWidths()},100);var windowResized=function(){if(InputfieldWindowResizeQueued)return;InputfieldWindowResizeQueued=true;setTimeout("InputfieldWindowResizeActions1()",1e3);setTimeout("InputfieldWindowResizeActions2()",2e3)};$(window).resize(windowResized);$("ul.WireTabs > li > a").click(function(){if(InputfieldWindowResizeQueued)return;InputfieldWindowResizeQueued=true;setTimeout("InputfieldWindowResizeActions1()",250);setTimeout("InputfieldWindowResizeActions2()",500);return true});InputfieldRequirements($(".InputfieldForm"));$(document).on("reload",".Inputfield",InputfieldReloadEvent);if($(".InputfieldForm:not(.InputfieldFormNoWidths)").length){$(document).on("change",".InputfieldColumnWidth :input",function(){InputfieldColumnWidths();setTimeout(InputfieldColumnWidths,300)});$(document).on("AjaxUploadDone",".InputfieldFileList",function(){InputfieldColumnWidths()});$(document).on("heightChanged",".InputfieldColumnWidth",function(){InputfieldColumnWidths()})}if(window.location.hash){Inputfields.hashAction(window.location.hash.substring(1))}}); \ No newline at end of file