admin_module 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/Gemfile +2 -0
- data/README.md +7 -0
- data/admin_module.gemspec +3 -1
- data/{bin → exe}/admin_module +0 -0
- data/lib/admin_module.rb +9 -0
- data/lib/admin_module/command/config.rb +20 -0
- data/lib/admin_module/command/gdl.rb +15 -0
- data/lib/admin_module/guideline.rb +8 -0
- data/lib/admin_module/page_factory.rb +43 -2
- data/lib/admin_module/pages.rb +38 -81
- data/lib/admin_module/pages/guideline_page.rb +54 -1
- data/lib/admin_module/pages/guideline_page_400.rb +87 -0
- data/lib/admin_module/pages/guideline_version_page.rb +9 -5
- data/lib/admin_module/pages/guidelines_page.rb +40 -34
- data/lib/admin_module/pages/guidelines_page_400.rb +65 -0
- data/lib/admin_module/pages/guidelines_version_all_page.rb +79 -72
- data/lib/admin_module/pages/guidelines_version_all_page_400.rb +122 -0
- data/lib/admin_module/pages/login_page.rb +2 -2
- data/lib/admin_module/pages/login_page_400.rb +73 -0
- data/lib/admin_module/version.rb +1 -1
- data/spec/data/config/no_ams_version.admin_module +11 -0
- data/spec/data/html/guideline-400.html +2713 -0
- data/spec/data/html/guideline-400_files/BindChildren.js +852 -0
- data/spec/data/html/guideline-400_files/CVlogo.jpg +0 -0
- data/spec/data/html/guideline-400_files/Guideline.js +301 -0
- data/spec/data/html/guideline-400_files/OptimalOutcome.png +0 -0
- data/spec/data/html/guideline-400_files/WebResource(1).axd +561 -0
- data/spec/data/html/guideline-400_files/WebResource.axd +548 -0
- data/spec/data/html/guideline-400_files/styles.css +444 -0
- data/spec/data/html/guideline-400_files/styles2.css +115 -0
- data/spec/data/html/guideline-400_files/tab.css +50 -0
- data/spec/data/html/guideline-400_files/tabpane.js +297 -0
- data/spec/data/html/guideline.html +1809 -0
- data/spec/data/html/guideline_files/BindChildren.js +799 -0
- data/spec/data/html/guideline_files/Guideline.js +300 -0
- data/spec/data/html/guideline_files/LeftMenu.html +0 -0
- data/spec/data/html/guideline_files/MainFrame.html +18 -0
- data/spec/data/html/guideline_files/ScriptResource.axd +3725 -0
- data/spec/data/html/guideline_files/Stylesheet.css +1545 -0
- data/spec/data/html/guideline_files/WebResource(1).axd +0 -0
- data/spec/data/html/guideline_files/WebResource(2).axd +566 -0
- data/spec/data/html/guideline_files/WebResource(3).axd +219 -0
- data/spec/data/html/guideline_files/WebResource.axd +696 -0
- data/spec/data/html/guideline_files/framebar.html +0 -0
- data/spec/data/html/guideline_files/guideline.html +0 -0
- data/spec/data/html/guideline_files/home.png +0 -0
- data/spec/data/html/guideline_files/jquery-ui.css +578 -0
- data/spec/data/html/guideline_files/jquery.js +7 -0
- data/spec/data/html/guideline_files/slidebar.gif +29 -0
- data/spec/data/html/guideline_files/tab.css +49 -0
- data/spec/data/html/guideline_files/tabpane.js +297 -0
- data/spec/data/html/guidelines-400.html +368 -0
- data/spec/data/html/guidelines-400_files/CVlogo.jpg +0 -0
- data/spec/data/html/guidelines-400_files/EditListSearchHelper.js +141 -0
- data/spec/data/html/guidelines-400_files/OptimalOutcome.png +0 -0
- data/spec/data/html/guidelines-400_files/WebResource(1).axd +561 -0
- data/spec/data/html/guidelines-400_files/WebResource.axd +548 -0
- data/spec/data/html/guidelines-400_files/menu.css +29 -0
- data/spec/data/html/guidelines-400_files/menu.js +48 -0
- data/spec/data/html/guidelines-400_files/shadow.gif +0 -0
- data/spec/data/html/guidelines-400_files/styles.css +444 -0
- data/spec/data/html/guidelines-400_files/styles2.css +115 -0
- data/spec/data/html/guidelines.html +217 -0
- data/spec/data/html/guidelines_files/EditListSearchHelper.js +123 -0
- data/spec/data/html/guidelines_files/ScriptResource.axd +3725 -0
- data/spec/data/html/guidelines_files/Stylesheet.css +1545 -0
- data/spec/data/html/guidelines_files/jquery-ui.css +578 -0
- data/spec/data/html/login.aspx.html +293 -0
- data/spec/data/html/login.aspx_files/ScriptResource.axd +3332 -0
- data/spec/data/html/login.aspx_files/Stylesheet.css +1545 -0
- data/spec/data/html/login.aspx_files/jquery-ui.css +578 -0
- data/spec/data/html/login.aspx_files/jquery.js +7 -0
- data/spec/data/html/login400.aspx.html +191 -0
- data/spec/data/html/login400.aspx_files/WebResource(1).axd +561 -0
- data/spec/data/html/login400.aspx_files/WebResource.axd +548 -0
- data/spec/data/html/login400.aspx_files/styles.css +444 -0
- data/spec/data/html/version_all_guidelines-400.html +702 -0
- data/spec/data/html/version_all_guidelines-400_files/CVlogo.jpg +0 -0
- data/spec/data/html/version_all_guidelines-400_files/Calendar.js +521 -0
- data/spec/data/html/version_all_guidelines-400_files/OptimalOutcome.png +0 -0
- data/spec/data/html/version_all_guidelines-400_files/TwoSelects.js +300 -0
- data/spec/data/html/version_all_guidelines-400_files/menu.css +29 -0
- data/spec/data/html/version_all_guidelines-400_files/menu.js +48 -0
- data/spec/data/html/version_all_guidelines-400_files/shadow.gif +0 -0
- data/spec/data/html/version_all_guidelines-400_files/styles(1).css +134 -0
- data/spec/data/html/version_all_guidelines-400_files/styles.css +444 -0
- data/spec/data/html/version_all_guidelines-400_files/styles2.css +115 -0
- data/spec/data/html/version_all_guidelines.html +560 -0
- data/spec/data/html/version_all_guidelines_files/Calendar.js +521 -0
- data/spec/data/html/version_all_guidelines_files/ScriptResource.axd +3725 -0
- data/spec/data/html/version_all_guidelines_files/Stylesheet.css +1545 -0
- data/spec/data/html/version_all_guidelines_files/TwoSelects.js +304 -0
- data/spec/data/html/version_all_guidelines_files/jquery-ui.css +578 -0
- data/spec/lib/admin_module/command/config_spec.rb +27 -0
- data/spec/lib/admin_module/command/gdl_spec.rb +31 -0
- data/spec/lib/admin_module/configuration_spec.rb +47 -0
- data/spec/lib/admin_module/guideline_spec.rb +26 -0
- data/spec/lib/admin_module/page_factory_spec.rb +72 -0
- data/spec/lib/admin_module/pages/guideline_page_400_spec.rb +51 -0
- data/spec/lib/admin_module/pages/guideline_page_spec.rb +50 -0
- data/spec/lib/admin_module/pages/guidelines_page_400_spec.rb +92 -0
- data/spec/lib/admin_module/pages/guidelines_page_spec.rb +91 -0
- data/spec/lib/admin_module/pages/guidelines_version_all_page_400_spec.rb +102 -0
- data/spec/lib/admin_module/pages/guidelines_version_all_page_spec.rb +105 -0
- data/spec/lib/admin_module/pages/login_page_400_spec.rb +42 -0
- data/spec/lib/admin_module/pages/login_page_spec.rb +33 -0
- data/spec/support/html_spec.rb +26 -0
- data/spec/support/mocks.rb +23 -0
- metadata +191 -5
|
@@ -122,17 +122,21 @@ EOS
|
|
|
122
122
|
return
|
|
123
123
|
end
|
|
124
124
|
|
|
125
|
+
version_row = latest_version
|
|
126
|
+
|
|
127
|
+
# We have to account for HTML encodings when comparing comments.
|
|
128
|
+
unless version_row.to_s.include?(CGI.escapeHTML(comments))
|
|
129
|
+
add_error("Version upload not completed. Comment not found.")
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
def latest_version
|
|
125
134
|
doc = Nokogiri::HTML(@browser.html)
|
|
126
135
|
# The specific version notes TD element:
|
|
127
136
|
#version_notes_row_1 = doc.css("#dgrVersions > tbody > tr:nth-child(2) > td:nth-child(13)")
|
|
128
137
|
|
|
129
138
|
# The entire 1st version row (TR) element:
|
|
130
139
|
version_row = doc.css("#dgrVersions > tbody > tr:nth-child(2)")
|
|
131
|
-
|
|
132
|
-
# We have to account for HTML encodings when comparing comments.
|
|
133
|
-
unless version_row.to_s.include?(CGI.escapeHTML(comments))
|
|
134
|
-
add_error("Version upload not completed. Comment not found.")
|
|
135
|
-
end
|
|
136
140
|
end
|
|
137
141
|
end # class GuidelineVersionPage
|
|
138
142
|
|
|
@@ -8,52 +8,58 @@
|
|
|
8
8
|
require 'page-object'
|
|
9
9
|
|
|
10
10
|
module AdminModule::Pages
|
|
11
|
+
class GuidelinesPage
|
|
12
|
+
include PageObject
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
include PageObject
|
|
14
|
+
page_url(:get_dynamic_url)
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
AdminModule.configuration.base_url + "/admin/decision/guidelines.aspx"
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
select_list(:guidelines,
|
|
22
|
-
id: 'ctl00_cntPlh_ctlGuidelines_lstItems')
|
|
23
|
-
|
|
24
|
-
button(:modify,
|
|
25
|
-
id: 'ctl00_cntPlh_ctlGuidelines_btnModify')
|
|
16
|
+
def get_dynamic_url
|
|
17
|
+
AdminModule.configuration.base_url + "/admin/decision/guidelines.aspx"
|
|
18
|
+
end
|
|
26
19
|
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
# This must be a class method so it's available for the control
|
|
21
|
+
# method generation methods.
|
|
22
|
+
#
|
|
29
23
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
Nokogiri::HTML(@browser.html).css("select#ctl00_cntPlh_ctlGuidelines_lstItems>option").each do |elem|
|
|
33
|
-
gdl_list << elem.text
|
|
24
|
+
def self.gdls_id
|
|
25
|
+
'ctl00_cntPlh_ctlGuidelines_lstItems'
|
|
34
26
|
end
|
|
35
27
|
|
|
36
|
-
|
|
37
|
-
|
|
28
|
+
select_list(:guidelines,
|
|
29
|
+
id: gdls_id)
|
|
38
30
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
guidelines_element.select gdl_name
|
|
42
|
-
self.modify
|
|
31
|
+
button(:modify,
|
|
32
|
+
id: 'ctl00_cntPlh_ctlGuidelines_btnModify')
|
|
43
33
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
end
|
|
34
|
+
button(:version_all_button,
|
|
35
|
+
text: 'Version All')
|
|
47
36
|
|
|
48
|
-
|
|
49
|
-
|
|
37
|
+
def get_guidelines
|
|
38
|
+
gdl_list = []
|
|
39
|
+
Nokogiri::HTML(@browser.html).css("select##{GuidelinesPage.gdls_id}>option").each do |elem|
|
|
40
|
+
gdl_list << elem.text
|
|
41
|
+
end
|
|
50
42
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
gdl_list
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def open_guideline(gdl_name)
|
|
47
|
+
#guidelines_options # List of option text
|
|
48
|
+
guidelines_element.select gdl_name
|
|
49
|
+
self.modify
|
|
54
50
|
|
|
51
|
+
# Return the next page object.
|
|
52
|
+
AdminModule::ConfigHelper.page_factory.guideline_page(false)
|
|
53
|
+
#GuidelinePage.new(@browser, false)
|
|
54
|
+
end
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
def version_all
|
|
57
|
+
version_all_button
|
|
57
58
|
|
|
59
|
+
# Return the next page object.
|
|
60
|
+
AdminModule::ConfigHelper.page_factory.guidelines_version_all_page(false)
|
|
61
|
+
#GuidelinesVersionAllPage.new(@browser, false)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
58
64
|
end # module Pages
|
|
59
65
|
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: guidelines_page_400.rb
|
|
3
|
+
# Purpose:: Guidelines page for AdminModule
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2015-10-08
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
require 'page-object'
|
|
9
|
+
|
|
10
|
+
module AdminModule::Pages
|
|
11
|
+
class GuidelinesPage400
|
|
12
|
+
include PageObject
|
|
13
|
+
|
|
14
|
+
page_url(:get_dynamic_url)
|
|
15
|
+
|
|
16
|
+
def get_dynamic_url
|
|
17
|
+
AdminModule.configuration.base_url + "/admin/decision/guidelines.aspx"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# This must be a class method so it's available for the control
|
|
21
|
+
# method generation methods.
|
|
22
|
+
#
|
|
23
|
+
|
|
24
|
+
def self.gdls_id
|
|
25
|
+
'ctlGuidelines_lstItems'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
select_list(:guidelines,
|
|
29
|
+
id: gdls_id)
|
|
30
|
+
|
|
31
|
+
button(:modify,
|
|
32
|
+
id: 'ctlGuidelines_btnModify')
|
|
33
|
+
|
|
34
|
+
button(:version_all_button,
|
|
35
|
+
text: 'Version All')
|
|
36
|
+
|
|
37
|
+
def get_guidelines
|
|
38
|
+
gdl_list = []
|
|
39
|
+
Nokogiri::HTML(@browser.html).css("select##{GuidelinesPage400.gdls_id}>option").each do |elem|
|
|
40
|
+
gdl_list << elem.text
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
gdl_list
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def open_guideline(gdl_name)
|
|
47
|
+
#guidelines_options # List of option text
|
|
48
|
+
guidelines_element.select gdl_name
|
|
49
|
+
self.modify
|
|
50
|
+
|
|
51
|
+
# Return the next page object.
|
|
52
|
+
AdminModule::ConfigHelper.page_factory.guideline_page(false)
|
|
53
|
+
#GuidelinePage.new(@browser, false)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def version_all
|
|
57
|
+
version_all_button
|
|
58
|
+
|
|
59
|
+
# Return the next page object.
|
|
60
|
+
AdminModule::ConfigHelper.page_factory.guidelines_version_all_page(false)
|
|
61
|
+
#GuidelinesVersionAllPage.new(@browser, false)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end # module Pages
|
|
65
|
+
|
|
@@ -9,108 +9,115 @@ require 'page-object'
|
|
|
9
9
|
|
|
10
10
|
module AdminModule::Pages
|
|
11
11
|
|
|
12
|
-
class GuidelinesVersionAllPage
|
|
13
|
-
|
|
12
|
+
class GuidelinesVersionAllPage
|
|
13
|
+
include PageObject
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
attr_reader :errors
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
#page_url(:get_dynamic_url)
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
def get_dynamic_url
|
|
20
|
+
AdminModule.configuration.base_url + "/admin/decision/versionAllGuideline.aspx"
|
|
21
|
+
end
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
# This must be a class method so it's available for the control
|
|
24
|
+
# method generation methods.
|
|
25
|
+
#
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
def self.available_gdls_id
|
|
28
|
+
'ctl00_cntPlh_tsGuidelines_lstAvailable'
|
|
29
|
+
end
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
select_list(:guidelines_available,
|
|
32
|
+
id: 'ctl00_cntPlh_tsGuidelines_lstAvailable' )
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
select_list(:guidelines_selected,
|
|
35
|
+
id: 'ctl00_cntPlh_tsGuidelines_lstSelected' )
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
button(:add_guideline_button,
|
|
38
|
+
id: 'ctl00_cntPlh_tsGuidelines_btnAdd' )
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
text_area(:version_notes,
|
|
41
|
+
id: 'ctl00_cntPlh_txtVersionAllNotes')
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
button(:save_button,
|
|
44
|
+
id: 'ctl00_cntPlh_cmdSave')
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
end
|
|
46
|
+
button(:cancel_button,
|
|
47
|
+
id: 'ctl00_cntPlh_cmdCancel')
|
|
47
48
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
Nokogiri::HTML(@browser.html).css("select#ctl00_cntPlh_tsGuidelines_lstAvailable>option").each do |elem|
|
|
51
|
-
gdl_list << elem.text
|
|
52
|
-
end
|
|
49
|
+
div(:version_errors,
|
|
50
|
+
id: 'ctl00_cntPlh_ctlErrors_vsmErrors')
|
|
53
51
|
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
def errors
|
|
53
|
+
@errors ||= []
|
|
54
|
+
end
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
def get_guidelines
|
|
57
|
+
gdl_list = []
|
|
58
|
+
Nokogiri::HTML(@browser.html).css("select##{GuidelinesVersionAllPage.available_gdls_id}>option").each do |elem|
|
|
59
|
+
gdl_list << elem.text
|
|
60
|
+
end
|
|
59
61
|
|
|
60
|
-
|
|
61
|
-
comments = "auto version"
|
|
62
|
+
gdl_list
|
|
62
63
|
end
|
|
63
|
-
self.version_notes = comments
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
def version(gdl_names, comments = nil)
|
|
66
|
+
gdl_names = Array(gdl_names)
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
self.
|
|
71
|
-
end
|
|
68
|
+
if comments.nil?
|
|
69
|
+
comments = "auto version"
|
|
70
|
+
end
|
|
71
|
+
self.version_notes = comments
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
reset_errors
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
# Add guidelines to be versioned to the selected area.
|
|
76
|
+
gdl_names.each do |gdl|
|
|
77
|
+
guidelines_available_element.select(gdl)
|
|
78
|
+
self.add_guideline_button
|
|
79
|
+
end
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
current_url
|
|
81
|
+
self.save_button
|
|
79
82
|
|
|
80
|
-
|
|
81
|
-
add_error 'Timeout occurred. Try adjusting the browser_timeout configuration option.'
|
|
83
|
+
capture_errors
|
|
82
84
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
# Return the url of the version guideline page.
|
|
86
|
+
current_url
|
|
85
87
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
end
|
|
88
|
+
rescue Timeout::Error => e
|
|
89
|
+
add_error 'Timeout occurred. Try adjusting the browser_timeout configuration option.'
|
|
89
90
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
end
|
|
91
|
+
rescue Exception => e
|
|
92
|
+
add_error e.message
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
ensure
|
|
95
|
+
raise_if_errors
|
|
96
|
+
end
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
def reset_errors
|
|
99
|
+
errors = []
|
|
100
|
+
end
|
|
101
101
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
def has_errors?
|
|
103
|
+
errors.size > 0
|
|
104
|
+
end
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
error = ''
|
|
109
|
-
errors.each { |err| error << err + "\n" }
|
|
110
|
-
raise error
|
|
106
|
+
def add_error err_msg
|
|
107
|
+
errors << err_msg
|
|
111
108
|
end
|
|
112
|
-
end
|
|
113
|
-
end # class GuidelinesVersionAllPage
|
|
114
109
|
|
|
110
|
+
def capture_errors
|
|
111
|
+
add_error(version_errors) unless (!version_errors? || version_errors.empty?)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def raise_if_errors
|
|
115
|
+
if has_errors?
|
|
116
|
+
error = ''
|
|
117
|
+
errors.each { |err| error << err + "\n" }
|
|
118
|
+
raise error
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end # class GuidelinesVersionAllPage
|
|
115
122
|
end # module Pages
|
|
116
123
|
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
##############################################################################
|
|
2
|
+
# File:: guidelines_version_all_page_400.rb
|
|
3
|
+
# Purpose:: Guidelines Version All page for AdminModule (v 4.0.0)
|
|
4
|
+
#
|
|
5
|
+
# Author:: Jeff McAffee 2015-09-24
|
|
6
|
+
#
|
|
7
|
+
##############################################################################
|
|
8
|
+
require 'page-object'
|
|
9
|
+
|
|
10
|
+
module AdminModule::Pages
|
|
11
|
+
class GuidelinesVersionAllPage400
|
|
12
|
+
include PageObject
|
|
13
|
+
|
|
14
|
+
attr_reader :errors
|
|
15
|
+
|
|
16
|
+
#page_url(:get_dynamic_url)
|
|
17
|
+
|
|
18
|
+
def get_dynamic_url
|
|
19
|
+
AdminModule.configuration.base_url + "/admin/decision/versionAllGuideline.aspx"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# This must be a class method so it's available for the control
|
|
23
|
+
# method generation methods.
|
|
24
|
+
#
|
|
25
|
+
|
|
26
|
+
def self.available_gdls_id
|
|
27
|
+
'tsGuidelines_lstAvailable'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
select_list(:guidelines_available,
|
|
31
|
+
id: available_gdls_id )
|
|
32
|
+
|
|
33
|
+
select_list(:guidelines_selected,
|
|
34
|
+
id: 'tsGuidelines_lstSelected' )
|
|
35
|
+
|
|
36
|
+
button(:add_guideline_button,
|
|
37
|
+
id: 'tsGuidelines_btnAdd' )
|
|
38
|
+
|
|
39
|
+
text_area(:version_notes,
|
|
40
|
+
id: 'txtVersionAllNotes')
|
|
41
|
+
|
|
42
|
+
button(:save_button,
|
|
43
|
+
id: 'cmdSave')
|
|
44
|
+
|
|
45
|
+
button(:cancel_button,
|
|
46
|
+
id: 'cmdCancel')
|
|
47
|
+
|
|
48
|
+
div(:version_errors,
|
|
49
|
+
id: 'ctlErrors_vsmErrors')
|
|
50
|
+
|
|
51
|
+
def errors
|
|
52
|
+
@errors ||= []
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def get_guidelines
|
|
56
|
+
gdl_list = []
|
|
57
|
+
Nokogiri::HTML(@browser.html).css("select##{GuidelinesVersionAllPage400.available_gdls_id}>option").each do |elem|
|
|
58
|
+
gdl_list << elem.text
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
gdl_list
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def version(gdl_names, comments = nil)
|
|
65
|
+
gdl_names = Array(gdl_names)
|
|
66
|
+
|
|
67
|
+
if comments.nil?
|
|
68
|
+
comments = "auto version"
|
|
69
|
+
end
|
|
70
|
+
self.version_notes = comments
|
|
71
|
+
|
|
72
|
+
reset_errors
|
|
73
|
+
|
|
74
|
+
# Add guidelines to be versioned to the selected area.
|
|
75
|
+
gdl_names.each do |gdl|
|
|
76
|
+
guidelines_available_element.select(gdl)
|
|
77
|
+
self.add_guideline_button
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
self.save_button
|
|
81
|
+
|
|
82
|
+
capture_errors
|
|
83
|
+
|
|
84
|
+
# Return the url of the version guideline page.
|
|
85
|
+
current_url
|
|
86
|
+
|
|
87
|
+
rescue Timeout::Error => e
|
|
88
|
+
add_error 'Timeout occurred. Try adjusting the browser_timeout configuration option.'
|
|
89
|
+
|
|
90
|
+
rescue Exception => e
|
|
91
|
+
add_error e.message
|
|
92
|
+
|
|
93
|
+
ensure
|
|
94
|
+
raise_if_errors
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def reset_errors
|
|
98
|
+
errors = []
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def has_errors?
|
|
102
|
+
errors.size > 0
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def add_error err_msg
|
|
106
|
+
errors << err_msg
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def capture_errors
|
|
110
|
+
add_error(version_errors) unless (!version_errors? || version_errors.empty?)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def raise_if_errors
|
|
114
|
+
if has_errors?
|
|
115
|
+
error = ''
|
|
116
|
+
errors.each { |err| error << err + "\n" }
|
|
117
|
+
raise error
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end # class
|
|
121
|
+
end # module
|
|
122
|
+
|