diff --git a/customize.dist/messages.js b/customize.dist/messages.js
index 7e84dd01d..588b259b0 100644
--- a/customize.dist/messages.js
+++ b/customize.dist/messages.js
@@ -93,7 +93,7 @@ define(req, function(Util, Default, Language) {
var text = messages[key];
if (typeof(text) === 'string') {
return text.replace(/\{(\d+)\}/g, function (str, p1) {
- return argArray[p1] || null;
+ return typeof(argArray[p1]) === 'string' ? argArray[p1] : '';
});
} else {
return text;
diff --git a/customize.dist/src/less2/include/alertify.less b/customize.dist/src/less2/include/alertify.less
index 63751fed2..ed0f1baf9 100644
--- a/customize.dist/src/less2/include/alertify.less
+++ b/customize.dist/src/less2/include/alertify.less
@@ -1,6 +1,6 @@
@import (once) "./colortheme-all.less";
@import (once) "./browser.less";
-@import (once) "./modal-theme.less";
+@import (once) "./variables.less";
.alertify_main () {
@max-z-index: 2147483647;
@@ -21,8 +21,8 @@
@alertify-input-bg: @colortheme_modal-input;
@alertify-input-fg: @colortheme_modal-fg;
- @alertify_padding-base: @modal_padding;
- @alertify_box-shadow: @modal_shadow;
+ @alertify_padding-base: @variables_padding;
+ @alertify_box-shadow: @variables_shadow;
// Logs to show that something has happened
// These show only once
diff --git a/customize.dist/src/less2/include/colortheme.less b/customize.dist/src/less2/include/colortheme.less
index 8cebdaf20..42cbb26b0 100644
--- a/customize.dist/src/less2/include/colortheme.less
+++ b/customize.dist/src/less2/include/colortheme.less
@@ -37,7 +37,7 @@
@colortheme_dropdown-bg-hover: #f1f1f1;
@colortheme_dropdown-bg-active: #e8e8e8;
-// Apps
+// Apps, these colors are used for customizing the toolbar for the apps.
@colortheme_pad-bg: #1c4fa0;
@colortheme_pad-color: #fff;
diff --git a/customize.dist/src/less2/include/modal-theme.less b/customize.dist/src/less2/include/modal-theme.less
deleted file mode 100644
index 1ed183d2d..000000000
--- a/customize.dist/src/less2/include/modal-theme.less
+++ /dev/null
@@ -1,4 +0,0 @@
-// Used in modal.less and alertify.less
-@modal_padding: 12px;
-@modal_shadow: 0 8px 32px 0 rgba(0,0,0,.4);
-
diff --git a/customize.dist/src/less2/include/modal.less b/customize.dist/src/less2/include/modal.less
index 070660291..3bd674527 100644
--- a/customize.dist/src/less2/include/modal.less
+++ b/customize.dist/src/less2/include/modal.less
@@ -1,12 +1,12 @@
@import (once) "./colortheme-all.less";
-@import (once) "./modal-theme.less";
+@import (once) "./variables.less";
.modal_base() {
font-family: @colortheme_font;
background-color: @colortheme_modal-bg;
color: @colortheme_modal-fg;
- box-shadow: @modal_shadow;
+ box-shadow: @variables_shadow;
a {
color: @colortheme_modal-link;
@@ -31,9 +31,9 @@
.cp-modal {
background-color: @colortheme_modal-bg;
color: @colortheme_modal-fg;
- box-shadow: @modal_shadow;
+ box-shadow: @variables_shadow;
- padding: @modal_padding;
+ padding: @variables_padding;
position: absolute;
top: 15vh; bottom: 15vh;
@@ -71,7 +71,7 @@
position: absolute;
top: 0;
right: 0;
- margin: @modal_padding;
+ margin: @variables_padding;
cursor: pointer;
}
}
diff --git a/customize.dist/src/less2/include/toolbar.less b/customize.dist/src/less2/include/toolbar.less
index 37d294c3b..e97e5c7a7 100644
--- a/customize.dist/src/less2/include/toolbar.less
+++ b/customize.dist/src/less2/include/toolbar.less
@@ -7,9 +7,12 @@
@import (once) "./icon-colors.less";
@import (once) "./tools.less";
-@_cp-toolbar-color-warn: black;
-
-.toolbar_main () {
+.toolbar_main (
+ @color: @colortheme_default-color, // Color of the text for the toolbar
+ @bg-color: @colortheme_default-bg, // color of the toolbar background
+ @warn-color: @colortheme_default-warn, // color of the warning text in the toolbar
+ @barWidth: 600px // width of the toolbar
+) {
@toolbar_line-height: 32px;
@toolbar_top-height: 64px;
@@ -52,7 +55,7 @@
}
.cp-toolbar-userlist-drawer {
- background-color: @colortheme_default-bg;
+ background-color: @bg-color;
font: @colortheme_app-font-size @colortheme_font;
min-width: 175px;
width: 175px;
@@ -170,176 +173,53 @@
}
}
- .addToolbarColors (@color, @bg-color, @barWidth: 600px) {
- .cp-markdown-toolbar {
- height: @toolbar_line-height;
- background-color: lighten(@bg-color, 20%);
- display: none;
- button {
- height: @toolbar_line-height !important;
- outline: 0;
- color: @color;
- .toolbar_button;
- font: normal normal normal 14px/1 FontAwesome;
- &:hover {
- background-color: lighten(@bgcolor, 8%);
- }
- &.cp-markdown-help { float: right; }
+ // TODO(cjd) This ought to be in a less file for markdown-based editors
+ .cp-markdown-toolbar {
+ height: @toolbar_line-height;
+ background-color: lighten(@bg-color, 20%);
+ display: none;
+ button {
+ height: @toolbar_line-height !important;
+ outline: 0;
+ color: @color;
+ .toolbar_button;
+ font: normal normal normal 14px/1 FontAwesome;
+ &:hover {
+ background-color: lighten(@bg-color, 8%);
}
+ &.cp-markdown-help { float: right; }
}
- .cp-toolbar-userlist-drawer {
- background-color: @bgcolor;
+ }
+ .cp-toolbar-userlist-drawer {
+ background-color: @bg-color;
+ color: @color;
+ .cp-toolbar-userlist-drawer-close {
+ color: @color;
+ }
+ h2 {
+ background-color: darken(@bg-color, 10%);
color: @color;
- .cp-toolbar-userlist-drawer-close {
- color: @color;
- }
- h2 {
- background-color: darken(@bgcolor, 10%);
- color: @color;
- }
- .cp-toolbar-userlist-name-input {
- background-color: darken(@bg-color, 10%);
- color: @color;
- }
- .cp-toolbar-userlist-name-edit {
- color: contrast(@color,
- lighten(@color, 20%),
- darken(@color, 20%));
- background: transparent;
- &:hover {
- color: @color;
- }
- }
- .cp-toolbar-userlist-friend {
- &:hover {
- color: darken(@color, 15%);
- }
- }
}
- .cp-toolbar {
- background-color: @bgcolor;
+ .cp-toolbar-userlist-name-input {
+ background-color: darken(@bg-color, 10%);
color: @color;
- .cp-toolbar-spinner {
- font-size: @colortheme_app-font-size;
- color: @color;
- }
- .cp-toolbar-limit {
- text-shadow: -1px 0 @color, 0 1px @color, 1px 0 @color, 0 -1px @color;
- color: @_cp-toolbar-color-warn;
- }
- .cp-toolbar-leftside, .cp-toolbar-rightside {
- background-color: lighten(@bgcolor, 8%);
- button:hover, button.cp-toolbar-button-active {
- background-color: @bgcolor;
- }
- }
- .cp-toolbar-rightside {
- @media screen and (max-width: @barWidth) { // 450px
- flex-wrap: wrap;
- height: auto;
- width: 100%;
- }
- }
- .cp-pad-not-pinned {
- padding-left: 20px;
- font-size: @colortheme_app-font-size;
- color: @_cp-toolbar-color-warn;
- a {
- font-size: @colortheme_app-font-size;
- font-weight: bold;
- color: @_cp-toolbar-color-warn;
- &:hover {
- text-decoration: underline;
- }
- }
- }
- .cp-toolbar-title-hoverable:hover {
- .cp-toolbar-title-editable, .cp-toolbar-title-edit {
- cursor: text;
- border: 1px solid darken(@bgcolor, 15%);
- background: darken(@bgcolor, 10%);
- transition: all 0.15s;
- color: @color;
- }
- .cp-toolbar-title-editable {
- cursor: text;
- }
- }
- .cp-toolbar-title-save {
- border: 1px solid darken(@bgcolor, 15%);
- background: darken(@bgcolor, 10%);
- color: @color;
- &:hover {
- background: darken(@bgcolor, 5%);
- }
- }
- input {
- border: 1px solid darken(@bgcolor, 15%);
- background: darken(@bgcolor, 10%);
+ }
+ .cp-toolbar-userlist-name-edit {
+ color: contrast(@color,
+ lighten(@color, 20%),
+ darken(@color, 20%));
+ background: transparent;
+ &:hover {
color: @color;
}
- .cp-dropdown-content.cp-dropdown-left a {
- color: black;
+ }
+ .cp-toolbar-userlist-friend {
+ &:hover {
+ color: darken(@color, 15%);
}
}
}
- &.cp-app-pad {
- @bgcolor: @colortheme_pad-bg;
- @color: @colortheme_pad-color;
- .addToolbarColors(@color, @bgcolor);
- }
- &.cp-app-code {
- @bgcolor: @colortheme_code-bg;
- @color: @colortheme_code-color;
- .addToolbarColors(@color, @bgcolor);
- }
- &.cp-app-slide {
- @bgcolor: @colortheme_slide-bg;
- @color: @colortheme_slide-color;
- .addToolbarColors(@color, @bgcolor, 700px);
- }
- &.cp-app-poll {
- @bgcolor: @colortheme_poll-bg;
- @color: @colortheme_poll-color;
- .addToolbarColors(@color, @bgcolor);
- }
- &.cp-app-whiteboard {
- @bgcolor: @colortheme_whiteboard-bg;
- @color: @colortheme_whiteboard-color;
- .addToolbarColors(@color, @bgcolor);
- }
- &.cp-app-drive {
- @bgcolor: @colortheme_drive-bg;
- @color: @colortheme_drive-color;
- .addToolbarColors(@color, @bgcolor);
- }
- &.cp-app-file {
- @bgcolor: @colortheme_file-bg;
- @color: @colortheme_file-color;
- .addToolbarColors(@color, @bgcolor);
- }
- &.cp-app-contacts {
- @bgcolor: @colortheme_friends-bg;
- @color: @colortheme_friends-color;
- .addToolbarColors(@color, @bgcolor);
- }
- &.cp-app-settings {
- @bgcolor: @colortheme_settings-bg;
- @color: @colortheme_settings-color;
- .addToolbarColors(@color, @bgcolor);
- }
- &.cp-app-profile {
- @bgcolor: @colortheme_profile-bg;
- @color: @colortheme_profile-color;
- .addToolbarColors(@color, @bgcolor);
- }
- &.cp-app-todo {
- @bgcolor: @colortheme_todo-bg;
- @color: @colortheme_todo-color;
- .addToolbarColors(@color, @bgcolor);
- }
-
.cp-toolbar {
* {
outline-width: 0;
@@ -355,12 +235,8 @@
display: flex;
flex-wrap: wrap;
justify-content: space-between;
-
- //background-color: #BBBBFF;
- background-color: @colortheme_default-bg;
- color: @colortheme_default-color;
-
-
+ background-color: @bg-color;
+ color: @color;
.fa {
font: normal normal normal 14px/1 FontAwesome;
@@ -487,6 +363,56 @@
}
}
}
+
+ .cp-toolbar-spinner {
+ font-size: @colortheme_app-font-size;
+ color: @color;
+ }
+ .cp-toolbar-limit {
+ text-shadow: -1px 0 @color, 0 1px @color, 1px 0 @color, 0 -1px @color;
+ color: @warn-color;
+ }
+ .cp-toolbar-leftside, .cp-toolbar-rightside {
+ background-color: lighten(@bg-color, 8%);
+ button:hover, button.cp-toolbar-button-active {
+ background-color: @bg-color;
+ }
+ }
+ .cp-toolbar-rightside {
+ @media screen and (max-width: @barWidth) { // 450px
+ flex-wrap: wrap;
+ height: auto;
+ width: 100%;
+ }
+ }
+ .cp-toolbar-title-hoverable:hover {
+ .cp-toolbar-title-editable, .cp-toolbar-title-edit {
+ cursor: text;
+ border: 1px solid darken(@bg-color, 15%);
+ background: darken(@bg-color, 10%);
+ transition: all 0.15s;
+ color: @color;
+ }
+ .cp-toolbar-title-editable {
+ cursor: text;
+ }
+ }
+ .cp-toolbar-title-save {
+ border: 1px solid darken(@bg-color, 15%);
+ background: darken(@bg-color, 10%);
+ color: @color;
+ &:hover {
+ background: darken(@bg-color, 5%);
+ }
+ }
+ input {
+ border: 1px solid darken(@bg-color, 15%);
+ background: darken(@bg-color, 10%);
+ color: @color;
+ }
+ .cp-dropdown-content.cp-dropdown-left a {
+ color: black;
+ }
}
.cp-toolbar-top {
@@ -578,6 +504,35 @@
padding: 5px 5px;
height: 40px;
}
+ .cp-pad-not-pinned {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+
+ align-self: right;
+ padding-left: 20px;
+ padding-left: 5px;
+ font-size: @colortheme_app-font-size;
+ color: @warn-color;
+ .cp-pnp-msg {
+ padding-left: 5px;
+ a {
+ font-size: @colortheme_app-font-size;
+ font-weight: bold;
+ color: @warn-color;
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+ @media screen and (max-width: (@browser_media-not-big)) {
+ display: none;
+ }
+ }
+ @media screen and (max-width: (@browser_media-not-big)) {
+ overflow: visible;
+ }
+
+ }
}
.cp-toolbar-link, .cp-toolbar-new {
font-size: 48px;
diff --git a/customize.dist/src/less2/include/variables.less b/customize.dist/src/less2/include/variables.less
index 3aee02492..ba6c642e2 100644
--- a/customize.dist/src/less2/include/variables.less
+++ b/customize.dist/src/less2/include/variables.less
@@ -1,3 +1,9 @@
+// This is a file for generic constants which we didn't want to hardcode everywhere.
+// However, unlike colortheme, customizing these variables will cause breakage.
+
// Elements size
@variables_bar-height: 32px;
+// Used in modal.less and alertify.less
+@variables_padding: 12px;
+@variables_shadow: 0 8px 32px 0 rgba(0,0,0,.4);
diff --git a/customize.dist/translations/messages.js b/customize.dist/translations/messages.js
index 90ce1871e..5e6034d8b 100644
--- a/customize.dist/translations/messages.js
+++ b/customize.dist/translations/messages.js
@@ -31,7 +31,7 @@ define(function () {
out.typeError = "This pad is not compatible with the selected application";
out.onLogout = 'You are logged out, click here to log in
or press Escape to access your pad in read-only mode.';
out.wrongApp = "Unable to display the content of that realtime session in your browser. Please try to reload that page.";
- out.padNotPinned = 'This pad will expire in 3 months, login or register to preserve it.';
+ out.padNotPinned = 'This pad will expire in 3 months, {0}login{1} or {2}register{3} to preserve it.';
out.loading = "Loading...";
out.error = "Error";
diff --git a/www/code/app-code.less b/www/code/app-code.less
index 5025d4b3c..22402a999 100644
--- a/www/code/app-code.less
+++ b/www/code/app-code.less
@@ -5,9 +5,11 @@
@import (once) '../../customize/src/less2/include/alertify.less';
@import (once) '../../customize/src/less2/include/tokenfield.less';
-@_cp-toolbar-color-warn: @colortheme_code-warn;
-
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_code-bg,
+ @warn-color: @colortheme_code-warn,
+ @color: @colortheme_code-color
+);
.fileupload_main();
.alertify_main();
.tokenfield_main();
diff --git a/www/common/toolbar3.js b/www/common/toolbar3.js
index 5bdd8486d..fc06f40f6 100644
--- a/www/common/toolbar3.js
+++ b/www/common/toolbar3.js
@@ -729,11 +729,20 @@ define([
Common.sendAnonRpcMsg('IS_CHANNEL_PINNED', cid, function (x) {
if (x.error || !Array.isArray(x.response)) { return void console.log(x); }
if (x.response[0] === true) { return; }
+ var pnpTitle = Messages._getKey('padNotPinned', ['','','','']);
+ var pnpMsg = Messages._getKey('padNotPinned', [
+ '',
+ '',
+ '',
+ ''
+ ]);
var msg = $('', {
'class': 'cp-pad-not-pinned',
- }).append(
- Messages._getKey('padNotPinned', [o + '/login', o + '/register'])
- );
+ 'title': pnpTitle
+ }).append([
+ $('', {'class': 'fa fa-exclamation-triangle'}),
+ $('', {'class': 'cp-pnp-msg'}).append(pnpMsg)
+ ]);
$('.cp-toolbar-title').append(msg);
console.log("This pad is not pinned");
});
diff --git a/www/contacts/app-contacts.less b/www/contacts/app-contacts.less
index 26fba2c90..925fd9f81 100644
--- a/www/contacts/app-contacts.less
+++ b/www/contacts/app-contacts.less
@@ -8,9 +8,11 @@
@import (once) '../../customize/src/less2/include/avatar.less';
-@_cp-toolbar-color-warn: @colortheme_friends-warn;;
-
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_friends-bg,
+ @warn-color: @colortheme_friends-warn,
+ @color: @colortheme_friends-color
+);
.fileupload_main();
.alertify_main();
diff --git a/www/drive/app-drive.less b/www/drive/app-drive.less
index 17ae35fcb..259e63f56 100644
--- a/www/drive/app-drive.less
+++ b/www/drive/app-drive.less
@@ -8,9 +8,11 @@
@import (once) "../../customize/src/less2/include/limit-bar.less";
@import (once) "../../customize/src/less2/include/tokenfield.less";
-@_cp-toolbar-color-warn: @colortheme_drive-warn;
-
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_drive-bg,
+ @warn-color: @colortheme_drive-warn,
+ @color: @colortheme_drive-color
+);
.fileupload_main();
.alertify_main();
.limit-bar_main();
diff --git a/www/file/app-file.less b/www/file/app-file.less
index 7a990cb03..a777b6014 100644
--- a/www/file/app-file.less
+++ b/www/file/app-file.less
@@ -5,9 +5,11 @@
@import (once) '../../customize/src/less2/include/alertify.less';
@import (once) '../../customize/src/less2/include/tokenfield.less';
-@_cp-toolbar-color-warn: @colortheme_file-warn;
-
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_file-bg,
+ @warn-color: @colortheme_file-warn,
+ @color: @colortheme_file-color
+);
.fileupload_main();
.alertify_main();
.tokenfield_main();
diff --git a/www/pad/app-pad.less b/www/pad/app-pad.less
index 6e34f473d..1aa1a4f62 100644
--- a/www/pad/app-pad.less
+++ b/www/pad/app-pad.less
@@ -1,14 +1,12 @@
-// Defaults to avoid breaking existing themes
-
-@colortheme_pad-toolbar-bg: #c1e7ff;
-
@import (once) "../../customize/src/less2/include/toolbar.less";
@import (once) '../../customize/src/less2/include/alertify.less';
@import (once) '../../customize/src/less2/include/tokenfield.less';
-@_cp-toolbar-color-warn: @colortheme_pad-warn;
-
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_pad-bg,
+ @warn-color: @colortheme_pad-warn,
+ @color: @colortheme_pad-color
+);
.alertify_main();
// body
diff --git a/www/poll/app-poll.less b/www/poll/app-poll.less
index f717a6f56..2a29f1fdf 100644
--- a/www/poll/app-poll.less
+++ b/www/poll/app-poll.less
@@ -1,9 +1,3 @@
-// Defaults to avoid breaking existing themes
-
-@colortheme_poll-th-bg: #005bef;
-@colortheme_poll-th-fg: #fff;
-@colortheme_poll-help-bg: #bbffbb;
-
@import (once) "../../customize/src/less2/include/browser.less";
@import (once) "../../customize/src/less2/include/toolbar.less";
@import (once) "../../customize/src/less2/include/markdown.less";
@@ -13,9 +7,11 @@
@import (once) '../../customize/src/less2/include/tools.less';
@import (once) '../../customize/src/less2/include/avatar.less';
-@_cp-toolbar-color-warn: @colortheme_poll-warn;
-
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_poll-bg,
+ @warn-color: @colortheme_poll-warn,
+ @color: @colortheme_poll-color
+);
.fileupload_main();
.alertify_main();
.tokenfield_main();
diff --git a/www/profile/app-profile.less b/www/profile/app-profile.less
index 21e659a03..d36233782 100644
--- a/www/profile/app-profile.less
+++ b/www/profile/app-profile.less
@@ -7,8 +7,11 @@
@import (once) '../../customize/src/less2/include/avatar.less';
@import (once) '../../customize/src/less2/include/sidebar-layout.less';
-
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_profile-bg,
+ @warn-color: @colortheme_profile-warn,
+ @color: @colortheme_profile-color
+);
.fileupload_main();
.alertify_main();
.sidebar-layout_main();
diff --git a/www/settings/app-settings.less b/www/settings/app-settings.less
index b96384bc0..8b3d3b7fb 100644
--- a/www/settings/app-settings.less
+++ b/www/settings/app-settings.less
@@ -6,9 +6,11 @@
@import (once) '../../customize/src/less2/include/sidebar-layout.less';
@import (once) "../../customize/src/less2/include/limit-bar.less";
-@_cp-toolbar-color-warn: @colortheme_settings-warn;
-
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_settings-bg,
+ @warn-color: @colortheme_settings-warn,
+ @color: @colortheme_settings-color
+);
.alertify_main();
.sidebar-layout_main();
.limit-bar_main();
diff --git a/www/slide/app-slide.less b/www/slide/app-slide.less
index 32088eb64..6a9c2ee63 100644
--- a/www/slide/app-slide.less
+++ b/www/slide/app-slide.less
@@ -6,10 +6,12 @@
@import (once) "../../customize/src/less2/include/mediatag.less";
@import (once) '../../customize/src/less2/include/tokenfield.less';
-@_cp-toolbar-color-warn: @colortheme_slide-warn;
-
.mediatag_base();
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_slide-bg,
+ @warn-color: @colortheme_slide-warn,
+ @color: @colortheme_slide-color
+);
.fileupload_main();
.alertify_main();
.tokenfield_main();
diff --git a/www/todo/app-todo.less b/www/todo/app-todo.less
index de420b8b1..fd274a0ee 100644
--- a/www/todo/app-todo.less
+++ b/www/todo/app-todo.less
@@ -8,8 +8,11 @@
@import (once) '../../customize/src/less2/include/avatar.less';
-
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_todo-bg,
+ @warn-color: @colortheme_todo-warn,
+ @color: @colortheme_todo-color
+);
.fileupload_main();
.alertify_main();
diff --git a/www/whiteboard/app-whiteboard.less b/www/whiteboard/app-whiteboard.less
index 95fe016e9..28e6a6e0c 100644
--- a/www/whiteboard/app-whiteboard.less
+++ b/www/whiteboard/app-whiteboard.less
@@ -6,9 +6,11 @@
@import (once) '../../customize/src/less2/include/tools.less';
@import (once) '../../customize/src/less2/include/tokenfield.less';
-@_cp-toolbar-color-warn: @colortheme_whiteboard-warn;
-
-.toolbar_main();
+.toolbar_main(
+ @bg-color: @colortheme_whiteboard-bg,
+ @warn-color: @colortheme_whiteboard-warn,
+ @color: @colortheme_whiteboard-color
+);
.fileupload_main();
.alertify_main();
.tokenfield_main();