From b606349c080baeaa145dfaea1735830769a392be Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Fri, 13 Aug 2021 13:58:54 -0400 Subject: [PATCH] Fix issue processwire/processwire-issues#1303 PageFrontEdit limit to single-line input on 1-line text fields --- wire/modules/Page/PageFrontEdit/PageFrontEdit.js | 3 ++- wire/modules/Page/PageFrontEdit/PageFrontEdit.min.js | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/wire/modules/Page/PageFrontEdit/PageFrontEdit.js b/wire/modules/Page/PageFrontEdit/PageFrontEdit.js index 5db174ce..f87675ec 100644 --- a/wire/modules/Page/PageFrontEdit/PageFrontEdit.js +++ b/wire/modules/Page/PageFrontEdit/PageFrontEdit.js @@ -112,11 +112,12 @@ function PageFrontEditInit($) { return false; }); - if(t.hasClass('pw-edit-InputfieldText')) { + if(t.is('span')) { // single-line text // via @canrau copy.keydown(function(e) { if(e.keyCode == 13){ e.preventDefault(); + $(this).blur(); } }); } diff --git a/wire/modules/Page/PageFrontEdit/PageFrontEdit.min.js b/wire/modules/Page/PageFrontEdit/PageFrontEdit.min.js index 48f7da94..401a1618 100644 --- a/wire/modules/Page/PageFrontEdit/PageFrontEdit.min.js +++ b/wire/modules/Page/PageFrontEdit/PageFrontEdit.min.js @@ -1 +1 @@ -function PageFrontEditInit(f){var k=f(".pw-edit-buttons");var a={};var e=(("ontouchstart" in window)||(navigator.MaxTouchPoints>0)||(navigator.msMaxTouchPoints>0));var i=false;function b(p){i=p;if(i){f("body").addClass("pw-busy")}else{f("body").removeClass("pw-busy")}}function d(p){f("",{rel:"stylesheet",type:"text/css",href:p}).appendTo("head")}function l(r){var q=r.editor;if(q.checkDirty()){var p=f(q.element.$);if(p.length){p.closest(".pw-edit").addClass("pw-changed")}}}function j(u,r,w,v){if(r.hasClass("pw-editing")||i){return}var p=v.attr("id");var q=r.attr("data-name");r.addClass("pw-editing pw-edited");if(!v.data("prev")){v.data("prev",v.html())}w.hide();v.show();k.show();if(r.hasClass("pw-edit-InputfieldCKEditor")&&typeof CKEDITOR!="undefined"){if(typeof a[p]=="undefined"){var s=CKEDITOR.inline(p,ProcessWire.config["InputfieldCKEditor_"+q]);a[p]=s;s.on("blur",function(t){r.removeClass("pw-editing");l(t)});s.on("change",l)}}setTimeout(function(){v.focus()},250)}function g(r){var w=r.children(".pw-edit-orig");var v=r.children(".pw-edit-copy");var p=r.attr("data-name");v.hide();if(e){w.on("pwdoubletap",function(t){j(t,r,w,v);return false})}w.dblclick(function(t){j(t,r,w,v);return false});if(r.hasClass("pw-edit-InputfieldText")){v.keydown(function(t){if(t.keyCode==13){t.preventDefault()}})}if(w.find("a").length){var q=0,u=null,s=false;w.on("click","a",function(){var t=jQuery(this);if(s){s=false;return true}q++;if(q===1){u=setTimeout(function(){q=0;s=true;t[0].click();return true},700)}else{clearTimeout(u);s=false;q=0;w.trigger("dblclick")}return false});w.on("dblclick","a",function(){return false})}if(!r.hasClass("pw-edit-InputfieldCKEditor")){v.blur(function(){var y=f(this);var x=y.closest(".pw-editing");if(x.length==0){return}if(y.html()!=y.data("prev")){x.addClass("pw-changed")}x.removeClass("pw-editing")})}}function m(){f(".pw-edited").each(function(){var p=f(this);var r=p.children(".pw-edit-copy");var q=p.children(".pw-edit-orig");r.hide().html(r.data("prev"));q.show();r.data("prev",null);p.removeClass("pw-changed pw-edited pw-editing")});k.hide()}function n(){if(f(".pw-changed").length>0){if(confirm(ProcessWire.config.PageFrontEdit.labels.cancelConfirm)){m();k.hide()}else{}}else{m()}return false}function h(){if(i){return}b(true);var y=parseInt(f("#Inputfield_id").val());var p=parseInt(f("#pw-edit-lang").val());var s=f(".pw-edit-save");var t=f(".pw-edit-cancel");var v=f(".pw-edit-saving");var w=f(".pw-edit-saved");var x=f(".pw-changed");var q={action:"PageFrontEditSave",id:y,language:p,fields:{}};var u=f("input._post_token");var r=u.attr("name");var z=u.val();q[r]=z;x.each(function(){var D=f(this);var B=D.attr("data-name");var F=parseInt(D.attr("data-page"));var H=D.children(".pw-edit-orig");var G=D.children(".pw-edit-copy");var C=F+"__"+B;if(D.hasClass("pw-edit-InputfieldCKEditor")){var E=a[G.attr("id")];E.getSelection().reset();E.getSelection().removeAllRanges();q.fields[C]=E.getData()}else{var A=document.createElement("textarea");A.innerHTML=G[0].innerHTML;q.fields[C]=A.value}});s.hide();t.hide();v.show();f.post(ProcessWire.config.PageFrontEdit.pageURL,q,function(C){v.hide();if(C.status>0){x.each(function(){var F=f(this);var D=F.attr("data-name");var G=F.attr("data-page");var I=F.children(".pw-edit-orig");var H=F.children(".pw-edit-copy");var E=G+"__"+D;F.removeClass("pw-editing pw-edited pw-changed");I.html(C.formatted[E]);H.html(C.unformatted[E]);H.data("prev",null);H.hide().trigger("pw-reloaded");I.show().trigger("pw-reloaded")});w.show();setTimeout(function(){k.fadeOut("fast",function(){w.hide();s.show();t.show();b(false)})},1000)}else{b(false);alert(C.error);s.show();t.show();k.hide();f(".pw-editing, .pw-edited").each(function(){var D=f(this);D.removeClass("pw-editing, pw-edited, pw-changed");var F=D.children(".pw-edit-orig");var E=D.children(".pw-edit-copy");E.hide();F.show()})}for(var B in a){var A=a[B];A.destroy()}a={}})}function c(){var p=f(".pw-edit-modal");if(!p.length){return}f(document).on("pw-modal-closed",function(u,r){if(r.abort){return}var t=f(u.target);if(!t.hasClass("pw-edit-modal")){return}var q=t.attr("id");var s=f("#pw-url").val();s+=(s.indexOf("?")>-1?"&":"?")+"pw_edit_fields="+t.attr("data-fields");b(true);t.load(s+" #"+q,{},function(){var x=f(this);var w=x.children();if(w.length){var v=x.children().html();x.html(v)}x.trigger("pw-reloaded");b(false)})})}function o(){if(e){k.addClass("pw-edit-buttons-touch")}var q=f("#pw-fa-test");var p=q.width();if(p<10){d(ProcessWire.config.PageFrontEdit.files.fa)}q.hide();d(ProcessWire.config.PageFrontEdit.files.css);f("body").addClass("pw-"+ProcessWire.config.PageFrontEdit.adminTheme);f(".pw-edit:not(.pw-edit-modal)").each(function(){g(f(this))});c();if(f(".pw-edit-InputfieldCKEditor").length){jQuery.getScript(ProcessWire.config.PageFrontEdit.files.ckeditor,function(){jQuery.getScript(ProcessWire.config.PageFrontEdit.files.modal,function(){for(var r in ProcessWire.config.InputfieldCKEditor.plugins){var s=ProcessWire.config.InputfieldCKEditor.plugins[r];CKEDITOR.plugins.addExternal(r,s,"")}}).fail(function(t,s,r){alert("failed to load modal.js: "+r)})}).fail(function(t,s,r){alert("failed to load ckeditor.js: "+r)})}else{jQuery.getScript(ProcessWire.config.PageFrontEdit.files.modal).fail(function(t,s,r){alert("failed to load modal.js: "+r)})}f(".pw-edit-cancel").click(n);f(".pw-edit-save").click(function(){f(".pw-editing:not(.pw-edit-InputfieldCKEditor)").blur();setTimeout(function(){h()},250)})}o()}jQuery(document).ready(function(a){PageFrontEditInit(a)}); \ No newline at end of file +function PageFrontEditInit($){var buttons=$(".pw-edit-buttons");var ckeditors={};var isTouch="ontouchstart"in window||navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0;var busy=false;function setBusy(value){busy=value;if(busy){$("body").addClass("pw-busy")}else{$("body").removeClass("pw-busy")}}function loadCSS(file){$("",{rel:"stylesheet",type:"text/css",href:file}).appendTo("head")}function ckeBlurEvent(event){var editor=event.editor;if(editor.checkDirty()){var el=$(editor.element.$);if(el.length){el.closest(".pw-edit").addClass("pw-changed")}}}function inlineEditEvent(e,t,orig,copy){if(t.hasClass("pw-editing")||busy)return;var copyID=copy.attr("id");var name=t.attr("data-name");t.addClass("pw-editing pw-edited");if(!copy.data("prev"))copy.data("prev",copy.html());orig.hide();copy.show();buttons.show();if(t.hasClass("pw-edit-InputfieldCKEditor")&&typeof CKEDITOR!="undefined"){if(typeof ckeditors[copyID]=="undefined"){var editor=CKEDITOR.inline(copyID,ProcessWire.config["InputfieldCKEditor_"+name]);ckeditors[copyID]=editor;editor.on("blur",function(e){t.removeClass("pw-editing");ckeBlurEvent(e)});editor.on("change",ckeBlurEvent)}}setTimeout(function(){copy.focus()},250)}function inlineInitEditableRegion(t){var orig=t.children(".pw-edit-orig");var copy=t.children(".pw-edit-copy");var name=t.attr("data-name");copy.hide();if(isTouch)orig.on("pwdoubletap",function(e){inlineEditEvent(e,t,orig,copy);return false});orig.dblclick(function(e){inlineEditEvent(e,t,orig,copy);return false});if(t.is("span")){copy.keydown(function(e){if(e.keyCode==13){e.preventDefault();$(this).blur()}})}if(orig.find("a").length){var clicks=0,timer=null,allowClick=false;orig.on("click","a",function(){var $a=jQuery(this);if(allowClick){allowClick=false;return true}clicks++;if(clicks===1){timer=setTimeout(function(){clicks=0;allowClick=true;$a[0].click();return true},700)}else{clearTimeout(timer);allowClick=false;clicks=0;orig.trigger("dblclick")}return false});orig.on("dblclick","a",function(){return false})}if(!t.hasClass("pw-edit-InputfieldCKEditor")){copy.blur(function(){var copy=$(this);var t=copy.closest(".pw-editing");if(t.length==0)return;if(copy.html()!=copy.data("prev")){t.addClass("pw-changed")}t.removeClass("pw-editing")})}}function inlineAbandonAllChanges(){$(".pw-edited").each(function(){var t=$(this);var copy=t.children(".pw-edit-copy");var orig=t.children(".pw-edit-orig");copy.hide().html(copy.data("prev"));orig.show();copy.data("prev",null);t.removeClass("pw-changed pw-edited pw-editing")});buttons.hide()}function inlineCancelClickEvent(){if($(".pw-changed").length>0){if(confirm(ProcessWire.config.PageFrontEdit.labels.cancelConfirm)){inlineAbandonAllChanges();buttons.hide()}else{}}else{inlineAbandonAllChanges()}return false}function inlineSaveClickEvent(){if(busy)return;setBusy(true);var pageID=parseInt($("#Inputfield_id").val());var langID=parseInt($("#pw-edit-lang").val());var btnSave=$(".pw-edit-save");var btnCancel=$(".pw-edit-cancel");var btnSaving=$(".pw-edit-saving");var btnSaved=$(".pw-edit-saved");var edited=$(".pw-changed");var postData={action:"PageFrontEditSave",id:pageID,language:langID,fields:{}};var postToken=$("input._post_token");var csrfName=postToken.attr("name");var csrfValue=postToken.val();postData[csrfName]=csrfValue;edited.each(function(){var t=$(this);var name=t.attr("data-name");var page=parseInt(t.attr("data-page"));var orig=t.children(".pw-edit-orig");var copy=t.children(".pw-edit-copy");var key=page+"__"+name;if(t.hasClass("pw-edit-InputfieldCKEditor")){var editor=ckeditors[copy.attr("id")];editor.getSelection().reset();editor.getSelection().removeAllRanges();postData.fields[key]=editor.getData()}else{var textarea=document.createElement("textarea");textarea.innerHTML=copy[0].innerHTML;postData.fields[key]=textarea.value}});btnSave.hide();btnCancel.hide();btnSaving.show();$.post(ProcessWire.config.PageFrontEdit.pageURL,postData,function(data){btnSaving.hide();if(data.status>0){edited.each(function(){var t=$(this);var name=t.attr("data-name");var page=t.attr("data-page");var orig=t.children(".pw-edit-orig");var copy=t.children(".pw-edit-copy");var key=page+"__"+name;t.removeClass("pw-editing pw-edited pw-changed");orig.html(data.formatted[key]);copy.html(data.unformatted[key]);copy.data("prev",null);copy.hide().trigger("pw-reloaded");orig.show().trigger("pw-reloaded")});btnSaved.show();setTimeout(function(){buttons.fadeOut("fast",function(){btnSaved.hide();btnSave.show();btnCancel.show();setBusy(false)})},1e3)}else{setBusy(false);alert(data.error);btnSave.show();btnCancel.show();buttons.hide();$(".pw-editing, .pw-edited").each(function(){var t=$(this);t.removeClass("pw-editing, pw-edited, pw-changed");var orig=t.children(".pw-edit-orig");var copy=t.children(".pw-edit-copy");copy.hide();orig.show()})}for(var copyID in ckeditors){var instance=ckeditors[copyID];instance.destroy()}ckeditors={}})}function modalInitEditableRegions(){var regions=$(".pw-edit-modal");if(!regions.length)return;$(document).on("pw-modal-closed",function(e,eventData){if(eventData.abort)return;var target=$(e.target);if(!target.hasClass("pw-edit-modal"))return;var targetID=target.attr("id");var viewURL=$("#pw-url").val();viewURL+=(viewURL.indexOf("?")>-1?"&":"?")+"pw_edit_fields="+target.attr("data-fields");setBusy(true);target.load(viewURL+" #"+targetID,{},function(){var t=$(this);var children=t.children();if(children.length){var html=t.children().html();t.html(html)}t.trigger("pw-reloaded");setBusy(false)})})}function init(){if(isTouch)buttons.addClass("pw-edit-buttons-touch");var test=$("#pw-fa-test");var width=test.width();if(width<10)loadCSS(ProcessWire.config.PageFrontEdit.files.fa);test.hide();loadCSS(ProcessWire.config.PageFrontEdit.files.css);$("body").addClass("pw-"+ProcessWire.config.PageFrontEdit.adminTheme);$(".pw-edit:not(.pw-edit-modal)").each(function(){inlineInitEditableRegion($(this))});modalInitEditableRegions();if($(".pw-edit-InputfieldCKEditor").length){jQuery.getScript(ProcessWire.config.PageFrontEdit.files.ckeditor,function(){jQuery.getScript(ProcessWire.config.PageFrontEdit.files.modal,function(){for(var name in ProcessWire.config.InputfieldCKEditor.plugins){var file=ProcessWire.config.InputfieldCKEditor.plugins[name];CKEDITOR.plugins.addExternal(name,file,"")}}).fail(function(jqxhr,settings,exception){alert("failed to load modal.js: "+exception)})}).fail(function(jqxhr,settings,exception){alert("failed to load ckeditor.js: "+exception)})}else{jQuery.getScript(ProcessWire.config.PageFrontEdit.files.modal).fail(function(jqxhr,settings,exception){alert("failed to load modal.js: "+exception)})}$(".pw-edit-cancel").click(inlineCancelClickEvent);$(".pw-edit-save").click(function(){$(".pw-editing:not(.pw-edit-InputfieldCKEditor)").blur();setTimeout(function(){inlineSaveClickEvent()},250)})}init()}jQuery(document).ready(function($){PageFrontEditInit($)}); \ No newline at end of file