wpml-tm-editor-job.js 1.25 KB
/*global _, Backbone, jQuery, WpmlTmEditorModel, ajaxurl */

var WPML_TM = WPML_TM || {};

(function () {
	"use strict";

	WPML_TM.editorJob = Backbone.Model.extend({
		fetch: function (successCallback) {
			var self = this;

			_.each(WpmlTmEditorModel.fields, function (field) {
				field.field_finished = parseInt(field.field_finished, 10);
				self.set(field.field_type, field.field_data);
				self.set(field.field_type + '_raw', field);
			});
			self.set('layout', WpmlTmEditorModel.layout);
			successCallback();
		},
		save: function (data) {
			var self = this;
			jQuery.ajax(
				{
					type: "POST",
					url: self.url(),
					dataType: 'json',
					data: {
						data: data,
						action: 'wpml_save_job_ajax',
						_icl_nonce: self.get('nonce')
					},
					success: function (response) {
						if (response.success) {
							self.trigger('saveJobSuccess');
						} else {
							self.trigger('saveJobFailed');
						}
					}
				});
		},
		progressPercentage: function () {

			return jQuery('.icl_tm_finished:checked:visible').length / jQuery('.icl_tm_finished:visible').length * 100;
		},
		/**
		 * Overrides the BackBone url method to use the WordPress ajax endpoint
		 *
		 * @returns {String}
		 */
		url: function () {

			return ajaxurl;
		}
	});
}());