From e520c09f7a2b633581efc895949cf156d72fd9fd Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Tue, 8 May 2018 09:25:07 -0400 Subject: [PATCH] Update InputfieldPageAutocomplete.js to initialize the autocomplete on focus event, rather than on document ready. This resolves a render time issue in AdminThemeUikit when there are a lot of autocomplete inputs present, per @Toutouwai --- .../InputfieldPageAutocomplete.js | 260 +++++++++--------- .../InputfieldPageAutocomplete.min.js | 2 +- .../InputfieldPageAutocomplete.module | 2 +- .../ProcessPageEditLink.js | 4 +- .../ProcessPageEditLink.min.js | 2 +- 5 files changed, 137 insertions(+), 133 deletions(-) diff --git a/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.js b/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.js index 34ef998f..61dbf56b 100644 --- a/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.js +++ b/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.js @@ -98,148 +98,150 @@ var InputfieldPageAutocomplete = { return allowed; } - $input.autocomplete({ - minLength: 2, - source: function(request, response) { - var term = request.term; - - if(hasDisableChar(term)) { - response([]); - return; - } - - $icon.attr('class', 'fa fa-fw fa-spin fa-spinner'); - - if($input.hasClass('and_words') && term.indexOf(' ') > 0) { - // AND words mode - term = term.replace(/\s+/, ','); - } - term = encodeURIComponent(term); - var ajaxURL = url + '&' + searchField + operator + term; + $input.one('focus', function() { + $input.autocomplete({ + minLength: 2, + source: function(request, response) { + var term = request.term; - $.getJSON(ajaxURL, function(data) { - - $icon.attr('class', $icon.attr('data-class')); - numFound = data.total; - - if(data.total > 0) { - $icon.attr('class', 'fa fa-fw fa-angle-double-down'); - - } else if(isAddAllowed()) { - $icon.attr('class', 'fa fa-fw fa-plus-circle'); - $note.show(); - - } else { - $icon.attr('class', 'fa fa-fw fa-frown-o'); + if(hasDisableChar(term)) { + response([]); + return; } - response($.map(data.matches, function(item) { - return { - label: item[labelField], - value: item[labelField], - page_id: item.id + $icon.attr('class', 'fa fa-fw fa-spin fa-spinner'); + + if($input.hasClass('and_words') && term.indexOf(' ') > 0) { + // AND words mode + term = term.replace(/\s+/, ','); + } + term = encodeURIComponent(term); + var ajaxURL = url + '&' + searchField + operator + term; + + $.getJSON(ajaxURL, function(data) { + + $icon.attr('class', $icon.attr('data-class')); + numFound = data.total; + + if(data.total > 0) { + $icon.attr('class', 'fa fa-fw fa-angle-double-down'); + + } else if(isAddAllowed()) { + $icon.attr('class', 'fa fa-fw fa-plus-circle'); + $note.show(); + + } else { + $icon.attr('class', 'fa fa-fw fa-frown-o'); } - })); - }); - }, - select: function(event, ui) { - if(!ui.item) return; - var $t = $(this); - if($t.hasClass('no_list')) { - $t.val(ui.item.label).change(); - $t.attr('data-selectedLabel', ui.item.label); - $t.closest('.InputfieldPageAutocomplete') - .find('.InputfieldPageAutocompleteData').val(ui.item.page_id).change(); - $t.blur(); - return false; - } else { - InputfieldPageAutocomplete.pageSelected($ol, ui.item); - $t.val('').focus(); - return false; - } - } - }).blur(function() { - var $input = $(this); - //if(!$input.val().length) $input.val(''); - $icon.attr('class', $icon.attr('data-class')); - $note.hide(); - if($input.hasClass('no_list')) { - if($value.val().length || $input.val().length) { - if($input.hasClass('allow_any') || $input.hasClass('added_item')) { - // allow value to remain + response($.map(data.matches, function(item) { + return { + label: item[labelField], + value: item[labelField], + page_id: item.id + } + })); + }); + }, + select: function(event, ui) { + if(!ui.item) return; + var $t = $(this); + if($t.hasClass('no_list')) { + $t.val(ui.item.label).change(); + $t.attr('data-selectedLabel', ui.item.label); + $t.closest('.InputfieldPageAutocomplete') + .find('.InputfieldPageAutocompleteData').val(ui.item.page_id).change(); + $t.blur(); + return false; } else { - $input.val($input.attr('data-selectedLabel')).attr('placeholder', ''); - } - } else { - $input.val('').attr('placeholder', '').attr('data-selectedLabel', ''); - } - //$(this).closest('.InputfieldPageAutocomplete').find('.InputfieldPageAutocompleteData').val('').change(); - } - if($input.hasClass('focus-after-blur')) { - $input.removeClass('focus-after-blur'); - setTimeout(function() { - $input.focus(); - }, 250); - } - - }).keyup(function() { - $icon.attr('class', $icon.attr('data-class')); - - }).keydown(function(event) { - if(event.keyCode == 13) { - // prevents enter from submitting the form - event.preventDefault(); - // instead we add the text entered as a new item - // if there is an .InputfieldPageAdd sibling, which indicates support for this - if(isAddAllowed()) { - if($.trim($input.val()).length < 1) { - $input.blur(); + InputfieldPageAutocomplete.pageSelected($ol, ui.item); + $t.val('').focus(); return false; } - numAdded++; - // new items have a negative page_id - var page = { page_id: (-1 * numAdded), label: $input.val() }; - // add it to the list - if(noList) { - // adding new item while using input as the label - $value.val(page.page_id); - $("#_" + id.replace('Inputfield_', '') + '_add_items').val(page.label); - $input.addClass('added_item').blur(); - var $addNote = $note.siblings(".InputfieldPageAutocompleteNoteAdd"); - if(!$addNote.length) { - var $addNote = $("
"); - $note.after($addNote); + } + + }).blur(function() { + var $input = $(this); + //if(!$input.val().length) $input.val(''); + $icon.attr('class', $icon.attr('data-class')); + $note.hide(); + if($input.hasClass('no_list')) { + if($value.val().length || $input.val().length) { + if($input.hasClass('allow_any') || $input.hasClass('added_item')) { + // allow value to remain + } else { + $input.val($input.attr('data-selectedLabel')).attr('placeholder', ''); } - $addNote.text($note.attr('data-adding') + ' ' + page.label); - $addNote.show(); - } else { - // adding new item to list - InputfieldPageAutocomplete.pageSelected($ol, page); - $input.val('').blur().focus(); + $input.val('').attr('placeholder', '').attr('data-selectedLabel', ''); } - $note.hide(); - } else { - $(this).addClass('focus-after-blur').blur(); + //$(this).closest('.InputfieldPageAutocomplete').find('.InputfieldPageAutocompleteData').val('').change(); } - return false; - } - - if(numAdded && noList) { - // some other key after an item already added, so remove added item info for potential new one - var $addNote = $note.siblings(".InputfieldPageAutocompleteNoteAdd"); - var $addText = $("#_" + id.replace('Inputfield_', '') + '_add_items'); - if($addNote.length && $addText.val() != $(this).val()) { - // added value has changed - $addNote.remove(); - $value.val(''); - $addText.val(''); - $("#_" + id.replace('Inputfield_', '') + '_add_items').val(''); - numAdded--; + if($input.hasClass('focus-after-blur')) { + $input.removeClass('focus-after-blur'); + setTimeout(function() { + $input.focus(); + }, 250); } - } - }); + + }).keyup(function() { + $icon.attr('class', $icon.attr('data-class')); + + }).keydown(function(event) { + if(event.keyCode == 13) { + // prevents enter from submitting the form + event.preventDefault(); + // instead we add the text entered as a new item + // if there is an .InputfieldPageAdd sibling, which indicates support for this + if(isAddAllowed()) { + if($.trim($input.val()).length < 1) { + $input.blur(); + return false; + } + numAdded++; + // new items have a negative page_id + var page = {page_id: (-1 * numAdded), label: $input.val()}; + // add it to the list + if(noList) { + // adding new item while using input as the label + $value.val(page.page_id); + $("#_" + id.replace('Inputfield_', '') + '_add_items').val(page.label); + $input.addClass('added_item').blur(); + var $addNote = $note.siblings(".InputfieldPageAutocompleteNoteAdd"); + if(!$addNote.length) { + var $addNote = $("
"); + $note.after($addNote); + } + $addNote.text($note.attr('data-adding') + ' ' + page.label); + $addNote.show(); + + } else { + // adding new item to list + InputfieldPageAutocomplete.pageSelected($ol, page); + $input.val('').blur().focus(); + } + $note.hide(); + } else { + $(this).addClass('focus-after-blur').blur(); + } + return false; + } + + if(numAdded && noList) { + // some other key after an item already added, so remove added item info for potential new one + var $addNote = $note.siblings(".InputfieldPageAutocompleteNoteAdd"); + var $addText = $("#_" + id.replace('Inputfield_', '') + '_add_items'); + if($addNote.length && $addText.val() != $(this).val()) { + // added value has changed + $addNote.remove(); + $value.val(''); + $addText.val(''); + $("#_" + id.replace('Inputfield_', '') + '_add_items').val(''); + numAdded--; + } + } + }); + }); var makeSortable = function($ol) { $ol.sortable({ diff --git a/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.min.js b/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.min.js index c1b3075d..18348bc3 100644 --- a/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.min.js +++ b/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.min.js @@ -1 +1 @@ -var InputfieldPageAutocomplete={init:function(p,e,h,o,j){var f=$("#"+p);var k=$("#"+p+"_items");var c=$("#"+p+"_input");var a=c.parent().find(".InputfieldPageAutocompleteStatus");var i=c.parent().find(".InputfieldPageAutocompleteNote");var g=0;var l=0;var q=c.attr("data-disablechars");var b=c.hasClass("no_list");function m(u,v){var x=u.height();if(x){var w=u.parent().height();var t=((w-x)/2);u.css("top",t+"px");if(v=="left"){u.css("left",(t/2)+"px")}else{if(v=="right"){u.css("right",(t/4)+"px")}}}else{}}function n(u){if(!q||!q.length){return false}var t=false;for(var v=0;v-1){t=true;break}}return t}m(a,"left");if(b){c.attr("data-selectedLabel",c.val());var d=c.siblings(".InputfieldPageAutocompleteRemove");m(d,"right");d.click(function(){f.val("").change();c.val("").attr("placeholder","").attr("data-selectedLabel","").change().focus();c.trigger("keydown")});c.change(function(){if($(this).val().length==0){d.hide()}else{d.show()}});c.focus(function(){var t=f.val();if(!t.length){return}if(n(t)){return}if($(this).hasClass("added_item")){return}$(this).attr("placeholder",$(this).attr("data-selectedLabel"));$(this).val("")}).blur(function(){setTimeout(function(){},200)})}a.click(function(){c.focus()});a.attr("data-class",a.attr("class"));function s(){var t=$("#_"+p.replace("Inputfield_","")+"_add_items").size()>0;return t}c.autocomplete({minLength:2,source:function(v,t){var u=v.term;if(n(u)){t([]);return}a.attr("class","fa fa-fw fa-spin fa-spinner");if(c.hasClass("and_words")&&u.indexOf(" ")>0){u=u.replace(/\s+/,",")}u=encodeURIComponent(u);var w=e+"&"+o+j+u;$.getJSON(w,function(x){a.attr("class",a.attr("data-class"));l=x.total;if(x.total>0){a.attr("class","fa fa-fw fa-angle-double-down")}else{if(s()){a.attr("class","fa fa-fw fa-plus-circle");i.show()}else{a.attr("class","fa fa-fw fa-frown-o")}}t($.map(x.matches,function(y){return{label:y[h],value:y[h],page_id:y.id}}))})},select:function(t,u){if(!u.item){return}var v=$(this);if(v.hasClass("no_list")){v.val(u.item.label).change();v.attr("data-selectedLabel",u.item.label);v.closest(".InputfieldPageAutocomplete").find(".InputfieldPageAutocompleteData").val(u.item.page_id).change();v.blur();return false}else{InputfieldPageAutocomplete.pageSelected(k,u.item);v.val("").focus();return false}}}).blur(function(){var t=$(this);a.attr("class",a.attr("data-class"));i.hide();if(t.hasClass("no_list")){if(f.val().length||t.val().length){if(t.hasClass("allow_any")||t.hasClass("added_item")){}else{t.val(t.attr("data-selectedLabel")).attr("placeholder","")}}else{t.val("").attr("placeholder","").attr("data-selectedLabel","")}}if(t.hasClass("focus-after-blur")){t.removeClass("focus-after-blur");setTimeout(function(){t.focus()},250)}}).keyup(function(){a.attr("class",a.attr("data-class"))}).keydown(function(u){if(u.keyCode==13){u.preventDefault();if(s()){if($.trim(c.val()).length<1){c.blur();return false}g++;var v={page_id:(-1*g),label:c.val()};if(b){f.val(v.page_id);$("#_"+p.replace("Inputfield_","")+"_add_items").val(v.label);c.addClass("added_item").blur();var t=i.siblings(".InputfieldPageAutocompleteNoteAdd");if(!t.length){var t=$("
");i.after(t)}t.text(i.attr("data-adding")+" "+v.label);t.show()}else{InputfieldPageAutocomplete.pageSelected(k,v);c.val("").blur().focus()}i.hide()}else{$(this).addClass("focus-after-blur").blur()}return false}if(g&&b){var t=i.siblings(".InputfieldPageAutocompleteNoteAdd");var w=$("#_"+p.replace("Inputfield_","")+"_add_items");if(t.length&&w.val()!=$(this).val()){t.remove();f.val("");w.val("");$("#_"+p.replace("Inputfield_","")+"_add_items").val("");g--}}});var r=function(t){t.sortable({axis:"y",update:function(v,u){InputfieldPageAutocomplete.rebuildInput($(this))},start:function(v,u){u.item.addClass("ui-state-highlight")},stop:function(v,u){u.item.removeClass("ui-state-highlight")}});t.addClass("InputfieldPageAutocompleteSortable")};$("#"+k.attr("id")).on("mouseover",">li",function(){$(this).removeClass("ui-state-default").addClass("ui-state-hover");r(k)}).on("mouseout",">li",function(){$(this).removeClass("ui-state-hover").addClass("ui-state-default")})},initFromInputfield:function(a){var b=a.find(".InputfieldPageAutocompleteData");if(!b.length){return}if(b.hasClass("InputfieldPageAutocompleteInit")){return}InputfieldPageAutocomplete.init(b.attr("id"),b.attr("data-url"),b.attr("data-label"),b.attr("data-search"),b.attr("data-operator"));b.addClass("InputfieldPageAutocompleteInit")},pageSelected:function(a,d){var c=false;a.children("li:not(.itemTemplate)").each(function(){var f=parseInt($(this).children(".itemValue").text());if(f==d.page_id){c=$(this)}});var b=$("#"+a.attr("data-id")+"_input");b.blur();if(c){c.effect("highlight");return}var e=a.children(".itemTemplate").clone();e.removeClass("itemTemplate");e.children(".itemValue").text(d.page_id);e.children(".itemLabel").text(d.label);a.append(e);InputfieldPageAutocomplete.rebuildInput(a)},rebuildInput:function(d){var b=d.attr("data-id");var a=d.attr("data-name");var f=$("#"+b);var h="";var c="";var g=parseInt(f.attr("data-max"));var i=d.children(":not(.itemTemplate)");if(g>0&&i.size()>g){while(i.size()>g){i=i.slice(1)}d.children(":not(.itemTemplate)").replaceWith(i)}i.each(function(){var j=parseInt($(this).children(".itemValue").text());if(j>0){h+=","+j}else{if(j<0){h+=","+j;c+=$(this).children(".itemLabel").text()+"\n"}}});f.val(h);var e=$("#_"+a+"_add_items");if(e.size()>0){e.val(c)}}};$(document).ready(function(){$(".InputfieldPageAutocomplete").each(function(){InputfieldPageAutocomplete.initFromInputfield($(this))});$(document).on("reloaded",".InputfieldPageAutocomplete, .InputfieldPage",function(){InputfieldPageAutocomplete.initFromInputfield($(this))});$(document).on("click",".InputfieldPageAutocomplete ol a.itemRemove",function(){var c=$(this).parent();var a=c.parent();var b=c.children(".itemValue").text();c.remove();InputfieldPageAutocomplete.rebuildInput(a);return false})}); \ No newline at end of file +var InputfieldPageAutocomplete={init:function(p,e,h,o,j){var f=$("#"+p);var k=$("#"+p+"_items");var c=$("#"+p+"_input");var a=c.parent().find(".InputfieldPageAutocompleteStatus");var i=c.parent().find(".InputfieldPageAutocompleteNote");var g=0;var l=0;var q=c.attr("data-disablechars");var b=c.hasClass("no_list");function m(u,v){var x=u.height();if(x){var w=u.parent().height();var t=((w-x)/2);u.css("top",t+"px");if(v=="left"){u.css("left",(t/2)+"px")}else{if(v=="right"){u.css("right",(t/4)+"px")}}}else{}}function n(u){if(!q||!q.length){return false}var t=false;for(var v=0;v-1){t=true;break}}return t}m(a,"left");if(b){c.attr("data-selectedLabel",c.val());var d=c.siblings(".InputfieldPageAutocompleteRemove");m(d,"right");d.click(function(){f.val("").change();c.val("").attr("placeholder","").attr("data-selectedLabel","").change().focus();c.trigger("keydown")});c.change(function(){if($(this).val().length==0){d.hide()}else{d.show()}});c.focus(function(){var t=f.val();if(!t.length){return}if(n(t)){return}if($(this).hasClass("added_item")){return}$(this).attr("placeholder",$(this).attr("data-selectedLabel"));$(this).val("")}).blur(function(){setTimeout(function(){},200)})}a.click(function(){c.focus()});a.attr("data-class",a.attr("class"));function s(){var t=$("#_"+p.replace("Inputfield_","")+"_add_items").size()>0;return t}c.one("focus",function(){c.autocomplete({minLength:2,source:function(v,t){var u=v.term;if(n(u)){t([]);return}a.attr("class","fa fa-fw fa-spin fa-spinner");if(c.hasClass("and_words")&&u.indexOf(" ")>0){u=u.replace(/\s+/,",")}u=encodeURIComponent(u);var w=e+"&"+o+j+u;$.getJSON(w,function(x){a.attr("class",a.attr("data-class"));l=x.total;if(x.total>0){a.attr("class","fa fa-fw fa-angle-double-down")}else{if(s()){a.attr("class","fa fa-fw fa-plus-circle");i.show()}else{a.attr("class","fa fa-fw fa-frown-o")}}t($.map(x.matches,function(y){return{label:y[h],value:y[h],page_id:y.id}}))})},select:function(t,u){if(!u.item){return}var v=$(this);if(v.hasClass("no_list")){v.val(u.item.label).change();v.attr("data-selectedLabel",u.item.label);v.closest(".InputfieldPageAutocomplete").find(".InputfieldPageAutocompleteData").val(u.item.page_id).change();v.blur();return false}else{InputfieldPageAutocomplete.pageSelected(k,u.item);v.val("").focus();return false}}}).blur(function(){var t=$(this);a.attr("class",a.attr("data-class"));i.hide();if(t.hasClass("no_list")){if(f.val().length||t.val().length){if(t.hasClass("allow_any")||t.hasClass("added_item")){}else{t.val(t.attr("data-selectedLabel")).attr("placeholder","")}}else{t.val("").attr("placeholder","").attr("data-selectedLabel","")}}if(t.hasClass("focus-after-blur")){t.removeClass("focus-after-blur");setTimeout(function(){t.focus()},250)}}).keyup(function(){a.attr("class",a.attr("data-class"))}).keydown(function(u){if(u.keyCode==13){u.preventDefault();if(s()){if($.trim(c.val()).length<1){c.blur();return false}g++;var v={page_id:(-1*g),label:c.val()};if(b){f.val(v.page_id);$("#_"+p.replace("Inputfield_","")+"_add_items").val(v.label);c.addClass("added_item").blur();var t=i.siblings(".InputfieldPageAutocompleteNoteAdd");if(!t.length){var t=$("
");i.after(t)}t.text(i.attr("data-adding")+" "+v.label);t.show()}else{InputfieldPageAutocomplete.pageSelected(k,v);c.val("").blur().focus()}i.hide()}else{$(this).addClass("focus-after-blur").blur()}return false}if(g&&b){var t=i.siblings(".InputfieldPageAutocompleteNoteAdd");var w=$("#_"+p.replace("Inputfield_","")+"_add_items");if(t.length&&w.val()!=$(this).val()){t.remove();f.val("");w.val("");$("#_"+p.replace("Inputfield_","")+"_add_items").val("");g--}}})});var r=function(t){t.sortable({axis:"y",update:function(v,u){InputfieldPageAutocomplete.rebuildInput($(this))},start:function(v,u){u.item.addClass("ui-state-highlight")},stop:function(v,u){u.item.removeClass("ui-state-highlight")}});t.addClass("InputfieldPageAutocompleteSortable")};$("#"+k.attr("id")).on("mouseover",">li",function(){$(this).removeClass("ui-state-default").addClass("ui-state-hover");r(k)}).on("mouseout",">li",function(){$(this).removeClass("ui-state-hover").addClass("ui-state-default")})},initFromInputfield:function(a){var b=a.find(".InputfieldPageAutocompleteData");if(!b.length){return}if(b.hasClass("InputfieldPageAutocompleteInit")){return}InputfieldPageAutocomplete.init(b.attr("id"),b.attr("data-url"),b.attr("data-label"),b.attr("data-search"),b.attr("data-operator"));b.addClass("InputfieldPageAutocompleteInit")},pageSelected:function(a,d){var c=false;a.children("li:not(.itemTemplate)").each(function(){var f=parseInt($(this).children(".itemValue").text());if(f==d.page_id){c=$(this)}});var b=$("#"+a.attr("data-id")+"_input");b.blur();if(c){c.effect("highlight");return}var e=a.children(".itemTemplate").clone();e.removeClass("itemTemplate");e.children(".itemValue").text(d.page_id);e.children(".itemLabel").text(d.label);a.append(e);InputfieldPageAutocomplete.rebuildInput(a)},rebuildInput:function(d){var b=d.attr("data-id");var a=d.attr("data-name");var f=$("#"+b);var h="";var c="";var g=parseInt(f.attr("data-max"));var i=d.children(":not(.itemTemplate)");if(g>0&&i.size()>g){while(i.size()>g){i=i.slice(1)}d.children(":not(.itemTemplate)").replaceWith(i)}i.each(function(){var j=parseInt($(this).children(".itemValue").text());if(j>0){h+=","+j}else{if(j<0){h+=","+j;c+=$(this).children(".itemLabel").text()+"\n"}}});f.val(h);var e=$("#_"+a+"_add_items");if(e.size()>0){e.val(c)}}};$(document).ready(function(){$(".InputfieldPageAutocomplete").each(function(){InputfieldPageAutocomplete.initFromInputfield($(this))});$(document).on("reloaded",".InputfieldPageAutocomplete, .InputfieldPage",function(){InputfieldPageAutocomplete.initFromInputfield($(this))});$(document).on("click",".InputfieldPageAutocomplete ol a.itemRemove",function(){var c=$(this).parent();var a=c.parent();var b=c.children(".itemValue").text();c.remove();InputfieldPageAutocomplete.rebuildInput(a);return false})}); \ No newline at end of file diff --git a/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.module b/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.module index 155b8d54..b93a3a53 100644 --- a/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.module +++ b/wire/modules/Inputfield/InputfieldPageAutocomplete/InputfieldPageAutocomplete.module @@ -177,7 +177,7 @@ class InputfieldPageAutocomplete extends Inputfield implements InputfieldHasArra $operator = $this->operator; $id = $this->id; $max = (int) $this->maxSelectedItems; - $class = $this->useList ? 'has_list' : 'no_list'; + $class = 'ui-autocomplete-input ' . ($this->useList ? 'has_list' : 'no_list'); if($this->useAndWords) $class .= " and_words"; if($this->allowAnyValue) $class .= " allow_any"; diff --git a/wire/modules/Process/ProcessPageEditLink/ProcessPageEditLink.js b/wire/modules/Process/ProcessPageEditLink/ProcessPageEditLink.js index 773092b1..73ef8283 100644 --- a/wire/modules/Process/ProcessPageEditLink/ProcessPageEditLink.js +++ b/wire/modules/Process/ProcessPageEditLink/ProcessPageEditLink.js @@ -331,5 +331,7 @@ $(document).ready(function() { id: 'PageEditLinkTabs' }); - $('#link_page_url_input').focus(); + setTimeout(function() { + $('#link_page_url_input').focus(); + }, 250); }); diff --git a/wire/modules/Process/ProcessPageEditLink/ProcessPageEditLink.min.js b/wire/modules/Process/ProcessPageEditLink/ProcessPageEditLink.min.js index 30798f85..7caf9a62 100644 --- a/wire/modules/Process/ProcessPageEditLink/ProcessPageEditLink.min.js +++ b/wire/modules/Process/ProcessPageEditLink/ProcessPageEditLink.min.js @@ -1 +1 @@ -$(document).ready(function(){var m={selectStartLabel:ProcessWire.config.ProcessPageEditLink.selectStartLabel,selectSelectLabel:ProcessWire.config.ProcessPageEditLink.selectStartLabel,langID:ProcessWire.config.ProcessPageEditLink.langID};var k={selectStartLabel:m.selectStartLabel,selectSelectLabel:m.selectStartLabel,langID:m.langID,rootPageID:ProcessWire.config.ProcessPageEditLink.pageID};var f={id:0,title:"",url:""};var e=$("#link_page_file");var h=$("#link_page_anchor");var g=$("#link_page_url_input");g.val($("#link_page_url").val());function c(o){var n=$("#wrap_link_page_file");$.getJSON("./files?id="+o.id,function(p){e.empty();e.append("");$.each(p,function(q,s){var r=$("");e.append(r)});n.find("p.notes strong").text(o.url);n.children().effect("highlight",{},500);e.effect("bounce",{},50)})}function i(q){if(ProcessWire.config.ProcessPageEditLink.urlType==0){return q}function n(r){r=r.replace(/\//g,"../");r=r.replace(/[^.\/]/g,"");return r}if(q===ProcessWire.config.ProcessPageEditLink.pageUrl){q="./";if(!ProcessWire.config.ProcessPageEditLink.slashUrls){q+=ProcessWire.config.ProcessPageEditLink.pageName}}else{if(q.indexOf(ProcessWire.config.ProcessPageEditLink.pageUrl)===0){q=q.substring(ProcessWire.config.ProcessPageEditLink.pageUrl.length);if(!ProcessWire.config.ProcessPageEditLink.slashUrls){q=ProcessWire.config.ProcessPageEditLink.pageName+q}}else{if(ProcessWire.config.ProcessPageEditLink.pageUrl.indexOf(q)===0){var o=ProcessWire.config.ProcessPageEditLink.pageUrl.substring(q.length);if(o.indexOf("/")!=-1){o=n(o)}else{o="./"}q=o}else{if(q.indexOf(ProcessWire.config.ProcessPageEditLink.rootParentUrl)===0){var o=q.substring(ProcessWire.config.ProcessPageEditLink.rootParentUrl.length);var p=o;o=n(o)+p;q=o}else{if(ProcessWire.config.ProcessPageEditLink.urlType==2){var o=ProcessWire.config.ProcessPageEditLink.pageUrl.substring(config.urls.root.length);o=n(o);q=q.substring(ProcessWire.config.urls.root.length);q=o+q}}}}}return q}function j(n,o){if(o.url&&o.url.length){f=o;f.url=ProcessWire.config.urls.root+o.url.substring(1);f.url=i(f.url);g.val(f.url).change();if(e.is(":visible")){c(f)}}$(this).parents(".InputfieldInteger").children(".InputfieldHeader").click().parent().find(".PageListSelectHeader").removeClass("hidden").show()}$("#link_page_id").ProcessPageList(m).hide().bind("pageSelected",j);$("#child_page_id").ProcessPageList(k).hide().bind("pageSelected",j);e.change(function(){var o=$(this);var n=o.val();if(n.length){g.val(n).change()}});if(h.length){var l=h.val();h.change(function(){var n=$(this).val();if(n.length){g.val(n);l=n}else{if(g.val()==l){g.val("")}}g.change()})}function d(){if(!g.val().length){$("#link_markup").text("");return}var o=$("");o.attr("href",g.val());var p=$("#link_title");if(p.length&&p.val().length){var s=$("
").text(p.val()).html();o.attr("title",s)}var q=$("#link_rel");if(q.length&&q.val().length){o.attr("rel",q.val())}var r=$("#link_target");if(r.length&&r.val().length){o.attr("target",r.val())}var n=$("#wrap_link_class").find("input:checked");if(n.length){n.each(function(){o.addClass($(this).val())})}$("#link_markup").text(o[0].outerHTML)}function a(){var s=g;var G=$.trim(s.val());var q=G.indexOf(".");var t=G.indexOf("//");var o=t>-1&&t-1?G.indexOf("/",t+2):G.indexOf("/"));if(q>-1&&G.indexOf("..")==-1&&G.indexOf("./")==-1&&((w>q&&!o)||(w==-1&&q>1&&G.match(/^[a-z][-a-z.0-9]+\.[a-z]{2,}($|\/)/i)))){var F=G.substring(0,(w>0?w:G.length));o=true;if(s.attr("data-ignore")==F){}else{s.val("http://"+G);s.closest(".InputfieldContent").find(".notes").text("http://"+G);s.attr("data-ignore",F)}}else{if(q>0&&G.indexOf("@")>0&&G.indexOf(":")==-1&&G.match(/^[^@]+@[-.a-z0-9]{2,}\.[a-z]{2,}$/i)){s.val("mailto:"+G);s.addClass("email")}else{if(G.indexOf("@")==-1&&s.hasClass("email")){s.removeClass("email")}}}if(G.substring(0,1)=="#"){s.addClass("anchor")}else{if(s.hasClass("anchor")){s.removeClass("anchor")}}if(o){if(w==-1){w=G.length}var y=(t>-1?G.substring(t+2,w):G.substring(0,w));s.attr("data-httphost",y)}else{s.removeAttr("data-httphost")}function B(){return s.closest(".Inputfield").children(".InputfieldHeader").children("i").eq(0)}var r=false;var y=s.attr("data-httphost");if(y&&y.length){r=true;for(var z=0;z0){$("#link_target").val(p)}var A=ProcessWire.config.ProcessPageEditLink.extLinkRel;if(A.length>0){$("#link_rel").val(A)}var u=ProcessWire.config.ProcessPageEditLink.extLinkClass;if(u.length>0){u=u.split(" ");for(var z=0;z");$.each(p,function(q,s){var r=$("");e.append(r)});n.find("p.notes strong").text(o.url);n.children().effect("highlight",{},500);e.effect("bounce",{},50)})}function i(q){if(ProcessWire.config.ProcessPageEditLink.urlType==0){return q}function n(r){r=r.replace(/\//g,"../");r=r.replace(/[^.\/]/g,"");return r}if(q===ProcessWire.config.ProcessPageEditLink.pageUrl){q="./";if(!ProcessWire.config.ProcessPageEditLink.slashUrls){q+=ProcessWire.config.ProcessPageEditLink.pageName}}else{if(q.indexOf(ProcessWire.config.ProcessPageEditLink.pageUrl)===0){q=q.substring(ProcessWire.config.ProcessPageEditLink.pageUrl.length);if(!ProcessWire.config.ProcessPageEditLink.slashUrls){q=ProcessWire.config.ProcessPageEditLink.pageName+q}}else{if(ProcessWire.config.ProcessPageEditLink.pageUrl.indexOf(q)===0){var o=ProcessWire.config.ProcessPageEditLink.pageUrl.substring(q.length);if(o.indexOf("/")!=-1){o=n(o)}else{o="./"}q=o}else{if(q.indexOf(ProcessWire.config.ProcessPageEditLink.rootParentUrl)===0){var o=q.substring(ProcessWire.config.ProcessPageEditLink.rootParentUrl.length);var p=o;o=n(o)+p;q=o}else{if(ProcessWire.config.ProcessPageEditLink.urlType==2){var o=ProcessWire.config.ProcessPageEditLink.pageUrl.substring(config.urls.root.length);o=n(o);q=q.substring(ProcessWire.config.urls.root.length);q=o+q}}}}}return q}function j(n,o){if(o.url&&o.url.length){f=o;f.url=ProcessWire.config.urls.root+o.url.substring(1);f.url=i(f.url);g.val(f.url).change();if(e.is(":visible")){c(f)}}$(this).parents(".InputfieldInteger").children(".InputfieldHeader").click().parent().find(".PageListSelectHeader").removeClass("hidden").show()}$("#link_page_id").ProcessPageList(m).hide().bind("pageSelected",j);$("#child_page_id").ProcessPageList(k).hide().bind("pageSelected",j);e.change(function(){var o=$(this);var n=o.val();if(n.length){g.val(n).change()}});if(h.length){var l=h.val();h.change(function(){var n=$(this).val();if(n.length){g.val(n);l=n}else{if(g.val()==l){g.val("")}}g.change()})}function d(){if(!g.val().length){$("#link_markup").text("");return}var o=$("");o.attr("href",g.val());var p=$("#link_title");if(p.length&&p.val().length){var s=$("
").text(p.val()).html();o.attr("title",s)}var q=$("#link_rel");if(q.length&&q.val().length){o.attr("rel",q.val())}var r=$("#link_target");if(r.length&&r.val().length){o.attr("target",r.val())}var n=$("#wrap_link_class").find("input:checked");if(n.length){n.each(function(){o.addClass($(this).val())})}$("#link_markup").text(o[0].outerHTML)}function a(){var s=g;var G=$.trim(s.val());var q=G.indexOf(".");var t=G.indexOf("//");var o=t>-1&&t-1?G.indexOf("/",t+2):G.indexOf("/"));if(q>-1&&G.indexOf("..")==-1&&G.indexOf("./")==-1&&((w>q&&!o)||(w==-1&&q>1&&G.match(/^[a-z][-a-z.0-9]+\.[a-z]{2,}($|\/)/i)))){var F=G.substring(0,(w>0?w:G.length));o=true;if(s.attr("data-ignore")==F){}else{s.val("http://"+G);s.closest(".InputfieldContent").find(".notes").text("http://"+G);s.attr("data-ignore",F)}}else{if(q>0&&G.indexOf("@")>0&&G.indexOf(":")==-1&&G.match(/^[^@]+@[-.a-z0-9]{2,}\.[a-z]{2,}$/i)){s.val("mailto:"+G);s.addClass("email")}else{if(G.indexOf("@")==-1&&s.hasClass("email")){s.removeClass("email")}}}if(G.substring(0,1)=="#"){s.addClass("anchor")}else{if(s.hasClass("anchor")){s.removeClass("anchor")}}if(o){if(w==-1){w=G.length}var y=(t>-1?G.substring(t+2,w):G.substring(0,w));s.attr("data-httphost",y)}else{s.removeAttr("data-httphost")}function B(){return s.closest(".Inputfield").children(".InputfieldHeader").children("i").eq(0)}var r=false;var y=s.attr("data-httphost");if(y&&y.length){r=true;for(var z=0;z0){$("#link_target").val(p)}var A=ProcessWire.config.ProcessPageEditLink.extLinkRel;if(A.length>0){$("#link_rel").val(A)}var u=ProcessWire.config.ProcessPageEditLink.extLinkClass;if(u.length>0){u=u.split(" ");for(var z=0;z