From 794c6431e3668d5efbb2f19ea166444aaad2832d Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 18 Oct 2016 15:53:56 +0100 Subject: [PATCH 1/8] project name should be clickable href in invite email --- services/web/app/coffee/Features/Email/EmailBuilder.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/app/coffee/Features/Email/EmailBuilder.coffee b/services/web/app/coffee/Features/Email/EmailBuilder.coffee index f7a7a78a05..562fee0936 100644 --- a/services/web/app/coffee/Features/Email/EmailBuilder.coffee +++ b/services/web/app/coffee/Features/Email/EmailBuilder.coffee @@ -92,7 +92,7 @@ templates.projectInvite = layout: NotificationEmailLayout type:"notification" compiledTemplate: _.template """ -

Hi, <%= owner.email %> wants to share '<%= project.name %>' with you

+

Hi, <%= owner.email %> wants to share '<%= project.name %>' with you

From aacdb1e96bd58ba2c1ffcec4edf6ccab87c367f8 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 28 Nov 2016 19:19:00 +0000 Subject: [PATCH 2/8] to string record event check --- .../web/app/coffee/Features/Analytics/AnalyticsManager.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/app/coffee/Features/Analytics/AnalyticsManager.coffee b/services/web/app/coffee/Features/Analytics/AnalyticsManager.coffee index 6840f8fa88..9f34d6d9d1 100644 --- a/services/web/app/coffee/Features/Analytics/AnalyticsManager.coffee +++ b/services/web/app/coffee/Features/Analytics/AnalyticsManager.coffee @@ -18,7 +18,7 @@ module.exports = recordEvent: (user_id, event, segmentation = {}, callback = (error) ->) -> - if user_id == settings.smokeTest?.userId + if user_id+"" == settings.smokeTest?.userId+"" return callback() opts = body: From 6e9458e9e158ef4a6d30702d754b62b05a6ed62c Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 29 Nov 2016 14:38:25 +0000 Subject: [PATCH 3/8] wip --- .../infrastructure/ExpressLocals.coffee | 19 +++++++++++++++++++ services/web/app/views/project/list.jade | 3 ++- .../web/app/views/project/list/side-bar.jade | 9 ++++++++- .../left-hand-menu-promo-controller.coffee | 5 ++++- 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/services/web/app/coffee/infrastructure/ExpressLocals.coffee b/services/web/app/coffee/infrastructure/ExpressLocals.coffee index e469df9422..ce997f2eaf 100644 --- a/services/web/app/coffee/infrastructure/ExpressLocals.coffee +++ b/services/web/app/coffee/infrastructure/ExpressLocals.coffee @@ -189,6 +189,25 @@ module.exports = (app, webRouter, apiRouter)-> return AuthenticationController.isUserLoggedIn(req) res.locals.getSessionUser = -> return AuthenticationController.getSessionUser(req) + + res.locals.caseStudyToShow = -> + Settings.caseStudysToShow = [ + { + url:"http://www.sharelatex.com/i/university/indiana", + domains: ["sharelatex.com", 'chicargo.edu'], + title: "Indiana University Case Study", + logo:"/img/crests/logo/iu.png" + } + + ] + + caseStudy = _.filter Settings.caseStudysToShow, (caseStudy)-> + matches = _.filter caseStudy.domains, (domain)-> + email = AuthenticationController.getSessionUser(req)?.email + return email.indexOf(domain) != -1 + return matches.length > 0 + + return caseStudy?[0] or {} next() webRouter.use (req, res, next) -> diff --git a/services/web/app/views/project/list.jade b/services/web/app/views/project/list.jade index 6f1d87424a..9739e54621 100644 --- a/services/web/app/views/project/list.jade +++ b/services/web/app/views/project/list.jade @@ -10,7 +10,8 @@ block content window.data = { projects: !{JSON.stringify(projects).replace(/\//g, '\\/')}, tags: !{JSON.stringify(tags).replace(/\//g, '\\/')}, - notifications: !{JSON.stringify(notifications).replace(/\//g, '\\/')} + notifications: !{JSON.stringify(notifications).replace(/\//g, '\\/')}, + caseStudy: !{JSON.stringify(caseStudyToShow())} }; window.algolia = { institutions: { diff --git a/services/web/app/views/project/list/side-bar.jade b/services/web/app/views/project/list/side-bar.jade index 1fb0e2bda9..d3eaeaaba7 100644 --- a/services/web/app/views/project/list/side-bar.jade +++ b/services/web/app/views/project/list/side-bar.jade @@ -94,7 +94,7 @@ - if (showUserDetailsArea) span(ng-controller="LeftHandMenuPromoController", ng-cloak) - .row-spaced#userProfileInformation(ng-if="hasProjects") + .row-spaced#userProfileInformation(ng-if="hasProjects && !showCaseStudy") div(ng-controller="UserProfileController") hr(ng-show="percentComplete < 100") .text-centered.user-profile(ng-show="percentComplete < 100") @@ -108,6 +108,13 @@ ng-click="openUserProfileModal()" ) #{translate("complete")} + .row-spaced(ng-if="hasProjects && showCaseStudy", ng-cloak).text-centered + hr + a(href="{{caseStudy.url}}") + p.small read about: + p + img(src="{{caseStudy.logo}}") + a(href="{{caseStudy.url}}") {{caseStudy.title}} .row-spaced(ng-if="hasProjects && userHasNoSubscription", ng-cloak).text-centered hr diff --git a/services/web/public/coffee/main/project-list/left-hand-menu-promo-controller.coffee b/services/web/public/coffee/main/project-list/left-hand-menu-promo-controller.coffee index 5a96bde5c1..d5d1a2b110 100644 --- a/services/web/public/coffee/main/project-list/left-hand-menu-promo-controller.coffee +++ b/services/web/public/coffee/main/project-list/left-hand-menu-promo-controller.coffee @@ -6,4 +6,7 @@ define [ $scope.hasProjects = window.data.projects.length > 0 $scope.userHasNoSubscription = window.userHasNoSubscription - $scope.randomView = _.shuffle(["default", "dropbox", "github"])[0] + + $scope.showCaseStudy = window.data.caseStudy?.url? + $scope.caseStudy = window.data.caseStudy + From 1de8b3bce7886f3904239de1212a4de4090e9631 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Tue, 24 Jan 2017 15:19:48 +0000 Subject: [PATCH 4/8] Disable text selection with right click on file tree. --- services/web/public/stylesheets/app/editor/file-tree.less | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/web/public/stylesheets/app/editor/file-tree.less b/services/web/public/stylesheets/app/editor/file-tree.less index 5a4d7feed1..7847822bf9 100644 --- a/services/web/public/stylesheets/app/editor/file-tree.less +++ b/services/web/public/stylesheets/app/editor/file-tree.less @@ -35,6 +35,10 @@ aside#file-tree { line-height: 2.6; position: relative; + .entity { + user-select: none; + } + .entity-name { color: @gray-darker; cursor: pointer; From 13d21b881f7a17a7c4b0a986545a2d271303e9f9 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 24 Jan 2017 16:03:05 +0000 Subject: [PATCH 5/8] use new annoncments feature for case study info --- .../AnnouncementsController.coffee | 6 ++-- .../Announcements/AnnouncementsHandler.coffee | 36 +++++++++++++++---- .../infrastructure/ExpressLocals.coffee | 18 ---------- services/web/app/views/project/list.jade | 1 - .../web/app/views/project/list/side-bar.jade | 9 +---- .../left-hand-menu-promo-controller.coffee | 3 -- .../AnnouncementsHandlerTests.coffee | 36 ++++++++++++++++--- 7 files changed, 65 insertions(+), 44 deletions(-) diff --git a/services/web/app/coffee/Features/Announcements/AnnouncementsController.coffee b/services/web/app/coffee/Features/Announcements/AnnouncementsController.coffee index 65013eae46..aeda79b003 100644 --- a/services/web/app/coffee/Features/Announcements/AnnouncementsController.coffee +++ b/services/web/app/coffee/Features/Announcements/AnnouncementsController.coffee @@ -9,9 +9,9 @@ module.exports = if !settings?.apis?.analytics?.url? or !settings.apis.blog.url? return res.json [] - user_id = AuthenticationController.getLoggedInUserId(req) - logger.log {user_id}, "getting unread announcements" - AnnouncementsHandler.getUnreadAnnouncements user_id, (err, announcements)-> + user = AuthenticationController.getSessionUser(req) + logger.log {user_id:user?._id}, "getting unread announcements" + AnnouncementsHandler.getUnreadAnnouncements user, (err, announcements)-> if err? logger.err {err, user_id}, "unable to get unread announcements" next(err) diff --git a/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee b/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee index ce41e3b96c..1ea675fbf3 100644 --- a/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee +++ b/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee @@ -5,20 +5,44 @@ _ = require("lodash") logger = require("logger-sharelatex") settings = require("settings-sharelatex") -module.exports = - getUnreadAnnouncements : (user_id, callback = (err, announcements)->)-> + + +module.exports = AnnouncementsHandler = + + + + _domainSpecificAnnouncements : (email)-> + domainSpecific = _.filter settings?.domainAnnouncmentsToShow, (domainAnnouncment)-> + matches = _.filter domainAnnouncment.domains, (domain)-> + return email.indexOf(domain) != -1 + return matches.length > 0 + return domainSpecific or [] + + + getUnreadAnnouncements : (user, callback = (err, announcements)->)-> async.parallel { lastEvent: (cb)-> - AnalyticsManager.getLastOccurance user_id, "announcement-alert-dismissed", cb + AnalyticsManager.getLastOccurance user?._id, "announcement-alert-dismissed", cb announcements: (cb)-> BlogHandler.getLatestAnnouncements cb }, (err, results)-> if err? - logger.err err:err, user_id:user_id, "error getting unread announcements" + logger.err err:err, user_id:user?._id, "error getting unread announcements" return callback(err) - announcements = _.sortBy(results.announcements, "date").reverse() + domainSpecific = AnnouncementsHandler._domainSpecificAnnouncements(user?.email) + + domainSpecific = _.map domainSpecific, (domainAnnouncment)-> + try + domainAnnouncment.date = new Date(domainAnnouncment.date) + return domainAnnouncment + catch e + return callback(e) + + announcements = results.announcements + announcements = _.union announcements, domainSpecific + announcements = _.sortBy(announcements, "date").reverse() lastSeenBlogId = results?.lastEvent?.segmentation?.blogPostId @@ -35,6 +59,6 @@ module.exports = announcement.read = read return announcement - logger.log announcementsLength:announcements?.length, user_id:user_id, "returning announcements" + logger.log announcementsLength:announcements?.length, user_id:user?._id, "returning announcements" callback null, announcements diff --git a/services/web/app/coffee/infrastructure/ExpressLocals.coffee b/services/web/app/coffee/infrastructure/ExpressLocals.coffee index c0b4412d19..8124d13d93 100644 --- a/services/web/app/coffee/infrastructure/ExpressLocals.coffee +++ b/services/web/app/coffee/infrastructure/ExpressLocals.coffee @@ -190,24 +190,6 @@ module.exports = (app, webRouter, apiRouter)-> res.locals.getSessionUser = -> return AuthenticationController.getSessionUser(req) - res.locals.caseStudyToShow = -> - Settings.caseStudysToShow = [ - { - url:"http://www.sharelatex.com/i/university/indiana", - domains: ["sharelatex.com", 'chicargo.edu'], - title: "Indiana University Case Study", - logo:"/img/crests/logo/iu.png" - } - - ] - - caseStudy = _.filter Settings.caseStudysToShow, (caseStudy)-> - matches = _.filter caseStudy.domains, (domain)-> - email = AuthenticationController.getSessionUser(req)?.email - return email.indexOf(domain) != -1 - return matches.length > 0 - - return caseStudy?[0] or {} next() webRouter.use (req, res, next) -> diff --git a/services/web/app/views/project/list.jade b/services/web/app/views/project/list.jade index 5d5729ad08..44fa99a5e3 100644 --- a/services/web/app/views/project/list.jade +++ b/services/web/app/views/project/list.jade @@ -11,7 +11,6 @@ block content projects: !{JSON.stringify(projects).replace(/\//g, '\\/')}, tags: !{JSON.stringify(tags).replace(/\//g, '\\/')}, notifications: !{JSON.stringify(notifications).replace(/\//g, '\\/')}, - caseStudy: !{JSON.stringify(caseStudyToShow())} }; window.algolia = { institutions: { diff --git a/services/web/app/views/project/list/side-bar.jade b/services/web/app/views/project/list/side-bar.jade index d3eaeaaba7..1fb0e2bda9 100644 --- a/services/web/app/views/project/list/side-bar.jade +++ b/services/web/app/views/project/list/side-bar.jade @@ -94,7 +94,7 @@ - if (showUserDetailsArea) span(ng-controller="LeftHandMenuPromoController", ng-cloak) - .row-spaced#userProfileInformation(ng-if="hasProjects && !showCaseStudy") + .row-spaced#userProfileInformation(ng-if="hasProjects") div(ng-controller="UserProfileController") hr(ng-show="percentComplete < 100") .text-centered.user-profile(ng-show="percentComplete < 100") @@ -108,13 +108,6 @@ ng-click="openUserProfileModal()" ) #{translate("complete")} - .row-spaced(ng-if="hasProjects && showCaseStudy", ng-cloak).text-centered - hr - a(href="{{caseStudy.url}}") - p.small read about: - p - img(src="{{caseStudy.logo}}") - a(href="{{caseStudy.url}}") {{caseStudy.title}} .row-spaced(ng-if="hasProjects && userHasNoSubscription", ng-cloak).text-centered hr diff --git a/services/web/public/coffee/main/project-list/left-hand-menu-promo-controller.coffee b/services/web/public/coffee/main/project-list/left-hand-menu-promo-controller.coffee index d5d1a2b110..9fdb3e9ca2 100644 --- a/services/web/public/coffee/main/project-list/left-hand-menu-promo-controller.coffee +++ b/services/web/public/coffee/main/project-list/left-hand-menu-promo-controller.coffee @@ -7,6 +7,3 @@ define [ $scope.hasProjects = window.data.projects.length > 0 $scope.userHasNoSubscription = window.userHasNoSubscription - $scope.showCaseStudy = window.data.caseStudy?.url? - $scope.caseStudy = window.data.caseStudy - diff --git a/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee b/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee index 49e8292f97..e1d9fcc7f6 100644 --- a/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee +++ b/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee @@ -10,7 +10,9 @@ expect = require("chai").expect describe 'AnnouncementsHandler', -> beforeEach -> - @user_id = "some_id" + @user = + _id:"some_id" + email: "someone@gmail.com" @AnalyticsManager = getLastOccurance: sinon.stub() @BlogHandler = @@ -44,7 +46,7 @@ describe 'AnnouncementsHandler', -> it "should mark all announcements as read is false", (done)-> @AnalyticsManager.getLastOccurance.callsArgWith(2, null, []) - @handler.getUnreadAnnouncements @user_id, (err, announcements)=> + @handler.getUnreadAnnouncements @user, (err, announcements)=> announcements[0].read.should.equal false announcements[1].read.should.equal false announcements[2].read.should.equal false @@ -53,7 +55,7 @@ describe 'AnnouncementsHandler', -> it "should should be sorted again to ensure correct order", (done)-> @AnalyticsManager.getLastOccurance.callsArgWith(2, null, []) - @handler.getUnreadAnnouncements @user_id, (err, announcements)=> + @handler.getUnreadAnnouncements @user, (err, announcements)=> announcements[3].should.equal @stubbedAnnouncements[2] announcements[2].should.equal @stubbedAnnouncements[3] announcements[1].should.equal @stubbedAnnouncements[1] @@ -62,7 +64,7 @@ describe 'AnnouncementsHandler', -> it "should return older ones marked as read as well", (done)-> @AnalyticsManager.getLastOccurance.callsArgWith(2, null, {segmentation:{blogPostId:"/2014/04/12/title-date-irrelivant"}}) - @handler.getUnreadAnnouncements @user_id, (err, announcements)=> + @handler.getUnreadAnnouncements @user, (err, announcements)=> announcements[0].id.should.equal @stubbedAnnouncements[0].id announcements[0].read.should.equal false @@ -79,7 +81,7 @@ describe 'AnnouncementsHandler', -> it "should return all of them marked as read", (done)-> @AnalyticsManager.getLastOccurance.callsArgWith(2, null, {segmentation:{blogPostId:"/2016/11/01/introducting-latex-code-checker"}}) - @handler.getUnreadAnnouncements @user_id, (err, announcements)=> + @handler.getUnreadAnnouncements @user, (err, announcements)=> announcements[0].read.should.equal true announcements[1].read.should.equal true announcements[2].read.should.equal true @@ -87,3 +89,27 @@ describe 'AnnouncementsHandler', -> done() + describe "with custom domain announcements", -> + beforeEach -> + @stubbedDomainSpecificAnn = [ + { + domains: ["gmail.com", 'yahoo.edu'] + title: "some message" + excerpt: "read this" + url:"http://www.sharelatex.com/i/somewhere" + id:"iaaa" + date: new Date(1308369600000).toString() + } + ] + + @handler._domainSpecificAnnouncements = sinon.stub().returns(@stubbedDomainSpecificAnn) + + it "should insert the domain specific in the correct place", (done)-> + @AnalyticsManager.getLastOccurance.callsArgWith(2, null, []) + @handler.getUnreadAnnouncements @user, (err, announcements)=> + announcements[4].should.equal @stubbedAnnouncements[2] + announcements[3].should.equal @stubbedAnnouncements[3] + announcements[2].should.equal @stubbedAnnouncements[1] + announcements[1].should.equal @stubbedDomainSpecificAnn[0] + announcements[0].should.equal @stubbedAnnouncements[0] + done() From 69ab275404057696ebcabb8f605116f9d2c43266 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Wed, 25 Jan 2017 09:14:21 +0000 Subject: [PATCH 6/8] Update list.jade --- services/web/app/views/project/list.jade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/web/app/views/project/list.jade b/services/web/app/views/project/list.jade index 44fa99a5e3..f707cd9411 100644 --- a/services/web/app/views/project/list.jade +++ b/services/web/app/views/project/list.jade @@ -10,7 +10,7 @@ block content window.data = { projects: !{JSON.stringify(projects).replace(/\//g, '\\/')}, tags: !{JSON.stringify(tags).replace(/\//g, '\\/')}, - notifications: !{JSON.stringify(notifications).replace(/\//g, '\\/')}, + notifications: !{JSON.stringify(notifications).replace(/\//g, '\\/')} }; window.algolia = { institutions: { @@ -73,4 +73,4 @@ block content .col-md-offset-2.col-md-8.col-md-offset-2.col-xs-8 include ./list/empty-project-list - include ./list/modals \ No newline at end of file + include ./list/modals From 1280a2313d177a563422c408e6613b2a5567a73a Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Wed, 25 Jan 2017 09:34:53 +0000 Subject: [PATCH 7/8] add check for id to exist in domain announcments null check user at start of getUnreadAnnouncements fix spelling mistake --- .../Announcements/AnnouncementsHandler.coffee | 15 +++--- .../AnnouncementsHandlerTests.coffee | 46 ++++++++++++++++++- 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee b/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee index 1ea675fbf3..161815dc6d 100644 --- a/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee +++ b/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee @@ -1,9 +1,9 @@ AnalyticsManager = require("../Analytics/AnalyticsManager") BlogHandler = require("../Blog/BlogHandler") -async = require("async") -_ = require("lodash") logger = require("logger-sharelatex") settings = require("settings-sharelatex") +async = require("async") +_ = require("lodash") @@ -13,22 +13,25 @@ module.exports = AnnouncementsHandler = _domainSpecificAnnouncements : (email)-> - domainSpecific = _.filter settings?.domainAnnouncmentsToShow, (domainAnnouncment)-> + domainSpecific = _.filter settings?.domainAnnouncementsToShow, (domainAnnouncment)-> matches = _.filter domainAnnouncment.domains, (domain)-> return email.indexOf(domain) != -1 - return matches.length > 0 + return matches.length > 0 and domainAnnouncment.id? return domainSpecific or [] getUnreadAnnouncements : (user, callback = (err, announcements)->)-> + if !user? and !user._id? + return callback("user not supplied") + async.parallel { lastEvent: (cb)-> - AnalyticsManager.getLastOccurance user?._id, "announcement-alert-dismissed", cb + AnalyticsManager.getLastOccurance user._id, "announcement-alert-dismissed", cb announcements: (cb)-> BlogHandler.getLatestAnnouncements cb }, (err, results)-> if err? - logger.err err:err, user_id:user?._id, "error getting unread announcements" + logger.err err:err, user_id:user._id, "error getting unread announcements" return callback(err) domainSpecific = AnnouncementsHandler._domainSpecificAnnouncements(user?.email) diff --git a/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee b/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee index e1d9fcc7f6..bd5070644e 100644 --- a/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee +++ b/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee @@ -17,13 +17,14 @@ describe 'AnnouncementsHandler', -> getLastOccurance: sinon.stub() @BlogHandler = getLatestAnnouncements:sinon.stub() + @settings = {} @handler = SandboxedModule.require modulePath, requires: "../Analytics/AnalyticsManager":@AnalyticsManager "../Blog/BlogHandler":@BlogHandler + "settings-sharelatex":@settings "logger-sharelatex": log:-> - describe "getUnreadAnnouncements", -> beforeEach -> @stubbedAnnouncements = [ @@ -113,3 +114,46 @@ describe 'AnnouncementsHandler', -> announcements[1].should.equal @stubbedDomainSpecificAnn[0] announcements[0].should.equal @stubbedAnnouncements[0] done() + + describe "_domainSpecificAnnouncements", -> + beforeEach -> + @settings.domainAnnouncementsToShow = [ + { + domains: ["gmail.com", 'yahoo.edu'] + title: "some message" + excerpt: "read this" + url:"http://www.sharelatex.com/i/somewhere" + id:"id1" + date: new Date(1308369600000).toString() + }, { + domains: ["gmail.com", 'yahoo.edu'] + title: "some message" + excerpt: "read this" + url:"http://www.sharelatex.com/i/somewhere" + date: new Date(1308369600000).toString() + }, { + domains: ["gmail.com", 'yahoo.edu'] + title: "some message" + excerpt: "read this" + url:"http://www.sharelatex.com/i/somewhere" + id:"id3" + date: new Date(1308369600000).toString() + } + ] + + it "should filter announcments which don't have an id", (done) -> + result = @handler._domainSpecificAnnouncements "someone@gmail.com" + result.length.should.equal 2 + result[0].id.should.equal "id1" + result[1].id.should.equal "id3" + done() + + + it "should match on domain", (done) -> + @settings.domainAnnouncementsToShow[2].domains = ["yahoo.com"] + result = @handler._domainSpecificAnnouncements "someone@gmail.com" + result.length.should.equal 1 + result[0].id.should.equal "id1" + done() + + From cc717f035761e62d93a1fc1137c5ee6acea08a13 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Wed, 25 Jan 2017 09:43:42 +0000 Subject: [PATCH 8/8] domainAnnouncementsToShow -> domainAnnouncements --- .../Features/Announcements/AnnouncementsHandler.coffee | 7 +------ .../coffee/Announcement/AnnouncementsHandlerTests.coffee | 4 ++-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee b/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee index 161815dc6d..9934a8bf69 100644 --- a/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee +++ b/services/web/app/coffee/Features/Announcements/AnnouncementsHandler.coffee @@ -5,15 +5,10 @@ settings = require("settings-sharelatex") async = require("async") _ = require("lodash") - - - module.exports = AnnouncementsHandler = - - _domainSpecificAnnouncements : (email)-> - domainSpecific = _.filter settings?.domainAnnouncementsToShow, (domainAnnouncment)-> + domainSpecific = _.filter settings?.domainAnnouncements, (domainAnnouncment)-> matches = _.filter domainAnnouncment.domains, (domain)-> return email.indexOf(domain) != -1 return matches.length > 0 and domainAnnouncment.id? diff --git a/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee b/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee index bd5070644e..daa0da0531 100644 --- a/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee +++ b/services/web/test/UnitTests/coffee/Announcement/AnnouncementsHandlerTests.coffee @@ -117,7 +117,7 @@ describe 'AnnouncementsHandler', -> describe "_domainSpecificAnnouncements", -> beforeEach -> - @settings.domainAnnouncementsToShow = [ + @settings.domainAnnouncements = [ { domains: ["gmail.com", 'yahoo.edu'] title: "some message" @@ -150,7 +150,7 @@ describe 'AnnouncementsHandler', -> it "should match on domain", (done) -> - @settings.domainAnnouncementsToShow[2].domains = ["yahoo.com"] + @settings.domainAnnouncements[2].domains = ["yahoo.com"] result = @handler._domainSpecificAnnouncements "someone@gmail.com" result.length.should.equal 1 result[0].id.should.equal "id1"