From 9b8866ed7281530648da2cb5c19ba91e2be4c905 Mon Sep 17 00:00:00 2001 From: ansuz Date: Thu, 29 Jun 2017 11:10:07 +0200 Subject: [PATCH] handle RPC_NOT_READY error for logged out users --- www/common/cryptpad-common.js | 23 ++++++++++++----------- www/file/main.js | 17 +++++++++++++---- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index 7fbdaa82a..8f32d25a6 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -717,14 +717,14 @@ define([ return false; } if (!rpc) { - console.error('[RPC_NOT_READY]'); + console.error('RPC_NOT_READY'); return false; } return true; }; common.arePinsSynced = function (cb) { - if (!pinsReady()) { return void cb ('[RPC_NOT_READY]'); } + if (!pinsReady()) { return void cb ('RPC_NOT_READY'); } var list = getCanonicalChannelList(); var local = Hash.hashChannelList(list); @@ -735,7 +735,7 @@ define([ }; common.resetPins = function (cb) { - if (!pinsReady()) { return void cb ('[RPC_NOT_READY]'); } + if (!pinsReady()) { return void cb ('RPC_NOT_READY'); } var list = getCanonicalChannelList(); rpc.reset(list, function (e, hash) { @@ -745,7 +745,7 @@ define([ }; common.pinPads = function (pads, cb) { - if (!pinsReady()) { return void cb ('[RPC_NOT_READY]'); } + if (!pinsReady()) { return void cb ('RPC_NOT_READY'); } rpc.pin(pads, function (e, hash) { if (e) { return void cb(e); } @@ -754,7 +754,7 @@ define([ }; common.unpinPads = function (pads, cb) { - if (!pinsReady()) { return void cb ('[RPC_NOT_READY]'); } + if (!pinsReady()) { return void cb ('RPC_NOT_READY'); } rpc.unpin(pads, function (e, hash) { if (e) { return void cb(e); } @@ -763,7 +763,7 @@ define([ }; common.getPinnedUsage = function (cb) { - if (!pinsReady()) { return void cb('[RPC_NOT_READY]'); } + if (!pinsReady()) { return void cb('RPC_NOT_READY'); } rpc.getFileListSize(function (err, bytes) { if (typeof(bytes) === 'number') { @@ -774,6 +774,7 @@ define([ }; common.getFileSize = function (href, cb) { + if (!pinsReady()) { return void cb('RPC_NOT_READY'); } var channelId = Hash.hrefToHexChannelId(href); rpc.getFileSize(channelId, function (e, bytes) { if (e) { return void cb(e); } @@ -782,7 +783,7 @@ define([ }; common.updatePinLimit = function (cb) { - if (!pinsReady()) { return void cb('[RPC_NOT_READY]'); } + if (!pinsReady()) { return void cb('RPC_NOT_READY'); } rpc.updatePinLimits(function (e, limit, plan, note) { if (e) { return cb(e); } common.account.limit = limit; @@ -793,7 +794,7 @@ define([ }; common.getPinLimit = function (cb) { - if (!pinsReady()) { return void cb('[RPC_NOT_READY]'); } + if (!pinsReady()) { return void cb('RPC_NOT_READY'); } var account = common.account; if (typeof(account.limit) !== 'number' || @@ -831,17 +832,17 @@ define([ }; common.uploadComplete = function (cb) { - if (!pinsReady()) { return void cb('[RPC_NOT_READY]'); } + if (!pinsReady()) { return void cb('RPC_NOT_READY'); } rpc.uploadComplete(cb); }; common.uploadStatus = function (size, cb) { - if (!pinsReady()) { return void cb('[RPC_NOT_READY]'); } + if (!pinsReady()) { return void cb('RPC_NOT_READY'); } rpc.uploadStatus(size, cb); }; common.uploadCancel = function (cb) { - if (!pinsReady()) { return void cb('[RPC_NOT_READY]'); } + if (!pinsReady()) { return void cb('RPC_NOT_READY'); } rpc.uploadCancel(cb); }; diff --git a/www/file/main.js b/www/file/main.js index b2dac261e..638db697d 100644 --- a/www/file/main.js +++ b/www/file/main.js @@ -164,19 +164,28 @@ define([ Cryptpad.removeLoadingScreen(); $dllabel.append($('
')); $dllabel.append(Cryptpad.fixHTML(metadata.name)); - $dllabel.append($('
')); - $dllabel.append(Messages._getKey('formattedMB', [sizeMb])); + + // don't display the size if you don't know it. + if (typeof(sizeM) === 'number') { + $dllabel.append($('
')); + $dllabel.append(Messages._getKey('formattedMB', [sizeMb])); + } var decrypting = false; var onClick = function (ev) { if (decrypting) { return; } decrypting = true; displayFile(ev, sizeMb); }; - if (sizeMb < 5) { return void onClick(); } + if (typeof(sizeMb) === 'number' && sizeMb < 5) { return void onClick(); } $dlform.find('#dl, #progress').click(onClick); }; Cryptpad.getFileSize(window.location.href, function (e, data) { - if (e) { return void Cryptpad.errorLoadingScreen(e); } + if (e) { + // TODO when GET_FILE_SIZE is made unauthenticated + // you won't need to handle this error (there won't be one) + if (e === 'RPC_NOT_READY') { return todoBigFile(); } + return void Cryptpad.errorLoadingScreen(e); + } var size = Cryptpad.bytesToMegabytes(data); return void todoBigFile(size); });