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 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 reason = args.reason;
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 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 reason = args.reason;
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) => {
const args = Array.isArray(data) && data[1];
if (!args || typeof(args) !== 'object') { return void cb("EINVAL"); }
let color = args.color;
let color = args.color || args.selectedColor;
adminDecree(Env, null, function (err) {
if (err) { return void cb(err); }
Env.flushCache();
@ -1107,7 +1109,8 @@ Admin.addFirstAdmin = function (Env, data, cb) {
if (!Env.installToken) { return void cb('EINVAL'); }
var token = data.token;
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 (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) {
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]));
};
var args_isInteger = function (args) {
@ -237,6 +241,7 @@ commands.DISABLE_APPS = function (Env, args) {
};
commands.CHANGE_COLOR = function (Env, args) {
console.log('change color')
var color = args
adminDecree(Env, null, function (err) {
if (err) { return void cb(err); }
@ -310,19 +315,21 @@ commands.SET_SUPPORT_KEYS = function (Env, args) {
(Core.isValidPublicKey(curvePublic) || !curvePublic) &&
typeof(edPublic) === "string" &&
(Core.isValidPublicKey(edPublic) || !edPublic);
if (!validated) { throw new Error('INVALID_ARGS'); }
if (Env.supportMailboxKey === curvePublic && Env.supportPinKey === edPublic) { return false; }
Env.supportMailboxKey = curvePublic;
Env.supportPinKey = edPublic;
return true;
};
if (!validated) {
throw new Error('INVALID_ARGS'); }
if (Env.supportMailboxKey === curvePublic && Env.supportPinKey === edPublic) { return false; }
Env.supportMailboxKey = curvePublic;
Env.supportPinKey = edPublic;
return true;
};
// CryptPad_AsyncStore.rpc.send('ADMIN', [ 'ADMIN_DECREE', ['SET_INSTANCE_PURPOSE', ["development"]]], console.log)
commands.SET_INSTANCE_PURPOSE = makeGenericSetter('instancePurpose', args_isString);
var makeTranslation = function (attr) {
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 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
var makeBroadcastSetter = function (attr, validation) {
return function (Env, args) {
if ((validation && !validation(args)) && !args_isString(args)) {
if ((validation && !validation(args)) && !args_isString(args)) {
throw new Error('INVALID_ARGS');
}
var str = args[0];

View file

@ -370,7 +370,8 @@ commands.ADD_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') {
return false;
}

View file

@ -127,7 +127,7 @@ var exists = function (path, cb) {
var checkPath = function (Env, publicKey, pathFunction, _cb) {
var cb = Util.once(Util.mkAsync(_cb));
if (!isValidKey(publicKey)) { return void cb("INVALID_ARGS"); }
if (!isValidKey(publicKey)) { return void cb("INVALID_ARGS"); }
var path = pathFunction(Env, publicKey);
exists(path, cb);
};

View file

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

View file

@ -205,7 +205,8 @@ var factory = function (Util, Hash, CPNetflux, Sortify, nThen, Crypto, Feedback)
};
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') {
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
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"); }
@ -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 user can exploit their possession of the public key to remove
// 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 (typeof(roster.state.members) === 'undefined') {
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"); }
// 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
if (!isValidId(args)) { throw new Error("INVALID_CURVE_KEY"); }

View file

@ -10,8 +10,9 @@ define([
'/common/hyperscript.js',
'css!/components/bootstrap/dist/css/bootstrap.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(
$,
Sidebar,
@ -19,40 +20,30 @@ define([
h,
UI,
Util,
Instance
) {
//XXX
Messages.admin_onboardingNameTitle = 'Welcome to your CryptPad instance'
Messages.admin_onboardingNameHint = 'Please choose a title and description'
Messages.admin_onboardingAppsTitle = "Choose your applications"
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_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"
Messages.admin_onboardingNameTitle = 'Welcome to your CryptPad instance';
Messages.admin_onboardingNameHint = 'Please choose a title and description';
Messages.admin_onboardingAppsTitle = "Choose your applications";
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_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 = {};
const blocks = Sidebar.blocks;
var displayForm = function(sendAdminDecree, page) {
var pages = [AppConfigScreen.appConfig, AppConfigScreen.mfaRegistrationScreen, AppConfigScreen.titleConfig]
var nextPageFunction = pages[page]
console.log('here', typeof nextPageFunction)
var nextPageForm = nextPageFunction(sendAdminDecree)
var pages = [AppConfigScreen.appConfig, AppConfigScreen.mfaRegistrationScreen, AppConfigScreen.titleConfig];
var nextPageFunction = pages[page];
var nextPageForm = nextPageFunction(sendAdminDecree);
var elem = document.createElement('div');
elem.setAttribute('id', 'cp-loading');
let frame = h('div.configscreen', nextPageForm)
elem.append(frame)
built = true;
let frame = h('div.configscreen', nextPageForm);
elem.append(frame);
var intr;
var append = function () {
if (!document.body) { return; }
@ -62,7 +53,7 @@ define([
intr = setInterval(append, 100);
append();
}
};
AppConfigScreen.titleConfig = function (sendAdminDecree, sendAdminRpc) {
@ -76,14 +67,17 @@ define([
placeholder: 'Instance title',
'aria-labelledby': 'cp-admin-name'
});
var textarea = blocks.textarea({
var desc = blocks.textarea({
placeholder: 'Placeholder description text',
value: '',
'aria-labelledby': 'cp-admin-description'
});
return [input, textarea]
}
$(desc).addClass('cp-onboardscreen-desc');
return [input, desc];
};
var logoBlock = function() {
@ -96,6 +90,7 @@ define([
var currentContainer = blocks.block([], 'cp-admin-customize-logo');
let redraw = () => {
var current = h('img', {src: '/api/logo?'+(+new Date())});
$(current).css({'max-width':'30px'});
$(currentContainer).empty().append(current);
};
redraw();
@ -125,7 +120,6 @@ define([
let reader = new FileReader();
reader.onloadend = function () {
let dataURL = this.result;
console.log(dataURL, 'dataulr')
sendAdminRpc('UPLOAD_LOGO', {dataURL}, function (e, response) {
$button.removeAttr('disabled');
if (e || response.error) {
@ -140,7 +134,7 @@ define([
redraw();
spinner.done();
UI.log(Messages.saved);
})
});
};
reader.readAsDataURL(files[0]);
@ -152,7 +146,7 @@ define([
spinner.spin();
$remove.attr('disabled', 'disabled');
sendAdminDecree('REMOVE_LOGO', {}, function (e, response) {
sendAdminRpc('REMOVE_LOGO', {dataURL}, function (e, response) {
$remove.removeAttr('disabled');
if (err) {
UI.warn(Messages.error);
@ -166,159 +160,51 @@ define([
});
});
return formLogo
return formLogo;
}
};
var colorBlock = function () {
// let input = blocks.input({
// 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);
var colors;
var content = h('div', [
h('label', {for:'cp-kanban-edit-color'}, Messages.kanban_color),
colors = h('div#cp-kanban-edit-colors'),
], {style: 'padding-left:50%'});
// 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', [
// 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),
colors = h('div#cp-kanban-edit-colors'),
]);
var $colors = $(colors);
var palette = [''];
for (var i=1; i<=8; i++) { palette.push('color'+i); }
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');
// }
var $colors = $(colors);
var palette = [''];
for (var i=1; i<=8; i++) { palette.push('color'+i); }
var selectedColor = '';
palette.forEach(function (color) {
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.click(function () {
if (color === selectedColor) { return; }
selectedColor = $color.css('background-color');
$colors.find('.cp-kanban-palette').removeClass('fa-check');
var $col = $colors.find('.cp-kanban-palette-'+(color || 'nocolor'));
$col.addClass('fa-check');
sendAdminRpc('CHANGE_COLOR', {selectedColor}, function (e, response) {
if (e || response.error) {
UI.warn(Messages.error);
console.error(e, response);
// done(false);
return;
}
// flushCache();
// done(true);
// redraw();
// spinner.done();
UI.log(Messages.saved);
});
}).appendTo($colors);
});
return content;
};
palette.forEach(function (color) {
var $color = $(h('span.cp-kanban-palette.fa'));
$color.addClass('cp-kanban-palette-'+(color || 'nocolor'));
$color.click(function () {
if (offline) { return; }
if (color === selectedColor) { return; }
selectedColor = color;
$colors.find('.cp-kanban-palette').removeClass('fa-check');
var $col = $colors.find('.cp-kanban-palette-'+(color || 'nocolor'));
$col.addClass('fa-check');
dataObject.color = color;
commit();
}).appendTo($colors);
});
var color = {
getValue: function () {
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) {
@ -349,52 +235,39 @@ define([
// })
// 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)
displayForm(sendAdminDecree, 0);
});
var titleInput = h('div.cp-onboardscreen-name', titleDescBlock()[0])
var logoInput = h('div.cp-onboardscreen-logo', logoBlock(), {style:'width:20%;height:20%'})
var descriptionInput = h('div.cp-onboardscreen-description', 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 colorInputLabel = h('div', colorBlock()[0], {style:'width:20%;height:20%'})
// var colorInputLabel2 = h('div', colorBlock()[1], {style:'width:20%;height:20%'})
var titleInput = h('div.cp-onboardscreen-name', titleDescBlock()[0]);
var logoInput = h('div.cp-onboardscreen-logo', logoBlock());
var desc = h('div', titleDescBlock()[1]);
var colorInput = h('div.cp-onboardscreen-color', colorBlock());
var screenTitleDiv = 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)))
var screenTitle = h('div.cp-onboardscreen-screentitle');
$(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]);
$(nav).addClass('cp-onboardscreen-save');
var form = blocks.form([
screenTitleDiv,
titleInput, descriptionInput,
screenTitle,
titleInput,
desc,
logoInput,
colorInput,
], 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) {
var restrict = blocks.activeCheckbox({
key: 'registration',
getState: function () {
return false
return false;
},
query: function (val, setState) {
sendAdminDecree('RESTRICT_REGISTRATION', [val], function (e, response) {
@ -409,14 +282,14 @@ define([
// // done(true);
// UI.log(Messages.saved);
})
});
},
});
var forceMFA = blocks.activeCheckbox({
key: 'forcemfa',
getState: function () {
return false
return false;
},
query: function (val, setState) {
// sendAdminDecree('ENFORCE_MFA', [val], function (e, response) {
@ -436,37 +309,37 @@ define([
});
const grid = blocks.block([], 'cp-admin-customize-apps-grid');
const allApps = [restrict, forceMFA];
const options = [restrict, forceMFA];
allApps.forEach(app => {
let appBlock = h('div.cp-bloop', {style: 'width:50%;height:20px;float:left'}, {class: 'inactive-app', id: `${app}-block`}, app)
$(grid).append(appBlock);
options.forEach(app => {
let optionBlock = h('div.cp-appblock', {class: 'inactive-app', id: `${app}-block`}, app);
$(grid).append(optionBlock);
});
var save = blocks.activeButton('primary', '', Messages.settings_save, function (done) {
var save = blocks.activeButton('primary', '', Messages.settings_save, function () {
document.location.href = '/drive/';
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 screenTitleDiv = h('div.cp-onboardscreen-screentitle')
$(screenTitleDiv).append(h('div.cp-onboardscreen-maintitle', h('span.cp-onboardscreen-title', Messages.admin_onboardingRegistrationTitle), h('br'), h('span', Messages.admin_onboardingRegistrationHint)))
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]);
$(nav).addClass('cp-onboardscreen-save');
var form = blocks.form([
screenTitleDiv,
grid],
[prev, save])
screenTitle,
grid],
);
$(form).addClass('cp-onboardscreen-form')
$(form).addClass('cp-onboardscreen-form');
return form
return form;
}
};
AppConfigScreen.appConfig = function (sendAdminDecree) {
@ -474,20 +347,18 @@ define([
const blocks = Sidebar.blocks;
const grid = blocks.block([], 'cp-admin-customize-apps-grid');
const allApps = ['pad', 'code', 'kanban', 'slide', 'sheet', 'form', 'whiteboard', 'diagram'];
const availableApps = []
const availableApps = [];
function select(app, appBlock) {
if (availableApps.indexOf(app) === -1) {
availableApps.push(app);
console.log(appBlock)
console.log(appBlock.innerHTML)
var checkMark = h('div.cp-onboardscreen-checkmark', "V", {style:'color:white'})
appBlock.append(checkMark)
var checkMark = h('div.cp-onboardscreen-checkmark', "V", {style:'color:white'});
appBlock.append(checkMark);
$(`#${app}-block`).attr('class', 'active-app')
} else {
availableApps.splice(availableApps.indexOf(app), 1)
$(`#${app}-block`).attr('class', 'inactive-app')
appBlock.remove('.cp-onboardscreen-checkmark')
availableApps.splice(availableApps.indexOf(app), 1);
$(`#${app}-block`).attr('class', 'inactive-app');
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))
$(appBlock).addClass('cp-app-drive-element-grid')
$(appBlock).addClass('cp-app-drive-element-row')
$(appBlock).addClass('cp-app-drive-new-doc')
$(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) {
@ -519,27 +389,27 @@ define([
UI.log(Messages.saved);
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')
$(screenTitleDiv).append(h('div.cp-onboardscreen-maintitle', h('span.cp-onboardscreen-title', Messages.admin_onboardingAppsTitle), h('br'), h('span', Messages.admin_onboardingAppsHint)))
var screenTitle = h('div.cp-onboardscreen-screentitle');
$(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([
screenTitleDiv,
screenTitle,
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',
'/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',
], function ($, Login, Cryptpad, /*Test,*/ Cred, UI, Util, Realtime, Constants, Feedback, LocalStore, h, Pages, Rpc, AppConfigScreen, Sidebar) {
if (window.top !== window) { return; }
@ -59,19 +61,15 @@ define([
}
}
var showTitleScreen = function (sendAdminDecree, sendAdminRpc) {
var titleScreen = AppConfigScreen.titleConfig
var form = titleScreen(sendAdminDecree, sendAdminRpc)
var titleScreen = AppConfigScreen.titleConfig;
var form = titleScreen(sendAdminDecree, sendAdminRpc);
var elem = document.createElement('div');
elem.setAttribute('id', 'cp-loading');
let frame = h('div.configscreen', form)
elem.append(frame)
built = true;
let frame = h('div.configscreen', form);
elem.append(frame);
var intr;
var append = function () {
if (!document.body) { return; }
@ -81,13 +79,10 @@ define([
intr = setInterval(append, 100);
append();
}
};
var registerClick = function () {
showTitleScreen()
// // document.location.href = '/drive/';
// var uname = $uname.val().trim();
// // 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 (color === selectedColor) { return; }
selectedColor = color;
console.log('clodlo', selectedColor)
$colors.find('.cp-kanban-palette').removeClass('fa-check');
var $col = $colors.find('.cp-kanban-palette-'+(color || 'nocolor'));
$col.addClass('fa-check');

View file

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

View file

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