module Workstation
  class AnalyticsBreakdownPage < Workstation::BasePage
    include Workstation::DataChannel

    page_url "/analytics/detail/<%=params[:data_channel_id]%>"

    div(:breakdown_button_wrapper, id: "breakdown__pills")
    button(:active_breakdown) { breakdown_button_wrapper_element.button_element(class: "active") }
    table(:breakdown_table, id: "bars")
    div(:breakdown_loading, id: "loading_bars")
    checkbox(:select_all, id: "allCheckProduct")
    checkboxes(:selection_checkbox, class: "barchart__item-checkbox")
    cells(:breakdown_title, class: %w[breakdown-title col-sm-5])
    cells(:barchart_activities, class: "barchart__activities")
    unordered_list(:pagination_container, class: "pagination")
    link(:previous_link) { pagination_container_element.link_element(index: 0) }
    link(:next_link) { pagination_container_element.link_element(index: 1) }
    div(:view_by_buttons, id: "viewdatabydiv")
    div(:break_down_list, id: "breakDownSelection")
    divs(:total_units_for_period, class: "grand-total")

    def wait_for_breakdown_to_load
      wait_until { breakdown_table? }
      # Increased on 3/22/2018 while systems does stuff for their 3/30 deadline
      wait_until(300) { breakdown_table_element.element.tbody.rows.count > 0 }
    end

    def display_data_for_first_row_only
      # checkbox elements are invisible somehow? need to click parent div instead
      selection_checkbox_elements[0].parent.click
      loader_wait(element: new_graphs_loading_modal_element)
      select_all_element.parent.click if select_all_element.element.set?
    end
  end
end
