color pick

This commit is contained in:
zuzanna-maria 2024-06-14 18:35:51 +01:00
parent 98b7351070
commit 0cfc27f3d3
13 changed files with 358 additions and 290 deletions

View file

@ -726,7 +726,8 @@ var archivePinLog = function (Env, Server, cb, data) {
var archiveBlock = function (Env, Server, cb, data) { var archiveBlock = function (Env, Server, cb, data) {
var args = Array.isArray(data) && data[1]; var args = Array.isArray(data) && data[1];
if (!args) { return void cb("INVALID_ARGS"); } if (!args) {
return void cb("INVALID_ARGS"); }
var key = args.key; var key = args.key;
var reason = args.reason; var reason = args.reason;
if (!isValidKey(key)) { return void cb("EINVAL"); } if (!isValidKey(key)) { return void cb("EINVAL"); }
@ -748,7 +749,8 @@ var archiveBlock = function (Env, Server, cb, data) {
var restoreArchivedBlock = function (Env, Server, cb, data) { var restoreArchivedBlock = function (Env, Server, cb, data) {
var args = Array.isArray(data) && data[1]; var args = Array.isArray(data) && data[1];
if (!args) { return void cb("INVALID_ARGS"); } if (!args) {
return void cb("INVALID_ARGS"); }
var key = args.key; var key = args.key;
var reason = args.reason; var reason = args.reason;
if (!isValidKey(key)) { return void cb("EINVAL"); } if (!isValidKey(key)) { return void cb("EINVAL"); }
@ -1012,7 +1014,7 @@ var uploadLogo = (Env, Server, cb, data, unsafeKey) => {
var changeColor = (Env, Server, cb, data, unsafeKey) => { var changeColor = (Env, Server, cb, data, unsafeKey) => {
const args = Array.isArray(data) && data[1]; const args = Array.isArray(data) && data[1];
if (!args || typeof(args) !== 'object') { return void cb("EINVAL"); } if (!args || typeof(args) !== 'object') { return void cb("EINVAL"); }
let color = args.color; let color = args.color || args.selectedColor;
adminDecree(Env, null, function (err) { adminDecree(Env, null, function (err) {
if (err) { return void cb(err); } if (err) { return void cb(err); }
Env.flushCache(); Env.flushCache();
@ -1107,7 +1109,8 @@ Admin.addFirstAdmin = function (Env, data, cb) {
if (!Env.installToken) { return void cb('EINVAL'); } if (!Env.installToken) { return void cb('EINVAL'); }
var token = data.token; var token = data.token;
if (!token || !data.edPublic) { return void cb('MISSING_ARGS'); } if (!token || !data.edPublic) { return void cb('MISSING_ARGS'); }
if (token.length !== 64 || data.edPublic.length !== 44) { return void cb('INVALID_ARGS'); } if (token.length !== 64 || data.edPublic.length !== 44) { console.log('here21')
return void cb('INVALID_ARGS'); }
if (token !== Env.installToken) { return void cb('FORBIDDEN'); } if (token !== Env.installToken) { return void cb('FORBIDDEN'); }
if (Array.isArray(Env.admins) && Env.admins.length) { return void cb('EEXISTS'); } if (Array.isArray(Env.admins) && Env.admins.length) { return void cb('EEXISTS'); }

View file

@ -167,6 +167,10 @@ var isInteger = function (n) {
}; };
var args_isString = function (args) { var args_isString = function (args) {
console.log('args', args)
console.log(typeof args)
console.log(Array.isArray(args))
console.log(isString(args[0]))
return !(!Array.isArray(args) || !isString(args[0])); return !(!Array.isArray(args) || !isString(args[0]));
}; };
var args_isInteger = function (args) { var args_isInteger = function (args) {
@ -237,6 +241,7 @@ commands.DISABLE_APPS = function (Env, args) {
}; };
commands.CHANGE_COLOR = function (Env, args) { commands.CHANGE_COLOR = function (Env, args) {
console.log('change color')
var color = args var color = args
adminDecree(Env, null, function (err) { adminDecree(Env, null, function (err) {
if (err) { return void cb(err); } if (err) { return void cb(err); }
@ -310,7 +315,8 @@ commands.SET_SUPPORT_KEYS = function (Env, args) {
(Core.isValidPublicKey(curvePublic) || !curvePublic) && (Core.isValidPublicKey(curvePublic) || !curvePublic) &&
typeof(edPublic) === "string" && typeof(edPublic) === "string" &&
(Core.isValidPublicKey(edPublic) || !edPublic); (Core.isValidPublicKey(edPublic) || !edPublic);
if (!validated) { throw new Error('INVALID_ARGS'); } if (!validated) {
throw new Error('INVALID_ARGS'); }
if (Env.supportMailboxKey === curvePublic && Env.supportPinKey === edPublic) { return false; } if (Env.supportMailboxKey === curvePublic && Env.supportPinKey === edPublic) { return false; }
Env.supportMailboxKey = curvePublic; Env.supportMailboxKey = curvePublic;
Env.supportPinKey = edPublic; Env.supportPinKey = edPublic;
@ -322,7 +328,8 @@ commands.SET_INSTANCE_PURPOSE = makeGenericSetter('instancePurpose', args_isStri
var makeTranslation = function (attr) { var makeTranslation = function (attr) {
return function (Env, args) { return function (Env, args) {
if (!Array.isArray(args)) { throw new Error("INVALID_ARGS"); } if (!Array.isArray(args)) {
throw new Error("INVALID_ARGS"); }
var value = args[0]; var value = args[0];
var state = Env[attr]; var state = Env[attr];
@ -373,7 +380,7 @@ var args_isMaintenance = function (args) {
// whenever that happens we can relax validation a bit to support more formats // whenever that happens we can relax validation a bit to support more formats
var makeBroadcastSetter = function (attr, validation) { var makeBroadcastSetter = function (attr, validation) {
return function (Env, args) { return function (Env, args) {
if ((validation && !validation(args)) && !args_isString(args)) { if ((validation && !validation(args)) && !args_isString(args)) {
throw new Error('INVALID_ARGS'); throw new Error('INVALID_ARGS');
} }
var str = args[0]; var str = args[0];

View file

@ -370,7 +370,8 @@ commands.ADD_MAILBOX = function (meta, args) {
}; };
commands.RM_MAILBOX = function (meta, args) { commands.RM_MAILBOX = function (meta, args) {
if (!Array.isArray(args)) { throw new Error("INVALID_ARGS"); } if (!Array.isArray(args)) {
throw new Error("INVALID_ARGS"); }
if (!meta.mailbox || typeof(meta.mailbox) === 'undefined') { if (!meta.mailbox || typeof(meta.mailbox) === 'undefined') {
return false; return false;
} }

View file

@ -582,7 +582,8 @@ var reportStatus = function (Env, label, safeKey, err, id, size) {
}; };
const completeUpload = function (data, cb) { const completeUpload = function (data, cb) {
if (!data) { return void cb('INVALID_ARGS'); } if (!data) {
return void cb('INVALID_ARGS'); }
if (typeof(data.safeKey) !== 'string') { return void cb("INVALID_KEY"); } if (typeof(data.safeKey) !== 'string') { return void cb("INVALID_KEY"); }
var owned = data.owned; var owned = data.owned;
var safeKey = Util.escapeKeyCharacters(data.safeKey); var safeKey = Util.escapeKeyCharacters(data.safeKey);
@ -606,7 +607,8 @@ const completeUpload = function (data, cb) {
}; };
const getPinActivity = function (data, cb) { const getPinActivity = function (data, cb) {
if (!data) { return void cb("INVALID_ARGS"); } if (!data) {
return void cb("INVALID_ARGS"); }
if (typeof(data.key) !== 'string') { return void cb("INVALID_KEY"); } if (typeof(data.key) !== 'string') { return void cb("INVALID_KEY"); }
var safeKey = Util.escapeKeyCharacters(data.key); var safeKey = Util.escapeKeyCharacters(data.key);
var first; var first;
@ -633,7 +635,8 @@ const getPinActivity = function (data, cb) {
}; };
const getLastChannelTime = function (data, cb) { const getLastChannelTime = function (data, cb) {
if (!data) { return void cb("INVALID_ARGS"); } if (!data) {
return void cb("INVALID_ARGS"); }
var latest; var latest;
store.getMessages(data.channel, function (line) { store.getMessages(data.channel, function (line) {
try { try {

View file

@ -205,7 +205,8 @@ var factory = function (Util, Hash, CPNetflux, Sortify, nThen, Crypto, Feedback)
}; };
commands.RM = function (args, author, roster) { commands.RM = function (args, author, roster) {
if (!Array.isArray(args)) { throw new Error("INVALID_ARGS"); } if (!Array.isArray(args)) {
throw new Error("INVALID_ARGS"); }
if (typeof(roster.state.members) === 'undefined') { if (typeof(roster.state.members) === 'undefined') {
throw new Error("CANNOT_RM_FROM_UNITIALIZED_ROSTER"); throw new Error("CANNOT_RM_FROM_UNITIALIZED_ROSTER");
@ -348,7 +349,8 @@ var factory = function (Util, Hash, CPNetflux, Sortify, nThen, Crypto, Feedback)
// only admin/owner can change group metadata // only admin/owner can change group metadata
commands.METADATA = function (args, author, roster) { commands.METADATA = function (args, author, roster) {
if (!isMap(args)) { throw new Error("INVALID_ARGS"); } if (!isMap(args)) { console.log('here27')
throw new Error("INVALID_ARGS"); }
if (!canUpdateMetadata(author, roster.state.members)) { throw new Error("INSUFFICIENT_PERMISSIONS"); } if (!canUpdateMetadata(author, roster.state.members)) { throw new Error("INSUFFICIENT_PERMISSIONS"); }
@ -386,7 +388,8 @@ var factory = function (Util, Hash, CPNetflux, Sortify, nThen, Crypto, Feedback)
// that key is ultimately given to the user you'd like on your team // that key is ultimately given to the user you'd like on your team
// that user can exploit their possession of the public key to remove // that user can exploit their possession of the public key to remove
// the pending invitation with their actual data. // the pending invitation with their actual data.
if (!isMap(args)) { throw new Error('INVALID_ARGS'); } if (!isMap(args)) {console.log('here28')
throw new Error('INVALID_ARGS'); }
if (!roster.internal.initialized) { throw new Error("UNINITIALIED"); } if (!roster.internal.initialized) { throw new Error("UNINITIALIED"); }
if (typeof(roster.state.members) === 'undefined') { if (typeof(roster.state.members) === 'undefined') {
throw new Error("CANNOT+INVITE_TO_UNINITIALIED_ROSTER"); throw new Error("CANNOT+INVITE_TO_UNINITIALIED_ROSTER");
@ -457,7 +460,8 @@ var factory = function (Util, Hash, CPNetflux, Sortify, nThen, Crypto, Feedback)
if (!members[author].pending) { throw new Error("ALREADY_PRESENT"); } if (!members[author].pending) { throw new Error("ALREADY_PRESENT"); }
// args should be a string // args should be a string
if (typeof(args) !== 'string') { throw new Error("INVALID_ARGS"); } if (typeof(args) !== 'string') { console.log('here29')
throw new Error("INVALID_ARGS"); }
// ...and a valid curve key // ...and a valid curve key
if (!isValidId(args)) { throw new Error("INVALID_CURVE_KEY"); } if (!isValidId(args)) { throw new Error("INVALID_CURVE_KEY"); }

View file

@ -10,8 +10,9 @@ define([
'/common/hyperscript.js', '/common/hyperscript.js',
'css!/components/bootstrap/dist/css/bootstrap.min.css', 'css!/components/bootstrap/dist/css/bootstrap.min.css',
'css!/components/components-font-awesome/css/font-awesome.min.css', 'css!/components/components-font-awesome/css/font-awesome.min.css',
'less!/admin/app-admin.less',
'css!/install/configscreen.css' // 'less!/admin/app-admin.less',
// 'css!/install/configscreen.css'
], function( ], function(
$, $,
Sidebar, Sidebar,
@ -19,40 +20,30 @@ define([
h, h,
UI, UI,
Util, Util,
Instance
) { ) {
//XXX //XXX
Messages.admin_onboardingNameTitle = 'Welcome to your CryptPad instance' Messages.admin_onboardingNameTitle = 'Welcome to your CryptPad instance';
Messages.admin_onboardingNameHint = 'Please choose a title and description' Messages.admin_onboardingNameHint = 'Please choose a title and description';
Messages.admin_onboardingAppsTitle = "Choose your applications";
Messages.admin_onboardingAppsTitle = "Choose your applications" Messages.admin_onboardingAppsHint = "Choose which apps are available to users on your instance";
Messages.admin_onboardingAppsHint = "Choose which apps are available to users on your instance" Messages.admin_onboardingRegistrationTitle = "Options";
Messages.admin_onboardingRegistrationHint = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In id tristique justo";
Messages.admin_onboardingRegistrationTitle = "Options" Messages.admin_onboardingRegistration = "Visitors to the instance are not able to create accounts. Invitations can be created by administrators";
Messages.admin_onboardingRegistrationHint = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In id tristique justo" Messages.admin_onboardingRegistration = "All accounts on the instance have to use 2-factor authentication";
Messages.admin_onboardingRegistration = "Visitors to the instance are not able to create accounts. Invitations can be created by administrators"
Messages.admin_onboardingRegistration = "All accounts on the instance have to use 2-factor authentication"
var AppConfigScreen = {}; var AppConfigScreen = {};
const blocks = Sidebar.blocks; const blocks = Sidebar.blocks;
var displayForm = function(sendAdminDecree, page) { var displayForm = function(sendAdminDecree, page) {
var pages = [AppConfigScreen.appConfig, AppConfigScreen.mfaRegistrationScreen, AppConfigScreen.titleConfig] var pages = [AppConfigScreen.appConfig, AppConfigScreen.mfaRegistrationScreen, AppConfigScreen.titleConfig];
var nextPageFunction = pages[page] var nextPageFunction = pages[page];
console.log('here', typeof nextPageFunction) var nextPageForm = nextPageFunction(sendAdminDecree);
var nextPageForm = nextPageFunction(sendAdminDecree)
var elem = document.createElement('div'); var elem = document.createElement('div');
elem.setAttribute('id', 'cp-loading'); elem.setAttribute('id', 'cp-loading');
let frame = h('div.configscreen', nextPageForm) let frame = h('div.configscreen', nextPageForm);
elem.append(frame) elem.append(frame);
built = true;
var intr; var intr;
var append = function () { var append = function () {
if (!document.body) { return; } if (!document.body) { return; }
@ -62,7 +53,7 @@ define([
intr = setInterval(append, 100); intr = setInterval(append, 100);
append(); append();
} };
AppConfigScreen.titleConfig = function (sendAdminDecree, sendAdminRpc) { AppConfigScreen.titleConfig = function (sendAdminDecree, sendAdminRpc) {
@ -76,14 +67,17 @@ define([
placeholder: 'Instance title', placeholder: 'Instance title',
'aria-labelledby': 'cp-admin-name' 'aria-labelledby': 'cp-admin-name'
}); });
var textarea = blocks.textarea({
var desc = blocks.textarea({
placeholder: 'Placeholder description text', placeholder: 'Placeholder description text',
value: '', value: '',
'aria-labelledby': 'cp-admin-description' 'aria-labelledby': 'cp-admin-description'
}); });
return [input, textarea] $(desc).addClass('cp-onboardscreen-desc');
}
return [input, desc];
};
var logoBlock = function() { var logoBlock = function() {
@ -96,6 +90,7 @@ define([
var currentContainer = blocks.block([], 'cp-admin-customize-logo'); var currentContainer = blocks.block([], 'cp-admin-customize-logo');
let redraw = () => { let redraw = () => {
var current = h('img', {src: '/api/logo?'+(+new Date())}); var current = h('img', {src: '/api/logo?'+(+new Date())});
$(current).css({'max-width':'30px'});
$(currentContainer).empty().append(current); $(currentContainer).empty().append(current);
}; };
redraw(); redraw();
@ -125,7 +120,6 @@ define([
let reader = new FileReader(); let reader = new FileReader();
reader.onloadend = function () { reader.onloadend = function () {
let dataURL = this.result; let dataURL = this.result;
console.log(dataURL, 'dataulr')
sendAdminRpc('UPLOAD_LOGO', {dataURL}, function (e, response) { sendAdminRpc('UPLOAD_LOGO', {dataURL}, function (e, response) {
$button.removeAttr('disabled'); $button.removeAttr('disabled');
if (e || response.error) { if (e || response.error) {
@ -140,7 +134,7 @@ define([
redraw(); redraw();
spinner.done(); spinner.done();
UI.log(Messages.saved); UI.log(Messages.saved);
}) });
}; };
reader.readAsDataURL(files[0]); reader.readAsDataURL(files[0]);
@ -152,7 +146,7 @@ define([
spinner.spin(); spinner.spin();
$remove.attr('disabled', 'disabled'); $remove.attr('disabled', 'disabled');
sendAdminDecree('REMOVE_LOGO', {}, function (e, response) { sendAdminRpc('REMOVE_LOGO', {dataURL}, function (e, response) {
$remove.removeAttr('disabled'); $remove.removeAttr('disabled');
if (err) { if (err) {
UI.warn(Messages.error); UI.warn(Messages.error);
@ -166,160 +160,52 @@ define([
}); });
}); });
return formLogo return formLogo;
} };
var colorBlock = function () { var colorBlock = function () {
// let input = blocks.input({ var colors;
// type: 'color',
// value: (Instance && Instance.color) || '#0087FF'
// });
// let label = blocks.labelledInput(Messages.admin_colorPick, input);
// let current = blocks.block([], 'cp-admin-color-current');
// let labelCurrent = blocks.labelledInput(Messages.admin_colorCurrent, current);
// let preview = blocks.block([
// blocks.block([
// blocks.link('CryptPad', '/admin/#customize'),
// blocks.button('primary', 'fa-floppy-o', Messages.settings_save),
// blocks.button('secondary', 'fa-floppy-o', Messages.settings_save)
// ], 'cp-admin-color-preview-dark cp-sidebar-flex-block'),
// blocks.block([
// blocks.link('CryptPad', '/admin/#customize'),
// blocks.button('primary', 'fa-floppy-o', Messages.settings_save),
// blocks.button('secondary', 'fa-floppy-o', Messages.settings_save)
// ], 'cp-admin-color-preview-light cp-sidebar-flex-block')
// ], 'cp-admin-color-preview');
// let labelPreview = blocks.labelledInput(Messages.admin_colorPreview, preview);
// let $preview = $(preview);
// let remove = blocks.button('danger', '', Messages.admin_logoRemoveButton);
// let $remove = $(remove);
// let setColor = (color, done) => {
// sframeCommand('CHANGE_COLOR', {color}, (err, response) => {
// if (err) {
// UI.warn(Messages.error);
// console.error(err, response);
// done(false);
// return;
// }
// done(true);
// UI.log(Messages.saved);
// });
// };
// let btn = blocks.activeButton('primary', '',
// Messages.admin_colorChange, (done) => {
// let color = $input.val();
// setColor(color, done);
// });
// let $input = $(input).on('change', () => {
// require(['/lib/less.min.js'], (Less) => {
// let color = $input.val();
// let lColor = Less.color(color.slice(1));
// let lighten = Less.functions.functionRegistry._data.lighten;
// let lightColor = lighten(lColor, {value:30}).toRGB();
// $preview.find('.btn-primary').css({
// 'background-color': color
// });
// $preview.find('.cp-admin-color-preview-dark .btn-secondary').css({
// 'border-color': lightColor,
// 'color': lightColor,
// });
// $preview.find('.cp-admin-color-preview-light .btn-secondary').css({
// 'border-color': color,
// 'color': color,
// });
// $preview.find('.cp-admin-color-preview-dark a').attr('style', `color: ${lightColor} !important`);
// $preview.find('.cp-admin-color-preview-light a').attr('style', `color: ${color} !important`);
// });
// });
// UI.confirmButton($remove, {
// classes: 'btn-danger',
// multiple: true
// }, function () {
// $remove.attr('disabled', 'disabled');
// setColor('', () => {});
// });
// // let form = blocks.form([
// var form = [labelCurrent,
// label]
// // ], blocks.nav([btn, remove, btn.spinner]));
// Colors
var conflicts, conflictContainer, titleInput, tagsDiv, colors, text;
var content = h('div', [ var content = h('div', [
// conflictContainer = h('div#cp-kanban-edit-conflicts', [
// h('div', Messages.kanban_conflicts),
// conflicts = h('div.cp-kanban-cursors')
// ]),
// h('label', {for:'cp-kanban-edit-title'}, Messages.kanban_title),
// titleInput = h('input#cp-kanban-edit-title'),
// h('label', {for:'cp-kanban-edit-body'}, Messages.kanban_body),
// h('div#cp-kanban-edit-body', [
// text = h('textarea')
// ]),
// h('label', {for:'cp-kanban-edit-tags'}, Messages.fm_tagsName),
// tagsDiv = h('div#cp-kanban-edit-tags'),
h('label', {for:'cp-kanban-edit-color'}, Messages.kanban_color), h('label', {for:'cp-kanban-edit-color'}, Messages.kanban_color),
colors = h('div#cp-kanban-edit-colors'), colors = h('div#cp-kanban-edit-colors'),
]); ], {style: 'padding-left:50%'});
var $colors = $(colors); var $colors = $(colors);
var palette = ['']; var palette = [''];
for (var i=1; i<=8; i++) { palette.push('color'+i); } for (var i=1; i<=8; i++) { palette.push('color'+i); }
var selectedColor = ''; var selectedColor = '';
var resetThemeClass = function () {
$colors.find('.cp-kanban-palette').each(function (i, el) {
var $c = $(el);
$c.removeClass('cp-kanban-palette-card');
$c.removeClass('cp-kanban-palette-board');
// if (isBoard) {
// $c.addClass('cp-kanban-palette-board');
// } else {
$c.addClass('cp-kanban-palette-card');
// }
});
};
palette.forEach(function (color) { palette.forEach(function (color) {
var $color = $(h('span.cp-kanban-palette.fa')); var $color = $(h('div.cp-kanban-palette.cp-kanban-palette-card.fa'), );
$color.css({'width':'30px', 'height':'30px', 'display': 'inline-block', 'border-radius': '50%', 'text-align': 'center', 'line-height': '30px', 'margin-right':'1%'})
$color.addClass('cp-kanban-palette-'+(color || 'nocolor')); $color.addClass('cp-kanban-palette-'+(color || 'nocolor'));
$color.click(function () { $color.click(function () {
if (offline) { return; }
if (color === selectedColor) { return; } if (color === selectedColor) { return; }
selectedColor = color; selectedColor = $color.css('background-color');
$colors.find('.cp-kanban-palette').removeClass('fa-check'); $colors.find('.cp-kanban-palette').removeClass('fa-check');
var $col = $colors.find('.cp-kanban-palette-'+(color || 'nocolor')); var $col = $colors.find('.cp-kanban-palette-'+(color || 'nocolor'));
$col.addClass('fa-check'); $col.addClass('fa-check');
sendAdminRpc('CHANGE_COLOR', {selectedColor}, function (e, response) {
dataObject.color = color; if (e || response.error) {
commit(); UI.warn(Messages.error);
console.error(e, response);
// done(false);
return;
}
// flushCache();
// done(true);
// redraw();
// spinner.done();
UI.log(Messages.saved);
});
}).appendTo($colors); }).appendTo($colors);
}); });
var color = {
getValue: function () { return content;
return selectedColor;
},
setValue: function (color) {
resetThemeClass();
$colors.find('.cp-kanban-palette').removeClass('fa-check');
var $col = $colors.find('.cp-kanban-palette-'+(color || 'nocolor'));
$col.addClass('fa-check');
selectedColor = color;
}
}; };
return color
}
var button = blocks.activeButton('primary', '', Messages.settings_save, function (done) { var button = blocks.activeButton('primary', '', Messages.settings_save, function (done) {
// sendAdminDecree('SET_INSTANCE_NAME', [$(titleInput).val().trim()], function (e, response) { // sendAdminDecree('SET_INSTANCE_NAME', [$(titleInput).val().trim()], function (e, response) {
@ -349,52 +235,39 @@ define([
// }) // })
displayForm(sendAdminDecree, 0);
// sendAdminDecree('CHANGE_COLOR', {colorPick}, function (e, response) {
// if (e || response.error) {
// UI.warn(Messages.error);
// console.error(e, response);
// done(false);
// return;
// }
// done(true);
// UI.log(Messages.saved);
// });
displayForm(sendAdminDecree, 0)
}); });
var titleInput = h('div.cp-onboardscreen-name', titleDescBlock()[0]) var titleInput = h('div.cp-onboardscreen-name', titleDescBlock()[0]);
var logoInput = h('div.cp-onboardscreen-logo', logoBlock(), {style:'width:20%;height:20%'}) var logoInput = h('div.cp-onboardscreen-logo', logoBlock());
var descriptionInput = h('div.cp-onboardscreen-description', titleDescBlock()[1]) var desc = h('div', titleDescBlock()[1]);
var colorInput = h('div', colorBlock(), {style:'width:50%;height:20%;position:absolute;right:0;bottom:0;margin-right:17%;margin-bottom:10%'}) var colorInput = h('div.cp-onboardscreen-color', colorBlock());
// var colorInputLabel = h('div', colorBlock()[0], {style:'width:20%;height:20%'})
// var colorInputLabel2 = h('div', colorBlock()[1], {style:'width:20%;height:20%'})
var screenTitleDiv = h('div.cp-onboardscreen-screentitle') var screenTitle = h('div.cp-onboardscreen-screentitle');
$(screenTitleDiv).append(h('div.cp-onboardscreen-maintitle', h('span.cp-onboardscreen-title', Messages.admin_onboardingNameTitle), h('br'), h('span', Messages.admin_onboardingNameHint))) $(screenTitle).append(h('div.cp-onboardscreen-maintitle', h('span.cp-onboardscreen-title', Messages.admin_onboardingNameTitle), h('br'), h('span', Messages.admin_onboardingNameHint)));
var nav = blocks.nav([button]); var nav = blocks.nav([button]);
$(nav).addClass('cp-onboardscreen-save');
var form = blocks.form([ var form = blocks.form([
screenTitleDiv, screenTitle,
titleInput, descriptionInput, titleInput,
desc,
logoInput, logoInput,
colorInput, colorInput,
], nav); ], nav);
$(form).addClass('cp-onboardscreen-form') $(form).addClass('cp-onboardscreen-form');
var wrapper = h('div', form, {style:'width:100%'}) return form;
return wrapper };
}
AppConfigScreen.mfaRegistrationScreen = function(sendAdminDecree) { AppConfigScreen.mfaRegistrationScreen = function(sendAdminDecree) {
var restrict = blocks.activeCheckbox({ var restrict = blocks.activeCheckbox({
key: 'registration', key: 'registration',
getState: function () { getState: function () {
return false return false;
}, },
query: function (val, setState) { query: function (val, setState) {
sendAdminDecree('RESTRICT_REGISTRATION', [val], function (e, response) { sendAdminDecree('RESTRICT_REGISTRATION', [val], function (e, response) {
@ -409,14 +282,14 @@ define([
// // done(true); // // done(true);
// UI.log(Messages.saved); // UI.log(Messages.saved);
}) });
}, },
}); });
var forceMFA = blocks.activeCheckbox({ var forceMFA = blocks.activeCheckbox({
key: 'forcemfa', key: 'forcemfa',
getState: function () { getState: function () {
return false return false;
}, },
query: function (val, setState) { query: function (val, setState) {
// sendAdminDecree('ENFORCE_MFA', [val], function (e, response) { // sendAdminDecree('ENFORCE_MFA', [val], function (e, response) {
@ -436,37 +309,37 @@ define([
}); });
const grid = blocks.block([], 'cp-admin-customize-apps-grid'); const grid = blocks.block([], 'cp-admin-customize-apps-grid');
const allApps = [restrict, forceMFA]; const options = [restrict, forceMFA];
allApps.forEach(app => { options.forEach(app => {
let appBlock = h('div.cp-bloop', {style: 'width:50%;height:20px;float:left'}, {class: 'inactive-app', id: `${app}-block`}, app) let optionBlock = h('div.cp-appblock', {class: 'inactive-app', id: `${app}-block`}, app);
$(grid).append(appBlock); $(grid).append(optionBlock);
}); });
var save = blocks.activeButton('primary', '', Messages.settings_save, function () {
var save = blocks.activeButton('primary', '', Messages.settings_save, function (done) {
document.location.href = '/drive/'; document.location.href = '/drive/';
return; return;
}) });
var prev = blocks.activeButton('primary', '', Messages.settings_prev, function (done) { var prev = blocks.activeButton('primary', '', Messages.settings_prev, function () {
displayForm(sendAdminDecree, 0);
});
displayForm(sendAdminDecree, 2) var screenTitle = h('div.cp-onboardscreen-screentitle');
}) $(screenTitle).append(h('div.cp-onboardscreen-maintitle', h('span.cp-onboardscreen-title', Messages.admin_onboardingRegistrationTitle), h('br'), h('span', Messages.admin_onboardingRegistrationHint)));
var nav = blocks.nav([prev, save]);
var screenTitleDiv = h('div.cp-onboardscreen-screentitle') $(nav).addClass('cp-onboardscreen-save');
$(screenTitleDiv).append(h('div.cp-onboardscreen-maintitle', h('span.cp-onboardscreen-title', Messages.admin_onboardingRegistrationTitle), h('br'), h('span', Messages.admin_onboardingRegistrationHint)))
var form = blocks.form([ var form = blocks.form([
screenTitleDiv, screenTitle,
grid], grid],
[prev, save]) );
$(form).addClass('cp-onboardscreen-form') $(form).addClass('cp-onboardscreen-form');
return form return form;
} };
AppConfigScreen.appConfig = function (sendAdminDecree) { AppConfigScreen.appConfig = function (sendAdminDecree) {
@ -474,20 +347,18 @@ define([
const blocks = Sidebar.blocks; const blocks = Sidebar.blocks;
const grid = blocks.block([], 'cp-admin-customize-apps-grid'); const grid = blocks.block([], 'cp-admin-customize-apps-grid');
const allApps = ['pad', 'code', 'kanban', 'slide', 'sheet', 'form', 'whiteboard', 'diagram']; const allApps = ['pad', 'code', 'kanban', 'slide', 'sheet', 'form', 'whiteboard', 'diagram'];
const availableApps = [] const availableApps = [];
function select(app, appBlock) { function select(app, appBlock) {
if (availableApps.indexOf(app) === -1) { if (availableApps.indexOf(app) === -1) {
availableApps.push(app); availableApps.push(app);
console.log(appBlock) var checkMark = h('div.cp-onboardscreen-checkmark', "V", {style:'color:white'});
console.log(appBlock.innerHTML) appBlock.append(checkMark);
var checkMark = h('div.cp-onboardscreen-checkmark', "V", {style:'color:white'})
appBlock.append(checkMark)
$(`#${app}-block`).attr('class', 'active-app') $(`#${app}-block`).attr('class', 'active-app')
} else { } else {
availableApps.splice(availableApps.indexOf(app), 1) availableApps.splice(availableApps.indexOf(app), 1);
$(`#${app}-block`).attr('class', 'inactive-app') $(`#${app}-block`).attr('class', 'inactive-app');
appBlock.remove('.cp-onboardscreen-checkmark') appBlock.remove('.cp-onboardscreen-checkmark');
} }
} }
@ -495,10 +366,9 @@ define([
let appBlock = h('div.cp-bloop', {style: 'width:50%;height:20px;'}, {class: 'inactive-app', id: `${app}-block`}, app.charAt(0).toUpperCase() + app.slice(1)) let appBlock = h('div.cp-bloop', {style: 'width:50%;height:20px;'}, {class: 'inactive-app', id: `${app}-block`}, app.charAt(0).toUpperCase() + app.slice(1))
$(appBlock).addClass('cp-app-drive-element-grid') $(appBlock).addClass('cp-app-drive-element-grid')
$(appBlock).addClass('cp-app-drive-element-row') $(appBlock).addClass('cp-app-drive-element-row')
$(appBlock).addClass('cp-app-drive-new-doc')
$(grid).append(appBlock); $(grid).append(appBlock);
$(appBlock).on('click', () => select(app, $(appBlock))) $(appBlock).on('click', () => select(app, $(appBlock)));
}); });
var save = blocks.activeButton('primary', '', Messages.settings_save, function (done) { var save = blocks.activeButton('primary', '', Messages.settings_save, function (done) {
@ -519,27 +389,27 @@ define([
UI.log(Messages.saved); UI.log(Messages.saved);
displayForm(sendAdminDecree, 1) displayForm(sendAdminDecree, 1)
}); });
Messages.settings_prev = 'Back'
var prev = blocks.activeButton('primary', '', Messages.settings_prev, function (done) {
displayForm(sendAdminDecree, 2) var prev = blocks.activeButton('primary', '', Messages.form_backButton, function () {
}) displayForm(sendAdminDecree, 2);
});
var screenTitleDiv = h('div.cp-onboardscreen-screentitle') var screenTitle = h('div.cp-onboardscreen-screentitle');
$(screenTitleDiv).append(h('div.cp-onboardscreen-maintitle', h('span.cp-onboardscreen-title', Messages.admin_onboardingAppsTitle), h('br'), h('span', Messages.admin_onboardingAppsHint))) $(screenTitle).append(h('div.cp-onboardscreen-maintitle', h('span.cp-onboardscreen-title', Messages.admin_onboardingAppsTitle), h('br'), h('span', Messages.admin_onboardingAppsHint)))
var nav = blocks.nav([prev, save]);
$(nav).addClass('cp-onboardscreen-save');
let form = blocks.form([ let form = blocks.form([
screenTitleDiv, screenTitle,
grid grid
], blocks.nav([prev, save])); ], nav);
$(form).addClass('cp-onboardscreen-form') $(form).addClass('cp-onboardscreen-form');
return form return form;
} }
return AppConfigScreen return AppConfigScreen;
}); });

View file

@ -0,0 +1,3 @@

View file

@ -19,7 +19,9 @@ define([
'appconfigscreen.js', 'appconfigscreen.js',
'/common/inner/sidebar-layout.js', '/common/inner/sidebar-layout.js',
'css!/install/configscreen.css', // 'css!/install/configscreen.css',
'less!/install/onboarding.less',
'css!/components/components-font-awesome/css/font-awesome.min.css', 'css!/components/components-font-awesome/css/font-awesome.min.css',
], function ($, Login, Cryptpad, /*Test,*/ Cred, UI, Util, Realtime, Constants, Feedback, LocalStore, h, Pages, Rpc, AppConfigScreen, Sidebar) { ], function ($, Login, Cryptpad, /*Test,*/ Cred, UI, Util, Realtime, Constants, Feedback, LocalStore, h, Pages, Rpc, AppConfigScreen, Sidebar) {
if (window.top !== window) { return; } if (window.top !== window) { return; }
@ -59,19 +61,15 @@ define([
} }
} }
var showTitleScreen = function (sendAdminDecree, sendAdminRpc) { var showTitleScreen = function (sendAdminDecree, sendAdminRpc) {
var titleScreen = AppConfigScreen.titleConfig var titleScreen = AppConfigScreen.titleConfig;
var form = titleScreen(sendAdminDecree, sendAdminRpc) var form = titleScreen(sendAdminDecree, sendAdminRpc);
var elem = document.createElement('div'); var elem = document.createElement('div');
elem.setAttribute('id', 'cp-loading'); elem.setAttribute('id', 'cp-loading');
let frame = h('div.configscreen', form) let frame = h('div.configscreen', form);
elem.append(frame) elem.append(frame);
built = true;
var intr; var intr;
var append = function () { var append = function () {
if (!document.body) { return; } if (!document.body) { return; }
@ -81,13 +79,10 @@ define([
intr = setInterval(append, 100); intr = setInterval(append, 100);
append(); append();
} };
var registerClick = function () { var registerClick = function () {
showTitleScreen() showTitleScreen()
// // document.location.href = '/drive/';
// var uname = $uname.val().trim(); // var uname = $uname.val().trim();
// // trim whitespace surrounding the username since it is otherwise included in key derivation // // trim whitespace surrounding the username since it is otherwise included in key derivation

183
www/install/onboarding.less Normal file
View file

@ -0,0 +1,183 @@
@import (reference) "../../customize/src/less2/include/browser.less";
@import (reference) "../../customize/src/less2/include/framework.less";
@import (reference) "../../customize/src/less2/include/tools.less";
@import (reference) "../../customize/src/less2/include/markdown.less";
@import (reference) "../../customize/src/less2/include/avatar.less";
@cp_palette:
#FFD4D4,
#FFDECA,
#FFE69C,
#DBFFB7,
#AFFDC2,
#C9FFFE,
#C8D6FF,
#E4CAFF;
.cp_palette(@cp_palette; @index) when (@index > 0){
// loop through the @colors
.cp_palette(@cp_palette; (@index - 1));
@color: extract(@cp_palette, @index);
// make a numbered class selector for each color
.cp-kanban-palette-color@{index}{
background-color: @color !important;
&.cp-kanban-palette-board {
background-color: @color !important;
}
&.kanban-board-inner {
background-color: fade(@color, 50%) !important;
}
}
}
// .kanban-colors(@kanban-colors; @index) when (@index > 0){
// // loop through the @colors
// .kanban-colors(@kanban-colors; (@index - 1));
// @color: extract(@kanban-colors, @index);
// // make a numbered class selector for each color
// .cp-kanban-palette-color@{index}{
// background-color: @color !important;
// &.cp-kanban-palette-board {
// background-color: @color !important;
// }
// &.kanban-board-inner {
// background-color: fade(@color, 50%) !important;
// }
// }
// }
.configscreen {
width: 70%;
height: 75%;
background-color: #424242 !important;
}
.cp-onboardscreen-name {
width:70%;
float:right;
padding:10px
}
.cp-onboardscreen-logo {
width:20%;
height:30%;
float:left;
margin-left:10px;
}
.cp-onboardscreen-desc {
width:67% !important;
float:right !important;
padding:20px !important;
margin-right:10px !important;
}
.cp-kanban-palette {
width:30px;
height:30px;
display: inline-block;
border-radius: 50%;
text-align: center;
line-height: 30px;
background-color: green !important;
}
.cp-onboardscreen-screentitle {
margin:auto;
padding:10px;
text-align:center;
}
.cp-onboardscreen-title {
font-family: "IBM Plex Mono";
font-weight: 500;
}
.cp-admin-customize-apps-grid {
width: 80%;
color: white;
height: 10px !important;
margin:auto;
}
.cp-onboardscreen-save {
right:0;
bottom:0;
padding-left:90%;
margin-top:5%;
}
.cp-app-drive-element-grid {
display: inline-block !important;
height: 60px !important;
}
.cp-appblock {
width:60% !important;
float:left !important;
padding: 5% !important;
background-color: #212121!important;
border-color:white;
height:20px;
}
.active-app {
background-color: #212121!important;
}
.cp-onboardscreen-checkmark {
text-align:right !important;
color: white !important;
}
.cp-onboardscreen-save {
margin-right: -2px !important;
margin-top: 5%;
right:0 !important;
bottom:0 !important;
}
.cp-form-setting-title {
float:center;
padding:10px;
color: #fff;
}
.cp-onboardscreen-maintitle {
float:center;
padding:10px;
}
.cp-onboardscreen-form {
padding:10px;
}
.cp-kanban-palette {
display: inline-block;
border-radius: 50%;
height: 30px !important;
width: 30px !important;
text-align: center;
line-height: 30px;
/* color: @cp_kanban-fg;
border: 1px solid fade(@cp_kanban-fg, 40%);
&.fa-check { // tick on selected color
color: @cryptpad_text_col;
} */
}
.cp-onboardscreen-color {
width:200%;
height:20%;
margin-top: 30%;
margin-left: -65%;
/* position:absolute;
right:0;
bottom:0; */
/* margin-right:17%;
margin-bottom:10% */
}

View file

@ -384,6 +384,7 @@ define([
if (offline) { return; } if (offline) { return; }
if (color === selectedColor) { return; } if (color === selectedColor) { return; }
selectedColor = color; selectedColor = color;
console.log('clodlo', selectedColor)
$colors.find('.cp-kanban-palette').removeClass('fa-check'); $colors.find('.cp-kanban-palette').removeClass('fa-check');
var $col = $colors.find('.cp-kanban-palette-'+(color || 'nocolor')); var $col = $colors.find('.cp-kanban-palette-'+(color || 'nocolor'));
$col.addClass('fa-check'); $col.addClass('fa-check');

View file

@ -75,7 +75,6 @@ define([
// Service worker // Service worker
if ('serviceWorker' in navigator) { if ('serviceWorker' in navigator) {
console.log('here');
var initializing = true; var initializing = true;
var worker; var worker;
var postMessage = function (data) { var postMessage = function (data) {

View file

@ -37,7 +37,6 @@ onconnect = function(e) {
console.log(e); console.log(e);
console.log(i); console.log(i);
var port = e.ports[0]; var port = e.ports[0];
console.log('here');
//require([ //require([
// '/common/outer/async-store.js' // '/common/outer/async-store.js'
//], function (Store) { //], function (Store) {