# frozen_string_literal: true require 'administrate/base_dashboard' class LoginActivityDashboard < Administrate::BaseDashboard # ATTRIBUTE_TYPES # a hash that describes the type of each of the model's fields. # # Each different type represents an Administrate::Field object, # which determines how the attribute is displayed # on pages throughout the dashboard. ATTRIBUTE_TYPES = { user: Field::Polymorphic, <%- if options[:uuid] -%> id: Field::String, <%- else -%> id: Field::Number, <%- end -%> scope: Field::String, strategy: Field::String, identity: Field::String, success: Field::Boolean, failure_reason: Field::String, context: Field::String, ip: Field::String, user_agent: Field::Text, referrer: Field::Text, city: Field::String, region: Field::String, country: Field::String, latitude: Field::Number.with_options(decimals: 2), longitude: Field::Number.with_options(decimals: 2), created_at: Field::DateTime }.freeze # COLLECTION_ATTRIBUTES # an array of attributes that will be displayed on the model's index page. # # By default, it's limited to four items to reduce clutter on index pages. # Feel free to add, remove, or rearrange items. COLLECTION_ATTRIBUTES = %i[id identity scope strategy].freeze # SHOW_PAGE_ATTRIBUTES # an array of attributes that will be displayed on the model's show page. SHOW_PAGE_ATTRIBUTES = %i[user id scope strategy identity success failure_reason context ip user_agent referrer city region country latitude longitude created_at].freeze # FORM_ATTRIBUTES # an array of attributes that will be displayed # on the model's form (`new` and `edit`) pages. FORM_ATTRIBUTES = %i[user scope strategy identity success failure_reason context ip user_agent referrer city region country latitude longitude].freeze # Overwrite this method to customize how login activities are displayed # across all pages of the admin dashboard. # # def display_resource(login_activity) # "LoginActivity ##{login_activity.id}" # end end