Skip to content

Commit

Permalink
feat: single form filling
Browse files Browse the repository at this point in the history
  • Loading branch information
proffapt committed Apr 9, 2023
1 parent 6dab514 commit 08470c4
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 100 deletions.
152 changes: 76 additions & 76 deletions extension-src/chrome/js/feedback.js
Original file line number Diff line number Diff line change
@@ -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() {
Expand Down
33 changes: 9 additions & 24 deletions extension-src/chrome/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -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" })
});

0 comments on commit 08470c4

Please sign in to comment.