From b0c70b3ca7127b9028e666f15e24261414d3caa0 Mon Sep 17 00:00:00 2001 From: thomascube Date: Fri, 3 Jun 2011 22:37:47 +0000 Subject: [PATCH] Use address_template config when adding a new address block (#1487944) --- CHANGELOG | 1 + program/js/app.js | 21 +++++++++++++++++---- program/steps/addressbook/edit.inc | 4 ++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index b7f16896c..793673ca0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Use 'address_template' config option when adding a new address block (#1487944) - Added addressbook advanced search - Add popup with basic fields selection for addressbook search - Case-insensitive matching in autocompletion (#1487933) diff --git a/program/js/app.js b/program/js/app.js index 48f058eaf..c81c511a9 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -4109,14 +4109,27 @@ function rcube_webmail() this.init_edit_field(col, input); } else if (colprop.type == 'composite') { - var childcol, cp, first; - for (childcol in colprop.childs) { + var childcol, cp, first, templ, cols = [], suffices = []; + // read template for composite field order + if ((templ = this.env[col+'_template'])) { + for (var j=0; j < templ.length; j++) { + cols.push(templ[j][1]); + suffices.push(templ[j][2]); + } + } + else { // list fields according to appearance in colprop + for (childcol in colprop.childs) + cols.push(childcol); + } + + for (var i=0; i < cols.length; i++) { + childcol = cols[i]; cp = colprop.childs[childcol]; input = $('') .addClass('ff_'+childcol) - .attr({type: 'text', name: '_'+childcol+name_suffix, size: cp.size}) + .attr({ type: 'text', name: '_'+childcol+name_suffix, size: cp.size }) .appendTo(cell); - cell.append(" "); + cell.append(suffices[i] || " "); this.init_edit_field(childcol, input); if (!first) first = input; } diff --git a/program/steps/addressbook/edit.inc b/program/steps/addressbook/edit.inc index cf6beba68..96c48704a 100644 --- a/program/steps/addressbook/edit.inc +++ b/program/steps/addressbook/edit.inc @@ -90,6 +90,10 @@ function rcmail_contact_editform($attrib) // add some labels to client $RCMAIL->output->add_label('noemailwarning', 'nonamewarning'); + + // copy (parsed) address template to client + if (preg_match_all('/\{([a-z0-9]+)\}([^{]*)/i', $RCMAIL->config->get('address_template', ''), $templ, PREG_SET_ORDER)) + $RCMAIL->output->set_env('address_template', $templ); $i_size = !empty($attrib['size']) ? $attrib['size'] : 40; $t_rows = !empty($attrib['textarearows']) ? $attrib['textarearows'] : 10;