Use iframes for identity management
| | |
| | | this.enable_command('preferences', 'identities', 'save', 'folders', true); |
| | | |
| | | if (this.env.action == 'identities') { |
| | | this.enable_command('add', this.env.identities_level < 2); |
| | | this.enable_command('add', 'delete', this.env.identities_level < 2); |
| | | } |
| | | else if (this.env.action == 'edit-identity' || this.env.action == 'add-identity') { |
| | | this.enable_command('add', this.env.identities_level < 2); |
| | | this.enable_command('save', 'delete', 'edit', 'toggle-editor', true); |
| | | this.enable_command('save', 'edit', 'toggle-editor', true); |
| | | if (this.is_framed() && this.env.identities_level < 2) |
| | | this.set_button('delete', 'act'); // activate button but delegate command to parent |
| | | else |
| | | this.enable_command('delete', this.env.identities_level < 2); |
| | | |
| | | if (this.env.action == 'add-identity') |
| | | $("input[type='text']").first().select(); |
| | | } |
| | | else if (this.env.action == 'folders') { |
| | | this.enable_command('subscribe', 'unsubscribe', 'create-folder', 'rename-folder', true); |
| | |
| | | if (!id) |
| | | id = this.env.iid ? this.env.iid : selection[0]; |
| | | |
| | | // append token to request |
| | | this.goto_url('delete-identity', '_iid='+id+'&_token='+this.env.request_token, true); |
| | | // submit request with appended token |
| | | if (confirm(this.get_label('deleteidentityconfirm'))) |
| | | this.goto_url('delete-identity', '_iid='+id+'&_token='+this.env.request_token, true); |
| | | |
| | | return true; |
| | | }; |
| | | |
| | | this.update_identity_row = function(id, name, add) |
| | | { |
| | | var row, col, list = this.identity_list, |
| | | rid = this.html_identifier(id); |
| | | |
| | | if (list.rows[rid] && (row = list.rows[rid].obj)) { |
| | | $(row.cells[0]).html(name); |
| | | } |
| | | else if (add) { |
| | | row = $('<tr>').attr('id', 'rcmrow'+rid).get(0); |
| | | col = $('<td>').addClass('mail').html(name).appendTo(row); |
| | | list.insert_row(row); |
| | | list.select(rid); |
| | | } |
| | | }; |
| | | |
| | | |
| | | /*********************************************************/ |
| | |
| | | $messages['removingmember'] = 'Removing contact(s) from the group...'; |
| | | $messages['receiptsent'] = 'Successfully sent a read receipt.'; |
| | | $messages['errorsendingreceipt'] = 'Could not send the receipt.'; |
| | | $messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?'; |
| | | $messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.'; |
| | | $messages['forbiddencharacter'] = 'Folder name contains a forbidden character.'; |
| | | $messages['selectimportfile'] = 'Please select a file to upload.'; |
| | |
| | | $OUTPUT->include_script('list.js'); |
| | | $OUTPUT->add_handler('identityform', 'rcube_identity_form'); |
| | | $OUTPUT->set_env('identities_level', IDENTITIES_LEVEL); |
| | | $OUTPUT->add_label('deleteidentityconfirm'); |
| | | |
| | | $OUTPUT->set_pagetitle(rcube_label(($RCMAIL->action=='add-identity' ? 'newidentity' : 'edititem'))); |
| | | |
| | |
| | | define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0))); |
| | | |
| | | $OUTPUT->set_pagetitle(rcube_label('identities')); |
| | | |
| | | $OUTPUT->include_script('list.js'); |
| | | |
| | | |
| | |
| | | |
| | | $OUTPUT->add_handler('identityframe', 'rcmail_identity_frame'); |
| | | $OUTPUT->set_env('identities_level', IDENTITIES_LEVEL); |
| | | $OUTPUT->add_label('deleteidentityconfirm'); |
| | | |
| | | $OUTPUT->send('identities'); |
| | |
| | | |
| | | if ($_POST['_framed']) { |
| | | // update the changed col in list |
| | | // ... |
| | | $OUTPUT->command('parent.update_identity_row', $iid, Q(trim($save_data['name'] . ' <' . rcube_idn_to_utf8($save_data['email']) .'>'))); |
| | | } |
| | | } |
| | | else { |
| | |
| | | |
| | | if (!empty($_POST['_standard'])) |
| | | $default_id = $insert_id; |
| | | |
| | | if ($_POST['_framed']) { |
| | | // add a new row to the list |
| | | $OUTPUT->command('parent.update_identity_row', $insert_id, Q(trim($save_data['name'] . ' <' . rcube_idn_to_utf8($save_data['email']) .'>')), true); |
| | | } |
| | | } |
| | | else { |
| | | // show error message |
| | |
| | | $RCMAIL->user->set_default($default_id); |
| | | |
| | | // go to next step |
| | | rcmail_overwrite_action('identities'); |
| | | if (!empty($_REQUEST['_framed'])) { |
| | | rcmail_overwrite_action('edit-identity'); |
| | | } |
| | | else |
| | | rcmail_overwrite_action('identities'); |
| | |
| | | <roundcube:object name="identitiesList" id="identities-table" class="listing" cellspacing="0" summary="Identities list" noheader="true" editIcon="" /> |
| | | </div> |
| | | <div class="boxfooter"> |
| | | <roundcube:button command="add" type="link" title="newidentity" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" condition="config:identities_level:0<2" /> |
| | | <roundcube:button command="add" type="link" title="newidentity" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" condition="config:identities_level:0<2" /><roundcube:button command="delete" type="link" title="delete" class="listbutton delete disabled" classAct="listbutton delete" innerClass="inner" content="-" condition="config:identities_level:0<2" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <div id="identity-details" class="uibox contentbox watermark"> |
| | | <roundcube:object name="message" id="message" class="statusbar" /> |
| | | <div id="identity-details" class="uibox contentbox"> |
| | | <roundcube:object name="identityframe" id="preferences-frame" style="width:100%; height:96%" src="/watermark.html" /> |
| | | <roundcube:object name="message" id="message" class="statusbar" /> |
| | | </div> |
| | | |
| | | </div> |
| | |
| | | <title><roundcube:object name="pagetitle" /></title> |
| | | <roundcube:include file="/includes/links.html" /> |
| | | </head> |
| | | <body> |
| | | <body class="iframe"> |
| | | |
| | | <roundcube:include file="/includes/header.html" /> |
| | | |
| | | <div id="mainscreen" class="offset"> |
| | | |
| | | <roundcube:include file="/includes/settingstabs.html" /> |
| | | |
| | | <div id="settings-right"> |
| | | |
| | | <div id="identitieslist" class="uibox listbox"> |
| | | <h2 class="boxtitle"><roundcube:label name="identities" /></h2> |
| | | <div class="scroller withfooter"> |
| | | <roundcube:object name="identitiesList" id="identities-table" class="listing" noheader="true" editIcon="" /> |
| | | </div> |
| | | <div class="boxfooter"> |
| | | <roundcube:button command="add" type="link" title="newidentity" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" condition="config:identities_level:0<2" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <div id="identity-details" class="uibox contentbox"> |
| | | <h1 class="boxtitle"><roundcube:object name="steptitle" /></h1> |
| | | |
| | | <div class="boxcontent scroller"> |
| | | <div id="preferences-details" class="boxcontent"> |
| | | <roundcube:object name="identityform" class="propform" size="40" textareacols="40" textarearows="6" /> |
| | | </div> |
| | | |
| | | <p class="formbuttons"> |
| | | <div id="formfooter"> |
| | | <div class="footerleft formbuttons"> |
| | | <roundcube:button command="save" type="input" class="button mainaction" label="save" /> |
| | | <roundcube:button command="delete" type="input" class="button" label="delete" condition="env:action=='edit-identity'" /> |
| | | </p> |
| | | <roundcube:button command="delete" type="input" class="button" label="delete" condition="env:action=='edit-identity' && config:identities_level:0<2" /> |
| | | </div> |
| | | |
| | | <roundcube:object name="message" id="message" class="statusbar" /> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <roundcube:include file="/includes/footer.html" /> |
| | |
| | | new rcube_splitter({ id:'folderviewsplitter', p1:'#folderslist', p2:'#folder-details', |
| | | orientation:'v', relative:true, start:305, min:150, size:12 }).init(); |
| | | } |
| | | else if (rcmail.env.action.indexOf('identit') >= 0) { |
| | | else if (rcmail.env.action == 'identities') { |
| | | new rcube_splitter({ id:'identviewsplitter', p1:'#identitieslist', p2:'#identity-details', |
| | | orientation:'v', relative:true, start:305, min:150, size:12 }).init(); |
| | | } |