fix variables and remove dynamic-css inject

pull/7748/head
Karl Prieb 8 years ago
parent eeb1edbcff
commit 9f19484247
  1. 2
      packages/rocketchat-theme/client/imports/components/message-box.css
  2. 2
      packages/rocketchat-theme/client/imports/forms/select-avatar.css
  3. 3
      packages/rocketchat-theme/client/imports/general/variables.css
  4. 16
      packages/rocketchat-theme/server/variables.js
  5. 60
      packages/rocketchat-ui-master/server/dynamic-css.js
  6. 18
      packages/rocketchat-ui-master/server/inject.js

@ -15,7 +15,7 @@
width: 100%;
height: 24px;
color: var(---message-box-markdown-color);
color: var(--message-box-markdown-color);
justify-content: center;
&-item {

@ -48,7 +48,7 @@
cursor: pointer;
color: var(--popup-list-name-color);
color: var(--select-avatar-upload-color);
background: var(--select-avatar-upload-background);
}

@ -95,14 +95,13 @@
--tags-background: #f2f3f5;
--tags-avatar-size: 20px;
/*
* Forms - select avatar
*/
--select-avatar-size: 48px;
--select-avatar-preview-size: 150px;
--select-avatar-upload-background: var(--color-gray-light);
--select-avatar-upload-color:
--select-avatar-upload-color: #2d343d;
/*
* Modal

@ -39,23 +39,7 @@ const minorColors= {
'status-offline': '@transparent-darker'
};
// const content = [
// {
// name: 'content',
// properties: ['background-color'],
// value: '#ffffff'
// },
// {
// name: 'content-color',
// properties: ['color'],
// value: '#414852'
// }
// ];
// content.forEach(setting => RocketChat.theme.addColor(setting.name, setting.value, 'Content', setting.properties));
// Bulk-add settings for color scheme
Object.keys(majorColors).forEach((key) => {
const value = majorColors[key];
RocketChat.theme.addPublicColor(key, value, 'Colors');

@ -1,60 +0,0 @@
/* global DynamicCss */
'use strict';
export default () => {
const debounce = (func, wait, immediate) => {
let timeout;
return function(...args) {
const later = () => {
timeout = null;
!immediate && func.apply(this, args);
};
const callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
callNow && func.apply(this, args);
};
};
const style = document.createElement('style');
style.type = 'text/css';
style.id = 'rocketchat-dynamic-css';
DynamicCss = typeof DynamicCss !=='undefined'? DynamicCss : {list:[]};
const colors = setting => {
if (setting._id.indexOf('theme-color') > -1) {
return setting.properties.map(property => {
const temp = setting._id.replace('theme-color-', '').split(':');
const settingName = temp[0];
const pseudo = temp[1] || '';
const propertyName = property.replace('color', '').replace('-', '');
const className = propertyName ? `${ settingName }-${ propertyName }` : settingName;
return `.${ className }${ pseudo ? ':' : '' }${ pseudo }{${ property }:${ setting.value }}`;
}).join('\n');
}
return '';
};
const customCss = setting => setting._id.indexOf('theme-custom-css') > -1 ? setting.value : '';
const fontFamily = setting => setting._id.indexOf('theme-font-body-font-family') > -1 ? `body{${ setting.value }}` : '';
const properties = [fontFamily, colors, customCss];
const run = list => {
return list.filter(setting => setting.value && setting.properties || setting.type !== 'color')
.sort((a, b) => a._id.length - b._id.length)
.map(setting => properties.reduce((ret, f) => ret || f(setting), ''))
.join('\n');
};
DynamicCss.run = debounce(() => {
const list = typeof RocketChat !== 'undefined' ? RocketChat.settings.collection.find({_id:/theme/}).fetch() : [];
return style.innerHTML = run(list.length && list || DynamicCss.list);
}, 1000);
document.head.appendChild(style);
DynamicCss.run();
};

@ -1,22 +1,4 @@
/* globals Inject */
const renderDynamicCssList = () => {
const variables = RocketChat.models.Settings.find({_id:/theme-/}, {fields: { value: 1, properties: 1, type: 1 }}).fetch();
Inject.rawHead('dynamic-variables',
`<script>
DynamicCss = typeof DynamicCss !== 'undefined' ? DynamicCss : { };
DynamicCss.list = ${ JSON.stringify(variables) };
</script>`);
};
renderDynamicCssList();
RocketChat.models.Settings.find({_id:/theme-/}, {fields: { value: 1, properties: 1, type: 1 }}).observe({
changed: renderDynamicCssList
});
Inject.rawHead('dynamic', `<script>(${ require('./dynamic-css.js').default.toString() })()</script>`);
Inject.rawHead('page-loading', `<style>${ Assets.getText('public/loading.css') }</style>`);
Inject.rawBody('icons', Assets.getText('public/icons.svg'));

Loading…
Cancel
Save