(function () { TaxonomyTranslation.views.LabelRowView = Backbone.View.extend({ tagName: 'tbody', model: TaxonomyTranslation.models.Taxonomy, events: { 'click .icl_tt_label': 'openPopUPLabel', 'click .js-show-lang-selector': 'showLanguageSelector', 'change .js-tax-lang-selector': 'changeTaxStringsLanguage' }, initialize: function () { var self = this; self.listenTo(self.model, 'labelTranslationSaved', self.render); }, showLanguageSelector: function(e) { e.preventDefault(); this.render( true ); if ( WPML_Core.SimpleLanguageSelector ) { new WPML_Core.SimpleLanguageSelector(); } }, render: function ( withLangSelector ) { var self = this, taxLabels = TaxonomyTranslation.data.translatedTaxonomyLabels, langs = TaxonomyTranslation.util.langCodes, taxonomy = self.model.get( 'taxonomy' ), labelLang = TaxonomyTranslation.classes.taxonomy.get( 'stDefaultLang' ), langSelector = withLangSelector ? TaxonomyTranslation.data.langSelector : '', html = ''; html += WPML_core[ 'templates/taxonomy-translation/original-label.html' ]( { taxLabel : taxLabels[labelLang], flag : TaxonomyTranslation.data.allLanguages[labelLang].flag, langSelector: langSelector } ); html += ''; _.each(langs, function(lang, code) { if( ! taxLabels[lang] ) { html += WPML_core[ 'templates/taxonomy-translation/not-translated-label.html' ]( { taxonomy: taxonomy, lang : lang, langs : TaxonomyTranslation.data.activeLanguages } ); } else { if( taxLabels[lang].original ) { html += WPML_core[ 'templates/taxonomy-translation/original-label-disabled.html' ]( { lang : lang, langs: TaxonomyTranslation.data.activeLanguages } ); } else { html += WPML_core[ 'templates/taxonomy-translation/individual-label.html' ]( { taxonomy: taxonomy, lang : lang, langs : TaxonomyTranslation.data.activeLanguages } ); } } }); html += ''; html += ''; self.$el.html( html ); self.delegateEvents(); return self; }, openPopUPLabel: function (e) { e.preventDefault(); var link = e.target.closest( '.icl_tt_label' ), id = jQuery( link ).attr( 'id' ), lang = id.split( '_' ).pop(); if (TaxonomyTranslation.classes.labelPopUpView && typeof TaxonomyTranslation.classes.labelPopUpView !== 'undefined') { TaxonomyTranslation.classes.labelPopUpView.close(); } TaxonomyTranslation.classes.labelPopUpView = new TaxonomyTranslation.views.LabelPopUpView({model: TaxonomyTranslation.classes.taxonomy}, { lang: lang, defLang: TaxonomyTranslation.classes.taxonomy.get( 'defaultLang' ) }); TaxonomyTranslation.classes.labelPopUpView.open( lang ); }, changeTaxStringsLanguage: function(e) { var sourceLang = e.target.value; this.$el.find('.js-tax-lang-selector').prepend( '' ); this.model.changeTaxStringsLanguage(sourceLang); } }); }(TaxonomyTranslation));