mirror of https://github.com/xwiki-labs/cryptpad
Upload logo: fix issue and add button to restore default logo
This commit is contained in:
parent
056073983c
commit
21025c317f
|
@ -917,6 +917,11 @@ var deleteInvitation = (Env, Server, cb, data) => {
|
|||
};
|
||||
|
||||
const MAX_LOGO_SIZE = 200*1024; // 200KB
|
||||
var removeLogo = (Env, Server, cb) => {
|
||||
Fse.unlink('./customize/CryptPad_logo_hero.svg', (err) => {
|
||||
cb(err);
|
||||
});
|
||||
};
|
||||
var uploadLogo = (Env, Server, cb, data, unsafeKey) => {
|
||||
const args = Array.isArray(data) && data[1];
|
||||
if (!args || typeof(args) !== 'object') { return void cb("EINVAL"); }
|
||||
|
@ -1031,6 +1036,7 @@ var commands = {
|
|||
UPDATE_KNOWN_USER: updateKnownUser,
|
||||
|
||||
UPLOAD_LOGO: uploadLogo,
|
||||
REMOVE_LOGO: removeLogo,
|
||||
};
|
||||
|
||||
// addFirstAdmin is an anon_rpc command
|
||||
|
|
|
@ -684,13 +684,16 @@ app.get('/api/profiling', function (req, res) {
|
|||
});
|
||||
|
||||
app.get('/api/logo', function (req, res) {
|
||||
let path = Path.resolve('./customize/CryptPad_logo.svg');
|
||||
let base = Path.resolve('./customize.dist/CryptPad_logo.svg');
|
||||
let path = Path.resolve('./customize/CryptPad_logo_hero.svg');
|
||||
let base = Path.resolve('./customize.dist/CryptPad_logo_hero.svg');
|
||||
Fs.exists(path, function (exists) {
|
||||
let mime = Env.logoMimeType || 'image/svg+xml';
|
||||
res.setHeader('Content-Type', mime + '; charset=utf-8');
|
||||
if (exists) { return Fs.createReadStream(path).pipe(res); }
|
||||
Fs.createReadStream(base).pipe(res);
|
||||
res.setHeader('Content-Disposition', 'inline');
|
||||
if (exists) {
|
||||
let mime = Env.logoMimeType || 'image/svg+xml';
|
||||
res.setHeader('Content-Type', mime);
|
||||
return res.sendFile(path);
|
||||
}
|
||||
res.sendFile(base);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -3898,22 +3898,39 @@ Example
|
|||
return $div;
|
||||
};
|
||||
|
||||
// XXX
|
||||
Messages.admin_logoTitle = "Upload Logo";
|
||||
Messages.admin_logoHint = "Max 200KB, svg, png or jpg";
|
||||
Messages.admin_logoButton = "Upload";
|
||||
Messages.admin_logoButton = "Upload new";
|
||||
Messages.admin_logoRemoveButton = "Restore default";
|
||||
create['logo'] = function () {
|
||||
var key = 'logo';
|
||||
var $div = makeBlock(key, true); // Msg.admin_emailHint, Msg.admin_emailTitle
|
||||
|
||||
let $button = $div.find('button');
|
||||
var $div = makeBlock(key, false); // Msg.admin_emailHint, Msg.admin_emailTitle
|
||||
|
||||
var input = h('input', {
|
||||
type: 'file',
|
||||
accept: 'image/*',
|
||||
'aria-labelledby': 'cp-admin-logo'
|
||||
});
|
||||
$(h('div', input)).insertBefore($button);
|
||||
|
||||
var currentContainer = h('div');
|
||||
let redraw = () => {
|
||||
var current = h('img', {src: '/api/logo?'+(+new Date())});
|
||||
$(currentContainer).empty().append(current);
|
||||
};
|
||||
redraw();
|
||||
|
||||
var upload = h('button.btn.btn-primary', Messages.admin_logoButton);
|
||||
var remove = h('button.btn.btn-danger', Messages.admin_logoRemoveButton);
|
||||
|
||||
$div.append([
|
||||
currentContainer,
|
||||
h('div', input),
|
||||
h('nav', [upload, remove])
|
||||
]);
|
||||
|
||||
let $button = $(upload);
|
||||
let $remove = $(remove);
|
||||
var spinner = UI.makeSpinner($div);
|
||||
|
||||
Util.onClickEnter($button, function () {
|
||||
|
@ -3931,17 +3948,37 @@ Example
|
|||
$button.removeAttr('disabled');
|
||||
if (err) {
|
||||
UI.warn(Messages.error);
|
||||
$input.val('');
|
||||
$(input).val('');
|
||||
console.error(err, response);
|
||||
spinner.hide();
|
||||
return;
|
||||
}
|
||||
redraw();
|
||||
spinner.done();
|
||||
UI.log(Messages.saved);
|
||||
});
|
||||
};
|
||||
reader.readAsDataURL(files[0]);
|
||||
});
|
||||
UI.confirmButton($remove, {
|
||||
classes: 'btn-danger',
|
||||
multiple: true
|
||||
}, function () {
|
||||
spinner.spin();
|
||||
$remove.attr('disabled', 'disabled');
|
||||
sframeCommand('REMOVE_LOGO', {}, (err, response) => {
|
||||
$remove.removeAttr('disabled');
|
||||
if (err) {
|
||||
UI.warn(Messages.error);
|
||||
console.error(err, response);
|
||||
spinner.hide();
|
||||
return;
|
||||
}
|
||||
redraw();
|
||||
spinner.done();
|
||||
UI.log(Messages.saved);
|
||||
});
|
||||
});
|
||||
|
||||
return $div;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue