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.getTab(4).set('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');
102 EditView_tabs.getTab(4).set('cacheData',true);
104 if ( document.location.hash == '#tab5' ) {
105 EditView_tabs.selectTab(4);
112 <table width="100%" cellpadding="0" cellspacing="0" border="0" class="actionsContainer">
115 <input id="Save" title="{$APP.LBL_SAVE_BUTTON_TITLE}" accessKey="{$APP.LBL_SAVE_BUTTON_KEY}"
116 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();"
117 type="button" name="button" value="{$APP.LBL_SAVE_BUTTON_LABEL}" >
118 <input title="{$APP.LBL_CANCEL_BUTTON_TITLE}" accessKey="{$APP.LBL_CANCEL_BUTTON_KEY}"
119 class="button" onclick="this.form.action.value='{$RETURN_ACTION}'; this.form.module.value='{$RETURN_MODULE}'; this.form.record.value='{$RETURN_ID}'; this.form.submit()"
120 type="button" name="button" value="{$APP.LBL_CANCEL_BUTTON_LABEL}">
123 <td align="right" nowrap>
124 <span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span> {$APP.NTC_REQUIRED}
129 <div id="EditView_tabs" class="yui-navset">
131 <li class="selected"><a id="tab1" href="#tab1"><em>{$MOD.LBL_USER_INFORMATION}</em></a></li>
132 <li {if $CHANGE_PWD == 0}style='display:none'{/if}><a id="tab2" href="#tab2"><em>{$MOD.LBL_CHANGE_PASSWORD_TITLE}</em></a></li>
134 <li><a id="tab3" href="#tab3"><em>{$MOD.LBL_THEME}</em></a></li>
136 <li><a id="tab4" href="#tab4" style='display:{$HIDE_FOR_GROUP_AND_PORTAL};'><em>{$MOD.LBL_ADVANCED}</em></a></li>
138 <li><a id="tab5" href="#tab5"><em>{$MOD.LBL_EAPM_SUBPANEL_TITLE}</em></a></li>
141 <div class="yui-content">
144 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
146 <th align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_USER_INFORMATION}</slot></h4></th>
149 <td width="17%" scope="row"><slot>{$MOD.LBL_USER_NAME}: <span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span></slot></td>
150 <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>
151 <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>
152 <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>
153 <td width="17%" id='first_name_lbl' scope="row" style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'><slot>{$MOD.LBL_FIRST_NAME}:</slot></td>
154 <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>
157 {$USER_STATUS_OPTIONS}
158 <td width="17%" scope="row" style='display:{$HIDE_STATIC_USERTYPE}'><slot>{$MOD.LBL_USER_TYPE}:</slot></td>
159 <td scope="row" style='display:{$HIDE_STATIC_USERTYPE}'><slot>{$USER_TYPE_LABEL} {sugar_help text=$USER_TYPE_DESC WIDTH=250}</slot></td>
160 <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>
161 <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>
163 <tr style='display:{$HIDE_CHANGE_USERTYPE}'>
164 <td width="17%" scope="row"><slot>{$MOD.LBL_USER_TYPE}:</slot></td>
166 <table width="100%" cellspacing="0" cellpadding="0">
169 <td width="20%"><select id="UserType" name="UserType" onchange="user_status_display(this);" value='' disabled>
170 <option value="RegularUser">{$MOD.LBL_REGULAR_USER}</option>
172 {elseif $ADMIN_EDIT_SELF}
173 <td width="20%"><select id="UserType" name="UserType" onchange="user_status_display(this);" value='' disabled>
174 <option value="Administrator">{$MOD.LBL_ADMIN_USER}</option>
177 <td width="20%"><select id="UserType" name="UserType" onchange="user_status_display(this);" value='' tabindex='1' >
178 <option value="RegularUser">{$MOD.LBL_REGULAR_USER}</option>
179 <option value="Administrator" {if $IS_FOCUS_ADMIN} SELECTED {/if}>{$MOD.LBL_ADMIN_USER}</option>
183 <div id='UserTypeDesc'>{$USER_TYPE_DESC}</div>
191 <div id="information" style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'>
192 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
194 <th align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_EMPLOYEE_INFORMATION}</slot></h4></th>
197 <td width="17%" scope="row"><slot>{$MOD.LBL_EMPLOYEE_STATUS}:</slot></td>
198 <td width="33%" ><slot>{$EMPLOYEE_STATUS_OPTIONS}</slot></td>
199 <td scope="row"><slot> </slot></td>
200 <td ><slot> </slot></td>
203 <td width="17%" scope="row"><slot>{$MOD.LBL_TITLE}:</slot></td>
204 <td width="33%" ><slot><input name='title' type="text" tabindex='5' size='15' maxlength='25' value='{$TITLE}' {$IS_ADMIN_DISABLED}></slot></td>
205 <td width="17%" scope="row"><slot>{$MOD.LBL_OFFICE_PHONE}:</slot></td>
206 <td width="33%" ><slot><input name='phone_work' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_WORK}'></slot></td>
209 <td scope="row"><slot>{$MOD.LBL_DEPARTMENT}:</slot></td>
210 <td ><slot><input name='department' type="text" tabindex='5' size='25' maxlength='100' value='{$DEPARTMENT}' {$IS_ADMIN_DISABLED}></slot></td>
211 <td scope="row"><slot>{$MOD.LBL_MOBILE_PHONE}:</slot></td>
212 <td ><slot><input name='phone_mobile' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_MOBILE}'></slot></td>
215 <td scope="row"><slot>{$MOD.LBL_REPORTS_TO}:</slot></td>
216 <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}/>
217 <input type="hidden" name="reports_to_id" id="reports_to_id" value="{$REPORTS_TO_ID}" tabindex="240"/>
218 {$REPORTS_TO_CHANGE_BUTTON}</slot></td>
219 <td scope="row"><slot>{$MOD.LBL_OTHER_PHONE}:</slot></td>
220 <td ><slot><input name='phone_other' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_OTHER}'></slot></td>
223 <td scope="row"><slot> </slot></td>
224 <td ><slot> </slot></td>
225 <td scope="row"><slot>{$MOD.LBL_FAX}:</slot></td>
226 <td ><slot><input name='phone_fax' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_FAX}'></slot></td>
229 <td scope="row"><slot> </slot></td>
230 <td ><slot> </slot></td>
231 <td scope="row"><slot>{$MOD.LBL_HOME_PHONE}:</slot></td>
232 <td ><slot><input name='phone_home' type="text" tabindex='6' size='20' maxlength='25' value='{$PHONE_HOME}'></slot></td>
235 <td scope="row"><slot>{$MOD.LBL_MESSENGER_TYPE}:</slot></td>
236 <td ><slot>{$MESSENGER_TYPE_OPTIONS}</slot></td>
237 <td scope="row"><slot>{$MOD.LBL_MESSENGER_ID}:</slot></td>
238 <td ><slot><input name='messenger_id' type="text" tabindex='6' size='35' maxlength='100' value='{$MESSENGER_ID}'></slot></td>
241 <th align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_ADDRESS_INFORMATION}</slot></h4></th>
244 <td width="17%" scope="row"><slot>{$MOD.LBL_PRIMARY_ADDRESS}:</slot></td>
245 <td width="33%" ><slot><textarea name='address_street' rows="2" tabindex='8' cols="30">{$ADDRESS_STREET}</textarea></slot></td>
246 <td width="17%" scope="row"><slot>{$MOD.LBL_CITY}:</slot></td>
247 <td width="33%" ><slot><input name='address_city' tabindex='8' size='15' maxlength='100' value='{$ADDRESS_CITY}'></slot></td>
250 <td scope="row"><slot>{$MOD.LBL_STATE}:</slot></td>
251 <td ><slot><input name='address_state' tabindex='9' size='15' maxlength='100' value='{$ADDRESS_STATE}'></slot></td>
252 <td scope="row"><slot>{$MOD.LBL_POSTAL_CODE}:</slot></td>
253 <td ><slot><input name='address_postalcode' tabindex='9' size='10' maxlength='20' value='{$ADDRESS_POSTALCODE}'></slot></td>
256 <td scope="row"><slot>{$MOD.LBL_COUNTRY}:</slot></td>
257 <td ><slot><input name='address_country' tabindex='10' size='10' maxlength='20' value='{$ADDRESS_COUNTRY}'></slot></td>
260 <td valign="top" scope="row"><slot>{$MOD.LBL_NOTES}:</slot></td>
261 <td colspan="4"><slot><textarea name='description' tabindex='11' cols='100%' rows="4">{$DESCRIPTION}</textarea></slot></td>
265 <div id="email_options">
266 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
268 <th align="left" scope="row" colspan="4">
269 <h4>{$MOD.LBL_MAIL_OPTIONS_TITLE}</h4>
273 <td scope="row" width="17%">
274 {$MOD.LBL_EMAIL}: {if $REQUIRED_EMAIL_ADDRESS}<span class="required" id="mandatory_email">{$APP.LBL_REQUIRED_SYMBOL}</span> {/if}
280 <tr id="email_options_link_type" style='display:{$HIDE_FOR_GROUP_AND_PORTAL}'>
281 <td scope="row" width="17%">
282 {$MOD.LBL_EMAIL_LINK_TYPE}: {sugar_help text=$MOD.LBL_EMAIL_LINK_TYPE_HELP WIDTH=450}
285 <select id="email_link_type" name="email_link_type" tabindex='410'>
290 {if !$HIDE_IF_CAN_USE_DEFAULT_OUTBOUND}
291 <tr id="mail_smtpserver_tr">
292 <td width="20%" scope="row"><span id="mail_smtpserver_label">{$MOD.LBL_EMAIL_PROVIDER}</span></td>
293 <td width="30%" ><slot>{$mail_smtpdisplay}<input id='mail_smtpserver' name='mail_smtpserver' type="hidden" value='{$mail_smtpserver}' /></slot></td>
297 {if !empty($mail_smtpauth_req) }
299 <tr id="mail_smtpuser_tr">
300 <td width="20%" scope="row" nowrap="nowrap"><span id="mail_smtpuser_label">{$MOD.LBL_MAIL_SMTPUSER}</span></td>
301 <td width="30%" ><slot><input type="text" id="mail_smtpuser" name="mail_smtpuser" size="25" maxlength="64" value="{$mail_smtpuser}" tabindex='1' ></slot></td>
305 <tr id="mail_smtppass_tr">
306 <td width="20%" scope="row" nowrap="nowrap"><span id="mail_smtppass_label">{$MOD.LBL_MAIL_SMTPPASS}</span></td>
307 <td width="30%" ><slot><input type="password" id="mail_smtppass" name="mail_smtppass" size="25" maxlength="64" value="{$mail_smtppass}" tabindex='1'></slot></td>
313 <tr id="test_outbound_settings_tr">
314 <td width="17%" scope="row"><input type="button" class="button" value="{$APP.LBL_EMAIL_TEST_OUTBOUND_SETTINGS}" onclick="startOutBoundEmailSettingsTest();"></td>
315 <td width="33%" > </td>
316 <td width="17%"> </td>
317 <td width="33%" > </td>
324 {if ($CHANGE_PWD) == '1'}
325 <div id="generate_password">
326 <table width="100%" border="0" cellspacing="0" cellpadding="0" class="edit view">
329 <table width='100%' cellspacing='0' cellpadding='0' border='0' >
331 <th align="left" scope="row" colspan="4">
332 <h4>{$MOD.LBL_CHANGE_PASSWORD_TITLE}</h4><br>
337 <!-- hide field if user is admin -->
338 <div id='generate_password_old_password' {if ($IS_ADMIN)} style='display:none' {/if}>
339 <table width='100%' cellspacing='0' cellpadding='0' border='0' >
341 <td width='35%' scope="row">
342 {$MOD.LBL_OLD_PASSWORD}
345 <input name='old_password' id='old_password' type='password' tabindex='2' onkeyup="password_confirmation();" >
352 <table width='100%' cellspacing='0' cellpadding='0' border='0' >
354 <td width='35%' scope="row" snowrap>
355 {$MOD.LBL_NEW_PASSWORD}
356 <span class="required" id="mandatory_pwd">{if ($REQUIRED_PASSWORD)}{$APP.LBL_REQUIRED_SYMBOL}{/if}</span>
358 <td class='dataField'>
360 <input name='new_password' id= "new_password" type='password' tabindex='2' onkeyup="password_confirmation();newrules('{$PWDSETTINGS.minpwdlength}','{$PWDSETTINGS.maxpwdlength}','{$REGEX}');" />
366 <td scope="row" width='35%'>
367 {$MOD.LBL_CONFIRM_PASSWORD}
369 <td class='dataField'>
370 <input name='confirm_new_password' id='confirm_pwd' style ='' type='password' tabindex='2' onkeyup="password_confirmation();" >
373 <div id="comfirm_pwd_match" class="error" style="display: none;">{$MOD.ERR_PASSWORD_MISMATCH}</div>
374 {*<span id="ext-gen63" class="x-panel-header-text">
376 <span id="Filter.1_help" onmouseout="return nd();" onmouseover="return overlib(help(), FGCLASS, 'olFgClass', CGCLASS, 'olCgClass', BGCLASS, 'olBgClass', TEXTFONTCLASS, 'olFontClass', CAPTIONFONTCLASS, 'olCapFontClass', CLOSEFONTCLASS, 'olCloseFontClass' );">
377 <img src="themes/default/images/help.gif"/>
383 <td class='dataLabel'></td>
384 <td class='dataField'></td>
388 <table width='17%' cellspacing='0' cellpadding='1' border='0'>
391 <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}'>
398 <td width='60%' style="vertical-align:middle;">
404 <div id="generate_password">
405 <input name='old_password' id='old_password' type='hidden'>
406 <input name='new_password' id= "new_password" type='hidden'>
407 <input name='confirm_new_password' id='confirm_pwd' type='hidden'>
413 <div id="themepicker" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
414 <table class="edit view" border="0" cellpadding="0" cellspacing="0" width="100%">
417 <td scope="row" colspan="4"><h4>{$MOD.LBL_THEME}</h4></td>
421 <select name="user_theme" tabindex='366' size="20" id="user_theme_picker" style="width: 100%">
426 <img id="themePreview" src="{sugar_getimagepath file='themePreview.png'}" border="1" />
428 <td width="17%"> </td>
429 <td width="33%"> </td>
437 <div id="settings" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
438 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
441 <th width="100%" align="left" scope="row" colspan="4"><h4><slot>{$MOD.LBL_USER_SETTINGS}</slot></h4></th>
444 <td scope="row" valign="top"><slot>{$MOD.LBL_EXPORT_DELIMITER}:</slot> {sugar_help text=$MOD.LBL_EXPORT_DELIMITER_DESC }</td>
445 <td ><slot><input type="text" tabindex='12' name="export_delimiter" value="{$EXPORT_DELIMITER}" size="5"></slot></td>
446 <td scope="row" width="17%">
447 <slot>{$MOD.LBL_RECEIVE_NOTIFICATIONS}:</slot> {sugar_help text=$MOD.LBL_RECEIVE_NOTIFICATIONS_TEXT}
450 <slot><input name='receive_notifications' class="checkbox" tabindex='12' type="checkbox" value="12" {$RECEIVE_NOTIFICATIONS}></slot>
455 <td scope="row" valign="top"><slot>{$MOD.LBL_EXPORT_CHARSET}:</slot> {sugar_help text=$MOD.LBL_EXPORT_CHARSET_DESC }</td>
456 <td ><slot><select tabindex='12' name="default_export_charset">{$EXPORT_CHARSET}</select></slot></td>
457 <td scope="row" valign="top">
458 <slot>{$MOD.LBL_REMINDER}:</slot> {sugar_help text=$MOD.LBL_REMINDER_TEXT }
460 <td valign="top" nowrap>
462 <input tabindex='12' name='mailmerge_on' type='hidden' value='0'>
463 <input name='should_remind' size='2' maxlength='2' tabindex='12' onclick='toggleDisplay("should_remind_list");' type="checkbox" class="checkbox" value='1' {$REMINDER_CHECKED}>
464 <div id='should_remind_list' style='display:{$REMINDER_TIME_DISPLAY}'>
465 <select tabindex='12' name='reminder_time' >{$REMINDER_TIME_OPTIONS}</select></div></slot>
469 <td scope="row" valign="top"><slot>{$MOD.LBL_USE_REAL_NAMES}:</slot> {sugar_help text=$MOD.LBL_USE_REAL_NAMES_DESC }</td>
470 <td ><slot><input tabindex='12' type="checkbox" name="use_real_names" {$USE_REAL_NAMES}></slot></td>
471 <td scope="row" valign="top">
472 <slot>{$MOD.LBL_MAILMERGE}:</slot> {sugar_help text=$MOD.LBL_MAILMERGE_TEXT }
474 <td valign="top" nowrap>
475 <slot><input tabindex='12' name='mailmerge_on' class="checkbox" type="checkbox" {$MAILMERGE_ON}></slot>
478 <!--{if !empty($EXTERNAL_AUTH_CLASS) && !empty($IS_ADMIN)}-->
480 {capture name=SMARTY_LBL_EXTERNAL_AUTH_ONLY} {$MOD.LBL_EXTERNAL_AUTH_ONLY} {$EXTERNAL_AUTH_CLASS_1}{/capture}
481 <td scope="row" nowrap><slot>{$EXTERNAL_AUTH_CLASS} {$MOD.LBL_ONLY}:</slot> {sugar_help text=$smarty.capture.SMARTY_LBL_EXTERNAL_AUTH_ONLY}</td>
482 <td ><input type='hidden' value='0' name='external_auth_only'><input type='checkbox' value='1' name='external_auth_only' {$EXTERNAL_AUTH_ONLY_CHECKED}></td>
490 <table class="edit view" border="0" cellpadding="0" cellspacing="1" width="100%">
493 <th align="left" scope="row" colspan="4"><h4>{$MOD.LBL_LAYOUT_OPTIONS}</h4></th>
495 <tr id="use_group_tabs_row" style="display: {$DISPLAY_GROUP_TAB};">
496 <td scope="row"><span>{$MOD.LBL_USE_GROUP_TABS}:</span> {sugar_help text=$MOD.LBL_NAVIGATION_PARADIGM_DESCRIPTION }</td>
497 <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>
501 <table width="100%" border="0" cellspacing="0" cellpadding="0">
503 <td scope="row" align="left" style="padding-bottom: 2em;">{$TAB_CHOOSER}</td>
504 <td width="90%" valign="top"><BR> </td>
510 <td width="17%" scope="row"><span scope="row">{$MOD.LBL_MAX_TAB}:</span> {sugar_help text=$MOD.LBL_MAX_TAB_DESCRIPTION }</td>
511 <td width="83%" colspan="3">
512 <select name="user_max_tabs" tabindex='12'>
513 {html_options values=$MAX_TAB_OPTIONS output=$MAX_TAB_OPTIONS selected=$MAX_TAB}
518 <td scope="row"><span>{$MOD.LBL_SUBPANEL_TABS}:</span> {sugar_help text=$MOD.LBL_SUBPANEL_TABS_DESCRIPTION }</td>
519 <td colspan="3"><input type="checkbox" name="user_subpanel_tabs" {$SUBPANEL_TABS} tabindex='13'></td>
523 <div id="locale" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
524 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
526 <th width="100%" align="left" scope="row" colspan="4">
527 <h4><slot>{$MOD.LBL_USER_LOCALE}</slot></h4></th>
530 <td width="17%" scope="row"><slot>{$MOD.LBL_DATE_FORMAT}:</slot> {sugar_help text=$MOD.LBL_DATE_FORMAT_TEXT }</td>
531 <td width="33%"><slot><select tabindex='14' name='dateformat'>{$DATEOPTIONS}</select></slot></td>
532 <!-- END: prompttz -->
533 <!-- BEGIN: currency -->
534 <td width="17%" scope="row"><slot>{$MOD.LBL_CURRENCY}:</slot> {sugar_help text=$MOD.LBL_CURRENCY_TEXT }</td>
536 <select tabindex='14' id='currency_select' name='currency' onchange='setSymbolValue(this.options[this.selectedIndex].value);setSigDigits();'>{$CURRENCY}</select>
537 <input type="hidden" id="symbol" value="">
539 <!-- END: currency -->
542 <td scope="row"><slot>{$MOD.LBL_TIME_FORMAT}:</slot> {sugar_help text=$MOD.LBL_TIME_FORMAT_TEXT }</td>
543 <td ><slot><select tabindex='14' name='timeformat'>{$TIMEOPTIONS}</select></slot></td>
544 <!-- BEGIN: currency -->
545 <td width="17%" scope="row"><slot>
546 {$MOD.LBL_CURRENCY_SIG_DIGITS}:
549 <select id='sigDigits' onchange='setSigDigits(this.value);' name='default_currency_significant_digits'>{$sigDigits}</select>
551 <!-- END: currency -->
554 <td scope="row"><slot>{$MOD.LBL_TIMEZONE}:</slot> {sugar_help text=$MOD.LBL_TIMEZONE_TEXT }</td>
555 <td ><slot><select tabindex='14' name='timezone'>{html_options options=$TIMEZONEOPTIONS selected=$TIMEZONE_CURRENT}</select></slot></td>
556 <!-- BEGIN: currency -->
557 <td width="17%" scope="row"><slot>
558 <i>{$MOD.LBL_LOCALE_EXAMPLE_NAME_FORMAT}</i>:
561 <input type="text" disabled id="sigDigitsExample" name="sigDigitsExample">
563 <!-- END: currency -->
567 <td scope="row"><slot>{$MOD.LBL_PROMPT_TIMEZONE}:</slot> {sugar_help text=$MOD.LBL_PROMPT_TIMEZONE_TEXT }</td>
568 <td ><slot><input type="checkbox" tabindex='14'class="checkbox" name="ut" value="0" {$PROMPTTZ}></slot></td>
570 <td scope="row"><slot></td>
571 <td ><slot></slot></td>
573 <td width="17%" scope="row"><slot>{$MOD.LBL_NUMBER_GROUPING_SEP}:</slot> {sugar_help text=$MOD.LBL_NUMBER_GROUPING_SEP_TEXT }</td>
575 <input tabindex='14' name='num_grp_sep' id='default_number_grouping_seperator'
576 type='text' maxlength='1' size='1' value='{$NUM_GRP_SEP}'
577 onkeydown='setSigDigits();' onkeyup='setSigDigits();'>
579 {capture name=SMARTY_LOCALE_NAME_FORMAT_DESC} {$MOD.LBL_LOCALE_NAME_FORMAT_DESC}<br />{$MOD.LBL_LOCALE_NAME_FORMAT_DESC_2}{/capture}
581 <td scope="row" valign="top">{$MOD.LBL_LOCALE_DEFAULT_NAME_FORMAT}: {sugar_help text=$smarty.capture.SMARTY_LOCALE_NAME_FORMAT_DESC }</td>
583 <input onkeyup="setPreview();" onkeydown="setPreview();" id="default_locale_name_format" type="text" tabindex='14' name="default_locale_name_format" value="{$default_locale_name_format}">
585 <td width="17%" scope="row"><slot>{$MOD.LBL_DECIMAL_SEP}:</slot> {sugar_help text=$MOD.LBL_DECIMAL_SEP_TEXT }</td>
587 <input tabindex='14' name='dec_sep' id='default_decimal_seperator'
588 type='text' maxlength='1' size='1' value='{$DEC_SEP}'
589 onkeydown='setSigDigits();' onkeyup='setSigDigits();'>
593 <td scope="row" valign="top"><i>{$MOD.LBL_LOCALE_EXAMPLE_NAME_FORMAT}:</i> </td>
594 <td valign="top"><input tabindex='14' name="no_value" id="nameTarget" value="" style="border: none;" disabled size="50"></td>
599 <div id="calendar_options" style="display:{$HIDE_FOR_GROUP_AND_PORTAL}">
600 <table width="100%" border="0" cellspacing="1" cellpadding="0" class="edit view">
602 <th align="left" scope="row" colspan="4"><h4>{$MOD.LBL_CALENDAR_OPTIONS}</h4></th>
605 <td width="17%" scope="row"><slot>{$MOD.LBL_PUBLISH_KEY}:</slot> {sugar_help text=$MOD.LBL_CHOOSE_A_KEY}</td>
606 <td width="20%" ><slot><input name='calendar_publish_key' tabindex='17' size='25' maxlength='25' type="text" value="{$CALENDAR_PUBLISH_KEY}"></slot></td>
607 <td width="63%" ><slot> </slot></td>
614 <div style="text-align:center; width: 100%">{sugar_image name="loading"}</div>
632 <div class="actionContainer">
633 <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();"
634 type="button" name="button" value="{$APP.LBL_SAVE_BUTTON_LABEL}" />
635 <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();"
636 type="button" name="button" value="{$APP.LBL_CANCEL_BUTTON_LABEL}" />
639 <script type="text/javascript">
641 var mail_smtpport = '{$MAIL_SMTPPORT}';
642 var mail_smtpssl = '{$MAIL_SMTPSSL}';
646 function Admin_check(){
647 if (('{/literal}{$IS_FOCUS_ADMIN}{literal}') && document.getElementById('is_admin').value=='0'){
648 r=confirm('{/literal}{$MOD.LBL_CONFIRM_REGULAR_USER}{literal}');
655 function user_status_display(field){
656 switch (field.value){
657 case 'Administrator':
658 document.getElementById('UserTypeDesc').innerHTML="{/literal}{$MOD.LBL_ADMIN_DESC}{literal}";
659 document.getElementById('is_admin').value='1';
662 document.getElementById('is_admin').value='0';
663 document.getElementById('UserTypeDesc').innerHTML="{/literal}{$MOD.LBL_REGULAR_DESC}{literal}";
665 case 'UserAdministrator':
666 document.getElementById('is_admin').value='0';
667 document.getElementById('UserTypeDesc').innerHTML="{/literal}{$MOD.LBL_USER_ADMIN_DESC}{literal}";
673 function startOutBoundEmailSettingsTest()
675 var loader = new YAHOO.util.YUILoader({
676 require : ["element","sugarwidgets"],
678 skin: { base: 'blank', defaultSkin: '' },
679 onSuccess: testOutboundSettings,
681 base: "include/javascript/yui/build/"
684 name :"sugarwidgets",
686 fullpath: "include/javascript/sugarwidgets/SugarYUIWidgets.js",
687 varName: "YAHOO.SUGAR",
688 requires: ["datatable", "dragdrop", "treeview", "tabview"]
694 function testOutboundSettings()
696 var errorMessage = '';
698 var fromAddress = document.getElementById("outboundtest_from_address").value;
699 var errorMessage = '';
701 var smtpServer = document.getElementById('mail_smtpserver').value;
703 var mailsmtpauthreq = document.getElementById('mail_smtpauth_req');
704 if(trim(smtpServer) == '' || trim(mail_smtpport) == '')
707 errorMessage += "{/literal}{$MOD.LBL_MISSING_DEFAULT_OUTBOUND_SMTP_SETTINGS}{literal}" + "<br/>";
708 overlay("{/literal}{$APP.ERR_MISSING_REQUIRED_FIELDS}{literal}", errorMessage, 'alert');
713 if(document.getElementById('mail_smtpuser') && trim(document.getElementById('mail_smtpuser').value) == '')
716 errorMessage += "{/literal}{$APP.LBL_EMAIL_ACCOUNTS_SMTPUSER}{literal}" + "<br/>";
721 overlay("{/literal}{$APP.ERR_MISSING_REQUIRED_FIELDS}{literal}", errorMessage, 'alert');
725 testOutboundSettingsDialog();
728 function sendTestEmail()
730 var toAddress = document.getElementById("outboundtest_from_address").value;
731 var fromAddress = document.getElementById("outboundtest_from_address").value;
733 if (trim(fromAddress) == "")
735 overlay("{/literal}{$APP.ERR_MISSING_REQUIRED_FIELDS}{literal}", "{{/literal}$APP.LBL_EMAIL_SETTINGS_FROM_TO_EMAIL_ADDR}{literal}", 'alert');
738 else if (!isValidEmail(fromAddress)) {
739 overlay("{/literal}{$APP.ERR_INVALID_REQUIRED_FIELDS}{literal}", "{/literal}{$APP.LBL_EMAIL_SETTINGS_FROM_TO_EMAIL_ADDR}{literal}", 'alert');
743 //Hide the email address window and show a message notifying the user that the test email is being sent.
744 EmailMan.testOutboundDialog.hide();
745 overlay("{/literal}{$APP.LBL_EMAIL_PERFORMING_TASK}{literal}", "{/literal}{$APP.LBL_EMAIL_ONE_MOMENT}{literal}", 'alert');
747 var callbackOutboundTest = {
748 success : function(o) {
750 overlay("{/literal}{$APP.LBL_EMAIL_TEST_OUTBOUND_SETTINGS}{literal}", "{/literal}{$APP.LBL_EMAIL_TEST_NOTIFICATION_SENT}{literal}", 'alert');
753 var smtpServer = document.getElementById('mail_smtpserver').value;
755 if(document.getElementById('mail_smtpuser') && document.getElementById('mail_smtppass')){
756 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;
759 var postDataString = 'mail_sendtype=SMTP&mail_smtpserver=' + smtpServer + "&mail_smtpport=" + mail_smtpport + "&mail_smtpssl=" + mail_smtpssl + "&outboundtest_from_address=" + fromAddress + "&outboundtest_to_address=" + toAddress;
761 YAHOO.util.Connect.asyncRequest("POST", "index.php?action=testOutboundEmail&mail_name=system&module=EmailMan&to_pdf=true&sugar_body_only=true", callbackOutboundTest, postDataString);
763 function testOutboundSettingsDialog() {
764 // lazy load dialogue
765 if(!EmailMan.testOutboundDialog) {
766 EmailMan.testOutboundDialog = new YAHOO.widget.Dialog("testOutboundDialog", {
770 constraintoviewport: true,
774 EmailMan.testOutboundDialog.setHeader("{/literal}{$APP.LBL_EMAIL_TEST_OUTBOUND_SETTINGS}{literal}");
775 YAHOO.util.Dom.removeClass("testOutboundDialog", "yui-hidden");
778 EmailMan.testOutboundDialog.render();
779 EmailMan.testOutboundDialog.show();
782 function overlay(reqtitle, body, type) {
785 config.title = reqtitle;
787 YAHOO.SUGAR.MessageBox.show(config);
790 function hideOverlay() {
791 YAHOO.SUGAR.MessageBox.hide();
794 YAHOO.util.Event.onContentReady('user_theme_picker',function()
796 document.getElementById('user_theme_picker').onchange = function()
798 document.getElementById('themePreview').src =
799 "index.php?entryPoint=getImage&themeName=" + document.getElementById('user_theme_picker').value + "&imageName=themePreview.png";
800 if (typeof themeGroupList[document.getElementById('user_theme_picker').value] != 'undefined' &&
801 themeGroupList[document.getElementById('user_theme_picker').value] ) {
802 document.getElementById('use_group_tabs_row').style.display = '';
804 document.getElementById('use_group_tabs_row').style.display = 'none';
809 {if !$HIDE_IF_CAN_USE_DEFAULT_OUTBOUND}
811 document.getElementById('email_link_type').onchange = function()
813 document.getElementById('mail_smtpserver_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
814 document.getElementById('mail_smtpuser_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
815 document.getElementById('mail_smtppass_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
816 document.getElementById('test_outbound_settings_tr').style.display = (this.value == 'mailto' ? 'none' : '' );
818 document.getElementById('email_link_type').onchange();
825 <script type="text/javascript" language="Javascript">
831 themeGroupList = {$themeGroupListJSON};
833 setSymbolValue(document.getElementById('currency_select').options[document.getElementById('currency_select').selectedIndex].value);
840 <div id="testOutboundDialog" class="yui-hidden">
841 <div id="testOutbound">
843 <table width="100%" border="0" cellspacing="0" cellpadding="0" class="edit view">
846 {$APP.LBL_EMAIL_SETTINGS_FROM_TO_EMAIL_ADDR}
847 <span class="required">
848 {$APP.LBL_REQUIRED_SYMBOL}
852 <input type="text" id="outboundtest_from_address" name="outboundtest_from_address" size="35" maxlength="64" value="{$TEST_EMAIL_ADDRESS}">
856 <td scope="row" colspan="2">
857 <input type="button" class="button" value=" {$APP.LBL_EMAIL_SEND} " onclick="javascript:sendTestEmail();">
858 <input type="button" class="button" value=" {$APP.LBL_CANCEL_BUTTON_LABEL} " onclick="javascript:EmailMan.testOutboundDialog.hide();">