mirror of
https://bitbucket.org/skobkin/chrome_point_plus.git
synced 2024-11-23 10:46:02 +00:00
Поменять url для рекомендации комментария; Fixes #87
This commit is contained in:
parent
0bea1baa24
commit
4e6d09a774
|
@ -48,7 +48,7 @@ AjaxComments.prototype.onSubmit = function(event) {
|
|||
};
|
||||
|
||||
/**
|
||||
* Проверяет, выбран ли файл. Если да — отправляет форму с перезагрузкой, иначе — аяксом
|
||||
* Проверяет, выбран ли файл. Если да — отправляет форму с перезагрузкой, иначе — аяксом
|
||||
* @param {jQuery} $form Элемент формы
|
||||
*/
|
||||
AjaxComments.prototype.submit = function($form) {
|
||||
|
@ -67,7 +67,6 @@ AjaxComments.prototype.submit = function($form) {
|
|||
*/
|
||||
AjaxComments.prototype.onKeypress = function(event) {
|
||||
var $form;
|
||||
var proc;
|
||||
|
||||
if (this.isProperKeys(event)) {
|
||||
event.preventDefault();
|
||||
|
@ -116,12 +115,19 @@ function AjaxCommentProcessor($form) {
|
|||
this._text = this._$textarea.val();
|
||||
this._CSRF = $form.get(0).elements.csrf_token.value;
|
||||
|
||||
this._actionUrl = this._$form.attr('action');
|
||||
this._postId = this._$post.data('id');
|
||||
this._commentId = this._$post.data('comment-id');
|
||||
|
||||
this.sendComment();
|
||||
}
|
||||
|
||||
/**
|
||||
* Регулярка для урла, проверяюшая, не рекомендация ли это
|
||||
* @type {RegExp}
|
||||
*/
|
||||
AjaxCommentProcessor.recommendationReg = /^\/[^/]*\/r$/;
|
||||
|
||||
/**
|
||||
* Отправляет комментарий
|
||||
*/
|
||||
|
@ -130,7 +136,7 @@ AjaxCommentProcessor.prototype.sendComment = function() {
|
|||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/api/post' + this._$form.attr('action'),
|
||||
url: this.getUrl(),
|
||||
data: {
|
||||
text: this._text,
|
||||
comment_id: this._commentId
|
||||
|
@ -141,6 +147,25 @@ AjaxCommentProcessor.prototype.sendComment = function() {
|
|||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* @return {Boolean} true — это коммент-рекомендация, fasle — обычный коммент
|
||||
*/
|
||||
AjaxCommentProcessor.prototype.isRecommendation = function() {
|
||||
return this._isRec || (this._isRec = this.constructor.recommendationReg.test(this._actionUrl));
|
||||
};
|
||||
|
||||
/**
|
||||
* @return {String} Адрес, на который слать запрос
|
||||
*/
|
||||
AjaxCommentProcessor.prototype.getUrl = function() {
|
||||
// Если это рекомендация комментария
|
||||
if (this.isRecommendation() && this._commentId) {
|
||||
return '/api/post/' + this._postId + '/' + this._commentId + '/r';
|
||||
} else {
|
||||
return '/api/post' + this._actionUrl;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Подкладывает CSRF-токен в заголовки запроса
|
||||
* @param {XMLHttpRequest} xhr Объект запроса
|
||||
|
@ -181,6 +206,7 @@ AjaxCommentProcessor.prototype.onSuccess = function(data, textStatus) {
|
|||
};
|
||||
|
||||
AjaxCommentProcessor.prototype.createComment = function(data) {
|
||||
/* global create_comment_elements */
|
||||
create_comment_elements({
|
||||
id: data.comment_id,
|
||||
toId: this._commentId || null,
|
||||
|
@ -236,6 +262,7 @@ AjaxCommentProcessor.prototype.showComment = function($comment) {
|
|||
* @param {String} error
|
||||
*/
|
||||
AjaxCommentProcessor.prototype.onError = function(req, status, error) {
|
||||
/* global alert */
|
||||
alert(chrome.i18n.getMessage('msg_comment_send_failed') + '\n' + error);
|
||||
|
||||
this.setProgress(false);
|
||||
|
@ -243,7 +270,7 @@ AjaxCommentProcessor.prototype.onError = function(req, status, error) {
|
|||
|
||||
/**
|
||||
* Устанавливает прогресс
|
||||
* @param {Boolean} isProgress true — включить прогресс, false — отключить
|
||||
* @param {Boolean} isProgress true — включить прогресс, false — отключить
|
||||
*/
|
||||
AjaxCommentProcessor.prototype.setProgress = function(isProgress) {
|
||||
this._$textarea.prop('disabled', isProgress);
|
||||
|
|
Loading…
Reference in a new issue