CLDC-3116 Create homepage (#2113)
* feat: add blank homepage, update routing and tests
* feat: add welcome message and thoroughly test routing
* refactor: lint
* feat: update tests
* CLDC-3076: Make example dates consistent (#2107)
* CLDC-3076: Make example dates consistent
* Use example date even when some hint text provided already
* Temp remove some date restrictions
* Update to 2 line breaks
* Revert "Temp remove some date restrictions"
This reverts commit cd7f18f9f10957be0cbabee7665c0abe4239acb6.
* Fix lettings log accessor in date question (#2117)
* Fix lettings log accessor in date question
* Remove hardcoded date example from mrcdate question (#2118)
---------
Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com>
* CLDC-3061 Add guidance page (#2121)
* Add guidance page
* Link to guidance from start page
* feat: test home/start paths explicitly
* CLDC-2253 Add collection resources (#2120)
* Update collection resources, add to homepage
* Add guidance link to an empty page
* Update headings
* Rebase fix
* Update title
* Update file names
* Add section break
* CLDC-2593 Add upcoming deadlines section (#2119)
* Add upcoming deadlines section
* Update the content to use the correct dates
* Update content
* lint
* typos
* CLDC-2252 Add homepage task section (#2115)
* feat: wip add lettings, sales and schemes sections with correct text, counts, links and colouring
* feat: add flex styling to match designs
* CLDC-3076: Make example dates consistent (#2107)
* CLDC-3076: Make example dates consistent
* Use example date even when some hint text provided already
* Temp remove some date restrictions
* Update to 2 line breaks
* Revert "Temp remove some date restrictions"
This reverts commit cd7f18f9f10957be0cbabee7665c0abe4239acb6.
* Fix lettings log accessor in date question (#2117)
* Fix lettings log accessor in date question
* Remove hardcoded date example from mrcdate question (#2118)
---------
Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com>
* feat: update breakpoints for responsive layout changes
* lint: use hash lookup where possible
* lint: erblinting
* feat: improve formatting
* Reuse govuk grid
* Revert "Reuse govuk grid"
This reverts commit 8c71f5d9edf261802a8a86e07c13552f51283668.
* feat: test home page data boxes
* refactor: lint
* refactor: lint
* feat: test link behaviour is correct in all user scenarios
* refactor: lint
* feat: update tests
* feat: combine task, resources, deadlines sections
---------
Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com>
Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com>
Co-authored-by: Kat <kosiak.katrina@gmail.com>
* CLDC-2255 Add homepage notifications (#2131)
* feat: add notification table
* feat: add notification banner, use unread gem for notification management
* feat: add notifications page and remove unread_notification.rb
* feat: add blank homepage, update routing and tests
* feat: add welcome message and thoroughly test routing
* refactor: lint
* feat: update tests
* CLDC-3061 Add guidance page (#2121)
* Add guidance page
* Link to guidance from start page
* feat: test home/start paths explicitly
* feat: add notification table
* feat: add notification banner, use unread gem for notification management
* feat: add notifications page and remove unread_notification.rb
* feat: default p tag around sanitized page content
* feat: add active scope
* feat: use newest active unread/unauthenticated notification and update start page
* feat: add tests of notification behaviour and routing and refactor
* refactor: lint
* feat: update Gemfile.lock
* feat: add timestamps to readmark table
* feat: update gemfile.lock
* refactor: lint
* feat: test notifications page doesn't show notifications and code simplification
* feat: move notification helper methods to notifications_helper.rb
---------
Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com>
* feat: clear all no-status filters on in progress links
* CLDC-2590 Add about this service section (#2124)
* Add about core section
* Move about core to the correct spot on start page
* Update content
* Add some margins
---------
Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com>
Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com>
Co-authored-by: Kat <kosiak.katrina@gmail.com>
12 months ago
|
|
|
module NotificationsHelper
|
|
|
|
def notification_count
|
|
|
|
if current_user.present?
|
|
|
|
current_user.active_unread_notifications.count
|
|
|
|
else
|
|
|
|
Notification.active_unauthenticated_notifications.count
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def notification
|
|
|
|
if current_user.present?
|
|
|
|
current_user.newest_active_unread_notification
|
|
|
|
else
|
|
|
|
Notification.newest_active_unauthenticated_notification
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_for_banner(title)
|
|
|
|
# rubocop:disable Rails/HelperInstanceVariable
|
|
|
|
@banner_renderer ||= NotificationRenderer.new({ invert_link_colour: true, bold_all_text: true })
|
|
|
|
@banner_markdown ||= Redcarpet::Markdown.new(@banner_renderer, no_intra_emphasis: true)
|
|
|
|
@banner_markdown.render(title)
|
|
|
|
# rubocop:enable Rails/HelperInstanceVariable
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_for_summary(title)
|
|
|
|
render_normal_markdown(title)
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_for_page(notification)
|
|
|
|
content_includes_own_title = /\A\s*#[^#]/.match?(notification.page_content)
|
|
|
|
return render_normal_markdown(notification.page_content) if content_includes_own_title
|
|
|
|
|
|
|
|
content = "# #{notification.title}\n#{notification.page_content}"
|
|
|
|
render_normal_markdown(content)
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_for_home(notification)
|
|
|
|
return render_normal_markdown(notification.title) unless notification.show_additional_page
|
|
|
|
|
|
|
|
content = "#{notification.title} \n[#{notification.link_text}](#{notification_path(notification)})"
|
|
|
|
render_normal_markdown(content)
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def render_normal_markdown(content)
|
|
|
|
# rubocop:disable Rails/HelperInstanceVariable
|
|
|
|
@on_page_renderer ||= NotificationRenderer.new({ invert_link_colour: false, bold_all_text: false })
|
|
|
|
@on_page_markdown ||= Redcarpet::Markdown.new(@on_page_renderer, no_intra_emphasis: true)
|
|
|
|
@on_page_markdown.render(content)
|
|
|
|
# rubocop:enable Rails/HelperInstanceVariable
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class NotificationRenderer < Redcarpet::Render::HTML
|
|
|
|
def initialize(options = {})
|
|
|
|
link_class = "govuk-link"
|
|
|
|
link_class += " govuk-link--inverse" if options[:invert_link_colour]
|
|
|
|
@bold = options[:bold_all_text] # rubocop:disable Rails/HelperInstanceVariable
|
|
|
|
base_options = { escape_html: true, safe_links_only: true, link_attributes: { class: link_class } }
|
|
|
|
super base_options
|
|
|
|
end
|
|
|
|
|
|
|
|
def header(text, header_level)
|
|
|
|
header_size = case header_level
|
|
|
|
when 1
|
|
|
|
"xl"
|
|
|
|
when 2
|
|
|
|
"l"
|
|
|
|
when 3
|
|
|
|
"m"
|
|
|
|
else
|
|
|
|
"s"
|
|
|
|
end
|
|
|
|
|
|
|
|
%(<h#{header_level} class="govuk-heading-#{header_size}">#{text}</h#{header_level}>)
|
|
|
|
end
|
|
|
|
|
|
|
|
def paragraph(text)
|
|
|
|
return %(<p class="govuk-!-font-weight-bold">#{text}</p>) if @bold # rubocop:disable Rails/HelperInstanceVariable
|
|
|
|
|
|
|
|
%(<p class="govuk-body-m">#{text}</p>)
|
|
|
|
end
|
|
|
|
|
|
|
|
def list(contents, list_type)
|
|
|
|
return %(<ol class="govuk-list govuk-list--number">#{contents}</ol>) if list_type == :ordered
|
|
|
|
|
|
|
|
%(<ul class="govuk-list govuk-list--bullet">#{contents}</ul>)
|
|
|
|
end
|
|
|
|
|
|
|
|
def hrule
|
|
|
|
%(<hr class="govuk-section-break govuk-section-break--xl govuk-section-break--visible">)
|
|
|
|
end
|
|
|
|
|
|
|
|
def block_quote(quote)
|
|
|
|
%(<div class="govuk-inset-text">#{quote}</div>)
|
|
|
|
end
|
CLDC-3116 Create homepage (#2113)
* feat: add blank homepage, update routing and tests
* feat: add welcome message and thoroughly test routing
* refactor: lint
* feat: update tests
* CLDC-3076: Make example dates consistent (#2107)
* CLDC-3076: Make example dates consistent
* Use example date even when some hint text provided already
* Temp remove some date restrictions
* Update to 2 line breaks
* Revert "Temp remove some date restrictions"
This reverts commit cd7f18f9f10957be0cbabee7665c0abe4239acb6.
* Fix lettings log accessor in date question (#2117)
* Fix lettings log accessor in date question
* Remove hardcoded date example from mrcdate question (#2118)
---------
Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com>
* CLDC-3061 Add guidance page (#2121)
* Add guidance page
* Link to guidance from start page
* feat: test home/start paths explicitly
* CLDC-2253 Add collection resources (#2120)
* Update collection resources, add to homepage
* Add guidance link to an empty page
* Update headings
* Rebase fix
* Update title
* Update file names
* Add section break
* CLDC-2593 Add upcoming deadlines section (#2119)
* Add upcoming deadlines section
* Update the content to use the correct dates
* Update content
* lint
* typos
* CLDC-2252 Add homepage task section (#2115)
* feat: wip add lettings, sales and schemes sections with correct text, counts, links and colouring
* feat: add flex styling to match designs
* CLDC-3076: Make example dates consistent (#2107)
* CLDC-3076: Make example dates consistent
* Use example date even when some hint text provided already
* Temp remove some date restrictions
* Update to 2 line breaks
* Revert "Temp remove some date restrictions"
This reverts commit cd7f18f9f10957be0cbabee7665c0abe4239acb6.
* Fix lettings log accessor in date question (#2117)
* Fix lettings log accessor in date question
* Remove hardcoded date example from mrcdate question (#2118)
---------
Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com>
* feat: update breakpoints for responsive layout changes
* lint: use hash lookup where possible
* lint: erblinting
* feat: improve formatting
* Reuse govuk grid
* Revert "Reuse govuk grid"
This reverts commit 8c71f5d9edf261802a8a86e07c13552f51283668.
* feat: test home page data boxes
* refactor: lint
* refactor: lint
* feat: test link behaviour is correct in all user scenarios
* refactor: lint
* feat: update tests
* feat: combine task, resources, deadlines sections
---------
Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com>
Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com>
Co-authored-by: Kat <kosiak.katrina@gmail.com>
* CLDC-2255 Add homepage notifications (#2131)
* feat: add notification table
* feat: add notification banner, use unread gem for notification management
* feat: add notifications page and remove unread_notification.rb
* feat: add blank homepage, update routing and tests
* feat: add welcome message and thoroughly test routing
* refactor: lint
* feat: update tests
* CLDC-3061 Add guidance page (#2121)
* Add guidance page
* Link to guidance from start page
* feat: test home/start paths explicitly
* feat: add notification table
* feat: add notification banner, use unread gem for notification management
* feat: add notifications page and remove unread_notification.rb
* feat: default p tag around sanitized page content
* feat: add active scope
* feat: use newest active unread/unauthenticated notification and update start page
* feat: add tests of notification behaviour and routing and refactor
* refactor: lint
* feat: update Gemfile.lock
* feat: add timestamps to readmark table
* feat: update gemfile.lock
* refactor: lint
* feat: test notifications page doesn't show notifications and code simplification
* feat: move notification helper methods to notifications_helper.rb
---------
Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com>
* feat: clear all no-status filters on in progress links
* CLDC-2590 Add about this service section (#2124)
* Add about core section
* Move about core to the correct spot on start page
* Update content
* Add some margins
---------
Co-authored-by: Rachael Booth <Rachael.Booth@softwire.com>
Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com>
Co-authored-by: Kat <kosiak.katrina@gmail.com>
12 months ago
|
|
|
end
|