info: Improve appearance of rendered profile even more.
[org.fsf.memberdashboard.git] / assets / js / member-info.js
CommitLineData
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);