From 9b99c247701c2b6474341e076cd39c0b99fe205a Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Sun, 28 Jun 2015 17:03:06 -0300 Subject: [PATCH 01/17] Restructure settings page --- client/routes/router.coffee | 7 +- client/views/app/settings.html | 109 ------------------ .../settings/settings-authentication.html | 79 +++++++++++++ client/views/settings/settings-messages.html | 79 +++++++++++++ .../views/settings/settings-registration.html | 79 +++++++++++++ client/views/settings/settings.coffee | 30 +++++ client/views/settings/settings.html | 45 ++++++++ i18n/en.i18n.json | 4 + 8 files changed, 321 insertions(+), 111 deletions(-) delete mode 100644 client/views/app/settings.html create mode 100644 client/views/settings/settings-authentication.html create mode 100644 client/views/settings/settings-messages.html create mode 100644 client/views/settings/settings-registration.html create mode 100644 client/views/settings/settings.coffee create mode 100644 client/views/settings/settings.html diff --git a/client/routes/router.coffee b/client/routes/router.coffee index 666009df04a..ccdec5e462b 100644 --- a/client/routes/router.coffee +++ b/client/routes/router.coffee @@ -64,9 +64,12 @@ Router.route '/home', onAfterAction: -> KonchatNotification.getDesktopPermission() -Router.route '/settings', +Router.route '/settings/:page?', name: 'settings' - + data: -> + return { + page: @params.page + } action: -> this.render('settings') diff --git a/client/views/app/settings.html b/client/views/app/settings.html deleted file mode 100644 index fee22e1e6a1..00000000000 --- a/client/views/app/settings.html +++ /dev/null @@ -1,109 +0,0 @@ - diff --git a/client/views/settings/settings-authentication.html b/client/views/settings/settings-authentication.html new file mode 100644 index 00000000000..527d4a5868b --- /dev/null +++ b/client/views/settings/settings-authentication.html @@ -0,0 +1,79 @@ + \ No newline at end of file diff --git a/client/views/settings/settings-messages.html b/client/views/settings/settings-messages.html new file mode 100644 index 00000000000..b5cc0fb71b1 --- /dev/null +++ b/client/views/settings/settings-messages.html @@ -0,0 +1,79 @@ + \ No newline at end of file diff --git a/client/views/settings/settings-registration.html b/client/views/settings/settings-registration.html new file mode 100644 index 00000000000..0e421359df5 --- /dev/null +++ b/client/views/settings/settings-registration.html @@ -0,0 +1,79 @@ + \ No newline at end of file diff --git a/client/views/settings/settings.coffee b/client/views/settings/settings.coffee new file mode 100644 index 00000000000..7e12666e011 --- /dev/null +++ b/client/views/settings/settings.coffee @@ -0,0 +1,30 @@ +Template.settings.helpers + tSearchSettings: -> + return t('Search_settings') + arrowPosition: -> + console.log 'settings.helpers arrowPosition' if window.rocketDebug + return 'left' unless Session.equals('flexOpened', true) + flexOpened: -> + console.log 'settings.helpers flexOpened' if window.rocketDebug + return 'opened' if Session.equals('flexOpened', true) + settingsTemplate: -> + if @page and Template["settings-#{@page}"]? + return "settings-#{@page}" + return "settings-authentication" + +Template.settings.events + "click .burger": -> + chatContainer = $("#rocket-chat") + if chatContainer.hasClass("menu-closed") + chatContainer.removeClass("menu-closed").addClass("menu-opened") + else + chatContainer.addClass("menu-closed").removeClass("menu-opened") + + "click .flex-tab .more": (event) -> + console.log 'settings click .flex-tab .more' if window.rocketDebug + Session.set('flexOpened', !Session.get('flexOpened')) + +Template.settings.onRendered -> + console.log 'room.onRendered' if window.rocketDebug + Session.set 'flexOpened', true + FlexTab.check() \ No newline at end of file diff --git a/client/views/settings/settings.html b/client/views/settings/settings.html new file mode 100644 index 00000000000..50bc07c0ef8 --- /dev/null +++ b/client/views/settings/settings.html @@ -0,0 +1,45 @@ + diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 56a722b6184..9d7fc7e0389 100755 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -9,6 +9,7 @@ "are_also_typing" : "are also typing", "are_typing" : "are typing", "Are_you_sure" : "Are you sure?", + "Authentication_Methods" : "Authentication Methods", "away" : "away", "Away" : "Away", "busy" : "busy", @@ -72,6 +73,7 @@ "Members" : "Members", "Members_List" : "Members List", "Members_placeholder" : "Members", + "Message_Editing_Deleting" : "Message Editing/Deleting", "More_channels" : "More channels", "Msgs" : "Msgs", "multi" : "multi", @@ -99,6 +101,7 @@ "quote" : "quote", "Recents" : "Recents", "Register" : "Register a new account", + "Registration" : "Registration", "Remember_me" : "Remember me", "Remove" : "Remove", "Reset_password" : "Reset password", @@ -107,6 +110,7 @@ "Room_name_changed_successfully" : "Room name changed successfully", "Save" : "Save", "Search" : "Search", + "Search_settings" : "Search settings", "See_all" : "See all", "See_only_online" : "Only online", "Select_an_avatar" : "Select an avatar", From 295f3b3ccb646a6885774bf46b805804885d2ae7 Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Sun, 12 Jul 2015 22:01:58 -0300 Subject: [PATCH 02/17] Settings collection and predefined records --- client/lib/collections.coffee | 2 ++ client/routes/router.coffee | 2 +- client/views/main.coffee | 18 +++++++++++++ client/views/main.html | 7 ------ server/publications/settings.coffee | 9 +++++++ server/startup/migrations/v8.coffee | 39 +++++++++++++++++++++++++++++ 6 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 client/views/main.coffee create mode 100644 server/publications/settings.coffee create mode 100644 server/startup/migrations/v8.coffee diff --git a/client/lib/collections.coffee b/client/lib/collections.coffee index 347843497b3..a4e836271cc 100644 --- a/client/lib/collections.coffee +++ b/client/lib/collections.coffee @@ -1,3 +1,5 @@ +@Settings = new Meteor.Collection 'settings' + @UserAndRoom = new Meteor.Collection null @ChatMessageHistory = new Meteor.Collection null diff --git a/client/routes/router.coffee b/client/routes/router.coffee index c8ffe2a4eff..df580eee096 100644 --- a/client/routes/router.coffee +++ b/client/routes/router.coffee @@ -5,7 +5,7 @@ Router.configure waitOn: -> if Meteor.userId() - return [Meteor.subscribe('userData'), Meteor.subscribe('activeUsers'), RoomManager.init()] + return [Meteor.subscribe('userData'), Meteor.subscribe('activeUsers'), Meteor.subscribe('settings'), RoomManager.init()] onBeforeAction: -> Session.set('openedRoom', null) diff --git a/client/views/main.coffee b/client/views/main.coffee new file mode 100644 index 00000000000..d4425d080c0 --- /dev/null +++ b/client/views/main.coffee @@ -0,0 +1,18 @@ +Template.body.onRendered -> + dataLayerComputation = Tracker.autorun -> + w = window + d = document + s = 'script' + l = 'dataLayer' + i = Settings.findOne('API.Analytics')?.value + if i + do (w,d,s,l,i) -> + w[l] = w[l] || [] + w[l].push {'gtm.start': new Date().getTime(), event:'gtm.js'} + f = d.getElementsByTagName(s)[0] + j = d.createElement(s) + dl = if l isnt 'dataLayer' then '&l=' + l else '' + j.async = true + j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl + f.parentNode.insertBefore j, f + dataLayerComputation.stop() \ No newline at end of file diff --git a/client/views/main.html b/client/views/main.html index 01204291731..da7d685374e 100644 --- a/client/views/main.html +++ b/client/views/main.html @@ -36,11 +36,4 @@ - - - diff --git a/server/publications/settings.coffee b/server/publications/settings.coffee new file mode 100644 index 00000000000..bec5b4667c5 --- /dev/null +++ b/server/publications/settings.coffee @@ -0,0 +1,9 @@ +Meteor.publish 'settings', -> + console.log '[publish] settings'.green + + if this.userId + user = Meteor.users.findOne this.userId + if user.admin + return Settings.find() + + return Settings.find { where: 'client' }, { fields: _id: 1, value: 1} \ No newline at end of file diff --git a/server/startup/migrations/v8.coffee b/server/startup/migrations/v8.coffee new file mode 100644 index 00000000000..e6eca54c247 --- /dev/null +++ b/server/startup/migrations/v8.coffee @@ -0,0 +1,39 @@ +Meteor.startup -> + Migrations.add + version: 8 + up: -> + console.log 'Add default settings' + + # Accounts + # LDAP + Settings.upsert({ _id: "LDAP.Url" }, { $set: { type: "string", value: "", i18n_label: "LDAP_Url", group: "Accounts", where: [ 'server' ] } }) + Settings.upsert({ _id: "LDAP.Port" }, { $set: { type: "string", value: "", i18n_label: "LDAP_Port", group: "Accounts", where: [ 'server' ] } }) + Settings.upsert({ _id: "LDAP.DN" }, { $set: { type: "string_or_false", value: false, i18n_label: "LDAP_DN", group: "Accounts", where: [ 'client', 'server' ] } }) + + # Registration + Settings.upsert({ _id: "Accounts.RegistrationRequired" }, { $set: { type: "boolean", value: true, i18n_label: "Registration_required", group: "Accounts", where: [ 'server' ] } }) + Settings.upsert({ _id: "Accounts.EmailVerification" }, { $set: { type: "boolean", value: true, i18n_label: "Email_verification", group: "Accounts", where: [ 'server' ] } }) + + # APIs + Settings.upsert({ _id: "API.Analytics" }, { $set: { type: "string", value: "", i18n_label: "Analytics_ID", group: "API", where: [ 'client' ] } }) + Settings.upsert({ _id: "API.Piwik_URL" }, { $set: { type: "string", value: "", i18n_label: "Piwik_URL", group: "API", where: [ 'client' ] } }) + Settings.upsert({ _id: "API.Piwik_ID" }, { $set: { type: "string", value: "", i18n_label: "Piwik_ID", group: "API", where: [ 'client' ] } }) + + # SMTP settings + Settings.upsert { _id: "SMTP.Host" }, { $set: { type: "string", value: "", i18n_label: "SMTP_host", group: "SMTP", where: [ 'server' ] } } + Settings.upsert { _id: "SMTP.Port" }, { $set: { type: "string", value: "", i18n_label: "SMTP_port", group: "SMTP", where: [ 'server' ] } } + Settings.upsert { _id: "SMTP.Security" }, { $set: { type: "string", value: "", i18n_label: "SMTP_security", group: "SMTP", where: [ 'server' ] } } + Settings.upsert { _id: "SMTP.Username" }, { $set: { type: "string", value: "", i18n_label: "SMTP_username", group: "SMTP", where: [ 'server' ] } } + Settings.upsert { _id: "SMTP.Password" }, { $set: { type: "string", value: "", i18n_label: "SMTP_password", group: "SMTP", where: [ 'server' ] } } + + # Message editing + Settings.upsert { _id: "Message.Edit" }, { $set: { type: "boolean", value: true, i18n_label: "Allow_message_editing", group: "Message", where: [ 'server' ] } } + Settings.upsert { _id: "Message.Delete" }, { $set: { type: "boolean", value: true, i18n_label: "Allow_message_deleting", group: "Message", where: [ 'server' ] } } + Settings.upsert { _id: "Message.ShowEditedStatus" }, { $set: { type: "boolean", value: true, i18n_label: "Show_edited_status", group: "Message", where: [ 'server' ] } } + Settings.upsert { _id: "Message.ShowDeletedStatus" }, { $set: { type: "boolean", value: true, i18n_label: "Show_deleted_status", group: "Message", where: [ 'server' ] } } + Settings.upsert { _id: "Message.KeepStatusHistory" }, { $set: { type: "boolean", value: true, i18n_label: "Keep_status_history", group: "Message", where: [ 'server' ] } } + + # Embedding + Settings.upsert { _id: "Embed.Enable" }, { $set: { type: "boolean", value: true, i18n_label: "Enable_embedding", group: "Embed", where: [ 'server' ] } } + + From dcb2c6fd5e513ca87e1f9a0ae5c72a1d87258088 Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Sun, 12 Jul 2015 22:12:13 -0300 Subject: [PATCH 03/17] Settings page cleanup --- client/views/app/settings.html | 107 -------------------------- client/views/settings/settings.coffee | 6 -- client/views/settings/settings.html | 13 ++-- 3 files changed, 6 insertions(+), 120 deletions(-) delete mode 100644 client/views/app/settings.html diff --git a/client/views/app/settings.html b/client/views/app/settings.html deleted file mode 100644 index cec3afd6c01..00000000000 --- a/client/views/app/settings.html +++ /dev/null @@ -1,107 +0,0 @@ - diff --git a/client/views/settings/settings.coffee b/client/views/settings/settings.coffee index 7e12666e011..f03f98e79e3 100644 --- a/client/views/settings/settings.coffee +++ b/client/views/settings/settings.coffee @@ -1,12 +1,6 @@ Template.settings.helpers tSearchSettings: -> return t('Search_settings') - arrowPosition: -> - console.log 'settings.helpers arrowPosition' if window.rocketDebug - return 'left' unless Session.equals('flexOpened', true) - flexOpened: -> - console.log 'settings.helpers flexOpened' if window.rocketDebug - return 'opened' if Session.equals('flexOpened', true) settingsTemplate: -> if @page and Template["settings-#{@page}"]? return "settings-#{@page}" diff --git a/client/views/settings/settings.html b/client/views/settings/settings.html index 50bc07c0ef8..dd795b676cd 100644 --- a/client/views/settings/settings.html +++ b/client/views/settings/settings.html @@ -18,28 +18,27 @@
- {{!-- --}}
- {{!-- {{#if flexOpened}} --}} - {{!-- {{/if}} --}}
From d13cdcc1a8640fea6d0b3bdce1beff1ebf9d0358 Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Sun, 12 Jul 2015 22:44:13 -0300 Subject: [PATCH 04/17] Adding settings page --- client/routes/router.coffee | 8 +++-- client/views/settings/settings.coffee | 10 +++--- client/views/settings/settings.html | 41 +++++++++++++++++------- server/publications/settings.coffee | 2 +- server/publications/userData.coffee | 1 + server/startup/migrations/v8.coffee | 45 +++++++++++++++------------ 6 files changed, 69 insertions(+), 38 deletions(-) diff --git a/client/routes/router.coffee b/client/routes/router.coffee index cef7dd53d50..79c0054b6d5 100644 --- a/client/routes/router.coffee +++ b/client/routes/router.coffee @@ -64,11 +64,15 @@ Router.route '/home', onAfterAction: -> KonchatNotification.getDesktopPermission() -Router.route '/settings/:page?', +Router.route '/settings/:group?', name: 'settings' + onBeforeAction: -> + if Meteor.user()?.admin isnt true + Router.go('home') + @next() data: -> return { - page: @params.page + group: @params.group } action: -> this.render('settings') diff --git a/client/views/settings/settings.coffee b/client/views/settings/settings.coffee index f03f98e79e3..b86f70527f0 100644 --- a/client/views/settings/settings.coffee +++ b/client/views/settings/settings.coffee @@ -1,10 +1,12 @@ Template.settings.helpers tSearchSettings: -> return t('Search_settings') - settingsTemplate: -> - if @page and Template["settings-#{@page}"]? - return "settings-#{@page}" - return "settings-authentication" + groups: -> + return Settings.find({type: 'group'}).fetch() + group: -> + return Settings.findOne { _id: @group, type: 'group' } + settings: -> + return Settings.find({ group: @group, type: 'variable' }).fetch() Template.settings.events "click .burger": -> diff --git a/client/views/settings/settings.html b/client/views/settings/settings.html index dd795b676cd..0bb38c18a07 100644 --- a/client/views/settings/settings.html +++ b/client/views/settings/settings.html @@ -13,7 +13,23 @@
- {{> UI.dynamic template=settingsTemplate}} +

{{_ group.i18nLabel}}

+
+
+ + + + {{#each settings}} +
+ +
+ +
+
+ {{/each}} +
+
@@ -29,16 +45,19 @@ - -
+ {{!--
  • + {{_ "Authentication_Methods"}} +
  • +
  • + {{_ "Message_Editing_Deleting"}} +
  • +
  • + {{_ "Registration"}} +
  • --}} + + + diff --git a/server/publications/settings.coffee b/server/publications/settings.coffee index bec5b4667c5..f72c3350eaa 100644 --- a/server/publications/settings.coffee +++ b/server/publications/settings.coffee @@ -6,4 +6,4 @@ Meteor.publish 'settings', -> if user.admin return Settings.find() - return Settings.find { where: 'client' }, { fields: _id: 1, value: 1} \ No newline at end of file + return Settings.find { where: 'client', type: 'variable' }, { fields: _id: 1, value: 1} \ No newline at end of file diff --git a/server/publications/userData.coffee b/server/publications/userData.coffee index efa599a1876..ff42fd4a011 100644 --- a/server/publications/userData.coffee +++ b/server/publications/userData.coffee @@ -12,3 +12,4 @@ Meteor.publish 'userData', -> statusDefault: 1 statusConnection: 1 avatarOrigin: 1 + admin: 1 diff --git a/server/startup/migrations/v8.coffee b/server/startup/migrations/v8.coffee index e6eca54c247..25f9fae390d 100644 --- a/server/startup/migrations/v8.coffee +++ b/server/startup/migrations/v8.coffee @@ -2,38 +2,43 @@ Meteor.startup -> Migrations.add version: 8 up: -> - console.log 'Add default settings' + console.log "Add default settings" # Accounts # LDAP - Settings.upsert({ _id: "LDAP.Url" }, { $set: { type: "string", value: "", i18n_label: "LDAP_Url", group: "Accounts", where: [ 'server' ] } }) - Settings.upsert({ _id: "LDAP.Port" }, { $set: { type: "string", value: "", i18n_label: "LDAP_Port", group: "Accounts", where: [ 'server' ] } }) - Settings.upsert({ _id: "LDAP.DN" }, { $set: { type: "string_or_false", value: false, i18n_label: "LDAP_DN", group: "Accounts", where: [ 'client', 'server' ] } }) + 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: "boolean", value: true, i18n_label: "Registration_required", group: "Accounts", where: [ 'server' ] } }) - Settings.upsert({ _id: "Accounts.EmailVerification" }, { $set: { type: "boolean", value: true, i18n_label: "Email_verification", group: "Accounts", where: [ 'server' ] } }) + 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.Analytics" }, { $set: { type: "string", value: "", i18n_label: "Analytics_ID", group: "API", where: [ 'client' ] } }) - Settings.upsert({ _id: "API.Piwik_URL" }, { $set: { type: "string", value: "", i18n_label: "Piwik_URL", group: "API", where: [ 'client' ] } }) - Settings.upsert({ _id: "API.Piwik_ID" }, { $set: { type: "string", value: "", i18n_label: "Piwik_ID", group: "API", where: [ 'client' ] } }) + 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.Host" }, { $set: { type: "string", value: "", i18n_label: "SMTP_host", group: "SMTP", where: [ 'server' ] } } - Settings.upsert { _id: "SMTP.Port" }, { $set: { type: "string", value: "", i18n_label: "SMTP_port", group: "SMTP", where: [ 'server' ] } } - Settings.upsert { _id: "SMTP.Security" }, { $set: { type: "string", value: "", i18n_label: "SMTP_security", group: "SMTP", where: [ 'server' ] } } - Settings.upsert { _id: "SMTP.Username" }, { $set: { type: "string", value: "", i18n_label: "SMTP_username", group: "SMTP", where: [ 'server' ] } } - Settings.upsert { _id: "SMTP.Password" }, { $set: { type: "string", value: "", i18n_label: "SMTP_password", group: "SMTP", where: [ 'server' ] } } + 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.Edit" }, { $set: { type: "boolean", value: true, i18n_label: "Allow_message_editing", group: "Message", where: [ 'server' ] } } - Settings.upsert { _id: "Message.Delete" }, { $set: { type: "boolean", value: true, i18n_label: "Allow_message_deleting", group: "Message", where: [ 'server' ] } } - Settings.upsert { _id: "Message.ShowEditedStatus" }, { $set: { type: "boolean", value: true, i18n_label: "Show_edited_status", group: "Message", where: [ 'server' ] } } - Settings.upsert { _id: "Message.ShowDeletedStatus" }, { $set: { type: "boolean", value: true, i18n_label: "Show_deleted_status", group: "Message", where: [ 'server' ] } } - Settings.upsert { _id: "Message.KeepStatusHistory" }, { $set: { type: "boolean", value: true, i18n_label: "Keep_status_history", group: "Message", where: [ 'server' ] } } + 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.Enable" }, { $set: { type: "boolean", value: true, i18n_label: "Enable_embedding", group: "Embed", where: [ 'server' ] } } + 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" ] } } From 57f32d062efd18169479acd976a1fa07eb56869c Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Mon, 13 Jul 2015 22:14:37 -0300 Subject: [PATCH 05/17] Settings refactoring --- client/lib/collections.coffee | 2 - client/routes/router.coffee | 2 +- client/views/main.coffee | 2 +- packages/rocketchat-lib/lib/settings.coffee | 23 ---------- packages/rocketchat-lib/package.js | 8 ++++ .../settings/client/startup.coffee | 2 + .../settings/lib/settings.coffee | 10 +++++ .../settings/server/methods.coffee | 38 ++++++++++++++++ .../settings/server/publication.coffee | 2 +- .../settings/server/startup.coffee | 4 ++ server/lib/_settings.coffee | 2 +- server/startup/migrations/v8.coffee | 44 ------------------- 12 files changed, 66 insertions(+), 73 deletions(-) delete mode 100644 packages/rocketchat-lib/lib/settings.coffee create mode 100644 packages/rocketchat-lib/settings/client/startup.coffee create mode 100644 packages/rocketchat-lib/settings/lib/settings.coffee create mode 100644 packages/rocketchat-lib/settings/server/methods.coffee rename server/publications/settings.coffee => packages/rocketchat-lib/settings/server/publication.coffee (66%) create mode 100644 packages/rocketchat-lib/settings/server/startup.coffee delete mode 100644 server/startup/migrations/v8.coffee diff --git a/client/lib/collections.coffee b/client/lib/collections.coffee index a4e836271cc..347843497b3 100644 --- a/client/lib/collections.coffee +++ b/client/lib/collections.coffee @@ -1,5 +1,3 @@ -@Settings = new Meteor.Collection 'settings' - @UserAndRoom = new Meteor.Collection null @ChatMessageHistory = new Meteor.Collection null diff --git a/client/routes/router.coffee b/client/routes/router.coffee index 79c0054b6d5..34582be570c 100644 --- a/client/routes/router.coffee +++ b/client/routes/router.coffee @@ -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) diff --git a/client/views/main.coffee b/client/views/main.coffee index d4425d080c0..b356e726822 100644 --- a/client/views/main.coffee +++ b/client/views/main.coffee @@ -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] || [] diff --git a/packages/rocketchat-lib/lib/settings.coffee b/packages/rocketchat-lib/lib/settings.coffee deleted file mode 100644 index e50c97c5eaf..00000000000 --- a/packages/rocketchat-lib/lib/settings.coffee +++ /dev/null @@ -1,23 +0,0 @@ -### -# 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 diff --git a/packages/rocketchat-lib/package.js b/packages/rocketchat-lib/package.js index d4aac90b7f7..1854b429b9e 100644 --- a/packages/rocketchat-lib/package.js +++ b/packages/rocketchat-lib/package.js @@ -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']); }); diff --git a/packages/rocketchat-lib/settings/client/startup.coffee b/packages/rocketchat-lib/settings/client/startup.coffee new file mode 100644 index 00000000000..588e0cf8d3d --- /dev/null +++ b/packages/rocketchat-lib/settings/client/startup.coffee @@ -0,0 +1,2 @@ +Meteor.startup -> + Meteor.subscribe 'settings' \ No newline at end of file diff --git a/packages/rocketchat-lib/settings/lib/settings.coffee b/packages/rocketchat-lib/settings/lib/settings.coffee new file mode 100644 index 00000000000..ba7cf55f4a8 --- /dev/null +++ b/packages/rocketchat-lib/settings/lib/settings.coffee @@ -0,0 +1,10 @@ +### +# 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 diff --git a/packages/rocketchat-lib/settings/server/methods.coffee b/packages/rocketchat-lib/settings/server/methods.coffee new file mode 100644 index 00000000000..76515edc452 --- /dev/null +++ b/packages/rocketchat-lib/settings/server/methods.coffee @@ -0,0 +1,38 @@ +### +# 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 } diff --git a/server/publications/settings.coffee b/packages/rocketchat-lib/settings/server/publication.coffee similarity index 66% rename from server/publications/settings.coffee rename to packages/rocketchat-lib/settings/server/publication.coffee index f72c3350eaa..53377d36a94 100644 --- a/server/publications/settings.coffee +++ b/packages/rocketchat-lib/settings/server/publication.coffee @@ -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 diff --git a/packages/rocketchat-lib/settings/server/startup.coffee b/packages/rocketchat-lib/settings/server/startup.coffee new file mode 100644 index 00000000000..aa6ddfe71a6 --- /dev/null +++ b/packages/rocketchat-lib/settings/server/startup.coffee @@ -0,0 +1,4 @@ +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 } diff --git a/server/lib/_settings.coffee b/server/lib/_settings.coffee index 142f2426cf3..ed634f27045 100644 --- a/server/lib/_settings.coffee +++ b/server/lib/_settings.coffee @@ -1,4 +1,4 @@ -@Settings = new Meteor.Collection 'settings' +# @Settings = new Meteor.Collection 'settings' loadEnvConfigs = (settings) -> if settings.ENV? diff --git a/server/startup/migrations/v8.coffee b/server/startup/migrations/v8.coffee deleted file mode 100644 index 25f9fae390d..00000000000 --- a/server/startup/migrations/v8.coffee +++ /dev/null @@ -1,44 +0,0 @@ -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" ] } } - - From a33a9f2271e33774c3ffa323c52d7f91ab1ecb6e Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Mon, 13 Jul 2015 22:23:40 -0300 Subject: [PATCH 06/17] Meteor update --- .meteor/versions | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.meteor/versions b/.meteor/versions index a073db179b2..f2431cf5338 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -69,7 +69,7 @@ meteorspark:util@0.2.0 minifiers@1.1.5 minimongo@1.0.8 mizzao:autocomplete@0.5.1 -mizzao:timesync@0.3.1 +mizzao:timesync@0.3.2 mobile-status-bar@1.0.3 momentjs:moment@2.10.3 mongo@1.1.0 @@ -114,12 +114,12 @@ simple:highlight.js@1.0.9 spacebars@1.0.6 spacebars-compiler@1.0.6 srp@1.0.3 -tap:i18n@1.5.0 +tap:i18n@1.5.1 templating@1.1.1 tmeasday:crypto-base@3.1.2 tmeasday:crypto-md5@3.1.2 tmeasday:errors@2.0.0 -todda00:friendly-slugs@0.3.1 +todda00:friendly-slugs@0.3.3 tracker@1.0.7 ui@1.0.6 underscore@1.0.3 @@ -127,4 +127,4 @@ underscorestring:underscore.string@3.1.1 url@1.0.4 webapp@1.2.0 webapp-hashing@1.0.3 -yasaricli:slugify@0.0.5 +yasaricli:slugify@0.0.7 From 28e4e3b81f0cf764b736a606b2578938919c29b3 Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Mon, 13 Jul 2015 22:25:10 -0300 Subject: [PATCH 07/17] Removed unnecessary files --- .../settings/settings-authentication.html | 79 ------------------- client/views/settings/settings-messages.html | 79 ------------------- .../views/settings/settings-registration.html | 79 ------------------- 3 files changed, 237 deletions(-) delete mode 100644 client/views/settings/settings-authentication.html delete mode 100644 client/views/settings/settings-messages.html delete mode 100644 client/views/settings/settings-registration.html diff --git a/client/views/settings/settings-authentication.html b/client/views/settings/settings-authentication.html deleted file mode 100644 index 527d4a5868b..00000000000 --- a/client/views/settings/settings-authentication.html +++ /dev/null @@ -1,79 +0,0 @@ - \ No newline at end of file diff --git a/client/views/settings/settings-messages.html b/client/views/settings/settings-messages.html deleted file mode 100644 index b5cc0fb71b1..00000000000 --- a/client/views/settings/settings-messages.html +++ /dev/null @@ -1,79 +0,0 @@ - \ No newline at end of file diff --git a/client/views/settings/settings-registration.html b/client/views/settings/settings-registration.html deleted file mode 100644 index 0e421359df5..00000000000 --- a/client/views/settings/settings-registration.html +++ /dev/null @@ -1,79 +0,0 @@ - \ No newline at end of file From be901dbc8af99118bc809b8608112172877ea3fc Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Mon, 13 Jul 2015 22:28:55 -0300 Subject: [PATCH 08/17] Replaced dot for underscore in settings key --- client/views/main.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/views/main.coffee b/client/views/main.coffee index b356e726822..574cfbf4895 100644 --- a/client/views/main.coffee +++ b/client/views/main.coffee @@ -4,7 +4,7 @@ Template.body.onRendered -> d = document s = 'script' l = 'dataLayer' - i = RocketChat.settings.get('API.Analytics')?.value + i = RocketChat.settings.get('API_Analytics')?.value if i do (w,d,s,l,i) -> w[l] = w[l] || [] From d739dadebf1ededff85bdef2423c7c2d6ef0d233 Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Mon, 13 Jul 2015 23:20:26 -0300 Subject: [PATCH 09/17] Adding newlines at end of files; Add flex tab on settings page. --- client/routes/router.coffee | 6 +++--- client/views/main.coffee | 2 +- client/views/settings/settings.coffee | 9 ++++++--- client/views/settings/settings.html | 18 +++++------------- i18n/en.i18n.json | 3 --- .../settings/client/startup.coffee | 2 +- .../settings/lib/settings.coffee | 2 +- .../settings/server/publication.coffee | 16 ++++++++++------ 8 files changed, 27 insertions(+), 31 deletions(-) diff --git a/client/routes/router.coffee b/client/routes/router.coffee index 34582be570c..54fd1630a64 100644 --- a/client/routes/router.coffee +++ b/client/routes/router.coffee @@ -70,17 +70,17 @@ Router.route '/settings/:group?', if Meteor.user()?.admin isnt true Router.go('home') @next() + waitOn: -> + return Meteor.subscribe 'admin-settings' data: -> return { - group: @params.group + group: if @params.group then @params.group else Settings.findOne({ type: 'group' })?._id } action: -> this.render('settings') - onAfterAction: -> KonchatNotification.getDesktopPermission() - Router.route '/room/:_id', name: 'room' diff --git a/client/views/main.coffee b/client/views/main.coffee index 574cfbf4895..66ac18e5aec 100644 --- a/client/views/main.coffee +++ b/client/views/main.coffee @@ -15,4 +15,4 @@ Template.body.onRendered -> j.async = true j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl f.parentNode.insertBefore j, f - dataLayerComputation.stop() \ No newline at end of file + dataLayerComputation.stop() diff --git a/client/views/settings/settings.coffee b/client/views/settings/settings.coffee index b86f70527f0..9e5b1ddbcc0 100644 --- a/client/views/settings/settings.coffee +++ b/client/views/settings/settings.coffee @@ -1,12 +1,15 @@ Template.settings.helpers - tSearchSettings: -> - return t('Search_settings') groups: -> return Settings.find({type: 'group'}).fetch() group: -> return Settings.findOne { _id: @group, type: 'group' } settings: -> - return Settings.find({ group: @group, type: 'variable' }).fetch() + return Settings.find({ group: @group }).fetch() + flexOpened: -> + return 'opened' if Session.equals('flexOpened', true) + arrowPosition: -> + console.log 'room.helpers arrowPosition' if window.rocketDebug + return 'left' unless Session.equals('flexOpened', true) Template.settings.events "click .burger": -> diff --git a/client/views/settings/settings.html b/client/views/settings/settings.html index 0bb38c18a07..eca9105b496 100644 --- a/client/views/settings/settings.html +++ b/client/views/settings/settings.html @@ -34,9 +34,10 @@
    +
    @@ -48,16 +49,7 @@ {{_ i18nLabel}} {{/each}} - {{!--
  • - {{_ "Authentication_Methods"}} -
  • -
  • - {{_ "Message_Editing_Deleting"}} -
  • -
  • - {{_ "Registration"}} -
  • --}} - -
    -
    + + + diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index e452115dc36..5cc4eed8e71 100755 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -9,7 +9,6 @@ "are_also_typing" : "are also typing", "are_typing" : "are typing", "Are_you_sure" : "Are you sure?", - "Authentication_Methods" : "Authentication Methods", "away" : "away", "away_male" : "away", "away_female" : "away", @@ -86,7 +85,6 @@ "Members" : "Members", "Members_List" : "Members List", "Members_placeholder" : "Members", - "Message_Editing_Deleting" : "Message Editing/Deleting", "More_channels" : "More channels", "Msgs" : "Msgs", "multi" : "multi", @@ -115,7 +113,6 @@ "quote" : "quote", "Recents" : "Recents", "Register" : "Register a new account", - "Registration" : "Registration", "Remember_me" : "Remember me", "Remove" : "Remove", "Reset_password" : "Reset password", diff --git a/packages/rocketchat-lib/settings/client/startup.coffee b/packages/rocketchat-lib/settings/client/startup.coffee index 588e0cf8d3d..9e4f4b080ae 100644 --- a/packages/rocketchat-lib/settings/client/startup.coffee +++ b/packages/rocketchat-lib/settings/client/startup.coffee @@ -1,2 +1,2 @@ Meteor.startup -> - Meteor.subscribe 'settings' \ No newline at end of file + Meteor.subscribe 'settings' diff --git a/packages/rocketchat-lib/settings/lib/settings.coffee b/packages/rocketchat-lib/settings/lib/settings.coffee index ba7cf55f4a8..3d50291254e 100644 --- a/packages/rocketchat-lib/settings/lib/settings.coffee +++ b/packages/rocketchat-lib/settings/lib/settings.coffee @@ -7,4 +7,4 @@ RocketChat.settings = {} RocketChat.settings.get = (_id) -> - return Settings.findOne(_id) \ No newline at end of file + return Settings.findOne(_id) diff --git a/packages/rocketchat-lib/settings/server/publication.coffee b/packages/rocketchat-lib/settings/server/publication.coffee index 53377d36a94..a0e68b60752 100644 --- a/packages/rocketchat-lib/settings/server/publication.coffee +++ b/packages/rocketchat-lib/settings/server/publication.coffee @@ -1,9 +1,13 @@ Meteor.publish 'settings', -> console.log '[publish] settings'.green - - if this.userId - user = Meteor.users.findOne this.userId - if user.admin - return Settings.find() + return Settings.find { public: true }, { fields: _id: 1, value: 1 } + +Meteor.publish 'admin-settings', -> + console.log '[publish] admin-settings'.green - return Settings.find { public: true }, { fields: _id: 1, value: 1} \ No newline at end of file + unless @userId + return @ready() + + user = Meteor.users.findOne @userId + if user.admin + return Settings.find() From 784c37a9017ac4c7afec10743ac77abdd90b341d Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Tue, 14 Jul 2015 00:13:11 -0300 Subject: [PATCH 10/17] Overwrite settings on insert via settings.json file; Keep settings in local variable for avoiding unnecessary finds (less computations) --- packages/rocketchat-lib/package.js | 5 ++- .../settings/lib/rocketchat.coffee | 8 ++++ .../settings/lib/settings.coffee | 45 ++++++++++++++++--- .../settings/server/methods.coffee | 5 +++ server/lib/_settings.coffee | 38 ---------------- 5 files changed, 55 insertions(+), 46 deletions(-) create mode 100644 packages/rocketchat-lib/settings/lib/rocketchat.coffee delete mode 100644 server/lib/_settings.coffee diff --git a/packages/rocketchat-lib/package.js b/packages/rocketchat-lib/package.js index 1854b429b9e..5d8d4fc3c75 100644 --- a/packages/rocketchat-lib/package.js +++ b/packages/rocketchat-lib/package.js @@ -19,7 +19,10 @@ 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/lib/settings.coffee', + 'settings/lib/rocketchat.coffee' + ], ['server', 'client']); api.addFiles('settings/client/startup.coffee', ['client']); api.addFiles([ 'settings/server/methods.coffee', diff --git a/packages/rocketchat-lib/settings/lib/rocketchat.coffee b/packages/rocketchat-lib/settings/lib/rocketchat.coffee new file mode 100644 index 00000000000..1cb96d01723 --- /dev/null +++ b/packages/rocketchat-lib/settings/lib/rocketchat.coffee @@ -0,0 +1,8 @@ +### +# RocketChat.settings holds all packages settings +# @namespace RocketChat.settings +### +RocketChat.settings = {} + +RocketChat.settings.get = (_id) -> + return Meteor.settings?[_id] diff --git a/packages/rocketchat-lib/settings/lib/settings.coffee b/packages/rocketchat-lib/settings/lib/settings.coffee index 3d50291254e..8e5b35c5e80 100644 --- a/packages/rocketchat-lib/settings/lib/settings.coffee +++ b/packages/rocketchat-lib/settings/lib/settings.coffee @@ -1,10 +1,41 @@ -### -# RocketChat.settings holds all packages settings -# @namespace RocketChat.settings -### @Settings = new Meteor.Collection 'settings' -RocketChat.settings = {} +Settings.find().observe + added: (record) -> + Meteor.settings ?= {} + Meteor.settings[record._id] = record + # configLoginServices settings + # loadEnvConfigs settings + # configCDN settings + # configKadira settings -RocketChat.settings.get = (_id) -> - return Settings.findOne(_id) + changed: (record) -> + Meteor.settings?[record._id] = record + # __meteor_runtime_config__?.PUBLIC_SETTINGS = Meteor.settings?.public + # configLoginServices settings + # loadEnvConfigs settings + # configCDN settings + # configKadira settings + + removed: (record) -> + delete Meteor.settings?[record._id] + +# loadEnvConfigs = (settings) -> +# if settings.ENV? +# for key, value of settings.ENV +# process.env[key] = value + +# configLoginServices = (settings) -> +# settings?['login-services']?.forEach (config) -> +# ServiceConfiguration.configurations.remove +# service: config.service + +# ServiceConfiguration.configurations.insert config + +# configCDN = (settings) -> +# if settings.CDN_PREFIX? +# WebAppInternals.setBundledJsCssPrefix settings.CDN_PREFIX + +# configKadira = (settings) -> +# if settings.kadira? +# Kadira.connect(settings.kadira.appId, settings.kadira.appSecret) \ No newline at end of file diff --git a/packages/rocketchat-lib/settings/server/methods.coffee b/packages/rocketchat-lib/settings/server/methods.coffee index 76515edc452..5be85a7b62a 100644 --- a/packages/rocketchat-lib/settings/server/methods.coffee +++ b/packages/rocketchat-lib/settings/server/methods.coffee @@ -11,6 +11,11 @@ RocketChat.settings.add = (_id, value, options = {}) -> console.log '[functions] RocketChat.settings.add -> '.green, 'arguments:', arguments + if Meteor.settings?[_id]? + value = Meteor.settings[_id] + if Meteor.settings?.public?[_id]? + value = Meteor.settings.public[_id] + updateSettings = i18nLabel: options.i18nLabel or _id diff --git a/server/lib/_settings.coffee b/server/lib/_settings.coffee deleted file mode 100644 index ed634f27045..00000000000 --- a/server/lib/_settings.coffee +++ /dev/null @@ -1,38 +0,0 @@ -# @Settings = new Meteor.Collection 'settings' - -loadEnvConfigs = (settings) -> - if settings.ENV? - for key, value of settings.ENV - process.env[key] = value - -configLoginServices = (settings) -> - settings?['login-services']?.forEach (config) -> - ServiceConfiguration.configurations.remove - service: config.service - - ServiceConfiguration.configurations.insert config - -configCDN = (settings) -> - if settings.CDN_PREFIX? - WebAppInternals.setBundledJsCssPrefix settings.CDN_PREFIX - -configKadira = (settings) -> - if settings.kadira? - Kadira.connect(settings.kadira.appId, settings.kadira.appSecret) - -Settings.find({_id: 'settings'}).observe - added: (settings) -> - Meteor.settings = settings - __meteor_runtime_config__?.PUBLIC_SETTINGS = Meteor.settings?.public - configLoginServices settings - loadEnvConfigs settings - configCDN settings - configKadira settings - - changed: (settings) -> - Meteor.settings = settings - __meteor_runtime_config__?.PUBLIC_SETTINGS = Meteor.settings?.public - configLoginServices settings - loadEnvConfigs settings - configCDN settings - configKadira settings From 8872d4cbe10d584f847e9404df7116b62414e073 Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Tue, 14 Jul 2015 00:56:08 -0300 Subject: [PATCH 11/17] Move kadira to bottom of packages so it loads after rocketchat:lib; Add settings to process.env; Don't accept overrides on public part of settings.son --- .meteor/packages | 2 +- .../settings/lib/settings.coffee | 23 ++++++++----------- .../settings/server/methods.coffee | 4 +--- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/.meteor/packages b/.meteor/packages index cca744ee60f..3e290a89ae0 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -29,7 +29,6 @@ konecty:mongo-counter konecty:multiple-instances-status konecty:nrr konecty:user-presence -meteorhacks:kadira mizzao:autocomplete mizzao:timesync momentjs:moment @@ -59,3 +58,4 @@ tmeasday:errors todda00:friendly-slugs underscorestring:underscore.string yasaricli:slugify +meteorhacks:kadira \ No newline at end of file diff --git a/packages/rocketchat-lib/settings/lib/settings.coffee b/packages/rocketchat-lib/settings/lib/settings.coffee index 8e5b35c5e80..b8bfcf86213 100644 --- a/packages/rocketchat-lib/settings/lib/settings.coffee +++ b/packages/rocketchat-lib/settings/lib/settings.coffee @@ -3,27 +3,26 @@ Settings.find().observe added: (record) -> Meteor.settings ?= {} - Meteor.settings[record._id] = record + Meteor.settings[record._id] = record.value + + if process? + process.env ?= {} + process.env[record._id] = record.value # configLoginServices settings - # loadEnvConfigs settings # configCDN settings - # configKadira settings changed: (record) -> - Meteor.settings?[record._id] = record + Meteor.settings?[record._id] = record.value + if process? + process.env[record._id] = record.value # __meteor_runtime_config__?.PUBLIC_SETTINGS = Meteor.settings?.public # configLoginServices settings - # loadEnvConfigs settings # configCDN settings - # configKadira settings removed: (record) -> delete Meteor.settings?[record._id] + delete process?.env?[record._id] -# loadEnvConfigs = (settings) -> -# if settings.ENV? -# for key, value of settings.ENV -# process.env[key] = value # configLoginServices = (settings) -> # settings?['login-services']?.forEach (config) -> @@ -35,7 +34,3 @@ Settings.find().observe # configCDN = (settings) -> # if settings.CDN_PREFIX? # WebAppInternals.setBundledJsCssPrefix settings.CDN_PREFIX - -# configKadira = (settings) -> -# if settings.kadira? -# Kadira.connect(settings.kadira.appId, settings.kadira.appSecret) \ No newline at end of file diff --git a/packages/rocketchat-lib/settings/server/methods.coffee b/packages/rocketchat-lib/settings/server/methods.coffee index 5be85a7b62a..f4121cf7941 100644 --- a/packages/rocketchat-lib/settings/server/methods.coffee +++ b/packages/rocketchat-lib/settings/server/methods.coffee @@ -13,9 +13,7 @@ RocketChat.settings.add = (_id, value, options = {}) -> if Meteor.settings?[_id]? value = Meteor.settings[_id] - if Meteor.settings?.public?[_id]? - value = Meteor.settings.public[_id] - + updateSettings = i18nLabel: options.i18nLabel or _id From 1aeaae33b9677e17cf55cdc035cf9499c5b5e868 Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Tue, 14 Jul 2015 18:17:30 -0300 Subject: [PATCH 12/17] Adds cdn option --- packages/rocketchat-lib/package.js | 2 ++ packages/rocketchat-lib/server/cdn.coffee | 4 ++++ 2 files changed, 6 insertions(+) create mode 100644 packages/rocketchat-lib/server/cdn.coffee diff --git a/packages/rocketchat-lib/package.js b/packages/rocketchat-lib/package.js index 5d8d4fc3c75..1681eea6026 100644 --- a/packages/rocketchat-lib/package.js +++ b/packages/rocketchat-lib/package.js @@ -30,6 +30,8 @@ Package.onUse(function(api) { 'settings/server/startup.coffee' ], ['server']); + api.addFiles('server/cdn.coffee', ['server']); + api.export(['RocketChat'], ['server', 'client']); }); diff --git a/packages/rocketchat-lib/server/cdn.coffee b/packages/rocketchat-lib/server/cdn.coffee new file mode 100644 index 00000000000..697648bb4a0 --- /dev/null +++ b/packages/rocketchat-lib/server/cdn.coffee @@ -0,0 +1,4 @@ +Meteor.startup -> + cdnPrefix = RocketChat.settings.get 'CDN_PREFIX' + if cdnPrefix? + WebAppInternals.setBundledJsCssPrefix cdnPrefix From 46df4933d2f519102ff58891395d371f1b099a12 Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Tue, 14 Jul 2015 23:43:32 -0300 Subject: [PATCH 13/17] Added migration v8; replace Meteor.settings for RocketChat.settings.get; --- .../rocketchat-lib/settings/lib/settings.coffee | 17 ----------------- server/lib/accounts.coffee | 2 +- server/startup/avatar.coffee | 14 +++++++------- server/startup/migrations/v8.coffee | 17 +++++++++++++++++ 4 files changed, 25 insertions(+), 25 deletions(-) create mode 100644 server/startup/migrations/v8.coffee diff --git a/packages/rocketchat-lib/settings/lib/settings.coffee b/packages/rocketchat-lib/settings/lib/settings.coffee index b8bfcf86213..85304cd73b2 100644 --- a/packages/rocketchat-lib/settings/lib/settings.coffee +++ b/packages/rocketchat-lib/settings/lib/settings.coffee @@ -8,29 +8,12 @@ Settings.find().observe if process? process.env ?= {} process.env[record._id] = record.value - # configLoginServices settings - # configCDN settings changed: (record) -> Meteor.settings?[record._id] = record.value if process? process.env[record._id] = record.value - # __meteor_runtime_config__?.PUBLIC_SETTINGS = Meteor.settings?.public - # configLoginServices settings - # configCDN settings removed: (record) -> delete Meteor.settings?[record._id] delete process?.env?[record._id] - - -# configLoginServices = (settings) -> -# settings?['login-services']?.forEach (config) -> -# ServiceConfiguration.configurations.remove -# service: config.service - -# ServiceConfiguration.configurations.insert config - -# configCDN = (settings) -> -# if settings.CDN_PREFIX? -# WebAppInternals.setBundledJsCssPrefix settings.CDN_PREFIX diff --git a/server/lib/accounts.coffee b/server/lib/accounts.coffee index f52fefb6077..739851bcc21 100644 --- a/server/lib/accounts.coffee +++ b/server/lib/accounts.coffee @@ -50,7 +50,7 @@ Accounts.validateLoginAttempt (login) -> if login.allowed isnt true return login.allowed - if login.type is 'password' and Meteor.settings.denyUnverifiedEmails is true + if login.type is 'password' and RocketChat.settings.get 'Accounts_denyUnverifiedEmails' is true validEmail = login.user.emails.filter (email) -> return email.verified is true diff --git a/server/startup/avatar.coffee b/server/startup/avatar.coffee index 65814634d38..facabd8093f 100644 --- a/server/startup/avatar.coffee +++ b/server/startup/avatar.coffee @@ -1,8 +1,8 @@ Meteor.startup -> storeType = 'GridFS' - if Meteor.settings?.public?.avatarStore?.type? - storeType = Meteor.settings.public.avatarStore.type + if RocketChat.settings.get 'avatarStore_type' + storeType = RocketChat.settings.get 'avatarStore_type' RocketChatStore = RocketChatFile[storeType] @@ -12,16 +12,16 @@ Meteor.startup -> console.log "Using #{storeType} for Avatar storage".green transformWrite = undefined - if Meteor.settings?.public?.avatarStore?.size?.height? - height = Meteor.settings.public.avatarStore.size.height - width = Meteor.settings.public.avatarStore.size.width + if RocketChat.settings.get 'avatarStore_size_height' + height = RocketChat.settings.get 'avatarStore_size_height' + width = RocketChat.settings.get 'avatarStore_size_width' transformWrite = (file, readStream, writeStream) -> RocketChatFile.gm(readStream, file.fileName).background('#ffffff').resize(width, height+'^>').gravity('Center').extent(width, height).stream('jpeg').pipe(writeStream) path = "~/uploads" - if Meteor.settings?.public?.avatarStore?.path? - path = Meteor.settings.public.avatarStore.path + if RocketChat.settings.get 'avatarStore_path' + path = RocketChat.settings.get 'avatarStore_path' @RocketChatFileAvatarInstance = new RocketChatStore name: 'avatars' diff --git a/server/startup/migrations/v8.coffee b/server/startup/migrations/v8.coffee new file mode 100644 index 00000000000..36d8c6aeaba --- /dev/null +++ b/server/startup/migrations/v8.coffee @@ -0,0 +1,17 @@ +Meteor.startup -> + Migrations.add + version: 8 + up: -> + console.log 'Load old settings record' + settings = Settings.findOne({ _id: 'settings' }) + if settings + Settings.insert { _id: 'CDN_PREFIX', value: settings.CDN_PREFIX, type: 'string', group: 'General' } if settings.CDN_PREFIX? + Settings.insert { _id: 'MAIL_URL', value: settings.ENV.MAIL_URL, type: 'string', group: 'SMTP' } if settings.ENV?.MAIL_URL? + Settings.insert { _id: 'Accounts_denyUnverifiedEmails', value: settings.denyUnverifiedEmails, type: 'boolean', group: 'Accounts' } if settings.denyUnverifiedEmails? + Settings.insert { _id: 'KADIRA_APP_ID', value: settings.kadira.appId, type: 'string', group: 'API' } if settings.kadira?.appId? + Settings.insert { _id: 'KADIRA_APP_SECRET', value: settings.kadira.appSecret, type: 'string', group: 'API' } if settings.kadira?.appSecret? + Settings.insert { _id: 'avatarStore_type', value: settings.public.avatarStore.type, type: 'string', group: 'API' } if settings.public?.avatarStore?.type? + Settings.insert { _id: 'avatarStore_path', value: settings.public.avatarStore.path, type: 'string', group: 'API' } if settings.public?.avatarStore?.path? + Settings.insert { _id: 'avatarStore_size2_height', value: settings.public.avatarStore.size2.height, type: 'string', group: 'API' } if settings.public?.avatarStore?.size2?.height? + Settings.insert { _id: 'avatarStore_size2_width', value: settings.public.avatarStore.size2.width, type: 'string', group: 'API' } if settings.public?.avatarStore?.size2?.width? + Settings.remove { _id: 'settings' } \ No newline at end of file From 00da7d813563e6b7309907c4248d80523eadd8db Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Tue, 14 Jul 2015 23:53:21 -0300 Subject: [PATCH 14/17] Added default empty settings --- .../settings/server/startup.coffee | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/rocketchat-lib/settings/server/startup.coffee b/packages/rocketchat-lib/settings/server/startup.coffee index aa6ddfe71a6..c47497ae186 100644 --- a/packages/rocketchat-lib/settings/server/startup.coffee +++ b/packages/rocketchat-lib/settings/server/startup.coffee @@ -2,3 +2,26 @@ 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 } + RocketChat.settings.add 'LDAP_Url', '', { type: 'string', group: 'Accounts' } + RocketChat.settings.add 'LDAP_Port', '', { type: 'string', group: 'Accounts' } + RocketChat.settings.add 'LDAP_DN', '', { type: 'string', group: 'Accounts', public: true } + + RocketChat.settings.addGroup 'API' + RocketChat.settings.add 'API_Analytics', '', { type: 'string', group: 'API', public: true } + RocketChat.settings.add 'API_Piwik_URL', '', { type: 'string', group: 'API', public: true } + RocketChat.settings.add 'API_Piwik_ID', '', { type: 'string', group: 'API', public: true } + RocketChat.settings.add 'API_Embed', '', { type: 'boolean', group: 'API' } + + RocketChat.settings.addGroup 'SMTP' + RocketChat.settings.add 'SMTP_Host', '', { type: 'string', group: 'SMTP' } + RocketChat.settings.add 'SMTP_Port', '', { type: 'string', group: 'SMTP' } + RocketChat.settings.add 'SMTP_Security', '', { type: 'string', group: 'SMTP' } + RocketChat.settings.add 'SMTP_Username', '', { type: 'string', group: 'SMTP' } + RocketChat.settings.add 'SMTP_Password', '', { type: 'string', group: 'SMTP' } + + RocketChat.settings.addGroup 'Message' + RocketChat.settings.add 'Message_Edit', '', { type: 'string', group: 'Message' } + RocketChat.settings.add 'Message_Delete', '', { type: 'string', group: 'Message' } + RocketChat.settings.add 'Message_ShowEditedStatus', '', { type: 'string', group: 'Message' } + RocketChat.settings.add 'Message_ShowDeletedStatus', '', { type: 'string', group: 'Message' } + RocketChat.settings.add 'Message_KeepStatusHistory', '', { type: 'string', group: 'Message' } From 9a74d7d7979793c14c57284f5b96bd3ec1efe35b Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Wed, 15 Jul 2015 09:43:31 -0300 Subject: [PATCH 15/17] Use rocket chat settings --- client/views/main.coffee | 2 +- server/lib/ldap.coffee | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/client/views/main.coffee b/client/views/main.coffee index 66ac18e5aec..c6bb7559daf 100644 --- a/client/views/main.coffee +++ b/client/views/main.coffee @@ -4,7 +4,7 @@ Template.body.onRendered -> d = document s = 'script' l = 'dataLayer' - i = RocketChat.settings.get('API_Analytics')?.value + i = RocketChat.settings.get 'API_Analytics' if i do (w,d,s,l,i) -> w[l] = w[l] || [] diff --git a/server/lib/ldap.coffee b/server/lib/ldap.coffee index 959fa1f29df..ec8e3d21f2c 100644 --- a/server/lib/ldap.coffee +++ b/server/lib/ldap.coffee @@ -1,3 +1,5 @@ -LDAP_DEFAULTS.url = "ldap://ldap.forumsys.com" -LDAP_DEFAULTS.port = '389' -LDAP_DEFAULTS.dn = false \ No newline at end of file +Meteor.startup -> + if RocketChat.settings.get 'LDAP_URL' + LDAP_DEFAULTS.url = RocketChat.settings.get 'LDAP_URL' + LDAP_DEFAULTS.port = RocketChat.settings.get 'LDAP_PORT' if RocketChat.settings.get 'LDAP_PORT' + LDAP_DEFAULTS.dn = RocketChat.settings.get 'LDAP_DN' or false \ No newline at end of file From 98bfc6c785b6a06275ff8491a5b754f965a8d87f Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Wed, 15 Jul 2015 09:51:58 -0300 Subject: [PATCH 16/17] remove unused size2 avatar settings --- server/startup/migrations/v8.coffee | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/startup/migrations/v8.coffee b/server/startup/migrations/v8.coffee index 36d8c6aeaba..637e3f9a7ff 100644 --- a/server/startup/migrations/v8.coffee +++ b/server/startup/migrations/v8.coffee @@ -12,6 +12,4 @@ Meteor.startup -> Settings.insert { _id: 'KADIRA_APP_SECRET', value: settings.kadira.appSecret, type: 'string', group: 'API' } if settings.kadira?.appSecret? Settings.insert { _id: 'avatarStore_type', value: settings.public.avatarStore.type, type: 'string', group: 'API' } if settings.public?.avatarStore?.type? Settings.insert { _id: 'avatarStore_path', value: settings.public.avatarStore.path, type: 'string', group: 'API' } if settings.public?.avatarStore?.path? - Settings.insert { _id: 'avatarStore_size2_height', value: settings.public.avatarStore.size2.height, type: 'string', group: 'API' } if settings.public?.avatarStore?.size2?.height? - Settings.insert { _id: 'avatarStore_size2_width', value: settings.public.avatarStore.size2.width, type: 'string', group: 'API' } if settings.public?.avatarStore?.size2?.width? Settings.remove { _id: 'settings' } \ No newline at end of file From c51aa061b07116940328e0579a89441aa53aa106 Mon Sep 17 00:00:00 2001 From: Marcelo Schmidt Date: Wed, 15 Jul 2015 11:38:43 -0300 Subject: [PATCH 17/17] TAPi18n --- client/views/settings/settings.coffee | 2 ++ client/views/settings/settings.html | 4 ++-- packages/rocketchat-ldap/i18n/en.i18n.json | 5 +++++ packages/rocketchat-ldap/i18n/pt.i18n.json | 5 +++++ packages/rocketchat-ldap/lib/ldapjs.js | 8 +++++++- packages/rocketchat-ldap/package-tap.i18n | 0 packages/rocketchat-ldap/package.js | 8 ++++++++ packages/rocketchat-lib/settings/server/startup.coffee | 3 --- 8 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 packages/rocketchat-ldap/i18n/en.i18n.json create mode 100644 packages/rocketchat-ldap/i18n/pt.i18n.json create mode 100644 packages/rocketchat-ldap/package-tap.i18n diff --git a/client/views/settings/settings.coffee b/client/views/settings/settings.coffee index 9e5b1ddbcc0..59098616021 100644 --- a/client/views/settings/settings.coffee +++ b/client/views/settings/settings.coffee @@ -10,6 +10,8 @@ Template.settings.helpers arrowPosition: -> console.log 'room.helpers arrowPosition' if window.rocketDebug return 'left' unless Session.equals('flexOpened', true) + label: -> + return TAPi18next.t @i18nLabel Template.settings.events "click .burger": -> diff --git a/client/views/settings/settings.html b/client/views/settings/settings.html index eca9105b496..45ca3e4415a 100644 --- a/client/views/settings/settings.html +++ b/client/views/settings/settings.html @@ -13,7 +13,7 @@
    -

    {{_ group.i18nLabel}}

    +

    {{label}}

    @@ -22,7 +22,7 @@ {{#each settings}}
    - +
    diff --git a/packages/rocketchat-ldap/i18n/en.i18n.json b/packages/rocketchat-ldap/i18n/en.i18n.json new file mode 100644 index 00000000000..7269b91d346 --- /dev/null +++ b/packages/rocketchat-ldap/i18n/en.i18n.json @@ -0,0 +1,5 @@ +{ + "LDAP_Url" : "LDAP URL", + "LDAP_Port" : "LDAP Port", + "LDAP_Dn" : "LDAP DN" +} \ No newline at end of file diff --git a/packages/rocketchat-ldap/i18n/pt.i18n.json b/packages/rocketchat-ldap/i18n/pt.i18n.json new file mode 100644 index 00000000000..8728d45f566 --- /dev/null +++ b/packages/rocketchat-ldap/i18n/pt.i18n.json @@ -0,0 +1,5 @@ +{ + "LDAP_Url" : "URL LDAP", + "LDAP_Port" : "Porta LDAP", + "LDAP_Dn" : "DN LDAP" +} \ No newline at end of file diff --git a/packages/rocketchat-ldap/lib/ldapjs.js b/packages/rocketchat-ldap/lib/ldapjs.js index bbec7c392bb..ffa32ccf409 100644 --- a/packages/rocketchat-ldap/lib/ldapjs.js +++ b/packages/rocketchat-ldap/lib/ldapjs.js @@ -1 +1,7 @@ -MeteorWrapperLdapjs = Npm.require('ldapjs'); \ No newline at end of file +MeteorWrapperLdapjs = Npm.require('ldapjs'); + +Meteor.startup(function() { + RocketChat.settings.add('LDAP_Url', '', { type: 'string', group: 'Accounts', i18nLabel: 'rocketchat-ldap:LDAP_Url' }); + RocketChat.settings.add('LDAP_Port', '', { type: 'string', group: 'Accounts', i18nLabel: 'rocketchat-ldap:LDAP_Port' }); + RocketChat.settings.add('LDAP_DN', '', { type: 'string', group: 'Accounts', i18nLabel: 'rocketchat-ldap:LDAP_Dn', public: true }); +}); \ No newline at end of file diff --git a/packages/rocketchat-ldap/package-tap.i18n b/packages/rocketchat-ldap/package-tap.i18n new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/rocketchat-ldap/package.js b/packages/rocketchat-ldap/package.js index 176369acc47..a8b50791d5d 100644 --- a/packages/rocketchat-ldap/package.js +++ b/packages/rocketchat-ldap/package.js @@ -12,6 +12,9 @@ Npm.depends({ Package.onUse(function(api) { api.versionsFrom('1.0.3.1'); + api.use(["tap:i18n@1.5.1"], ["client", "server"]); + api.add_files("package-tap.i18n", ["client", "server"]); + api.use(['templating'], 'client'); api.use(['accounts-base', 'accounts-password'], 'server'); @@ -19,6 +22,11 @@ Package.onUse(function(api) { api.addFiles(['ldap_client.js'], 'client'); api.addFiles(['ldap_server.js', 'lib/ldapjs.js'], 'server'); + api.add_files([ + "i18n/en.i18n.json", + "i18n/pt.i18n.json" + ], ["client", "server"]); + api.export('LDAP', 'server'); api.export('LDAP_DEFAULTS', 'server'); api.export([ diff --git a/packages/rocketchat-lib/settings/server/startup.coffee b/packages/rocketchat-lib/settings/server/startup.coffee index c47497ae186..33dbf559eb4 100644 --- a/packages/rocketchat-lib/settings/server/startup.coffee +++ b/packages/rocketchat-lib/settings/server/startup.coffee @@ -2,9 +2,6 @@ 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 } - RocketChat.settings.add 'LDAP_Url', '', { type: 'string', group: 'Accounts' } - RocketChat.settings.add 'LDAP_Port', '', { type: 'string', group: 'Accounts' } - RocketChat.settings.add 'LDAP_DN', '', { type: 'string', group: 'Accounts', public: true } RocketChat.settings.addGroup 'API' RocketChat.settings.add 'API_Analytics', '', { type: 'string', group: 'API', public: true }