Commit | Line | Data |
---|---|---|
444f2d43 DT |
1 | /** |
2 | * FSF Member Dashboard | |
3 | * Copyright © 2014 Free Software Foundation, Inc. | |
4 | * | |
5 | * This file is a part of FSF Member Dashboard. | |
6 | * | |
7 | * FSF Member Dashboard is free software; you can copy, modify, and | |
8 | * distribute it under the terms of the GNU Affero General Public | |
9 | * License Version 3, 19 November 2007 and the CiviCRM Licensing | |
10 | * Exception. | |
11 | * | |
12 | * FSF Member Dashboard is distributed in the hope that it will be | |
13 | * useful, but WITHOUT ANY WARRANTY; without even the implied warranty | |
14 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 | * Affero General Public License for more details. | |
16 | * | |
17 | * You should have received a copy of the GNU General Public License | |
18 | * along with FSF Member Dashboard. If not, see | |
19 | * <http://www.gnu.org/licenses/>. | |
20 | */ | |
21 | ||
5bf8e499 | 22 | (function($) { |
444f2d43 | 23 | function loadProfile(gid, success) { |
5bf8e499 | 24 | $.get('/civicrm/profile/edit', { |
444f2d43 DT |
25 | gid: gid, |
26 | json: 1 | |
27 | }, success); | |
28 | } | |
29 | ||
30 | function renderProfile(profile) { | |
31 | function renderFields() { | |
32 | return _.chain(profile) | |
33 | .values() | |
34 | .filter(function(field) { | |
35 | return _.isString(field.label) && _.isString(field.html); | |
36 | }) | |
37 | .map(function (field) { | |
0ad4e96b DT |
38 | return $('<div class="crm-section"></div>') |
39 | .append($('<div class="form-item"></div>') | |
40 | .append($('<div class="label"></div>') | |
41 | .append(field.label)) | |
42 | .append($('<div class="content"></div>') | |
43 | .append(field.html)) | |
44 | .append($('<div class="clear"></div>'))); | |
444f2d43 DT |
45 | }) |
46 | .value(); | |
47 | } | |
48 | ||
5bf8e499 DT |
49 | // Support older versions of jQuery that don't parse the JSON by |
50 | // default. | |
51 | profile = _.isString(profile) ? JSON.parse(profile): profile; | |
444f2d43 DT |
52 | var form = $('<form' + profile.attributes + '></form>'); |
53 | ||
54 | form.append(profile.requirednote) | |
55 | .append(profile.hidden) | |
56 | .append.apply(form, renderFields()); | |
57 | ||
473ce7cb | 58 | $('#info-loading').remove(); |
5bf8e499 | 59 | $('#info-form').append(form); |
444f2d43 DT |
60 | } |
61 | ||
62 | $(document).ready(function() { | |
a2dcdb05 | 63 | loadProfile(memberDashboard.profileId, renderProfile); |
444f2d43 | 64 | }); |
5bf8e499 | 65 | })(jQuery); |