diff --git a/chrome_point_plus/_locales/en/messages.json b/chrome_point_plus/_locales/en/messages.json index 33fefce..7f0e1e0 100644 --- a/chrome_point_plus/_locales/en/messages.json +++ b/chrome_point_plus/_locales/en/messages.json @@ -188,5 +188,8 @@ }, "msg_saving_post_draft":{ "message": "Saving the post..." + }, + "msg_success_recommendation": { + "message": "is recommended" } } diff --git a/chrome_point_plus/_locales/ru/messages.json b/chrome_point_plus/_locales/ru/messages.json index bebbf51..3a9226b 100644 --- a/chrome_point_plus/_locales/ru/messages.json +++ b/chrome_point_plus/_locales/ru/messages.json @@ -189,5 +189,8 @@ }, "msg_saving_post_draft":{ "message": "Сохранение поста..." + }, + "msg_success_recommendation": { + "message": "рекомендовано" } } diff --git a/chrome_point_plus/js/point-plus.js b/chrome_point_plus/js/point-plus.js index 17e1c9e..e818290 100644 --- a/chrome_point_plus/js/point-plus.js +++ b/chrome_point_plus/js/point-plus.js @@ -503,6 +503,9 @@ function PointPlus(ppVersion) { if (options.is('option_ajax')) { // Comments if (options.is('option_ajax_comments')) { + messenger.css({ + file: 'modules/ajax-comments.css' + }); messenger.js({ file: 'modules/ajax-comments.js' }, function() { diff --git a/chrome_point_plus/modules/ajax-comments.css b/chrome_point_plus/modules/ajax-comments.css new file mode 100644 index 0000000..b6d045d --- /dev/null +++ b/chrome_point_plus/modules/ajax-comments.css @@ -0,0 +1,27 @@ +.pp-notification { + display: block; + position: fixed; + top: 40px; + right: 40px; + padding: 20px; + border-radius: 2px; + font-size: 15px; + line-height: 20px; + transition: all 10s ease-in; + color: #fff; +} + +.pp-notification a, +.pp-notification a:visited, { + color: #fff; + text-decoration: none; + font-weight: bold; +} + +.pp-notification-success { + background: #4CAF50; +} + +.pp-notification.pp-fade { + opacity: 0; +} diff --git a/chrome_point_plus/modules/ajax-comments.js b/chrome_point_plus/modules/ajax-comments.js index d37d86d..9982994 100644 --- a/chrome_point_plus/modules/ajax-comments.js +++ b/chrome_point_plus/modules/ajax-comments.js @@ -194,8 +194,11 @@ AjaxCommentProcessor.prototype.onSuccess = function(data, textStatus) { if (data.error) { this.onError(null, null, data.error); } else { - this.createComment(data); - + if (this.isRecommendation() && this._text.trim().length === 0) { + this.showSuccessRecommendation(); + } else { + this.createComment(data); + } this.hideForm(); // Cleaning textarea @@ -277,3 +280,32 @@ AjaxCommentProcessor.prototype.setProgress = function(isProgress) { this._$textarea.prop('disabled', isProgress); this._$form.toggleClass('pp-progress', isProgress); }; + +AjaxCommentProcessor.prototype.getRecommendationLink = function() { + var url = '//point.im/' + this._postId; + var text = '#' + this._postId; + + if (this._commentId) { + url += '#' + this._commentId; + text += '/' + this._commentId; + } + + return '' + text + ''; +}; + +AjaxCommentProcessor.prototype.showSuccessRecommendation = function() { + var $notification = $('
') + .addClass('pp-notification pp-notification-success'); + + $notification.html(this.getRecommendationLink() + ' ' + chrome.i18n.getMessage('msg_success_recommendation')); + + $notification.on('transitionend', function() { + $notification.remove(); + }); + + $('body').append($notification); + + window.requestAnimationFrame(function() { + $notification.addClass('pp-fade'); + }); +};