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

Side by Side Diff: static/js/main.js

Issue 29551738: Issue 5634 - Replaced logo and refactored navbar width and colors (Closed) Base URL: https://hg.adblockplus.org/web.adblockplus.org
Patch Set: Moved irrelivant IE CSS from main.css to main-desktop.css where it was originally Created Oct. 10, 2017, 5:37 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 "use strict"; 1 "use strict";
2 2
3 (function() 3 (function()
4 { 4 {
5 function escapeRegExp(string) 5 function escapeRegExp(string)
6 { 6 {
7 return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); 7 return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
8 } 8 }
9 9
10 function hasClass(element, className) 10 function hasClass(element, className)
(...skipping 29 matching lines...) Expand all
40 { 40 {
41 if (typeof window.event !== "undefined" 41 if (typeof window.event !== "undefined"
42 && typeof window.event.cancelBubble !== "undefined") 42 && typeof window.event.cancelBubble !== "undefined")
43 window.event.cancelBubble = true; 43 window.event.cancelBubble = true;
44 else 44 else
45 event.stopPropagation(); 45 event.stopPropagation();
46 } 46 }
47 47
48 function initLanguageSelection() 48 function initLanguageSelection()
49 { 49 {
50 var language = document.getElementById("language"); 50 var locale = document.getElementById("navbar-locale-selected");
51 51
52 // skip if page does not have language selection (EG: blog) 52 // skip if page does not have language selection (EG: blog)
53 if (!language) 53 if (!locale)
54 return; 54 return;
55 55
56 var languageSelection = language.getElementsByTagName("ul")[0]; 56 locale.onclick = function()
57
58 document.documentElement.onclick = function()
59 { 57 {
60 removeClass(languageSelection, "visible"); 58 toggleClass(document.getElementById("navbar-locale-menu"), "visible");
61 };
62
63 language.onclick = function(event)
64 {
65 if (hasClass(languageSelection, "visible"))
66 return;
67
68 addClass(languageSelection, "visible");
69 stopPropagation(event);
70 }; 59 };
71 } 60 }
72 61
73 function navigationClick(event) 62 function navigationClick(event)
74 { 63 {
75 var element = event.target; 64 toggleClass(document.getElementById("navbar-menu"), "visible");
76 while (true)
77 {
78 if (!element)
79 return;
80
81 if (hasClass(element, "selected") || element.id == "hamburger")
82 {
83 if ("querySelector" in document)
84 {
85 event.preventDefault();
86 toggleClass(document.querySelector("header nav > ul"), "visible");
87 }
88 return false;
89 }
90 element = element.parentElement;
91 }
92 } 65 }
93 66
94 function initMenu() 67 function initMenu()
95 { 68 {
96 if ("querySelector" in document) 69 document.getElementById("navbar-menu-toggle").onclick = navigationClick;
97 document.querySelector("header nav").onclick = navigationClick;
98 } 70 }
99 71
100 function initFooterSection(section) 72 function initFooterSection(section)
101 { 73 {
102 var header = section.getElementsByTagName("h1")[0]; 74 var header = section.getElementsByTagName("h1")[0];
103 header.onclick = function() 75 header.onclick = function()
104 { 76 {
105 toggleClass(section, "visible"); 77 toggleClass(section, "visible");
106 }; 78 };
107 } 79 }
108 80
109 function initFooter() 81 function initFooter()
110 { 82 {
111 var footerContent = document.getElementById("footer-content"); 83 var footerContent = document.getElementById("footer-content");
112 var footerNav = footerContent.getElementsByTagName("nav")[0]; 84 var footerNav = footerContent.getElementsByTagName("nav")[0];
113 var footerNavSections = footerNav.getElementsByTagName("section"); 85 var footerNavSections = footerNav.getElementsByTagName("section");
114 86
115 for (var i = 0; i < footerNavSections.length; i++) 87 for (var i = 0; i < footerNavSections.length; i++)
116 { 88 {
117 var section = footerNavSections[i]; 89 var section = footerNavSections[i];
118 initFooterSection(section); 90 initFooterSection(section);
119 } 91 }
120 } 92 }
121 93
122 initLanguageSelection(); 94 initLanguageSelection();
123 initMenu(); 95 initMenu();
124 initFooter(); 96 initFooter();
125 })(); 97 })();
OLDNEW
« static/css/main.css ('K') | « static/img/navbar-logo.svg ('k') | templates/default.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld