Skip to content
Snippets Groups Projects
Unverified Commit ab9371e5 authored by Rodrigo Nascimento's avatar Rodrigo Nascimento
Browse files

Improve lazy loading of custom fields and translations

parent 0522d2ca
No related branches found
No related tags found
No related merge requests found
Meteor.startup(function() {
Meteor.autorun(function() {
let CustomTranslations = RocketChat.settings.get('Custom_Translations');
try {
CustomTranslations = JSON.parse(CustomTranslations);
} catch (e) {
console.error('Invalid setting Custom_Translations', e);
}
if (typeof CustomTranslations === 'string' && CustomTranslations.trim() !== '') {
try {
CustomTranslations = JSON.parse(CustomTranslations);
for (const lang in CustomTranslations) {
if (CustomTranslations.hasOwnProperty(lang)) {
const translations = CustomTranslations[lang];
TAPi18next.addResourceBundle(lang, 'project', translations);
for (const lang in CustomTranslations) {
if (CustomTranslations.hasOwnProperty(lang)) {
const translations = CustomTranslations[lang];
TAPi18next.addResourceBundle(lang, 'project', translations);
}
}
} catch (e) {
console.error('Invalid setting Custom_Translations', e);
}
}
});
......
......@@ -47,11 +47,11 @@ Template.loginForm.helpers
return OnePassword?.findLoginForUrl? && device?.platform?.toLocaleLowerCase() is 'ios'
customFields: ->
if not Template.instance().customFields
if not Template.instance().customFields.get()
return []
customFieldsArray = []
for key, value of Template.instance().customFields
for key, value of Template.instance().customFields.get()
customFieldsArray.push
fieldName: key,
field: value
......@@ -150,12 +150,17 @@ Template.loginForm.events
Template.loginForm.onCreated ->
instance = @
@customFields = new ReactiveVar
if RocketChat.settings.get('Accounts_CustomFields') isnt ''
try
@customFields = JSON.parse RocketChat.settings.get('Accounts_CustomFields')
catch e
console.error('Invalid JSON for Accounts_CustomFields')
Tracker.autorun =>
Accounts_CustomFields = RocketChat.settings.get('Accounts_CustomFields')
if typeof Accounts_CustomFields is 'string' and Accounts_CustomFields.trim() isnt ''
try
@customFields.set JSON.parse RocketChat.settings.get('Accounts_CustomFields')
catch e
console.error('Invalid JSON for Accounts_CustomFields')
else
@customFields.set undefined
if Meteor.settings.public.sandstorm
@state = new ReactiveVar('sandstorm')
......@@ -167,11 +172,12 @@ Template.loginForm.onCreated ->
@validSecretURL = new ReactiveVar(false)
validateCustomFields = (formObj, validationObj) ->
if not instance.customFields
customFields = instance.customFields.get()
if not customFields
return
for field, value of formObj when instance.customFields[field]?
customField = instance.customFields[field]
for field, value of formObj when customFields[field]?
customField = customFields[field]
if customField.required is true and not value
return validationObj[field] = t('Field_required')
......
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