From 08470c4333798369ddb8499187932105e654fb93 Mon Sep 17 00:00:00 2001 From: proffapt Date: Sun, 9 Apr 2023 14:21:56 +0530 Subject: [PATCH] feat: single form filling --- extension-src/chrome/js/feedback.js | 152 ++++++++++++++-------------- extension-src/chrome/js/main.js | 33 ++---- 2 files changed, 85 insertions(+), 100 deletions(-) diff --git a/extension-src/chrome/js/feedback.js b/extension-src/chrome/js/feedback.js index cd0d06c..13b0fa2 100644 --- a/extension-src/chrome/js/feedback.js +++ b/extension-src/chrome/js/feedback.js @@ -1,89 +1,89 @@ var textBox, radioButton, course, prof, profCounter = 0, courseCounter = 0, profListening = false, courseListening = false; -browser.runtime.sendMessage({ - request: "getStatusOfAll&FeedbackType", -}).then((preference) => { - function sleep(ms) { - return new Promise(resolve => setTimeout(resolve, ms)); - } - - const fill_form = () => { - textBox = document.getElementById('myframe').contentDocument.querySelectorAll('textarea'); - radioButton = document.getElementById('myframe').contentDocument.querySelectorAll('input[type="radio"]'); - prof = document.getElementById('myframe').contentDocument.querySelectorAll('input[name="check"]'); - - if (textBox.length == 5) { - switch (preference.feedback) { - case "positive": - positive_theory_feedback(); - break; - case "neutral": - neutral_theory_feedback(); - break; - case "negative": - negative_theory_feedback(); - break; - } +chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { + if (request.action == "getStatusOfAll&FeedbackType") { + function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); } - else { - switch (preference.feedback) { - case "positive": - positive_lab_feedback(); - break; - case "neutral": - neutral_lab_feedback(); - break; - case "negative": - negative_lab_feedback(); - break; + + const fill_form = () => { + textBox = document.getElementById('myframe').contentDocument.querySelectorAll('textarea'); + radioButton = document.getElementById('myframe').contentDocument.querySelectorAll('input[type="radio"]'); + prof = document.getElementById('myframe').contentDocument.querySelectorAll('input[name="check"]'); + + if (textBox.length == 5) { + switch (request.preference) { + case "positive": + positive_theory_feedback(); + break; + case "neutral": + neutral_theory_feedback(); + break; + case "negative": + negative_theory_feedback(); + break; + } } - } - }; - - try { - if (!preference.all) { - fill_form(); - } else { - const handleProf = () => { - prof = document.getElementById('myframe').contentDocument.querySelectorAll('input[name="check"]'); - prof[profCounter].click(); profCounter++; - - submitButton = document.getElementById('myframe').contentDocument.getElementById('sub'); - if (submitButton != null){ - fill_form(); - // To bypass confirm() prompt - submitButton.setAttribute("onclick", "document.form1.method = 'POST'; document.form1.action = 'rev_feed_submit.jsp'; document.form1.submit();") - - if (profCounter < prof.length) { - submitButton.addEventListener("click", async () => { - await sleep(3000); - handleProf(); - }) + else { + switch (preference.feedback) { + case "positive": + positive_lab_feedback(); + break; + case "neutral": + neutral_lab_feedback(); + break; + case "negative": + negative_lab_feedback(); + break; + } + } + }; + + try { + if (!request.all) { + fill_form(); + } else { + const handleProf = () => { + prof = document.getElementById('myframe').contentDocument.querySelectorAll('input[name="check"]'); + prof[profCounter].click(); profCounter++; + + submitButton = document.getElementById('myframe').contentDocument.getElementById('sub'); + if (submitButton != null){ + fill_form(); + // To bypass confirm() prompt + submitButton.setAttribute("onclick", "document.form1.method = 'POST'; document.form1.action = 'rev_feed_submit.jsp'; document.form1.submit();") + + if (profCounter < prof.length) { + submitButton.addEventListener("click", async () => { + await sleep(3000); + handleProf(); + }) + } else { + submitButton.addEventListener("click", async () => { + await sleep(3000); + handleCourse(); + }) + } } else { - submitButton.addEventListener("click", async () => { - await sleep(3000); - handleCourse(); - }) + if (profCounter < prof.length) handleProf(); + else handleCourse(); } - } else { - if (profCounter < prof.length) handleProf(); - else handleCourse(); - } - }; + }; - const handleCourse = () => { - course = document.getElementById('myframe').contentDocument.querySelectorAll('a[href="javascript:void(0)"]'); - if (courseCounter == course.length) return; - course[courseCounter].click(); courseCounter++; + const handleCourse = () => { + course = document.getElementById('myframe').contentDocument.querySelectorAll('a[href="javascript:void(0)"]'); + if (courseCounter == course.length) return; + course[courseCounter].click(); courseCounter++; - profCounter = 0; handleProf(); - }; + profCounter = 0; handleProf(); + }; - handleCourse(); + handleCourse(); + } + } catch (err) { + console.error(err); } - } catch (err) { - console.error(err); - } + } }); function positive_theory_feedback() { diff --git a/extension-src/chrome/js/main.js b/extension-src/chrome/js/main.js index 650ca8a..d40678e 100644 --- a/extension-src/chrome/js/main.js +++ b/extension-src/chrome/js/main.js @@ -14,39 +14,24 @@ var feedback; positiveFeedbackButton.addEventListener("click", () => { feedback = "positive"; - browser.runtime.onMessage.addListener((request, sender, sendResponse) => { - if (request.request == "getStatusOfAll&FeedbackType") - sendResponse({ - all: isChecked, - feedback: feedback - }); + chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { + chrome.tabs.sendMessage(tabs[0].id, {action: "getStatusOfAll&FeedbackType", preference: feedback, all: isChecked}); }); - browser.tabs.executeScript({ file: "/js/feedback.js" }) - browser.runtime.onMessage.removeListener((request, sender, sendResponse) => {}); + chrome.tabs.executeScript({ file: "/js/feedback.js" }) }); neutralFeedbackButton.addEventListener("click", () => { feedback = "neutral"; - browser.runtime.onMessage.addListener((request, sender, sendResponse) => { - if (request.request == "getStatusOfAll&FeedbackType") - sendResponse({ - all: isChecked, - feedback: feedback - }); + chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { + chrome.tabs.sendMessage(tabs[0].id, {action: "getStatusOfAll&FeedbackType", preference: feedback, all: isChecked}); }); - browser.tabs.executeScript({ file: "/js/feedback.js" }) - browser.runtime.onMessage.removeListener((request, sender, sendResponse) => {}); + chrome.tabs.executeScript({ file: "/js/feedback.js" }) }); negativeFeedbackButton.addEventListener("click", () => { feedback = "negative"; - browser.runtime.onMessage.addListener((request, sender, sendResponse) => { - if (request.request == "getStatusOfAll&FeedbackType") - sendResponse({ - all: isChecked, - feedback: feedback - }); + chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { + chrome.tabs.sendMessage(tabs[0].id, {action: "getStatusOfAll&FeedbackType", preference: feedback, all: isChecked}); }); - browser.tabs.executeScript({ file: "/js/feedback.js" }) - browser.runtime.onMessage.removeListener((request, sender, sendResponse) => {}); + chrome.tabs.executeScript({ file: "/js/feedback.js" }) });