diff --git a/wire/core/FileCompiler.php b/wire/core/FileCompiler.php
index 9ff24ea1..8ac4595c 100644
--- a/wire/core/FileCompiler.php
+++ b/wire/core/FileCompiler.php
@@ -439,7 +439,9 @@ class FileCompiler extends Wire {
$this->initRawPHP($data);
if($this->options['includes']) {
+ $dataHash = md5($data);
$this->compileIncludes($data, $sourceFile);
+ if(md5($data) != $dataHash) $this->initRawPHP($data);
}
if($this->options['namespace']) {
@@ -758,7 +760,7 @@ class FileCompiler extends Wire {
}
if($testFile) {
- if(strpos($testFile, '.')) {
+ if(strrpos($testFile, '.')) {
// test contains a filename that needs extension validated
$parts = explode('.', $testFile);
$testExt = array_pop($parts);
diff --git a/wire/templates-admin/scripts/main.js b/wire/templates-admin/scripts/main.js
index 4e7e3bf1..78674899 100644
--- a/wire/templates-admin/scripts/main.js
+++ b/wire/templates-admin/scripts/main.js
@@ -414,7 +414,7 @@ if(typeof ProcessWire != "undefined") {
alert("prompt function requires vex");
return;
}
- vex.dialog.prompt({
+ return vex.dialog.prompt({
message: message,
placeholder: placeholder,
callback: func
diff --git a/wire/templates-admin/scripts/main.min.js b/wire/templates-admin/scripts/main.min.js
index d3ceeb56..b313f889 100644
--- a/wire/templates-admin/scripts/main.min.js
+++ b/wire/templates-admin/scripts/main.min.js
@@ -1 +1 @@
-var ProcessWireAdmin={init:function(){this.setupButtonStates();this.setupTooltips();this.setupDropdowns()},setupTooltips:function(){$("a.tooltip, .pw-tooltip").tooltip({position:{my:"center bottom",at:"center top"}}).hover(function(){var a=$(this);if(a.is("a")){a.addClass("ui-state-hover")}else{a.data("pw-tooltip-cursor",a.css("cursor"));a.css("cursor","pointer")}a.addClass("pw-tooltip-hover");a.css("cursor","pointer")},function(){var a=$(this);a.removeClass("pw-tooltip-hover ui-state-hover");if(!a.is("a")){a.css("cursor",a.data("pw-tooltip-cursor"))}})},setupButtonStates:function(){$(document).on("mouseover",".ui-button",function(){var a=$(this);a.removeClass("ui-state-default").addClass("ui-state-hover");if(a.hasClass("ui-priority-secondary")){a.toggleClass("xui-priority-secondary ui-priority-secondary")}if(a.hasClass("pw-button-dropdown-main")){a.siblings("#pw-dropdown-toggle-"+a.attr("id")).trigger("mouseover")}}).on("mouseout",".ui-button",function(){var a=$(this);a.removeClass("ui-state-hover").addClass("ui-state-default");if(a.hasClass("xui-priority-secondary")){a.toggleClass("xui-priority-secondary ui-priority-secondary")}if(a.hasClass("pw-button-dropdown-main")){a.siblings("#pw-dropdown-toggle-"+a.attr("id")).trigger("mouseout")}}).on("click",".ui-button",function(){$(this).removeClass("ui-state-default").addClass("ui-state-active")}).on("click","a > button",function(){var a=$(this).parent();var b=a.attr("target");if(typeof b!="undefined"&&b=="_blank"){}else{window.location=a.attr("href")}})},setupDropdowns:function(){var c=false;var h;function g(){var l=$(this);var k;if(l.attr("data-pw-dropdown")){k=l.siblings(l.attr("data-pw-dropdown"));if(!k.length){k=$(l.attr("data-pw-dropdown"))}}else{k=l.siblings(".pw-dropdown-menu")}k.hide();l.data("pw-dropdown-ul",k);if(l.is("button")){if(l.find(".ui-button-text").length==0){l.button()}if(l.attr("type")=="submit"){l.click(function(){l.addClass("pw-dropdown-disabled");setTimeout(function(){l.removeClass("pw-dropdown-disabled")},2000)})}}else{}k.find("a").click(function(){k.hide();return true});k.find(".pw-has-items").each(function(){var o=$("");$(this).prepend(o)});if(l.hasClass("pw-dropdown-toggle-click")){var n=null;function m(){if(n){clearTimeout(n)}n=setTimeout(function(){if(k.filter(":hover").length||l.filter(":hover").length){return}k.fadeOut("fast");l.removeClass("hover pw-dropdown-toggle-open")},1000)}k.mouseleave(m);l.mouseleave(m)}else{k.mouseleave(function(){k.hide();l.removeClass("hover")})}}function e(p){var o=$(this);var l=o.data("pw-dropdown-ul");var k=o.hasClass("pw-dropdown-toggle-delay")?700:0;var m=l.data("pw-dropdown-last-offset");var n=o.data("pw-dropdown-timeout");if(o.hasClass("pw-dropdown-toggle-click")){if(p.type!="mousedown"){return false}o.removeClass("ui-state-focus");if(o.hasClass("pw-dropdown-toggle-open")){o.removeClass("pw-dropdown-toggle-open hover");l.hide();return}else{$(".pw-dropdown-toggle-open").each(function(){var r=$(this);var q=r.data("pw-dropdown-ul");q.mouseleave()});o.addClass("pw-dropdown-toggle-open")}}if(o.hasClass("pw-dropdown-disabled")){return}n=setTimeout(function(){if(o.hasClass("pw-dropdown-disabled")){return}var t=o.offset();if(m!=null){if(t.top!=m.top||t.left!=m.left){l.menu("destroy").removeClass("pw-dropdown-ready")}}if(!l.hasClass("pw-dropdown-ready")){l.css("position","absolute");l.prependTo($("body")).addClass("pw-dropdown-ready").menu();var r={my:"right top",at:"right bottom",of:o};var s=l.attr("data-my");var q=l.attr("data-at");if(s){r.my=s}if(q){r.at=q}l.position(r).css("z-index",200)}o.addClass("hover");l.show();l.data("pw-dropdown-last-offset",t)},k);o.data("pw-dropdown-timeout",n)}function d(){var m=$(this);var k=m.data("pw-dropdown-ul");var l=m.data("pw-dropdown-timeout");if(l){clearTimeout(l)}setTimeout(function(){if(k.filter(":hover").length){return}k.find("ul").hide();k.hide();m.removeClass("hover")},50);if($("body").hasClass("touch-device")){$(this).attr("data-touchCnt",0)}}function i(m){var k=m.attr("data-from");if(!k){return}var l=$("#"+m.attr("data-from"));if(l.length>0){setTimeout(function(){var p=l.offset().left;var n=m.closest("li").parent("ul");var o=n.offset().left;if(o!=p){n.css("left",p)}},500)}}function f(){var k=$(this);h=k;setTimeout(function(){if(!h){return}if(h!=k){return}k.addClass("pw-ajax-items-loaded");var n=k.attr("data-json");var m=k.siblings("ul");var o=false;var l=k.children(".pw-has-items-icon");l.removeClass("fa-angle-right").addClass("fa-spinner fa-spin");$.getJSON(n,function(p){l.removeClass("fa-spinner fa-spin").addClass("fa-angle-right");if(!c&&p.list.length>10){c=true;o=true;$(document).on("hover","ul.pw-dropdown-menu a",function(){i($(this))})}if(p.add){var q=$("
");m.append(q)}$.each(p.list,function(u){var s="";if(this.icon){s=""}var r=this.url.indexOf("/")===0?this.url:p.url+this.url;var t=$("");if(typeof this.className!="undefined"&&this.className&&this.className.length){t.addClass(this.className)}m.append(t)});m.addClass("navJSON");m.addClass("length"+parseInt(p.list.length));i(k)})},250)}var b=null;function a(n){var l=$(this);var m=l.attr("data-touchCnt");if(b&&l.attr("id")!=b.attr("id")){b.attr("data-touchCnt",0)}b=l;if(!m){m=0}m++;l.attr("data-touchCnt",m);if(m==2||(l.hasClass("pw-has-ajax-items")&&!l.closest("ul").hasClass("topnav"))){var k=l.attr("href");l.attr("data-touchCnt",0);if(typeof k!="undefined"&&k.length>1){return true}else{l.mouseleave()}}else{var p=l.attr("data-from");if(typeof p=="undefined"){var p=""}if(p.indexOf("topnav")>-1){var o=p.replace("topnav-","")+"-";$("a.pw-dropdown-toggle.hover:not('."+o+"')").attr("data-touchCnt",0).mouseleave()}l.mouseenter()}return false}function j(){if($("body").hasClass("touch-device")){$(document).on("touchstart","a.pw-dropdown-toggle, a.pw-has-items",a)}$(".pw-dropdown-menu").on("click","a:not(.pw-modal)",function(k){k.stopPropagation()});$(".pw-dropdown-toggle").each(g);$(document).on("mousedown",".pw-dropdown-toggle-click",e).on("mouseenter",".pw-dropdown-toggle:not(.pw-dropdown-toggle-click)",e).on("mouseleave",".pw-dropdown-toggle:not(.pw-dropdown-toggle-click)",d).on("mouseenter",".pw-dropdown-menu a.pw-has-ajax-items:not(.pw-ajax-items-loaded)",f).on("mouseleave",".pw-dropdown-menu a.pw-has-ajax-items",function(){h=null})}j()}};if(typeof ProcessWire!="undefined"){ProcessWire.confirm=function(b,a){if(typeof vex!="undefined"){vex.dialog.confirm({message:b,callback:function(c){if(c){a()}}})}else{if(confirm(b)){a()}}};ProcessWire.alert=function(b,a){if(typeof a=="undefined"){var a=false}if(typeof vex!="undefined"){if(a){vex.dialog.alert({unsafeMessage:b})}else{vex.dialog.alert(b)}}else{alert(b)}};ProcessWire.prompt=function(b,c,a){if(typeof vex=="undefined"){alert("prompt function requires vex");return}vex.dialog.prompt({message:b,placeholder:c,callback:a})}};
\ No newline at end of file
+var ProcessWireAdmin={init:function(){this.setupButtonStates();this.setupTooltips();this.setupDropdowns()},setupTooltips:function(){$("a.tooltip, .pw-tooltip").tooltip({position:{my:"center bottom",at:"center top"}}).hover(function(){var a=$(this);if(a.is("a")){a.addClass("ui-state-hover")}else{a.data("pw-tooltip-cursor",a.css("cursor"));a.css("cursor","pointer")}a.addClass("pw-tooltip-hover");a.css("cursor","pointer")},function(){var a=$(this);a.removeClass("pw-tooltip-hover ui-state-hover");if(!a.is("a")){a.css("cursor",a.data("pw-tooltip-cursor"))}})},setupButtonStates:function(){$(document).on("mouseover",".ui-button",function(){var a=$(this);a.removeClass("ui-state-default").addClass("ui-state-hover");if(a.hasClass("ui-priority-secondary")){a.toggleClass("xui-priority-secondary ui-priority-secondary")}if(a.hasClass("pw-button-dropdown-main")){a.siblings("#pw-dropdown-toggle-"+a.attr("id")).trigger("mouseover")}}).on("mouseout",".ui-button",function(){var a=$(this);a.removeClass("ui-state-hover").addClass("ui-state-default");if(a.hasClass("xui-priority-secondary")){a.toggleClass("xui-priority-secondary ui-priority-secondary")}if(a.hasClass("pw-button-dropdown-main")){a.siblings("#pw-dropdown-toggle-"+a.attr("id")).trigger("mouseout")}}).on("click",".ui-button",function(){$(this).removeClass("ui-state-default").addClass("ui-state-active")}).on("click","a > button",function(){var a=$(this).parent();var b=a.attr("target");if(typeof b!="undefined"&&b=="_blank"){}else{window.location=a.attr("href")}})},setupDropdowns:function(){var c=false;var h;function g(){var l=$(this);var k;if(l.attr("data-pw-dropdown")){k=l.siblings(l.attr("data-pw-dropdown"));if(!k.length){k=$(l.attr("data-pw-dropdown"))}}else{k=l.siblings(".pw-dropdown-menu")}k.hide();l.data("pw-dropdown-ul",k);if(l.is("button")){if(l.find(".ui-button-text").length==0){l.button()}if(l.attr("type")=="submit"){l.click(function(){l.addClass("pw-dropdown-disabled");setTimeout(function(){l.removeClass("pw-dropdown-disabled")},2000)})}}else{}k.find("a").click(function(){k.hide();return true});k.find(".pw-has-items").each(function(){var o=$("");$(this).prepend(o)});if(l.hasClass("pw-dropdown-toggle-click")){var n=null;function m(){if(n){clearTimeout(n)}n=setTimeout(function(){if(k.filter(":hover").length||l.filter(":hover").length){return}k.fadeOut("fast");l.removeClass("hover pw-dropdown-toggle-open")},1000)}k.mouseleave(m);l.mouseleave(m)}else{k.mouseleave(function(){k.hide();l.removeClass("hover")})}}function e(p){var o=$(this);var l=o.data("pw-dropdown-ul");var k=o.hasClass("pw-dropdown-toggle-delay")?700:0;var m=l.data("pw-dropdown-last-offset");var n=o.data("pw-dropdown-timeout");if(o.hasClass("pw-dropdown-toggle-click")){if(p.type!="mousedown"){return false}o.removeClass("ui-state-focus");if(o.hasClass("pw-dropdown-toggle-open")){o.removeClass("pw-dropdown-toggle-open hover");l.hide();return}else{$(".pw-dropdown-toggle-open").each(function(){var r=$(this);var q=r.data("pw-dropdown-ul");q.mouseleave()});o.addClass("pw-dropdown-toggle-open")}}if(o.hasClass("pw-dropdown-disabled")){return}n=setTimeout(function(){if(o.hasClass("pw-dropdown-disabled")){return}var t=o.offset();if(m!=null){if(t.top!=m.top||t.left!=m.left){l.menu("destroy").removeClass("pw-dropdown-ready")}}if(!l.hasClass("pw-dropdown-ready")){l.css("position","absolute");l.prependTo($("body")).addClass("pw-dropdown-ready").menu();var r={my:"right top",at:"right bottom",of:o};var s=l.attr("data-my");var q=l.attr("data-at");if(s){r.my=s}if(q){r.at=q}l.position(r).css("z-index",200)}o.addClass("hover");l.show();l.data("pw-dropdown-last-offset",t)},k);o.data("pw-dropdown-timeout",n)}function d(){var m=$(this);var k=m.data("pw-dropdown-ul");var l=m.data("pw-dropdown-timeout");if(l){clearTimeout(l)}setTimeout(function(){if(k.filter(":hover").length){return}k.find("ul").hide();k.hide();m.removeClass("hover")},50);if($("body").hasClass("touch-device")){$(this).attr("data-touchCnt",0)}}function i(m){var k=m.attr("data-from");if(!k){return}var l=$("#"+m.attr("data-from"));if(l.length>0){setTimeout(function(){var p=l.offset().left;var n=m.closest("li").parent("ul");var o=n.offset().left;if(o!=p){n.css("left",p)}},500)}}function f(){var k=$(this);h=k;setTimeout(function(){if(!h){return}if(h!=k){return}k.addClass("pw-ajax-items-loaded");var n=k.attr("data-json");var m=k.siblings("ul");var o=false;var l=k.children(".pw-has-items-icon");l.removeClass("fa-angle-right").addClass("fa-spinner fa-spin");$.getJSON(n,function(p){l.removeClass("fa-spinner fa-spin").addClass("fa-angle-right");if(!c&&p.list.length>10){c=true;o=true;$(document).on("hover","ul.pw-dropdown-menu a",function(){i($(this))})}if(p.add){var q=$("");m.append(q)}$.each(p.list,function(u){var s="";if(this.icon){s=""}var r=this.url.indexOf("/")===0?this.url:p.url+this.url;var t=$("");if(typeof this.className!="undefined"&&this.className&&this.className.length){t.addClass(this.className)}m.append(t)});m.addClass("navJSON");m.addClass("length"+parseInt(p.list.length));i(k)})},250)}var b=null;function a(n){var l=$(this);var m=l.attr("data-touchCnt");if(b&&l.attr("id")!=b.attr("id")){b.attr("data-touchCnt",0)}b=l;if(!m){m=0}m++;l.attr("data-touchCnt",m);if(m==2||(l.hasClass("pw-has-ajax-items")&&!l.closest("ul").hasClass("topnav"))){var k=l.attr("href");l.attr("data-touchCnt",0);if(typeof k!="undefined"&&k.length>1){return true}else{l.mouseleave()}}else{var p=l.attr("data-from");if(typeof p=="undefined"){var p=""}if(p.indexOf("topnav")>-1){var o=p.replace("topnav-","")+"-";$("a.pw-dropdown-toggle.hover:not('."+o+"')").attr("data-touchCnt",0).mouseleave()}l.mouseenter()}return false}function j(){if($("body").hasClass("touch-device")){$(document).on("touchstart","a.pw-dropdown-toggle, a.pw-has-items",a)}$(".pw-dropdown-menu").on("click","a:not(.pw-modal)",function(k){k.stopPropagation()});$(".pw-dropdown-toggle").each(g);$(document).on("mousedown",".pw-dropdown-toggle-click",e).on("mouseenter",".pw-dropdown-toggle:not(.pw-dropdown-toggle-click)",e).on("mouseleave",".pw-dropdown-toggle:not(.pw-dropdown-toggle-click)",d).on("mouseenter",".pw-dropdown-menu a.pw-has-ajax-items:not(.pw-ajax-items-loaded)",f).on("mouseleave",".pw-dropdown-menu a.pw-has-ajax-items",function(){h=null})}j()}};if(typeof ProcessWire!="undefined"){ProcessWire.confirm=function(b,a){if(typeof vex!="undefined"){vex.dialog.confirm({message:b,callback:function(c){if(c){a()}}})}else{if(confirm(b)){a()}}};ProcessWire.alert=function(b,a){if(typeof a=="undefined"){var a=false}if(typeof vex!="undefined"){if(a){vex.dialog.alert({unsafeMessage:b})}else{vex.dialog.alert(b)}}else{alert(b)}};ProcessWire.prompt=function(b,c,a){if(typeof vex=="undefined"){alert("prompt function requires vex");return}return vex.dialog.prompt({message:b,placeholder:c,callback:a})}};
\ No newline at end of file