From 9172b7f08a7dabde275253b47ad051600decbe7b Mon Sep 17 00:00:00 2001 From: Weitian LI Date: Sun, 27 Apr 2014 02:00:01 +0800 Subject: * updated 'profile_update' template: o account_profile_update.css account_profile_update.js o added fields 'reason', 'transcript', 'supplement' o supported upload files (optional, dynamical formset) * updated urls.py of 'password_reset' view --- account/static/js/account_profile_update.js | 62 +++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 account/static/js/account_profile_update.js (limited to 'account/static/js') diff --git a/account/static/js/account_profile_update.js b/account/static/js/account_profile_update.js new file mode 100644 index 0000000..8a91e28 --- /dev/null +++ b/account/static/js/account_profile_update.js @@ -0,0 +1,62 @@ +/* + * account_profile_update.js + * for 'profile_update.html' template + */ + +$(document).ready(function() { + // modify styles of supplment textarea within 'mainform' + $(".mainform textarea#id_supplement").attr('rows', 1); + $(".mainform textarea#id_supplement").focus(function() { + // show 5 rows when focused + $(this).attr('rows', 5); + }).blur(function() { + // show only 1 row when unfocus + $(this).attr('rows', 1); + }); + + // modify styles of file description textarea of subforms + $(".subform textarea").attr('rows', 1); + $(".subform textarea").focus(function() { + // show 3 rows when focused + $(this).attr('rows', 3); + }).blur(function() { + // show only 1 row when unfocus + $(this).attr('rows', 1); + }); + + // remove 'required' attribute of subform + $(".subform input").filter('[required]').removeAttr('required'); + + // add-subform button + // ref: http://stackoverflow.com/questions/501719/dynamically-adding-a-form-to-a-django-formset-with-ajax + function cloneMore(selector, type) { + var newElement = $(selector).clone(true); + var total = $('#id_' + type + '-TOTAL_FORMS').val(); + newElement.find(':input').each(function() { + // update name and id attributes + var name = $(this).attr('name').replace('-'+(total-1)+'-', '-'+total+'-'); + var id = 'id_' + name; + $(this).attr({'name': name, 'id': id}).val('').removeAttr('checked'); + }); + newElement.find('label').each(function() { + // update for attributes if exists + if ($(this).attr('for')) { + var newFor = $(this).attr('for').replace('-'+(total-1)+'-', '-'+total+'-'); + $(this).attr('for', newFor); + } + }); + // remove 'has-success has-error' classes and help-block + newElement.children().removeClass('has-success has-error'); + newElement.find('.help-block').remove(); + // update management_form settings + total++; + $('#id_' + type + '-TOTAL_FORMS').val(total); + $(selector).after(newElement); + } + + // Register the click event handlers + $("#add-subform").click(function () { + cloneMore('div.subform:last', 'userfile_set'); + }); +}); + -- cgit v1.2.2