mirror of
https://github.com/processwire/processwire.git
synced 2025-08-09 16:26:59 +02:00
Fix issue where sometimes language tabs were pre-selecting the wrong language, or showing a selected tab that didn't match the input language. This might also be related to and fix processwire/processwire-issues#1411 (?)
This commit is contained in:
@@ -7,12 +7,29 @@
|
||||
var clickLanguageTabActive = false;
|
||||
|
||||
/**
|
||||
* Event called when language tab is long-clicked
|
||||
* True after document.ready language tab events have been added
|
||||
*
|
||||
* @type {boolean}
|
||||
*
|
||||
*/
|
||||
var languageTabsReady = false;
|
||||
|
||||
/**
|
||||
* Queue of selectors for language tabs to click on document ready
|
||||
*
|
||||
* @type {*[]}
|
||||
*
|
||||
*/
|
||||
var languageTabsClickOnReady = [];
|
||||
|
||||
/**
|
||||
* Event called when language tab is double-clicked
|
||||
*
|
||||
* @param e
|
||||
*
|
||||
*/
|
||||
function dblclickLanguageTab(e) {
|
||||
if(!languageTabsReady) return;
|
||||
if(clickLanguageTabActive) return;
|
||||
clickLanguageTabActive = true;
|
||||
var $tab = $(this);
|
||||
@@ -85,7 +102,7 @@ function setupLanguageTabs($form) {
|
||||
var $items = $a.closest('ul').siblings('.LanguageSupport');
|
||||
var $closeItem = $items.filter('.LanguageSupportCurrent');
|
||||
var $openItem = $items.filter($a.attr('href'));
|
||||
if($closeItem.attr('id') == $openItem.attr('id')) {
|
||||
if(languageTabsReady && $closeItem.attr('id') == $openItem.attr('id')) {
|
||||
$a.trigger('dblclicklangtab');
|
||||
} else {
|
||||
$closeItem.removeClass('LanguageSupportCurrent');
|
||||
@@ -108,7 +125,11 @@ function setupLanguageTabs($form) {
|
||||
var value = jQuery.cookie('langTabsDC'); // DC=DoubleClick
|
||||
if(value && value.indexOf('-' + cfg.requestId) > 0) {
|
||||
value = value.split('-'); // i.e. 123-ProcessPageEdit456
|
||||
$('a.langTab' + value[0], $form).click();
|
||||
var languageId = value[0];
|
||||
$('a.langTab' + languageId, $form).click();
|
||||
if(!languageTabsReady) {
|
||||
languageTabsClickOnReady.push('a.langTab' + languageId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,5 +232,11 @@ jQuery(document).ready(function($) {
|
||||
$(document).on('AjaxUploadDone', '.InputfieldHasFileList .InputfieldFileList', function() {
|
||||
setupLanguageTabs($(this));
|
||||
});
|
||||
for(var n = 0; n < languageTabsClickOnReady.length; n++) {
|
||||
var selector = languageTabsClickOnReady[n];
|
||||
$(selector).click();
|
||||
}
|
||||
languageTabsClickOnReady = [];
|
||||
languageTabsReady = true;
|
||||
});
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@@ -7,7 +7,7 @@
|
||||
*
|
||||
* By Adamspruijt and Ryan Cramer, Copyright 2013/2014
|
||||
*
|
||||
* ProcessWire 3.x, Copyright 2021 by Ryan Cramer
|
||||
* ProcessWire 3.x, Copyright 2023 by Ryan Cramer
|
||||
* https://processwire.com
|
||||
*
|
||||
* @property string $tabField Name of field/property to use for tab labels.
|
||||
@@ -20,7 +20,7 @@ class LanguageTabs extends WireData implements Module, ConfigurableModule {
|
||||
public static function getModuleInfo() {
|
||||
return array(
|
||||
'title' => 'Languages Support - Tabs',
|
||||
'version' => 116,
|
||||
'version' => 117,
|
||||
'summary' => 'Organizes multi-language fields into tabs for a cleaner easier to use interface.',
|
||||
'author' => 'adamspruijt, ryan, flipzoom',
|
||||
'singular' => true,
|
||||
|
Reference in New Issue
Block a user