2 /*********************************************************************************
3 * SugarCRM is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
6 * This program is free software; you can redistribute it and/or modify it under
7 * the terms of the GNU Affero General Public License version 3 as published by the
8 * Free Software Foundation with the addition of the following permission added
9 * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10 * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
11 * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
13 * This program is distributed in the hope that it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
18 * You should have received a copy of the GNU Affero General Public License along with
19 * this program; if not, see http://www.gnu.org/licenses or write to the Free
20 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
24 * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
26 * The interactive user interfaces in modified source and object code versions
27 * of this program must display Appropriate Legal Notices, as required under
28 * Section 5 of the GNU Affero General Public License version 3.
30 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31 * these Appropriate Legal Notices must retain the display of the "Powered by
32 * SugarCRM" logo. If the display of the logo is not reasonably feasible for
33 * technical reasons, the Appropriate Legal Notices must display the words
34 * "Powered by SugarCRM".
35 ********************************************************************************/
37 /*********************************************************************************
39 ********************************************************************************/
43 <script type="text/javascript" src="{sugar_getjspath file='modules/Emails/javascript/vars.js'}"></script>
44 <script type="text/javascript" src="{sugar_getjspath file='include/javascript/sugar_grp_emails.js'}"></script>
45 <link rel="stylesheet" type="text/css" href="{sugar_getjspath file='modules/Users/PasswordRequirementBox.css'}">
46 <script type='text/javascript' src='{sugar_getjspath file='include/javascript/sugar_grp_overlib.js'}'></script>
47 <script type="text/javascript" src="{sugar_getjspath file='include/javascript/sugar_grp_yui_widgets.js'}"></script>
48 <script type='text/javascript' src='{sugar_getjspath file='include/SubPanel/SubPanelTiles.js'}'></script>
49 <script type='text/javascript'>
50 var ERR_RULES_NOT_MET = '{$MOD.ERR_RULES_NOT_MET}';
51 var ERR_ENTER_OLD_PASSWORD = '{$MOD.ERR_ENTER_OLD_PASSWORD}';
52 var ERR_ENTER_NEW_PASSWORD = '{$MOD.ERR_ENTER_NEW_PASSWORD}';
53 var ERR_ENTER_CONFIRMATION_PASSWORD = '{$MOD.ERR_ENTER_CONFIRMATION_PASSWORD}';
54 var ERR_REENTER_PASSWORDS = '{$MOD.ERR_REENTER_PASSWORDS}';
56 <script type='text/javascript' src='{sugar_getjspath file='modules/Users/PasswordRequirementBox.js'}'></script>
58 <!-- This is here for the external API forms -->
59 <form name="DetailView" id="DetailView" method="POST" action="index.php">
60 <input type="hidden" name="record" id="record" value="{$ID}">
61 <input type="hidden" name="module" value="Users">
62 <input type="hidden" name="return_module" value="Users">
63 <input type="hidden" name="return_id" value="{$ID}">
64 <input type="hidden" name="return_action" value="EditView">
67 <form name="EditView" enctype="multipart/form-data" id="EditView" method="POST" action="index.php">
68 <input type="hidden" name="display_tabs_def">
69 <input type="hidden" name="hide_tabs_def">
70 <input type="hidden" name="remove_tabs_def">
71 <input type="hidden" name="module" value="Users">
72 <input type="hidden" name="record" id="record" value="{$ID}">
73 <input type="hidden" name="action">
74 <input type="hidden" name="page" value="EditView">
75 <input type="hidden" name="return_module" value="{$RETURN_MODULE}">
76 <input type="hidden" name="return_id" value="{$RETURN_ID}">
77 <input type="hidden" name="return_action" value="{$RETURN_ACTION}">
78 <input type="hidden" name="password_change" id="password_change" value="false">
79 <input type="hidden" name="required_password" id="required_password" value='{$REQUIRED_PASSWORD}' >
80 <input type="hidden" name="user_name" value="{$USER_NAME}">
81 <input type="hidden" name="type" value="{$REDIRECT_EMAILS_TYPE}">
82 <input type="hidden" id="is_group" name="is_group" value='{$IS_GROUP}' {$IS_GROUP_DISABLED}>
83 <input type="hidden" id='portal_only' name='portal_only' value='{$IS_PORTALONLY}' {$IS_PORTAL_ONLY_DISABLED}>
84 <input type="hidden" name="is_admin" id="is_admin" value='{$IS_FOCUS_ADMIN}' {$IS_ADMIN_DISABLED} >
85 <input type="hidden" name="is_current_admin" id="is_current_admin" value='{$IS_ADMIN}' >
86 <input type="hidden" name="edit_self" id="edit_self" value='{$EDIT_SELF}' >
87 <input type="hidden" name="required_email_address" id="required_email_address" value='{$REQUIRED_EMAIL_ADDRESS}' >
88 <div id="popup_window"></div>
90 <script type="text/javascript">
91 var EditView_tabs = new YAHOO.widget.TabView("EditView_tabs");
94 //Override so we do not force submit, just simulate the 'save button' click
95 SUGAR.EmailAddressWidget.prototype.forceSubmit = function() { document.getElementById('Save').click();}
97 EditView_tabs.on('contentReady', function(e){
101 EditView_tabs.addTab( new YAHOO.widget.Tab({
102 label: '{/literal}{$MOD.LBL_EAPM_SUBPANEL_TITLE}{literal}',
103 dataSrc: 'index.php?sugar_body_only=1&module=Users&subpanel=eapm&action=SubPanelViewer&inline=1&record={/literal}{$ID}{literal}&layout_def_key=UserEAPM&inline=1&ajaxSubpanel=true',
104 content: '<div style="text-align:center; width: 100%">{/literal}{sugar_image name="loading"}{literal}</div>',
107 EditView_tabs.getTab(4).getElementsByTagName('a')[0].id = 'tab5';
113 <table width="100%" cellpadding="0" cellspacing="0" border="0" class="actionsContainer">
116 <input id="Save" title="{$APP.LBL_SAVE_BUTTON_TITLE}" accessKey="{$APP.LBL_SAVE_BUTTON_KEY}"
117 class="button primary" onclick="if (!set_password(form,newrules('{$PWDSETTINGS.minpwdlength}','{$PWDSETTINGS.maxpwdlength}','{$REGEX}'))) return false; if (!Admin_check()) return false; this.form.action.value='Save'; {$CHOOSER_SCRIPT} {$REASSIGN_JS} if(verify_data(EditView)) this.form.submit();"
118 type="button" name="button" value="{$APP.LBL_SAVE_BUTTON_LABEL}" >
119 <input title="{$APP.LBL_CANCEL_BUTTON_TITLE}" accessKey="{$APP.LBL_CANCEL_BUTTON_KEY}"
120 class="button" onclick="this.form.action.value='{$RETURN_ACTION}'; this.form.module.value='{$RETURN_MODULE}'; this.form.record.value='{$RETURN_ID}'; this.form.submit()"
121 type="button" name="button" value="{$APP.LBL_CANCEL_BUTTON_LABEL}">
124 <td align="right" nowrap>
125 <span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span> {$APP.NTC_REQUIRED}
130 <div id="EditView_tabs" class="yui-navset">
132 <li class="selected"><a id="tab1" href="#tab1"><em>{$MOD.LBL_USER_INFORMATION}</em></a></li>
133 <li {if $CHANGE_PWD == 0}style='display:none'{/if}><a id="tab2" href="#tab2"><em>{$MOD.LBL_CHANGE_PASSWORD_TITLE}</em></a></li>
135 <li><a id="tab3" href="#tab3"><em>{$MOD.LBL_THEME}</em></a></li>
137 <li><a id="tab4" href="#tab4" style='display:{$HIDE_FOR_GROUP_AND_PORTAL};'><em>{$MOD.LBL_ADVANCED}</em></a></li>
139 <div class="yui-content">
142 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
144 <th align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_USER_INFORMATION}</slot></h4></th>
147 <td width="17%" scope="row"><slot>{$MOD.LBL_USER_NAME}: <span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span></slot></td>
148 <td width="33%" ><slot><input name='sugar_user_name' type="text" {$USER_NAME_DISABLED} tabindex='1' size='15' maxlength='25' value='{$USER_NAME}' /></slot></td>
149 <td width="17%" id='name_lbl' style='display:{$HIDE_FOR_NORMAL_AND_ADMIN}' scope="row"><slot>{$MOD.LBL_LIST_NAME}: <span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span></slot></td>
150 <td width="33%" id='name_field' style='display:{$HIDE_FOR_NORMAL_AND_ADMIN}'><slot><input id='unique_name' name='unique_name' {$LAST_NAME_DISABLED} tabindex='2' size='25' maxlength='25' type="text" value="{$LAST_NAME}" onblur="document.getElementById('last_name').value=this.value"></slot></td>
151 <td width="17%" id='first_name_lbl' scope="row" style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'><slot>{$MOD.LBL_FIRST_NAME}:</slot></td>
152 <td width="33%" id='first_name_field' style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'><slot><input id='first_name' name='first_name' {$FIRST_NAME_DISABLED} tabindex='1' size='25' maxlength='25' type="text" value="{$FIRST_NAME}"></slot></td>
155 {$USER_STATUS_OPTIONS}
156 <td width="17%" scope="row" style='display:{$HIDE_STATIC_USERTYPE}'><slot>{$MOD.LBL_USER_TYPE}:</slot></td>
157 <td scope="row" style='display:{$HIDE_STATIC_USERTYPE}'><slot>{$USER_TYPE_LABEL} {sugar_help text=$USER_TYPE_DESC WIDTH=250}</slot></td>
158 <td id='last_name_lbl' scope="row" style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'><slot>{$MOD.LBL_LAST_NAME}: <span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span></slot></td>
159 <td id='last_name_field' style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'><slot><input id='last_name' name='last_name' type="text" {$LAST_NAME_DISABLED} tabindex='1' size='25' maxlength='25' value="{$LAST_NAME}"></slot></td>
161 <tr style='display:{$HIDE_CHANGE_USERTYPE}'>
162 <td width="17%" scope="row"><slot>{$MOD.LBL_USER_TYPE}:</slot></td>
164 <table width="100%" cellspacing="0" cellpadding="0">
167 <td width="20%"><select id="UserType" name="UserType" onchange="user_status_display(this);" value='' disabled>
168 <option value="RegularUser">{$MOD.LBL_REGULAR_USER}</option>
170 {elseif $ADMIN_EDIT_SELF}
171 <td width="20%"><select id="UserType" name="UserType" onchange="user_status_display(this);" value='' disabled>
172 <option value="Administrator">{$MOD.LBL_ADMIN_USER}</option>
175 <td width="20%"><select id="UserType" name="UserType" onchange="user_status_display(this);" value='' tabindex='1' >
176 <option value="RegularUser">{$MOD.LBL_REGULAR_USER}</option>
177 <option value="Administrator" {if $IS_FOCUS_ADMIN} SELECTED {/if}>{$MOD.LBL_ADMIN_USER}</option>
181 <div id='UserTypeDesc'>{$USER_TYPE_DESC}</div>
189 <div id="information" style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'>
190 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
192 <th align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_EMPLOYEE_INFORMATION}</slot></h4></th>
195 <td width="17%" scope="row"><slot>{$MOD.LBL_EMPLOYEE_STATUS}:</slot></td>
196 <td width="33%" ><slot>{$EMPLOYEE_STATUS_OPTIONS}</slot></td>
197 <td scope="row"><slot> </slot></td>
198 <td ><slot> </slot></td>
201 <td width="17%" scope="row"><slot>{$MOD.LBL_TITLE}:</slot></td>
202 <td width="33%" ><slot><input name='title' type="text" tabindex='5' size='15' maxlength='25' value='{$TITLE}' {$IS_ADMIN_DISABLED}></slot></td>
203 <td width="17%" scope="row"><slot>{$MOD.LBL_OFFICE_PHONE}:</slot></td>
204 <td width="33%" ><slot><input name='phone_work' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_WORK}'></slot></td>
207 <td scope="row"><slot>{$MOD.LBL_DEPARTMENT}:</slot></td>
208 <td ><slot><input name='department' type="text" tabindex='5' size='25' maxlength='100' value='{$DEPARTMENT}' {$IS_ADMIN_DISABLED}></slot></td>
209 <td scope="row"><slot>{$MOD.LBL_MOBILE_PHONE}:</slot></td>
210 <td ><slot><input name='phone_mobile' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_MOBILE}'></slot></td>
213 <td scope="row"><slot>{$MOD.LBL_REPORTS_TO}:</slot></td>
214 <td ><slot><input type="text" class="sqsEnabled" tabindex='5' name="reports_to_name" id="reports_to_name" value="{$REPORTS_TO_NAME}" autocomplete="off" {$IS_ADMIN_DISABLED}/>
215 <input type="hidden" name="reports_to_id" id="reports_to_id" value="{$REPORTS_TO_ID}" tabindex="240"/>
216 {$REPORTS_TO_CHANGE_BUTTON}</slot></td>
217 <td scope="row"><slot>{$MOD.LBL_OTHER_PHONE}:</slot></td>
218 <td ><slot><input name='phone_other' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_OTHER}'></slot></td>
221 <td scope="row"><slot> </slot></td>
222 <td ><slot> </slot></td>
223 <td scope="row"><slot>{$MOD.LBL_FAX}:</slot></td>
224 <td ><slot><input name='phone_fax' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_FAX}'></slot></td>
227 <td scope="row"><slot> </slot></td>
228 <td ><slot> </slot></td>
229 <td scope="row"><slot>{$MOD.LBL_HOME_PHONE}:</slot></td>
230 <td ><slot><input name='phone_home' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_HOME}'></slot></td>
233 <td scope="row"><slot>{$MOD.LBL_MESSENGER_TYPE}:</slot></td>
234 <td ><slot>{$MESSENGER_TYPE_OPTIONS}</slot></td>
235 <td scope="row"><slot>{$MOD.LBL_MESSENGER_ID}:</slot></td>
236 <td ><slot><input name='messenger_id' type="text" tabindex='6' size='35' maxlength='100' value='{$MESSENGER_ID}'></slot></td>
239 <th align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_ADDRESS_INFORMATION}</slot></h4></th>
242 <td width="17%" scope="row"><slot>{$MOD.LBL_PRIMARY_ADDRESS}:</slot></td>
243 <td width="33%" ><slot><textarea name='address_street' rows="2" tabindex='8' cols="30">{$ADDRESS_STREET}</textarea></slot></td>
244 <td width="17%" scope="row"><slot>{$MOD.LBL_CITY}:</slot></td>
245 <td width="33%" ><slot><input name='address_city' tabindex='8' size='15' maxlength='100' value='{$ADDRESS_CITY}'></slot></td>
248 <td scope="row"><slot>{$MOD.LBL_STATE}:</slot></td>
249 <td ><slot><input name='address_state' tabindex='9' size='15' maxlength='100' value='{$ADDRESS_STATE}'></slot></td>
250 <td scope="row"><slot>{$MOD.LBL_POSTAL_CODE}:</slot></td>
251 <td ><slot><input name='address_postalcode' tabindex='9' size='10' maxlength='20' value='{$ADDRESS_POSTALCODE}'></slot></td>
254 <td scope="row"><slot>{$MOD.LBL_COUNTRY}:</slot></td>
255 <td ><slot><input name='address_country' tabindex='10' size='10' maxlength='20' value='{$ADDRESS_COUNTRY}'></slot></td>
258 <td valign="top" scope="row"><slot>{$MOD.LBL_NOTES}:</slot></td>
259 <td colspan="4"><slot><textarea name='description' tabindex='11' cols='100%' rows="4">{$DESCRIPTION}</textarea></slot></td>
263 <div id="email_options">
264 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
266 <th align="left" scope="row" colspan="4">
267 <h4>{$MOD.LBL_MAIL_OPTIONS_TITLE}</h4>
271 <td scope="row" width="17%">
272 {$MOD.LBL_EMAIL}: {if $REQUIRED_EMAIL_ADDRESS}<span class="required" id="mandatory_email">{$APP.LBL_REQUIRED_SYMBOL}</span> {/if}
278 <tr id="email_options_link_type" style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'>
279 <td scope="row" width="17%">
280 {$MOD.LBL_EMAIL_LINK_TYPE}: {sugar_help text=$MOD.LBL_EMAIL_LINK_TYPE_HELP WIDTH=450}
283 <select id="email_link_type" name="email_link_type" tabindex='410'>
288 {if !$HIDE_IF_CAN_USE_DEFAULT_OUTBOUND}
289 <tr id="mail_smtpserver_tr">
290 <td width="20%" scope="row"><span id="mail_smtpserver_label">{$MOD.LBL_EMAIL_PROVIDER}</span></td>
291 <td width="30%" ><slot>{$mail_smtpdisplay}<input id='mail_smtpserver' name='mail_smtpserver' type="hidden" value='{$mail_smtpserver}' /></slot></td>
295 {if !empty($mail_smtpauth_req) }
297 <tr id="mail_smtpuser_tr">
298 <td width="20%" scope="row" nowrap="nowrap"><span id="mail_smtpuser_label">{$MOD.LBL_MAIL_SMTPUSER}</span></td>
299 <td width="30%" ><slot><input type="text" id="mail_smtpuser" name="mail_smtpuser" size="25" maxlength="64" value="{$mail_smtpuser}" tabindex='1' ></slot></td>
303 <tr id="mail_smtppass_tr">
304 <td width="20%" scope="row" nowrap="nowrap"><span id="mail_smtppass_label">{$MOD.LBL_MAIL_SMTPPASS}</span></td>
305 <td width="30%" ><slot><input type="password" id="mail_smtppass" name="mail_smtppass" size="25" maxlength="64" value="{$mail_smtppass}" tabindex='1'></slot></td>
311 <tr id="test_outbound_settings_tr">
312 <td width="17%" scope="row"><input type="button" class="button" value="{$APP.LBL_EMAIL_TEST_OUTBOUND_SETTINGS}" onclick="startOutBoundEmailSettingsTest();"></td>
313 <td width="33%" > </td>
314 <td width="17%"> </td>
315 <td width="33%" > </td>
322 {if ($CHANGE_PWD) == '1'}
323 <div id="generate_password">
324 <table width="100%" border="0" cellspacing="0" cellpadding="0" class="edit view">
327 <table width='100%' cellspacing='0' cellpadding='0' border='0' >
329 <th align="left" scope="row" colspan="4">
330 <h4>{$MOD.LBL_CHANGE_PASSWORD_TITLE}</h4><br>
335 <!-- hide field if user is admin -->
336 <div id='generate_password_old_password' {if ($IS_ADMIN)} style='display:none' {/if}>
337 <table width='100%' cellspacing='0' cellpadding='0' border='0' >
339 <td width='35%' scope="row">
340 {$MOD.LBL_OLD_PASSWORD}
343 <input name='old_password' id='old_password' type='password' tabindex='2' onkeyup="password_confirmation();" >
350 <table width='100%' cellspacing='0' cellpadding='0' border='0' >
352 <td width='35%' scope="row" snowrap>
353 {$MOD.LBL_NEW_PASSWORD}
354 <span class="required" id="mandatory_pwd">{if ($REQUIRED_PASSWORD)}{$APP.LBL_REQUIRED_SYMBOL}{/if}</span>
356 <td class='dataField'>
358 <input name='new_password' id= "new_password" type='password' tabindex='2' onkeyup="password_confirmation();newrules('{$PWDSETTINGS.minpwdlength}','{$PWDSETTINGS.maxpwdlength}','{$REGEX}');" />
364 <td scope="row" width='35%'>
365 {$MOD.LBL_CONFIRM_PASSWORD}
367 <td class='dataField'>
368 <input name='confirm_new_password' id='confirm_pwd' style ='' type='password' tabindex='2' onkeyup="password_confirmation();" >
371 <div id="comfirm_pwd_match" class="error" style="display: none;">{$MOD.ERR_PASSWORD_MISMATCH}</div>
372 {*<span id="ext-gen63" class="x-panel-header-text">
374 <span id="Filter.1_help" onmouseout="return nd();" onmouseover="return overlib(help(), FGCLASS, 'olFgClass', CGCLASS, 'olCgClass', BGCLASS, 'olBgClass', TEXTFONTCLASS, 'olFontClass', CAPTIONFONTCLASS, 'olCapFontClass', CLOSEFONTCLASS, 'olCloseFontClass' );">
375 <img src="themes/default/images/help.gif"/>
381 <td class='dataLabel'></td>
382 <td class='dataField'></td>
386 <table width='17%' cellspacing='0' cellpadding='1' border='0'>
389 <input title="{$APP.LBL_SAVE_BUTTON_TITLE}" accessKey='{$APP.LBL_SAVE_BUTTON_KEY}' class='button' id='save_new_pwd_button' LANGUAGE=javascript onclick='if (set_password(this.form)) window.close(); else return false;' type='submit' name='button' style='display:none;' value='{$APP.LBL_SAVE_BUTTON_LABEL}'>
396 <td width='60%' style="vertical-align:middle;">
402 <div id="generate_password">
403 <input name='old_password' id='old_password' type='hidden'>
404 <input name='new_password' id= "new_password" type='hidden'>
405 <input name='confirm_new_password' id='confirm_pwd' type='hidden'>
411 <div id="themepicker" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
412 <table class="edit view" border="0" cellpadding="0" cellspacing="0" width="100%">
415 <td scope="row" colspan="4"><h4>{$MOD.LBL_THEME}</h4></td>
419 <select name="user_theme" tabindex='366' size="20" id="user_theme_picker" style="width: 100%">
424 <img id="themePreview" src="{sugar_getimagepath file='themePreview.png'}" border="1" />
426 <td width="17%"> </td>
427 <td width="33%"> </td>
435 <div id="settings" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
436 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
439 <th width="100%" align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_USER_SETTINGS}</slot></h4></th>
442 <td scope="row" valign="top"><slot>{$MOD.LBL_EXPORT_DELIMITER}:</slot> {sugar_help text=$MOD.LBL_EXPORT_DELIMITER_DESC }</td>
443 <td ><slot><input type="text" tabindex='12' name="export_delimiter" value="{$EXPORT_DELIMITER}" size="5"></slot></td>
444 <td scope="row" width="17%">
445 <slot>{$MOD.LBL_RECEIVE_NOTIFICATIONS}:</slot> {sugar_help text=$MOD.LBL_RECEIVE_NOTIFICATIONS_TEXT}
448 <slot><input name='receive_notifications' class="checkbox" tabindex='12' type="checkbox" value="12" {$RECEIVE_NOTIFICATIONS}></slot>
453 <td scope="row" valign="top"><slot>{$MOD.LBL_EXPORT_CHARSET}:</slot> {sugar_help text=$MOD.LBL_EXPORT_CHARSET_DESC }</td>
454 <td ><slot><select tabindex='12' name="default_export_charset">{$EXPORT_CHARSET}</select></slot></td>
455 <td scope="row" valign="top">
456 <slot>{$MOD.LBL_REMINDER}:</slot> {sugar_help text=$MOD.LBL_REMINDER_TEXT }
458 <td valign="top" nowrap>
460 <input tabindex='12' name='mailmerge_on' type='hidden' value='0'>
461 <input name='should_remind' size='2' maxlength='2' tabindex='12' onclick='toggleDisplay("should_remind_list");' type="checkbox" class="checkbox" value='1' {$REMINDER_CHECKED}>
462 <div id='should_remind_list' style='display:{$REMINDER_TIME_DISPLAY}'>
463 <select tabindex='12' name='reminder_time' >{$REMINDER_TIME_OPTIONS}</select></div></slot>
467 <td scope="row" valign="top"><slot>{$MOD.LBL_USE_REAL_NAMES}:</slot> {sugar_help text=$MOD.LBL_USE_REAL_NAMES_DESC }</td>
468 <td ><slot><input tabindex='12' type="checkbox" name="use_real_names" {$USE_REAL_NAMES}></slot></td>
469 <td scope="row" valign="top">
470 <slot>{$MOD.LBL_MAILMERGE}:</slot> {sugar_help text=$MOD.LBL_MAILMERGE_TEXT }
472 <td valign="top" nowrap>
473 <slot><input tabindex='12' name='mailmerge_on' class="checkbox" type="checkbox" {$MAILMERGE_ON}></slot>
476 <!--{if !empty($EXTERNAL_AUTH_CLASS) && !empty($IS_ADMIN)}-->
478 {capture name=SMARTY_LBL_EXTERNAL_AUTH_ONLY} {$MOD.LBL_EXTERNAL_AUTH_ONLY} {$EXTERNAL_AUTH_CLASS_1}{/capture}
479 <td scope="row" nowrap><slot>{$EXTERNAL_AUTH_CLASS} {$MOD.LBL_ONLY}:</slot> {sugar_help text=$smarty.capture.SMARTY_LBL_EXTERNAL_AUTH_ONLY}</td>
480 <td ><input type='hidden' value='0' name='external_auth_only'><input type='checkbox' value='1' name='external_auth_only' {$EXTERNAL_AUTH_ONLY_CHECKED}></td>
488 <table class="edit view" border="0" cellpadding="0" cellspacing="1" width="100%">
491 <th align="left" scope="row" colspan="4"><h4>{$MOD.LBL_LAYOUT_OPTIONS}</h4></th>
493 <tr id="use_group_tabs_row" style="display: {$DISPLAY_GROUP_TAB};">
494 <td scope="row"><span>{$MOD.LBL_USE_GROUP_TABS}:</span> {sugar_help text=$MOD.LBL_NAVIGATION_PARADIGM_DESCRIPTION }</td>
495 <td colspan="3"><input name="use_group_tabs" type="hidden" value="m"><input id="use_group_tabs" type="checkbox" name="use_group_tabs" {$USE_GROUP_TABS} tabindex='12' value="gm"></td>
499 <table width="100%" border="0" cellspacing="0" cellpadding="0">
501 <td scope="row" align="left" style="padding-bottom: 2em;">{$TAB_CHOOSER}</td>
502 <td width="90%" valign="top"><BR> </td>
508 <td width="17%" scope="row"><span scope="row">{$MOD.LBL_MAX_TAB}:</span> {sugar_help text=$MOD.LBL_MAX_TAB_DESCRIPTION }</td>
509 <td width="83%" colspan="3">
510 <select name="user_max_tabs" tabindex='12'>
511 {html_options values=$MAX_TAB_OPTIONS output=$MAX_TAB_OPTIONS selected=$MAX_TAB}
516 <td scope="row"><span>{$MOD.LBL_SUBPANEL_TABS}:</span> {sugar_help text=$MOD.LBL_SUBPANEL_TABS_DESCRIPTION }</td>
517 <td colspan="3"><input type="checkbox" name="user_subpanel_tabs" {$SUBPANEL_TABS} tabindex='13'></td>
521 <div id="locale" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
522 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
524 <th width="100%" align="left" scope="row" colspan="4">
525 <h4><slot>{$MOD.LBL_USER_LOCALE}</slot></h4></th>
528 <td width="17%" scope="row"><slot>{$MOD.LBL_DATE_FORMAT}:</slot> {sugar_help text=$MOD.LBL_DATE_FORMAT_TEXT }</td>
529 <td width="33%"><slot><select tabindex='14' name='dateformat'>{$DATEOPTIONS}</select></slot></td>
530 <!-- END: prompttz -->
531 <!-- BEGIN: currency -->
532 <td width="17%" scope="row"><slot>{$MOD.LBL_CURRENCY}:</slot> {sugar_help text=$MOD.LBL_CURRENCY_TEXT }</td>
534 <select tabindex='14' id='currency_select' name='currency' onchange='setSymbolValue(this.options[this.selectedIndex].value);setSigDigits();'>{$CURRENCY}</select>
535 <input type="hidden" id="symbol" value="">
537 <!-- END: currency -->
540 <td scope="row"><slot>{$MOD.LBL_TIME_FORMAT}:</slot> {sugar_help text=$MOD.LBL_TIME_FORMAT_TEXT }</td>
541 <td ><slot><select tabindex='14' name='timeformat'>{$TIMEOPTIONS}</select></slot></td>
542 <!-- BEGIN: currency -->
543 <td width="17%" scope="row"><slot>
544 {$MOD.LBL_CURRENCY_SIG_DIGITS}:
547 <select id='sigDigits' onchange='setSigDigits(this.value);' name='default_currency_significant_digits'>{$sigDigits}</select>
549 <!-- END: currency -->
552 <td scope="row"><slot>{$MOD.LBL_TIMEZONE}:</slot> {sugar_help text=$MOD.LBL_TIMEZONE_TEXT }</td>
553 <td ><slot><select tabindex='14' name='timezone'>{html_options options=$TIMEZONEOPTIONS selected=$TIMEZONE_CURRENT}</select></slot></td>
554 <!-- BEGIN: currency -->
555 <td width="17%" scope="row"><slot>
556 <i>{$MOD.LBL_LOCALE_EXAMPLE_NAME_FORMAT}</i>:
559 <input type="text" disabled id="sigDigitsExample" name="sigDigitsExample">
561 <!-- END: currency -->
565 <td scope="row"><slot>{$MOD.LBL_PROMPT_TIMEZONE}:</slot> {sugar_help text=$MOD.LBL_PROMPT_TIMEZONE_TEXT }</td>
566 <td ><slot><input type="checkbox" tabindex='14'class="checkbox" name="ut" value="0" {$PROMPTTZ}></slot></td>
568 <td scope="row"><slot></td>
569 <td ><slot></slot></td>
571 <td width="17%" scope="row"><slot>{$MOD.LBL_NUMBER_GROUPING_SEP}:</slot> {sugar_help text=$MOD.LBL_NUMBER_GROUPING_SEP_TEXT }</td>
573 <input tabindex='14' name='num_grp_sep' id='default_number_grouping_seperator'
574 type='text' maxlength='1' size='1' value='{$NUM_GRP_SEP}'
575 onkeydown='setSigDigits();' onkeyup='setSigDigits();'>
577 {capture name=SMARTY_LOCALE_NAME_FORMAT_DESC} {$MOD.LBL_LOCALE_NAME_FORMAT_DESC}<br />{$MOD.LBL_LOCALE_NAME_FORMAT_DESC_2}{/capture}
579 <td scope="row" valign="top">{$MOD.LBL_LOCALE_DEFAULT_NAME_FORMAT}: {sugar_help text=$smarty.capture.SMARTY_LOCALE_NAME_FORMAT_DESC }</td>
581 <input onkeyup="setPreview();" onkeydown="setPreview();" id="default_locale_name_format" type="text" tabindex='14' name="default_locale_name_format" value="{$default_locale_name_format}">
583 <td width="17%" scope="row"><slot>{$MOD.LBL_DECIMAL_SEP}:</slot> {sugar_help text=$MOD.LBL_DECIMAL_SEP_TEXT }</td>
585 <input tabindex='14' name='dec_sep' id='default_decimal_seperator'
586 type='text' maxlength='1' size='1' value='{$DEC_SEP}'
587 onkeydown='setSigDigits();' onkeyup='setSigDigits();'>
591 <td scope="row" valign="top"><i>{$MOD.LBL_LOCALE_EXAMPLE_NAME_FORMAT}:</i> </td>
592 <td valign="top"><input tabindex='14' name="no_value" id="nameTarget" value="" style="border: none;" disabled size="50"></td>
597 <div id="calendar_options" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
598 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
600 <th align="left" scope="row" colspan="4"><h4>{$MOD.LBL_CALENDAR_OPTIONS}</h4></th>
603 <td width="17%" scope="row"><slot>{$MOD.LBL_PUBLISH_KEY}:</slot> {sugar_help text=$MOD.LBL_CHOOSE_A_KEY}</td>
604 <td width="20%" ><slot><input name='calendar_publish_key' tabindex='17' size='25' maxlength='25' type="text" value="{$CALENDAR_PUBLISH_KEY}"></slot></td>
605 <td width="63%" ><slot> </slot></td>
625 <div class="actionContainer">
626 <input id="Save" title="{$APP.LBL_SAVE_BUTTON_TITLE}" class="button primary" onclick="if (!set_password(form,newrules('{$PWDSETTINGS.minpwdlength}','{$PWDSETTINGS.maxpwdlength}','{$REGEX}'))) return false;Admin_check(); this.form.action.value='Save'; {$CHOOSER_SCRIPT} {$REASSIGN_JS} if(verify_data(EditView)) this.form.submit();"
627 type="button" name="button" value="{$APP.LBL_SAVE_BUTTON_LABEL}" />
628 <input title="{$APP.LBL_CANCEL_BUTTON_TITLE}" class="button" onclick="this.form.action.value='{$RETURN_ACTION}'; this.form.module.value='{$RETURN_MODULE}'; this.form.record.value='{$RETURN_ID}'; this.form.submit();"
629 type="button" name="button" value="{$APP.LBL_CANCEL_BUTTON_LABEL}" />
632 <script type="text/javascript">
634 var mail_smtpport = '{$MAIL_SMTPPORT}';
635 var mail_smtpssl = '{$MAIL_SMTPSSL}';
639 function Admin_check(){
640 if (('{/literal}{$IS_FOCUS_ADMIN}{literal}') && document.getElementById('is_admin').value=='0'){
641 r=confirm('{/literal}{$MOD.LBL_CONFIRM_REGULAR_USER}{literal}');
648 function user_status_display(field){
649 switch (field.value){
650 case 'Administrator':
651 document.getElementById('UserTypeDesc').innerHTML="{/literal}{$MOD.LBL_ADMIN_DESC}{literal}";
652 document.getElementById('is_admin').value='1';
655 document.getElementById('is_admin').value='0';
656 document.getElementById('UserTypeDesc').innerHTML="{/literal}{$MOD.LBL_REGULAR_DESC}{literal}";
658 case 'UserAdministrator':
659 document.getElementById('is_admin').value='0';
660 document.getElementById('UserTypeDesc').innerHTML="{/literal}{$MOD.LBL_USER_ADMIN_DESC}{literal}";
666 function startOutBoundEmailSettingsTest()
668 var loader = new YAHOO.util.YUILoader({
669 require : ["element","sugarwidgets"],
671 skin: { base: 'blank', defaultSkin: '' },
672 onSuccess: testOutboundSettings,
674 base: "include/javascript/yui/build/"
677 name :"sugarwidgets",
679 fullpath: "include/javascript/sugarwidgets/SugarYUIWidgets.js",
680 varName: "YAHOO.SUGAR",
681 requires: ["datatable", "dragdrop", "treeview", "tabview"]
687 function testOutboundSettings()
689 var errorMessage = '';
691 var fromAddress = document.getElementById("outboundtest_from_address").value;
692 var errorMessage = '';
694 var smtpServer = document.getElementById('mail_smtpserver').value;
696 var mailsmtpauthreq = document.getElementById('mail_smtpauth_req');
697 if(trim(smtpServer) == '' || trim(mail_smtpport) == '')
700 errorMessage += "{/literal}{$MOD.LBL_MISSING_DEFAULT_OUTBOUND_SMTP_SETTINGS}{literal}" + "<br/>";
701 overlay("{/literal}{$APP.ERR_MISSING_REQUIRED_FIELDS}{literal}", errorMessage, 'alert');
706 if(document.getElementById('mail_smtpuser') && trim(document.getElementById('mail_smtpuser').value) == '')
709 errorMessage += "{/literal}{$APP.LBL_EMAIL_ACCOUNTS_SMTPUSER}{literal}" + "<br/>";
714 overlay("{/literal}{$APP.ERR_MISSING_REQUIRED_FIELDS}{literal}", errorMessage, 'alert');
718 testOutboundSettingsDialog();
721 function sendTestEmail()
723 var toAddress = document.getElementById("outboundtest_from_address").value;
724 var fromAddress = document.getElementById("outboundtest_from_address").value;
726 if (trim(fromAddress) == "")
728 overlay("{/literal}{$APP.ERR_MISSING_REQUIRED_FIELDS}{literal}", "{{/literal}$APP.LBL_EMAIL_SETTINGS_FROM_TO_EMAIL_ADDR}{literal}", 'alert');
731 else if (!isValidEmail(fromAddress)) {
732 overlay("{/literal}{$APP.ERR_INVALID_REQUIRED_FIELDS}{literal}", "{/literal}{$APP.LBL_EMAIL_SETTINGS_FROM_TO_EMAIL_ADDR}{literal}", 'alert');
736 //Hide the email address window and show a message notifying the user that the test email is being sent.
737 EmailMan.testOutboundDialog.hide();
738 overlay("{/literal}{$APP.LBL_EMAIL_PERFORMING_TASK}{literal}", "{/literal}{$APP.LBL_EMAIL_ONE_MOMENT}{literal}", 'alert');
740 var callbackOutboundTest = {
741 success : function(o) {
743 overlay("{/literal}{$APP.LBL_EMAIL_TEST_OUTBOUND_SETTINGS}{literal}", "{/literal}{$APP.LBL_EMAIL_TEST_NOTIFICATION_SENT}{literal}", 'alert');
746 var smtpServer = document.getElementById('mail_smtpserver').value;
748 if(document.getElementById('mail_smtpuser') && document.getElementById('mail_smtppass')){
749 var postDataString = 'mail_sendtype=SMTP&mail_smtpserver=' + smtpServer + "&mail_smtpport=" + mail_smtpport + "&mail_smtpssl=" + mail_smtpssl + "&mail_smtpauth_req=true&mail_smtpuser=" + trim(document.getElementById('mail_smtpuser').value) + "&mail_smtppass=" + trim(document.getElementById('mail_smtppass').value) + "&outboundtest_from_address=" + fromAddress + "&outboundtest_to_address=" + toAddress;
752 var postDataString = 'mail_sendtype=SMTP&mail_smtpserver=' + smtpServer + "&mail_smtpport=" + mail_smtpport + "&mail_smtpssl=" + mail_smtpssl + "&outboundtest_from_address=" + fromAddress + "&outboundtest_to_address=" + toAddress;
754 YAHOO.util.Connect.asyncRequest("POST", "index.php?action=testOutboundEmail&mail_name=system&module=EmailMan&to_pdf=true&sugar_body_only=true", callbackOutboundTest, postDataString);
756 function testOutboundSettingsDialog() {
757 // lazy load dialogue
758 if(!EmailMan.testOutboundDialog) {
759 EmailMan.testOutboundDialog = new YAHOO.widget.Dialog("testOutboundDialog", {
763 constraintoviewport: true,
767 EmailMan.testOutboundDialog.setHeader("{/literal}{$APP.LBL_EMAIL_TEST_OUTBOUND_SETTINGS}{literal}");
768 YAHOO.util.Dom.removeClass("testOutboundDialog", "yui-hidden");
771 EmailMan.testOutboundDialog.render();
772 EmailMan.testOutboundDialog.show();
775 function overlay(reqtitle, body, type) {
778 config.title = reqtitle;
780 YAHOO.SUGAR.MessageBox.show(config);
783 function hideOverlay() {
784 YAHOO.SUGAR.MessageBox.hide();
787 YAHOO.util.Event.onContentReady('user_theme_picker',function()
789 document.getElementById('user_theme_picker').onchange = function()
791 document.getElementById('themePreview').src =
792 "index.php?entryPoint=getImage&themeName=" + document.getElementById('user_theme_picker').value + "&imageName=themePreview.png";
793 if (typeof themeGroupList[document.getElementById('user_theme_picker').value] != 'undefined' &&
794 themeGroupList[document.getElementById('user_theme_picker').value] ) {
795 document.getElementById('use_group_tabs_row').style.display = '';
797 document.getElementById('use_group_tabs_row').style.display = 'none';
802 {if !$HIDE_IF_CAN_USE_DEFAULT_OUTBOUND}
804 document.getElementById('email_link_type').onchange = function()
806 document.getElementById('mail_smtpserver_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
807 document.getElementById('mail_smtpuser_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
808 document.getElementById('mail_smtppass_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
809 document.getElementById('test_outbound_settings_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
811 document.getElementById('email_link_type').onchange();
818 <script type="text/javascript" language="Javascript">
824 themeGroupList = {$themeGroupListJSON};
826 setSymbolValue(document.getElementById('currency_select').options[document.getElementById('currency_select').selectedIndex].value);
833 <div id="testOutboundDialog" class="yui-hidden">
834 <div id="testOutbound">
836 <table width="100%" border="0" cellspacing="0" cellpadding="0" class="edit view">
839 {$APP.LBL_EMAIL_SETTINGS_FROM_TO_EMAIL_ADDR}
840 <span class="required">
841 {$APP.LBL_REQUIRED_SYMBOL}
845 <input type="text" id="outboundtest_from_address" name="outboundtest_from_address" size="35" maxlength="64" value="{$TEST_EMAIL_ADDRESS}">
849 <td scope="row" colspan="2">
850 <input type="button" class="button" value=" {$APP.LBL_EMAIL_SEND} " onclick="javascript:sendTestEmail();">
851 <input type="button" class="button" value=" {$APP.LBL_CANCEL_BUTTON_LABEL} " onclick="javascript:EmailMan.testOutboundDialog.hide();">