diff --git a/wire/modules/LanguageSupport/LanguageTabs.js b/wire/modules/LanguageSupport/LanguageTabs.js
index 9a1c3fef..2bd685aa 100644
--- a/wire/modules/LanguageSupport/LanguageTabs.js
+++ b/wire/modules/LanguageSupport/LanguageTabs.js
@@ -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;
});
diff --git a/wire/modules/LanguageSupport/LanguageTabs.min.js b/wire/modules/LanguageSupport/LanguageTabs.min.js
index c469c423..2507e84d 100644
--- a/wire/modules/LanguageSupport/LanguageTabs.min.js
+++ b/wire/modules/LanguageSupport/LanguageTabs.min.js
@@ -1 +1 @@
-var clickLanguageTabActive=false;function dblclickLanguageTab(e){if(clickLanguageTabActive)return;clickLanguageTabActive=true;var $tab=$(this);var langID=$tab.attr("data-lang");var $tabs=$tab.closest("form").find("a.langTab"+langID).not($tab);$tab.click();$tabs.click();$tabs.effect("highlight",250);setTimeout(function(){clickLanguageTabActive=false},250);var cfg=ProcessWire.config.LanguageTabs;jQuery.cookie("langTabsDC",langID+"-"+cfg.requestId)}function setupLanguageTabs($form){var $langTabs;var cfg=ProcessWire.config.LanguageTabs;if($form.hasClass("langTabs"))$langTabs=$form;else $langTabs=$form.find(".langTabs");$langTabs.each(function(){var $this=$(this);if($this.hasClass("langTabsInit")||$this.hasClass("ui-tabs"))return;var $inputfield=$this.closest(".Inputfield");var $content=$inputfield.children(".InputfieldContent");if(!$content.hasClass("langTabsContainer")){if($inputfield.find(".langTabsContainer").length==0)$content.addClass("langTabsContainer")}if(cfg.jQueryUI)$this.tabs({active:cfg.activeTab});$this.addClass("langTabsInit");if($inputfield.length)$inputfield.addClass("hasLangTabs");var $parent=$this.parent(".InputfieldContent");if($parent.length){var $header=$parent.prev(".InputfieldHeader");if($header.length&&!$header.children(".langTabsToggle").length){var $span=$("").attr("title",cfg.labelOpen).attr("class","langTabsToggle").append("");$header.append($span)}}var $links=$this.find("a.langTabLink");var timeout=null;var $note=$parent.find(".langTabsNote");if(!$links.length){$links=$this.find("a[data-lang]");if(!$links.length)$links=$this.find("a");$links.addClass("langTabLink")}$links.on("mouseover",function(){if(timeout)clearTimeout(timeout);if($parent.width()<500)return;timeout=setTimeout(function(){$note.fadeIn("fast")},250)}).on("mouseout",function(){if(timeout)clearTimeout(timeout);if($parent.width()<500)return;timeout=setTimeout(function(){$note.fadeOut("fast")},250)}).on("click",function(){var $a=$(this);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")){$a.trigger("dblclicklangtab")}else{$closeItem.removeClass("LanguageSupportCurrent");$openItem.addClass("LanguageSupportCurrent");$a.trigger("clicklangtab",[$openItem,$closeItem])}var $ukTab=$a.closest("ul.uk-tab");if($ukTab.length){$ukTab.find(".uk-active").removeClass("uk-active");$a.closest("li").addClass("uk-active")}});if(!cfg.jQueryUI){$links.eq(cfg.activeTab).click()}});var value=jQuery.cookie("langTabsDC");if(value&&value.indexOf("-"+cfg.requestId)>0){value=value.split("-");$("a.langTab"+value[0],$form).click()}}function toggleLanguageTabs(){var $this=$(this);var $header=$this.closest(".InputfieldHeader");var $content=$header.next(".InputfieldContent");var $inputfield=$header.parent(".Inputfield");var $langTabs=$content.children(".langTabs");var $ul=$langTabs.children("ul");var cfg=ProcessWire.config.LanguageTabs;clickLanguageTabActive=true;if($content.hasClass("langTabsContainer")){$ul.find(".langTabLastActive").removeClass("langTabLastActive");if(cfg.liActiveClass)$ul.find("."+cfg.liActiveClass).addClass("langTabLastActive");$ul.find("a").click();$content.removeClass("langTabsContainer");$inputfield.removeClass("hasLangTabs").addClass("langTabsOff");$this.addClass("langTabsOff");if(cfg.jQueryUI)$langTabs.tabs("destroy");$ul.hide();$this.attr("title",ProcessWire.config.LanguageTabs.labelClose).find("i").removeClass("fa-folder-o").addClass("fa-folder-open-o")}else{$content.addClass("langTabsContainer");$inputfield.addClass("hasLangTabs").removeClass("langTabsOff");$this.removeClass("langTabsOff");if(cfg.jQueryUI)$langTabs.tabs();$ul.show();$(this).attr("title",cfg.labelOpen).find("i").addClass("fa-folder-o").removeClass("fa-folder-open-o");$ul.find(".langTabLastActive").removeClass("langTabLastActive").children("a").click()}clickLanguageTabActive=false;return false}function hideLanguageTabs(){$(".InputfieldContent").each(function(){var n=0;$(this).children(".LanguageSupport").each(function(){if(++n==1){$(this).closest(".Inputfield").addClass("hadLanguageSupport");return}$(this).addClass("langTabsHidden")})});var $tab=$(".langTabs").find("li:eq(0)");var cfg=ProcessWire.config.LanguageTabs;if(cfg.liActiveClass&&!$tab.hasClass(cfg.liActiveClass))$tab.find("a").click();$(".langTabsToggle, .LanguageSupportLabel:visible, .langTabs > ul").addClass("langTabsHidden");$(".hasLangTabs").removeClass("hasLangTabs").addClass("hadLangTabs")}function unhideLanguageTabs(){$(".langTabsHidden").removeClass("langTabsHidden");$(".hadLangTabs").removeClass("hadLangTabs").addClass("hasLangTabs");$(".hadLanguageSupport").removeClass("hadLanguageSupport")}jQuery(document).ready(function($){$(document).on("click",".langTabsToggle",toggleLanguageTabs);$(document).on("dblclicklangtab","a.langTabLink",dblclickLanguageTab);$(document).on("reloaded",".Inputfield",function(){var $inputfield=$(this);setTimeout(function(){setupLanguageTabs($inputfield)},100)});$(document).on("AjaxUploadDone",".InputfieldHasFileList .InputfieldFileList",function(){setupLanguageTabs($(this))})});
\ No newline at end of file
+var clickLanguageTabActive=false;var languageTabsReady=false;var languageTabsClickOnReady=[];function dblclickLanguageTab(e){if(!languageTabsReady)return;if(clickLanguageTabActive)return;clickLanguageTabActive=true;var $tab=$(this);var langID=$tab.attr("data-lang");var $tabs=$tab.closest("form").find("a.langTab"+langID).not($tab);$tab.click();$tabs.click();$tabs.effect("highlight",250);setTimeout(function(){clickLanguageTabActive=false},250);var cfg=ProcessWire.config.LanguageTabs;jQuery.cookie("langTabsDC",langID+"-"+cfg.requestId)}function setupLanguageTabs($form){var $langTabs;var cfg=ProcessWire.config.LanguageTabs;if($form.hasClass("langTabs"))$langTabs=$form;else $langTabs=$form.find(".langTabs");$langTabs.each(function(){var $this=$(this);if($this.hasClass("langTabsInit")||$this.hasClass("ui-tabs"))return;var $inputfield=$this.closest(".Inputfield");var $content=$inputfield.children(".InputfieldContent");if(!$content.hasClass("langTabsContainer")){if($inputfield.find(".langTabsContainer").length==0)$content.addClass("langTabsContainer")}if(cfg.jQueryUI)$this.tabs({active:cfg.activeTab});$this.addClass("langTabsInit");if($inputfield.length)$inputfield.addClass("hasLangTabs");var $parent=$this.parent(".InputfieldContent");if($parent.length){var $header=$parent.prev(".InputfieldHeader");if($header.length&&!$header.children(".langTabsToggle").length){var $span=$("").attr("title",cfg.labelOpen).attr("class","langTabsToggle").append("");$header.append($span)}}var $links=$this.find("a.langTabLink");var timeout=null;var $note=$parent.find(".langTabsNote");if(!$links.length){$links=$this.find("a[data-lang]");if(!$links.length)$links=$this.find("a");$links.addClass("langTabLink")}$links.on("mouseover",function(){if(timeout)clearTimeout(timeout);if($parent.width()<500)return;timeout=setTimeout(function(){$note.fadeIn("fast")},250)}).on("mouseout",function(){if(timeout)clearTimeout(timeout);if($parent.width()<500)return;timeout=setTimeout(function(){$note.fadeOut("fast")},250)}).on("click",function(){var $a=$(this);var $items=$a.closest("ul").siblings(".LanguageSupport");var $closeItem=$items.filter(".LanguageSupportCurrent");var $openItem=$items.filter($a.attr("href"));if(languageTabsReady&&$closeItem.attr("id")==$openItem.attr("id")){$a.trigger("dblclicklangtab")}else{$closeItem.removeClass("LanguageSupportCurrent");$openItem.addClass("LanguageSupportCurrent");$a.trigger("clicklangtab",[$openItem,$closeItem])}var $ukTab=$a.closest("ul.uk-tab");if($ukTab.length){$ukTab.find(".uk-active").removeClass("uk-active");$a.closest("li").addClass("uk-active")}});if(!cfg.jQueryUI){$links.eq(cfg.activeTab).click()}});var value=jQuery.cookie("langTabsDC");if(value&&value.indexOf("-"+cfg.requestId)>0){value=value.split("-");var languageId=value[0];$("a.langTab"+languageId,$form).click();if(!languageTabsReady){languageTabsClickOnReady.push("a.langTab"+languageId)}}}function toggleLanguageTabs(){var $this=$(this);var $header=$this.closest(".InputfieldHeader");var $content=$header.next(".InputfieldContent");var $inputfield=$header.parent(".Inputfield");var $langTabs=$content.children(".langTabs");var $ul=$langTabs.children("ul");var cfg=ProcessWire.config.LanguageTabs;clickLanguageTabActive=true;if($content.hasClass("langTabsContainer")){$ul.find(".langTabLastActive").removeClass("langTabLastActive");if(cfg.liActiveClass)$ul.find("."+cfg.liActiveClass).addClass("langTabLastActive");$ul.find("a").click();$content.removeClass("langTabsContainer");$inputfield.removeClass("hasLangTabs").addClass("langTabsOff");$this.addClass("langTabsOff");if(cfg.jQueryUI)$langTabs.tabs("destroy");$ul.hide();$this.attr("title",ProcessWire.config.LanguageTabs.labelClose).find("i").removeClass("fa-folder-o").addClass("fa-folder-open-o")}else{$content.addClass("langTabsContainer");$inputfield.addClass("hasLangTabs").removeClass("langTabsOff");$this.removeClass("langTabsOff");if(cfg.jQueryUI)$langTabs.tabs();$ul.show();$(this).attr("title",cfg.labelOpen).find("i").addClass("fa-folder-o").removeClass("fa-folder-open-o");$ul.find(".langTabLastActive").removeClass("langTabLastActive").children("a").click()}clickLanguageTabActive=false;return false}function hideLanguageTabs(){$(".InputfieldContent").each(function(){var n=0;$(this).children(".LanguageSupport").each(function(){if(++n==1){$(this).closest(".Inputfield").addClass("hadLanguageSupport");return}$(this).addClass("langTabsHidden")})});var $tab=$(".langTabs").find("li:eq(0)");var cfg=ProcessWire.config.LanguageTabs;if(cfg.liActiveClass&&!$tab.hasClass(cfg.liActiveClass))$tab.find("a").click();$(".langTabsToggle, .LanguageSupportLabel:visible, .langTabs > ul").addClass("langTabsHidden");$(".hasLangTabs").removeClass("hasLangTabs").addClass("hadLangTabs")}function unhideLanguageTabs(){$(".langTabsHidden").removeClass("langTabsHidden");$(".hadLangTabs").removeClass("hadLangTabs").addClass("hasLangTabs");$(".hadLanguageSupport").removeClass("hadLanguageSupport")}jQuery(document).ready(function($){$(document).on("click",".langTabsToggle",toggleLanguageTabs);$(document).on("dblclicklangtab","a.langTabLink",dblclickLanguageTab);$(document).on("reloaded",".Inputfield",function(){var $inputfield=$(this);setTimeout(function(){setupLanguageTabs($inputfield)},100)});$(document).on("AjaxUploadDone",".InputfieldHasFileList .InputfieldFileList",function(){setupLanguageTabs($(this))});for(var n=0;n '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,