term.js 2.28 KB
Newer Older
Den Isahac's avatar
Den Isahac committed
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
(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
            };
        },

        save: function (name, slug, description) {

            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"),
                        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;
                    }
                });
            }
        }
    })
})(TaxonomyTranslation);