diff --git a/e2e_test/hawk_test_driver.py b/e2e_test/hawk_test_driver.py index 610844fdb..e1c8eb60e 100644 --- a/e2e_test/hawk_test_driver.py +++ b/e2e_test/hawk_test_driver.py @@ -359,7 +359,7 @@ def test_set_fencing_maintenance(self): # try to find the old RSC_ROWS for 10 seconds (Ruby hawk) # if none --> search for RSC_ROWS_NEW (Go hawk) - if self.find_element(By.XPATH, Xpath.RSC_ROWS, 10): + if self.find_element(By.XPATH, Xpath.RSC_ROWS, 20): totalrows = len(self.driver.find_elements(By.XPATH, Xpath.RSC_ROWS)) if not totalrows: totalrows = 1 @@ -669,7 +669,8 @@ def test_copy_primitive(self): resource_number_from_top = 1 # 1. cool_primitive, 2. fencing-sbd|stonith-sbd copy_btn = None - if self.find_element(By.XPATH, Xpath.RSC_ROWS, 10): + time.sleep(BIG_TIMEOUT) + if self.find_element(By.XPATH, Xpath.RSC_ROWS, 20): # First, click on Edit time.sleep(2) self.check_and_click_by_xpath(Error.COOL_PRIMITIVE_ERR, [Xpath.DROP_DOWN_FORMAT.format(resource_number_from_top), @@ -724,7 +725,7 @@ def test_rename_primitive(self): resource_number_from_top = 2 # 1. cool_primitive, 2. dum_primitive, 3. fencing-sbd|stonith-sbd input_elem = None - if self.find_element(By.XPATH, Xpath.RSC_ROWS, 10): + if self.find_element(By.XPATH, Xpath.RSC_ROWS, 20): # First, stop the cool_primitive time.sleep(2) self.check_and_click_by_xpath(Error.DUM_PRIMITIVE_ERR,[Xpath.STOP_PRIMITIVE_FORMAT.format(resource_number_from_top), @@ -780,7 +781,7 @@ def test_rename_primitive(self): input_elem.send_keys("dummy_primitive") # There are 2 submit buttons, one on the main page and another on the popup (the one we need) - submit_btn = self.find_element(By.XPATH, '//button[@type="submit" and .//i[contains(@class, "fa-save")]]', 10) + submit_btn = self.find_element(By.XPATH, '//button[@type="submit" and .//i[contains(@class, "fa-save")]]') if not submit_btn: print("ERROR: Couldn't find Rename-Submit button") return False @@ -802,7 +803,8 @@ def test_delete_primitive(self): print("TEST: test_delete_primitive: Delete the dummy_primitive") resource_number_from_top = 2 # 1. cool_primitive, 2. dummy_primitive, 3. fencing-sbd|stonith-sbd - if self.find_element(By.XPATH, Xpath.RSC_ROWS, 10) or self.find_element(By.XPATH, Xpath.RSC_ROWS_NEW): + time.sleep(BIG_TIMEOUT) + if self.find_element(By.XPATH, Xpath.RSC_ROWS, 20) or self.find_element(By.XPATH, Xpath.RSC_ROWS_NEW): # First, click on edit time.sleep(2) self.check_and_click_by_xpath(Error.DUMMY_PRIMITIVE_ERR, [ @@ -812,13 +814,14 @@ def test_delete_primitive(self): # Second, click on Delete time.sleep(2) # wait the redirect finishes - delete_btn = self.find_element(By.XPATH, '//button[.//i[contains(@class, "fa-trash")]] | //a[.//i[contains(@class, "fa-trash")]]', 10) + delete_btn = self.find_element(By.XPATH, '//button[.//i[contains(@class, "fa-trash")]] | //a[.//i[contains(@class, "fa-trash")]]') if not delete_btn: print("ERROR: Couldn't find Delete button") return False delete_btn.click() # Third, confirm deleting + time.sleep(BIG_TIMEOUT) commit_btn = self.find_element(By.CLASS_NAME, "commit") if not commit_btn: print("ERROR: Couldn't find OK-Commit button") @@ -912,7 +915,7 @@ def test_add_clone(self, clone): return False elem.send_keys(clone) - elem = self.find_element(By.XPATH, Xpath.CLONE_CHILD, 10) + elem = self.find_element(By.XPATH, Xpath.CLONE_CHILD, 20) if elem: # --> old ruby hawk elem.click() self.check_and_click_by_xpath(f"while adding clone [{clone}]", diff --git a/hawk/app/assets/javascripts/dashboard.js b/hawk/app/assets/javascripts/dashboard.js index d73e4853a..5909782a2 100644 --- a/hawk/app/assets/javascripts/dashboard.js +++ b/hawk/app/assets/javascripts/dashboard.js @@ -4,6 +4,10 @@ // See COPYING for license. $( document ).ready(function() { + $(document).on("ajax:complete", ".remove-cluster", function() { + location.reload(); + }); + $(".status-wrapper").find(".status-table").each(function(index, element) { // jshint ignore:line var id = $(this).attr("id"); var data = $(this).data("cluster"); diff --git a/hawk/app/assets/javascripts/module/constraints.js b/hawk/app/assets/javascripts/module/constraints.js index 563b83fb3..8dce904ca 100644 --- a/hawk/app/assets/javascripts/module/constraints.js +++ b/hawk/app/assets/javascripts/module/constraints.js @@ -5,7 +5,7 @@ $(function() { var constraintResources = function(row) { var flattenResourceList = null; flattenResourceList = function(obj) { - var t = $.type(obj); + var t = Array.isArray(obj) ? "array" : (obj === null ? "null" : typeof obj); var ret = []; if (t === "string") { ret.push(obj); diff --git a/hawk/app/assets/javascripts/module/oplist.js b/hawk/app/assets/javascripts/module/oplist.js index 4ae19b624..3a5afacfd 100644 --- a/hawk/app/assets/javascripts/module/oplist.js +++ b/hawk/app/assets/javascripts/module/oplist.js @@ -232,8 +232,8 @@ var tgtnode = self.$el.find(self.targets); tgtnode.html([ - '
', - '
' + '
', + '
' ].join("")); var itemhook = tgtnode.find('.oplist-items'); var addhook = tgtnode.find('.oplist-adder'); diff --git a/hawk/app/assets/javascripts/module/primitives.js b/hawk/app/assets/javascripts/module/primitives.js index a03bade94..94c9d0e86 100644 --- a/hawk/app/assets/javascripts/module/primitives.js +++ b/hawk/app/assets/javascripts/module/primitives.js @@ -190,7 +190,7 @@ $(function() { } var format_longdesc = function(text) { - var longdesc = $.map(text.split('\n\n'), function(v) { return $.trim(v); }); + var longdesc = $.map(text.split('\n\n'), function(v) { return v.trim(); }); var ret = []; $.each(longdesc, function(i, v) { if (v) { @@ -227,9 +227,9 @@ $(function() { var lookup = function(root, lstname, elemname) { if (lstname in root) { - if ($.type(root[lstname]) == "object") { + if (root[lstname] !== null && typeof root[lstname] == "object" && !Array.isArray(root[lstname])) { if (elemname in root[lstname]) { - if ($.type(root[lstname][elemname]) == "object") { + if (root[lstname][elemname] !== null && typeof root[lstname][elemname] == "object" && !Array.isArray(root[lstname][elemname])) { return [root[lstname][elemname]]; } else { return root[lstname][elemname]; @@ -248,9 +248,9 @@ $(function() { $.each(lookup(data.resource_agent, "parameters", "parameter"), function(i, v) { var name = v.name; var longdesc = ""; - if ($.trim(v.longdesc)) { + if (String(v.longdesc || '').trim()) { longdesc = v.longdesc; - } else if ($.trim(v.shortdesc)) { + } else if (String(v.shortdesc || '').trim()) { longdesc = v.shortdesc; } var type = "string"; diff --git a/hawk/app/assets/javascripts/module/profiles.js b/hawk/app/assets/javascripts/module/profiles.js index 7e9e481fd..afdf9c579 100644 --- a/hawk/app/assets/javascripts/module/profiles.js +++ b/hawk/app/assets/javascripts/module/profiles.js @@ -15,7 +15,7 @@ $(function() { return $(element).html() + ' [' + $(element).val() + ']'; }, onChange: function(element) { - $(element.context.form) + element.closest('form') .find('[name="revert"]') .show() .end() diff --git a/hawk/app/assets/javascripts/module/recipientlist.js b/hawk/app/assets/javascripts/module/recipientlist.js index 04b4436e6..6da4eb2a3 100644 --- a/hawk/app/assets/javascripts/module/recipientlist.js +++ b/hawk/app/assets/javascripts/module/recipientlist.js @@ -151,8 +151,8 @@ var tgtnode = self.$el.find(self.targets); tgtnode.html([ - '
', - '
' + '
', + '
' ].join("")); var itemhook = tgtnode.find('.recipientlist-items'); var addhook = tgtnode.find('.recipientlist-adder'); diff --git a/hawk/app/assets/javascripts/module/roles.js b/hawk/app/assets/javascripts/module/roles.js index b0ebd83a8..d65a3c75c 100644 --- a/hawk/app/assets/javascripts/module/roles.js +++ b/hawk/app/assets/javascripts/module/roles.js @@ -181,7 +181,7 @@ $(function() { $(e.currentTarget) .closest('fieldset') .siblings() - .andSelf() + .andBack() .each(function(index, current) { $(current) .find('.form-control') diff --git a/hawk/app/assets/javascripts/module/statustable.js b/hawk/app/assets/javascripts/module/statustable.js index 029c3dc5b..6953eed0e 100644 --- a/hawk/app/assets/javascripts/module/statustable.js +++ b/hawk/app/assets/javascripts/module/statustable.js @@ -341,7 +341,7 @@ var statusTable = { }); that.inner_section.find(".search input").keyup(function(){ - var val = $.trim( this.value ).toUpperCase(); + var val = this.value.trim().toUpperCase(); that.set_search_state(val); that.displayClusterStatus(); }); diff --git a/hawk/app/assets/javascripts/module/users.js b/hawk/app/assets/javascripts/module/users.js index 4a6dfadf9..ca842c9f8 100644 --- a/hawk/app/assets/javascripts/module/users.js +++ b/hawk/app/assets/javascripts/module/users.js @@ -126,7 +126,7 @@ $(function() { enableFiltering: true, buttonWidth: '100%', onChange: function(element, checked) { - $(element.context.form) + element.closest('form') .find('[name="revert"]') .show() .end() diff --git a/hawk/app/assets/javascripts/module/wizards.js b/hawk/app/assets/javascripts/module/wizards.js index 4567d4584..fd865837c 100644 --- a/hawk/app/assets/javascripts/module/wizards.js +++ b/hawk/app/assets/javascripts/module/wizards.js @@ -92,7 +92,7 @@ $(function() { content.html('
' + $('
').text(data.output).html() + '
'); }); } - vform.find(".submit").addClass("disabled").bind("click", false); + vform.find(".submit").addClass("disabled").on("click", false); vform.find(".actions .list-group-item").removeClass("disabled").addClass("list-group-item-success"); vform.find(".notifications").html('
' + __("Changes applied successfully.") + '
'); }); diff --git a/hawk/app/views/dashboards/show.html.erb b/hawk/app/views/dashboards/show.html.erb index 8838f5249..700fed05e 100644 --- a/hawk/app/views/dashboards/show.html.erb +++ b/hawk/app/views/dashboards/show.html.erb @@ -127,7 +127,7 @@
  • -
    +