mirror of
https://github.com/processwire/processwire.git
synced 2025-08-10 16:54:44 +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;
|
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
|
* @param e
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function dblclickLanguageTab(e) {
|
function dblclickLanguageTab(e) {
|
||||||
|
if(!languageTabsReady) return;
|
||||||
if(clickLanguageTabActive) return;
|
if(clickLanguageTabActive) return;
|
||||||
clickLanguageTabActive = true;
|
clickLanguageTabActive = true;
|
||||||
var $tab = $(this);
|
var $tab = $(this);
|
||||||
@@ -85,7 +102,7 @@ function setupLanguageTabs($form) {
|
|||||||
var $items = $a.closest('ul').siblings('.LanguageSupport');
|
var $items = $a.closest('ul').siblings('.LanguageSupport');
|
||||||
var $closeItem = $items.filter('.LanguageSupportCurrent');
|
var $closeItem = $items.filter('.LanguageSupportCurrent');
|
||||||
var $openItem = $items.filter($a.attr('href'));
|
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');
|
$a.trigger('dblclicklangtab');
|
||||||
} else {
|
} else {
|
||||||
$closeItem.removeClass('LanguageSupportCurrent');
|
$closeItem.removeClass('LanguageSupportCurrent');
|
||||||
@@ -108,7 +125,11 @@ function setupLanguageTabs($form) {
|
|||||||
var value = jQuery.cookie('langTabsDC'); // DC=DoubleClick
|
var value = jQuery.cookie('langTabsDC'); // DC=DoubleClick
|
||||||
if(value && value.indexOf('-' + cfg.requestId) > 0) {
|
if(value && value.indexOf('-' + cfg.requestId) > 0) {
|
||||||
value = value.split('-'); // i.e. 123-ProcessPageEdit456
|
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() {
|
$(document).on('AjaxUploadDone', '.InputfieldHasFileList .InputfieldFileList', function() {
|
||||||
setupLanguageTabs($(this));
|
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
|
* 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
|
* https://processwire.com
|
||||||
*
|
*
|
||||||
* @property string $tabField Name of field/property to use for tab labels.
|
* @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() {
|
public static function getModuleInfo() {
|
||||||
return array(
|
return array(
|
||||||
'title' => 'Languages Support - Tabs',
|
'title' => 'Languages Support - Tabs',
|
||||||
'version' => 116,
|
'version' => 117,
|
||||||
'summary' => 'Organizes multi-language fields into tabs for a cleaner easier to use interface.',
|
'summary' => 'Organizes multi-language fields into tabs for a cleaner easier to use interface.',
|
||||||
'author' => 'adamspruijt, ryan, flipzoom',
|
'author' => 'adamspruijt, ryan, flipzoom',
|
||||||
'singular' => true,
|
'singular' => true,
|
||||||
|
Reference in New Issue
Block a user