Commit e37b3e2fcc710067c74d00d3d89f4bfb05276d6f

Authored by Braulio Bhavamitra
1 parent 85cd639c

tokeninput: don't focus on init to avoid page scroll down

This happens for example on /admin/features with feature members_whitelist_enabled
with one member added, the page will load and scroll to token input
Showing 1 changed file with 6 additions and 6 deletions   Show diff stats
public/javascripts/jquery.tokeninput.js
@@ -345,7 +345,7 @@ $.TokenList = function (input, url_or_data, options) { @@ -345,7 +345,7 @@ $.TokenList = function (input, url_or_data, options) {
345 dropdown.appendTo("body"); 345 dropdown.appendTo("body");
346 if (!settings.permanentDropdown) 346 if (!settings.permanentDropdown)
347 dropdown.appendTo("body"); 347 dropdown.appendTo("body");
348 - else 348 + else
349 $(input).after(dropdown.show()); 349 $(input).after(dropdown.show());
350 350
351 if (settings.permanentDropdown || settings.showAllResults) { 351 if (settings.permanentDropdown || settings.showAllResults) {
@@ -382,7 +382,7 @@ $.TokenList = function (input, url_or_data, options) { @@ -382,7 +382,7 @@ $.TokenList = function (input, url_or_data, options) {
382 if(li_data && li_data.length) { 382 if(li_data && li_data.length) {
383 $.each(li_data, function (index, value) { 383 $.each(li_data, function (index, value) {
384 insert_token(value); 384 insert_token(value);
385 - checkTokenLimit(); 385 + checkTokenLimit({init: true});
386 }); 386 });
387 } 387 }
388 388
@@ -425,12 +425,12 @@ $.TokenList = function (input, url_or_data, options) { @@ -425,12 +425,12 @@ $.TokenList = function (input, url_or_data, options) {
425 // Private functions 425 // Private functions
426 // 426 //
427 427
428 - function checkTokenLimit() { 428 + function checkTokenLimit(options) {
429 if(settings.tokenLimit !== null && token_count >= settings.tokenLimit) { 429 if(settings.tokenLimit !== null && token_count >= settings.tokenLimit) {
430 input_box.hide(); 430 input_box.hide();
431 hide_dropdown(); 431 hide_dropdown();
432 return; 432 return;
433 - } else { 433 + } else if (options && !options.init) {
434 input_box.focus(); 434 input_box.focus();
435 } 435 }
436 } 436 }
@@ -618,7 +618,7 @@ $.TokenList = function (input, url_or_data, options) { @@ -618,7 +618,7 @@ $.TokenList = function (input, url_or_data, options) {
618 if (!settings.showAllResults) 618 if (!settings.showAllResults)
619 dropdown.empty(); 619 dropdown.empty();
620 selected_dropdown_item = null; 620 selected_dropdown_item = null;
621 - } 621 + }
622 if (settings.showAllResults) 622 if (settings.showAllResults)
623 show_dropdown_hint(); 623 show_dropdown_hint();
624 } 624 }
@@ -728,7 +728,7 @@ $.TokenList = function (input, url_or_data, options) { @@ -728,7 +728,7 @@ $.TokenList = function (input, url_or_data, options) {
728 item.addClass(settings.classes.selectedDropdownItem); 728 item.addClass(settings.classes.selectedDropdownItem);
729 selected_dropdown_item = item.get(0); 729 selected_dropdown_item = item.get(0);
730 730
731 - isBefore = item[0].offsetTop <= (dropdown[0].scrollTop + dropdown[0].scrollWidth); 731 + isBefore = item[0].offsetTop <= (dropdown[0].scrollTop + dropdown[0].scrollWidth);
732 isAfter = item[0].offsetTop >= dropdown[0].scrollTop; 732 isAfter = item[0].offsetTop >= dropdown[0].scrollTop;
733 visible = isBefore && isAfter; 733 visible = isBefore && isAfter;
734 if (!visible) { 734 if (!visible) {