Merge branch 'soon'
commit
5762246ec9
@ -0,0 +1,91 @@
|
||||
@import (reference) "./colortheme-all.less";
|
||||
@import (reference) "./avatar.less";
|
||||
@import (reference) "./tools.less";
|
||||
|
||||
.usergrid_main() {
|
||||
--LessLoader_require: LessLoader_currentFile();
|
||||
};
|
||||
& {
|
||||
.cp-usergrid-container {
|
||||
.cp-usergrid-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
&.cp-usergrid-empty {
|
||||
.cp-usergrid-grid, .cp-usergrid-filter {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.cp-usergrid-filter {
|
||||
display: flex;
|
||||
input {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
margin-bottom: 0 !important;
|
||||
&::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
|
||||
color: @colortheme_alertify-primary-text;
|
||||
opacity: 1; /* Firefox */
|
||||
}
|
||||
}
|
||||
margin-bottom: 15px;
|
||||
&:empty {
|
||||
margin: 0;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.cp-usergrid-user {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 5px;
|
||||
margin-bottom: 6px;
|
||||
margin-right: 6px;
|
||||
cursor: default;
|
||||
transition: order 0.5s, background-color 0.5s;
|
||||
margin-top: 1px;
|
||||
.tools_unselectable();
|
||||
|
||||
&:nth-child(6n) {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
&.cp-selected {
|
||||
background-color: @colortheme_alertify-primary;
|
||||
color: @colortheme_alertify-primary-text;
|
||||
order: -1 !important;
|
||||
}
|
||||
.cp-usergrid-user-avatar {
|
||||
min-height: 40px;
|
||||
}
|
||||
.cp-usergrid-user-name {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
line-height: 18px;
|
||||
}
|
||||
border: 1px solid @colortheme_alertify-primary;
|
||||
|
||||
&:not(.large) {
|
||||
.avatar_main(40px);
|
||||
}
|
||||
&.large {
|
||||
.avatar_main(25px);
|
||||
width: 140px;
|
||||
height: 35px;
|
||||
flex-flow: row;
|
||||
margin-right: 15px;
|
||||
margin-bottom: 1px;
|
||||
&:nth-child(3n) {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,95 @@
|
||||
(function () {
|
||||
var factory = function (Util, Cred, nThen) {
|
||||
nThen = nThen; // XXX
|
||||
var Invite = {};
|
||||
|
||||
/*
|
||||
TODO key derivation
|
||||
|
||||
scrypt(seed, passwd) => {
|
||||
curve: {
|
||||
private,
|
||||
public,
|
||||
},
|
||||
ed: {
|
||||
private,
|
||||
public,
|
||||
}
|
||||
cryptKey,
|
||||
channel
|
||||
}
|
||||
*/
|
||||
|
||||
var BYTES_REQUIRED = 256;
|
||||
|
||||
Invite.deriveKeys = function (seed, passwd, cb) {
|
||||
cb = cb; // XXX
|
||||
// TODO validate has cb
|
||||
// TODO onceAsync the cb
|
||||
// TODO cb with err if !(seed && passwd)
|
||||
|
||||
Cred.deriveFromPassphrase(seed, passwd, BYTES_REQUIRED, function (bytes) {
|
||||
var dispense = Cred.dispenser(bytes);
|
||||
dispense = dispense; // XXX
|
||||
|
||||
// edPriv => edPub
|
||||
// curvePriv => curvePub
|
||||
// channel
|
||||
// cryptKey
|
||||
});
|
||||
};
|
||||
|
||||
Invite.createSeed = function () {
|
||||
// XXX
|
||||
// return a seed
|
||||
};
|
||||
|
||||
Invite.create = function (cb) {
|
||||
cb = cb; // XXX
|
||||
// TODO validate has cb
|
||||
// TODO onceAsync the cb
|
||||
// TODO cb with err if !(seed && passwd)
|
||||
|
||||
|
||||
|
||||
// required
|
||||
// password
|
||||
// validateKey
|
||||
// creatorEdPublic
|
||||
// for owner
|
||||
// ephemeral
|
||||
// signingKey
|
||||
// for owner to write invitation
|
||||
// derived
|
||||
// edPriv
|
||||
// edPublic
|
||||
// for invitee ownership
|
||||
// curvePriv
|
||||
// curvePub
|
||||
// for acceptance OR
|
||||
// authenticated decline message via mailbox
|
||||
// channel
|
||||
// for owned deletion
|
||||
// for team pinning
|
||||
// cryptKey
|
||||
// for protecting channel content
|
||||
};
|
||||
|
||||
return Invite;
|
||||
};
|
||||
if (typeof(module) !== 'undefined' && module.exports) {
|
||||
module.exports = factory(
|
||||
require("../common-util"),
|
||||
require("../common-credential.js"),
|
||||
require("nthen")
|
||||
);
|
||||
} else if ((typeof(define) !== 'undefined' && define !== null) && (define.amd !== null)) {
|
||||
define([
|
||||
'/common/common-util.js',
|
||||
'/common/common-credential.js',
|
||||
'/bower_components/nthen/index.js',
|
||||
], function (Util, Cred, nThen) {
|
||||
return factory(Util, nThen);
|
||||
});
|
||||
}
|
||||
}());
|
@ -1,87 +0,0 @@
|
||||
@import (reference) '../../customize/src/less2/include/framework.less';
|
||||
@import (reference) '../../customize/src/less2/include/drive.less';
|
||||
@import (reference) '../../customize/src/less2/include/messenger.less';
|
||||
@import (reference) '../../customize/src/less2/include/sidebar-layout.less';
|
||||
@import (reference) "../../customize/src/less2/include/tools.less";
|
||||
|
||||
|
||||
&.cp-app-team {
|
||||
.framework_min_main(
|
||||
@bg-color: @colortheme_team-bg,
|
||||
@warn-color: @colortheme_team-warn,
|
||||
@color: @colortheme_team-color
|
||||
);
|
||||
|
||||
.drive_main();
|
||||
.messenger_main();
|
||||
.sidebar-layout_main();
|
||||
|
||||
@roster-bg-color: #efefef;
|
||||
|
||||
#cp-sidebarlayout-container {
|
||||
div#cp-sidebarlayout-rightside.cp-rightside-drive {
|
||||
padding: 0;
|
||||
& > .cp-team-chat {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
.cp-app-contacts-container {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
& > .cp-team-drive {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
.cp-app-drive-container {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.cp-team-list-avatar {
|
||||
.avatar_main(30px);
|
||||
}
|
||||
.cp-team-avatar {
|
||||
.avatar_main(300px);
|
||||
}
|
||||
.cp-team-roster {
|
||||
.avatar_main(50px);
|
||||
.cp-team-roster-member {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 5px;
|
||||
padding: 2px;
|
||||
max-width: 500px;
|
||||
background-color: @roster-bg-color;
|
||||
&:hover {
|
||||
background-color: darken(@roster-bg-color, 5%);
|
||||
}
|
||||
.cp-avatar {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.cp-team-member-name {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
.tools_unselectable();
|
||||
}
|
||||
.cp-team-member-actions {
|
||||
.fa {
|
||||
height: 25px;
|
||||
width: 25px;
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
&:hover {
|
||||
background-color: darken(@roster-bg-color, 10%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue