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 <form name="EditView" enctype="multipart/form-data" id="EditView" method="POST" action="index.php">
59 <input type="hidden" name="display_tabs_def">
60 <input type="hidden" name="hide_tabs_def">
61 <input type="hidden" name="remove_tabs_def">
62 <input type="hidden" name="module" value="Users">
63 <input type="hidden" name="record" id="record" value="{$ID}">
64 <input type="hidden" name="action">
65 <input type="hidden" name="page" value="EditView">
66 <input type="hidden" name="return_module" value="{$RETURN_MODULE}">
67 <input type="hidden" name="return_id" value="{$RETURN_ID}">
68 <input type="hidden" name="return_action" value="{$RETURN_ACTION}">
69 <input type="hidden" name="password_change" id="password_change" value="false">
70 <input type="hidden" name="required_password" id="required_password" value='{$REQUIRED_PASSWORD}' >
71 <input type="hidden" name="user_name" value="{$USER_NAME}">
72 <input type="hidden" name="type" value="{$REDIRECT_EMAILS_TYPE}">
73 <input type="hidden" id="is_group" name="is_group" value='{$IS_GROUP}' {$IS_GROUP_DISABLED}>
74 <input type="hidden" id='portal_only' name='portal_only' value='{$IS_PORTALONLY}' {$IS_PORTAL_ONLY_DISABLED}>
75 <input type="hidden" name="is_admin" id="is_admin" value='{$IS_FOCUS_ADMIN}' {$IS_ADMIN_DISABLED} >
76 <input type="hidden" name="is_current_admin" id="is_current_admin" value='{$IS_ADMIN}' >
77 <input type="hidden" name="edit_self" id="edit_self" value='{$EDIT_SELF}' >
78 <input type="hidden" name="required_email_address" id="required_email_address" value='{$REQUIRED_EMAIL_ADDRESS}' >
79 <div id="popup_window"></div>
81 <script type="text/javascript">
82 var EditView_tabs = new YAHOO.widget.TabView("EditView_tabs");
85 //Override so we do not force submit, just simulate the 'save button' click
86 SUGAR.EmailAddressWidget.prototype.forceSubmit = function() { document.getElementById('Save').click();}
88 EditView_tabs.on('contentReady', function(e){
93 <table width="100%" cellpadding="0" cellspacing="0" border="0" class="actionsContainer">
96 <input id="Save" title="{$APP.LBL_SAVE_BUTTON_TITLE}" accessKey="{$APP.LBL_SAVE_BUTTON_KEY}"
97 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();"
98 type="button" name="button" value="{$APP.LBL_SAVE_BUTTON_LABEL}" >
99 <input title="{$APP.LBL_CANCEL_BUTTON_TITLE}" accessKey="{$APP.LBL_CANCEL_BUTTON_KEY}"
100 class="button" onclick="this.form.action.value='{$RETURN_ACTION}'; this.form.module.value='{$RETURN_MODULE}'; this.form.record.value='{$RETURN_ID}'; this.form.submit()"
101 type="button" name="button" value="{$APP.LBL_CANCEL_BUTTON_LABEL}">
104 <td align="right" nowrap>
105 <span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span> {$APP.NTC_REQUIRED}
110 <div id="EditView_tabs" class="yui-navset">
112 <li class="selected"><a id="tab1" href="#tab1"><em>{$MOD.LBL_USER_INFORMATION}</em></a></li>
113 <li {if $CHANGE_PWD == 0}style='display:none'{/if}><a id="tab2" href="#tab2"><em>{$MOD.LBL_CHANGE_PASSWORD_TITLE}</em></a></li>
115 <li><a id="tab3" href="#tab3"><em>{$MOD.LBL_THEME}</em></a></li>
117 <li><a id="tab4" href="#tab4" style='display:{$HIDE_FOR_GROUP_AND_PORTAL};'><em>{$MOD.LBL_ADVANCED}</em></a></li>
119 <div class="yui-content">
122 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
124 <th align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_USER_INFORMATION}</slot></h4></th>
127 <td width="17%" scope="row"><slot>{$MOD.LBL_USER_NAME}: <span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span></slot></td>
128 <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>
129 <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>
130 <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>
131 <td width="17%" id='first_name_lbl' scope="row" style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'><slot>{$MOD.LBL_FIRST_NAME}:</slot></td>
132 <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>
135 {$USER_STATUS_OPTIONS}
136 <td width="17%" scope="row" style='display:{$HIDE_STATIC_USERTYPE}'><slot>{$MOD.LBL_USER_TYPE}:</slot></td>
137 <td scope="row" style='display:{$HIDE_STATIC_USERTYPE}'><slot>{$USER_TYPE_LABEL} {sugar_help text=$USER_TYPE_DESC WIDTH=250}</slot></td>
138 <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>
139 <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>
141 <tr style='display:{$HIDE_CHANGE_USERTYPE}'>
142 <td width="17%" scope="row"><slot>{$MOD.LBL_USER_TYPE}:</slot></td>
144 <table width="100%" cellspacing="0" cellpadding="0">
147 <td width="20%"><select id="UserType" name="UserType" onchange="user_status_display(this);" value='' disabled>
148 <option value="RegularUser">{$MOD.LBL_REGULAR_USER}</option>
150 {elseif $ADMIN_EDIT_SELF}
151 <td width="20%"><select id="UserType" name="UserType" onchange="user_status_display(this);" value='' disabled>
152 <option value="Administrator">{$MOD.LBL_ADMIN_USER}</option>
155 <td width="20%"><select id="UserType" name="UserType" onchange="user_status_display(this);" value='' tabindex='1' >
156 <option value="RegularUser">{$MOD.LBL_REGULAR_USER}</option>
157 <option value="Administrator" {if $IS_FOCUS_ADMIN} SELECTED {/if}>{$MOD.LBL_ADMIN_USER}</option>
161 <div id='UserTypeDesc'>{$USER_TYPE_DESC}</div>
169 <div id="information" style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'>
170 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
172 <th align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_EMPLOYEE_INFORMATION}</slot></h4></th>
175 <td width="17%" scope="row"><slot>{$MOD.LBL_EMPLOYEE_STATUS}:</slot></td>
176 <td width="33%" ><slot>{$EMPLOYEE_STATUS_OPTIONS}</slot></td>
177 <td scope="row"><slot> </slot></td>
178 <td ><slot> </slot></td>
181 <td width="17%" scope="row"><slot>{$MOD.LBL_TITLE}:</slot></td>
182 <td width="33%" ><slot><input name='title' type="text" tabindex='5' size='15' maxlength='25' value='{$TITLE}' {$IS_ADMIN_DISABLED}></slot></td>
183 <td width="17%" scope="row"><slot>{$MOD.LBL_OFFICE_PHONE}:</slot></td>
184 <td width="33%" ><slot><input name='phone_work' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_WORK}'></slot></td>
187 <td scope="row"><slot>{$MOD.LBL_DEPARTMENT}:</slot></td>
188 <td ><slot><input name='department' type="text" tabindex='5' size='25' maxlength='100' value='{$DEPARTMENT}' {$IS_ADMIN_DISABLED}></slot></td>
189 <td scope="row"><slot>{$MOD.LBL_MOBILE_PHONE}:</slot></td>
190 <td ><slot><input name='phone_mobile' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_MOBILE}'></slot></td>
193 <td scope="row"><slot>{$MOD.LBL_REPORTS_TO}:</slot></td>
194 <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}/>
195 <input type="hidden" name="reports_to_id" id="reports_to_id" value="{$REPORTS_TO_ID}" tabindex="240"/>
196 {$REPORTS_TO_CHANGE_BUTTON}</slot></td>
197 <td scope="row"><slot>{$MOD.LBL_OTHER_PHONE}:</slot></td>
198 <td ><slot><input name='phone_other' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_OTHER}'></slot></td>
201 <td scope="row"><slot> </slot></td>
202 <td ><slot> </slot></td>
203 <td scope="row"><slot>{$MOD.LBL_FAX}:</slot></td>
204 <td ><slot><input name='phone_fax' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_FAX}'></slot></td>
207 <td scope="row"><slot> </slot></td>
208 <td ><slot> </slot></td>
209 <td scope="row"><slot>{$MOD.LBL_HOME_PHONE}:</slot></td>
210 <td ><slot><input name='phone_home' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_HOME}'></slot></td>
213 <td scope="row"><slot>{$MOD.LBL_MESSENGER_TYPE}:</slot></td>
214 <td ><slot>{$MESSENGER_TYPE_OPTIONS}</slot></td>
215 <td scope="row"><slot>{$MOD.LBL_MESSENGER_ID}:</slot></td>
216 <td ><slot><input name='messenger_id' type="text" tabindex='6' size='35' maxlength='100' value='{$MESSENGER_ID}'></slot></td>
219 <th align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_ADDRESS_INFORMATION}</slot></h4></th>
222 <td width="17%" scope="row"><slot>{$MOD.LBL_PRIMARY_ADDRESS}:</slot></td>
223 <td width="33%" ><slot><textarea name='address_street' rows="2" tabindex='8' cols="30">{$ADDRESS_STREET}</textarea></slot></td>
224 <td width="17%" scope="row"><slot>{$MOD.LBL_CITY}:</slot></td>
225 <td width="33%" ><slot><input name='address_city' tabindex='8' size='15' maxlength='100' value='{$ADDRESS_CITY}'></slot></td>
228 <td scope="row"><slot>{$MOD.LBL_STATE}:</slot></td>
229 <td ><slot><input name='address_state' tabindex='9' size='15' maxlength='100' value='{$ADDRESS_STATE}'></slot></td>
230 <td scope="row"><slot>{$MOD.LBL_POSTAL_CODE}:</slot></td>
231 <td ><slot><input name='address_postalcode' tabindex='9' size='10' maxlength='20' value='{$ADDRESS_POSTALCODE}'></slot></td>
234 <td scope="row"><slot>{$MOD.LBL_COUNTRY}:</slot></td>
235 <td ><slot><input name='address_country' tabindex='10' size='10' maxlength='20' value='{$ADDRESS_COUNTRY}'></slot></td>
238 <td valign="top" scope="row"><slot>{$MOD.LBL_NOTES}:</slot></td>
239 <td colspan="4"><slot><textarea name='description' tabindex='11' cols='100%' rows="4">{$DESCRIPTION}</textarea></slot></td>
243 <div id="email_options">
244 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
246 <th align="left" scope="row" colspan="4">
247 <h4>{$MOD.LBL_MAIL_OPTIONS_TITLE}</h4>
251 <td scope="row" width="17%">
252 {$MOD.LBL_EMAIL}: {if $REQUIRED_EMAIL_ADDRESS}<span class="required" id="mandatory_email">{$APP.LBL_REQUIRED_SYMBOL}</span> {/if}
258 <tr id="email_options_link_type" style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'>
259 <td scope="row" width="17%">
260 {$MOD.LBL_EMAIL_LINK_TYPE}: {sugar_help text=$MOD.LBL_EMAIL_LINK_TYPE_HELP WIDTH=450}
263 <select id="email_link_type" name="email_link_type" tabindex='410'>
268 {if !$HIDE_IF_CAN_USE_DEFAULT_OUTBOUND}
269 <tr id="mail_smtpserver_tr">
270 <td width="20%" scope="row"><span id="mail_smtpserver_label">{$MOD.LBL_EMAIL_PROVIDER}</span></td>
271 <td width="30%" ><slot>{$mail_smtpdisplay}<input id='mail_smtpserver' name='mail_smtpserver' type="hidden" value='{$mail_smtpserver}' /></slot></td>
275 {if !empty($mail_smtpauth_req) }
277 <tr id="mail_smtpuser_tr">
278 <td width="20%" scope="row" nowrap="nowrap"><span id="mail_smtpuser_label">{$MOD.LBL_MAIL_SMTPUSER}</span></td>
279 <td width="30%" ><slot><input type="text" id="mail_smtpuser" name="mail_smtpuser" size="25" maxlength="64" value="{$mail_smtpuser}" tabindex='1' ></slot></td>
283 <tr id="mail_smtppass_tr">
284 <td width="20%" scope="row" nowrap="nowrap"><span id="mail_smtppass_label">{$MOD.LBL_MAIL_SMTPPASS}</span></td>
285 <td width="30%" ><slot><input type="password" id="mail_smtppass" name="mail_smtppass" size="25" maxlength="64" value="{$mail_smtppass}" tabindex='1'></slot></td>
291 <tr id="test_outbound_settings_tr">
292 <td width="17%" scope="row"><input type="button" class="button" value="{$APP.LBL_EMAIL_TEST_OUTBOUND_SETTINGS}" onclick="startOutBoundEmailSettingsTest();"></td>
293 <td width="33%" > </td>
294 <td width="17%"> </td>
295 <td width="33%" > </td>
302 {if ($CHANGE_PWD) == '1'}
303 <div id="generate_password">
304 <table width="100%" border="0" cellspacing="0" cellpadding="0" class="edit view">
307 <table width='100%' cellspacing='0' cellpadding='0' border='0' >
309 <th align="left" scope="row" colspan="4">
310 <h4>{$MOD.LBL_CHANGE_PASSWORD_TITLE}</h4><br>
315 <!-- hide field if user is admin -->
316 <div id='generate_password_old_password' {if ($IS_ADMIN)} style='display:none' {/if}>
317 <table width='100%' cellspacing='0' cellpadding='0' border='0' >
319 <td width='35%' scope="row">
320 {$MOD.LBL_OLD_PASSWORD}
323 <input name='old_password' id='old_password' type='password' tabindex='2' onkeyup="password_confirmation();" >
330 <table width='100%' cellspacing='0' cellpadding='0' border='0' >
332 <td width='35%' scope="row" snowrap>
333 {$MOD.LBL_NEW_PASSWORD}
334 <span class="required" id="mandatory_pwd">{if ($REQUIRED_PASSWORD)}{$APP.LBL_REQUIRED_SYMBOL}{/if}</span>
336 <td class='dataField'>
338 <input name='new_password' id= "new_password" type='password' tabindex='2' onkeyup="password_confirmation();newrules('{$PWDSETTINGS.minpwdlength}','{$PWDSETTINGS.maxpwdlength}','{$REGEX}');" />
344 <td scope="row" width='35%'>
345 {$MOD.LBL_CONFIRM_PASSWORD}
347 <td class='dataField'>
348 <input name='confirm_new_password' id='confirm_pwd' style ='' type='password' tabindex='2' onkeyup="password_confirmation();" >
351 <div id="comfirm_pwd_match" class="error" style="display: none;">{$MOD.ERR_PASSWORD_MISMATCH}</div>
352 {*<span id="ext-gen63" class="x-panel-header-text">
354 <span id="Filter.1_help" onmouseout="return nd();" onmouseover="return overlib(help(), FGCLASS, 'olFgClass', CGCLASS, 'olCgClass', BGCLASS, 'olBgClass', TEXTFONTCLASS, 'olFontClass', CAPTIONFONTCLASS, 'olCapFontClass', CLOSEFONTCLASS, 'olCloseFontClass' );">
355 <img src="themes/default/images/help.gif"/>
361 <td class='dataLabel'></td>
362 <td class='dataField'></td>
366 <table width='17%' cellspacing='0' cellpadding='1' border='0'>
369 <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}'>
376 <td width='60%' style="vertical-align:middle;">
382 <div id="generate_password">
383 <input name='old_password' id='old_password' type='hidden'>
384 <input name='new_password' id= "new_password" type='hidden'>
385 <input name='confirm_new_password' id='confirm_pwd' type='hidden'>
391 <div id="themepicker" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
392 <table class="edit view" border="0" cellpadding="0" cellspacing="0" width="100%">
395 <td scope="row" colspan="4"><h4>{$MOD.LBL_THEME}</h4></td>
399 <select name="user_theme" tabindex='366' size="20" id="user_theme_picker" style="width: 100%">
404 <img id="themePreview" src="{sugar_getimagepath file='themePreview.png'}" border="1" />
406 <td width="17%"> </td>
407 <td width="33%"> </td>
415 <div id="settings" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
416 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
419 <th width="100%" align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_USER_SETTINGS}</slot></h4></th>
422 <td scope="row" valign="top"><slot>{$MOD.LBL_EXPORT_DELIMITER}:</slot> {sugar_help text=$MOD.LBL_EXPORT_DELIMITER_DESC }</td>
423 <td ><slot><input type="text" tabindex='12' name="export_delimiter" value="{$EXPORT_DELIMITER}" size="5"></slot></td>
424 <td scope="row" width="17%">
425 <slot>{$MOD.LBL_RECEIVE_NOTIFICATIONS}:</slot> {sugar_help text=$MOD.LBL_RECEIVE_NOTIFICATIONS_TEXT}
428 <slot><input name='receive_notifications' class="checkbox" tabindex='12' type="checkbox" value="12" {$RECEIVE_NOTIFICATIONS}></slot>
433 <td scope="row" valign="top"><slot>{$MOD.LBL_EXPORT_CHARSET}:</slot> {sugar_help text=$MOD.LBL_EXPORT_CHARSET_DESC }</td>
434 <td ><slot><select tabindex='12' name="default_export_charset">{$EXPORT_CHARSET}</select></slot></td>
435 <td scope="row" valign="top">
436 <slot>{$MOD.LBL_REMINDER}:</slot> {sugar_help text=$MOD.LBL_REMINDER_TEXT }
438 <td valign="top" nowrap>
440 <input tabindex='12' name='mailmerge_on' type='hidden' value='0'>
441 <input name='should_remind' size='2' maxlength='2' tabindex='12' onclick='toggleDisplay("should_remind_list");' type="checkbox" class="checkbox" value='1' {$REMINDER_CHECKED}>
442 <div id='should_remind_list' style='display:{$REMINDER_TIME_DISPLAY}'>
443 <select tabindex='12' name='reminder_time' >{$REMINDER_TIME_OPTIONS}</select></div></slot>
447 <td scope="row" valign="top"><slot>{$MOD.LBL_USE_REAL_NAMES}:</slot> {sugar_help text=$MOD.LBL_USE_REAL_NAMES_DESC }</td>
448 <td ><slot><input tabindex='12' type="checkbox" name="use_real_names" {$USE_REAL_NAMES}></slot></td>
449 <td scope="row" valign="top">
450 <slot>{$MOD.LBL_MAILMERGE}:</slot> {sugar_help text=$MOD.LBL_MAILMERGE_TEXT }
452 <td valign="top" nowrap>
453 <slot><input tabindex='12' name='mailmerge_on' class="checkbox" type="checkbox" {$MAILMERGE_ON}></slot>
456 <!--{if !empty($EXTERNAL_AUTH_CLASS) && !empty($IS_ADMIN)}-->
458 {capture name=SMARTY_LBL_EXTERNAL_AUTH_ONLY} {$MOD.LBL_EXTERNAL_AUTH_ONLY} {$EXTERNAL_AUTH_CLASS_1}{/capture}
459 <td scope="row" nowrap><slot>{$EXTERNAL_AUTH_CLASS} {$MOD.LBL_ONLY}:</slot> {sugar_help text=$smarty.capture.SMARTY_LBL_EXTERNAL_AUTH_ONLY}</td>
460 <td ><input type='hidden' value='0' name='external_auth_only'><input type='checkbox' value='1' name='external_auth_only' {$EXTERNAL_AUTH_ONLY_CHECKED}></td>
468 <table class="edit view" border="0" cellpadding="0" cellspacing="1" width="100%">
471 <th align="left" scope="row" colspan="4"><h4>{$MOD.LBL_LAYOUT_OPTIONS}</h4></th>
473 <tr id="use_group_tabs_row" style="display: {$DISPLAY_GROUP_TAB};">
474 <td scope="row"><span>{$MOD.LBL_USE_GROUP_TABS}:</span> {sugar_help text=$MOD.LBL_NAVIGATION_PARADIGM_DESCRIPTION }</td>
475 <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>
479 <table width="100%" border="0" cellspacing="0" cellpadding="0">
481 <td scope="row" align="left" style="padding-bottom: 2em;">{$TAB_CHOOSER}</td>
482 <td width="90%" valign="top"><BR> </td>
488 <td width="17%" scope="row"><span scope="row">{$MOD.LBL_MAX_TAB}:</span> {sugar_help text=$MOD.LBL_MAX_TAB_DESCRIPTION }</td>
489 <td width="83%" colspan="3">
490 <select name="user_max_tabs" tabindex='12'>
491 {html_options values=$MAX_TAB_OPTIONS output=$MAX_TAB_OPTIONS selected=$MAX_TAB}
496 <td scope="row"><span>{$MOD.LBL_SUBPANEL_TABS}:</span> {sugar_help text=$MOD.LBL_SUBPANEL_TABS_DESCRIPTION }</td>
497 <td colspan="3"><input type="checkbox" name="user_subpanel_tabs" {$SUBPANEL_TABS} tabindex='13'></td>
501 <div id="locale" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
502 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
504 <th width="100%" align="left" scope="row" colspan="4">
505 <h4><slot>{$MOD.LBL_USER_LOCALE}</slot></h4></th>
508 <td width="17%" scope="row"><slot>{$MOD.LBL_DATE_FORMAT}:</slot> {sugar_help text=$MOD.LBL_DATE_FORMAT_TEXT }</td>
509 <td width="33%"><slot><select tabindex='14' name='dateformat'>{$DATEOPTIONS}</select></slot></td>
510 <!-- END: prompttz -->
511 <!-- BEGIN: currency -->
512 <td width="17%" scope="row"><slot>{$MOD.LBL_CURRENCY}:</slot> {sugar_help text=$MOD.LBL_CURRENCY_TEXT }</td>
514 <select tabindex='14' id='currency_select' name='currency' onchange='setSymbolValue(this.options[this.selectedIndex].value);setSigDigits();'>{$CURRENCY}</select>
515 <input type="hidden" id="symbol" value="">
517 <!-- END: currency -->
520 <td scope="row"><slot>{$MOD.LBL_TIME_FORMAT}:</slot> {sugar_help text=$MOD.LBL_TIME_FORMAT_TEXT }</td>
521 <td ><slot><select tabindex='14' name='timeformat'>{$TIMEOPTIONS}</select></slot></td>
522 <!-- BEGIN: currency -->
523 <td width="17%" scope="row"><slot>
524 {$MOD.LBL_CURRENCY_SIG_DIGITS}:
527 <select id='sigDigits' onchange='setSigDigits(this.value);' name='default_currency_significant_digits'>{$sigDigits}</select>
529 <!-- END: currency -->
532 <td scope="row"><slot>{$MOD.LBL_TIMEZONE}:</slot> {sugar_help text=$MOD.LBL_TIMEZONE_TEXT }</td>
533 <td ><slot><select tabindex='14' name='timezone'>{$TIMEZONEOPTIONS}</select></slot></td>
534 <!-- BEGIN: currency -->
535 <td width="17%" scope="row"><slot>
536 <i>{$MOD.LBL_LOCALE_EXAMPLE_NAME_FORMAT}</i>:
539 <input type="text" disabled id="sigDigitsExample" name="sigDigitsExample">
541 <!-- END: currency -->
545 <td scope="row"><slot>{$MOD.LBL_PROMPT_TIMEZONE}:</slot> {sugar_help text=$MOD.LBL_PROMPT_TIMEZONE_TEXT }</td>
546 <td ><slot><input type="checkbox" tabindex='14'class="checkbox" name="ut" value="0" {$PROMPTTZ}></slot></td>
548 <td scope="row"><slot></td>
549 <td ><slot></slot></td>
551 <td width="17%" scope="row"><slot>{$MOD.LBL_NUMBER_GROUPING_SEP}:</slot> {sugar_help text=$MOD.LBL_NUMBER_GROUPING_SEP_TEXT }</td>
553 <input tabindex='14' name='num_grp_sep' id='default_number_grouping_seperator'
554 type='text' maxlength='1' size='1' value='{$NUM_GRP_SEP}'
555 onkeydown='setSigDigits();' onkeyup='setSigDigits();'>
557 {capture name=SMARTY_LOCALE_NAME_FORMAT_DESC} {$MOD.LBL_LOCALE_NAME_FORMAT_DESC}<br />{$MOD.LBL_LOCALE_NAME_FORMAT_DESC_2}{/capture}
559 <td scope="row" valign="top">{$MOD.LBL_LOCALE_DEFAULT_NAME_FORMAT}: {sugar_help text=$smarty.capture.SMARTY_LOCALE_NAME_FORMAT_DESC }</td>
561 <input onkeyup="setPreview();" onkeydown="setPreview();" id="default_locale_name_format" type="text" tabindex='14' name="default_locale_name_format" value="{$default_locale_name_format}">
563 <td width="17%" scope="row"><slot>{$MOD.LBL_DECIMAL_SEP}:</slot> {sugar_help text=$MOD.LBL_DECIMAL_SEP_TEXT }</td>
565 <input tabindex='14' name='dec_sep' id='default_decimal_seperator'
566 type='text' maxlength='1' size='1' value='{$DEC_SEP}'
567 onkeydown='setSigDigits();' onkeyup='setSigDigits();'>
571 <td scope="row" valign="top"><i>{$MOD.LBL_LOCALE_EXAMPLE_NAME_FORMAT}:</i> </td>
572 <td valign="top"><input tabindex='14' name="no_value" id="nameTarget" value="" style="border: none;" disabled size="50"></td>
577 <div id="calendar_options" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
578 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
580 <th align="left" scope="row" colspan="4"><h4>{$MOD.LBL_CALENDAR_OPTIONS}</h4></th>
583 <td width="17%" scope="row"><slot>{$MOD.LBL_PUBLISH_KEY}:</slot> {sugar_help text=$MOD.LBL_CHOOSE_A_KEY}</td>
584 <td width="20%" ><slot><input name='calendar_publish_key' tabindex='17' size='25' maxlength='25' type="text" value="{$CALENDAR_PUBLISH_KEY}"></slot></td>
585 <td width="63%" ><slot> </slot></td>
605 <div class="actionContainer">
606 <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();"
607 type="button" name="button" value="{$APP.LBL_SAVE_BUTTON_LABEL}" />
608 <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();"
609 type="button" name="button" value="{$APP.LBL_CANCEL_BUTTON_LABEL}" />
612 <script type="text/javascript">
614 var mail_smtpport = '{$MAIL_SMTPPORT}';
615 var mail_smtpssl = '{$MAIL_SMTPSSL}';
619 function Admin_check(){
620 if (('{/literal}{$IS_FOCUS_ADMIN}{literal}') && document.getElementById('is_admin').value=='0'){
621 r=confirm('{/literal}{$MOD.LBL_CONFIRM_REGULAR_USER}{literal}');
628 function user_status_display(field){
629 switch (field.value){
630 case 'Administrator':
631 document.getElementById('UserTypeDesc').innerHTML="{/literal}{$MOD.LBL_ADMIN_DESC}{literal}";
632 document.getElementById('is_admin').value='1';
635 document.getElementById('is_admin').value='0';
636 document.getElementById('UserTypeDesc').innerHTML="{/literal}{$MOD.LBL_REGULAR_DESC}{literal}";
638 case 'UserAdministrator':
639 document.getElementById('is_admin').value='0';
640 document.getElementById('UserTypeDesc').innerHTML="{/literal}{$MOD.LBL_USER_ADMIN_DESC}{literal}";
646 function startOutBoundEmailSettingsTest()
648 var loader = new YAHOO.util.YUILoader({
649 require : ["element","sugarwidgets"],
651 skin: { base: 'blank', defaultSkin: '' },
652 onSuccess: testOutboundSettings,
654 base: "include/javascript/yui/build/"
657 name :"sugarwidgets",
659 fullpath: "include/javascript/sugarwidgets/SugarYUIWidgets.js",
660 varName: "YAHOO.SUGAR",
661 requires: ["datatable", "dragdrop", "treeview", "tabview"]
667 function testOutboundSettings()
669 var errorMessage = '';
671 var fromAddress = document.getElementById("outboundtest_from_address").value;
672 var errorMessage = '';
674 var smtpServer = document.getElementById('mail_smtpserver').value;
676 var mailsmtpauthreq = document.getElementById('mail_smtpauth_req');
677 if(trim(smtpServer) == '' || trim(mail_smtpport) == '')
680 errorMessage += "{/literal}{$MOD.LBL_MISSING_DEFAULT_OUTBOUND_SMTP_SETTINGS}{literal}" + "<br/>";
681 overlay("{/literal}{$APP.ERR_MISSING_REQUIRED_FIELDS}{literal}", errorMessage, 'alert');
686 if(document.getElementById('mail_smtpuser') && trim(document.getElementById('mail_smtpuser').value) == '')
689 errorMessage += "{/literal}{$APP.LBL_EMAIL_ACCOUNTS_SMTPUSER}{literal}" + "<br/>";
693 if(document.getElementById('mail_smtppass') && trim(document.getElementById('mail_smtppass').value) == '')
696 errorMessage += "{/literal}{$APP.LBL_EMAIL_ACCOUNTS_SMTPPASS}{literal}" + "<br/>";
699 overlay("{/literal}{$APP.ERR_MISSING_REQUIRED_FIELDS}{literal}", errorMessage, 'alert');
703 testOutboundSettingsDialog();
706 function sendTestEmail()
708 var fromAddress = document.getElementById("outboundtest_from_address").value;
710 if (trim(fromAddress) == "")
712 overlay("{/literal}{$APP.ERR_MISSING_REQUIRED_FIELDS}{literal}", "{{/literal}$APP.LBL_EMAIL_SETTINGS_FROM_TO_EMAIL_ADDR}{literal}", 'alert');
715 else if (!isValidEmail(fromAddress)) {
716 overlay("{/literal}{$APP.ERR_INVALID_REQUIRED_FIELDS}{literal}", "{/literal}{$APP.LBL_EMAIL_SETTINGS_FROM_TO_EMAIL_ADDR}{literal}", 'alert');
720 //Hide the email address window and show a message notifying the user that the test email is being sent.
721 EmailMan.testOutboundDialog.hide();
722 overlay("{/literal}{$APP.LBL_EMAIL_PERFORMING_TASK}{literal}", "{/literal}{$APP.LBL_EMAIL_ONE_MOMENT}{literal}", 'alert');
724 var callbackOutboundTest = {
725 success : function(o) {
727 overlay("{/literal}{$APP.LBL_EMAIL_TEST_OUTBOUND_SETTINGS}{literal}", "{/literal}{$APP.LBL_EMAIL_TEST_NOTIFICATION_SENT}{literal}", 'alert');
730 var smtpServer = document.getElementById('mail_smtpserver').value;
732 if(document.getElementById('mail_smtpuser') && document.getElementById('mail_smtppass')){
733 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;
736 var postDataString = 'mail_sendtype=SMTP&mail_smtpserver=' + smtpServer + "&mail_smtpport=" + mail_smtpport + "&mail_smtpssl=" + mail_smtpssl + "&outboundtest_from_address=" + fromAddress;
738 YAHOO.util.Connect.asyncRequest("POST", "index.php?action=testOutboundEmail&module=EmailMan&to_pdf=true&sugar_body_only=true", callbackOutboundTest, postDataString);
740 function testOutboundSettingsDialog() {
741 // lazy load dialogue
742 if(!EmailMan.testOutboundDialog) {
743 EmailMan.testOutboundDialog = new YAHOO.widget.Dialog("testOutboundDialog", {
747 constraintoviewport: true,
751 EmailMan.testOutboundDialog.setHeader("{/literal}{$APP.LBL_EMAIL_TEST_OUTBOUND_SETTINGS}{literal}");
752 YAHOO.util.Dom.removeClass("testOutboundDialog", "yui-hidden");
755 EmailMan.testOutboundDialog.render();
756 EmailMan.testOutboundDialog.show();
759 function overlay(reqtitle, body, type) {
762 config.title = reqtitle;
764 YAHOO.SUGAR.MessageBox.show(config);
767 function hideOverlay() {
768 YAHOO.SUGAR.MessageBox.hide();
771 YAHOO.util.Event.onContentReady('user_theme_picker',function()
773 document.getElementById('user_theme_picker').onchange = function()
775 document.getElementById('themePreview').src =
776 "index.php?entryPoint=getImage&themeName=" + document.getElementById('user_theme_picker').value + "&imageName=themePreview.png";
777 if (typeof themeGroupList[document.getElementById('user_theme_picker').value] != 'undefined' &&
778 themeGroupList[document.getElementById('user_theme_picker').value] ) {
779 document.getElementById('use_group_tabs_row').style.display = '';
781 document.getElementById('use_group_tabs_row').style.display = 'none';
786 {if !$HIDE_IF_CAN_USE_DEFAULT_OUTBOUND}
788 document.getElementById('email_link_type').onchange = function()
790 document.getElementById('mail_smtpserver_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
791 document.getElementById('mail_smtpuser_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
792 document.getElementById('mail_smtppass_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
793 document.getElementById('test_outbound_settings_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
795 document.getElementById('email_link_type').onchange();
802 <script type="text/javascript" language="Javascript">
808 themeGroupList = {$themeGroupListJSON};
810 setSymbolValue(document.getElementById('currency_select').options[document.getElementById('currency_select').selectedIndex].value);
817 <div id="testOutboundDialog" class="yui-hidden">
818 <div id="testOutbound">
820 <table width="100%" border="0" cellspacing="0" cellpadding="0" class="edit view">
823 {$APP.LBL_EMAIL_SETTINGS_FROM_TO_EMAIL_ADDR}
824 <span class="required">
825 {$APP.LBL_REQUIRED_SYMBOL}
829 <input type="text" id="outboundtest_from_address" name="outboundtest_from_address" size="35" maxlength="64" value="{$TEST_EMAIL_ADDRESS}">
833 <td scope="row" colspan="2">
834 <input type="button" class="button" value=" {$APP.LBL_EMAIL_SEND} " onclick="javascript:sendTestEmail();">
835 <input type="button" class="button" value=" {$APP.LBL_CANCEL_BUTTON_LABEL} " onclick="javascript:EmailMan.testOutboundDialog.hide();">