--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/static/admin/js/prepopulate.js Tue Jun 08 01:16:35 2010 +0200
@@ -0,0 +1,34 @@
+(function($) {
+ $.fn.prepopulate = function(dependencies, maxLength) {
+ /*
+ Depends on urlify.js
+ Populates a selected field with the values of the dependent fields,
+ URLifies and shortens the string.
+ dependencies - selected jQuery object of dependent fields
+ maxLength - maximum length of the URLify'd string
+ */
+ return this.each(function() {
+ var field = $(this);
+
+ field.data('_changed', false);
+ field.change(function() {
+ field.data('_changed', true);
+ });
+
+ var populate = function () {
+ // Bail if the fields value has changed
+ if (field.data('_changed') == true) return;
+
+ var values = [];
+ dependencies.each(function() {
+ if ($(this).val().length > 0) {
+ values.push($(this).val());
+ }
+ });
+ field.val(URLify(values.join(' '), maxLength));
+ };
+
+ dependencies.keyup(populate).change(populate).focus(populate);
+ });
+ };
+})(django.jQuery);