Thomas Bruederli
2014-07-09 007f1b443888a17b5156ef871e5548d28a3a0130
program/js/app.js
@@ -593,6 +593,7 @@
      // remove copy from local storage if compose screen is left intentionally
      this.remove_compose_data(this.env.compose_id);
      this.compose_skip_unsavedcheck = true;
    }
    // process external commands
@@ -652,6 +653,7 @@
          if (win) {
            this.save_compose_form_local();
            this.compose_skip_unsavedcheck = true;
            $("input[name='_action']", form).val('compose');
            form.action = this.url('mail/compose', { _id: this.env.compose_id, _extwin: 1 });
            form.target = win.name;
@@ -1325,7 +1327,7 @@
    var url = this.get_task_url(task);
    if (task == 'mail')
      url += '&_mbox=INBOX';
    else if (task == 'logout')
    else if (task == 'logout' && !this.env.server_error)
      this.clear_compose_data();
    this.redirect(url);
@@ -3261,6 +3263,7 @@
    form._draft.value = draft ? '1' : '';
    form.action = this.add_url(form.action, '_unlock', msgid);
    form.action = this.add_url(form.action, '_lang', lang);
    form.action = this.add_url(form.action, '_framed', 1);
    // register timer to notify about connection timeout
    this.submit_timer = setTimeout(function(){
@@ -3555,10 +3558,7 @@
    // submit delete request
    if (key && confirm(this.get_label('deleteresponseconfirm'))) {
      this.http_post('settings/delete-response', { _key: key }, false);
      return true;
    }
    return false;
  };
  this.stop_spellchecking = function()
@@ -3658,6 +3658,7 @@
    // always remove local copy upon saving as draft
    this.remove_compose_data(this.env.compose_id);
    this.compose_skip_unsavedcheck = false;
  };
  this.auto_save_start = function()
@@ -3682,6 +3683,21 @@
          ref.compose_type_activity_last = ref.compose_type_activity;
        }
      }, 5000);
      $(window).unload(function() {
        // remove copy from local storage if compose screen is left after warning
        if (!ref.env.server_error)
          ref.remove_compose_data(ref.env.compose_id);
      });
    }
    // check for unsaved changes before leaving the compose page
    if (!window.onbeforeunload) {
      window.onbeforeunload = function() {
        if (!ref.compose_skip_unsavedcheck && ref.cmp_hash != ref.compose_field_hash()) {
          return ref.get_label('notsentwarning');
        }
      };
    }
    // Unlock interface now that saving is complete
@@ -4219,6 +4235,7 @@
  this.sent_successfully = function(type, msg, folders)
  {
    this.display_message(msg, type);
    this.compose_skip_unsavedcheck = true;
    if (this.env.extwin) {
      this.lock_form(this.gui_objects.messageform);
@@ -5612,10 +5629,8 @@
      id = this.env.iid ? this.env.iid : selection[0];
    // 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;
    if (id && confirm(this.get_label('deleteidentityconfirm')))
      this.http_post('settings/delete-identity', { _iid: id }, true);
  };
  this.update_identity_row = function(id, name, add)
@@ -5659,6 +5674,23 @@
        frame.location.href = this.env.blankpage;
      }
    }
    this.enable_command('delete', false);
  };
  this.remove_identity = function(id)
  {
    var frame, list = this.identity_list,
      rid = this.html_identifier(id);
    if (list && id) {
      list.remove_row(rid);
      if (this.env.contentframe && (frame = this.get_frame_window(this.env.contentframe))) {
        frame.location.href = this.env.blankpage;
      }
    }
    this.enable_command('delete', false);
  };
@@ -7119,6 +7151,7 @@
    // save message in local storage and do not redirect
    if (this.env.action == 'compose') {
      this.save_compose_form_local();
      this.compose_skip_unsavedcheck = true;
    }
    else if (redirect_url) {
      window.setTimeout(function(){ ref.redirect(redirect_url, true); }, 2000);