alecpl
2011-07-04 7da13a337eb1d0ebbe4eadf8d0e32f848566c728
program/js/app.js
@@ -637,7 +637,11 @@
          }
          // contacts/identities
          else {
            if ((input = $("input[name='_name']", form)) &&input.length && input.val() == '') {
            //
            if (props == 'reload') {
              form.action += '?_reload=1';
            }
            else if ((input = $("input[name='_name']", form)) &&input.length && input.val() == '') {
              alert(this.get_label('nonamewarning'));
              input.focus();
              break;
@@ -2867,7 +2871,7 @@
      this.set_caret_pos(input_message, this.env.top_posting ? 0 : $(input_message).val().length);
      // add signature according to selected identity
      // if we have HTML editor, signature is added in callback
      if (input_from.attr('type') == 'select-one' && $("input[name='_draft_saveid']").val() == '') {
      if (input_from.prop('type') == 'select-one' && $("input[name='_draft_saveid']").val() == '') {
        this.change_identity(input_from[0]);
      }
    }
@@ -2906,7 +2910,7 @@
      input_message = $("[name='_message']");
    // check sender (if have no identities)
    if (input_from.attr('type') == 'text' && !rcube_check_email(input_from.val(), true)) {
    if (input_from.prop('type') == 'text' && !rcube_check_email(input_from.val(), true)) {
      alert(this.get_label('nosenderwarning'));
      input_from.focus();
      return false;
@@ -3260,7 +3264,7 @@
      });
      // display upload indicator and cancel button
      var content = this.get_label('uploading' + (files > 1 ? 'many' : '')),
      var content = '<span>' + this.get_label('uploading' + (files > 1 ? 'many' : '')) + '</span>',
        ts = frame_name.replace(/^rcmupload/, '');
      if (this.env.loadingicon)
@@ -3268,6 +3272,11 @@
      if (this.env.cancelicon)
        content = '<a title="'+this.get_label('cancel')+'" onclick="return rcmail.cancel_attachment_upload(\''+ts+'\', \''+frame_name+'\');" href="#cancelupload"><img src="'+this.env.cancelicon+'" alt="" /></a>'+content;
      this.add2attachment_list(ts, { name:'', html:content, complete:false });
      // upload progress support
      if (this.env.upload_progress_time) {
        this.upload_progress_start('upload', ts);
      }
    }
    // set reference to the form object
@@ -3330,6 +3339,25 @@
    this.remove_from_attachment_list(name);
    $("iframe[name='"+frame_name+"']").remove();
    return false;
  };
  this.upload_progress_start = function(action, name)
  {
    window.setTimeout(function() { rcmail.http_request(action, {_progress: name}); },
      this.env.upload_progress_time * 1000);
  };
  this.upload_progress_update = function(param)
  {
    var elem = $('#'+param.name + '> span');
    if (!elem.length || !param.text)
      return;
    elem.text(param.text);
    if (!param.done)
      this.upload_progress_start(param.action, param.name);
  };
  // send remote request to add a new contact
@@ -5598,6 +5626,19 @@
    var ts = new Date().getTime(),
      frame_name = 'rcmupload'+ts;
    // upload progress support
    if (this.env.upload_progress_name) {
      var fname = this.env.upload_progress_name,
        field = $('input[name='+fname+']', form);
      if (!field.length) {
        field = $('<input>').attr({type: 'hidden', name: fname});
        field.appendTo(form);
      }
      field.val(ts);
    }
    // have to do it this way for IE
    // otherwise the form will be posted to a new window
    if (document.all) {