Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: static/js/uninstalled.js

Issue 29611624: Issue 6047 - Updated templates and uninstalled pages (Closed) Base URL: https://hg.adblockplus.org/web.adblockplus.org
Patch Set: Addressed comments in #15 Created Dec. 18, 2017, 12:55 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « static/css/uninstalled.css ('k') | templates/default.tmpl » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: static/js/uninstalled.js
===================================================================
new file mode 100644
--- /dev/null
+++ b/static/js/uninstalled.js
@@ -0,0 +1,93 @@
+ (function()
+ {
+ var adblockersList = null;
+ function toggleView(element)
+ {
+ var targetId = element.getAttribute("data-toggle-view");
+ if (targetId)
+ document.getElementById(targetId).classList.toggle("hidden");
+ }
+
+ function checkSelectedAdblocker()
+ {
+ var selectedOption = adblockersList[adblockersList.selectedIndex];
+ var element = selectedOption.getAttribute("data-show-element");
+ if (element)
+ document.getElementById(element).classList.remove("hidden");
+ else
+ {
+ element = selectedOption.getAttribute("data-hide-element");
+ document.getElementById(element).classList.add("hidden");
+ }
+ }
+
+ function init()
+ {
+ var form = document.getElementById("reasons-form");
+
+ // Create hidden input for GET parameters
+ window.location.search.substr(1).split("&").forEach(function(param)
+ {
+ if (!/.=./.test(param))
+ return;
+
+ var paramSplit = param.split("=");
+ var input = document.createElement("input");
+ input.setAttribute("type", "hidden");
+ input.setAttribute("name", decodeURIComponent(paramSplit[0]));
+ input.setAttribute("value", decodeURIComponent(paramSplit[1]));
+ form.appendChild(input);
+ });
+
+ // Randomly add reasons
+ var reasonsContainer = document.getElementById("reasons");
+ var reasons = document.querySelectorAll("#reasons > li");
+ reasons = Array.prototype.slice.call(reasons);
+ reasonsContainer.innerHTML = "";
+ while (reasons.length)
+ {
+ var randomIndex = Math.floor(Math.random() * (reasons.length -1));
+ var reasonElement = reasons.splice(randomIndex, 1)[0];
+ reasonsContainer.appendChild(reasonElement);
+ var checkbox = reasonElement.querySelector("input[type=checkbox]");
+ if (checkbox.checked)
+ toggleView(checkbox);
+
+ checkbox.addEventListener("change", function(event)
+ {
+ toggleView(event.target);
+ }, false);
+ }
+
+ adblockersList = document.querySelector("#adblockers select");
+ adblockersList.addEventListener("change", function()
+ {
+ checkSelectedAdblocker();
+ }, false);
+ checkSelectedAdblocker();
+
+ var reasonOtherInput = document.getElementById("reason-other-input");
+ var maxLength = reasonOtherInput.getAttribute("maxlength");
+ var charCounter = document.getElementById("characters-countdown");
+ charCounter.textContent = maxLength;
+ reasonOtherInput.addEventListener("keyup", function()
+ {
+ charCounter.textContent = maxLength - reasonOtherInput.value.length;
+ }, false);
+
+ var submitButton = document.getElementById("reason-submit");
+ submitButton.addEventListener("click", function(event)
+ {
+ if (!document.querySelector("ul input:checked"))
+ {
+ event.preventDefault();
+ form.setAttribute("class", "error");
+ }
+ else
+ {
+ form.submit();
+ }
+ }, false);
+ }
+ document.addEventListener("DOMContentLoaded", init, false);
+ })();
« no previous file with comments | « static/css/uninstalled.css ('k') | templates/default.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld