Aleksander Machniak
2015-06-10 a79e43a4834829c80ab6851f7b9a90964f03f0de
program/js/app.js
@@ -1268,7 +1268,7 @@
        $('input[name="_unlock"]', form).val(importlock);
        if (!(flag = this.upload_file(form, 'import'))) {
        if (!(flag = this.upload_file(form, 'import', importlock))) {
          this.set_busy(false, null, importlock);
          if (flag !== false)
            alert(this.get_label('selectimportfile'));
@@ -2233,35 +2233,38 @@
      return;
    var win, target = window,
      action = preview ? 'preview': 'show',
      url = '&_action='+action+'&_uid='+id+'&_mbox='+urlencode(this.get_message_mailbox(id));
      url = {
        _uid: String(id).split('-')[0],
        _mbox: this.get_message_mailbox(id),
        // add browser capabilities, so we can properly handle attachments
        _caps: this.browser_capabilities()
      };
    if (preview && (win = this.get_frame_window(this.env.contentframe))) {
      target = win;
      url += '&_framed=1';
      url._framed = 1;
    }
    if (safe)
      url += '&_safe=1';
      url._safe = 1;
    // also send search request to get the right messages
    if (this.env.search_request)
      url += '&_search='+this.env.search_request;
    // add browser capabilities, so we can properly handle attachments
    url += '&_caps='+urlencode(this.browser_capabilities());
      url._search = this.env.search_request;
    if (this.env.extwin)
      url += '&_extwin=1';
      url._extwin = 1;
    url = this.url(preview ? 'preview': 'show', url);
    if (preview && String(target.location.href).indexOf(url) >= 0) {
      this.show_contentframe(true);
    }
    else {
      if (!preview && this.env.message_extwin && !this.env.extwin)
        this.open_window(this.env.comm_path+url, true);
        this.open_window(url, true);
      else
        this.location_href(this.env.comm_path+url, target, true);
        this.location_href(url, target, true);
      // mark as read and change mbox unread counter
      if (preview && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread && this.env.preview_pane_mark_read > 0) {
@@ -3287,33 +3290,34 @@
        $(this).keydown();
      })
      // keyboard navigation
      .on('keydown keyup', function(e) {
      .on('keydown keyup click', function(e) {
        var current, selector = $('#pagejump-selector'),
          ul = $('ul', selector),
          list = $('li', ul),
          height = ul.height(),
          p = parseInt(this.value);
        if (e.which != 27 && e.which != 9 && e.which != 13 && !selector.is(':visible'))
          return ref.show_menu('pagejump-selector', true, e);
        if (e.type == 'keydown') {
          // arrow-down
          if (e.which == 40) {
            if (!selector.is(':visible'))
              return ref.show_menu('pagejump-selector', true, e);
            if (list.length > p)
              this.value = (p += 1);
          }
          // arrow-up
          else if (e.which == 38) {
            if (!selector.is(':visible'))
              return ref.show_menu('pagejump-selector', true, e);
            if (p > 1 && list.length > p - 1)
              this.value = (p -= 1);
          }
          // enter
          else if (e.which == 13) {
            return $(this).change();
          }
          // esc, tab
          else if (e.which == 27 || e.which == 9) {
            return $(element).val(ref.env.current_page);
          }
        }
@@ -4178,7 +4182,7 @@
  };
  // upload (attachment) file
  this.upload_file = function(form, action)
  this.upload_file = function(form, action, lock)
  {
    if (!form)
      return;
@@ -4220,6 +4224,9 @@
          if (!content.match(/display_message/))
            ref.display_message(ref.get_label('fileuploaderror'), 'error');
          ref.remove_from_attachment_list(e.data.ts);
          if (lock)
            ref.set_busy(false, null, lock);
        }
        // Opera hack: handle double onload
        if (bw.opera)