Added user preference to open all popups as standard windows
| | |
| | | CHANGELOG Roundcube Webmail |
| | | =========================== |
| | | |
| | | - Added user preference to open all popups as standard windows |
| | | - Fix unintentional compose window resize (#1489114) |
| | | - Fix performance regression in text wrapping function (#1489133) |
| | | - Fix connection to posgtres db using unix socket (#1489132) |
| | |
| | | // skin name: folder from skins/ |
| | | $rcmail_config['skin'] = 'larry'; |
| | | |
| | | // Enables using standard browser windows (that can be handled as tabs) |
| | | // instead of popup windows |
| | | $rcmail_config['standard_windows'] = false; |
| | | |
| | | // show up to X items in messages list view |
| | | $rcmail_config['mail_pagesize'] = 50; |
| | | |
| | |
| | | //$this->framed = $framed; |
| | | $this->set_env('task', $task); |
| | | $this->set_env('x_frame_options', $this->config->get('x_frame_options', 'sameorigin')); |
| | | $this->set_env('standard_windows', (bool) $this->config->get('standard_windows')); |
| | | |
| | | // add cookie info |
| | | $this->set_env('cookie_domain', ini_get('session.cookie_domain')); |
| | |
| | | // open popup window |
| | | this.open_window = function(url, small, toolbar) |
| | | { |
| | | var wname = 'rcmextwin' + new Date().getTime(); |
| | | |
| | | url += (url.match(/\?/) ? '&' : '?') + '_extwin=1'; |
| | | |
| | | if (this.env.standard_windows) |
| | | extwin = window.open(url, wname); |
| | | else { |
| | | var win = this.is_framed() ? parent.window : window, |
| | | page = $(win), |
| | | page_width = page.width(), |
| | |
| | | h = page_height, // always use same height |
| | | l = (win.screenLeft || win.screenX) + 20, |
| | | t = (win.screenTop || win.screenY) + 20, |
| | | wname = 'rcmextwin' + new Date().getTime(), |
| | | extwin = window.open(url + (url.match(/\?/) ? '&' : '?') + '_extwin=1', wname, |
| | | extwin = window.open(url, wname, |
| | | 'width='+w+',height='+h+',top='+t+',left='+l+',resizable=yes,location=no,scrollbars=yes' |
| | | +(toolbar ? ',toolbar=yes,menubar=yes,status=yes' : ',toolbar=no,menubar=no,status=no')); |
| | | } |
| | | |
| | | // write loading... message to empty windows |
| | | if (!url && extwin.document) { |
| | |
| | | $labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized'; |
| | | $labels['addtodict'] = 'Add to dictionary'; |
| | | $labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links'; |
| | | $labels['standardwindows'] = 'Handle popups as standard windows'; |
| | | $labels['forwardmode'] = 'Messages forwarding'; |
| | | $labels['inline'] = 'inline'; |
| | | $labels['asattachment'] = 'as attachment'; |
| | |
| | | |
| | | $blocks = array( |
| | | 'main' => array('name' => Q(rcube_label('mainoptions'))), |
| | | 'skin' => array('name' => Q(rcube_label('skin'))), |
| | | 'browser' => array('name' => Q(rcube_label('browseroptions'))), |
| | | ); |
| | | |
| | | // language selection |
| | |
| | | $field_id = 'rcmfd_skin'; |
| | | $input_skin = new html_radiobutton(array('name'=>'_skin')); |
| | | |
| | | $blocks['skin'] = array('name' => Q(rcube_label('skin')),); |
| | | |
| | | foreach($skins as $skin) { |
| | | $thumbnail = "./skins/$skin/thumbnail.png"; |
| | | if (!is_file($thumbnail)) |
| | |
| | | } |
| | | } |
| | | |
| | | // standard_windows option decides if new windows should be |
| | | // opened as popups or standard windows (which can be handled by browsers as tabs) |
| | | if (!isset($no_override['standard_windows'])) { |
| | | $field_id = 'rcmfd_standard_windows'; |
| | | $checkbox = new html_checkbox(array('name' => '_standard_windows', 'id' => $field_id, 'value' => 1)); |
| | | |
| | | $blocks['browser']['options']['standard_windows'] = array( |
| | | 'title' => html::label($field_id, Q(rcube_label('standardwindows'))), |
| | | 'content' => $checkbox->show($config['standard_windows']?1:0), |
| | | ); |
| | | } |
| | | |
| | | |
| | | $product_name = $RCMAIL->config->get('product_name', 'Roundcube Webmail'); |
| | | $RCMAIL->output->add_script(sprintf("%s.check_protocol_handler('%s', '#mailtoprotohandler');", |
| | | JS_OBJECT_NAME, JQ($product_name)), 'foot'); |
| | | |
| | | $blocks['browser'] = array( |
| | | 'name' => Q(rcube_label('browseroptions')), |
| | | 'options' => array('mailtoprotohandler' => array( |
| | | $blocks['browser']['options']['mailtoprotohandler'] = array( |
| | | 'content' => html::a(array( |
| | | 'href' => '#', |
| | | 'id' => 'mailtoprotohandler'), Q(rcube_label('mailtoprotohandler'))), |
| | | )), |
| | | ); |
| | | |
| | | break; |
| | |
| | | 'time_format' => isset($_POST['_time_format']) ? get_input_value('_time_format', RCUBE_INPUT_POST) : ($CONFIG['time_format'] ? $CONFIG['time_format'] : 'H:i'), |
| | | 'prettydate' => isset($_POST['_pretty_date']) ? TRUE : FALSE, |
| | | 'refresh_interval' => isset($_POST['_refresh_interval']) ? intval($_POST['_refresh_interval'])*60 : $CONFIG['refresh_interval'], |
| | | 'standard_windows' => isset($_POST['_standard_windows']) ? TRUE : FALSE, |
| | | 'skin' => isset($_POST['_skin']) ? get_input_value('_skin', RCUBE_INPUT_POST) : $CONFIG['skin'], |
| | | ); |
| | | |