diff options
| -rw-r--r-- | TODO | 5 | ||||
| -rw-r--r-- | better-scrumdo-background.js | 13 | ||||
| -rw-r--r-- | better-scrumdo.js | 9 | ||||
| -rw-r--r-- | manifest.json | 2 | ||||
| -rw-r--r-- | options.html | 22 | ||||
| -rw-r--r-- | options.js | 25 |
6 files changed, 76 insertions, 0 deletions
@@ -1,6 +1,11 @@ TODO ==== +# 2013.02.24: +v Add a Chrome options panel to allow users to select the refresh interval +- If you press numbers and then Enter in a short enough amount of time, the + story corresponding to the numbers you typed in gets selected + # 2013.02.23: > Create mechanism to select stories on board using arrow keys v Use 'i' key (or other that makes sense) to bring up story info/edit modal diff --git a/better-scrumdo-background.js b/better-scrumdo-background.js index faec893..9082913 100644 --- a/better-scrumdo-background.js +++ b/better-scrumdo-background.js @@ -17,4 +17,17 @@ } }); }); + + + // set interval value + chrome.extension.onMessage.addListener( + function(request, sender, send_response) { + if (request.get_option) { + resp_hash = {}; + resp_hash[request.get_option] = localStorage[request.get_option]; + + send_response(resp_hash); + } + } + ); })();
\ No newline at end of file diff --git a/better-scrumdo.js b/better-scrumdo.js index d2c4b2a..ce4196c 100644 --- a/better-scrumdo.js +++ b/better-scrumdo.js @@ -25,6 +25,15 @@ } ); + // Set reload interval to user-defined interval + chrome.extension.sendMessage({ get_option: 'refresh_interval' }, function(response) { + if (response.refresh_interval) { + clear_reload_interval(); + RELOAD_INTERVAL = response.refresh_interval * 1000; + set_reload_interval(); + } + }); + var set_reload_interval = function() { reload_interval_obj = window.setInterval(reload_page, RELOAD_INTERVAL); }; diff --git a/manifest.json b/manifest.json index 7f9142b..8dab69a 100644 --- a/manifest.json +++ b/manifest.json @@ -17,6 +17,8 @@ "css": ["better-scrumdo.css"] } ], + + "options_page": "options.html", "permissions": [ "*://*.scrumdo.com/", diff --git a/options.html b/options.html new file mode 100644 index 0000000..083f5ba --- /dev/null +++ b/options.html @@ -0,0 +1,22 @@ +<html> +<head> + <title>ScrumDo Trellic Options</title> +</head> + +<body> + <h1>ScrumDo Trellic Options</h1> + + <div> + <label for="refresh-interval">Refresh Interval: </label> + <input type="text" id="refresh-interval" name="refresh-interval" /> + in seconds (default: 60) + </div> + + <br> + <div id="status"></div> + <button id="save">Save</button> +</body> + +<script src="options.js"></script> + +</html>
\ No newline at end of file diff --git a/options.js b/options.js new file mode 100644 index 0000000..f3c3f4a --- /dev/null +++ b/options.js @@ -0,0 +1,25 @@ +// Saves options to localStorage. +function save_options() { + var refresh_interval_el = document.getElementById("refresh-interval"); + var refresh_interval = refresh_interval_el.value; + localStorage["refresh_interval"] = refresh_interval; + + // Update status to let user know options were saved. + var status = document.getElementById("status"); + status.innerHTML = "Options Saved."; + setTimeout(function() { + status.innerHTML = ""; + }, 750); +} + +// Restores select box state to saved value from localStorage. +function restore_options() { + var refresh_interval = localStorage["refresh_interval"]; + if (!refresh_interval) { + return; + } + var refresh_interval_el = document.getElementById("refresh-interval"); + refresh_interval_el.value = refresh_interval; +} +document.addEventListener('DOMContentLoaded', restore_options); +document.querySelector('#save').addEventListener('click', save_options); |
