Class: Prof::OpsManager::WebAppInternals::Page::Dashboard

Inherits:
Object
  • Object
show all
Defined in:
lib/prof/ops_manager/web_app_internals/page/dashboard.rb

Defined Under Namespace

Classes: ModalPresent

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Dashboard

Returns a new instance of Dashboard.



23
24
25
# File 'lib/prof/ops_manager/web_app_internals/page/dashboard.rb', line 23

def initialize(opts = {})
  @page = opts.fetch(:page)
end

Instance Method Details

#apply_changesObject



70
71
72
73
74
75
# File 'lib/prof/ops_manager/web_app_internals/page/dashboard.rb', line 70

def apply_changes
  check_no_modal!

  page.click_link_or_button 'Apply changes'
  InstallationProgress.new(page: page)
end

#apply_setting(target_tile, field_name, field_value) ⇒ Object



54
55
56
# File 'lib/prof/ops_manager/web_app_internals/page/dashboard.rb', line 54

def apply_setting(target_tile, field_name, field_value)
  tile(target_tile).set_field_value('Resource Config', field_name, field_value).return_to_dashboard
end

#pending_changesObject



81
82
83
# File 'lib/prof/ops_manager/web_app_internals/page/dashboard.rb', line 81

def pending_changes
  page.all('.pending-changes-list li').map(&:text)
end

#pending_changes?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/prof/ops_manager/web_app_internals/page/dashboard.rb', line 77

def pending_changes?
  pending_changes.any?
end

#tile(tile) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/prof/ops_manager/web_app_internals/page/dashboard.rb', line 27

def tile(tile)
  begin
    page.find("#show-#{tile.name}-configure-action").click
  rescue Capybara::ElementNotFound
    page.visit(page.current_url)
    page.find("#show-#{tile.name}-configure-action").click
  end

  TileSettings.new(page: page)
end

#tile_configuration(target_tile) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/prof/ops_manager/web_app_internals/page/dashboard.rb', line 42

def tile_configuration(target_tile)
  tile_setting_page = tile(target_tile)

  Hash.new.tap do |config|
    tile_setting_page.setting_names.each do |setting_name|
      config[setting_name] = tile_setting_page.settings_for(setting_name)
    end

    tile_setting_page.return_to_dashboard
  end
end

#tile_configure(target_tile, configuration) ⇒ Object



38
39
40
# File 'lib/prof/ops_manager/web_app_internals/page/dashboard.rb', line 38

def tile_configure(target_tile, configuration)
  tile(target_tile).configure(configuration)
end

#tile_configured?(target_tile) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
61
62
# File 'lib/prof/ops_manager/web_app_internals/page/dashboard.rb', line 58

def tile_configured?(target_tile)
  page.find("#show-#{target_tile.name}-configure-action")['data-progress'] == '100'
rescue Capybara::ElementNotFound
  false
end

#tile_uninstall(target_tile) ⇒ Object



64
65
66
67
68
# File 'lib/prof/ops_manager/web_app_internals/page/dashboard.rb', line 64

def tile_uninstall(target_tile)
  page.find("#show-#{target_tile.name}-configure-action ~ #open-delete-#{target_tile.name}-modal").click
  modal.confirm
rescue Capybara::ElementNotFound
end