diff --git a/wire/core/Config.php b/wire/core/Config.php index 5d70c2f1..99a7f74d 100644 --- a/wire/core/Config.php +++ b/wire/core/Config.php @@ -348,6 +348,9 @@ class Config extends WireData { * 'siteOnly' => true, * 'cachePath' => $config->paths->root . '.my-cache/' * ]); + * + * // To unset a property specify null for first argument and property to unset as second argument + * $config->fileCompilerOptions(null, 'siteOnly'); * ~~~~~ * * #pw-internal @@ -382,7 +385,14 @@ class Config extends WireData { } } else { // property and value provided - $value[$property] = $arguments[1]; + if($property === null && is_string($arguments[1])) { + // unset property + $property = $arguments[1]; + unset($value[$property]); + } else { + // set property with value + $value[$property] = $arguments[1]; + } parent::set($method, $value); } } else if($numArgs === 1) { diff --git a/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module b/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module index 85329332..e9d9a724 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module +++ b/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikit.module @@ -24,10 +24,10 @@ class AdminThemeUikit extends AdminThemeFramework implements Module, Configurabl public static function getModuleInfo() { return array( 'title' => 'Uikit', - 'version' => 23, + 'version' => 24, 'summary' => 'Uikit v3 admin theme', 'autoload' => 'template=admin', - 'requires' => 'ProcessWire>=3.0.61' + 'requires' => 'ProcessWire>=3.0.94' ); } @@ -201,7 +201,13 @@ class AdminThemeUikit extends AdminThemeFramework implements Module, Configurabl $themeOffset = ''; $wrapClasses = array(); - if($columnWidth < 10) $columnWidth = 100; + static $minColumnWidth = null; + + if($minColumnWidth === null) { + $widthKeys = array_keys($widths); + ksort($widthKeys); + $minColumnWidth = (int) reset($widthKeys); + } if($inputfield instanceof InputfieldSubmit) { // button @@ -210,8 +216,10 @@ class AdminThemeUikit extends AdminThemeFramework implements Module, Configurabl } // determine column width class - if($columnWidth && $columnWidth < 100) { - if($columnWidth < 16) $columnWidth = 16; + if($columnWidth < 10) { + $columnWidth = 100; + } else if($columnWidth && $columnWidth < 100) { + if($columnWidth < $minColumnWidth) $columnWidth = $minColumnWidth; foreach($widths as $pct => $uk) { $pct = (int) $pct; if($columnWidth >= $pct) { diff --git a/wire/modules/AdminTheme/AdminThemeUikit/config.php b/wire/modules/AdminTheme/AdminThemeUikit/config.php index c7fdee8b..cdc84800 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/config.php +++ b/wire/modules/AdminTheme/AdminThemeUikit/config.php @@ -268,48 +268,73 @@ function AdminThemeUikitConfig(AdminTheme $adminTheme, InputfieldWrapper $inputf /* // The following is just for development/testing + $fieldset = $modules->get('InputfieldFieldset'); + $fieldset->label = 'Test fieldset'; + $inputfields->add($fieldset); + $f = $modules->get('InputfieldRadios'); $f->attr('name', 'test_radios'); $f->label = 'Test radios'; $f->addOption(1, 'Option 1'); $f->addOption(2, 'Option 2'); $f->addOption(3, 'Option 3'); - $f->columnWidth = 30; - $inputfields->add($f); + $f->columnWidth = 35; + $fieldset->add($f); - $f = $modules->get('InputfieldText'); + $f = $modules->get('InputfieldText'); + $f->attr('name', 'test_text0'); + $f->label = 'Test text 0'; + //$f->showIf = 'test_radios=1'; + $f->columnWidth = 65; + $fieldset->add($f); + + $f = $modules->get('InputfieldText'); $f->attr('name', 'test_text1'); - $f->label = 'Test text 1'; - $f->showIf = 'test_radios=1'; - $f->columnWidth = 35; - $inputfields->add($f); - - $f = $modules->get('InputfieldText'); + $f->label = 'Test text 1'; + $f->columnWidth = 20; + $fieldset->add($f); + + $f = $modules->get('InputfieldText'); $f->attr('name', 'test_text2'); - $f->label = 'Test text 2'; - $f->showIf = 'test_radios=1|2'; - $f->columnWidth = 35; - $inputfields->add($f); + $f->label = 'Test text 2'; + //$f->showIf = 'test_radios=1|2'; + $f->columnWidth = 20; + $fieldset->add($f); // These inputfields should appear as a second row $f = $modules->get('InputfieldText'); $f->attr('name', 'test_text3'); $f->label = 'Test text 3'; - $f->columnWidth = 35; - $inputfields->add($f); + $f->columnWidth = 20; + $f->showIf = 'test_radios=1'; + $fieldset->add($f); $f = $modules->get('InputfieldText'); $f->attr('name', 'test_text4'); $f->label = 'Test text 4'; - $f->columnWidth = 25; - $inputfields->add($f); + $f->columnWidth = 20; + $fieldset->add($f); $f = $modules->get('InputfieldText'); $f->attr('name', 'test_text5'); $f->label = 'Test text 5'; //$f->showIf = 'test_radios=3'; + $f->columnWidth = 20; + $fieldset->add($f); + + $f = $modules->get('InputfieldText'); + $f->attr('name', 'test_text6'); + $f->label = 'Test text 6'; + //$f->showIf = 'test_radios=3'; $f->columnWidth = 75; - $inputfields->add($f); + $fieldset->add($f); + + $f = $modules->get('InputfieldText'); + $f->attr('name', 'test_text7'); + $f->label = 'Test text 7'; + //$f->showIf = 'test_radios=3'; + $f->columnWidth = 25; + $fieldset->add($f); */ } \ No newline at end of file diff --git a/wire/modules/AdminTheme/AdminThemeUikit/init.php b/wire/modules/AdminTheme/AdminThemeUikit/init.php index 7896b023..66fcc304 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/init.php +++ b/wire/modules/AdminTheme/AdminThemeUikit/init.php @@ -108,10 +108,10 @@ $config->set('ProcessList', array( 'showIcon' => true, )); -$buttonClassKey = $config->wire('hooks')->isHooked('InputfieldImage::renderButtons()') ? '_buttonClass' : 'buttonClass'; +$buttonClassKey = $config->wire('hooks')->isHooked('InputfieldImage::renderButtons()') ? '_buttonClass' : 'buttonClass'; $config->set('InputfieldImage', array( // only use custom classes if renderButtons is not hooked - $buttonClassKey => 'uk-button uk-button-small uk-button-text uk-margin-small-right', + $buttonClassKey => 'uk-button uk-button-small uk-button-text uk-margin-small-right', 'buttonText' => '{out}', )); diff --git a/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.js b/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.js index e19c1b7c..0620c271 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.js +++ b/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.js @@ -1,7 +1,7 @@ /** * ProcessWire Admin Theme jQuery/Javascript * - * Copyright 2017 by Ryan Cramer + * Copyright 2018 by Ryan Cramer * */ @@ -605,6 +605,7 @@ var ProcessWireAdminTheme = { // update widths and classes for Inputfields having the same parent as given $inputfield // this is called when an Inputfield is shown or hidden function updateInputfieldRow($inputfield) { + if(!$inputfield) return; var $inputfields = $inputfield.parent().children('.Inputfield'); var $lastInputfield = null; // last non-hidden Inputfield @@ -612,7 +613,7 @@ var ProcessWireAdminTheme = { var widthHidden = 0; // amount of width in row occupied by hidden field(s) var w = 0; // current Inputfield width var lastW = 0; // last Inputfield non-hidden Inputfield width - var debug = false; // verbose console.log messages + var debug = true; // verbose console.log messages function consoleLog(msg, $in) { if(!debug) return; @@ -646,7 +647,7 @@ var ProcessWireAdminTheme = { if(!w || w >= 100) { // full width column consumes its own row, so we can reset everything here and exit - if(width < 100) expandLastInputfield($lastInputfield); + if(width < 100 && $lastInputfield) expandLastInputfield($lastInputfield); $lastInputfield = null; widthHidden = 0; lastW = 0; @@ -678,7 +679,7 @@ var ProcessWireAdminTheme = { if(debug) consoleLog('B: starting new row', $inputfield); } else if(width + w > 100) { // start new row and update width for last column - expandLastInputfield($lastInputfield); + if($lastInputfield) expandLastInputfield($lastInputfield); width = 0; isFirstColumn = true; if(debug) consoleLog('C: start new row because width would exceed 100%', $inputfield); @@ -712,7 +713,7 @@ var ProcessWireAdminTheme = { width += w; lastW = w; - $lastInputfield = $inputfield; + $lastInputfield = isLastColumn ? null : $inputfield; ukGridClass(w, $inputfield); }); diff --git a/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.min.js b/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.min.js index dbe54d88..098008e5 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 b=$("body");$(document).on("wiretabclick opened",function(c){$("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(c){c.stopPropagation()});var a=null;$(window).resize(function(){if(a){return}a=setTimeout(function(){ProcessWireAdminTheme.windowResized();a=null},250)});this.setupMasthead();this.setupWireTabs();b.removeClass("pw-init").addClass("pw-ready")},setupWireTabs:function(){var a=$(".WireTabs");if(a.length){$(document).on("wiretabclick",function(b,c){ProcessWireAdminTheme.wireTabClick(c)});setTimeout(function(){var c=a.children(".uk-active");if(c.length){var b=$(c.find("a").attr("href"));if(b.length){ProcessWireAdminTheme.wireTabClick(b)}}},500)}},wireTabClick:function(a){if(!a.length){return}var d=null;var b=null;if(a.hasClass("InputfieldWrapper")){b=a.children(".Inputfields").children(".Inputfield:eq(0)");d=b.children(".InputfieldHeader")}else{if(a.hasClass("Inputfield")){b=a;d=a.children(".InputfieldHeader")}}if(!d||!d.length){return}var i=false;var c=["InputfieldIsPrimary","InputfieldIsWarning","InputfieldIsError","InputfieldIsHighlight","InputfieldIsSuccess"];for(var f=0;f-1){a=a.replace(/([?&]layout)=[-_a-zA-Z0-9]+/,"$1=sidenav-init")}else{a+=(a.indexOf("?")>0?"&":"?")+"layout=sidenav-init"}window.location.href=a}},windowResized:function(){if($("body").hasClass("pw-fake-resize")){return}this.setupMasthead()},setupMasthead:function(){var b=$("#pw-masthead");var e=$("#pw-masthead-mobile");var c=$(window).width();var a=0;var d=0;if(c>767){d=parseInt(b.data("pw-height"));a=b.children(".pw-container").height()}else{a=999}if(b.hasClass("uk-hidden")){b.removeClass("uk-hidden")}if(a>d){if(!b.hasClass("pw-masthead-hidden")){b.addClass("pw-masthead-hidden").css({position:"absolute",top:"-9999px"});e.removeClass("uk-hidden");$("#offcanvas-toggle").removeClass("uk-hidden")}}else{if(b.hasClass("pw-masthead-hidden")){e.addClass("uk-hidden");b.removeClass("pw-masthead-hidden").css({position:"relative",top:0});$("#offcanvas-toggle").addClass("uk-hidden")}}},setupCloneButton:function(){if($("body").is(".modal")){return}var c=$("button.pw-head-button, button.head_button_clone");if(c.length==0){return}var a=$("#pw-content-head-buttons");var e=null;var h=null;var d={};c.each(function(){var m=$(this);var k=m.parent("a");var j;if(k.length>0){j=m.parent("a").clone(true);a.prepend(j)}else{if(m.hasClass("pw-head-button")||m.hasClass("head_button_clone")){j=m.clone(true);j.attr("data-from_id",m.attr("id")).attr("id",m.attr("id")+"_copy").addClass("pw-head-button");j.click(function(){$("#"+$(this).attr("data-from_id")).click();return false});if(j.hasClass("pw-button-dropdown-toggle")){var l=j.attr("id").replace("pw-dropdown-toggle-","");d[l]=j}else{if(j.hasClass("pw-button-dropdown-main")){var i=$("").addClass("pw-button-dropdown-wrap");i.append(j).addClass("uk-float-right");a.prepend(i)}else{j.addClass("uk-float-right");a.prepend(j)}}}}});for(var g in d){var b=d[g];var f=$("#"+g);f.after(b)}},setupSearch:function(){$.widget("custom.adminsearchautocomplete",$.ui.autocomplete,{_renderMenu:function(c,a){var d=this;var b="";c.addClass("pw-dropdown-menu-shorter uk-nav uk-nav-default");c.css("z-index",9999);$.each(a,function(e,f){if(f.type!=b){if(b.length){$("
  • ").appendTo(c)}$("
  • "+f.type+"
  • ").addClass("uk-nav-header").appendTo(c);b=f.type}d._renderItemData(c,f)})},_renderItem:function(a,b){if(b.label==b.template){b.template=""}return $("
  • ").append(""+b.label+" "+b.template+"").appendTo(a)}});$(".pw-search-form").each(function(){var b=$(this);var c=b.find(".pw-search-input");var a={my:"right top",at:"right bottom"};if(b.closest(".uk-offcanvas-bar").length){a.my="left top";a.at="left bottom"}c.click(function(d){d.stopPropagation()});c.adminsearchautocomplete({minLength:2,position:a,search:function(d,e){b.find(".pw-search-icon").addClass("uk-hidden");b.find(".pw-spinner-icon").removeClass("uk-hidden")},open:function(d,e){},close:function(d,e){},source:function(f,d){var e=c.parents("form").attr("data-action")+"for?get=template_label,title&include=all&admin_search="+f.term;$.getJSON(e,function(h){var g=h.matches.length;if(g");b.append(c);$.getJSON(a,function(g){var i=e.clone();var f=i.find("i");if(!f.length){f=$("");i.prepend(f)}f.attr("class","fa fa-fw fa-arrow-circle-right pw-nav-icon");i.removeAttr("data-json").removeAttr("class");i.find("small").remove();var h=$("
  • ").addClass("pw-nav-dup").append(i);b.append(h);if(g.add){var h=$("
  • "+g.add.label+"
  • ");b.append(h)}$.each(g.list,function(k){if(this.label.indexOf("-1){this.label=this.label.replace(/<\/?span[^>]*>/g,"")}var q="";var r=$("
    "+this.label+"
    ");var s=r.text();if(s.length>30){var o=r.find("small");if(o.length){o.remove()}s=r.text();s=s.substring(0,30);var k=s.lastIndexOf(" ");if(k>3){s=s.substring(0,k)+"… "}r.html(s);if(o.length){r.append(o)}}s=r.html().replace(" "," ");if(this.icon){q=""}var j=this.url.indexOf("/")===0?this.url:g.url+this.url;var l=$(""+q+s+"");var p=$("
  • ").append(l);if(this.navJSON!="undefined"&&this.navJSON){l.addClass("pw-has-items pw-has-ajax-items").attr("data-json",this.navJSON);var m=$("
      ");p.addClass("uk-parent").append(m);UIkit.nav(m,{multiple:true})}if(typeof this.className!="undefined"&&this.className&&this.className.length){p.addClass(this.className)}if(p.hasClass("pw-nav-add")||p.hasClass("pw-pagelist-show-all")){b.children(".pw-nav-dup").after(p.removeClass("separator").addClass("pw-nav-add"))}else{b.append(p)}});c.remove();b.addClass("navJSON").addClass("length"+parseInt(g.list.length)).hide();if(b.children().length){b.css("opacity",1).fadeIn("fast")}});return false})},setupInputfields:function(){function e(){$("form.uk-form-horizontal").each(function(){$(this).find(".InputfieldContent > .Inputfields").each(function(){var h=$(this);h.addClass("uk-form-vertical");h.find(".uk-form-label").removeClass("uk-form-label");h.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 i=$(this);var h;do{h=i.next(".InputfieldColumnWidth");if(!h.length||h.hasClass("InputfieldColumnWidthFirst")){break}h.addClass("InputfieldIsOffset");i=h}while(true)});$(".Inputfields").each(function(){b($(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")})}function b(h){$(".InputfieldRowFirst",h).removeClass("InputfieldRowFirst");$(".InputfieldRowLast",h).removeClass("InputfieldRowLast");var i=h.children(".Inputfield:not(.InputfieldStateHidden):eq(0)");if(!i.length){return}do{i.addClass("InputfieldRowFirst");i=i.next(".Inputfield:not(.InputfieldStateHidden)")}while(i.hasClass("InputfieldColumnWidth")&&!i.hasClass("InputfieldColumnWidthFirst"));i=h.children(".Inputfield:last-child");while(i.length&&i.hasClass("InputfieldStateHidden")){i=i.prev(".Inputfield")}do{i.addClass("InputfieldRowLast");if(!i.hasClass("InputfieldColumnWidth")||i.hasClass("InputfieldColumnWidthFirst")){break}i=i.prev(".Inputfield:not(.InputfieldStateHidden)")}while(i.hasClass("InputfieldColumnWidth"))}function a(j,n){var i="uk-width-1-1";var h=i;var l=false;if(typeof j=="string"&&typeof n!="undefined"){h=j;l=true}else{if(!j||j>=100){h=i}else{for(var k in ProcessWire.config.ukGridWidths){var m=ProcessWire.config.ukGridWidths[k];k=parseInt(k);if(j>=k){h="uk-width-"+m;break}}}}if(!l&&h!=i){h+="@m"}if(typeof n!="undefined"){if(n.hasClass(h)){}else{d(n);n.addClass(h)}}return h}function d(i){var j=null;if(typeof i!="string"){j=i;i=j.attr("class")}if(i.indexOf("uk-width-")>-1){var h=i.replace(/uk-width-(\d-\d@m|\d-\d|expand)\s*/g,"");if(j!==null){j.attr("class",h)}}return i}function g(h){var n=h.parent().children(".Inputfield");var o=null;var j=0;var m=0;var p=0;var k=0;var i=false;function q(r,t){if(!i){return}if(typeof t=="undefined"){t=h}var s=t.attr("id");s=s.replace("wrap_Inputfield_","");console.log(s+" (combined width="+j+", w="+p+"): "+r)}function l(r){if(typeof r=="undefined"){r=o}if(r){a("InputfieldColumnWidthLast uk-width-expand",r)}}n.each(function(){h=$(this);var u=false;var t=false;var s=h.hasClass("InputfieldColumnWidth");var r=!s||h.hasClass("InputfieldColumnWidthFirst");if(r&&o&&j<100){l(o)}p=s?parseInt(h.attr("data-colwidth")):0;if(!p||p>=100){if(j<100){l(o)}o=null;m=0;k=0;j=0;if(i){q("Skipping because full-width",h)}return}if(h.hasClass("InputfieldStateHidden")){if(i){q("A: hidden",h)}k+=p;j+=p;if(o&&j>=100){if(i){q("Updating this to width="+k,o)}a(k,o)}else{m+=p}return}if(!j||j>=100){j=0;t=true;u=false;if(i){q("B: starting new row",h)}}else{if(j+p>100){l(o);j=0;t=true;if(i){q("C: start new row because width would exceed 100%",h)}}else{if(j+p==100){u=true;if(i){q("D: width is exactly 100%, so this is the last column",h)}}else{if(i){q("E: not first or last column",h)}}}}if(u){h.addClass("InputfieldColumnWidthLast")}else{h.removeClass("InputfieldColumnWidthLast")}if(t){h.addClass("InputfieldColumnWidthFirst");m=0}else{h.removeClass("InputfieldColumnWidthFirst")}if(m){p+=m;j-=m;m=0}j+=p;k=p;o=h;a(p,h)});if(j<100&&o){l(o)}}var f=null;var c=function(j,i){var h=$(i);if(j.type=="showInputfield"){h.removeClass("uk-hidden")}else{h.show();h.addClass("uk-hidden")}g(h);if(f){return}f=setTimeout(function(){b(h.closest(".Inputfields"));var k=h.find(".Inputfields");if(k.length){k.each(function(){b($(this))})}f=null},100)};$(document).on("reloaded",function(){e()});$(document).on("hideInputfield",c);$(document).on("showInputfield",c);$("body").addClass("InputfieldColumnWidthsInit");e()},setupTooltips:function(){$(".tooltip, .pw-tooltip").each(function(){$(this).removeClass("tooltip pw-tooltip");UIkit.tooltip($(this))})},linkTargetMainMouseoverEvent:function(){var b=$(this);var a=b.attr("href");if(a.length<2){return}if(b.attr("target")){return}if(b.parent("li").hasClass("PageListActionView")){b.attr("target","_top")}else{b.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 b=$("body");$(document).on("wiretabclick opened",function(c){$("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(c){c.stopPropagation()});var a=null;$(window).resize(function(){if(a){return}a=setTimeout(function(){ProcessWireAdminTheme.windowResized();a=null},250)});this.setupMasthead();this.setupWireTabs();b.removeClass("pw-init").addClass("pw-ready")},setupWireTabs:function(){var a=$(".WireTabs");if(a.length){$(document).on("wiretabclick",function(b,c){ProcessWireAdminTheme.wireTabClick(c)});setTimeout(function(){var c=a.children(".uk-active");if(c.length){var b=$(c.find("a").attr("href"));if(b.length){ProcessWireAdminTheme.wireTabClick(b)}}},500)}},wireTabClick:function(a){if(!a.length){return}var d=null;var b=null;if(a.hasClass("InputfieldWrapper")){b=a.children(".Inputfields").children(".Inputfield:eq(0)");d=b.children(".InputfieldHeader")}else{if(a.hasClass("Inputfield")){b=a;d=a.children(".InputfieldHeader")}}if(!d||!d.length){return}var i=false;var c=["InputfieldIsPrimary","InputfieldIsWarning","InputfieldIsError","InputfieldIsHighlight","InputfieldIsSuccess"];for(var f=0;f-1){a=a.replace(/([?&]layout)=[-_a-zA-Z0-9]+/,"$1=sidenav-init")}else{a+=(a.indexOf("?")>0?"&":"?")+"layout=sidenav-init"}window.location.href=a}},windowResized:function(){if($("body").hasClass("pw-fake-resize")){return}this.setupMasthead()},setupMasthead:function(){var b=$("#pw-masthead");var e=$("#pw-masthead-mobile");var c=$(window).width();var a=0;var d=0;if(c>767){d=parseInt(b.data("pw-height"));a=b.children(".pw-container").height()}else{a=999}if(b.hasClass("uk-hidden")){b.removeClass("uk-hidden")}if(a>d){if(!b.hasClass("pw-masthead-hidden")){b.addClass("pw-masthead-hidden").css({position:"absolute",top:"-9999px"});e.removeClass("uk-hidden");$("#offcanvas-toggle").removeClass("uk-hidden")}}else{if(b.hasClass("pw-masthead-hidden")){e.addClass("uk-hidden");b.removeClass("pw-masthead-hidden").css({position:"relative",top:0});$("#offcanvas-toggle").addClass("uk-hidden")}}},setupCloneButton:function(){if($("body").is(".modal")){return}var c=$("button.pw-head-button, button.head_button_clone");if(c.length==0){return}var a=$("#pw-content-head-buttons");var e=null;var h=null;var d={};c.each(function(){var m=$(this);var k=m.parent("a");var j;if(k.length>0){j=m.parent("a").clone(true);a.prepend(j)}else{if(m.hasClass("pw-head-button")||m.hasClass("head_button_clone")){j=m.clone(true);j.attr("data-from_id",m.attr("id")).attr("id",m.attr("id")+"_copy").addClass("pw-head-button");j.click(function(){$("#"+$(this).attr("data-from_id")).click();return false});if(j.hasClass("pw-button-dropdown-toggle")){var l=j.attr("id").replace("pw-dropdown-toggle-","");d[l]=j}else{if(j.hasClass("pw-button-dropdown-main")){var i=$("").addClass("pw-button-dropdown-wrap");i.append(j).addClass("uk-float-right");a.prepend(i)}else{j.addClass("uk-float-right");a.prepend(j)}}}}});for(var g in d){var b=d[g];var f=$("#"+g);f.after(b)}},setupSearch:function(){$.widget("custom.adminsearchautocomplete",$.ui.autocomplete,{_renderMenu:function(c,a){var d=this;var b="";c.addClass("pw-dropdown-menu-shorter uk-nav uk-nav-default");c.css("z-index",9999);$.each(a,function(e,f){if(f.type!=b){if(b.length){$("
    • ").appendTo(c)}$("
    • "+f.type+"
    • ").addClass("uk-nav-header").appendTo(c);b=f.type}d._renderItemData(c,f)})},_renderItem:function(a,b){if(b.label==b.template){b.template=""}return $("
    • ").append(""+b.label+" "+b.template+"").appendTo(a)}});$(".pw-search-form").each(function(){var b=$(this);var c=b.find(".pw-search-input");var a={my:"right top",at:"right bottom"};if(b.closest(".uk-offcanvas-bar").length){a.my="left top";a.at="left bottom"}c.click(function(d){d.stopPropagation()});c.adminsearchautocomplete({minLength:2,position:a,search:function(d,e){b.find(".pw-search-icon").addClass("uk-hidden");b.find(".pw-spinner-icon").removeClass("uk-hidden")},open:function(d,e){},close:function(d,e){},source:function(f,d){var e=c.parents("form").attr("data-action")+"for?get=template_label,title&include=all&admin_search="+f.term;$.getJSON(e,function(h){var g=h.matches.length;if(g");b.append(c);$.getJSON(a,function(g){var i=e.clone();var f=i.find("i");if(!f.length){f=$("");i.prepend(f)}f.attr("class","fa fa-fw fa-arrow-circle-right pw-nav-icon");i.removeAttr("data-json").removeAttr("class");i.find("small").remove();var h=$("
    • ").addClass("pw-nav-dup").append(i);b.append(h);if(g.add){var h=$("
    • "+g.add.label+"
    • ");b.append(h)}$.each(g.list,function(k){if(this.label.indexOf("-1){this.label=this.label.replace(/<\/?span[^>]*>/g,"")}var q="";var r=$("
      "+this.label+"
      ");var s=r.text();if(s.length>30){var o=r.find("small");if(o.length){o.remove()}s=r.text();s=s.substring(0,30);var k=s.lastIndexOf(" ");if(k>3){s=s.substring(0,k)+"… "}r.html(s);if(o.length){r.append(o)}}s=r.html().replace(" "," ");if(this.icon){q=""}var j=this.url.indexOf("/")===0?this.url:g.url+this.url;var l=$(""+q+s+"");var p=$("
    • ").append(l);if(this.navJSON!="undefined"&&this.navJSON){l.addClass("pw-has-items pw-has-ajax-items").attr("data-json",this.navJSON);var m=$("
        ");p.addClass("uk-parent").append(m);UIkit.nav(m,{multiple:true})}if(typeof this.className!="undefined"&&this.className&&this.className.length){p.addClass(this.className)}if(p.hasClass("pw-nav-add")||p.hasClass("pw-pagelist-show-all")){b.children(".pw-nav-dup").after(p.removeClass("separator").addClass("pw-nav-add"))}else{b.append(p)}});c.remove();b.addClass("navJSON").addClass("length"+parseInt(g.list.length)).hide();if(b.children().length){b.css("opacity",1).fadeIn("fast")}});return false})},setupInputfields:function(){function e(){$("form.uk-form-horizontal").each(function(){$(this).find(".InputfieldContent > .Inputfields").each(function(){var h=$(this);h.addClass("uk-form-vertical");h.find(".uk-form-label").removeClass("uk-form-label");h.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 i=$(this);var h;do{h=i.next(".InputfieldColumnWidth");if(!h.length||h.hasClass("InputfieldColumnWidthFirst")){break}h.addClass("InputfieldIsOffset");i=h}while(true)});$(".Inputfields").each(function(){b($(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")})}function b(h){$(".InputfieldRowFirst",h).removeClass("InputfieldRowFirst");$(".InputfieldRowLast",h).removeClass("InputfieldRowLast");var i=h.children(".Inputfield:not(.InputfieldStateHidden):eq(0)");if(!i.length){return}do{i.addClass("InputfieldRowFirst");i=i.next(".Inputfield:not(.InputfieldStateHidden)")}while(i.hasClass("InputfieldColumnWidth")&&!i.hasClass("InputfieldColumnWidthFirst"));i=h.children(".Inputfield:last-child");while(i.length&&i.hasClass("InputfieldStateHidden")){i=i.prev(".Inputfield")}do{i.addClass("InputfieldRowLast");if(!i.hasClass("InputfieldColumnWidth")||i.hasClass("InputfieldColumnWidthFirst")){break}i=i.prev(".Inputfield:not(.InputfieldStateHidden)")}while(i.hasClass("InputfieldColumnWidth"))}function a(j,n){var i="uk-width-1-1";var h=i;var l=false;if(typeof j=="string"&&typeof n!="undefined"){h=j;l=true}else{if(!j||j>=100){h=i}else{for(var k in ProcessWire.config.ukGridWidths){var m=ProcessWire.config.ukGridWidths[k];k=parseInt(k);if(j>=k){h="uk-width-"+m;break}}}}if(!l&&h!=i){h+="@m"}if(typeof n!="undefined"){if(n.hasClass(h)){}else{d(n);n.addClass(h)}}return h}function d(i){var j=null;if(typeof i!="string"){j=i;i=j.attr("class")}if(i.indexOf("uk-width-")>-1){var h=i.replace(/uk-width-(\d-\d@m|\d-\d|expand)\s*/g,"");if(j!==null){j.attr("class",h)}}return i}function g(h){if(!h){return}var n=h.parent().children(".Inputfield");var o=null;var j=0;var m=0;var p=0;var k=0;var i=true;function q(r,t){if(!i){return}if(typeof t=="undefined"){t=h}var s=t.attr("id");s=s.replace("wrap_Inputfield_","");console.log(s+" (combined width="+j+", w="+p+"): "+r)}function l(r){if(typeof r=="undefined"){r=o}if(r){a("InputfieldColumnWidthLast uk-width-expand",r)}}n.each(function(){h=$(this);var u=false;var t=false;var s=h.hasClass("InputfieldColumnWidth");var r=!s||h.hasClass("InputfieldColumnWidthFirst");if(r&&o&&j<100){l(o)}p=s?parseInt(h.attr("data-colwidth")):0;if(!p||p>=100){if(j<100&&o){l(o)}o=null;m=0;k=0;j=0;if(i){q("Skipping because full-width",h)}return}if(h.hasClass("InputfieldStateHidden")){if(i){q("A: hidden",h)}k+=p;j+=p;if(o&&j>=100){if(i){q("Updating this to width="+k,o)}a(k,o)}else{m+=p}return}if(!j||j>=100){j=0;t=true;u=false;if(i){q("B: starting new row",h)}}else{if(j+p>100){if(o){l(o)}j=0;t=true;if(i){q("C: start new row because width would exceed 100%",h)}}else{if(j+p==100){u=true;if(i){q("D: width is exactly 100%, so this is the last column",h)}}else{if(i){q("E: not first or last column",h)}}}}if(u){h.addClass("InputfieldColumnWidthLast")}else{h.removeClass("InputfieldColumnWidthLast")}if(t){h.addClass("InputfieldColumnWidthFirst");m=0}else{h.removeClass("InputfieldColumnWidthFirst")}if(m){p+=m;j-=m;m=0}j+=p;k=p;o=u?null:h;a(p,h)});if(j<100&&o){l(o)}}var f=null;var c=function(j,i){var h=$(i);if(j.type=="showInputfield"){h.removeClass("uk-hidden")}else{h.show();h.addClass("uk-hidden")}g(h);if(f){return}f=setTimeout(function(){b(h.closest(".Inputfields"));var k=h.find(".Inputfields");if(k.length){k.each(function(){b($(this))})}f=null},100)};$(document).on("reloaded",function(){e()});$(document).on("hideInputfield",c);$(document).on("showInputfield",c);$("body").addClass("InputfieldColumnWidthsInit");e()},setupTooltips:function(){$(".tooltip, .pw-tooltip").each(function(){$(this).removeClass("tooltip pw-tooltip");UIkit.tooltip($(this))})},linkTargetMainMouseoverEvent:function(){var b=$(this);var a=b.attr("href");if(a.length<2){return}if(b.attr("target")){return}if(b.parent("li").hasClass("PageListActionView")){b.attr("target","_top")}else{b.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