|
|
|
'use strict'; |
|
{ |
|
const $ = django.jQuery; |
|
$.fn.prepopulate = function(dependencies, maxLength, allowUnicode) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return this.each(function() { |
|
const prepopulatedField = $(this); |
|
|
|
const populate = function() { |
|
|
|
if (prepopulatedField.data('_changed')) { |
|
return; |
|
} |
|
|
|
const values = []; |
|
$.each(dependencies, function(i, field) { |
|
field = $(field); |
|
if (field.val().length > 0) { |
|
values.push(field.val()); |
|
} |
|
}); |
|
prepopulatedField.val(URLify(values.join(' '), maxLength, allowUnicode)); |
|
}; |
|
|
|
prepopulatedField.data('_changed', false); |
|
prepopulatedField.on('change', function() { |
|
prepopulatedField.data('_changed', true); |
|
}); |
|
|
|
if (!prepopulatedField.val()) { |
|
$(dependencies.join(',')).on('keyup change focus', populate); |
|
} |
|
}); |
|
}; |
|
} |
|
|