term.js
2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
(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);