98 lines
2.2 KiB
JavaScript
98 lines
2.2 KiB
JavaScript
(function () {
|
|
TaxonomyTranslation.models.Term = Backbone.Model.extend({
|
|
|
|
idAttribute: "term_taxonomy_id",
|
|
|
|
defaults: function () {
|
|
return {
|
|
name: false,
|
|
trid: false,
|
|
term_taxonomy_id: false,
|
|
language_code: false,
|
|
slug: false,
|
|
parent: false,
|
|
correctedParent: false,
|
|
description: false,
|
|
level: 0,
|
|
correctedLevel: 0,
|
|
source_language_code: false,
|
|
meta_data: false
|
|
};
|
|
},
|
|
|
|
save: function (name, slug, description, meta_data) {
|
|
var self = this;
|
|
slug = slug ? slug : '';
|
|
description = description ? description : '';
|
|
|
|
if (name) {
|
|
jQuery.ajax({
|
|
url: ajaxurl,
|
|
type: "POST",
|
|
data: {
|
|
action: 'wpml_save_term',
|
|
name: name,
|
|
slug: slug,
|
|
_icl_nonce: labels.wpml_save_term_nonce,
|
|
description: description,
|
|
trid: self.get("trid"),
|
|
term_language_code: self.get("language_code"),
|
|
taxonomy: TaxonomyTranslation.classes.taxonomy.get("taxonomy"),
|
|
meta_data: meta_data,
|
|
force_hierarchical_sync: true
|
|
},
|
|
success: function (response) {
|
|
var newTermData = response.data;
|
|
|
|
if (newTermData.language_code && newTermData.trid && newTermData.slug && newTermData.term_taxonomy_id) {
|
|
self.set(newTermData);
|
|
self.trigger("translationSaved");
|
|
WPML_Translate_taxonomy.callbacks.fire('wpml_tt_save_term_translation', TaxonomyTranslation.classes.taxonomy.get("taxonomy"));
|
|
} else {
|
|
self.trigger("saveFailed");
|
|
}
|
|
return self;
|
|
},
|
|
error: function(){
|
|
self.trigger("saveFailed");
|
|
return self;
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
isOriginal: function() {
|
|
return this.get( 'source_language_code' ) === null;
|
|
},
|
|
getNameSlugAndDescription: function () {
|
|
var self = this;
|
|
var term = {};
|
|
term.slug = self.getSlug();
|
|
|
|
term.description = self.get("description");
|
|
if ( ! term.description ) {
|
|
term.description = "";
|
|
}
|
|
term.name = self.get("name");
|
|
if ( ! term.name) {
|
|
term.name = "";
|
|
}
|
|
return term;
|
|
},
|
|
getSlug: function () {
|
|
var self = this;
|
|
|
|
var slug = self.get("slug");
|
|
if (!slug) {
|
|
slug = "";
|
|
}
|
|
slug = decodeURIComponent(slug);
|
|
|
|
return slug;
|
|
},
|
|
getMetaData: function() {
|
|
return this.get('meta_data');
|
|
}
|
|
});
|
|
})(TaxonomyTranslation);
|