diff --git a/wire/modules/Inputfield/InputfieldCKEditor/InputfieldCKEditor.module b/wire/modules/Inputfield/InputfieldCKEditor/InputfieldCKEditor.module index 409a5c1d..a08d24ba 100644 --- a/wire/modules/Inputfield/InputfieldCKEditor/InputfieldCKEditor.module +++ b/wire/modules/Inputfield/InputfieldCKEditor/InputfieldCKEditor.module @@ -291,7 +291,11 @@ class InputfieldCKEditor extends InputfieldTextarea { $extraPlugins = $this->extraPlugins; $imagesField = $this->getImagesFieldName($assetPage); - if($imagesField) $extraPlugins[] = 'uploadimage'; + + if($imagesField) { + $extraPlugins[] = 'uploadimage'; + $this->addClass('InputfieldHasUpload', 'wrapClass'); + } $settings = array( 'baseHref' => $config->urls->root, diff --git a/wire/modules/Inputfield/InputfieldFile/InputfieldFile.module b/wire/modules/Inputfield/InputfieldFile/InputfieldFile.module index 985392e0..1f8b7bf8 100644 --- a/wire/modules/Inputfield/InputfieldFile/InputfieldFile.module +++ b/wire/modules/Inputfield/InputfieldFile/InputfieldFile.module @@ -594,6 +594,7 @@ class InputfieldFile extends Inputfield implements InputfieldItemList, Inputfiel public function renderReady(Inputfield $parent = null, $renderValueMode = false) { $this->addClass('InputfieldNoFocus', 'wrapClass'); + if(!$renderValueMode) $this->addClass('InputfieldHasUpload', 'wrapClass'); if($this->useTags) { $this->wire('modules')->get('JqueryUI')->use('selectize'); diff --git a/wire/templates-admin/scripts/inputfields.js b/wire/templates-admin/scripts/inputfields.js index 3e1724ee..0ef8578d 100644 --- a/wire/templates-admin/scripts/inputfields.js +++ b/wire/templates-admin/scripts/inputfields.js @@ -1319,6 +1319,14 @@ function InputfieldStates($target) { $(document).on('submit', '.InputfieldFormConfirm', function() { $(this).addClass('InputfieldFormSubmitted'); }); + + // open Inputfields supporting uploads when file dragged in, per @Toutouwai #242 + $(document).on('dragenter', '.InputfieldHasUpload.InputfieldStateCollapsed', function(e) { + var dt = e.originalEvent.dataTransfer; + if(dt.types && (dt.types.indexOf ? dt.types.indexOf('Files') !== -1 : dt.types.contains('Files'))) { + InputfieldOpen($(this)); + } + }); window.addEventListener("beforeunload", InputfieldFormBeforeUnloadEvent); } diff --git a/wire/templates-admin/scripts/inputfields.min.js b/wire/templates-admin/scripts/inputfields.min.js index 974afa6c..d26a970c 100644 --- a/wire/templates-admin/scripts/inputfields.min.js +++ b/wire/templates-admin/scripts/inputfields.min.js @@ -1 +1 @@ -var InputfieldDebugMode=false;function consoleLog(a){if(InputfieldDebugMode){console.log(a)}}var InputfieldDependenciesProcessing=false;function InputfieldDependencies(d){var f=jQuery;if(InputfieldDependenciesProcessing){return}if(typeof d=="undefined"){var d=f(".InputfieldForm:not(.InputfieldFormNoDependencies)")}else{if(d.hasClass("InputfieldForm")){if(d.hasClass("InputfieldFormNoDependencies")){return}}else{if(d.closest(".InputfieldFormNoDependencies").length>0){return}}}function i(m){m=jQuery.trim(m);var n=m.substring(0,1);var l=m.substring(m.length-1,m.length);if((n=='"'||n=="'")&&n==l){m=m.substring(1,m.length-1)}return m}function j(l){return h(i(l))}function b(n){var m="";var l=n.indexOf(".");if(l>0){m=n.substring(l+1);n=n.substring(0,l)}return{field:n,subfield:m}}function h(o,m){o=jQuery.trim(o);if(o.length>0&&!jQuery.isNumeric(o)){return o}if(o.length==0){var l=typeof m;if(l!="undefined"){if(l=="integer"){return 0}if(l=="float"){return 0}return o}else{return o}}var p=o.indexOf(".");var n=o.lastIndexOf(".");if(p==-1&&/^-?\d+$/.test(o)){return parseInt(o)}if(n>-1&&p!=n){return o}if(/^-?[\d.]+$/.test(o)){return parseFloat(o)}return o}function c(o,m,n,p){var l=0;switch(m){case"=":if(n==p){l++}break;case"!=":if(n!=p){l++}break;case">":if(n>p){l++}break;case"<":if(n
=":if(n>=p){l++}break;case"<=":if(n<=p){l++}break;case"*=":case"%=":if(n.indexOf(p)>-1){l++}break}consoleLog("Field "+o+" - Current value: "+n);consoleLog("Field "+o+" - Matched? "+(l>0?"YES":"NO"));return l}function e(q,t,n){var x=null;var A;consoleLog("getCheckboxFieldAndValue(see-next-line, "+t+", "+n+")");consoleLog(q);if(n=="count"||n=="count-checkbox"){consoleLog("Using count checkbox condition");x=f("#wrap_Inputfield_"+t+" :input");if(x.length){A=f("#wrap_Inputfield_"+t+" :checked").length;q.subfield="count-checkbox";return{field:x,value:A,condition:q}}return null}consoleLog("Using checkbox value or label comparison option");A=[];for(var r=0;r 0&&x =":if(n>=p){l++}break;case"<=":if(n<=p){l++}break;case"*=":case"%=":if(n.indexOf(p)>-1){l++}break}consoleLog("Field "+o+" - Current value: "+n);consoleLog("Field "+o+" - Matched? "+(l>0?"YES":"NO"));return l}function e(q,t,n){var x=null;var A;consoleLog("getCheckboxFieldAndValue(see-next-line, "+t+", "+n+")");consoleLog(q);if(n=="count"||n=="count-checkbox"){consoleLog("Using count checkbox condition");x=f("#wrap_Inputfield_"+t+" :input");if(x.length){A=f("#wrap_Inputfield_"+t+" :checked").length;q.subfield="count-checkbox";return{field:x,value:A,condition:q}}return null}consoleLog("Using checkbox value or label comparison option");A=[];for(var r=0;r 0&&xp){consoleLog("Reduce width of row because rowWidth > maxRowWidth ("+r+" > "+p+")");if(!s.is(".InputfieldStateHidden")){w=s.add(w)}r=0;w.each(function(){z=e(this);x=l(z);if(x>0){g(z,x,false)}r+=x});var v=p-r;x+=v;var q=l(z);if(q>0&&x
=i));if(!e){setTimeout(function(){jQuery("html, body").animate({scrollTop:a.offset().top-10},100)},100)}}}function InputfieldToggle(a,k,f,l){if(!a.length){return}if(!a.hasClass("Inputfield")){a=a.closest(".Inputfield")}var b=a.children(".InputfieldHeader, .ui-widget-header");var c=a.children(".InputfieldContent, .ui-widget-content");var d=b.find(".toggle-icon");var j=a.hasClass("InputfieldStateCollapsed");if(a.hasClass("InputfieldAjaxLoading")){return false}if(a.hasClass("InputfieldStateToggling")){return false}if(typeof k=="undefined"||k===null){var k=j}if(typeof f=="undefined"){var f=100}function i(){if(typeof l!="undefined"){l(a,k,f)}}function e(){if(a.css("overflow")=="hidden"){a.css("overflow","")}d.toggleClass(d.attr("data-to"));a.removeClass("InputfieldStateToggling");setTimeout("InputfieldColumnWidths()",500);i()}function h(){a.trigger("opened");if(a.hasClass("InputfieldColumnWidth")){a.children(".InputfieldContent").show()}if(!a.hasClass("InputfieldNoFocus")){InputfieldFocus(a)}e()}function m(){if(a.css("overflow")=="hidden"){a.css("overflow","")}a.trigger("closed");if(a.hasClass("InputfieldColumnWidth")){a.children(".InputfieldContent").hide()}e()}if(k&&!a.is(":visible")){var o=a.parents(".InputfieldWrapper").last();if(o.length&&!o.is(":visible")){var g=jQuery("#_"+o.attr("id"));if(g.length){o.show();setTimeout(function(){g.click()},25)}}var n=a.closest(".InputfieldStateCollapsed");if(n.length){InputfieldToggle(n,true,f,function(p){InputfieldToggle(p,true,f,l)})}}if(k&&!j){i();return}if(!k&&j){i();return}if(j&&(a.hasClass("collapsed10")||a.hasClass("collapsed11"))){d.click();return}if(k&&j){a.addClass("InputfieldStateToggling").trigger("openReady");a.toggleClass("InputfieldStateCollapsed",f,h)}else{if(!k&&!j){a.addClass("InputfieldStateToggling").trigger("closeReady");a.toggleClass("InputfieldStateCollapsed",f,m)}}}function InputfieldOpen(a,b){InputfieldToggle(a,true,b)}function InputfieldClose(a,b){InputfieldToggle(a,false,b)}function InputfieldStates(a){var e=true;var f=jQuery;if(typeof a=="undefined"){a=f("body");e=false}function c(m){function k(p,u){var r=f("");var t=p.offset();var o;var q=10;var s=0;var n=0.8;f("body").append(r.hide());if(p.is("a")&&p.closest("ul").hasClass("uk-tab")){n=0.1}r.css({position:"absolute",top:t.top-(r.height()+5),left:t.left+(p.width()/2)+(r.width()*n)}).fadeIn();o=setInterval(function(){if(++s>q||!u.hasClass("InputfieldAjaxLoading")){clearInterval(o);r.fadeOut("normal",function(){r.remove()})}},500)}var l=m.children(".InputfieldContent").children(".renderInputfieldAjax");var g=false;if(!l.length){l=m.children(".renderInputfieldAjax");g=true}var j=l.children("input").attr("value");if(typeof j=="undefined"||j.length<1){return false}var i=null;if(g){var h=f("#_"+m.attr("id"));k(h,m)}else{var h=m.children(".InputfieldHeader");i=f("");i.css("margin-left","0.5em");h.append(i)}m.removeClass("collapsed10 collapsed11").addClass("InputfieldAjaxLoading");f.get(j,function(p){m.removeClass("InputfieldAjaxLoading InputfieldStateCollapsed");var n=m.children(".InputfieldHeader").find(".toggle-icon");if(n.length){n.toggleClass(n.attr("data-to"))}l.replaceWith(f(p)).hide();l.slideDown();var o=m.find(".Inputfield");if(o.length){o.trigger("reloaded",["InputfieldAjaxLoad"]);InputfieldStates(m);InputfieldRequirements(m);InputfieldColumnWidths()}else{m.trigger("reloaded",["InputfieldAjaxLoad"])}if(m.closest(".InputfieldFormNoDependencies").length==0){InputfieldDependencies(m.parent())}setTimeout(function(){if(i){i.fadeOut("fast",function(){i.remove()})}if(g){h.effect("highlight",500)}else{h.click()}},500)},"html");return true}f(".Inputfield:not(.collapsed9) > .InputfieldHeader, .Inputfield:not(.collapsed9) > .ui-widget-header",a).addClass("InputfieldStateToggle");var b=f(".Inputfields .InputfieldStateCollapsed > .InputfieldHeader i.toggle-icon, .Inputfields .InputfieldStateCollapsed > .ui-widget-header i.toggle-icon",a);b.toggleClass(b.attr("data-to"));if(typeof ProcessWire!="undefined"){var d=ProcessWire.config}if(typeof d!=="undefined"&&d.debug){f("label.InputfieldHeader > i.toggle-icon",a).hover(function(){var g=f(this).parent("label");if(g.length==0){return}var i=g.attr("for").replace(/^Inputfield_/,"");if(i.length){var h=f(" "+i+" ");h.css("float","right");g.append(h)}},function(){var g=f(this).parent("label");if(g.length==0){return}g.find(".InputfieldNameTip").remove()})}if(e){return}f(document).on("wiretabclick",function(i,h,g){if(h.hasClass("collapsed10")){c(h)}});f(document).on("click",".InputfieldStateToggle, .toggle-icon",function(g,k){var j=f(this);var n=j.closest(".Inputfield");var h=j.hasClass("toggle-icon");var m=h?j:n.children(".InputfieldHeader, .ui-widget-header").find(".toggle-icon");var l=n.hasClass("InputfieldStateCollapsed");var q=n.hasClass("InputfieldStateWasCollapsed");var i=100;if(!n.length){return}if(n.hasClass("InputfieldAjaxLoading")){return false}if(n.hasClass("InputfieldStateToggling")){return false}if(typeof k!="undefined"){if(typeof k.duration!="undefined"){i=k.duration}}if(l&&(n.hasClass("collapsed10")||n.hasClass("collapsed11"))){if(c(n)){return false}}if(l||q||h){n.addClass("InputfieldStateWasCollapsed");InputfieldToggle(n,null,i)}else{if(typeof jQuery.ui!="undefined"){var p=m.css("color");var o=n.children(".InputfieldHeader, .ui-widget-header").css("color");m.css("color",o);m.effect("pulsate",300,function(){m.css("color",p)})}InputfieldFocus(n)}return false});f("#content .InputfieldFormFocusFirst:not(.InputfieldFormNoFocus)").find("input[type=text]:enabled:first:not(.hasDatepicker):not(.InputfieldNoFocus)").each(function(){var g=f(this);if(g.val()){return}if(g.offset().top
p){consoleLog("Reduce width of row because rowWidth > maxRowWidth ("+r+" > "+p+")");if(!s.is(".InputfieldStateHidden")){w=s.add(w)}r=0;w.each(function(){z=e(this);x=l(z);if(x>0){g(z,x,false)}r+=x});var v=p-r;x+=v;var q=l(z);if(q>0&&x
=i));if(!e){setTimeout(function(){jQuery("html, body").animate({scrollTop:a.offset().top-10},100)},100)}}}function InputfieldToggle(a,k,f,l){if(!a.length){return}if(!a.hasClass("Inputfield")){a=a.closest(".Inputfield")}var b=a.children(".InputfieldHeader, .ui-widget-header");var c=a.children(".InputfieldContent, .ui-widget-content");var d=b.find(".toggle-icon");var j=a.hasClass("InputfieldStateCollapsed");if(a.hasClass("InputfieldAjaxLoading")){return false}if(a.hasClass("InputfieldStateToggling")){return false}if(typeof k=="undefined"||k===null){var k=j}if(typeof f=="undefined"){var f=100}function i(){if(typeof l!="undefined"){l(a,k,f)}}function e(){if(a.css("overflow")=="hidden"){a.css("overflow","")}d.toggleClass(d.attr("data-to"));a.removeClass("InputfieldStateToggling");setTimeout("InputfieldColumnWidths()",500);i()}function h(){a.trigger("opened");if(a.hasClass("InputfieldColumnWidth")){a.children(".InputfieldContent").show()}if(!a.hasClass("InputfieldNoFocus")){InputfieldFocus(a)}e()}function m(){if(a.css("overflow")=="hidden"){a.css("overflow","")}a.trigger("closed");if(a.hasClass("InputfieldColumnWidth")){a.children(".InputfieldContent").hide()}e()}if(k&&!a.is(":visible")){var o=a.parents(".InputfieldWrapper").last();if(o.length&&!o.is(":visible")){var g=jQuery("#_"+o.attr("id"));if(g.length){o.show();setTimeout(function(){g.click()},25)}}var n=a.closest(".InputfieldStateCollapsed");if(n.length){InputfieldToggle(n,true,f,function(p){InputfieldToggle(p,true,f,l)})}}if(k&&!j){i();return}if(!k&&j){i();return}if(j&&(a.hasClass("collapsed10")||a.hasClass("collapsed11"))){d.click();return}if(k&&j){a.addClass("InputfieldStateToggling").trigger("openReady");a.toggleClass("InputfieldStateCollapsed",f,h)}else{if(!k&&!j){a.addClass("InputfieldStateToggling").trigger("closeReady");a.toggleClass("InputfieldStateCollapsed",f,m)}}}function InputfieldOpen(a,b){InputfieldToggle(a,true,b)}function InputfieldClose(a,b){InputfieldToggle(a,false,b)}function InputfieldStates(a){var e=true;var f=jQuery;if(typeof a=="undefined"){a=f("body");e=false}function c(m){function k(p,u){var r=f("");var t=p.offset();var o;var q=10;var s=0;var n=0.8;f("body").append(r.hide());if(p.is("a")&&p.closest("ul").hasClass("uk-tab")){n=0.1}r.css({position:"absolute",top:t.top-(r.height()+5),left:t.left+(p.width()/2)+(r.width()*n)}).fadeIn();o=setInterval(function(){if(++s>q||!u.hasClass("InputfieldAjaxLoading")){clearInterval(o);r.fadeOut("normal",function(){r.remove()})}},500)}var l=m.children(".InputfieldContent").children(".renderInputfieldAjax");var g=false;if(!l.length){l=m.children(".renderInputfieldAjax");g=true}var j=l.children("input").attr("value");if(typeof j=="undefined"||j.length<1){return false}var i=null;if(g){var h=f("#_"+m.attr("id"));k(h,m)}else{var h=m.children(".InputfieldHeader");i=f("");i.css("margin-left","0.5em");h.append(i)}m.removeClass("collapsed10 collapsed11").addClass("InputfieldAjaxLoading");f.get(j,function(p){m.removeClass("InputfieldAjaxLoading InputfieldStateCollapsed");var n=m.children(".InputfieldHeader").find(".toggle-icon");if(n.length){n.toggleClass(n.attr("data-to"))}l.replaceWith(f(p)).hide();l.slideDown();var o=m.find(".Inputfield");if(o.length){o.trigger("reloaded",["InputfieldAjaxLoad"]);InputfieldStates(m);InputfieldRequirements(m);InputfieldColumnWidths()}else{m.trigger("reloaded",["InputfieldAjaxLoad"])}if(m.closest(".InputfieldFormNoDependencies").length==0){InputfieldDependencies(m.parent())}setTimeout(function(){if(i){i.fadeOut("fast",function(){i.remove()})}if(g){h.effect("highlight",500)}else{h.click()}},500)},"html");return true}f(".Inputfield:not(.collapsed9) > .InputfieldHeader, .Inputfield:not(.collapsed9) > .ui-widget-header",a).addClass("InputfieldStateToggle");var b=f(".Inputfields .InputfieldStateCollapsed > .InputfieldHeader i.toggle-icon, .Inputfields .InputfieldStateCollapsed > .ui-widget-header i.toggle-icon",a);b.toggleClass(b.attr("data-to"));if(typeof ProcessWire!="undefined"){var d=ProcessWire.config}if(typeof d!=="undefined"&&d.debug){f("label.InputfieldHeader > i.toggle-icon",a).hover(function(){var g=f(this).parent("label");if(g.length==0){return}var i=g.attr("for").replace(/^Inputfield_/,"");if(i.length){var h=f(" "+i+" ");h.css("float","right");g.append(h)}},function(){var g=f(this).parent("label");if(g.length==0){return}g.find(".InputfieldNameTip").remove()})}if(e){return}f(document).on("wiretabclick",function(i,h,g){if(h.hasClass("collapsed10")){c(h)}});f(document).on("click",".InputfieldStateToggle, .toggle-icon",function(g,k){var j=f(this);var n=j.closest(".Inputfield");var h=j.hasClass("toggle-icon");var m=h?j:n.children(".InputfieldHeader, .ui-widget-header").find(".toggle-icon");var l=n.hasClass("InputfieldStateCollapsed");var q=n.hasClass("InputfieldStateWasCollapsed");var i=100;if(!n.length){return}if(n.hasClass("InputfieldAjaxLoading")){return false}if(n.hasClass("InputfieldStateToggling")){return false}if(typeof k!="undefined"){if(typeof k.duration!="undefined"){i=k.duration}}if(l&&(n.hasClass("collapsed10")||n.hasClass("collapsed11"))){if(c(n)){return false}}if(l||q||h){n.addClass("InputfieldStateWasCollapsed");InputfieldToggle(n,null,i)}else{if(typeof jQuery.ui!="undefined"){var p=m.css("color");var o=n.children(".InputfieldHeader, .ui-widget-header").css("color");m.css("color",o);m.effect("pulsate",300,function(){m.css("color",p)})}InputfieldFocus(n)}return false});f("#content .InputfieldFormFocusFirst:not(.InputfieldFormNoFocus)").find("input[type=text]:enabled:first:not(.hasDatepicker):not(.InputfieldNoFocus)").each(function(){var g=f(this);if(g.val()){return}if(g.offset().top