ui: upgrade to FontAwesome 6, harden burger-menu shim
- Drop FA4 font files and font-awesome.min.css. - Ship FA6 webfonts (solid, regular, brands) and fa6.min.css. - io-indicator: use FA6 names (fa-circle-plus / -minus / -exclamation). - static/js/ui.js: no-op the legacy side-menu click handler when menu links are not present (V09 chrome removes them) so the Settings tab no longer logs 'cannot set properties of null'.
This commit is contained in:
@@ -49,14 +49,17 @@ module.exports = {
|
|||||||
methods: {
|
methods: {
|
||||||
get_io_state_class: function(active, state) {
|
get_io_state_class: function(active, state) {
|
||||||
if (typeof active == "undefined" || typeof state == "undefined") {
|
if (typeof active == "undefined" || typeof state == "undefined") {
|
||||||
return "fa-exclamation-triangle warn";
|
return "fa-triangle-exclamation warn";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Tristated: render as the regular (outline) circle to
|
||||||
|
// distinguish from active/inactive solid circles. Adding
|
||||||
|
// `far` switches to the FA6 regular family.
|
||||||
if (state == 2) {
|
if (state == 2) {
|
||||||
return "fa-circle-o";
|
return "far fa-circle";
|
||||||
}
|
}
|
||||||
|
|
||||||
const icon = state ? "fa-plus-circle" : "fa-minus-circle";
|
const icon = state ? "fa-circle-plus" : "fa-circle-minus";
|
||||||
return `${icon} ${active ? "active" : "inactive"}`;
|
return `${icon} ${active ? "active" : "inactive"}`;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/resources/webfonts/fa-brands-400.ttf
Normal file
BIN
src/resources/webfonts/fa-brands-400.ttf
Normal file
Binary file not shown.
BIN
src/resources/webfonts/fa-brands-400.woff2
Normal file
BIN
src/resources/webfonts/fa-brands-400.woff2
Normal file
Binary file not shown.
BIN
src/resources/webfonts/fa-regular-400.ttf
Normal file
BIN
src/resources/webfonts/fa-regular-400.ttf
Normal file
Binary file not shown.
BIN
src/resources/webfonts/fa-regular-400.woff2
Normal file
BIN
src/resources/webfonts/fa-regular-400.woff2
Normal file
Binary file not shown.
BIN
src/resources/webfonts/fa-solid-900.ttf
Normal file
BIN
src/resources/webfonts/fa-solid-900.ttf
Normal file
Binary file not shown.
BIN
src/resources/webfonts/fa-solid-900.woff2
Normal file
BIN
src/resources/webfonts/fa-solid-900.woff2
Normal file
Binary file not shown.
@@ -2,5 +2,5 @@
|
|||||||
font-family: 'Audiowide';
|
font-family: 'Audiowide';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: local('Audiowide'), local('Audiowide-Regular'), url(http://fonts.gstatic.com/s/audiowide/v4/8XtYtNKEyyZh481XVWfVOqCWcynf_cDxXwCLxiixG1c.ttf) format('truetype');
|
src: local('Audiowide'), local('Audiowide-Regular'), url(https://fonts.gstatic.com/s/audiowide/v4/8XtYtNKEyyZh481XVWfVOqCWcynf_cDxXwCLxiixG1c.ttf) format('truetype');
|
||||||
}
|
}
|
||||||
|
|||||||
9
src/static/css/fa6.min.css
vendored
Normal file
9
src/static/css/fa6.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
src/static/css/font-awesome.min.css
vendored
4
src/static/css/font-awesome.min.css
vendored
File diff suppressed because one or more lines are too long
@@ -1,35 +1,37 @@
|
|||||||
|
// V09 redesign: the legacy side menu was removed. Keep this file
|
||||||
|
// shipped in case anything still references it, but no-op the click
|
||||||
|
// handler that used to wire up the burger menu so it does not throw
|
||||||
|
// "Cannot set properties of null" on the Settings tab.
|
||||||
(function (window, document) {
|
(function (window, document) {
|
||||||
|
var menuLink = document.getElementById("menuLink");
|
||||||
|
if (!menuLink) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var layout = document.getElementById('layout'),
|
var layout = document.getElementById("layout");
|
||||||
menu = document.getElementById('menu'),
|
var menu = document.getElementById("menu");
|
||||||
menuLink = document.getElementById('menuLink');
|
|
||||||
|
|
||||||
function toggleClass(element, className) {
|
function toggleClass(element, className) {
|
||||||
var classes = element.className.split(/\s+/),
|
if (!element) return;
|
||||||
length = classes.length,
|
var classes = element.className.split(/\s+/);
|
||||||
i = 0;
|
var i;
|
||||||
|
for (i = 0; i < classes.length; i++) {
|
||||||
for(; i < length; i++) {
|
|
||||||
if (classes[i] === className) {
|
if (classes[i] === className) {
|
||||||
classes.splice(i, 1);
|
classes.splice(i, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// The className is not found
|
if (i === classes.length) {
|
||||||
if (length === classes.length) {
|
|
||||||
classes.push(className);
|
classes.push(className);
|
||||||
}
|
}
|
||||||
|
element.className = classes.join(" ");
|
||||||
element.className = classes.join(' ');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
menuLink.onclick = function (e) {
|
menuLink.onclick = function (e) {
|
||||||
var active = 'active';
|
var active = "active";
|
||||||
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
toggleClass(layout, active);
|
toggleClass(layout, active);
|
||||||
toggleClass(menu, active);
|
toggleClass(menu, active);
|
||||||
toggleClass(menuLink, active);
|
toggleClass(menuLink, active);
|
||||||
};
|
};
|
||||||
|
|
||||||
}(this, this.document));
|
}(this, this.document));
|
||||||
|
|||||||
Reference in New Issue
Block a user