first commit
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
(function () {
|
||||
TaxonomyTranslation.views.LabelPopUpView = Backbone.View.extend({
|
||||
|
||||
tagName: "div",
|
||||
template: WPML_core[ 'templates/taxonomy-translation/label-popup.html' ],
|
||||
model: TaxonomyTranslation.models.Taxonomy,
|
||||
|
||||
events: {
|
||||
"click .cancel": "close",
|
||||
"click .js-label-save": "saveLabel",
|
||||
"click .js-button-copy": "copyOriginal",
|
||||
"keydown" : "handleEnter",
|
||||
"input .js-translation": "updateUI"
|
||||
},
|
||||
initialize: function (data, options) {
|
||||
var self = this;
|
||||
self.lang = options.lang;
|
||||
self.defLang = options.defLang;
|
||||
self.listenTo(self.model, 'labelTranslationSaved', self.close);
|
||||
self.listenTo(self.model, 'saveFailed', self.render);
|
||||
return self;
|
||||
},
|
||||
|
||||
open: function ( lang ) {
|
||||
var self = this;
|
||||
self.render();
|
||||
var popUpDomEl = jQuery( '#popup-' + lang );
|
||||
popUpDomEl.append( self.$el );
|
||||
|
||||
self.dialog = jQuery( "#icl_tt_form_" + self.model.get( "taxonomy" ) );
|
||||
self.dialog.dialog({
|
||||
autoOpen: true,
|
||||
modal: true,
|
||||
minWidth: 800,
|
||||
resizable: false,
|
||||
draggable: false,
|
||||
dialogClass: 'dialog-fixed otgs-ui-dialog'
|
||||
});
|
||||
self.setElement( self.dialog );
|
||||
self.delegateEvents();
|
||||
self.updateUI();
|
||||
},
|
||||
close: function () {
|
||||
if ( this.dialog ) {
|
||||
this.dialog.dialog( 'close' );
|
||||
this.undelegateEvents();
|
||||
this.remove();
|
||||
this.dialog = null;
|
||||
}
|
||||
},
|
||||
render: function () {
|
||||
var self = this;
|
||||
var taxonomy = self.model.get("taxonomy");
|
||||
var labels = TaxonomyTranslation.data.translatedTaxonomyLabels[self.lang];
|
||||
var originalLabels = TaxonomyTranslation.data.translatedTaxonomyLabels[self.model.get('stDefaultLang')];
|
||||
var slugTranslationEnabled = originalLabels['globalSlugTranslationEnabled']
|
||||
&& self.model.get('showSlugTranslationField');
|
||||
|
||||
if (!labels) {
|
||||
labels = {
|
||||
singular: undefined,
|
||||
general: undefined
|
||||
};
|
||||
}
|
||||
|
||||
this.$el.html(
|
||||
self.template({
|
||||
langs: TaxonomyTranslation.data.allLanguages,
|
||||
lang: self.lang,
|
||||
source_lang: self.model.get('stDefaultLang'),
|
||||
originalLabels: originalLabels,
|
||||
translatedLabels: labels,
|
||||
taxonomy: taxonomy,
|
||||
slugTranslationEnabled: slugTranslationEnabled
|
||||
})
|
||||
);
|
||||
|
||||
self.delegateEvents();
|
||||
|
||||
return self;
|
||||
},
|
||||
|
||||
handleEnter: function(e){
|
||||
var self = this;
|
||||
if(self.$el.find('input:focus').length !== 0 && e.keyCode == 13){
|
||||
self.saveLabel(e);
|
||||
}
|
||||
return self;
|
||||
},
|
||||
|
||||
updateUI: function ( e ) {
|
||||
var self = this,
|
||||
translationsEntered = true;
|
||||
|
||||
self.$el.find( '.js-required-translation' ).each( function () {
|
||||
if ( jQuery( this ).val() === '' ) {
|
||||
translationsEntered = false;
|
||||
}
|
||||
});
|
||||
|
||||
self.$el.find( '.js-label-save' ).prop( 'disabled', !translationsEntered );
|
||||
},
|
||||
|
||||
saveLabel: function (e) {
|
||||
var singularValueField, pluralValueField, slugValueField, singularValue, pluralValue, slugValue, self, inputPrefix;
|
||||
self = this;
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
inputPrefix = '#' + self.model.get("taxonomy") + '-';
|
||||
singularValueField = self.$el.find(inputPrefix + 'singular');
|
||||
pluralValueField = self.$el.find(inputPrefix + 'plural');
|
||||
slugValueField = self.$el.find(inputPrefix + 'slug');
|
||||
|
||||
if (singularValueField.length > 0 && pluralValueField.length > 0) {
|
||||
singularValue = singularValueField.val();
|
||||
pluralValue = pluralValueField.val();
|
||||
}
|
||||
|
||||
if (slugValueField.length > 0) {
|
||||
slugValue = slugValueField.val();
|
||||
}
|
||||
|
||||
if (singularValue && pluralValue) {
|
||||
self.undelegateEvents();
|
||||
|
||||
self.$el.find(".spinner").show();
|
||||
self.$el.find(".js-label-save").prop( 'disabled', true );
|
||||
self.$el.find(".cancel").prop( 'disabled', true );
|
||||
|
||||
self.model.saveLabel(singularValue, pluralValue, slugValue, self.lang);
|
||||
|
||||
}
|
||||
|
||||
return self;
|
||||
|
||||
},
|
||||
|
||||
copyOriginal: function ( e ) {
|
||||
var self = this,
|
||||
original = jQuery( e.currentTarget ).prev().val();
|
||||
|
||||
jQuery( e.currentTarget ).next().val( original );
|
||||
|
||||
self.updateUI();
|
||||
}
|
||||
});
|
||||
})(TaxonomyTranslation);
|
||||
Reference in New Issue
Block a user