79 lines
1.5 KiB
JavaScript
79 lines
1.5 KiB
JavaScript
/**
|
|
A data model representing a draft post
|
|
|
|
@class Draft
|
|
@extends Discourse.Model
|
|
@namespace Discourse
|
|
@module Discourse
|
|
**/
|
|
Discourse.Draft = Discourse.Model.extend({});
|
|
|
|
Discourse.Draft.reopenClass({
|
|
|
|
clear: function(key, sequence) {
|
|
return $.ajax({
|
|
type: 'DELETE',
|
|
url: "/draft",
|
|
data: {
|
|
draft_key: key,
|
|
sequence: sequence
|
|
}
|
|
});
|
|
},
|
|
|
|
get: function(key) {
|
|
var promise,
|
|
_this = this;
|
|
promise = new RSVP.Promise();
|
|
$.ajax({
|
|
url: '/draft',
|
|
data: {
|
|
draft_key: key
|
|
},
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
return promise.resolve(data);
|
|
}
|
|
});
|
|
return promise;
|
|
},
|
|
|
|
getLocal: function(key, current) {
|
|
var local;
|
|
return current;
|
|
},
|
|
|
|
save: function(key, sequence, data) {
|
|
var promise;
|
|
promise = new RSVP.Promise();
|
|
data = typeof data === "string" ? data : JSON.stringify(data);
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: "/draft",
|
|
data: {
|
|
draft_key: key,
|
|
data: data,
|
|
sequence: sequence
|
|
},
|
|
success: function() {
|
|
/* don't keep local
|
|
*/
|
|
|
|
/* Discourse.KeyValueStore.remove("draft_#{key}")
|
|
*/
|
|
return promise.resolve();
|
|
},
|
|
error: function() {
|
|
/* save local
|
|
*/
|
|
|
|
/* Discourse.KeyValueStore.set(key: "draft_#{key}", value: data)
|
|
*/
|
|
return promise.reject();
|
|
}
|
|
});
|
|
return promise;
|
|
}
|
|
|
|
});
|