first commit
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
/*globals _, TaxonomyTranslation, document, Backbone, jQuery */
|
||||
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
TaxonomyTranslation.views.TermRowView = Backbone.View.extend({
|
||||
|
||||
tagName: "tr",
|
||||
model: TaxonomyTranslation.models.TermRow,
|
||||
termViews: {},
|
||||
className: '',
|
||||
events: {
|
||||
'click .js-copy-to-all-langs': 'copyToAllLangs'
|
||||
},
|
||||
|
||||
initialize: function () {
|
||||
var self = this;
|
||||
|
||||
self.listenTo(TaxonomyTranslation.classes.taxonomy, 'syncDataLoaded', self.maybeHide);
|
||||
},
|
||||
maybeHide: function () {
|
||||
var self = this;
|
||||
var visible = false;
|
||||
var terms = self.model.get("terms");
|
||||
_.each(TaxonomyTranslation.data.syncData, function (correction) {
|
||||
_.each(terms, function (term) {
|
||||
if (correction.translated_id == term.get("term_taxonomy_id")) {
|
||||
visible = true;
|
||||
}
|
||||
});
|
||||
});
|
||||
if (visible) {
|
||||
self.$el.show();
|
||||
} else {
|
||||
self.$el.hide();
|
||||
}
|
||||
},
|
||||
|
||||
render: function () {
|
||||
var termsFragments = {};
|
||||
var self = this;
|
||||
var langs = TaxonomyTranslation.util.langCodes;
|
||||
var terms = self.model.get("terms");
|
||||
var originalTerm = null;
|
||||
|
||||
_.each(langs, function (lang) {
|
||||
var term = terms[lang];
|
||||
if (term === undefined) {
|
||||
term = new TaxonomyTranslation.models.Term({language_code: lang, trid: self.model.get("trid")});
|
||||
terms[lang] = term;
|
||||
self.model.set("terms", terms, {silent: true});
|
||||
}
|
||||
if ( term.isOriginal() ) {
|
||||
originalTerm = term;
|
||||
}
|
||||
var newView = new TaxonomyTranslation.views.TermView({model: term});
|
||||
self.termViews[lang] = newView;
|
||||
if (TaxonomyTranslation.mainView.mode === 'sync') {
|
||||
termsFragments[lang] = newView.loadSyncData().el;
|
||||
} else {
|
||||
termsFragments[lang] = newView.render().el;
|
||||
}
|
||||
});
|
||||
|
||||
if ( originalTerm ) {
|
||||
var newRowFragment = document.createDocumentFragment();
|
||||
|
||||
if ( TaxonomyTranslation.mainView.mode !== 'sync' ) {
|
||||
var originalView = new TaxonomyTranslation.views.TermOriginalView({model: originalTerm });
|
||||
newRowFragment.appendChild( originalView.render().el );
|
||||
|
||||
var newRowLangs = document.createElement( 'td' );
|
||||
jQuery( newRowLangs ).addClass( 'wpml-col-languages' );
|
||||
_.each(langs, function(lang){
|
||||
newRowLangs.appendChild(termsFragments[lang]);
|
||||
});
|
||||
|
||||
newRowFragment.appendChild( newRowLangs );
|
||||
} else {
|
||||
_.each(langs, function(lang){
|
||||
var newRowTD = document.createElement( 'td' );
|
||||
newRowTD.appendChild(termsFragments[lang]);
|
||||
newRowFragment.appendChild( newRowTD );
|
||||
});
|
||||
}
|
||||
self.$el.html(newRowFragment);
|
||||
}
|
||||
|
||||
return self;
|
||||
|
||||
},
|
||||
copyToAllLangs: function () {
|
||||
var self = this;
|
||||
TaxonomyTranslation.classes.copyAllPopUpView = new TaxonomyTranslation.views.CopyAllPopUpView( { model: self.model } );
|
||||
TaxonomyTranslation.classes.copyAllPopUpView.open( );
|
||||
|
||||
}
|
||||
});
|
||||
}(TaxonomyTranslation));
|
||||
|
||||
Reference in New Issue
Block a user