Pin the realtime channel in the OO apps
This commit is contained in:
parent
139b4608c0
commit
4946a44e33
2 changed files with 24 additions and 3 deletions
|
@ -66,6 +66,7 @@ define([
|
||||||
hashes: {},
|
hashes: {},
|
||||||
ids: {}
|
ids: {}
|
||||||
};
|
};
|
||||||
|
var oldHashes = {};
|
||||||
var oldIds = {};
|
var oldIds = {};
|
||||||
var oldLocks = {};
|
var oldLocks = {};
|
||||||
var myUniqueOOId;
|
var myUniqueOOId;
|
||||||
|
@ -169,8 +170,8 @@ define([
|
||||||
|
|
||||||
var now = function () { return +new Date(); };
|
var now = function () { return +new Date(); };
|
||||||
|
|
||||||
var getLastCp = function () {
|
var getLastCp = function (old) {
|
||||||
var hashes = content.hashes;
|
var hashes = old ? oldHashes : content.hashes;
|
||||||
if (!hashes || !Object.keys(hashes).length) { return {}; }
|
if (!hashes || !Object.keys(hashes).length) { return {}; }
|
||||||
var lastIndex = Math.max.apply(null, Object.keys(hashes).map(Number));
|
var lastIndex = Math.max.apply(null, Object.keys(hashes).map(Number));
|
||||||
var last = JSON.parse(JSON.stringify(hashes[lastIndex]));
|
var last = JSON.parse(JSON.stringify(hashes[lastIndex]));
|
||||||
|
@ -227,6 +228,7 @@ define([
|
||||||
hash: ev.hash,
|
hash: ev.hash,
|
||||||
index: ev.index
|
index: ev.index
|
||||||
};
|
};
|
||||||
|
oldHashes = JSON.parse(JSON.stringify(content.hashes));
|
||||||
content.saveLock = undefined;
|
content.saveLock = undefined;
|
||||||
APP.onLocal();
|
APP.onLocal();
|
||||||
sframeChan.query('Q_OO_COMMAND', {
|
sframeChan.query('Q_OO_COMMAND', {
|
||||||
|
@ -810,6 +812,10 @@ define([
|
||||||
throw new Error(errorText);
|
throw new Error(errorText);
|
||||||
}
|
}
|
||||||
content = hjson.content || content;
|
content = hjson.content || content;
|
||||||
|
var newLatest = getLastCp();
|
||||||
|
sframeChan.query('Q_OO_SAVE', {
|
||||||
|
url: newLatest.file
|
||||||
|
}, function () { });
|
||||||
newDoc = !content.hashes || Object.keys(content.hashes).length === 0;
|
newDoc = !content.hashes || Object.keys(content.hashes).length === 0;
|
||||||
} else {
|
} else {
|
||||||
Title.updateTitle(Title.defaultTitle);
|
Title.updateTitle(Title.defaultTitle);
|
||||||
|
@ -833,6 +839,15 @@ define([
|
||||||
metadataMgr.updateMetadata(json.metadata);
|
metadataMgr.updateMetadata(json.metadata);
|
||||||
}
|
}
|
||||||
content = json.content;
|
content = json.content;
|
||||||
|
if (content.hashes) {
|
||||||
|
var latest = getLastCp(true);
|
||||||
|
var newLatest = getLastCp();
|
||||||
|
if (newLatest.index >= latest.index) {
|
||||||
|
sframeChan.query('Q_OO_SAVE', {
|
||||||
|
url: newLatest.file
|
||||||
|
}, function () { });
|
||||||
|
}
|
||||||
|
}
|
||||||
if (content.ids) {
|
if (content.ids) {
|
||||||
handleNewIds(oldIds, content.ids);
|
handleNewIds(oldIds, content.ids);
|
||||||
oldIds = JSON.parse(JSON.stringify(content.ids));
|
oldIds = JSON.parse(JSON.stringify(content.ids));
|
||||||
|
|
|
@ -56,7 +56,13 @@ define([
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
sframeChan.on('Q_OO_OPENCHANNEL', function (data, cb) {
|
sframeChan.on('Q_OO_OPENCHANNEL', function (data, cb) {
|
||||||
console.log(data);
|
Cryptpad.getPadAttribute('rtChannel', function (err, res) {
|
||||||
|
// If already stored, don't pin it again
|
||||||
|
if (res && res === data.channel) { return; }
|
||||||
|
Cryptpad.pinPads([data.channel], function () {
|
||||||
|
Cryptpad.setPadAttribute('rtChannel', data.channel, function () {});
|
||||||
|
});
|
||||||
|
});
|
||||||
Cryptpad.onlyoffice.execCommand({
|
Cryptpad.onlyoffice.execCommand({
|
||||||
cmd: 'OPEN_CHANNEL',
|
cmd: 'OPEN_CHANNEL',
|
||||||
data: {
|
data: {
|
||||||
|
|
Loading…
Reference in a new issue