mirror of
https://github.com/django/django.git
synced 2025-02-22 07:24:59 +00:00
[5.2.x] Fixed #31170 -- Added change event trigger to dismissRelatedLookupPopup.
Backport of 51398f8bd568a6324a8cafe20c068d0974913ad5 from main.
This commit is contained in:
parent
7cf6a34cb2
commit
b0d497ada0
@ -57,6 +57,7 @@
|
||||
} else {
|
||||
elem.value = chosenId;
|
||||
}
|
||||
$(elem).trigger('change');
|
||||
const index = window.relatedWindows.indexOf(win);
|
||||
if (index > -1) {
|
||||
window.relatedWindows.splice(index, 1);
|
||||
|
@ -36,3 +36,43 @@ QUnit.test('dismissRelatedLookupPopup removes window from relatedWindows array',
|
||||
window.dismissRelatedLookupPopup(mockWin, '123');
|
||||
assert.equal(window.relatedWindows.indexOf(mockWin), -1, 'Window should be removed from relatedWindows array');
|
||||
});
|
||||
|
||||
QUnit.test('dismissRelatedLookupPopup triggers change event for single value field', function(assert) {
|
||||
assert.timeout(1000);
|
||||
const done = assert.async();
|
||||
const $ = django.jQuery;
|
||||
const testId = 'test_id';
|
||||
const newValue = '123';
|
||||
const mockWin = {
|
||||
name: testId,
|
||||
close: function() {}
|
||||
};
|
||||
let changeTriggered = false;
|
||||
$('#test_id').on('change', function() {
|
||||
changeTriggered = true;
|
||||
assert.equal(this.value, newValue, 'Value should be updated');
|
||||
done();
|
||||
});
|
||||
window.dismissRelatedLookupPopup(mockWin, newValue);
|
||||
assert.true(changeTriggered, 'Change event should be triggered');
|
||||
});
|
||||
|
||||
QUnit.test('dismissRelatedLookupPopup triggers change event for many-to-many field', function(assert) {
|
||||
assert.timeout(1000);
|
||||
const $ = django.jQuery;
|
||||
const testId = 'many_test_id';
|
||||
const existingValue = '1,2';
|
||||
const newValue = '3';
|
||||
$('#many_test_id').val(existingValue);
|
||||
const mockWin = {
|
||||
name: testId,
|
||||
close: function() {}
|
||||
};
|
||||
let changeTriggered = false;
|
||||
$('#many_test_id').on('change', function() {
|
||||
changeTriggered = true;
|
||||
assert.equal(this.value, existingValue + ',' + newValue, 'Value should be appended for many-to-many fields');
|
||||
});
|
||||
window.dismissRelatedLookupPopup(mockWin, newValue);
|
||||
assert.true(changeTriggered, 'Change event should be triggered');
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user