Skip to content
Snippets Groups Projects
Commit 57f32d06 authored by Marcelo Schmidt's avatar Marcelo Schmidt
Browse files

Settings refactoring

parent 8a79dde7
No related branches found
No related tags found
No related merge requests found
@Settings = new Meteor.Collection 'settings'
@UserAndRoom = new Meteor.Collection null
@ChatMessageHistory = new Meteor.Collection null
......
......@@ -5,7 +5,7 @@ Router.configure
waitOn: ->
if Meteor.userId()
return [Meteor.subscribe('userData'), Meteor.subscribe('activeUsers'), Meteor.subscribe('settings'), RoomManager.init()]
return [Meteor.subscribe('userData'), Meteor.subscribe('activeUsers'), RoomManager.init()]
onBeforeAction: ->
Session.set('openedRoom', null)
......
......@@ -4,7 +4,7 @@ Template.body.onRendered ->
d = document
s = 'script'
l = 'dataLayer'
i = Settings.findOne('API.Analytics')?.value
i = RocketChat.settings.get('API.Analytics')?.value
if i
do (w,d,s,l,i) ->
w[l] = w[l] || []
......
###
# Setting hooks provide an easy way to add extra steps to common operations.
# @namespace RocketChat.settings
###
RocketChat.settings = {}
###
# Add a setting function to a hook
# @param {String} hook - The name of the hook
# @param {Function} setting - The setting function
###
RocketChat.settings.add = (setting) ->
return
RocketChat.settings.addGroup = (settingsGroup) ->
return
RocketChat.settings.addPage = (settingsPage) ->
return
RocketChat.settings.startup = () ->
return
......@@ -19,6 +19,14 @@ Package.onUse(function(api) {
api.addFiles('lib/callbacks.coffee', ['server', 'client']);
api.addFiles('server/sendMessage.coffee', ['server']);
api.addFiles('settings/lib/settings.coffee', ['server', 'client']);
api.addFiles('settings/client/startup.coffee', ['client']);
api.addFiles([
'settings/server/methods.coffee',
'settings/server/publication.coffee',
'settings/server/startup.coffee'
], ['server']);
api.export(['RocketChat'], ['server', 'client']);
});
......
Meteor.startup ->
Meteor.subscribe 'settings'
\ No newline at end of file
###
# RocketChat.settings holds all packages settings
# @namespace RocketChat.settings
###
@Settings = new Meteor.Collection 'settings'
RocketChat.settings = {}
RocketChat.settings.get = (_id) ->
return Settings.findOne(_id)
\ No newline at end of file
###
# Add a setting
# @param {String} _id
# @param {Mixed} value
# @param {Object} setting
###
RocketChat.settings.add = (_id, value, options = {}) ->
if not _id or not value?
return false
console.log '[functions] RocketChat.settings.add -> '.green, 'arguments:', arguments
updateSettings =
i18nLabel: options.i18nLabel or _id
updateSettings.type = options.type if options.type
updateSettings.group = options.group if options.group
updateSettings.public = options.public if options.public
return Settings.upsert { _id: _id }, { $setOnInsert: { value: value }, $set: updateSettings }
###
# Add a setting group
# @param {String} _id
###
RocketChat.settings.addGroup = (_id, options = {}) ->
if not _id
return false
console.log '[functions] RocketChat.settings.addGroup -> '.green, 'arguments:', arguments
updateSettings =
i18nLabel: options.i18nLabel or _id
type: 'group'
return Settings.upsert { _id: _id }, { $set: updateSettings }
......@@ -6,4 +6,4 @@ Meteor.publish 'settings', ->
if user.admin
return Settings.find()
return Settings.find { where: 'client', type: 'variable' }, { fields: _id: 1, value: 1}
\ No newline at end of file
return Settings.find { public: true }, { fields: _id: 1, value: 1}
\ No newline at end of file
Meteor.startup ->
RocketChat.settings.addGroup 'Accounts'
RocketChat.settings.add 'Accounts_RegistrationRequired', true, { type: 'boolean', group: 'Accounts', public: true }
RocketChat.settings.add 'Accounts_EmailVerification', false, { type: 'boolean', group: 'Accounts', public: true }
@Settings = new Meteor.Collection 'settings'
# @Settings = new Meteor.Collection 'settings'
loadEnvConfigs = (settings) ->
if settings.ENV?
......
Meteor.startup ->
Migrations.add
version: 8
up: ->
console.log "Add default settings"
# Accounts
# LDAP
Settings.upsert({ _id: "Accounts" }, { $set: { type: "group", i18nLabel: "Accounts" } })
Settings.upsert({ _id: "LDAP.Url" }, { $set: { type: "variable", dataType: "string", value: "", i18nLabel: "LDAP_Url", group: "Accounts", where: [ "server" ] } })
Settings.upsert({ _id: "LDAP.Port" }, { $set: { type: "variable", dataType: "string", value: "", i18nLabel: "LDAP_Port", group: "Accounts", where: [ "server" ] } })
Settings.upsert({ _id: "LDAP.DN" }, { $set: { type: "variable", dataType: "string_or_false", value: false, i18nLabel: "LDAP_DN", group: "Accounts", where: [ "client", "server" ] } })
# Registration
Settings.upsert({ _id: "Accounts.RegistrationRequired" }, { $set: { type: "variable", dataType: "boolean", value: true, i18nLabel: "Registration_required", group: "Accounts", where: [ "server" ] } })
Settings.upsert({ _id: "Accounts.EmailVerification" }, { $set: { type: "variable", dataType: "boolean", value: true, i18nLabel: "Email_verification", group: "Accounts", where: [ "server" ] } })
# APIs
Settings.upsert({ _id: "API" }, { $set: { type: "group", i18nLabel: "APIs" } })
Settings.upsert({ _id: "API.Analytics" }, { $set: { type: "variable", dataType: "string", value: "", i18nLabel: "Analytics_ID", group: "API", where: [ "client" ] } })
Settings.upsert({ _id: "API.Piwik_URL" }, { $set: { type: "variable", dataType: "string", value: "", i18nLabel: "Piwik_URL", group: "API", where: [ "client" ] } })
Settings.upsert({ _id: "API.Piwik_ID" }, { $set: { type: "variable", dataType: "string", value: "", i18nLabel: "Piwik_ID", group: "API", where: [ "client" ] } })
# SMTP settings
Settings.upsert({ _id: "SMTP" }, { $set: { type: "group", i18nLabel: "SMTP" } })
Settings.upsert { _id: "SMTP.Host" }, { $set: { type: "variable", dataType: "string", value: "", i18nLabel: "SMTP_host", group: "SMTP", where: [ "server" ] } }
Settings.upsert { _id: "SMTP.Port" }, { $set: { type: "variable", dataType: "string", value: "", i18nLabel: "SMTP_port", group: "SMTP", where: [ "server" ] } }
Settings.upsert { _id: "SMTP.Security" }, { $set: { type: "variable", dataType: "string", value: "", i18nLabel: "SMTP_security", group: "SMTP", where: [ "server" ] } }
Settings.upsert { _id: "SMTP.Username" }, { $set: { type: "variable", dataType: "string", value: "", i18nLabel: "SMTP_username", group: "SMTP", where: [ "server" ] } }
Settings.upsert { _id: "SMTP.Password" }, { $set: { type: "variable", dataType: "string", value: "", i18nLabel: "SMTP_password", group: "SMTP", where: [ "server" ] } }
# Message editing
Settings.upsert({ _id: "Message" }, { $set: { type: "group", i18nLabel: "Message" } })
Settings.upsert { _id: "Message.Edit" }, { $set: { type: "variable", dataType: "boolean", value: true, i18nLabel: "Allow_message_editing", group: "Message", where: [ "server" ] } }
Settings.upsert { _id: "Message.Delete" }, { $set: { type: "variable", dataType: "boolean", value: true, i18nLabel: "Allow_message_deleting", group: "Message", where: [ "server" ] } }
Settings.upsert { _id: "Message.ShowEditedStatus" }, { $set: { type: "variable", dataType: "boolean", value: true, i18nLabel: "Show_edited_status", group: "Message", where: [ "server" ] } }
Settings.upsert { _id: "Message.ShowDeletedStatus" }, { $set: { type: "variable", dataType: "boolean", value: true, i18nLabel: "Show_deleted_status", group: "Message", where: [ "server" ] } }
Settings.upsert { _id: "Message.KeepStatusHistory" }, { $set: { type: "variable", dataType: "boolean", value: true, i18nLabel: "Keep_status_history", group: "Message", where: [ "server" ] } }
# Embedding
Settings.upsert({ _id: "Embed" }, { $set: { type: "group", i18nLabel: "Embed" } })
Settings.upsert { _id: "Embed.Enable" }, { $set: { type: "variable", dataType: "boolean", value: true, i18nLabel: "Enable_embedding", group: "Embed", where: [ "server" ] } }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment