mirror of
https://bitbucket.org/skobkin/chrome_point_plus.git
synced 2024-11-23 18:56:04 +00:00
Merged in iss81 (pull request #43)
Отправлять форму не аяксом, если выбран файл; Fixes #81
This commit is contained in:
commit
4615113a44
|
@ -38,12 +38,25 @@ AjaxComments.prototype.listenFirstComments = function() {
|
||||||
*/
|
*/
|
||||||
AjaxComments.prototype.onSubmit = function(event) {
|
AjaxComments.prototype.onSubmit = function(event) {
|
||||||
var $form = $(event.target);
|
var $form = $(event.target);
|
||||||
var proc;
|
|
||||||
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
|
||||||
if ($form.hasClass('reply-form')) {
|
if ($form.hasClass('reply-form')) {
|
||||||
|
this.submit($form);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Проверяет, выбран ли файл. Если да — отправляет форму с перезагрузкой, иначе — аяксом
|
||||||
|
* @param {jQuery} $form Элемент формы
|
||||||
|
*/
|
||||||
|
AjaxComments.prototype.submit = function($form) {
|
||||||
|
var proc;
|
||||||
|
|
||||||
|
if (this.isFileSelected($form)) {
|
||||||
|
$form.submit();
|
||||||
|
} else {
|
||||||
proc = new AjaxCommentProcessor($form);
|
proc = new AjaxCommentProcessor($form);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -63,7 +76,7 @@ AjaxComments.prototype.onKeypress = function(event) {
|
||||||
$form = $(event.target).closest('.reply-form');
|
$form = $(event.target).closest('.reply-form');
|
||||||
|
|
||||||
if ($form.length) {
|
if ($form.length) {
|
||||||
proc = new AjaxCommentProcessor($form);
|
this.submit($form);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -77,6 +90,16 @@ AjaxComments.prototype.isProperKeys = function(event) {
|
||||||
return (event.keyCode === 10 || event.keyCode === 13) && (event.ctrlKey || event.metaKey);
|
return (event.keyCode === 10 || event.keyCode === 13) && (event.ctrlKey || event.metaKey);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {jQuery} $form
|
||||||
|
* @return {Boolean} Выбран ли файл
|
||||||
|
*/
|
||||||
|
AjaxComments.prototype.isFileSelected = function($form) {
|
||||||
|
var files = $form.get(0).elements.attach.files;
|
||||||
|
|
||||||
|
return Boolean(files && files.length);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Создаётся при каждой отправке комментария
|
* Создаётся при каждой отправке комментария
|
||||||
* @param {jQuery} $form Элемент формы, на которой это произошло
|
* @param {jQuery} $form Элемент формы, на которой это произошло
|
||||||
|
@ -139,21 +162,25 @@ AjaxCommentProcessor.prototype.onSuccess = function(data, textStatus) {
|
||||||
var $textarea = this._$textarea;
|
var $textarea = this._$textarea;
|
||||||
|
|
||||||
if (textStatus === 'success') {
|
if (textStatus === 'success') {
|
||||||
this.hideForm();
|
if (data.error) {
|
||||||
|
this.onError(null, null, data.error);
|
||||||
// Creating the comment HTML
|
} else {
|
||||||
create_comment_elements({
|
// Creating the comment HTML
|
||||||
id: data.comment_id,
|
create_comment_elements({
|
||||||
toId: this._commentId || null,
|
id: data.comment_id,
|
||||||
postId: this._postId,
|
toId: this._commentId || null,
|
||||||
author: $('#name h1').text(),
|
postId: this._postId,
|
||||||
text: this._text,
|
author: $('#name h1').text(),
|
||||||
fadeOut: true
|
text: this._text,
|
||||||
}, this.insertComment.bind(this));
|
fadeOut: true
|
||||||
|
}, this.insertComment.bind(this));
|
||||||
|
|
||||||
// Cleaning textarea
|
this.hideForm();
|
||||||
$textarea.val('');
|
|
||||||
this.setProgress(false);
|
// Cleaning textarea
|
||||||
|
$textarea.val('');
|
||||||
|
this.setProgress(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue