aboutsummaryrefslogtreecommitdiff
path: root/html/preferences_panel
diff options
context:
space:
mode:
Diffstat (limited to 'html/preferences_panel')
-rw-r--r--html/preferences_panel/pref.js56
-rw-r--r--html/preferences_panel/preferences_panel.html63
2 files changed, 119 insertions, 0 deletions
diff --git a/html/preferences_panel/pref.js b/html/preferences_panel/pref.js
new file mode 100644
index 0000000..aa88f5d
--- /dev/null
+++ b/html/preferences_panel/pref.js
@@ -0,0 +1,56 @@
+/**
+*
+* Sets global variable "webex" to either "chrome" or "browser" for
+* use on Chrome or a Firefox variant.
+*
+* Change this to support a new browser that isn't Chrome or Firefox,
+* given that it supports webExtensions.
+*
+* (Use the variable "webex" for all API calls after calling this)
+*/
+var store;
+function set_webex(){
+ if(typeof(browser) == "undefined"){
+ webex = chrome;
+ } else{
+ webex = browser;
+ }
+}
+set_webex();
+
+function storage_got(items){
+ var inputs = document.getElementsByTagName("input");
+ for(var i = 0; i < inputs.length; i++){
+ if(inputs[i].id.indexOf("pref_") != -1){
+ if(inputs[i].type == "checkbox" && items[inputs[i].id]){
+ inputs[i].checked = true;
+ }
+ if(inputs[i].type == "text"){
+ inputs[i].value = items[inputs[i].id];
+ }
+ }
+ }
+}
+webex.storage.local.get(storage_got);
+
+document.getElementById("save_changes").addEventListener("click", function(){
+ var inputs = document.getElementsByTagName("input");
+ // TODO: validate/sanitize the user inputs
+ var data = {};
+ for(var i = 0; i < inputs.length; i++){
+ if(inputs[i].id.indexOf("pref_") != -1){
+ var input_val = "";
+ if(inputs[i].type == "checkbox"){
+ input_val = inputs[i].checked;
+ } else{
+ input_val = inputs[i].value;
+ }
+ var input_id = inputs[i].id;
+ data[input_id] = input_val;
+ }
+ }
+ console.log(data);
+ webex.storage.local.set(data);
+});
+
+
diff --git a/html/preferences_panel/preferences_panel.html b/html/preferences_panel/preferences_panel.html
new file mode 100644
index 0000000..5c5a217
--- /dev/null
+++ b/html/preferences_panel/preferences_panel.html
@@ -0,0 +1,63 @@
+<html>
+ <head>
+<!-- /**
+ * GNU LibreJS - A browser add-on to block nonfree nontrivial JavaScript.
+ * *
+ * Copyright (C) 2011, 2012, 2014 Loic J. Duros
+ * Copyright (C) 2014, 2015 Nik Nyby
+ *
+ * This file is part of GNU LibreJS.
+ *
+ * GNU LibreJS is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GNU LibreJS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU LibreJS. If not, see <http://www.gnu.org/licenses/>.
+ */
+-->
+ <title>
+ LibreJS preferences
+ </title>
+ </head>
+
+ <body>
+ <h3>
+ LibreJS Preferences
+ </h3>
+
+ <table>
+ <tr>
+ <td><p>Whitelist domains, seperated by comma (wildcard is *)</p></td>
+ <td><input id="pref_whitelist" type="text"></input></td>
+ </tr>
+ <tr>
+ <td><p>Display complaint tab on sites where nonfree nontrivial Javascript detected</p></td>
+ <td><input id="pref_complaint_tab" type="checkbox"></input></td>
+ </tr>
+ <tr>
+ <td><p>Display notifications of the JavaScript code being analyzed by LibreJS</p></td>
+ <td><input id="pref_notify_analyze" type="checkbox"></input></td>
+ </tr>
+ <tr>
+ <td><p>Default complaint email subject</p></td>
+ <td><input id="pref_subject" type="text"></input></td>
+ </tr>
+ <tr>
+ <td><p>Default complaint email body</p></td>
+ <td><input id="pref_body" type="text"></input></td>
+ </tr>
+ <tr>
+ <td><input type="button" value="Save changes" id="save_changes"></input></td>
+ <td></td>
+ </tr>
+ </table>
+ <script type="text/javascript" src="pref.js"></script>
+ </body>
+</html>