// -*- coding: utf-8; indent-tabs-mode: nil -*- Ext.namespace('Zarafa.contact.printer'); /** * @class Zarafa.contact.printer.ContactRenderer * @extends Zarafa.common.printer.renderers.RecordRenderer * * A printer for contacts in the same layout as for emails */ Zarafa.contact.printer.ContactRenderer = Ext.extend(Zarafa.common.printer.renderers.RecordRenderer, { /** * Generate the XTemplate HTML text for printing a single contact or distlist. * @param {Zarafa.core.data.MAPIRecord} record The task item to print * @return {String} The HTML for the XTemplate to print */ generateBodyTemplate: function(record) { var html = ''; html += '<b>{fullname:htmlEncode}</b>\n'; html += '<hr>\n'; html += '<table>\n'; html += this.optionalRow(_('Full Name'), 'display_name', '{display_name:htmlEncode}'); html += this.optionalRow(_('Last Name'), 'surname', '{surname:htmlEncode}'); html += this.optionalRow(_('First Name'), 'given_name', '{given_name:htmlEncode}'); html += this.optionalRow(_('Job Title'), 'title', '{title:htmlEncode}'); html += this.optionalRow(_('Department'), 'department_name', '{department_name:htmlEncode}'); html += this.optionalRow(_('Company'), 'company_name', '{company_name:htmlEncode}'); html += this.addRow('', ''); // separator html += this.optionalRow(_('Business Address'), 'business_address', // american formatted address. translations can add more <br> and change sequence '{business_address_street:htmlEncode}<br>' + '{business_address_city:htmlEncode} {business_address_state:htmlEncode} {business_address_postal_code:htmlEncode}<br>' + '{business_address_country:htmlEncode}'); html += this.optionalRow(_('IM Address'), 'im', '{im:htmlEncode}'); html += this.addRow('', ''); // separator html += this.optionalRow(_('Home Address'), 'home_address', '{home_address_street:htmlEncode}<br>' + '{home_address_city:htmlEncode} {home_address_state:htmlEncode} {home_address_postal_code:htmlEncode}<br>' + '{home_address_country:htmlEncode}'); html += this.addRow('', ''); // separator html += this.optionalRow(_('Business'), 'business_telephone_number', '{business_telephone_number:htmlEncode}'); html += this.optionalRow(_('Home'), 'home_telephone_number', '{home_telephone_number:htmlEncode}'); html += this.optionalRow(_('Mobile'), 'cellular_telephone_number', '{cellular_telephone_number:htmlEncode}'); html += this.optionalRow(_('Business Fax'), 'business_fax_number', '{business_fax_number:htmlEncode}'); html += this.addRow('', ''); // separator html += this.optionalRow(_('E-mail'), 'email_address_1', '{email_address_1:htmlEncode}'); html += this.optionalRow(_('E-mail Display As'), 'email_address_display_name_1', '{email_address_display_name_1:htmlEncode}'); html += this.optionalRow(_('E-mail 2'), 'email_address_2', '{email_address_2:htmlEncode}'); html += this.optionalRow(_('E-mail 2 Display As'), 'email_address_display_name_2', '{email_address_display_name_2:htmlEncode}'); html += this.optionalRow(_('E-mail 3'), 'email_address_3', '{email_address_3:htmlEncode}'); html += this.optionalRow(_('E-mail 3 Display As'), 'email_address_display_name_3', '{email_address_display_name_3:htmlEncode}'); html += this.addRow('', ''); // separator // # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions html += this.optionalRow(_('Birthday'), 'birthday', '{birthday:date("' + _("jS F Y") + '")}'); // 1st January 1912 // # TRANSLATORS: See http://docs.sencha.com/ext-js/3-4/#!/api/Date for the meaning of these formatting instructions html += this.optionalRow(_('Anniversary'), 'wedding_anniversary', '{wedding_anniversary:date("' + _("jS F Y") + '")}'); html += this.optionalRow(_('Spouse/Partner'), 'spouse_name', '{spouse_name:htmlEncode}'); html += this.optionalRow(_('Profession'), 'profession', '{profession:htmlEncode}'); html += this.optionalRow(_('Assistent'), 'assistent', '{assistent:htmlEncode}'); html += this.addRow('', ''); // separator html += this.optionalRow(_('Categories'), 'categories', '{categories:htmlEncode}'); html += this.optionalRow(_('Attachments'), 'attachment_names', '{attachment_names:htmlEncode}'); html += '</table><br><p>\n'; html += record.getBody(true); html += '</p>\n'; return html; } });