diff --git a/src/main/java/com/techlooper/service/impl/ChallengeEmailServiceImpl.java b/src/main/java/com/techlooper/service/impl/ChallengeEmailServiceImpl.java index 4ae12a02c..c6ee3cefc 100644 --- a/src/main/java/com/techlooper/service/impl/ChallengeEmailServiceImpl.java +++ b/src/main/java/com/techlooper/service/impl/ChallengeEmailServiceImpl.java @@ -305,6 +305,8 @@ private Map buildPostChallengeEmailTemplateModel(ChallengeEntity templateModel.put("authorEmail", challengeEntity.getAuthorEmail()); templateModel.put("challengeOverview", challengeEntity.getChallengeOverview()); templateModel.put("challengeNameAlias", challengeEntity.getChallengeName().replaceAll("\\W", "-")); + templateModel.put("challengeType", challengeEntity.getChallengeType().getValue()); + templateModel.put("companyDomains", StringUtils.join(challengeEntity.getCompanyDomains(), "
")); return templateModel; } diff --git a/src/main/java/com/techlooper/service/impl/ChallengeServiceImpl.java b/src/main/java/com/techlooper/service/impl/ChallengeServiceImpl.java index bf81b61b9..c07afb90d 100644 --- a/src/main/java/com/techlooper/service/impl/ChallengeServiceImpl.java +++ b/src/main/java/com/techlooper/service/impl/ChallengeServiceImpl.java @@ -109,8 +109,10 @@ public Long joinChallenge(ChallengeRegistrantDto challengeRegistrantDto) { } challengeRegistrantEntity.setMailSent(Boolean.TRUE); - Integer passCode = DataUtils.getRandomNumberInRange(MIN_RANDOM_SEED_NUMBER, MAX_RANDOM_SEED_NUMBER); - challengeRegistrantEntity.setPassCode(passCode); + if (challengeEntity.getChallengeType() == ChallengeTypeEnum.INTERNAL) { + Integer passCode = DataUtils.getRandomNumberInRange(MIN_RANDOM_SEED_NUMBER, MAX_RANDOM_SEED_NUMBER); + challengeRegistrantEntity.setPassCode(passCode); + } challengeRegistrantEntity = challengeRegistrantRepository.save(challengeRegistrantEntity); challengeEmailService.sendApplicationEmailToContestant(challengeEntity, challengeRegistrantEntity); @@ -287,7 +289,10 @@ private NativeSearchQueryBuilder getChallengeSearchQueryBuilder(ChallengeFilterC String challengeSearchText = challengeFilterCondition.getChallengeSearchText(); if (StringUtils.isNotEmpty(challengeSearchText)) { boolQueryBuilder.should(matchQuery("challengeName", challengeSearchText)); - boolQueryBuilder.should(matchQuery("companyDomains", challengeSearchText)); + + StringBuilder domainNameQueryStringBuilder = new StringBuilder(); + domainNameQueryStringBuilder.append("*").append(challengeSearchText).append("*"); + boolQueryBuilder.should(wildcardQuery("companyDomains", domainNameQueryStringBuilder.toString())); } else { boolQueryBuilder.should(matchAllQuery()); } diff --git a/src/main/resources/template/CHALLENGE_CONFIRM_ON_JOIN_INTERNAL_CHALLENGE_EN.ftl b/src/main/resources/template/CHALLENGE_CONFIRM_ON_JOIN_INTERNAL_CHALLENGE_EN.ftl index 22394baad..55d439655 100644 --- a/src/main/resources/template/CHALLENGE_CONFIRM_ON_JOIN_INTERNAL_CHALLENGE_EN.ftl +++ b/src/main/resources/template/CHALLENGE_CONFIRM_ON_JOIN_INTERNAL_CHALLENGE_EN.ftl @@ -233,14 +233,16 @@ - - - Password: - - - ${passCode} - - + <#if passCode??> + + + Password: + + + ${passCode} + + + diff --git a/src/main/resources/template/CHALLENGE_CONFIRM_ON_JOIN_INTERNAL_CHALLENGE_VI.ftl b/src/main/resources/template/CHALLENGE_CONFIRM_ON_JOIN_INTERNAL_CHALLENGE_VI.ftl index f23ceeed7..c1e63b620 100644 --- a/src/main/resources/template/CHALLENGE_CONFIRM_ON_JOIN_INTERNAL_CHALLENGE_VI.ftl +++ b/src/main/resources/template/CHALLENGE_CONFIRM_ON_JOIN_INTERNAL_CHALLENGE_VI.ftl @@ -233,14 +233,16 @@ - - - Mật Khẩu: - - - ${passCode} - - + <#if passCode??> + + + Mật Khẩu: + + + ${passCode} + + + diff --git a/src/main/resources/template/CHALLENGE_CONFIRM_ON_POST_CHALLENGE_EN.ftl b/src/main/resources/template/CHALLENGE_CONFIRM_ON_POST_CHALLENGE_EN.ftl index dabc3df4f..1a68bb698 100644 --- a/src/main/resources/template/CHALLENGE_CONFIRM_ON_POST_CHALLENGE_EN.ftl +++ b/src/main/resources/template/CHALLENGE_CONFIRM_ON_POST_CHALLENGE_EN.ftl @@ -161,7 +161,12 @@ - This person ${authorEmail} has just created successfully a challenge as follows + <#if challengeType == "PUBLIC"> + <#assign localizedChallengeType = "a public"> + <#elseif challengeType == "INTERNAL"> + <#assign localizedChallengeType = "an internal"> + + This person ${authorEmail} has just created successfully <#if localizedChallengeType??>${localizedChallengeType} challenge as follows @@ -201,6 +206,24 @@ + <#if companyDomains??> + + + Internal domain(s): + + + ${companyDomains} + + + + + + + + + + + Challenge Overview: diff --git a/src/main/resources/template/CHALLENGE_CONFIRM_ON_POST_CHALLENGE_VI.ftl b/src/main/resources/template/CHALLENGE_CONFIRM_ON_POST_CHALLENGE_VI.ftl index 419c07b2a..dd272088d 100644 --- a/src/main/resources/template/CHALLENGE_CONFIRM_ON_POST_CHALLENGE_VI.ftl +++ b/src/main/resources/template/CHALLENGE_CONFIRM_ON_POST_CHALLENGE_VI.ftl @@ -160,8 +160,13 @@ + <#if challengeType == "PUBLIC"> + <#assign localizedChallengeType = "công cộng"> + <#elseif challengeType == "INTERNAL"> + <#assign localizedChallengeType = "nội bộ"> + - ${authorEmail} vừa đăng thử thách với thông tin như sau: + ${authorEmail} vừa đăng thử thách <#if localizedChallengeType??>${localizedChallengeType} với thông tin như sau: @@ -201,6 +206,24 @@ + <#if companyDomains??> + + + Tên Miền Nội Bộ: + + + ${companyDomains} + + + + + + + + + + + Tổng Quan Thử Thách: diff --git a/src/main/webapp/assets/modules/common/feedback/feedback.html b/src/main/webapp/assets/modules/common/feedback/feedback.html index 5900740ff..614c1c7ea 100644 --- a/src/main/webapp/assets/modules/common/feedback/feedback.html +++ b/src/main/webapp/assets/modules/common/feedback/feedback.html @@ -34,10 +34,6 @@
- - - -
-
+
+
+

+
diff --git a/src/main/webapp/assets/modules/common/feedback/feedbackDirective.js b/src/main/webapp/assets/modules/common/feedback/feedbackDirective.js index 6bd6e0eb9..10ae9b804 100644 --- a/src/main/webapp/assets/modules/common/feedback/feedbackDirective.js +++ b/src/main/webapp/assets/modules/common/feedback/feedbackDirective.js @@ -48,11 +48,19 @@ techlooper.directive("feedbackForm", function (apiService, $timeout, resourcesSe scope.send = function () { if (scope.feedbackForm.$invalid) return; + scope.loadingData = true; var registrant = scope.registrants[0]; apiService.sendFeedbackToRegistrant(registrant.registrantId, scope.composeEmail) .success(function () { - scope.cancel(); - }); + scope.postFeedbackSuccess = true; + }).finally(function(){ + delete scope.loadingData; + $timeout(function(){ + delete scope.postFeedbackSuccess; + scope.cancel(); + }, 2000); + } + ); } scope.cancel = function () { diff --git a/src/main/webapp/assets/modules/common/json.val.js b/src/main/webapp/assets/modules/common/json.val.js index 653292d63..4808da69c 100644 --- a/src/main/webapp/assets/modules/common/json.val.js +++ b/src/main/webapp/assets/modules/common/json.val.js @@ -295,18 +295,21 @@ techlooper.factory("jsonValue", function () { name: "login", url: "/login", cancelIfAlreadyLogin: true, - type: "LOGIN" + type: "LOGIN", + isLoginPage: true }, { name: "userType", url: "/user-type", cancelIfAlreadyLogin: true, - type: "LOGIN" + type: "LOGIN", + isLoginPage: true }, { name: "loading", url: "/loading", - type: "LOGIN" + type: "LOGIN", + isLoginPage: true }, { name: "eventDetails", diff --git a/src/main/webapp/assets/modules/common/model/challengeDetail.js b/src/main/webapp/assets/modules/common/model/challengeDetail.js index 9f7164aba..fd7c587ba 100644 --- a/src/main/webapp/assets/modules/common/model/challengeDetail.js +++ b/src/main/webapp/assets/modules/common/model/challengeDetail.js @@ -4,7 +4,6 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue var challengeDetail = input; - challengeDetail.$filter = { //filter all registrants not qualified and having all submissions read @@ -35,7 +34,7 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue challengeDetail.$filter.registrantsType = {isUnread: isUnread}; challengeDetail.$filter.registrants = isUnread ? _.filter(challengeDetail.$registrants, function (r) {return r.$unreadSubmissions.length > 0;}) : challengeDetail.$registrants; } - } + }; challengeDetail.$sort = { type: {}, @@ -103,14 +102,14 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue challengeDetail.$filter.byReadOrUnreadSubmission(); } - } + }; challengeDetail.refreshCriteria = function () { apiService.getContestDetail(challengeDetail.challengeId) .success(function (data) { challengeDetail.criteria = data.criteria; }); - } + }; challengeDetail.refreshRegistrants = function () { var defer = $q.defer(); @@ -128,7 +127,7 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue $rootScope.$broadcast("after-getting-registrants", challengeDetail); }); return defer.promise; - } + }; challengeDetail.saveCriteria = function () { challengeDetail.validateCriteria(); @@ -137,7 +136,7 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue var criteria = { challengeId: challengeDetail.challengeId, challengeCriteria: challengeDetail.criteria - } + }; apiService.saveChallengeCriteria(criteria) .success(function (criteria) { @@ -147,19 +146,19 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue //.error(function () { // challengeDetail.$savedCriteria = false; //}); - } + }; challengeDetail.addCriteria = function () { challengeDetail.criteria = challengeDetail.criteria || []; challengeDetail.criteria.push({index: challengeDetail.criteria.length + 1}); - } + }; challengeDetail.removeCriteria = function (cri) { challengeDetail.criteria = _.reject(challengeDetail.criteria, function (criteria) { if (cri.criteriaId) return criteria.criteriaId == cri.criteriaId; return criteria.index == cri.index; }); - } + }; challengeDetail.criteriaLoop = function () { var criteria = challengeDetail.criteria; @@ -180,29 +179,29 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue challengeDetail.$invalidCriteria = challengeDetail.$invalidCriteria || (!cri.name); return !challengeDetail.$invalidCriteria; }); - } + }; //@see jsonValue.rewards challengeDetail.save1stWinner = function (registrant) { apiService.saveWinner(registrant.registrantId, jsonValue.rewards.firstPlaceEnum(), !registrant.firstAwarded) .success(challengeDetail.updateWinners); - } + }; challengeDetail.save2ndWinner = function (registrant) { apiService.saveWinner(registrant.registrantId, jsonValue.rewards.secondPlaceEnum(), !registrant.secondAwarded) .success(challengeDetail.updateWinners); - } + }; challengeDetail.save3rdWinner = function (registrant) { apiService.saveWinner(registrant.registrantId, jsonValue.rewards.thirdPlaceEnum(), !registrant.thirdAwarded) .success(challengeDetail.updateWinners); - } + }; challengeDetail.updateWinners = function (winners) { challengeDetail.winners = winners; challengeDetail.recalculateRegistrants(); challengeDetail.refreshFunnelItems(); - } + }; challengeDetail.recalculatePhaseItems = function () { //see jsonValue.challengePhase @@ -249,7 +248,7 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue var index = _.min([next.$index + 1, challengeDetail.phaseItems.length - 1]) challengeDetail.$afterNextPhaseItem = challengeDetail.phaseItems[index]; } - } + }; challengeDetail.recalculate = function (registrants) { challengeDetail.totalWeight = _.reduceRight(challengeDetail.criteria, function (sum, cri) { return sum + cri.weight; }, 0); @@ -261,7 +260,7 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue challengeDetail.recalculatePhaseItems(); challengeDetail.recalculateRegistrants(registrants); - } + }; challengeDetail.recalculateCurrentUserJoined = function () { var joinContests = localStorageService.get("joinContests") || ""; @@ -271,7 +270,7 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue // .success(function(joined) { // challengeDetail.$currentUserJoined = joined; // }); - } + }; challengeDetail.recalculateCurrentState = function () { challengeDetail.$stateMilestones = [ @@ -324,7 +323,7 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue var toNow = challengeDate.isSame(moment(), "day") ? 1 : challengeDate.diff(moment(), "days") + 2; challengeDetail.$currentState.timeLeftTitle = $filter("translate")(challengeDetail.$currentState.timeLeftTitleTranslate, {dayLeft: challengeDetail.$currentState.dayLeft || toNow}); - } + }; challengeDetail.recalculateRegistrants = function (registrants) { if (_.isArray(registrants)) challengeDetail.$registrants = registrants; @@ -332,21 +331,21 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue rgt.$index = index; rgt.recalculate(challengeDetail); }); - } + }; //set $hadRegistrant to true if not found any registrant that unknown disqualified-status challengeDetail.recalculateHadRegistrant = function () { var er = _.findWhere(challengeDetail.$registrants, {disqualified: undefined}); challengeDetail.$hadRegistrant = (er == undefined); challengeDetail.$filter.byReadOrUnreadSubmission(); - } + }; challengeDetail.recalculatePhaseItem = function (phaseItem) { var piTranslate = phaseItem.$phaseConfig.phaseItem.translate; phaseItem.countJoinerTitle = $filter("translate")(piTranslate.countJoiner, {number: phaseItem.participant}); phaseItem.countSubmissionTitle = $filter("translate")(piTranslate.countSubmission, {number: phaseItem.submission}); phaseItem.countUnreadTitle = $filter("translate")(piTranslate.countUnread, {number: phaseItem.unreadSubmission}); - } + }; challengeDetail.recalculateWinner = function (registrant) { if (!_.findWhere(challengeDetail.phaseItems, {phase: registrant.activePhase}).$phaseConfig.isFinal) return; @@ -364,7 +363,7 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue var winnerPi = _.last(challengeDetail.phaseItems); winnerPi.participant = countWinnerPaticipants; challengeDetail.recalculatePhaseItem(winnerPi); - } + }; challengeDetail.refreshFunnelItems = function () { apiService.getRegistrantFunnel(challengeDetail.challengeId) @@ -375,13 +374,13 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue } challengeDetail.recalculateHadRegistrant(); }); - } + }; challengeDetail.incUnreadSubmissionCount = function (submission) { var pi = _.findWhere(challengeDetail.phaseItems, {phase: submission.submissionPhase}); submission.isRead ? pi.unreadSubmission-- : pi.unreadSubmission++; challengeDetail.recalculatePhaseItem(pi); - } + }; // see com.techlooper.model.ChallengeRegistrantFunnelItem @@ -418,7 +417,7 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue } }); challengeDetail.refreshFunnelItems(); - } + }; challengeDetail.acceptRegistrants = function () { var registrantIds = _.map(challengeDetail.$filter.qualifyRegistrants, function (rgt) {return rgt.registrantId;}); @@ -438,7 +437,7 @@ techlooper.filter("challengeDetail", function (apiService, $rootScope, jsonValue }); challengeDetail.refreshFunnelItems(); }); - } + }; challengeDetail.recalculate(); diff --git a/src/main/webapp/assets/modules/common/model/challengeRegistrant.js b/src/main/webapp/assets/modules/common/model/challengeRegistrant.js index 5cd3772b3..7466c7c8f 100644 --- a/src/main/webapp/assets/modules/common/model/challengeRegistrant.js +++ b/src/main/webapp/assets/modules/common/model/challengeRegistrant.js @@ -148,7 +148,7 @@ techlooper.filter("challengeRegistrant", function (apiService, $rootScope, jsonV break; } } - //console.log(registrant); + registrant.remainingPhaseItems.length && (registrant.selectedPhaseItem = registrant.remainingPhaseItems[0]); } registrant.recalculateWinner = function () { diff --git a/src/main/webapp/assets/modules/contest-detail/contestDetailScore.html b/src/main/webapp/assets/modules/contest-detail/contestDetailScore.html index 13307e65b..79fc0ae1a 100644 --- a/src/main/webapp/assets/modules/contest-detail/contestDetailScore.html +++ b/src/main/webapp/assets/modules/contest-detail/contestDetailScore.html @@ -54,8 +54,8 @@ {{'totalScoreIs' | translate}} {{registrant.totalPoint}}
- - + +
diff --git a/src/main/webapp/assets/modules/contest-detail/details/challengeGeneralInfo.html b/src/main/webapp/assets/modules/contest-detail/details/challengeGeneralInfo.html index 052586fc3..ba9a771c6 100644 --- a/src/main/webapp/assets/modules/contest-detail/details/challengeGeneralInfo.html +++ b/src/main/webapp/assets/modules/contest-detail/details/challengeGeneralInfo.html @@ -59,7 +59,7 @@

-
+

@@ -73,6 +73,7 @@

diff --git a/src/main/webapp/assets/modules/job-listing/job-listing.html b/src/main/webapp/assets/modules/job-listing/job-listing.html index 108162f45..299d74990 100644 --- a/src/main/webapp/assets/modules/job-listing/job-listing.html +++ b/src/main/webapp/assets/modules/job-listing/job-listing.html @@ -69,8 +69,8 @@

{{job.title}}

    -
  • {{job.postedOn}}
  • -
  • {{job.locationText}}
  • +
  • {{job.postedOn}}
  • +
  • {{job.locationText}}

: {{'negotiable' | translate}} @@ -113,8 +113,8 @@

{{job.

{{job.title}}

    -
  • {{job.postedOn}}
  • -
  • {{job.locationText}}
  • +
  • {{job.postedOn}}
  • +
  • {{job.locationText}}

: {{'negotiable' | translate}} diff --git a/src/main/webapp/assets/modules/navigation/nav-bar.html b/src/main/webapp/assets/modules/navigation/nav-bar.html index 7500526be..064cecd51 100644 --- a/src/main/webapp/assets/modules/navigation/nav-bar.html +++ b/src/main/webapp/assets/modules/navigation/nav-bar.html @@ -1,4 +1,4 @@

- - + +
\ No newline at end of file diff --git a/src/main/webapp/assets/modules/navigation/navigation.con.js b/src/main/webapp/assets/modules/navigation/navigation.con.js index 157304431..2dc26fbe0 100644 --- a/src/main/webapp/assets/modules/navigation/navigation.con.js +++ b/src/main/webapp/assets/modules/navigation/navigation.con.js @@ -2,16 +2,17 @@ techlooper.controller("navigationController", function ($scope, securityService, jsonValue, utils, $timeout, $rootScope, $window) { $scope.state = function (type) { var isEmployer = undefined; + var currentViewIsLogin = $rootScope.currentUiView && $rootScope.currentUiView.isLoginPage; switch (type) { case "show-employer-header": var isEmployerView = $rootScope.currentUiView && $rootScope.currentUiView.header === "EMPLOYER"; isEmployer = $rootScope.userInfo && $rootScope.userInfo.roleName === "EMPLOYER"; - return isEmployer; + return !currentViewIsLogin && isEmployer; case "show-job-seeker-header": var employerHeaderNotShown = !$scope.state("show-employer-header"); var isJobSeekerView = $rootScope.currentUiView && $rootScope.currentUiView.type != "LOGIN"; - return employerHeaderNotShown && isJobSeekerView; + return !currentViewIsLogin && employerHeaderNotShown && isJobSeekerView; case "home-url": isEmployer = $rootScope.userInfo && $rootScope.userInfo.roleName === "EMPLOYER"; diff --git a/src/main/webapp/assets/modules/translation/messages_en.json b/src/main/webapp/assets/modules/translation/messages_en.json index 64dd160d6..654d26053 100644 --- a/src/main/webapp/assets/modules/translation/messages_en.json +++ b/src/main/webapp/assets/modules/translation/messages_en.json @@ -893,5 +893,6 @@ "enterYourPassCode": "Enter your pass code", "domainLabel": "Domains:", "invalidCredential": "Invalid credential", - "invalidMinlengthDigits": "This field can not less than {{length}} digits" + "invalidMinlengthDigits": "This field can not less than {{length}} digits", + "emailSentSuccessfully": "The email is sent successfully." } \ No newline at end of file diff --git a/src/main/webapp/assets/modules/translation/messages_vi.json b/src/main/webapp/assets/modules/translation/messages_vi.json index e28111e01..f16443be8 100644 --- a/src/main/webapp/assets/modules/translation/messages_vi.json +++ b/src/main/webapp/assets/modules/translation/messages_vi.json @@ -895,5 +895,6 @@ "emailChallengeFormat": "Định danh bằng email và mật khẩu bạn đã được cấp cho cuộc thi.", "domainLabel": "Tên miền:", "invalidCredential": "Tài khoản không hợp lệ", - "invalidMinlengthDigits": "Trường này không được nhỏ hơn 4 ký số" + "invalidMinlengthDigits": "Trường này không được nhỏ hơn 4 ký số", + "emailSentSuccessfully": "Email đã gửi thành công." } diff --git a/src/main/webapp/assets/sass/contest-detail.sass b/src/main/webapp/assets/sass/contest-detail.sass index 87c80e370..7fffbca0f 100644 --- a/src/main/webapp/assets/sass/contest-detail.sass +++ b/src/main/webapp/assets/sass/contest-detail.sass @@ -1379,6 +1379,10 @@ width: 100% clear: both display: inline-block + .participant-list + .alert-post-successes p + display: inline-block !important + width: auto !important .phase-description width: 100% display: inline-block diff --git a/src/main/webapp/assets/sass/job-listing.sass b/src/main/webapp/assets/sass/job-listing.sass index d056a79f0..f11b0c438 100644 --- a/src/main/webapp/assets/sass/job-listing.sass +++ b/src/main/webapp/assets/sass/job-listing.sass @@ -160,6 +160,9 @@ color: #808080 i color: #333 + span + padding-left: 10px + display: inline-block li:first-child width: 30% p diff --git a/src/main/webapp/assets/sass/main.sass b/src/main/webapp/assets/sass/main.sass index d3258534c..8a712e624 100644 --- a/src/main/webapp/assets/sass/main.sass +++ b/src/main/webapp/assets/sass/main.sass @@ -167,16 +167,36 @@ textarea.change-color background-color: #0077b5 .buffer background-color: #323b43 -.feedback-loading +.loading-data-server width: 100% height: 100% position: absolute z-index: 9999 - background: url("../images/send_virtual_hug.gif") #bbbbbb no-repeat center center + background: rgba(0, 0, 0, 0.8) url("../images/loading_apple.gif") 50% 50% no-repeat + background-size: 35px top: 0 left: 0 opacity: 0.8 - visibility: hidden + border-radius: 5px +.alert-post-successes + width: 100% + position: absolute + z-index: 9999 + background-color: rgba(0, 0, 0, 0.8) + top: 0 + left: 0 + opacity: 0.8 + color: #fff + line-height: 100% + height: 100% + border-radius: 5px +.alert-post-successes p + text-align: center !important + margin: 28% auto auto !important + font-weight: 400 + font-size: 16px + width: 100% + .note-editable span width: auto !important