').html(cMsg));
+ UI.alert(msg);
callback();
return;
});
@@ -920,18 +963,7 @@ define([
h('ul', elements)
]);
- var origin = common.getMetadataMgr().getPrivateData().origin || '';
- $(text).find('a').click(function (e) {
- e.preventDefault();
- e.stopPropagation();
- var href = $(this).attr('href');
- var absolute = /^https?:\/\//i;
- if (!absolute.test(href)) {
- if (href.slice(0,1) !== '/') { href = '/' + href; }
- href = origin + href;
- }
- common.openUnsafeURL(href);
- });
+ common.fixLinks(text);
var closeButton = h('span.cp-help-close.fa.fa-window-close');
var $toolbarButton = common.createButton('', true, {
@@ -1422,50 +1454,51 @@ define([
tag: 'a',
attributes: {
'target': '_blank',
- 'href': origin+'/drive/'
+ 'href': origin+'/drive/',
+ 'class': 'fa fa-hdd-o'
},
- content: Messages.login_accessDrive
+ content: h('span', Messages.login_accessDrive)
});
}
// Add the change display name button if not in read only mode
if (config.changeNameButtonCls && config.displayChangeName && !AppConfig.disableProfile) {
options.push({
tag: 'a',
- attributes: {'class': config.changeNameButtonCls},
- content: Messages.user_rename
+ attributes: {'class': config.changeNameButtonCls + ' fa fa-user'},
+ content: h('span', Messages.user_rename)
});
}
if (accountName && !AppConfig.disableProfile) {
options.push({
tag: 'a',
- attributes: {'class': 'cp-toolbar-menu-profile'},
- content: Messages.profileButton
+ attributes: {'class': 'cp-toolbar-menu-profile fa fa-user-circle'},
+ content: h('span', Messages.profileButton)
});
}
if (padType !== 'settings') {
options.push({
tag: 'a',
- attributes: {'class': 'cp-toolbar-menu-settings'},
- content: Messages.settingsButton
+ attributes: {'class': 'cp-toolbar-menu-settings fa fa-cog'},
+ content: h('span', Messages.settingsButton)
});
}
// Add login or logout button depending on the current status
if (accountName) {
options.push({
tag: 'a',
- attributes: {'class': 'cp-toolbar-menu-logout'},
- content: Messages.logoutButton
+ attributes: {'class': 'cp-toolbar-menu-logout fa fa-sign-out'},
+ content: h('span', Messages.logoutButton)
});
} else {
options.push({
tag: 'a',
- attributes: {'class': 'cp-toolbar-menu-login'},
- content: Messages.login_login
+ attributes: {'class': 'cp-toolbar-menu-login fa fa-sign-in'},
+ content: h('span', Messages.login_login)
});
options.push({
tag: 'a',
- attributes: {'class': 'cp-toolbar-menu-register'},
- content: Messages.login_register
+ attributes: {'class': 'cp-toolbar-menu-register fa fa-user-plus'},
+ content: h('span', Messages.login_register)
});
}
var $icon = $('
', {'class': 'fa fa-user-secret'});
@@ -1521,9 +1554,8 @@ define([
UIElements.displayAvatar(Common, $avatar, url,
newName || Messages.anonymous, function ($img) {
oldUrl = url;
- if ($img) {
- $userAdmin.find('> button').addClass('cp-avatar');
- }
+ $userAdmin.find('> button').removeClass('cp-avatar');
+ if ($img) { $userAdmin.find('> button').addClass('cp-avatar'); }
loadingAvatar = false;
});
return;
@@ -1742,7 +1774,7 @@ define([
sframeChan.event("EV_FILE_PICKER_OPEN", types);
};
- UIElements.openTemplatePicker = function (common) {
+ UIElements.openTemplatePicker = function (common, force) {
var metadataMgr = common.getMetadataMgr();
var type = metadataMgr.getMetadataLazy().type;
var sframeChan = common.getSframeChannel();
@@ -1782,10 +1814,13 @@ define([
if (data) {
common.openFilePicker(pickerCfg);
focus = document.activeElement;
+ if (force) { return void onConfirm(true); }
UI.confirm(Messages.useTemplate, onConfirm, {
ok: Messages.useTemplateOK,
cancel: Messages.useTemplateCancel,
});
+ } else if (force) {
+ UI.alert(Messages.template_empty);
}
});
};
diff --git a/www/common/metadata-manager.js b/www/common/metadata-manager.js
index dfc855863..fed4183d3 100644
--- a/www/common/metadata-manager.js
+++ b/www/common/metadata-manager.js
@@ -34,6 +34,10 @@ define(['json.sortify'], function (Sortify) {
}
if (!metadataObj.users) { metadataObj.users = {}; }
if (!metadataLazyObj.users) { metadataLazyObj.users = {}; }
+
+ if (!metadataObj.type) { metadataObj.type = meta.doc.type; }
+ if (!metadataLazyObj.type) { metadataLazyObj.type = meta.doc.type; }
+
var mdo = {};
// We don't want to add our user data to the object multiple times.
//var containsYou = false;
diff --git a/www/common/sframe-app-framework.js b/www/common/sframe-app-framework.js
index b3fabee61..b7fb0b286 100644
--- a/www/common/sframe-app-framework.js
+++ b/www/common/sframe-app-framework.js
@@ -572,6 +572,9 @@ define([
toolbar.$rightside.append($templateButton);
}
+ var $importTemplateButton = common.createButton('importtemplate', true);
+ toolbar.$drawer.append($importTemplateButton);
+
/* add a forget button */
toolbar.$rightside.append(common.createButton('forget', true, {}, function (err) {
if (err) { return; }
diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js
index 0ba403750..431d1c74f 100644
--- a/www/common/sframe-common-outer.js
+++ b/www/common/sframe-common-outer.js
@@ -643,10 +643,19 @@ define([
replaceHash(Utils.Hash.getEditHashFromKeys(wc, secret.keys));
}
};
- Object.keys(rtConfig).forEach(function (k) {
- cpNfCfg[k] = rtConfig[k];
+
+ nThen(function (waitFor) {
+ if (isNewFile && cfg.owned && !window.location.hash) {
+ Cryptpad.getMetadata(waitFor(function (err, m) {
+ cpNfCfg.owners = [m.priv.edPublic];
+ }));
+ }
+ }).nThen(function () {
+ Object.keys(rtConfig).forEach(function (k) {
+ cpNfCfg[k] = rtConfig[k];
+ });
+ CpNfOuter.start(cpNfCfg);
});
- CpNfOuter.start(cpNfCfg);
};
sframeChan.on('Q_CREATE_PAD', function (data, cb) {
diff --git a/www/common/sframe-common.js b/www/common/sframe-common.js
index 0d513658b..66cf6aecd 100644
--- a/www/common/sframe-common.js
+++ b/www/common/sframe-common.js
@@ -343,6 +343,27 @@ define([
window.open(bounceHref);
};
+ funcs.fixLinks = function (domElement) {
+ var origin = ctx.metadataMgr.getPrivateData().origin;
+ $(domElement).find('a[target="_blank"]').click(function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ var href = $(this).attr('href');
+ var absolute = /^https?:\/\//i;
+ if (!absolute.test(href)) {
+ if (href.slice(0,1) !== '/') { href = '/' + href; }
+ href = origin + href;
+ }
+ funcs.openUnsafeURL(href);
+ });
+ $(domElement).find('a[target!="_blank"]').click(function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ funcs.gotoURL($(this).attr('href'));
+ });
+ return $(domElement)[0];
+ };
+
funcs.whenRealtimeSyncs = evRealtimeSynced.reg;
var logoutHandlers = [];
diff --git a/www/drive/inner.js b/www/drive/inner.js
index 5b733b86d..a5e0b6815 100644
--- a/www/drive/inner.js
+++ b/www/drive/inner.js
@@ -370,7 +370,8 @@ define([
currentPath = [FILES_DATA];
$tree.hide();
if (Object.keys(files.root).length && !proxy.anonymousAlert) {
- UI.alert(Messages.fm_alert_anonymous, null, true);
+ var msg = common.fixLinks($('').html(Messages.fm_alert_anonymous));
+ UI.alert(msg);
proxy.anonymousAlert = true;
}
}
@@ -1516,13 +1517,7 @@ define([
}
if (!APP.loggedIn) {
msg = Messages.fm_info_anonymous;
- $box.html(msg);
- $box.find('a[target!="_blank"]').click(function (e) {
- e.preventDefault();
- var href = $(this).attr('href');
- common.gotoURL(href);
- });
- return $box;
+ return $(common.fixLinks($box.html(msg)));
}
if (!msg || APP.store['hide-info-' + path[0]] === '1') {
$box.hide();
diff --git a/www/profile/main.js b/www/profile/main.js
index 234e28d8a..2449ea96b 100644
--- a/www/profile/main.js
+++ b/www/profile/main.js
@@ -93,6 +93,7 @@ define([
getSecrets: getSecrets,
noHash: true, // Don't add the hash in the URL if it doesn't already exist
addRpc: addRpc,
+ owned: true
});
});
});
diff --git a/www/todo/main.js b/www/todo/main.js
index 322e2363b..b86546bf6 100644
--- a/www/todo/main.js
+++ b/www/todo/main.js
@@ -46,6 +46,7 @@ define([
SFCommonO.start({
getSecrets: getSecrets,
noHash: true,
+ owned: true
});
});
});