Skip to content

ucb-ist-eas/ucb_site_announcements

Repository files navigation

UCB Site Announcements

The ucb_site_announcements Rails engine provides administrator management and site display for timed announcements.

Prerequisites

  • Ruby >= 3.0
  • Rails >= 7.0

Installation

To add the engine to a Rails application:

  1. Add the gem to your Gemfile:
gem "ucb_site_announcements"
  1. Run bundle install

  2. Install and run migrations

bin/rails ucb_site_announcements:install:migrations
bin/rails db:migrate
  1. Mount the engine in config/routes.rb:
mount UcbSiteAnnouncements::Engine => "/announcements" # set whatever URL you'd like to use here
  1. Set up a configuration block in config/initializers/ucb_site_announcements.rb - auth_callback is required.
# config/initializers/ucb_site_announcements.rb
UcbSiteAnnouncements.configure do |config|
  config.auth_callback = ->(controller) {
    # This will be called in the admin controller to determine if the current user can make changes
    # to the announcements
    #
    # "controller" is the current controller instance so it will have access to anything defined in your
    # ApplicationController
    #
    # Return true if the current user can view/edit announcements; false otherwise
    #
    # Example:
    # controller.current_user.admin?
  }
  config.time_zone = "Pacific Time (US & Canada)"
end

time_zone is optional, but will default to Pacific Time (US & Canada)

Caution

If you don't provide a setting for auth_callback all users will be able to access the admin section for announcements, which is probably not what you want.

  1. Migrate the database:
rake ucb_site_announcements:install:migrations
rake db:migrate

Creating and Managing Announcements

Access the admin inteface at, e.g. /announcements/admin (assuming you set the mount point at announcements in step 3)

Displaying Announcements

To display active announcements in application views:

<%= active_site_announcements %>

This will render Bootstrap alert components for each active announcement.

About

A Rails engine for adding site-wide announcement banners

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published