Skip to content

Commit

Permalink
Merge pull request #12718 from eclarizio/BZ1396167
Browse files Browse the repository at this point in the history
Fix for service dialog refreshing every time a dropdown item is selected
(cherry picked from commit 2cd0d32)

https://bugzilla.redhat.com/show_bug.cgi?id=1396167
  • Loading branch information
gmcculloug authored and chessbyte committed Nov 17, 2016
1 parent 2885183 commit 8ffcaef
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 8 deletions.
4 changes: 2 additions & 2 deletions app/assets/javascripts/dialog_field_refresh.js
Expand Up @@ -15,7 +15,7 @@ var dialogFieldRefresh = {
$('#' + fieldName).selectpicker('val', selectedValue);
}
miqSelectPickerEvent(fieldName, url, {callback: function() {
dialogFieldRefresh.triggerAutoRefresh(fieldId, triggerAutoRefresh || "true");
dialogFieldRefresh.triggerAutoRefresh(fieldId, triggerAutoRefresh);
return true;
}});
},
Expand Down Expand Up @@ -168,7 +168,7 @@ var dialogFieldRefresh = {


triggerAutoRefresh: function(fieldId, trigger) {
if (trigger === "true") {
if (Boolean(trigger) === true) {
parent.postMessage({fieldId: fieldId}, '*');
}
},
Expand Down
34 changes: 28 additions & 6 deletions spec/javascripts/dialog_field_refresh_spec.js
Expand Up @@ -423,14 +423,36 @@ describe('dialogFieldRefresh', function() {
expect(window.miqSelectPickerEvent).toHaveBeenCalledWith('fieldName', 'url', {callback: jasmine.any(Function)});
});

it('triggers the auto refresh when the drop down changes', function() {
dialogFieldRefresh.initializeDialogSelectPicker(fieldName, fieldId, selectedValue, url);
it('triggers autorefresh with true only when triggerAutoRefresh arg is true', function() {
dialogFieldRefresh.initializeDialogSelectPicker(fieldName, fieldId, selectedValue, url, 'true');
expect(dialogFieldRefresh.triggerAutoRefresh).toHaveBeenCalledWith(fieldId, 'true');
});
});

describe('#triggerAutoRefresh', function() {
beforeEach(function() {
spyOn(parent, 'postMessage');
});

context('when the trigger passed in falsy', function() {
it('does not post any messages', function() {
dialogFieldRefresh.triggerAutoRefresh(123, "");
expect(parent.postMessage).not.toHaveBeenCalled();
});
});

context('when the trigger passed in is the string "true"', function() {
it('posts a message', function() {
dialogFieldRefresh.triggerAutoRefresh(123, "true");
expect(parent.postMessage).toHaveBeenCalledWith({fieldId: 123}, '*');
});
});

it('triggers autorefresh with "false" when triggerAutoRefresh arg is false', function() {
dialogFieldRefresh.initializeDialogSelectPicker(fieldName, fieldId, selectedValue, url, 'false');
expect(dialogFieldRefresh.triggerAutoRefresh).toHaveBeenCalledWith(fieldId, 'false');
context('when the trigger passed in is true', function() {
it('posts a message', function() {
dialogFieldRefresh.triggerAutoRefresh(123, true);
expect(parent.postMessage).toHaveBeenCalledWith({fieldId: 123}, '*');
});
});
});
});
});

0 comments on commit 8ffcaef

Please sign in to comment.