1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-11 17:24:46 +02:00

Update InputfieldPageAutocomplete so that its icon is better positioned when the field initially starts out hidden

This commit is contained in:
Ryan Cramer
2019-10-09 11:53:36 -04:00
parent 6b20f429a9
commit e0e7f6eae6
2 changed files with 21 additions and 8 deletions

View File

@@ -83,6 +83,7 @@ var InputfieldPageAutocomplete = {
} }
$input.one('focus', function() { $input.one('focus', function() {
InputfieldPageAutocomplete.updateIcons($input.closest('.InputfieldContent'));
$input.autocomplete({ $input.autocomplete({
minLength: 2, minLength: 2,
source: function(request, response) { source: function(request, response) {
@@ -136,12 +137,12 @@ var InputfieldPageAutocomplete = {
$t.closest('.InputfieldPageAutocomplete') $t.closest('.InputfieldPageAutocomplete')
.find('.InputfieldPageAutocompleteData').val(ui.item.page_id).change(); .find('.InputfieldPageAutocompleteData').val(ui.item.page_id).change();
$t.blur(); $t.blur();
return false;
} else { } else {
InputfieldPageAutocomplete.pageSelected($ol, ui.item); InputfieldPageAutocomplete.pageSelected($ol, ui.item);
$t.val('').focus(); $t.val('').focus();
return false;
} }
event.stopPropagation();
return false;
} }
}).blur(function() { }).blur(function() {
@@ -281,6 +282,9 @@ var InputfieldPageAutocomplete = {
* *
*/ */
setIconPosition: function($icon, side) { setIconPosition: function($icon, side) {
if($icon.hasClass('PageAutocompleteIconHidden')) {
$icon.removeClass('PageAutocompleteIconHidden').show();
}
var iconHeight = $icon.height(); var iconHeight = $icon.height();
if(iconHeight) { if(iconHeight) {
var pHeight = $icon.parent().height(); var pHeight = $icon.parent().height();
@@ -293,6 +297,7 @@ var InputfieldPageAutocomplete = {
} }
} else { } else {
// icon is not visible (in a tab or collapsed field), we'll leave it alone // icon is not visible (in a tab or collapsed field), we'll leave it alone
$icon.hide().addClass('PageAutocompleteIconHidden');
} }
}, },
@@ -361,8 +366,19 @@ var InputfieldPageAutocomplete = {
var $addItems = $('#_' + name + '_add_items'); var $addItems = $('#_' + name + '_add_items');
if($addItems.size() > 0) $addItems.val(addValue); if($addItems.size() > 0) $addItems.val(addValue);
} },
updateIcons: function($target) {
// update positions of icons that previously were not calculable
var $icons = $target.find('.InputfieldPageAutocompleteStatus');
$icons.each(function() {
InputfieldPageAutocomplete.setIconPosition($(this), 'left');
});
$icons = $target.find('.InputfieldPageAutocompleteRemove');
$icons.each(function() {
InputfieldPageAutocomplete.setIconPosition($(this), 'right');
});
}
}; };
@@ -388,10 +404,7 @@ $(document).ready(function() {
$(document).on('wiretabclick', function(a, $tab) { $(document).on('wiretabclick', function(a, $tab) {
// update positions of icons that previously were not calculable // update positions of icons that previously were not calculable
var $icon = $tab.find('.InputfieldPageAutocompleteStatus'); InputfieldPageAutocomplete.updateIcons($tab);
InputfieldPageAutocomplete.setIconPosition($icon, 'left');
$icon = $tab.find('.InputfieldPageAutocompleteRemove');
InputfieldPageAutocomplete.setIconPosition($icon, 'right');
}); });
}); });

File diff suppressed because one or more lines are too long