/*globals labels, TaxonomyTranslation, Backbone, WPML_core, jQuery, _ */
(function () {
"use strict";
TaxonomyTranslation.views.CopyAllPopUpView = Backbone.View.extend({
tagName: 'div',
template: WPML_core[ 'templates/taxonomy-translation/copy-all-popup.html' ],
model: TaxonomyTranslation.models.TermRow,
events: {
'click .cancel': 'close',
'click .js-copy-all-ok': 'copyAll'
},
initialize: function () {
var self = this;
self.dialog = null;
return self;
},
render: function () {
var self = this,
trid = self.model.get('trid'),
originalLang = self.getOriginalLanguage(),
flagUrl = TaxonomyTranslation.data.activeLanguages[ originalLang ].flag,
langLabel = TaxonomyTranslation.data.activeLanguages[ originalLang ].label,
copyMessage = labels.copyToAllMessage.replace( '%language%', ' ' + langLabel + '' );
self.$el.html(
this.template({
trid: trid,
lang: originalLang,
labels: labels,
copyMessage: copyMessage
})
);
self.delegateEvents();
return self;
},
open: function ( ) {
var self = this,
popUpDomEl,
trid = self.model.get( 'trid' ),
lang = self.getOriginalLanguage();
self.render();
popUpDomEl = jQuery('#' + trid + '-popup-' + lang);
popUpDomEl.append( self.$el );
self.dialog = jQuery( '#icl_tt_form_' + trid + '_' + lang );
self.dialog.dialog({
autoOpen: true,
modal: true,
minWidth: 600,
resizable: false,
draggable: false,
dialogClass: 'dialog-fixed otgs-ui-dialog'
});
self.setElement( self.dialog );
self.delegateEvents();
},
close: function () {
if ( this.dialog ) {
this.dialog.dialog( 'close' );
this.undelegateEvents();
this.remove();
this.dialog = null;
}
},
getOriginalLanguage: function () {
var trid = this.model.get( 'trid' );
return TaxonomyTranslation.classes.taxonomy.getOriginalTerm( trid ).get( 'language_code' );
},
copyAll: function () {
var self = this,
trid = self.model.get( 'trid' ),
originalTerm = TaxonomyTranslation.classes.taxonomy.getOriginalTerm( trid ),
name = originalTerm.get( 'name' ),
slug = originalTerm.get( 'slug' ),
description = originalTerm.get( 'description' ),
overwrite = self.$el.find( 'input[name="overwrite"]:checked' ).length > 0;
self.$el.find('.js-copy-all-ok').prop( 'disabled', true );
self.$el.find('.cancel').prop( 'disabled', true );
var terms = self.model.get("terms");
_.each( terms, function ( term ) {
if ( overwrite || term.get( 'name' ) === false ) {
term.save( name, slug, description );
}
});
self.close();
}
});
})(TaxonomyTranslation);