From 5aaeda46c5d6b53e4094509886976f7e046fc3ff Mon Sep 17 00:00:00 2001 From: rlx <0x0073@0x2620.org> Date: Wed, 3 Sep 2014 13:23:19 +0200 Subject: [PATCH] AnnotationPanel: handle case where removing languages leaves one previously disabled language (fixes #2454) --- source/Ox.UI/js/Video/AnnotationPanel.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/source/Ox.UI/js/Video/AnnotationPanel.js b/source/Ox.UI/js/Video/AnnotationPanel.js index c8136f28..f27b2c42 100644 --- a/source/Ox.UI/js/Video/AnnotationPanel.js +++ b/source/Ox.UI/js/Video/AnnotationPanel.js @@ -562,11 +562,24 @@ Ox.AnnotationPanel = function(options, self) { enabledLanguages = self.enabledLanguages; self.languages = getLanguages(); self.enabledLanguages = self.languages.filter(function(language) { + // enabled if it was enabled, was just added, or is the only + // language return Ox.contains(enabledLanguages, language) - || !Ox.contains(languages, language); + || !Ox.contains(languages, language) + || self.languages.length == 1; }).map(function(language) { return language.code; }); + if ( + self.languages.length == 1 + && !Ox.contains(enabledLanguages, self.languages[0].code) + ) { + // last remaining language was enabled by removing all other + // languages + self.$folder.forEach(function($folder) { + $folder.options({languages: self.enabledLanguages}); + }); + } } /*@