module OA
  class ManageCmsAccounts < OA::BasePage
    include OA::PageTables

    page_url("/cmsaccounts/index/")

    button(:submit_button, name: "searchbtn")
    link(:add_cms_account_link, text: "Add CMS Account")
    link(:delete_link, text: "Delete")
    link(:table_next_link) { table_element(class: "tablePagination").link_element(text: "Next") }
    table(:cms_accounts_table, class: "data")
    text_area(:edit_cmsa_notes, name: "notes")
    text_field(:edit_cmsa_content_owner, name: "cmsaContentOwner")
    text_field(:edit_cmsa_display_name, name: "cmsaDisplayName")

    def look_for_editable_cmsa(display_name)
      cmsa_on_page = cms_accounts_table_element.any? do |row|
        row["CMSA Display name"].text == display_name
      end
      if !cmsa_on_page && table_next_link?
        table_next_link
        look_for_editable_cmsa(display_name)
      elsif cms_accounts_table_element.none? { |row| row["CMSA Display name"].text == display_name }
        create_editable_cmsa(display_name)
      end
    end

    def create_editable_cmsa(display_name)
      add_cms_account_link
      self.edit_cmsa_content_owner = "WatirContentOwner"
      self.edit_cmsa_display_name = display_name
      self.edit_cmsa_notes = "Woot \nWooot \nWoooot \nWooooot \nGian \ntotally \nrules"
      submit_button
    end

    def cmsa_in_table?(name)
      cms_accounts_table_element.any? { |row| row["CMSA Display name"].text.include? name }
    end
  end
end
