diff --git a/client/components/main/globalSearch.js b/client/components/main/globalSearch.js index 505675f54..648011e0c 100644 --- a/client/components/main/globalSearch.js +++ b/client/components/main/globalSearch.js @@ -78,12 +78,10 @@ BlazeComponent.extendComponent({ onRendered() { Meteor.subscribe('setting'); - this.colorMap = {}; - for (const color of Boards.simpleSchema()._schema['labels.$.color'] - .allowedValues) { - this.colorMap[TAPi18n.__(`color-${color}`)] = color; - } - // // eslint-disable-next-line no-console + // eslint-disable-next-line no-console + console.log('lang:', TAPi18n.getLanguage()); + this.colorMap = Boards.colorMap(); + // eslint-disable-next-line no-console // console.log('colorMap:', this.colorMap); if (Session.get('globalQuery')) { @@ -296,13 +294,14 @@ BlazeComponent.extendComponent({ if (m.groups.operator) { op = m.groups.operator.toLowerCase(); } else { - op = m.groups.abbrev; + op = m.groups.abbrev.toLowerCase(); } if (operatorMap.hasOwnProperty(op)) { let value = m.groups.value; if (operatorMap[op] === 'labels') { if (value in this.colorMap) { value = this.colorMap[value]; + // console.log('found color:', value); } } else if ( ['dueAt', 'createdAt', 'modifiedAt'].includes(operatorMap[op]) @@ -388,7 +387,7 @@ BlazeComponent.extendComponent({ params.text = text; // eslint-disable-next-line no-console - // console.log('params:', params); + console.log('params:', params); this.queryParams = params; diff --git a/client/lib/i18n.js b/client/lib/i18n.js index b4a95eae2..d6fe258b0 100644 --- a/client/lib/i18n.js +++ b/client/lib/i18n.js @@ -4,24 +4,24 @@ Meteor.startup(() => { TAPi18n.conf.i18n_files_route = Meteor._relativeToSiteRootUrl('/tap-i18n'); - Tracker.autorun(() => { - const currentUser = Meteor.user(); - let language; - if (currentUser) { - language = currentUser.profile && currentUser.profile.language; - } + const currentUser = Meteor.user(); + let language; + if (currentUser) { + language = currentUser.profile && currentUser.profile.language; + } - if (!language) { - if (navigator.languages) { - language = navigator.languages[0]; - } else { - language = navigator.language || navigator.userLanguage; - } + if (!language) { + if (navigator.languages) { + language = navigator.languages[0]; + } else { + language = navigator.language || navigator.userLanguage; } + } - if (language) { - TAPi18n.setLanguage(language); - T9n.setLanguage(language); - } - }); + if (language) { + TAPi18n.setLanguage(language); + // eslint-disable-next-line no-console + console.log('language set!'); + T9n.setLanguage(language); + } }); diff --git a/models/boards.js b/models/boards.js index c08148d9f..fe167f5f9 100644 --- a/models/boards.js +++ b/models/boards.js @@ -1318,6 +1318,18 @@ Boards.userBoardIds = (userId, archived = false, selector = {}) => { }); }; +Boards.colorMap = () => { + const colors = {}; + for (const color of Boards.labelColors()) { + colors[TAPi18n.__(`color-${color}`)] = color; + } + return colors; +}; + +Boards.labelColors = () => { + return _.clone(Boards.simpleSchema()._schema['labels.$.color'].allowedValues); +}; + if (Meteor.isServer) { Boards.allow({ insert: Meteor.userId, diff --git a/server/publications/cards.js b/server/publications/cards.js index 5b93d9c7c..7353f1eb3 100644 --- a/server/publications/cards.js +++ b/server/publications/cards.js @@ -200,11 +200,7 @@ Meteor.publish('globalSearch', function(sessionId, queryParams) { comments: [], }; - this.colorMap = {}; - for (const color of Boards.simpleSchema()._schema['labels.$.color'] - .allowedValues) { - this.colorMap[TAPi18n.__(`color-${color}`)] = color; - } + this.colorMap = Boards.colorMap(); } hasErrors() { @@ -234,7 +230,11 @@ Meteor.publish('globalSearch', function(sessionId, queryParams) { }); }); this.notFound.labels.forEach(label => { - messages.push({ tag: 'label-not-found', value: label, color: true }); + messages.push({ + tag: 'label-not-found', + value: label, + color: Boards.labelColors().includes(label), + }); }); this.notFound.users.forEach(user => { messages.push({ tag: 'user-username-not-found', value: user });