diff --git a/packages/rocketchat-theme/package.js b/packages/rocketchat-theme/package.js index 9d3fb0f70c8..012f88e111b 100644 --- a/packages/rocketchat-theme/package.js +++ b/packages/rocketchat-theme/package.js @@ -8,6 +8,7 @@ Package.describe({ Package.onUse(function(api) { api.use('rocketchat:lib'); api.use('rocketchat:logger'); + api.use('rocketchat:assets'); api.use('coffeescript'); api.use('underscore'); api.use('webapp'); diff --git a/packages/rocketchat-theme/server/server.coffee b/packages/rocketchat-theme/server/server.coffee index e56b5784368..6f805d3f706 100644 --- a/packages/rocketchat-theme/server/server.coffee +++ b/packages/rocketchat-theme/server/server.coffee @@ -68,25 +68,25 @@ RocketChat.theme = new class RocketChat.settings.onload 'css', Meteor.bindEnvironment (key, value, initialLoad) => if not initialLoad - process.emit('message', {refresh: 'client'}) + Meteor.startup -> + process.emit('message', {refresh: 'client'}) - @compileDelayed = _.debounce Meteor.bindEnvironment(@compile.bind(@)), 5000 + @compileDelayed = _.debounce Meteor.bindEnvironment(@compile.bind(@)), 100 - Meteor.startup => - RocketChat.settings.onAfterInitialLoad => + RocketChat.settings.onAfterInitialLoad => - RocketChat.settings.get '*', Meteor.bindEnvironment (key, value, initialLoad) => - if key is 'theme-custom-css' - if value?.trim() isnt '' - @customCSS = value - else if /^theme-.+/.test(key) is true - name = key.replace /^theme-[a-z]+-/, '' - if @variables[name]? - @variables[name].value = value - else - return + RocketChat.settings.get '*', Meteor.bindEnvironment (key, value, initialLoad) => + if key is 'theme-custom-css' + if value?.trim() isnt '' + @customCSS = value + else if /^theme-.+/.test(key) is true + name = key.replace /^theme-[a-z]+-/, '' + if @variables[name]? + @variables[name].value = value + else + return - @compileDelayed() + @compileDelayed() compile: -> content = [ @@ -118,6 +118,11 @@ RocketChat.theme = new class RocketChat.settings.updateById 'css', data.css + Meteor.startup -> + Meteor.setTimeout -> + process.emit('message', {refresh: 'client'}) + , 200 + addVariable: (type, name, value, persist=true) -> @variables[name] = type: type