From 96f33f004a40d7d9e5c7135e89663af08ef99366 Mon Sep 17 00:00:00 2001 From: mizzick Date: Fri, 17 Nov 2017 17:03:04 +0700 Subject: [PATCH] #894 Reports integration --- Extension/lib/content-message-handler.js | 3 + Extension/lib/pages/popup-controller.js | 82 +++--------------------- Extension/lib/ui-service.js | 32 +++++++++ 3 files changed, 44 insertions(+), 73 deletions(-) diff --git a/Extension/lib/content-message-handler.js b/Extension/lib/content-message-handler.js index f0f7db5c33..6d78bcf214 100644 --- a/Extension/lib/content-message-handler.js +++ b/Extension/lib/content-message-handler.js @@ -381,6 +381,9 @@ case 'openSiteReportTab': adguard.ui.openSiteReportTab(message.url); break; + case 'openAbuseTab': + adguard.ui.openAbuseTab(message.url); + break; case 'openSettingsTab': adguard.ui.openSettingsTab(); break; diff --git a/Extension/lib/pages/popup-controller.js b/Extension/lib/pages/popup-controller.js index 1fcb38c67e..8edb9f4f97 100644 --- a/Extension/lib/pages/popup-controller.js +++ b/Extension/lib/pages/popup-controller.js @@ -40,7 +40,6 @@ PopupController.prototype = { // Bind actions this._bindActions(); - this._initFeedback(); this.afterRender(); }, @@ -76,6 +75,10 @@ PopupController.prototype = { popupPage.sendMessage({type: 'openSiteReportTab', url: url}); }, + openAbuseTab: function (url) { + popupPage.sendMessage({type: 'openAbuseTab', url: url}); + }, + openSettingsTab: function () { popupPage.sendMessage({type: 'openSettingsTab'}); }, @@ -285,6 +288,11 @@ PopupController.prototype = { self.openLink(e.currentTarget.href); popupPage.closePopup(); }); + parent.on('click', '.openAbuse', function (e) { + e.preventDefault(); + self.openAbuseTab(self.tabInfo.url); + popupPage.closePopup(); + }); //checkbox parent.on('change', '#siteFilteringDisabledCheckbox', function () { @@ -325,78 +333,6 @@ PopupController.prototype = { }); }, - _initFeedback: function () { - - if (this.feedbackBind === true) { - return; - } - this.feedbackBind = true; - - var parent = $('.widjet-popup'); - var feedbackModal = $('.modal-feedback'); - - var self = this; - var feedbackErrorMessage = $('#feedbackErrorMessage'); - - function sendFeedback() { - var topic = selectorText.data('abuseOption'); - if (!topic) { - feedbackErrorMessage.addClass('show'); - return; - } - var comment = selectorComment.val(); - self.sendFeedback(self.tabInfo.url, topic, comment); - closeFeedback(); - selectorComment.val(''); - } - - function closeFeedback() { - feedbackModal.addClass('hidden'); - parent.removeClass('hidden'); - selectorText.data('abuseOption', ''); - i18n.translateElement(selectorText[0], 'popup_feedback_empty_option'); - feedbackErrorMessage.removeClass('show'); - self.resizePopupWindow(); - } - - parent.on('click', '.openAbuse', function (e) { - e.preventDefault(); - parent.addClass('hidden'); - feedbackModal.removeClass('hidden'); - self.resizePopupWindow(); - }); - - feedbackModal.on('click', '#cancelFeedback', function (e) { - e.preventDefault(); - closeFeedback(); - }); - feedbackModal.on('click', '#sendFeedback', function (e) { - e.preventDefault(); - sendFeedback(); - }); - - var selectorText = $('.m-feedback-inner-text'); - var selectorDropdown = $('.modal-feedback-dropdown'); - var selectorComment = $('.modal-feedback-message textarea'); - feedbackModal.on('click', '.modal-feedback-inner', function (e) { - e.preventDefault(); - selectorDropdown.toggleClass('hidden'); - e.stopPropagation(); - }); - //clickoff - $(document).click(function () { - selectorDropdown.addClass('hidden'); - }); - feedbackModal.on('click', '.m-feedback-dropdown-item', function (e) { - e.preventDefault(); - var text = $(this).text(); - selectorText.text(text); - selectorText.data('abuseOption', $(this).attr('item-data')); - selectorDropdown.addClass('hidden'); - feedbackErrorMessage.removeClass('show'); - }); - }, - // http://jira.performix.ru/browse/AG-3474 resizePopupWindowForMacOs: function () { var options = this.options; diff --git a/Extension/lib/ui-service.js b/Extension/lib/ui-service.js index 50c6b33ea1..bcc40320c0 100644 --- a/Extension/lib/ui-service.js +++ b/Extension/lib/ui-service.js @@ -498,6 +498,37 @@ adguard.ui = (function (adguard) { // jshint ignore:line } }; + /** + * Opens site complaint report tab + * + * @param url + */ + var openAbuseTab = function (url) { + var browser; + var browserDetails; + + var supportedBrowsers = ['Chrome', 'Firefox', 'Opera', 'Safari', 'IE', 'Edge']; + if (supportedBrowsers.indexOf(adguard.prefs.browser) >= 0) { + browser = adguard.prefs.browser; + } else { + browser = 'Other'; + browserDetails = adguard.prefs.browser; + } + + var filters = []; + var enabledFilters = adguard.filters.getEnabledFilters(); + for (var i = 0; i < enabledFilters.length; i++) { + var filter = enabledFilters[i]; + filters.push(filter.filterId); + } + + openTab("https://reports.adguard.com/new_issue.html?product_type=Ext&product_version=" + encodeURIComponent(adguard.app.getVersion()) + + "&browser=" + encodeURIComponent(browser) + + (browserDetails ? '&browser_detail=' + encodeURIComponent(browserDetails) : '') + + "&url=" + encodeURIComponent(url) + + "&filters=" + encodeURIComponent(filters.join('.'))); + }; + var openFilteringLog = function (tabId) { var options = {activateSameTab: true, type: "popup"}; if (!tabId) { @@ -739,6 +770,7 @@ adguard.ui = (function (adguard) { // jshint ignore:line openThankYouPage: openThankYouPage, openExtensionStore: openExtensionStore, openFiltersDownloadPage: openFiltersDownloadPage, + openAbuseTab: openAbuseTab, updateTabIconAndContextMenu: updateTabIconAndContextMenu,