Skip to content

Commit

Permalink
Merge branch 'master' into automation/update-nokogiri-gem
Browse files Browse the repository at this point in the history
  • Loading branch information
sinhaamit1980 authored Oct 22, 2019
2 parents a14be84 + 7d58fc7 commit 18b3104
Show file tree
Hide file tree
Showing 10 changed files with 79 additions and 7 deletions.
11 changes: 11 additions & 0 deletions admin/assets/javascripts/jquery-modal.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,14 @@
*/
/* global $ */
$(function () {
var modalForm = document.querySelector('#js-modal-form')
var hasModalForm = modalForm && modalForm.length > 0
function startModal (e) {
$('.modal-link').on('click', function (e) {
if (hasModalForm) {
toggleShowHideModal(e)
return
}
if ($('#js-modal-confirmation-button').is('button')) {
$('#js-modal-confirmation-button').attr('onclick', 'window.location.replace(' + '\'' + $(this)[0].href + '\'' + ')')
} else {
Expand All @@ -20,6 +26,11 @@ $(function () {
$('#js-modal-confirmation-button').attr('href', '')
}
})
$('#js-modal-confirmation-button').on('click', function (e) {
if (hasModalForm) {
modalForm.submit()
}
})
$('#js-modal-overlay').on('click', function (e) {
toggleShowHideModal(e)
})
Expand Down
5 changes: 4 additions & 1 deletion admin/controllers/school.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ const pupilRegisterService = require('../services/pupil-register.service')
const schoolHomeFeatureEligibilityPresenter = require('../helpers/school-home-feature-eligibility-presenter')
const schoolService = require('../services/school.service')
const resultPageAvailabilityService = require('../services/results-page-availability.service')
const administrationMessageService = require('../services/administration-message.service')
const controller = {}

/**
Expand All @@ -35,12 +36,14 @@ controller.getSchoolLandingPage = async (req, res, next) => {
const resultsOpeningDay = resultPageAvailabilityService.getResultsOpeningDate(currentDate, checkWindowData.checkEndDate)
const isResultsFeatureAccessible = resultPageAvailabilityService.isResultsFeatureAccessible(currentDate, resultsOpeningDay)
const hasIncompleteChecks = await pupilRegisterService.hasIncompleteChecks(req.user.schoolId)
const serviceMessage = await administrationMessageService.getMessage()
return res.render('school/school-home', {
breadcrumbs: [{ name: 'School Home' }],
featureEligibilityData,
hasIncompleteChecks,
isResultsFeatureAccessible,
schoolName
schoolName,
serviceMessage
})
} catch (error) {
return next(error)
Expand Down
17 changes: 17 additions & 0 deletions admin/spec/back-end/controllers/school.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ const schoolController = require('../../../controllers/school')
const schoolService = require('../../../services/school.service')
const resultPageAvailabilityService = require('../../../services/results-page-availability.service')
const schoolHomeFeatureEligibilityPresenter = require('../../../helpers/school-home-feature-eligibility-presenter')
const administrationMessageService = require('../../../services/administration-message.service')
const schoolMock = require('../mocks/school')

describe('school controller:', () => {
Expand Down Expand Up @@ -56,6 +57,7 @@ describe('school controller:', () => {
spyOn(pupilRegisterService, 'hasIncompleteChecks').and.returnValue(false)
spyOn(resultPageAvailabilityService, 'getResultsOpeningDate')
spyOn(resultPageAvailabilityService, 'isResultsFeatureAccessible')
spyOn(administrationMessageService, 'getMessage')
const res = getRes()
const req = getReq(goodReqParams)
await schoolController.getSchoolLandingPage(req, res, next)
Expand Down Expand Up @@ -95,6 +97,21 @@ describe('school controller:', () => {
await schoolController.getSchoolLandingPage(req, res, next)
expect(res.redirect).toHaveBeenCalled()
})
it('should call administrationMessageService.getMessage to fetch a potential service message', async () => {
spyOn(helpdeskService, 'isHelpdeskRole').and.returnValue(false)
spyOn(helpdeskService, 'isImpersonating').and.returnValue(false)
spyOn(checkWindowV2Service, 'getActiveCheckWindow').and.returnValue({})
spyOn(schoolHomeFeatureEligibilityPresenter, 'getPresentationData')
spyOn(schoolService, 'findSchoolByDfeNumber').and.returnValue(schoolMock)
spyOn(pupilRegisterService, 'hasIncompleteChecks').and.returnValue(false)
spyOn(resultPageAvailabilityService, 'getResultsOpeningDate')
spyOn(resultPageAvailabilityService, 'isResultsFeatureAccessible')
spyOn(administrationMessageService, 'getMessage')
const res = getRes()
const req = getReq(goodReqParams)
await schoolController.getSchoolLandingPage(req, res, next)
expect(administrationMessageService.getMessage).toHaveBeenCalled()
})
})
})
})
8 changes: 8 additions & 0 deletions admin/views/school/school-home.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
<main class="govuk-main-wrapper" id="main-content" role="main">
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<% if (serviceMessage) { %>
<div class="govuk-body govuk-warning-message govuk-!-margin-bottom-7 govuk-!-margin-top-0">
<h2 class="govuk-heading-l">
<%= serviceMessage.title %>
</h2>
<p class="govuk-body"><%= serviceMessage.message %></p>
</div>
<% } %>
<h1 class="govuk-heading-xl">Multiplication tables check for <%= schoolName %></h1>
<%- partial('partials/_gds_session_expiry') %>
<ol class="govuk-list">
Expand Down
4 changes: 2 additions & 2 deletions admin/views/service-message/service-message-overview.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@
</div>
</td>
<td>
<form action="/service-message/remove-service-message" id="serviceMessageDeleteForm" method="post" autocomplete="off">
<form action="/service-message/remove-service-message" id="js-modal-form" method="post" autocomplete="off">
<input type="hidden" name="_csrf" value="<%= csrftoken %>" />
<button class="govuk-button-as-link no-underline govuk-!-font-size-16" type="submit">Remove</button>
<button class="govuk-button-as-link no-underline govuk-!-font-size-16 modal-link" id="js-modal-link" type="submit">Remove</button>
</form>
</td>
</tr>
Expand Down
6 changes: 5 additions & 1 deletion test/admin-hpa/features/service_manager_message.feature
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
@service_manager_message
Feature: Service manager message

@local
Scenario: Service manager can manage service messages
Given I am on the manage service message page
Then it should match the design
Expand All @@ -19,4 +20,7 @@ Feature: Service manager message
Given I have created a service message
Then I should not be able to create another


Scenario: Service manager should only be able to create one message
Given I have created a service message
When I navigate to school home page as teacher1
Then service message is displayed as per design
13 changes: 12 additions & 1 deletion test/admin-hpa/features/step_definitions/service_message.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
end

When(/^I decide to delete the message$/) do
manage_service_message_page.remove_message.click
manage_service_message_page.remove_service_message
end


Expand All @@ -59,3 +59,14 @@
Then(/^I should not be able to create another$/) do
expect(manage_service_message_page.create_message).to be_disabled
end

When(/^I navigate to school home page as teacher1$/) do
visit ENV['ADMIN_BASE_URL'] + '/sign-out'
step 'I am logged in'
end

Then(/^service message is displayed as per design$/) do
expect(school_landing_page).to have_service_message
expect(school_landing_page.service_message.service_message_heading.text).eql?(@message[:title])
expect(school_landing_page.service_message.service_message_text.text).eql?(@message[:message])
end
2 changes: 1 addition & 1 deletion test/admin-hpa/features/support/hooks.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

Before('@service_manager_message') do
step 'I am on the manage service message page'
manage_service_message_page.remove_message.click if manage_service_message_page.has_remove_message?
manage_service_message_page.remove_service_message if manage_service_message_page.has_remove_message?
visit ENV['ADMIN_BASE_URL'] + '/sign-out'
visit ENV['ADMIN_BASE_URL']
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,24 @@ class ManageServiceMessagePage < SitePrism::Page
set_url '/service-message'

element :heading, '.govuk-heading-xl', text: 'Service message'
element :info_text, '.govuk-body', text: 'Add or delete a service message for schools.'
element :info_text, '.govuk-body', text: 'Add or delete a global service message for the school homepage'
element :create_message, '.govuk-button', text: 'Create service message'
element :no_message, '.govuk-body', text: 'No service message created'
element :flash_message, '.govuk-info-message'
element :message, '.name-text-wrap'
element :remove_message, '.govuk-button-as-link', text: 'Remove'

section :modal, '.modal-box.show' do
element :heading, '#modal-title'
element :contents, '.modal-content p'
element :cancel, '#js-modal-cancel-button'
element :confirm, '#js-modal-confirmation-button'

end

def remove_service_message
remove_message.click
modal.confirm.click
end

end
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,10 @@ class SchoolLandingPage < SitePrism::Page
element :related, '#subsection-title'
element :guidance, 'aside.app-related-items nav li a', text: 'Guidance'

section :service_message, '.govuk-warning-message' do
element :service_message_heading, '.govuk-heading-l'
element :service_message_text, '.govuk-body'
end

end

0 comments on commit 18b3104

Please sign in to comment.