diff --git a/wire/modules/AdminTheme/AdminThemeUikit/config.php b/wire/modules/AdminTheme/AdminThemeUikit/config.php index 09a8fbd6..60cc895b 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/config.php +++ b/wire/modules/AdminTheme/AdminThemeUikit/config.php @@ -266,7 +266,6 @@ function AdminThemeUikitConfig(AdminTheme $adminTheme, InputfieldWrapper $inputf $fieldset->add($f); */ - /* // The following is just for development/testing $f = $modules->get('InputfieldRadios'); $f->attr('name', 'test_radios'); @@ -276,7 +275,8 @@ function AdminThemeUikitConfig(AdminTheme $adminTheme, InputfieldWrapper $inputf $f->addOption(3, 'Option 3'); $f->columnWidth = 30; $inputfields->add($f); - + + /* $f = $modules->get('InputfieldText'); $f->attr('name', 'test_text1'); $f->label = 'Test text 1'; @@ -290,6 +290,26 @@ function AdminThemeUikitConfig(AdminTheme $adminTheme, InputfieldWrapper $inputf $f->showIf = 'test_radios=1|2'; $f->columnWidth = 35; $inputfields->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 = 30; + $inputfields->add($f); + + $f = $modules->get('InputfieldText'); + $f->attr('name', 'test_text4'); + $f->label = 'Test text 4'; + $f->columnWidth = 35; + $inputfields->add($f); + + $f = $modules->get('InputfieldText'); + $f->attr('name', 'test_text5'); + $f->label = 'Test text 5'; + $f->showIf = 'test_radios=3'; + $f->columnWidth = 35; + $inputfields->add($f); */ } \ No newline at end of file diff --git a/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.js b/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.js index 63a67c3a..01eff2a1 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 * */ @@ -543,15 +543,24 @@ var ProcessWireAdminTheme = { } while($in.hasClass('InputfieldColumnWidth')); } + // get or set uk-width class + // width: may be integer of width, or classes you want to set (if $in is also provided) + // $in: An optional Inputfield that you want to populate given or auto-determined classes to function ukGridClass(width, $in) { var ukGridClassDefault = 'uk-width-1-1'; var ukGridClass = ukGridClassDefault; - // var ukGrid = [1,1]; + var widthIsClass = false; - if(!width || width >= 100) { + if(typeof width == "string" && typeof $in != "undefined") { + // class already specified in width argument + ukGridClass = width; + widthIsClass = true; + } else if(!width || width >= 100) { + // full width ukGridClass = ukGridClassDefault; } else { + // determine width from predefined setting for(var pct in ProcessWire.config.ukGridWidths) { var cn = ProcessWire.config.ukGridWidths[pct]; pct = parseInt(pct); @@ -563,80 +572,95 @@ var ProcessWireAdminTheme = { } } - if(ukGridClass != ukGridClassDefault) { + if(!widthIsClass && ukGridClass != ukGridClassDefault) { ukGridClass += '@m'; - if(typeof $in != "undefined") $in.removeClass(ukGridClassDefault); } if(typeof $in != "undefined") { if($in.hasClass(ukGridClass)) { // no need to do anything } else { - var c = $in.attr('class'); - if(c.indexOf('@m') > 0) { - // replace existing class - c = c.replace(/uk-width-\d-\d@m/, ukGridClass); - $in.attr('class', c); - } else { - $in.addClass(ukGridClass); - } + removeUkGridClass($in); + $in.addClass(ukGridClass); } - // $in.data('pwukgrid', ukGrid); } return ukGridClass; } + // remove any uk-width- classes from given str or $inputfield object + 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@m|\d-\d|expand)\s*/g, ''); + if($in !== null) $in.attr('class', cls); + } + return str; + } + + // 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) { var $inputfields = $inputfield.parent().children('.Inputfield'); - var $lastInputfield = null; - var width = 0; + var $lastInputfield = null; // last non-hidden Inputfield + var width = 0; // current combined width of all Inputfields in row var w = 0; // current Inputfield width - var lastW = 0; // last Inputfield width - var lastGridClass = ''; + var lastW = 0; // last Inputfield non-hidden Inputfield width + var debug = false; // verbose console.log messages function consoleLog(msg, $in) { + if(!debug) return; if(typeof $in == "undefined") $in = $inputfield; var id = $in.attr('id'); id = id.replace('wrap_Inputfield_', ''); - //if(id.indexOf('test') !== 0) return; console.log(id + ' (combined width=' + width + ', w=' + w + '): ' + msg); } - - function updateLastInputfield(w) { - if(!$lastInputfield || !$lastInputfield.length) return; - var gridClass = ''; - if($lastInputfield.hasClass('InputfieldColumnWidthFirst')) { - gridClass = 'uk-width-1-1'; - } else if(width > 100) { - gridClass = ''; - } else if(w >= 100) { - gridClass = 'uk-width-1-1'; - } else if($lastInputfield.hasClass('InputfieldColumnWidthLast')) { - ukGridClass(100 - (width - w), $lastInputfield); - } - if(gridClass.length) { - if(lastGridClass.length) $lastInputfield.removeClass(lastGridClass); - $lastInputfield.addClass(gridClass); - } - } - + $inputfields.each(function() { $inputfield = $(this); + var isLastColumn = false; var isFirstColumn = false; + var isNewRow = $inputfield.hasClass('InputfieldColumnWidthFirst') || !$inputfield.hasClass('InputfieldColumnWidth'); + + if(isNewRow && $lastInputfield && width < 100) { + // finish out the previous row, letting width expand to 100% + ukGridClass('InputfieldColumnWidthLast uk-width-expand', $lastInputfield); + } if($inputfield.hasClass('InputfieldColumnWidth')) { + // column having width w = parseInt($inputfield.attr('data-colwidth')); } else { - w = 100; + // full width column + w = 0; + } + + if(!w || w >= 100) { + // full width column consumes its own row, so we can reset everything here and exit + $lastInputfield = null; + lastW = 0; + width = 0; + if(debug) consoleLog("Skipping because full-width", $inputfield); + return; } if($inputfield.hasClass('InputfieldStateHidden')) { - // hidden, does not contribute to layout - // consoleLog('A: hidden', $inputfield); + // hidden column, reserve space even though its hidden + if(debug) consoleLog('A: hidden', $inputfield); + lastW += w; + width += w; + if($lastInputfield) { + // update previous visible column to include the width of the hidden column + if(debug) consoleLog('Updating this to width=' + lastW, $lastInputfield); + ukGridClass(lastW, $lastInputfield); + } return; } @@ -644,21 +668,21 @@ var ProcessWireAdminTheme = { // starting a new row width = 0; isFirstColumn = true; - $inputfield.removeClass('InputfieldColumnWidthLast'); - // consoleLog('B: starting new row'); + isLastColumn = false; + if(debug) consoleLog('B: starting new row', $inputfield); } else if(width + w > 100) { // start new row and update width for last column - if($lastInputfield) $lastInputfield.addClass('InputfieldColumnWidthLast'); - updateLastInputfield(lastW); + if($lastInputfield) ukGridClass('InputfieldColumnWidthLast uk-width-expand', $lastInputfield); width = 0; isFirstColumn = true; - // consoleLog('C: update last column for width and start new row'); + if(debug) consoleLog('C: start new row because width would exceed 100%', $inputfield); } else if(width + w == 100) { + // width comes to exactly 100% so make this the last column in the row isLastColumn = true; - // consoleLog('D: width is 100%'); + if(debug) consoleLog('D: width is exactly 100%, so this is the last column', $inputfield); } else { // column that isn't first or last column - // consoleLog('E: not first or last column'); + if(debug) consoleLog('E: not first or last column', $inputfield); } if(isLastColumn) { @@ -675,16 +699,15 @@ var ProcessWireAdminTheme = { width += w; lastW = w; $lastInputfield = $inputfield; - lastGridClass = ukGridClass(w, $inputfield); + ukGridClass(w, $inputfield); }); - $inputfields.find('.InputfieldColumnWidthLast').removeClass('InputfieldColumnWidthLast'); + //$inputfields.find('.InputfieldColumnWidthLast').removeClass('InputfieldColumnWidthLast'); - if(width < 100) { - // consoleLog('outside call because ' + width + '<100', $lastInputfield); - updateLastInputfield(w); + if(width < 100 && $lastInputfield) { + ukGridClass('InputfieldColumnWidthLast uk-width-expand', $lastInputfield); } - } + } // function updateInputfieldRow var showHideInputfieldTimer = null; diff --git a/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.min.js b/wire/modules/AdminTheme/AdminThemeUikit/scripts/main.min.js index 07b7f68d..33b37ecb 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 d(){$("form.uk-form-horizontal").each(function(){$(this).find(".InputfieldContent > .Inputfields").each(function(){var g=$(this);g.addClass("uk-form-vertical");g.find(".uk-form-label").removeClass("uk-form-label");g.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 h=$(this);var g;do{g=h.next(".InputfieldColumnWidth");if(!g.length||g.hasClass("InputfieldColumnWidthFirst")){break}g.addClass("InputfieldIsOffset");h=g}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(g){$(".InputfieldRowFirst",g).removeClass("InputfieldRowFirst");$(".InputfieldRowLast",g).removeClass("InputfieldRowLast");var h=g.children(".Inputfield:not(.InputfieldStateHidden):eq(0)");if(!h.length){return}do{h.addClass("InputfieldRowFirst");h=h.next(".Inputfield:not(.InputfieldStateHidden)")}while(h.hasClass("InputfieldColumnWidth")&&!h.hasClass("InputfieldColumnWidthFirst"));h=g.children(".Inputfield:last-child");while(h.length&&h.hasClass("InputfieldStateHidden")){h=h.prev(".Inputfield")}do{h.addClass("InputfieldRowLast");if(!h.hasClass("InputfieldColumnWidth")||h.hasClass("InputfieldColumnWidthFirst")){break}h=h.prev(".Inputfield:not(.InputfieldStateHidden)")}while(h.hasClass("InputfieldColumnWidth"))}function a(h){var g="uk-width-1-1";if(!h||h>=100){return g}for(var i in ProcessWire.config.ukGridWidths){var j=ProcessWire.config.ukGridWidths[i];i=parseInt(i);if(h>=i){g="uk-width-"+j+"@m";break}}return g}function f(g){var l=g.parent().children(".Inputfield");var m=null;var i=0;var n=0;var j=0;var h="";function o(r,p){var q=r.attr("id");q=q.replace("wrap_Inputfield_","");console.log(q+" (width="+i+", w="+n+"): "+p)}function k(p){if(!m||!m.length){return}var q="";if(m.hasClass("InputfieldColumnWidthFirst")){q="uk-width-1-1"}else{if(i>100){q=""}else{if(p>=100){q="uk-width-1-1"}else{}}}if(q.length){if(h.length){m.removeClass(h)}m.addClass(q)}}l.each(function(){var p=$(this);if(p.hasClass("InputfieldColumnWidth")){n=parseInt(p.attr("data-colwidth"))}else{n=100}if(p.hasClass("InputfieldStateHidden")){i+=n;k(n);return}if(!i||i>=100){i=0}else{if(i+n>100){k(j);i=0}else{p.removeClass("InputfieldColumnWidthFirst")}}if(!i){p.addClass("InputfieldColumnWidthFirst")}i+=n;j=n;m=p;h=a(n);p.addClass(h)});if(i<100){o(m,"outside call because "+i+"<100");k(n)}}var e=null;var c=function(i,h){var g=$(h);if(i.type=="showInputfield"){g.removeClass("uk-hidden")}else{g.show();g.addClass("uk-hidden")}f(g);if(e){return}e=setTimeout(function(){b(g.closest(".Inputfields"));var j=g.find(".Inputfields");if(j.length){j.each(function(){b($(this))})}e=null},100)};$(document).on("reloaded",function(){d()});$(document).on("hideInputfield",c);$(document).on("showInputfield",c);$("body").addClass("InputfieldColumnWidthsInit");d()},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(m){var j=m.parent().children(".Inputfield");var k=null;var l=0;var h=0;var o=0;var i=false;function n(p,r){if(!i){return}if(typeof r=="undefined"){r=m}var q=r.attr("id");q=q.replace("wrap_Inputfield_","");console.log(q+" (combined width="+l+", w="+h+"): "+p)}j.each(function(){m=$(this);var r=false;var q=false;var p=m.hasClass("InputfieldColumnWidthFirst")||!m.hasClass("InputfieldColumnWidth");if(p&&k&&l<100){a("InputfieldColumnWidthLast uk-width-expand",k)}if(m.hasClass("InputfieldColumnWidth")){h=parseInt(m.attr("data-colwidth"))}else{h=0}if(!h||h>=100){k=null;o=0;l=0;if(i){n("Skipping because full-width",m)}return}if(m.hasClass("InputfieldStateHidden")){if(i){n("A: hidden",m)}o+=h;l+=h;if(k){if(i){n("Updating this to width="+o,k)}a(o,k)}return}if(!l||l>=100){l=0;q=true;r=false;if(i){n("B: starting new row",m)}}else{if(l+h>100){if(k){a("InputfieldColumnWidthLast uk-width-expand",k)}l=0;q=true;if(i){n("C: start new row because width would exceed 100%",m)}}else{if(l+h==100){r=true;if(i){n("D: width is exactly 100%, so this is the last column",m)}}else{if(i){n("E: not first or last column",m)}}}}if(r){m.addClass("InputfieldColumnWidthLast")}else{m.removeClass("InputfieldColumnWidthLast")}if(q){m.addClass("InputfieldColumnWidthFirst")}else{m.removeClass("InputfieldColumnWidthFirst")}l+=h;o=h;k=m;a(h,m)});if(l<100&&k){a("InputfieldColumnWidthLast uk-width-expand",k)}}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