From 546340652f5f1fdb9f920a60c5039e16cf8f03bd Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Mon, 1 Oct 2018 11:21:43 -0400 Subject: [PATCH] Attempt fix for issue processwire/processwire-issues#661 where cached PageList data could re-appear when closing then re-opening an item in the PageList. Was an issue if an item was moved or trashed, because it could appear to still be in the old location in the PageList even when it wasn't. This commit also refactors several parts in ProcessPageList.js. --- .../ProcessPageList/ProcessPageList.js | 129 ++++++++++++++---- .../ProcessPageList/ProcessPageList.min.js | 2 +- .../ProcessPageList/ProcessPageList.module | 9 +- 3 files changed, 108 insertions(+), 32 deletions(-) diff --git a/wire/modules/Process/ProcessPageList/ProcessPageList.js b/wire/modules/Process/ProcessPageList/ProcessPageList.js index 9c82830a..eec0da6c 100644 --- a/wire/modules/Process/ProcessPageList/ProcessPageList.js +++ b/wire/modules/Process/ProcessPageList/ProcessPageList.js @@ -108,7 +108,7 @@ $(document).ready(function() { // IDs of the pages that we want to automatically open (default none) openPageIDs: [], - // pre-rendered data corresponding to openPageIDs, indexed by '_123' where 123 is id + // pre-rendered data corresponding to openPageIDs, indexed by 'id-start', i.e. 123-0 openPageData: {}, // speed at which the slideUp/slideDown run (in ms) @@ -510,7 +510,9 @@ $(document).ready(function() { var $children = listChildren($(data.children)); var nextStart = data.start + data.limit; //var openPageKey = id + '-' + start; - + + if($target.hasClass('PageListItem')) setNumChildren($target, data.page.numChildren); + if(data.page.numChildren > nextStart) { var $a = $("").attr('href', nextStart).data('pageId', id).text(options.moreLabel).click(clickMore); $children.append($("").addClass('PageListActions actions').append($("
  • ").addClass('PageListActionMore').append($a))); @@ -572,8 +574,6 @@ $(document).ready(function() { } } */ - $target.removeClass('PageListForceReload'); // if it happens to be present - }; if(!replace) $target.append($loading.fadeIn('fast')); @@ -628,6 +628,46 @@ $(document).ready(function() { return $list; } + /** + * Set a parent to reload its children on next access rather than using cached data + * + * @param $pageListItem .PageList or .PageListItem element + * @param reloadNow Reload the list now? (default=false) + * + */ + function setForceReload($pageListItem, reloadNow) { + + if($pageListItem.hasClass('PageList')) $pageListItem = $pageListItem.prev('.PageListItem'); + + $pageListItem.addClass('PageListForceReload'); + + var id = $pageListItem.data('pageId'); + var prefix = id + '-'; + + if(typeof options.openPageData != "undefined") { + // remove cached items from openPageData + var openPageData = {}; + for(var key in options.openPageData) { + if(key.indexOf(prefix) === 0) { + // skip it + } else { + openPageData[key] = options.openPageData[key]; + } + } + options.openPageData = openPageData; + } + + if(typeof reloadNow != "undefined" && reloadNow) { + var $a = $pageListItem.children('a.PageListPage'); + if($pageListItem.hasClass('PageListItemOpen')) { + $a.click(); + setTimeout(function() { $a.click(); }, 250); + } else { + $a.click(); + } + } + } + /** * * @param $ul Any element that contains items needing click events attached @@ -750,6 +790,36 @@ $(document).ready(function() { return $li; } + /** + * Get number of children for given .PageListItem + * + */ + function getNumChildren($item) { + var $numChildren = $item.children('.PageListNumChildren'); + if(!$numChildren.length) return 0; + var numChildren = $numChildren.text(); + return numChildren.length ? parseInt(numChildren) : 0; + } + + /** + * Set number of children for given PageListItem + * + */ + function setNumChildren($item, numChildren) { + var $numChildren = $item.children('.PageListNumChildren'); + if(!$numChildren.length) { + $numChildren = $('0').addClass('PageListNumChildren detail'); + $item.append($numChildren); + } + if(numChildren < 1) { + $item.removeClass('PageListHasChildren').addClass('PageListNoChildren'); + numChildren = ''; + } else { + $item.removeClass('PageListNoChildren').addClass('PageListHasChildren'); + } + $numChildren.text(numChildren); + } + /** * Extra actions button click handler * @@ -852,6 +922,7 @@ $(document).ready(function() { $liNew.hide(); $li.after($liNew); $liNew.slideDown(); + setForceReload($liNew.closest('.PageList')); } else if($liNew) { // update existing item if($li.hasClass('PageListItemOpen')) $liNew.addClass('PageListItemOpen'); @@ -862,12 +933,16 @@ $(document).ready(function() { // display message for 1 second, then remove setTimeout(function () { $msg.fadeOut('normal', function () { + var $parentItem = $liNew.closest('.PageList').prev('.PageListItem'); + var numChildren = getNumChildren($parentItem); if(removeItem) { - var $numChildren = $liNew.closest('.PageList').prev('.PageListItem').children('.PageListNumChildren'); - if($numChildren.length) { - var numChildren = parseInt($numChildren.text()); - if(numChildren > 0) $numChildren.text(numChildren-1); - } + numChildren--; + } else if(addNew) { + numChildren++; + } + setNumChildren($parentItem, numChildren); + setForceReload($parentItem); + if(removeItem) { $liNew.next('.PageList').fadeOut('fast'); $liNew.fadeOut('fast', function() { $liNew.remove(); @@ -882,16 +957,7 @@ $(document).ready(function() { // refresh the children of the page represented by refreshChildren if(refreshChildren) { var $refreshParent = $(".PageListID" + refreshChildren); - if($refreshParent.length) { - $refreshParent.addClass('PageListForceReload'); - var $a = $refreshParent.children('a.PageListPage'); - if($refreshParent.hasClass('PageListItemOpen')) { - $a.click(); - setTimeout(function() { $a.click(); }, 250); - } else { - $a.click(); - } - } + if($refreshParent.length) setForceReload($refreshParent, true); } }); @@ -1052,7 +1118,7 @@ $(document).ready(function() { $removeItems = $parentList.children(); $parentList = $parentItem; } - $parentList.addClass('PageListForceReload'); + setForceReload($parentList); loadChildren(parentID, $parentList, start, false, true, true, function() { if($removeItems && $removeItems.length) $removeItems.remove(); }); @@ -1105,7 +1171,7 @@ $(document).ready(function() { $root.find('.PageListItemOpen').each(function() { var numChildren = $(this).children('.PageListNumChildren').text(); // if there are children and the next sibling doesn't contain a visible .PageList, then don't add a placeholder - if(parseInt(numChildren) > 1 && $(this).next().find(".PageList:visible").size() == 0) { + if(parseInt(numChildren) > 1 && $(this).next().find(".PageList:visible").length == 0) { return; } var $ul = $("
    ").addClass('PageListPlaceholder').addClass('PageList'); @@ -1209,14 +1275,21 @@ $(document).ready(function() { var parent_id = parseInt($ulPrev.data('pageId')); // check if item was moved to an invalid spot - // in this case, a spot between another open PageListItem and it's PageList + // in this case, a spot between another open PageListItem and its PageList var $liPrev = $li.prev(".PageListItem"); if($liPrev.is(".PageListItemOpen")) return false; // check if item was moved into an invisible parent placeholder PageList if($ul.is('.PageListPlaceholder')) { - // if so, it's no longer a placeholder, but a real PageList - $ul.removeClass('PageListPlaceholder').children('.PageListPlaceholderItem').remove(); + var $ulNext = $ul.next(); + if($ulNext.is('.PageList:visible')) { + // first item at top of list ended up in placeholder, but belongs in next sibling PageList + $ulNext.prepend($li); + $ul = $ulNext; + } else { + // if so, it's no longer a placeholder, but a real PageList + $ul.removeClass('PageListPlaceholder').children('.PageListPlaceholderItem').remove(); + } } $root.addClass('PageListSortSaving'); @@ -1266,15 +1339,17 @@ $(document).ready(function() { n = ''; $from.remove(); // empty list, no longer needed } - $numChildren.text(n); + $numChildren.text(n); + setForceReload($fromItem); // update count where item went to var $toItem = $ul.prev(".PageListItem"); $numChildren = $toItem.children(".PageListNumChildren"); n = $numChildren.text().length > 0 ? parseInt($numChildren.text()) + 1 : 1; - $numChildren.text(n); + $numChildren.text(n); + setForceReload($toItem); } - $from.attr('id', ''); + $from.attr('id', ''); // remove tempoary #PageListMoveFrom $root.removeClass('PageListSortSaving'); }, 'json'); diff --git a/wire/modules/Process/ProcessPageList/ProcessPageList.min.js b/wire/modules/Process/ProcessPageList/ProcessPageList.min.js index ff6c5e54..765e44b7 100644 --- a/wire/modules/Process/ProcessPageList/ProcessPageList.min.js +++ b/wire/modules/Process/ProcessPageList/ProcessPageList.min.js @@ -1 +1 @@ -function ProcessPageListInit(){if(ProcessWire.config.ProcessPageList){$("#"+ProcessWire.config.ProcessPageList.containerID).ProcessPageList(ProcessWire.config.ProcessPageList)}}$(document).ready(function(){ProcessPageListInit()});(function(a){a.fn.ProcessPageList=function(c){var d={mode:"",limit:35,rootPageID:0,showRootPage:true,selectedPageID:0,adminPageID:2,trashPageID:7,langID:0,selectAllowUnselect:false,selectShowPageHeader:true,selectShowPath:true,selectStartLabel:"Change",selectCancelLabel:"Cancel",selectSelectLabel:"Select",selectUnselectLabel:"Unselect",moreLabel:"More",trashLabel:"Trash",moveInstructionLabel:"Click and drag to move",selectSelectHref:"#",selectUnselectHref:"#",ajaxURL:ProcessWire.config.urls.admin+"page/list/",ajaxMoveURL:ProcessWire.config.urls.admin+"page/sort/",paginationClass:"PageListPagination",paginationCurrentClass:"PageListPaginationCurrent",paginationLinkClass:"ui-state-default",paginationLinkCurrentClass:"ui-state-active",paginationHoverClass:"ui-state-hover",paginationDisabledClass:"ui-priority-secondary",openPagination:0,openPageIDs:[],openPageData:{},speed:200,useHoverActions:false,hoverActionDelay:250,hoverActionFade:150,useNarrowActions:a("body").hasClass("pw-narrow-width"),spinnerMarkup:"",labelName:""};var b=[];var f=false;var e=a("body").hasClass("modal")||a("body").hasClass("pw-iframe");if(typeof ProcessWire.config.ProcessPageList!="undefined"){a.extend(d,ProcessWire.config.ProcessPageList)}a.extend(d,c);return this.each(function(l){var w=a(this);var s;var F;var v=a(d.spinnerMarkup);var H=0;var h=0;function z(){F=a("
    ");if(w.is(":input")){d.selectedPageID=w.val();if(!d.selectedPageID.length){d.selectedPageID=0}d.mode="select";w.before(F);s=w.closest(".InputfieldContent");D()}else{d.mode="actions";w.append(F);s=w;m(d.rootPageID>0?d.rootPageID:1,F,0,true)}a(document).on("pageListRefresh",function(J,I){G(I)});if(d.useHoverActions){F.addClass("PageListUseHoverActions");o()}}function o(){var K=null;var L=null;var J=null;function I(N){var O=N.find(".PageListActions");if(!O.is(":visible")||N.hasClass("PageListItemOpen")){N.addClass("PageListItemHover");O.css("display","inline").css("opacity",0).animate({opacity:1},d.hoverActionFade)}}function M(N){var O=N.find(".PageListActions");N.removeClass("PageListItemHover");if(O.is(":visible")){O.animate({opacity:0},d.hoverActionFade,function(){O.hide()})}}s.on("keydown",".PageListItem",function(O){O=O||window.event;if(O.keyCode==0||O.keyCode==32){var N=a(this).find(".PageListActions");if(N.is(":visible")){N.css("display","none")}else{N.css("display","inline-block")}return false}});s.on("mouseover",".PageListItem",function(P){if(F.is(".PageListSorting")||F.is(".PageListSortSaving")){return}if(!a(this).children("a:first").is(":hover")){return}J=a(this);if(J.hasClass("PageListItemHover")){return}var N=a(this);if(K){clearTimeout(K)}var O=d.hoverActionDelay;K=setTimeout(function(){if(J.attr("class")==N.attr("class")){if(!J.children("a:first").is(":hover")){return}var Q=s.find(".PageListItemHover");I(J);Q.each(function(){M(a(this))})}},O)}).on("mouseout",".PageListItem",function(P){if(F.is(".PageListSorting")||F.is(".PageListSortSaving")){return}var N=a(this);if(N.hasClass("PageListItemOpen")){return}if(!N.hasClass("PageListItemHover")){return}var O=d.hoverActionDelay*0.7;L=setTimeout(function(){if(N.is(":hover")){return}if(N.attr("class")==J.attr("class")){return}M(N)},O)})}function D(){var I=a("").addClass("PageListActions PageListSelectActions actions");var K=a("

    ").addClass("PageListSelectName");if(d.selectShowPageHeader){K.append(v)}var L=a("").addClass("PageListSelectActionToggle").addClass("PageListSelectActionToggleStart").attr("href","#").text(d.selectStartLabel).click(function(){if(a(this).text()==d.selectStartLabel){m(d.rootPageID>0?d.rootPageID:1,F,0,true);a(this).text(d.selectCancelLabel).removeClass("PageListSelectActionToggleStart").addClass("PageListSelectActionToggleCancel")}else{a(this).addClass("PageListSelectActionToggleStart").removeClass("PageListSelectActionToggleCancel");F.children(".PageList").slideUp(d.speed,function(){a(this).remove()});a(this).text(d.selectStartLabel)}return false});I.append(a("
  • ").append(L));F.append(a("
    ").addClass("PageListSelectHeader").append(K).append(I));if(d.selectShowPageHeader){var J=d.ajaxURL+"?id="+d.selectedPageID+"&render=JSON&start=0&limit=0&lang="+d.langID+"&mode="+d.mode;if(d.labelName.length){J+="&labelName="+d.labelName}a.getJSON(J,function(O){var M="";if(d.selectShowPath){M=O.page.path;if(M.substring(-1)=="/"){M=M.substring(0,M.length-1)}M=M.substring(0,M.lastIndexOf("/")+1);M=''+M+" "}var N=d.selectedPageID>0?M+O.page.label:"";F.children(".PageListSelectHeader").find(".PageListSelectName").html(N)})}}function y(){f=false}function A(I,J,P,T){var R=9;var K=Math.ceil(T/P);h=J>=P?Math.floor(J/P):0;if(h==0){H=0}else{if((h-R+1)>H){H=h-Math.floor(R/2)}else{if(H>0&&h==H){H=h-Math.ceil(R/2)}}}if(H>K-R){H=K-R}if(H<0){H=0}var Q=a("").addClass(d.paginationClass).data("paginationInfo",{start:J,limit:P,total:T});var S=function(ac){var W=a(this).parents("ul."+d.paginationClass);var ab=W.data("paginationInfo");if(!ab){return false}var ad=parseInt(a(this).attr("href"))*ab.limit;if(ad===NaN){ad=0}var X=A(I,ad,ab.limit,ab.total);var Z=a(d.spinnerMarkup);var aa=a("
  •  
  • ").addClass(d.paginationDisabledClass).append(Z.hide());W.siblings(".PageList").remove();W.replaceWith(X);X.append(aa);Z.fadeIn("fast");var Y=X.siblings().css("opacity",0.5);m(I,X.parent(),a(this).attr("href")*ab.limit,false,false,true,function(){Z.fadeOut("fast",function(){aa.remove()});X.parent(".PageList").prev(".PageListItem").data("start",ad);g()});return false};var O=null;var L=null;for(var V=H,M=0;V").html(V+1).attr("href",V).addClass(d.paginationLinkClass);var U=a("
  • ").addClass(d.paginationClass+M).append(N);if(V==h){U.addClass(d.paginationCurrentClass).find("a").removeClass(d.paginationLinkClass).addClass(d.paginationLinkCurrentClass)}Q.append(U);if(!L){L=U.clone().removeClass(d.paginationCurrentClass+" "+d.paginationLinkCurrentClass);L.find("a").removeClass(d.paginationLinkCurrentClass).addClass(d.paginationLinkClass)}if(!O){O=L.clone().removeClass(d.paginationLinkClass).addClass(d.paginationDisabledClass).html("…")}if(M>=R&&V0){$firstItem=L.clone();$firstItem.find("a").text("1").attr("href","0").click(S);Q.prepend(O.clone()).prepend($firstItem)}if(h+1").attr("href",h+1);Q.append($nextBtn)}if(h>0){$prevBtn=L.clone();$prevBtn.find("a").attr("href",h-1).html("");Q.prepend($prevBtn)}Q.find("a").click(S).hover(function(){a(this).addClass(d.paginationHoverClass)},function(){a(this).removeClass(d.paginationHoverClass)});return Q}function m(J,M,K,O,R,L,Q){if(R==undefined){R=true}if(L==undefined){L=false}var N=function(W){if(W&&W.error){ProcessWire.alert(W.message);v.hide();f=false;return}var S=k(a(W.children));var V=W.start+W.limit;if(W.page.numChildren>V){var U=a("").attr("href",V).data("pageId",J).text(d.moreLabel).click(C);S.append(a("
      ").addClass("PageListActions actions").append(a("
    • ").addClass("PageListActionMore").append(U)))}if(R&&(W.page.numChildren>V||W.start>0)){S.prepend(A(J,W.start,W.limit,W.page.numChildren))}S.hide();if(O){var X;X=k(a(W.page));if(d.showRootPage){X.children(".PageListItem").addClass("PageListItemOpen")}else{X.children(".PageListItem").hide().parent(".PageList").addClass("PageListRootHidden")}X.append(S);M.append(X)}else{if(M.is(".PageList")){var T=S.children(".PageListItem, .PageListActions");if(L){M.children(".PageListItem, .PageListActions").replaceWith(T)}else{M.append(T)}}else{M.after(S)}}if(v.parent().is(".PageListRoot")){v.hide()}else{v.fadeOut("fast")}if(L){S.show();y();if(Q!=undefined){Q()}}else{S.slideDown(d.speed,function(){y();if(Q!=undefined){Q()}})}S.prev(".PageListItem").data("start",W.start);M.removeClass("PageListForceReload")};if(!L){M.append(v.fadeIn("fast"))}var P=J+"-"+K;if(typeof d.openPageData[P]!="undefined"&&!M.hasClass("PageListID7")&&!M.hasClass("PageListForceReload")){N(d.openPageData[P]);return}var I=d.ajaxURL+"?id="+J+"&render=JSON&start="+K+"&lang="+d.langID+"&open="+d.openPageIDs[0]+"&mode="+d.mode;if(d.labelName.length){I+="&labelName="+d.labelName}a.getJSON(I).done(function(T,U,S){N(T)}).fail(function(S,U,T){N({error:1,message:!S.status?d.ajaxNetworkError:d.ajaxUnknownError})})}function k(I){var K=a("
      ").addClass("PageList");var J=K;I.each(function(M,L){J.append(j(L))});t(J);return K}function t(I){a("a.PageListPage",I).click(u);I.on("click",".PageListActionMove a",i);a(".PageListActionSelect a",I).click(B);a(".PageListTriggerOpen:not(.PageListID1) > a.PageListPage",I).click();a(".PageListActionExtras > a:not(.clickExtras)",I).addClass("clickExtras").on("click",p)}function j(I){var O=a("
      ").data("pageId",I.id).addClass("PageListItem").addClass("PageListTemplate_"+I.template);var K=a("").attr("href","#").attr("title",I.path).html(I.label).addClass("PageListPage label");O.addClass(I.numChildren>0?"PageListHasChildren":"PageListNoChildren").addClass("PageListID"+I.id);if(I.status==0){O.addClass("PageListStatusOff disabled")}if(I.status&2048){O.addClass("PageListStatusUnpublished secondary")}if(I.status&1024){O.addClass("PageListStatusHidden secondary")}if(I.status&512){O.addClass("PageListStatusTemp secondary")}if(I.status&16){O.addClass("PageListStatusSystem")}if(I.status&8){O.addClass("PageListStatusSystem")}if(I.status&4){O.addClass("PageListStatusLocked")}if(I.addClass&&I.addClass.length){O.addClass(I.addClass)}if(I.type&&I.type.length>0){if(I.type=="System"){O.addClass("PageListStatusSystem")}}a(d.openPageIDs).each(function(U,T){T=parseInt(T);if(I.id==T){O.addClass("PageListTriggerOpen")}});O.append(K);var L=a(""+(I.numChildren?I.numChildren:"")+"").addClass("PageListNumChildren detail");O.append(L);if(I.note&&I.note.length){O.append(a(""+I.note+"").addClass("PageListNote detail"))}var Q=a("
        ").addClass("PageListActions actions");var S=d.rootPageID==I.id?[]:[{name:d.selectSelectLabel,url:d.selectSelectHref}];if(d.mode=="actions"){S=I.actions}else{if(d.selectAllowUnselect){if(I.id==w.val()){S=[{name:d.selectUnselectLabel,url:d.selectUnselectHref}]}}}var N=null;var R=null;var M={};var P=false;if(d.useNarrowActions){for(var J=0;J").html(W.name).attr("href",W.url);if(!e){if(W.cn=="Edit"){V.addClass("pw-modal pw-modal-large pw-modal-longclick");V.attr("data-buttons","#ProcessPageEdit > .Inputfields > .InputfieldSubmit .ui-button")}else{if(W.cn=="View"){V.addClass("pw-modal pw-modal-large pw-modal-longclick")}}}if(typeof W.extras!="undefined"){for(var U in W.extras){M[U]=W.extras[U]}R=V}var X=a("
      • ").addClass("PageListAction"+T).append(V);if(T=="Extras"){N=X}else{Q.append(X)}});if(R){R.data("extras",M)}if(N){Q.append(N);N.addClass("ui-priority-secondary")}O.append(Q);return O}function p(P){var J=a(this);var L=J.data("extras");if(typeof L=="undefined"){return false}var S=J.closest(".PageListItem");var T=J.closest(".PageListActions");var N=null;var Q=J.children("i.fa");var R=T.find("li.PageListActionExtra");Q.toggleClass("fa-flip-horizontal");if(R.length){R.fadeOut(100,function(){R.remove()});return false}for(var K in L){var I=L[K];var O=a("").addClass("PageListActionExtra PageListAction"+I.cn).attr("href",I.url).html(I.name);if(typeof I.ajax!="undefined"&&I.ajax==true){O.click(function(){S.find(".PageListActions").hide();var aa=a(d.spinnerMarkup);var X=a(this).attr("href");var W=X.match(/[\?&]action=([-_a-zA-Z0-9]+)/)[1];var V=parseInt(X.match(/[\?&]id=([0-9]+)/)[1]);var Z=a("#PageListContainer").attr("data-token-name");var Y=a("#PageListContainer").attr("data-token-value");var U={action:W,id:V};U[Z]=Y;S.append(aa);a.post(X+"&render=json",U,function(ab){if(ab.success){S.fadeOut("fast",function(){var ah=false;var ai=ab.remove;var ag=ab.refreshChildren;var ae=false;if(typeof ab.child!="undefined"){ae=j(ab.child)}else{if(typeof ab.newChild!="undefined"){ae=j(ab.newChild);ah=true}}if(ae){var ac=a("").addClass("notes").html(ab.message);ac.prepend("  ");ae.append(ac);t(ae)}if(ah){aa.fadeOut("normal",function(){aa.remove()});ae.hide();S.after(ae);ae.slideDown()}else{if(ae){if(S.hasClass("PageListItemOpen")){ae.addClass("PageListItemOpen")}S.replaceWith(ae)}}S.fadeIn("fast",function(){setTimeout(function(){ac.fadeOut("normal",function(){if(ai){var aj=ae.closest(".PageList").prev(".PageListItem").children(".PageListNumChildren");if(aj.length){var ak=parseInt(aj.text());if(ak>0){aj.text(ak-1)}}ae.next(".PageList").fadeOut("fast");ae.fadeOut("fast",function(){ae.remove()})}else{ac.remove()}})},1000)});if(ag){var ad=a(".PageListID"+ag);if(ad.length){ad.addClass("PageListForceReload");var af=ad.children("a.PageListPage");if(ad.hasClass("PageListItemOpen")){af.click();setTimeout(function(){af.click()},250)}else{af.click()}}}})}else{aa.remove();ProcessWire.alert(ab.message)}});return false})}else{}var M=a("
      • ").addClass("PageListActionExtra PageListAction"+I.cn).append(O);O.hide();if(I.cn=="Trash"){S.addClass("trashable");N=M}else{T.append(M)}}if(N){T.append(N)}T.find(".PageListActionExtra a").fadeIn(50,function(){a(this).css("display","inline-block")});return false}function u(L){var P=a(this);var O=P.parent(".PageListItem");var N=O.data("pageId");if(f&&!O.hasClass("PageListTriggerOpen")){return false}if(F.is(".PageListSorting")||F.is(".PageListSortSaving")){return false}if(O.hasClass("PageListItemOpen")){var I=true;if(O.hasClass("PageListID1")&&!O.hasClass("PageListForceReload")&&d.mode!="select"){var J=a(this).closest(".PageListRoot").find(".PageListItemOpen:not(.PageListID1)");if(J.length){F.find(".PageListItemOpen:not(.PageListID1)").each(function(){a(this).children("a.PageListPage").click()});I=false}}if(I){O.removeClass("PageListItemOpen").next(".PageList").slideUp(d.speed,function(){a(this).remove()})}}else{O.addClass("PageListItemOpen");var K=parseInt(O.children(".PageListNumChildren").text());if(K>0||O.hasClass("PageListForceReload")){f=true;var M=E(N);m(N,O,M,false)}}if(d.mode!="select"){setTimeout(function(){g()},250)}return false}function E(M){var L=0;for(n=0;n1&&a(this).next().find(".PageList:visible").size()==0){return}var P=a("
        ").addClass("PageListPlaceholder").addClass("PageList");P.append(a("
        ").addClass("PageListItem PageListPlaceholderItem").html(" "));a(this).after(P)});var M={stop:q,helper:"PageListItemHelper",items:".PageListItem:not(.PageListItemOpen)",placeholder:"PageListSortPlaceholder",start:function(Q,P){a(".PageListSortPlaceholder").css("width",P.item.children(".PageListPage").outerWidth()+"px")}};var J=F.children(".PageList").children(".PageList");var I=a("
        "+d.selectCancelLabel+"").click(function(){return r(N)});var L=N.children("ul.PageListActions");var K=a(" "+d.moveInstructionLabel+"");K.append(I);L.before(K);N.addClass("PageListSortItem");N.parent(".PageList").attr("id","PageListMoveFrom");F.addClass("PageListSorting");J.addClass("PageListSortingList").sortable(M);return false}function r(J){var I=F.find(".PageListSortingList");I.sortable("destroy").removeClass("PageListSortingList");J.removeClass("PageListSortItem").parent(".PageList").removeAttr("id");J.find(".PageListMoveNote").remove();F.find(".PageListPlaceholder").remove();F.removeClass("PageListSorting");return false}function x(L){var I=F.find(".PageListID"+d.trashPageID);if(!I.hasClass("PageListItemOpen")){F.removeClass("PageListSorting");I.children("a").click();F.addClass("PageListSorting")}var J=I.next(".PageList");if(J.length==0){J=a("
        ");I.after(J)}J.prepend(L);var K={item:L};q(null,K)}function q(O,T){var Q=T.item;var L=Q.children(".PageListPage");var J=parseInt(Q.data("pageId"));var N=Q.parent(".PageList");var R=a("#PageListMoveFrom");var S=N.prev().is(".PageListItem")?N.prev():N.prev().prev();var P=parseInt(S.data("pageId"));var K=Q.prev(".PageListItem");if(K.is(".PageListItemOpen")){return false}if(N.is(".PageListPlaceholder")){N.removeClass("PageListPlaceholder").children(".PageListPlaceholderItem").remove()}F.addClass("PageListSortSaving");r(Q);Q.append(v.fadeIn("fast"));var M="";N.children(".PageListItem").each(function(){M+=a(this).data("pageId")+","});var I={id:J,parent_id:P,sort:M};I[a("#PageListContainer").attr("data-token-name")]=a("#PageListContainer").attr("data-token-value");var U="unknown";a.post(d.ajaxMoveURL,I,function(X){v.fadeOut("fast");L.fadeOut("fast",function(){a(this).fadeIn("fast");Q.removeClass("PageListSortItem");F.removeClass("PageListSorting")});if(X&&X.error){ProcessWire.alert(X.message)}if(!N.is("#PageListMoveFrom")){var W=R.prev(".PageListItem");var V=W.children(".PageListNumChildren");var Z=V.text().length>0?parseInt(V.text())-1:0;if(Z==0){Z="";R.remove()}V.text(Z);var Y=N.prev(".PageListItem");V=Y.children(".PageListNumChildren");Z=V.text().length>0?parseInt(V.text())+1:1;V.text(Z)}R.attr("id","");F.removeClass("PageListSortSaving")},"json");Q.trigger("pageMoved");return true}function B(){var O=a(this);var N=O.parent("li").parent("ul.PageListActions").parent(".PageListItem");var M=N.data("pageId");var K=N.children(".PageListPage");var L=K.text();var J=K.attr("title");var I=F.children(".PageListSelectHeader");if(O.text()==d.selectUnselectLabel){M=0;L=""}if(M!=w.val()){w.val(M).change()}if(d.selectShowPageHeader){I.children(".PageListSelectName").text(L)}w.trigger("pageSelected",{id:M,url:J,title:L,a:K});I.find(".PageListSelectActionToggle").click();if(d.selectSelectHref=="#"){return false}return true}z()})}})(jQuery); \ No newline at end of file +function ProcessPageListInit(){if(ProcessWire.config.ProcessPageList){$("#"+ProcessWire.config.ProcessPageList.containerID).ProcessPageList(ProcessWire.config.ProcessPageList)}}$(document).ready(function(){ProcessPageListInit()});(function(a){a.fn.ProcessPageList=function(c){var d={mode:"",limit:35,rootPageID:0,showRootPage:true,selectedPageID:0,adminPageID:2,trashPageID:7,langID:0,selectAllowUnselect:false,selectShowPageHeader:true,selectShowPath:true,selectStartLabel:"Change",selectCancelLabel:"Cancel",selectSelectLabel:"Select",selectUnselectLabel:"Unselect",moreLabel:"More",trashLabel:"Trash",moveInstructionLabel:"Click and drag to move",selectSelectHref:"#",selectUnselectHref:"#",ajaxURL:ProcessWire.config.urls.admin+"page/list/",ajaxMoveURL:ProcessWire.config.urls.admin+"page/sort/",paginationClass:"PageListPagination",paginationCurrentClass:"PageListPaginationCurrent",paginationLinkClass:"ui-state-default",paginationLinkCurrentClass:"ui-state-active",paginationHoverClass:"ui-state-hover",paginationDisabledClass:"ui-priority-secondary",openPagination:0,openPageIDs:[],openPageData:{},speed:200,useHoverActions:false,hoverActionDelay:250,hoverActionFade:150,useNarrowActions:a("body").hasClass("pw-narrow-width"),spinnerMarkup:"",labelName:""};var b=[];var f=false;var e=a("body").hasClass("modal")||a("body").hasClass("pw-iframe");if(typeof ProcessWire.config.ProcessPageList!="undefined"){a.extend(d,ProcessWire.config.ProcessPageList)}a.extend(d,c);return this.each(function(m){var y=a(this);var u;var I;var x=a(d.spinnerMarkup);var K=0;var h=0;function B(){I=a("
        ");if(y.is(":input")){d.selectedPageID=y.val();if(!d.selectedPageID.length){d.selectedPageID=0}d.mode="select";y.before(I);u=y.closest(".InputfieldContent");G()}else{d.mode="actions";y.append(I);u=y;o(d.rootPageID>0?d.rootPageID:1,I,0,true)}a(document).on("pageListRefresh",function(M,L){J(L)});if(d.useHoverActions){I.addClass("PageListUseHoverActions");p()}}function p(){var N=null;var O=null;var M=null;function L(Q){var R=Q.find(".PageListActions");if(!R.is(":visible")||Q.hasClass("PageListItemOpen")){Q.addClass("PageListItemHover");R.css("display","inline").css("opacity",0).animate({opacity:1},d.hoverActionFade)}}function P(Q){var R=Q.find(".PageListActions");Q.removeClass("PageListItemHover");if(R.is(":visible")){R.animate({opacity:0},d.hoverActionFade,function(){R.hide()})}}u.on("keydown",".PageListItem",function(R){R=R||window.event;if(R.keyCode==0||R.keyCode==32){var Q=a(this).find(".PageListActions");if(Q.is(":visible")){Q.css("display","none")}else{Q.css("display","inline-block")}return false}});u.on("mouseover",".PageListItem",function(S){if(I.is(".PageListSorting")||I.is(".PageListSortSaving")){return}if(!a(this).children("a:first").is(":hover")){return}M=a(this);if(M.hasClass("PageListItemHover")){return}var Q=a(this);if(N){clearTimeout(N)}var R=d.hoverActionDelay;N=setTimeout(function(){if(M.attr("class")==Q.attr("class")){if(!M.children("a:first").is(":hover")){return}var T=u.find(".PageListItemHover");L(M);T.each(function(){P(a(this))})}},R)}).on("mouseout",".PageListItem",function(S){if(I.is(".PageListSorting")||I.is(".PageListSortSaving")){return}var Q=a(this);if(Q.hasClass("PageListItemOpen")){return}if(!Q.hasClass("PageListItemHover")){return}var R=d.hoverActionDelay*0.7;O=setTimeout(function(){if(Q.is(":hover")){return}if(Q.attr("class")==M.attr("class")){return}P(Q)},R)})}function G(){var L=a("
          ").addClass("PageListActions PageListSelectActions actions");var N=a("

          ").addClass("PageListSelectName");if(d.selectShowPageHeader){N.append(x)}var O=a("").addClass("PageListSelectActionToggle").addClass("PageListSelectActionToggleStart").attr("href","#").text(d.selectStartLabel).click(function(){if(a(this).text()==d.selectStartLabel){o(d.rootPageID>0?d.rootPageID:1,I,0,true);a(this).text(d.selectCancelLabel).removeClass("PageListSelectActionToggleStart").addClass("PageListSelectActionToggleCancel")}else{a(this).addClass("PageListSelectActionToggleStart").removeClass("PageListSelectActionToggleCancel");I.children(".PageList").slideUp(d.speed,function(){a(this).remove()});a(this).text(d.selectStartLabel)}return false});L.append(a("
        • ").append(O));I.append(a("
          ").addClass("PageListSelectHeader").append(N).append(L));if(d.selectShowPageHeader){var M=d.ajaxURL+"?id="+d.selectedPageID+"&render=JSON&start=0&limit=0&lang="+d.langID+"&mode="+d.mode;if(d.labelName.length){M+="&labelName="+d.labelName}a.getJSON(M,function(R){var P="";if(d.selectShowPath){P=R.page.path;if(P.substring(-1)=="/"){P=P.substring(0,P.length-1)}P=P.substring(0,P.lastIndexOf("/")+1);P=''+P+" "}var Q=d.selectedPageID>0?P+R.page.label:"";I.children(".PageListSelectHeader").find(".PageListSelectName").html(Q)})}}function A(){f=false}function D(L,M,S,W){var U=9;var N=Math.ceil(W/S);h=M>=S?Math.floor(M/S):0;if(h==0){K=0}else{if((h-U+1)>K){K=h-Math.floor(U/2)}else{if(K>0&&h==K){K=h-Math.ceil(U/2)}}}if(K>N-U){K=N-U}if(K<0){K=0}var T=a("
            ").addClass(d.paginationClass).data("paginationInfo",{start:M,limit:S,total:W});var V=function(af){var Z=a(this).parents("ul."+d.paginationClass);var ae=Z.data("paginationInfo");if(!ae){return false}var ag=parseInt(a(this).attr("href"))*ae.limit;if(ag===NaN){ag=0}var aa=D(L,ag,ae.limit,ae.total);var ac=a(d.spinnerMarkup);var ad=a("
          •  
          • ").addClass(d.paginationDisabledClass).append(ac.hide());Z.siblings(".PageList").remove();Z.replaceWith(aa);aa.append(ad);ac.fadeIn("fast");var ab=aa.siblings().css("opacity",0.5);o(L,aa.parent(),a(this).attr("href")*ae.limit,false,false,true,function(){ac.fadeOut("fast",function(){ad.remove()});aa.parent(".PageList").prev(".PageListItem").data("start",ag);g()});return false};var R=null;var O=null;for(var Y=K,P=0;Y").html(Y+1).attr("href",Y).addClass(d.paginationLinkClass);var X=a("
          • ").addClass(d.paginationClass+P).append(Q);if(Y==h){X.addClass(d.paginationCurrentClass).find("a").removeClass(d.paginationLinkClass).addClass(d.paginationLinkCurrentClass)}T.append(X);if(!O){O=X.clone().removeClass(d.paginationCurrentClass+" "+d.paginationLinkCurrentClass);O.find("a").removeClass(d.paginationLinkCurrentClass).addClass(d.paginationLinkClass)}if(!R){R=O.clone().removeClass(d.paginationLinkClass).addClass(d.paginationDisabledClass).html("…")}if(P>=U&&Y0){$firstItem=O.clone();$firstItem.find("a").text("1").attr("href","0").click(V);T.prepend(R.clone()).prepend($firstItem)}if(h+1").attr("href",h+1);T.append($nextBtn)}if(h>0){$prevBtn=O.clone();$prevBtn.find("a").attr("href",h-1).html("");T.prepend($prevBtn)}T.find("a").click(V).hover(function(){a(this).addClass(d.paginationHoverClass)},function(){a(this).removeClass(d.paginationHoverClass)});return T}function o(M,P,N,R,U,O,T){if(U==undefined){U=true}if(O==undefined){O=false}var Q=function(Z){if(Z&&Z.error){ProcessWire.alert(Z.message);x.hide();f=false;return}var V=l(a(Z.children));var Y=Z.start+Z.limit;if(P.hasClass("PageListItem")){C(P,Z.page.numChildren)}if(Z.page.numChildren>Y){var X=a("").attr("href",Y).data("pageId",M).text(d.moreLabel).click(F);V.append(a("
              ").addClass("PageListActions actions").append(a("
            • ").addClass("PageListActionMore").append(X)))}if(U&&(Z.page.numChildren>Y||Z.start>0)){V.prepend(D(M,Z.start,Z.limit,Z.page.numChildren))}V.hide();if(R){var aa;aa=l(a(Z.page));if(d.showRootPage){aa.children(".PageListItem").addClass("PageListItemOpen")}else{aa.children(".PageListItem").hide().parent(".PageList").addClass("PageListRootHidden")}aa.append(V);P.append(aa)}else{if(P.is(".PageList")){var W=V.children(".PageListItem, .PageListActions");if(O){P.children(".PageListItem, .PageListActions").replaceWith(W)}else{P.append(W)}}else{P.after(V)}}if(x.parent().is(".PageListRoot")){x.hide()}else{x.fadeOut("fast")}if(O){V.show();A();if(T!=undefined){T()}}else{V.slideDown(d.speed,function(){A();if(T!=undefined){T()}})}V.prev(".PageListItem").data("start",Z.start)};if(!O){P.append(x.fadeIn("fast"))}var S=M+"-"+N;if(typeof d.openPageData[S]!="undefined"&&!P.hasClass("PageListID7")&&!P.hasClass("PageListForceReload")){Q(d.openPageData[S]);return}var L=d.ajaxURL+"?id="+M+"&render=JSON&start="+N+"&lang="+d.langID+"&open="+d.openPageIDs[0]+"&mode="+d.mode;if(d.labelName.length){L+="&labelName="+d.labelName}a.getJSON(L).done(function(W,X,V){Q(W)}).fail(function(V,X,W){Q({error:1,message:!V.status?d.ajaxNetworkError:d.ajaxUnknownError})})}function l(L){var N=a("
              ").addClass("PageList");var M=N;L.each(function(P,O){M.append(k(O))});v(M);return N}function t(L,R){if(L.hasClass("PageList")){L=L.prev(".PageListItem")}L.addClass("PageListForceReload");var Q=L.data("pageId");var P=Q+"-";if(typeof d.openPageData!="undefined"){var N={};for(var M in d.openPageData){if(M.indexOf(P)===0){}else{N[M]=d.openPageData[M]}}d.openPageData=N}if(typeof R!="undefined"&&R){var O=L.children("a.PageListPage");if(L.hasClass("PageListItemOpen")){O.click();setTimeout(function(){O.click()},250)}else{O.click()}}}function v(L){a("a.PageListPage",L).click(w);L.on("click",".PageListActionMove a",i);a(".PageListActionSelect a",L).click(E);a(".PageListTriggerOpen:not(.PageListID1) > a.PageListPage",L).click();a(".PageListActionExtras > a:not(.clickExtras)",L).addClass("clickExtras").on("click",q)}function k(L){var R=a("
              ").data("pageId",L.id).addClass("PageListItem").addClass("PageListTemplate_"+L.template);var N=a("").attr("href","#").attr("title",L.path).html(L.label).addClass("PageListPage label");R.addClass(L.numChildren>0?"PageListHasChildren":"PageListNoChildren").addClass("PageListID"+L.id);if(L.status==0){R.addClass("PageListStatusOff disabled")}if(L.status&2048){R.addClass("PageListStatusUnpublished secondary")}if(L.status&1024){R.addClass("PageListStatusHidden secondary")}if(L.status&512){R.addClass("PageListStatusTemp secondary")}if(L.status&16){R.addClass("PageListStatusSystem")}if(L.status&8){R.addClass("PageListStatusSystem")}if(L.status&4){R.addClass("PageListStatusLocked")}if(L.addClass&&L.addClass.length){R.addClass(L.addClass)}if(L.type&&L.type.length>0){if(L.type=="System"){R.addClass("PageListStatusSystem")}}a(d.openPageIDs).each(function(X,W){W=parseInt(W);if(L.id==W){R.addClass("PageListTriggerOpen")}});R.append(N);var O=a(""+(L.numChildren?L.numChildren:"")+"").addClass("PageListNumChildren detail");R.append(O);if(L.note&&L.note.length){R.append(a(""+L.note+"").addClass("PageListNote detail"))}var T=a("
                ").addClass("PageListActions actions");var V=d.rootPageID==L.id?[]:[{name:d.selectSelectLabel,url:d.selectSelectHref}];if(d.mode=="actions"){V=L.actions}else{if(d.selectAllowUnselect){if(L.id==y.val()){V=[{name:d.selectUnselectLabel,url:d.selectUnselectHref}]}}}var Q=null;var U=null;var P={};var S=false;if(d.useNarrowActions){for(var M=0;M").html(Z.name).attr("href",Z.url);if(!e){if(Z.cn=="Edit"){Y.addClass("pw-modal pw-modal-large pw-modal-longclick");Y.attr("data-buttons","#ProcessPageEdit > .Inputfields > .InputfieldSubmit .ui-button")}else{if(Z.cn=="View"){Y.addClass("pw-modal pw-modal-large pw-modal-longclick")}}}if(typeof Z.extras!="undefined"){for(var X in Z.extras){P[X]=Z.extras[X]}U=Y}var aa=a("
              • ").addClass("PageListAction"+W).append(Y);if(W=="Extras"){Q=aa}else{T.append(aa)}});if(U){U.data("extras",P)}if(Q){T.append(Q);Q.addClass("ui-priority-secondary")}R.append(T);return R}function j(M){var L=M.children(".PageListNumChildren");if(!L.length){return 0}var N=L.text();return N.length?parseInt(N):0}function C(M,N){var L=M.children(".PageListNumChildren");if(!L.length){L=a("0").addClass("PageListNumChildren detail");M.append(L)}if(N<1){M.removeClass("PageListHasChildren").addClass("PageListNoChildren");N=""}else{M.removeClass("PageListNoChildren").addClass("PageListHasChildren")}L.text(N)}function q(S){var M=a(this);var O=M.data("extras");if(typeof O=="undefined"){return false}var V=M.closest(".PageListItem");var W=M.closest(".PageListActions");var Q=null;var T=M.children("i.fa");var U=W.find("li.PageListActionExtra");T.toggleClass("fa-flip-horizontal");if(U.length){U.fadeOut(100,function(){U.remove()});return false}for(var N in O){var L=O[N];var R=a("").addClass("PageListActionExtra PageListAction"+L.cn).attr("href",L.url).html(L.name);if(typeof L.ajax!="undefined"&&L.ajax==true){R.click(function(){V.find(".PageListActions").hide();var ad=a(d.spinnerMarkup);var aa=a(this).attr("href");var Z=aa.match(/[\?&]action=([-_a-zA-Z0-9]+)/)[1];var Y=parseInt(aa.match(/[\?&]id=([0-9]+)/)[1]);var ac=a("#PageListContainer").attr("data-token-name");var ab=a("#PageListContainer").attr("data-token-value");var X={action:Z,id:Y};X[ac]=ab;V.append(ad);a.post(aa+"&render=json",X,function(ae){if(ae.success){V.fadeOut("fast",function(){var aj=false;var ak=ae.remove;var ai=ae.refreshChildren;var ah=false;if(typeof ae.child!="undefined"){ah=k(ae.child)}else{if(typeof ae.newChild!="undefined"){ah=k(ae.newChild);aj=true}}if(ah){var af=a("").addClass("notes").html(ae.message);af.prepend("  ");ah.append(af);v(ah)}if(aj){ad.fadeOut("normal",function(){ad.remove()});ah.hide();V.after(ah);ah.slideDown();t(ah.closest(".PageList"))}else{if(ah){if(V.hasClass("PageListItemOpen")){ah.addClass("PageListItemOpen")}V.replaceWith(ah)}}V.fadeIn("fast",function(){setTimeout(function(){af.fadeOut("normal",function(){var am=ah.closest(".PageList").prev(".PageListItem");var al=j(am);if(ak){al--}else{if(aj){al++}}C(am,al);t(am);if(ak){ah.next(".PageList").fadeOut("fast");ah.fadeOut("fast",function(){ah.remove()})}else{af.remove()}})},1000)});if(ai){var ag=a(".PageListID"+ai);if(ag.length){t(ag,true)}}})}else{ad.remove();ProcessWire.alert(ae.message)}});return false})}else{}var P=a("
              • ").addClass("PageListActionExtra PageListAction"+L.cn).append(R);R.hide();if(L.cn=="Trash"){V.addClass("trashable");Q=P}else{W.append(P)}}if(Q){W.append(Q)}W.find(".PageListActionExtra a").fadeIn(50,function(){a(this).css("display","inline-block")});return false}function w(O){var S=a(this);var R=S.parent(".PageListItem");var Q=R.data("pageId");if(f&&!R.hasClass("PageListTriggerOpen")){return false}if(I.is(".PageListSorting")||I.is(".PageListSortSaving")){return false}if(R.hasClass("PageListItemOpen")){var L=true;if(R.hasClass("PageListID1")&&!R.hasClass("PageListForceReload")&&d.mode!="select"){var M=a(this).closest(".PageListRoot").find(".PageListItemOpen:not(.PageListID1)");if(M.length){I.find(".PageListItemOpen:not(.PageListID1)").each(function(){a(this).children("a.PageListPage").click()});L=false}}if(L){R.removeClass("PageListItemOpen").next(".PageList").slideUp(d.speed,function(){a(this).remove()})}}else{R.addClass("PageListItemOpen");var N=parseInt(R.children(".PageListNumChildren").text());if(N>0||R.hasClass("PageListForceReload")){f=true;var P=H(Q);o(Q,R,P,false)}}if(d.mode!="select"){setTimeout(function(){g()},250)}return false}function H(P){var O=0;for(n=0;n1&&a(this).next().find(".PageList:visible").length==0){return}var S=a("
                ").addClass("PageListPlaceholder").addClass("PageList");S.append(a("
                ").addClass("PageListItem PageListPlaceholderItem").html(" "));a(this).after(S)});var P={stop:r,helper:"PageListItemHelper",items:".PageListItem:not(.PageListItemOpen)",placeholder:"PageListSortPlaceholder",start:function(T,S){a(".PageListSortPlaceholder").css("width",S.item.children(".PageListPage").outerWidth()+"px")}};var M=I.children(".PageList").children(".PageList");var L=a("
                "+d.selectCancelLabel+"").click(function(){return s(Q)});var O=Q.children("ul.PageListActions");var N=a(" "+d.moveInstructionLabel+"");N.append(L);O.before(N);Q.addClass("PageListSortItem");Q.parent(".PageList").attr("id","PageListMoveFrom");I.addClass("PageListSorting");M.addClass("PageListSortingList").sortable(P);return false}function s(M){var L=I.find(".PageListSortingList");L.sortable("destroy").removeClass("PageListSortingList");M.removeClass("PageListSortItem").parent(".PageList").removeAttr("id");M.find(".PageListMoveNote").remove();I.find(".PageListPlaceholder").remove();I.removeClass("PageListSorting");return false}function z(O){var L=I.find(".PageListID"+d.trashPageID);if(!L.hasClass("PageListItemOpen")){I.removeClass("PageListSorting");L.children("a").click();I.addClass("PageListSorting")}var M=L.next(".PageList");if(M.length==0){M=a("
                ");L.after(M)}M.prepend(O);var N={item:O};r(null,N)}function r(R,W){var T=W.item;var O=T.children(".PageListPage");var M=parseInt(T.data("pageId"));var Q=T.parent(".PageList");var U=a("#PageListMoveFrom");var V=Q.prev().is(".PageListItem")?Q.prev():Q.prev().prev();var S=parseInt(V.data("pageId"));var N=T.prev(".PageListItem");if(N.is(".PageListItemOpen")){return false}if(Q.is(".PageListPlaceholder")){var X=Q.next();if(X.is(".PageList:visible")){X.prepend(T);Q=X}else{Q.removeClass("PageListPlaceholder").children(".PageListPlaceholderItem").remove()}}I.addClass("PageListSortSaving");s(T);T.append(x.fadeIn("fast"));var P="";Q.children(".PageListItem").each(function(){P+=a(this).data("pageId")+","});var L={id:M,parent_id:S,sort:P};L[a("#PageListContainer").attr("data-token-name")]=a("#PageListContainer").attr("data-token-value");var Y="unknown";a.post(d.ajaxMoveURL,L,function(ab){x.fadeOut("fast");O.fadeOut("fast",function(){a(this).fadeIn("fast");T.removeClass("PageListSortItem");I.removeClass("PageListSorting")});if(ab&&ab.error){ProcessWire.alert(ab.message)}if(!Q.is("#PageListMoveFrom")){var aa=U.prev(".PageListItem");var Z=aa.children(".PageListNumChildren");var ad=Z.text().length>0?parseInt(Z.text())-1:0;if(ad==0){ad="";U.remove()}Z.text(ad);t(aa);var ac=Q.prev(".PageListItem");Z=ac.children(".PageListNumChildren");ad=Z.text().length>0?parseInt(Z.text())+1:1;Z.text(ad);t(ac)}U.attr("id","");I.removeClass("PageListSortSaving")},"json");T.trigger("pageMoved");return true}function E(){var R=a(this);var Q=R.parent("li").parent("ul.PageListActions").parent(".PageListItem");var P=Q.data("pageId");var N=Q.children(".PageListPage");var O=N.text();var M=N.attr("title");var L=I.children(".PageListSelectHeader");if(R.text()==d.selectUnselectLabel){P=0;O=""}if(P!=y.val()){y.val(P).change()}if(d.selectShowPageHeader){L.children(".PageListSelectName").text(O)}y.trigger("pageSelected",{id:P,url:M,title:O,a:N});L.find(".PageListSelectActionToggle").click();if(d.selectSelectHref=="#"){return false}return true}B()})}})(jQuery); \ No newline at end of file diff --git a/wire/modules/Process/ProcessPageList/ProcessPageList.module b/wire/modules/Process/ProcessPageList/ProcessPageList.module index 8934e1be..a3f750da 100644 --- a/wire/modules/Process/ProcessPageList/ProcessPageList.module +++ b/wire/modules/Process/ProcessPageList/ProcessPageList.module @@ -38,7 +38,7 @@ class ProcessPageList extends Process implements ConfigurableModule { return array( 'title' => 'Page List', 'summary' => 'List pages in a hierarchal tree structure', - 'version' => 121, + 'version' => 122, 'permanent' => true, 'permission' => 'page-edit', 'icon' => 'sitemap', @@ -133,10 +133,10 @@ class ProcessPageList extends Process implements ConfigurableModule { $limit = (int) $input->get->int('limit'); $render = $input->get('render'); $this->start = (int) $input->get->int('start'); //isset($_GET['start']) ? (int) $_GET['start'] : 0; - $this->limit = $limit && $limit < $this->limit ? $limit : $this->limit; + $this->limit = $limit > 0 && $limit < $this->limit ? $limit : $this->limit; $this->render = $render ? strtoupper($this->wire('sanitizer')->name($render)) : ''; if($isAjax && !$this->render && !$input->get('renderInputfieldAjax')) $this->render = 'JSON'; - if($this->render && !isset($this->allowRenderTypes[$this->render])) $this->render = null; + if(strlen($this->render) && !isset($this->allowRenderTypes[$this->render])) $this->render = null; $settings = $config->pageList; if(is_array($settings)) { @@ -332,7 +332,8 @@ class ProcessPageList extends Process implements ConfigurableModule { protected function getPageListRender(Page $page, $limit = null, $start = null) { require_once(dirname(__FILE__) . '/ProcessPageListRender.php'); - $class = "ProcessPageListRender" . $this->render; + if(!$this->render || !isset($this->allowRenderTypes[$this->render])) $this->render = 'JSON'; + $class = $this->allowRenderTypes[$this->render]; $className = wireClassName($class, true); if(!class_exists($className, false)) require_once(dirname(__FILE__) . "/$class.php");