|
|
|
define([
|
|
|
|
'jquery',
|
|
|
|
'/common/cryptpad-common.js',
|
|
|
|
'/bower_components/chainpad-listmap/chainpad-listmap.js',
|
|
|
|
'/common/curve.js',
|
|
|
|
'less!/invite/main.less',
|
|
|
|
], function ($, Cryptpad, Listmap, Curve) {
|
|
|
|
var APP = window.APP = {};
|
|
|
|
|
|
|
|
//var Messages = Cryptpad.Messages;
|
|
|
|
var onInit = function () {};
|
|
|
|
|
|
|
|
var onDisconnect = function () {};
|
|
|
|
var onChange = function () {};
|
|
|
|
|
|
|
|
var andThen = function () {
|
|
|
|
var hash = window.location.hash.slice(1);
|
|
|
|
|
|
|
|
var info = Cryptpad.parseTypeHash('invite', hash);
|
|
|
|
console.log(info);
|
|
|
|
|
|
|
|
if (!info.pubkey) {
|
|
|
|
Cryptpad.removeLoadingScreen();
|
|
|
|
Cryptpad.alert('invalid invite');
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
var proxy = Cryptpad.getProxy();
|
|
|
|
var mySecret = proxy.curvePrivate;
|
|
|
|
|
|
|
|
var keys = Curve.deriveKeys(info.pubkey, mySecret);
|
|
|
|
var encryptor = Curve.createEncryptor(keys);
|
|
|
|
|
|
|
|
Cryptpad.removeLoadingScreen();
|
|
|
|
|
|
|
|
var listmapConfig = {
|
|
|
|
data: {},
|
|
|
|
network: Cryptpad.getNetwork(),
|
|
|
|
channel: info.channel,
|
|
|
|
readOnly: false,
|
|
|
|
validateKey: keys.validateKey,
|
|
|
|
crypto: encryptor,
|
|
|
|
userName: 'profile',
|
|
|
|
logLevel: 1,
|
|
|
|
};
|
|
|
|
var lm = APP.lm = Listmap.create(listmapConfig);
|
|
|
|
lm.proxy.on('create', onInit)
|
|
|
|
.on('ready', function () {
|
|
|
|
APP.initialized = true;
|
|
|
|
console.log(JSON.stringify(lm.proxy));
|
|
|
|
})
|
|
|
|
.on('disconnect', onDisconnect)
|
|
|
|
.on('change', [], onChange);
|
|
|
|
};
|
|
|
|
|
|
|
|
$(function () {
|
|
|
|
var $main = $('#mainBlock');
|
|
|
|
// Language selector
|
|
|
|
var $sel = $('#language-selector');
|
|
|
|
Cryptpad.createLanguageSelector(undefined, $sel);
|
|
|
|
$sel.find('button').addClass('btn').addClass('btn-secondary');
|
|
|
|
$sel.show();
|
|
|
|
|
|
|
|
// User admin menu
|
|
|
|
var $userMenu = $('#user-menu');
|
|
|
|
var userMenuCfg = {
|
|
|
|
$initBlock: $userMenu
|
|
|
|
};
|
|
|
|
var $userAdmin = Cryptpad.createUserAdminMenu(userMenuCfg);
|
|
|
|
$userAdmin.find('button').addClass('btn').addClass('btn-secondary');
|
|
|
|
|
|
|
|
$(window).click(function () {
|
|
|
|
$('.cryptpad-dropdown').hide();
|
|
|
|
});
|
|
|
|
|
|
|
|
// main block is hidden in case javascript is disabled
|
|
|
|
$main.removeClass('hidden');
|
|
|
|
|
|
|
|
APP.$container = $('#container');
|
|
|
|
|
|
|
|
Cryptpad.ready(function () {
|
|
|
|
Cryptpad.reportAppUsage();
|
|
|
|
andThen();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|