mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-12-29 19:49:03 +00:00
* First commit * Subscriber: Make onmessage be async * Don't use a variable before it's defined...
67 lines
1.3 KiB
JavaScript
67 lines
1.3 KiB
JavaScript
/*\
|
|
title: $:/core/modules/savers/postmessage.js
|
|
type: application/javascript
|
|
module-type: saver
|
|
|
|
Handles saving changes via window.postMessage() to the window.parent
|
|
|
|
\*/
|
|
(function(){
|
|
|
|
/*jslint node: true, browser: true */
|
|
/*global $tw: false */
|
|
"use strict";
|
|
|
|
/*
|
|
Select the appropriate saver module and set it up
|
|
*/
|
|
var PostMessageSaver = function(wiki) {
|
|
this.publisher = new $tw.utils.BrowserMessagingPublisher({type: "SAVE"});
|
|
};
|
|
|
|
PostMessageSaver.prototype.save = function(text,method,callback,options) {
|
|
// Fail if the publisher hasn't been fully initialised
|
|
if(!this.publisher.canSend()) {
|
|
return false;
|
|
}
|
|
// Send the save request
|
|
this.publisher.send({
|
|
verb: "SAVE",
|
|
body: text
|
|
},function(err) {
|
|
if(err) {
|
|
callback("PostMessageSaver Error: " + err);
|
|
} else {
|
|
callback(null);
|
|
}
|
|
});
|
|
// Indicate that we handled the save
|
|
return true;
|
|
};
|
|
|
|
/*
|
|
Information about this saver
|
|
*/
|
|
PostMessageSaver.prototype.info = {
|
|
name: "postmessage",
|
|
capabilities: ["save", "autosave"],
|
|
priority: 100
|
|
};
|
|
|
|
/*
|
|
Static method that returns true if this saver is capable of working
|
|
*/
|
|
exports.canSave = function(wiki) {
|
|
// Provisionally say that we can save
|
|
return true;
|
|
};
|
|
|
|
/*
|
|
Create an instance of this saver
|
|
*/
|
|
exports.create = function(wiki) {
|
|
return new PostMessageSaver(wiki);
|
|
};
|
|
|
|
})();
|