summaryrefslogtreecommitdiff
path: root/gitweb/static/js/lib/common-lib.js
diff options
context:
space:
mode:
authorJohn 'Warthog9' Hawley <warthog9@eaglescrag.net>2011-04-28 19:04:10 (GMT)
committerJunio C Hamano <gitster@pobox.com>2011-05-24 18:22:45 (GMT)
commit2ae8da2552f43802476676bb86b037e9028b7a7c (patch)
tree7601b996a962534129e32f0ed0d497f589bad474 /gitweb/static/js/lib/common-lib.js
parent291e52bd19877dc8fdd77079ba4c4326f114c461 (diff)
downloadgit-2ae8da2552f43802476676bb86b037e9028b7a7c.zip
git-2ae8da2552f43802476676bb86b037e9028b7a7c.tar.gz
git-2ae8da2552f43802476676bb86b037e9028b7a7c.tar.bz2
gitweb.js: Add UI for selecting common timezone to display dates
This will modify HTML, add CSS rules and add DOM event handlers so that clicking on any date (the common part, not the localtime part) will display a drop down menu to choose the timezone to change to. Currently menu displays only the following timezones: utc local -1200 -1100 ... +1100 +1200 +1300 +1400 In timezone selection menu each timezone is +1hr to the previous. The code is capable of handling fractional timezones, but those have not been added to the menu. All changes are saved to a cookie, so page changes and closing / reopening browser retains the last known timezone setting used. [jn: Changed from innerHTML to DOM, moved to event delegation for onclick to trigger menu, added close button and cookie refreshing] Helped-by: Kevin Cernekee <cernekee@gmail.com> Signed-off-by: John 'Warthog9' Hawley <warthog9@eaglescrag.net> Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'gitweb/static/js/lib/common-lib.js')
-rw-r--r--gitweb/static/js/lib/common-lib.js27
1 files changed, 26 insertions, 1 deletions
diff --git a/gitweb/static/js/lib/common-lib.js b/gitweb/static/js/lib/common-lib.js
index b371391..018bbb7 100644
--- a/gitweb/static/js/lib/common-lib.js
+++ b/gitweb/static/js/lib/common-lib.js
@@ -64,7 +64,7 @@ function padLeft(input, width, ch) {
/* ............................................................ */
-/* Ajax */
+/* Handling browser incompatibilities */
/**
* Create XMLHttpRequest object in cross-browser way
@@ -88,6 +88,31 @@ function createRequestObject() {
}
+/**
+ * Insert rule giving specified STYLE to given SELECTOR at the end of
+ * first CSS stylesheet.
+ *
+ * @param {String} selector: CSS selector, e.g. '.class'
+ * @param {String} style: rule contents, e.g. 'background-color: red;'
+ */
+function addCssRule(selector, style) {
+ var stylesheet = document.styleSheets[0];
+
+ var theRules = [];
+ if (stylesheet.cssRules) { // W3C way
+ theRules = stylesheet.cssRules;
+ } else if (stylesheet.rules) { // IE way
+ theRules = stylesheet.rules;
+ }
+
+ if (stylesheet.insertRule) { // W3C way
+ stylesheet.insertRule(selector + ' { ' + style + ' }', theRules.length);
+ } else if (stylesheet.addRule) { // IE way
+ stylesheet.addRule(selector, style);
+ }
+}
+
+
/* ............................................................ */
/* Support for legacy browsers */