new web page added and weather api key save added
This commit is contained in:
@@ -237,16 +237,9 @@ def update():
|
|||||||
os.system("sudo reboot now")
|
os.system("sudo reboot now")
|
||||||
return index()
|
return index()
|
||||||
|
|
||||||
@app.route("/display_format", methods = ['PUT', 'POST', 'GET'])
|
@app.route("/restart", methods=['PUT','POST'])
|
||||||
def display_format():
|
def restart():
|
||||||
global professional
|
os.system("sudo reboot now")
|
||||||
data = str(request.data)
|
|
||||||
if "Standard" in data:
|
|
||||||
professional = False
|
|
||||||
elif "Professional" in data:
|
|
||||||
professional = True
|
|
||||||
|
|
||||||
print(professional)
|
|
||||||
return index()
|
return index()
|
||||||
|
|
||||||
@app.route("/save", methods = ['PUT', 'POST', 'GET'])
|
@app.route("/save", methods = ['PUT', 'POST', 'GET'])
|
||||||
@@ -449,6 +442,26 @@ def hostname():
|
|||||||
return index()
|
return index()
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/saveWeatherAPIKey", methods = ['PUT', 'POST'])
|
||||||
|
def saveWeatherAPIKey():
|
||||||
|
|
||||||
|
data= request.data.decode('utf-8')
|
||||||
|
settings = json.loads(data)
|
||||||
|
|
||||||
|
key = settings['api_key']
|
||||||
|
print(key)
|
||||||
|
with open('./api_keys.txt') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
if len(lines) == 1:
|
||||||
|
lines.append(str(key))
|
||||||
|
elif len(lines) == 2:
|
||||||
|
lines[1] = str(key)
|
||||||
|
print(lines)
|
||||||
|
with open('./api_keys.txt', 'w') as f:
|
||||||
|
for line in lines:
|
||||||
|
f.write(line)
|
||||||
|
return index()
|
||||||
|
|
||||||
@app.route("/screensaver", methods = ['PUT', 'POST'])
|
@app.route("/screensaver", methods = ['PUT', 'POST'])
|
||||||
def screensaver():
|
def screensaver():
|
||||||
global displaying_screensaver
|
global displaying_screensaver
|
||||||
@@ -516,7 +529,6 @@ def save_trade_settings(input_settings):
|
|||||||
current_settings['percent'] = input_settings['percent']
|
current_settings['percent'] = input_settings['percent']
|
||||||
current_settings['point'] = input_settings['point']
|
current_settings['point'] = input_settings['point']
|
||||||
current_settings['logos'] = input_settings['logos']
|
current_settings['logos'] = input_settings['logos']
|
||||||
current_settings['chart'] = input_settings['chart']
|
|
||||||
current_settings['title'] = input_settings['title']
|
current_settings['title'] = input_settings['title']
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+157
-65
@@ -345,11 +345,11 @@ const addEventOnFeaturesList = () => {
|
|||||||
availableFeature.setAttribute("class", "");
|
availableFeature.setAttribute("class", "");
|
||||||
} else {
|
} else {
|
||||||
availableFeature.setAttribute("class", "active");
|
availableFeature.setAttribute("class", "active");
|
||||||
let getCustomImages = JSON.parse(
|
// let getCustomImages = JSON.parse(
|
||||||
localStorage.getItem("customImages")
|
// localStorage.getItem("customImages")
|
||||||
);
|
// );
|
||||||
let getCustomGifs = JSON.parse(localStorage.getItem("customGifs"));
|
// let getCustomGifs = JSON.parse(localStorage.getItem("customGifs"));
|
||||||
let getCustomMsg = JSON.parse(localStorage.getItem("customMsg"));
|
// let getCustomMsg = JSON.parse(localStorage.getItem("customMsg"));
|
||||||
|
|
||||||
getCustomImages.map((value) => {
|
getCustomImages.map((value) => {
|
||||||
let scrollSpeed1 = document.getElementById("inputScrollSpeed11");
|
let scrollSpeed1 = document.getElementById("inputScrollSpeed11");
|
||||||
@@ -484,34 +484,37 @@ allFeaturesRemoveBtns.map((value, index) => {
|
|||||||
value.addEventListener("click", () => {
|
value.addEventListener("click", () => {
|
||||||
for (let i = 0; i < allFeaturesList[index].length; i++) {
|
for (let i = 0; i < allFeaturesList[index].length; i++) {
|
||||||
var item = allFeaturesList[index][i];
|
var item = allFeaturesList[index][i];
|
||||||
|
console.log(item);
|
||||||
if (item.getAttribute("class") == "active") {
|
if (item.getAttribute("class") == "active") {
|
||||||
if (item.parentElement.getAttribute("id") == "images-features") {
|
if (item.parentElement.getAttribute("id") == "images-features") {
|
||||||
let getImages = JSON.parse(localStorage.getItem("customImages"));
|
// let getImages = JSON.parse(localStorage.getItem("customImages"));
|
||||||
|
|
||||||
let filter = getImages.filter(
|
let filter = getImages.filter(
|
||||||
(value) => value.fileName !== item.innerText
|
(value) => value.fileName !== item.innerText
|
||||||
);
|
);
|
||||||
localStorage.setItem("customImages", JSON.stringify(filter));
|
// localStorage.setItem("customImages", JSON.stringify(filter));
|
||||||
} else if (item.parentElement.getAttribute("id") == "gifs-features") {
|
} else if (item.parentElement.getAttribute("id") == "gifs-features") {
|
||||||
let getGifs = JSON.parse(localStorage.getItem("customGifs"));
|
// let getGifs = JSON.parse(localStorage.getItem("customGifs"));
|
||||||
|
|
||||||
let filter = getGifs.filter(
|
let filter = getGifs.filter(
|
||||||
(value) => value.fileName !== item.innerText
|
(value) => value.fileName !== item.innerText
|
||||||
);
|
);
|
||||||
localStorage.setItem("customGifs", JSON.stringify(filter));
|
// localStorage.setItem("customGifs", JSON.stringify(filter));
|
||||||
} else if (
|
} else if (
|
||||||
item.parentElement.getAttribute("id") == "messages-features"
|
item.parentElement.getAttribute("id") == "messages-features"
|
||||||
) {
|
) {
|
||||||
let getMsgs = JSON.parse(localStorage.getItem("customMsg"));
|
// let getMsgs = JSON.parse(localStorage.getItem("customMsg"));
|
||||||
|
|
||||||
let filter = getMsgs.filter(
|
let filter = getMsgs.filter(
|
||||||
(value) => value.messageName !== item.innerText
|
(value) => value.messageName !== item.innerText
|
||||||
);
|
);
|
||||||
localStorage.setItem("customMsg", JSON.stringify(filter));
|
// localStorage.setItem("customMsg", JSON.stringify(filter));
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
item.remove();
|
item.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -727,6 +730,26 @@ var allFeaturesTextAddBtn = [
|
|||||||
messagesTextAddBtn,
|
messagesTextAddBtn,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
var allFeaturesLimit = [
|
||||||
|
200,
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
20,
|
||||||
|
20,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
20,
|
||||||
|
20,
|
||||||
|
20,
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
allFeaturesTextAddBtn.map((value, index) => {
|
allFeaturesTextAddBtn.map((value, index) => {
|
||||||
if (value !== null) {
|
if (value !== null) {
|
||||||
value.addEventListener("click", () => {
|
value.addEventListener("click", () => {
|
||||||
@@ -766,27 +789,45 @@ allFeaturesTextAddBtn.map((value, index) => {
|
|||||||
displayCheck,
|
displayCheck,
|
||||||
};
|
};
|
||||||
|
|
||||||
let getCustomMsg = localStorage.getItem("customMsg");
|
// let getCustomMsg = localStorage.getItem("customMsg");
|
||||||
|
|
||||||
let newValues = getCustomMsg && JSON.parse(getCustomMsg);
|
let newValues = getCustomMsg && JSON.parse(getCustomMsg);
|
||||||
getCustomMsg && newValues.push(values);
|
getCustomMsg && newValues.push(values);
|
||||||
|
|
||||||
getCustomMsg
|
// getCustomMsg
|
||||||
? localStorage.setItem("customMsg", JSON.stringify(newValues))
|
// ? localStorage.setItem("customMsg", JSON.stringify(newValues))
|
||||||
: localStorage.setItem("customMsg", JSON.stringify([values]));
|
// : localStorage.setItem("customMsg", JSON.stringify([values]));
|
||||||
var tag = document.createElement("li");
|
var tag = document.createElement("li");
|
||||||
tag.innerHTML = allFeaturesText[index].value;
|
var msg = "You've reached the maximum limit of items to add for this feature";
|
||||||
allFeatures[index].appendChild(tag);
|
|
||||||
|
// if the list length exceeds the limit
|
||||||
|
if (allFeatures[index].getElementsByTagName("li").length == allFeaturesLimit[index]){
|
||||||
|
document.getElementById("limit-msg").innerHTML = msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else{
|
||||||
|
tag.innerHTML = allFeaturesText[index].value;
|
||||||
|
allFeatures[index].appendChild(tag);
|
||||||
changeVarValue();
|
changeVarValue();
|
||||||
addEventOnFeaturesList();
|
addEventOnFeaturesList();
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
var msg = "You've reached the maximum limit of items to add for this feature";
|
||||||
|
|
||||||
|
// if the list length exceeds the limit
|
||||||
|
if (allFeatures[index].getElementsByTagName("li").length > allFeaturesLimit[index]){
|
||||||
|
document.getElementById("limit-msg").innerHTML = msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
else{
|
||||||
var tag = document.createElement("li");
|
var tag = document.createElement("li");
|
||||||
tag.innerHTML = allFeaturesText[index].value;
|
tag.innerHTML = allFeaturesText[index].value;
|
||||||
allFeatures[index].appendChild(tag);
|
allFeatures[index].appendChild(tag);
|
||||||
changeVarValue();
|
changeVarValue();
|
||||||
addEventOnFeaturesList();
|
addEventOnFeaturesList();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -794,11 +835,9 @@ allFeaturesTextAddBtn.map((value, index) => {
|
|||||||
var startButton = document.getElementById("start-btn");
|
var startButton = document.getElementById("start-btn");
|
||||||
// start the display
|
// start the display
|
||||||
startButton.addEventListener("click", () => {
|
startButton.addEventListener("click", () => {
|
||||||
|
|
||||||
fetch("/start", {
|
fetch("/start", {
|
||||||
method: "PUT",
|
method: "PUT",
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var brightnessButton = document.getElementById("brightness-btn");
|
var brightnessButton = document.getElementById("brightness-btn");
|
||||||
@@ -819,6 +858,16 @@ shutdownButton.addEventListener("click", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var restartButton = document.getElementById("restart-btn");
|
||||||
|
|
||||||
|
restartButton.addEventListener("click", () => {
|
||||||
|
fetch("/restart", {
|
||||||
|
method: "GET",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
var stopButton = document.getElementById("stop-btn");
|
var stopButton = document.getElementById("stop-btn");
|
||||||
stopButton.addEventListener("click", () => {
|
stopButton.addEventListener("click", () => {
|
||||||
fetch("/stop", {
|
fetch("/stop", {
|
||||||
@@ -910,13 +959,9 @@ function getDisplaying(){
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_page(){
|
||||||
// gets feature specific settings
|
|
||||||
function getFeatureSettings() {
|
|
||||||
|
|
||||||
let featureSelector = document.getElementById("drop");
|
let featureSelector = document.getElementById("drop");
|
||||||
feature = getSelected(featureSelector);
|
feature = getSelected(featureSelector);
|
||||||
|
|
||||||
let features = [
|
let features = [
|
||||||
"Stocks",
|
"Stocks",
|
||||||
"Crypto",
|
"Crypto",
|
||||||
@@ -936,6 +981,13 @@ function getFeatureSettings() {
|
|||||||
let pageSelector = "Page" + pageNum.toString();
|
let pageSelector = "Page" + pageNum.toString();
|
||||||
|
|
||||||
let page = document.getElementById(pageSelector);
|
let page = document.getElementById(pageSelector);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
// gets feature specific settings
|
||||||
|
function getFeatureSettings() {
|
||||||
|
|
||||||
|
let page = get_page();
|
||||||
|
|
||||||
// these common to all settings
|
// these common to all settings
|
||||||
let speed = getSelected(page.querySelectorAll(".speed-select")[0]);
|
let speed = getSelected(page.querySelectorAll(".speed-select")[0]);
|
||||||
@@ -1021,7 +1073,7 @@ function saveSettings() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let saveSettingsButtons = document.querySelectorAll(".save-btn-div").forEach((button) => button.addEventListener("click", saveSettings));
|
let saveSettingsButtons = document.querySelectorAll(".save-btn").forEach((button) => button.addEventListener("click", saveSettings));
|
||||||
|
|
||||||
// gets the stock, crypto or forex specific settings
|
// gets the stock, crypto or forex specific settings
|
||||||
function getTradingSettings(page) {
|
function getTradingSettings(page) {
|
||||||
@@ -1029,7 +1081,6 @@ function getTradingSettings(page) {
|
|||||||
let percent = page.querySelectorAll(".percent-select")[0].checked;
|
let percent = page.querySelectorAll(".percent-select")[0].checked;
|
||||||
let point = page.querySelectorAll(".point-select")[0].checked;
|
let point = page.querySelectorAll(".point-select")[0].checked;
|
||||||
let no_logos = page.querySelectorAll(".logo-select")[0].checked;
|
let no_logos = page.querySelectorAll(".logo-select")[0].checked;
|
||||||
let chart = page.querySelectorAll(".chart-select")[0].checked;
|
|
||||||
let title = page.querySelectorAll(".title-select")[0].checked;
|
let title = page.querySelectorAll(".title-select")[0].checked;
|
||||||
|
|
||||||
let symbols_el = page.querySelectorAll(".symbol-list")[0];
|
let symbols_el = page.querySelectorAll(".symbol-list")[0];
|
||||||
@@ -1039,7 +1090,6 @@ function getTradingSettings(page) {
|
|||||||
percent: percent,
|
percent: percent,
|
||||||
point: point,
|
point: point,
|
||||||
logos: no_logos,
|
logos: no_logos,
|
||||||
chart: chart,
|
|
||||||
title: title,
|
title: title,
|
||||||
symbols: symbols,
|
symbols: symbols,
|
||||||
};
|
};
|
||||||
@@ -1053,11 +1103,14 @@ function getWeatherSettings(page) {
|
|||||||
let speed = getSelected(page.querySelectorAll(".wind-speed-select")[0]);
|
let speed = getSelected(page.querySelectorAll(".wind-speed-select")[0]);
|
||||||
|
|
||||||
let title = page.querySelectorAll(".title-select")[0].checked;
|
let title = page.querySelectorAll(".title-select")[0].checked;
|
||||||
|
let api_key = page.querySelectorAll(".api-key")[0];
|
||||||
|
|
||||||
|
let
|
||||||
settings = {
|
settings = {
|
||||||
temp: temp,
|
temp: temp,
|
||||||
wind_speed: speed,
|
wind_speed: speed,
|
||||||
title: title,
|
title: title,
|
||||||
|
api_key:api_key
|
||||||
};
|
};
|
||||||
|
|
||||||
//only for daily weather
|
//only for daily weather
|
||||||
@@ -1074,19 +1127,41 @@ function getWeatherSettings(page) {
|
|||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function saveWeatherAPIKey(){
|
||||||
|
let page = get_page();
|
||||||
|
|
||||||
|
let api_key = page.querySelectorAll(".api-key")[0].value;
|
||||||
|
let settings = {
|
||||||
|
api_key:api_key
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log(settings);
|
||||||
|
|
||||||
|
fetch("/saveWeatherAPIKey", {
|
||||||
|
method: "POST",
|
||||||
|
body: JSON.stringify(settings),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var weatherAPIbtn = document.getElementById("weather-api-btn");
|
||||||
|
weatherAPIbtn.addEventListener("click", saveWeatherAPIKey);
|
||||||
|
|
||||||
function getNewsSettings(page) {
|
function getNewsSettings(page) {
|
||||||
let country = getSelected(page.querySelectorAll(".country-select")[0]);
|
let country = getSelected(page.querySelectorAll(".country-select")[0]);
|
||||||
let category = getSelected(page.querySelectorAll(".category-select")[0]);
|
let category = getSelected(page.querySelectorAll(".category-select")[0]);
|
||||||
let title = page.querySelectorAll(".title-select")[0].checked;
|
let title = page.querySelectorAll(".title-select")[0].checked;
|
||||||
let use_sources = page.querySelectorAll(".sources-select")[0].checked;
|
// let use_sources = page.querySelectorAll(".sources-select")[0].checked;
|
||||||
|
|
||||||
let sources_el = page.querySelectorAll(".sources-list")[0];
|
// let sources_el = page.querySelectorAll(".sources-list")[0];
|
||||||
let sources = getListItems(sources_el);
|
// let sources = getListItems(sources_el);
|
||||||
settings = {
|
settings = {
|
||||||
country: country,
|
country: country,
|
||||||
category: category,
|
category: category,
|
||||||
title: title,
|
title: title,
|
||||||
use_sources: use_sources,
|
// use_sources: use_sources,
|
||||||
sources: sources,
|
sources: sources,
|
||||||
};
|
};
|
||||||
return settings;
|
return settings;
|
||||||
@@ -1111,7 +1186,7 @@ allFeaturesFileAddBtn.map((value, index) => {
|
|||||||
var tag = document.createElement("li");
|
var tag = document.createElement("li");
|
||||||
tag.innerHTML = allFeaturesFile[index].files[0].name;
|
tag.innerHTML = allFeaturesFile[index].files[0].name;
|
||||||
if (index == 10) {
|
if (index == 10) {
|
||||||
let getCustomImg = localStorage.getItem("customImages");
|
// let getCustomImg = localStorage.getItem("customImages");
|
||||||
let fileName = imagesFile.files[0].name;
|
let fileName = imagesFile.files[0].name;
|
||||||
let scrollSpeed = document.getElementById("inputScrollSpeed11").value;
|
let scrollSpeed = document.getElementById("inputScrollSpeed11").value;
|
||||||
let scrollSpeed2 = document.getElementById(
|
let scrollSpeed2 = document.getElementById(
|
||||||
@@ -1141,15 +1216,15 @@ allFeaturesFileAddBtn.map((value, index) => {
|
|||||||
let newValues = getCustomImg && JSON.parse(getCustomImg);
|
let newValues = getCustomImg && JSON.parse(getCustomImg);
|
||||||
getCustomImg && newValues.push(values);
|
getCustomImg && newValues.push(values);
|
||||||
|
|
||||||
getCustomImg
|
// getCustomImg
|
||||||
? localStorage.setItem("customImages", JSON.stringify(newValues))
|
// ? localStorage.setItem("customImages", JSON.stringify(newValues))
|
||||||
: localStorage.setItem("customImages", JSON.stringify([values]));
|
// : localStorage.setItem("customImages", JSON.stringify([values]));
|
||||||
|
|
||||||
uploaded_images.push(allFeaturesFile[index].files[0]);
|
uploaded_images.push(allFeaturesFile[index].files[0]);
|
||||||
allFeatures[index].appendChild(tag);
|
allFeatures[index].appendChild(tag);
|
||||||
}
|
}
|
||||||
} else if (index == 11) {
|
} else if (index == 11) {
|
||||||
let getCustomGifs = localStorage.getItem("customGifs");
|
// let getCustomGifs = localStorage.getItem("customGifs");
|
||||||
let fileName = allFeaturesFile[index].files[0].name;
|
let fileName = allFeaturesFile[index].files[0].name;
|
||||||
let scrollSpeed = document.getElementById("inputScrollSpeed12").value;
|
let scrollSpeed = document.getElementById("inputScrollSpeed12").value;
|
||||||
let scrollSpeed2 = document.getElementById(
|
let scrollSpeed2 = document.getElementById(
|
||||||
@@ -1179,15 +1254,15 @@ allFeaturesFileAddBtn.map((value, index) => {
|
|||||||
let newValues = getCustomGifs && JSON.parse(getCustomGifs);
|
let newValues = getCustomGifs && JSON.parse(getCustomGifs);
|
||||||
getCustomGifs && newValues.push(values);
|
getCustomGifs && newValues.push(values);
|
||||||
|
|
||||||
getCustomGifs
|
// getCustomGifs
|
||||||
? localStorage.setItem("customGifs", JSON.stringify(newValues))
|
// ? localStorage.setItem("customGifs", JSON.stringify(newValues))
|
||||||
: localStorage.setItem("customGifs", JSON.stringify([values]));
|
// : localStorage.setItem("customGifs", JSON.stringify([values]));
|
||||||
|
|
||||||
uploaded_GIFs.push(allFeaturesFile[index].files[0]);
|
uploaded_GIFs.push(allFeaturesFile[index].files[0]);
|
||||||
allFeatures[index].appendChild(tag);
|
allFeatures[index].appendChild(tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
imagesFile.value = "";
|
||||||
changeVarValue();
|
changeVarValue();
|
||||||
addEventOnFeaturesList();
|
addEventOnFeaturesList();
|
||||||
});
|
});
|
||||||
@@ -1273,23 +1348,23 @@ let countryCodeInput = document.getElementById("country-code-input");
|
|||||||
let joinNetworkBtn = document.querySelector("#join-network-btn");
|
let joinNetworkBtn = document.querySelector("#join-network-btn");
|
||||||
let connectedText = document.querySelector("#connected-text");
|
let connectedText = document.querySelector("#connected-text");
|
||||||
|
|
||||||
joinNetworkBtn.addEventListener("click", () => {
|
// joinNetworkBtn.addEventListener("click", () => {
|
||||||
localStorage.setItem("wifiSsid", wifiSsidInput.value);
|
// localStorage.setItem("wifiSsid", wifiSsidInput.value);
|
||||||
localStorage.setItem("wifiPass", wifiPassInput.value);
|
// localStorage.setItem("wifiPass", wifiPassInput.value);
|
||||||
localStorage.setItem("countryCode", countryCodeInput.value);
|
// localStorage.setItem("countryCode", countryCodeInput.value);
|
||||||
|
|
||||||
connectedText.style.display = "block";
|
// connectedText.style.display = "block";
|
||||||
setTimeout(() => {
|
// setTimeout(() => {
|
||||||
connectedText.style.display = "none";
|
// connectedText.style.display = "none";
|
||||||
}, 2000);
|
// }, 2000);
|
||||||
|
|
||||||
data = {country:countryCodeInput.value, ssid:wifiSsidInput.value, pwd:wifiPassInput.value}
|
// data = {country:countryCodeInput.value, ssid:wifiSsidInput.value, pwd:wifiPassInput.value}
|
||||||
|
|
||||||
fetch("/wifi", {
|
// fetch("/wifi", {
|
||||||
method: "POST",
|
// method: "POST",
|
||||||
body: JSON.stringify(data),
|
// body: JSON.stringify(data),
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
|
|
||||||
// change display format
|
// change display format
|
||||||
let displayFormatDropDown = document.querySelector("#inputDisplayFormat");
|
let displayFormatDropDown = document.querySelector("#inputDisplayFormat");
|
||||||
@@ -1332,7 +1407,7 @@ let hostNameText = document.getElementById("host-name");
|
|||||||
|
|
||||||
hostNameBtn.addEventListener("click", () => {
|
hostNameBtn.addEventListener("click", () => {
|
||||||
hostNameText.innerText = hostNameInput.value;
|
hostNameText.innerText = hostNameInput.value;
|
||||||
localStorage.setItem("hostName", hostNameText.innerText);
|
// localStorage.setItem("hostName", hostNameText.innerText);
|
||||||
|
|
||||||
data = {hostname:hostNameText.innerText}
|
data = {hostname:hostNameText.innerText}
|
||||||
|
|
||||||
@@ -1342,13 +1417,30 @@ hostNameBtn.addEventListener("click", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Add Weather API Key
|
||||||
|
|
||||||
|
// let weatherKeyInput = document.getElementById("api-key");
|
||||||
|
// let weatherKeyBtn = document.getElementById("weather-api-button");
|
||||||
|
// let inputTextWeather = document.getElementById("inputText-weather");
|
||||||
|
|
||||||
|
// weatherKeyBtn.addEventListener("click", () => {
|
||||||
|
// inputTextWeather.innerText = weatherKeyInput.value;
|
||||||
|
// data = {api-key:inputTextWeather.innerText}
|
||||||
|
|
||||||
|
// fetch("/weatherAPI", {
|
||||||
|
// method: "POST",
|
||||||
|
// body: JSON.stringify(data),
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
|
||||||
|
|
||||||
// change brightness
|
// change brightness
|
||||||
|
|
||||||
let brightnessInput = document.getElementById("brightness-input");
|
let brightnessInput = document.getElementById("brightness-input");
|
||||||
let brightnessBtn = document.getElementById("brightness-btn");
|
let brightnessBtn = document.getElementById("brightness-btn");
|
||||||
|
|
||||||
brightnessBtn.addEventListener("click", () => {
|
brightnessBtn.addEventListener("click", () => {
|
||||||
localStorage.setItem("brightness", brightnessInput.value);
|
// localStorage.setItem("brightness", brightnessInput.value);
|
||||||
});
|
});
|
||||||
|
|
||||||
// change input animation
|
// change input animation
|
||||||
@@ -1372,16 +1464,16 @@ for (let i = 1; i <= 13; i++) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
window.onload = () => {
|
window.onload = () => {
|
||||||
let getHostName = localStorage.getItem("hostName");
|
// let getHostName = localStorage.getItem("hostName");
|
||||||
let getBrightness = localStorage.getItem("brightness");
|
// let getBrightness = localStorage.getItem("brightness");
|
||||||
let getWifiSsid = localStorage.getItem("wifiSsid");
|
// let getWifiSsid = localStorage.getItem("wifiSsid");
|
||||||
let getWifiPass = localStorage.getItem("wifiPass");
|
// let getWifiPass = localStorage.getItem("wifiPass");
|
||||||
let getCountryCode = localStorage.getItem("countryCode");
|
// let getCountryCode = localStorage.getItem("countryCode");
|
||||||
let getInputAnimation = localStorage.getItem("inputAnimation");
|
// let getInputAnimation = localStorage.getItem("inputAnimation");
|
||||||
|
|
||||||
getHostName &&
|
// getHostName &&
|
||||||
(hostNameText.innerText = getHostName) &&
|
// (hostNameText.innerText = getHostName) &&
|
||||||
(hostNameInput.value = getHostName);
|
// (hostNameInput.value = getHostName);
|
||||||
|
|
||||||
//getBrightness && (brightnessInput.value = getBrightness);
|
//getBrightness && (brightnessInput.value = getBrightness);
|
||||||
//getWifiSsid && (wifiSsidInput.value = getWifiSsid);
|
//getWifiSsid && (wifiSsidInput.value = getWifiSsid);
|
||||||
|
|||||||
Vendored
BIN
Binary file not shown.
+5002
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+7
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+5001
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+426
@@ -0,0 +1,426 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap Reboot v5.0.2 (https://getbootstrap.com/)
|
||||||
|
* Copyright 2011-2021 The Bootstrap Authors
|
||||||
|
* Copyright 2011-2021 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||||
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||||
|
*/
|
||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion: no-preference) {
|
||||||
|
:root {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.5;
|
||||||
|
color: #212529;
|
||||||
|
background-color: #fff;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
margin: 1rem 0;
|
||||||
|
color: inherit;
|
||||||
|
background-color: currentColor;
|
||||||
|
border: 0;
|
||||||
|
opacity: 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr:not([size]) {
|
||||||
|
height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6, h5, h4, h3, h2, h1 {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: calc(1.375rem + 1.5vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: calc(1.325rem + 0.9vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h2 {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: calc(1.3rem + 0.6vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h3 {
|
||||||
|
font-size: 1.75rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: calc(1.275rem + 0.3vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h4 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
abbr[title],
|
||||||
|
abbr[data-bs-original-title] {
|
||||||
|
-webkit-text-decoration: underline dotted;
|
||||||
|
text-decoration: underline dotted;
|
||||||
|
cursor: help;
|
||||||
|
-webkit-text-decoration-skip-ink: none;
|
||||||
|
text-decoration-skip-ink: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
address {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
padding-left: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul,
|
||||||
|
dl {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol ol,
|
||||||
|
ul ul,
|
||||||
|
ol ul,
|
||||||
|
ul ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
mark {
|
||||||
|
padding: 0.2em;
|
||||||
|
background-color: #fcf8e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
position: relative;
|
||||||
|
font-size: 0.75em;
|
||||||
|
line-height: 0;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0d6efd;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
color: #0a58ca;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre,
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
samp {
|
||||||
|
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
font-size: 1em;
|
||||||
|
direction: ltr /* rtl:ignore */;
|
||||||
|
unicode-bidi: bidi-override;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
display: block;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
overflow: auto;
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
pre code {
|
||||||
|
font-size: inherit;
|
||||||
|
color: inherit;
|
||||||
|
word-break: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-size: 0.875em;
|
||||||
|
color: #d63384;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
a > code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
padding: 0.2rem 0.4rem;
|
||||||
|
font-size: 0.875em;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #212529;
|
||||||
|
border-radius: 0.2rem;
|
||||||
|
}
|
||||||
|
kbd kbd {
|
||||||
|
padding: 0;
|
||||||
|
font-size: 1em;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
img,
|
||||||
|
svg {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
caption-side: bottom;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
caption {
|
||||||
|
padding-top: 0.5rem;
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
color: #6c757d;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
text-align: inherit;
|
||||||
|
text-align: -webkit-match-parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
thead,
|
||||||
|
tbody,
|
||||||
|
tfoot,
|
||||||
|
tr,
|
||||||
|
td,
|
||||||
|
th {
|
||||||
|
border-color: inherit;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus:not(:focus-visible) {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input,
|
||||||
|
button,
|
||||||
|
select,
|
||||||
|
optgroup,
|
||||||
|
textarea {
|
||||||
|
margin: 0;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
select {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[role=button] {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
word-wrap: normal;
|
||||||
|
}
|
||||||
|
select:disabled {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
[list]::-webkit-calendar-picker-indicator {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
[type=button],
|
||||||
|
[type=reset],
|
||||||
|
[type=submit] {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
button:not(:disabled),
|
||||||
|
[type=button]:not(:disabled),
|
||||||
|
[type=reset]:not(:disabled),
|
||||||
|
[type=submit]:not(:disabled) {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
legend {
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-size: calc(1.275rem + 0.3vw);
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
legend {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
legend + * {
|
||||||
|
clear: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-datetime-edit-fields-wrapper,
|
||||||
|
::-webkit-datetime-edit-text,
|
||||||
|
::-webkit-datetime-edit-minute,
|
||||||
|
::-webkit-datetime-edit-hour-field,
|
||||||
|
::-webkit-datetime-edit-day-field,
|
||||||
|
::-webkit-datetime-edit-month-field,
|
||||||
|
::-webkit-datetime-edit-year-field {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-inner-spin-button {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type=search] {
|
||||||
|
outline-offset: -2px;
|
||||||
|
-webkit-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* rtl:raw:
|
||||||
|
[type="tel"],
|
||||||
|
[type="url"],
|
||||||
|
[type="email"],
|
||||||
|
[type="number"] {
|
||||||
|
direction: ltr;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-color-swatch-wrapper {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::file-selector-button {
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
font: inherit;
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
|
||||||
|
output {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
iframe {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
summary {
|
||||||
|
display: list-item;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*# sourceMappingURL=bootstrap-reboot.css.map */
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap Reboot v5.0.2 (https://getbootstrap.com/)
|
||||||
|
* Copyright 2011-2021 The Bootstrap Authors
|
||||||
|
* Copyright 2011-2021 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||||
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||||
|
*/*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
|
||||||
|
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
||||||
File diff suppressed because one or more lines are too long
+423
@@ -0,0 +1,423 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap Reboot v5.0.2 (https://getbootstrap.com/)
|
||||||
|
* Copyright 2011-2021 The Bootstrap Authors
|
||||||
|
* Copyright 2011-2021 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||||
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||||
|
*/
|
||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion: no-preference) {
|
||||||
|
:root {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.5;
|
||||||
|
color: #212529;
|
||||||
|
background-color: #fff;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
margin: 1rem 0;
|
||||||
|
color: inherit;
|
||||||
|
background-color: currentColor;
|
||||||
|
border: 0;
|
||||||
|
opacity: 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr:not([size]) {
|
||||||
|
height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6, h5, h4, h3, h2, h1 {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: calc(1.375rem + 1.5vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: calc(1.325rem + 0.9vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h2 {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: calc(1.3rem + 0.6vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h3 {
|
||||||
|
font-size: 1.75rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: calc(1.275rem + 0.3vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h4 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
abbr[title],
|
||||||
|
abbr[data-bs-original-title] {
|
||||||
|
-webkit-text-decoration: underline dotted;
|
||||||
|
text-decoration: underline dotted;
|
||||||
|
cursor: help;
|
||||||
|
-webkit-text-decoration-skip-ink: none;
|
||||||
|
text-decoration-skip-ink: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
address {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
padding-right: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul,
|
||||||
|
dl {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol ol,
|
||||||
|
ul ul,
|
||||||
|
ol ul,
|
||||||
|
ul ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
mark {
|
||||||
|
padding: 0.2em;
|
||||||
|
background-color: #fcf8e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
position: relative;
|
||||||
|
font-size: 0.75em;
|
||||||
|
line-height: 0;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0d6efd;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
color: #0a58ca;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre,
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
samp {
|
||||||
|
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
font-size: 1em;
|
||||||
|
direction: ltr ;
|
||||||
|
unicode-bidi: bidi-override;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
display: block;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
overflow: auto;
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
pre code {
|
||||||
|
font-size: inherit;
|
||||||
|
color: inherit;
|
||||||
|
word-break: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-size: 0.875em;
|
||||||
|
color: #d63384;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
a > code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
padding: 0.2rem 0.4rem;
|
||||||
|
font-size: 0.875em;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #212529;
|
||||||
|
border-radius: 0.2rem;
|
||||||
|
}
|
||||||
|
kbd kbd {
|
||||||
|
padding: 0;
|
||||||
|
font-size: 1em;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
img,
|
||||||
|
svg {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
caption-side: bottom;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
caption {
|
||||||
|
padding-top: 0.5rem;
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
color: #6c757d;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
text-align: inherit;
|
||||||
|
text-align: -webkit-match-parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
thead,
|
||||||
|
tbody,
|
||||||
|
tfoot,
|
||||||
|
tr,
|
||||||
|
td,
|
||||||
|
th {
|
||||||
|
border-color: inherit;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus:not(:focus-visible) {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input,
|
||||||
|
button,
|
||||||
|
select,
|
||||||
|
optgroup,
|
||||||
|
textarea {
|
||||||
|
margin: 0;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
select {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[role=button] {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
word-wrap: normal;
|
||||||
|
}
|
||||||
|
select:disabled {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
[list]::-webkit-calendar-picker-indicator {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
[type=button],
|
||||||
|
[type=reset],
|
||||||
|
[type=submit] {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
button:not(:disabled),
|
||||||
|
[type=button]:not(:disabled),
|
||||||
|
[type=reset]:not(:disabled),
|
||||||
|
[type=submit]:not(:disabled) {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
legend {
|
||||||
|
float: right;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-size: calc(1.275rem + 0.3vw);
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
legend {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
legend + * {
|
||||||
|
clear: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-datetime-edit-fields-wrapper,
|
||||||
|
::-webkit-datetime-edit-text,
|
||||||
|
::-webkit-datetime-edit-minute,
|
||||||
|
::-webkit-datetime-edit-hour-field,
|
||||||
|
::-webkit-datetime-edit-day-field,
|
||||||
|
::-webkit-datetime-edit-month-field,
|
||||||
|
::-webkit-datetime-edit-year-field {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-inner-spin-button {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type=search] {
|
||||||
|
outline-offset: -2px;
|
||||||
|
-webkit-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="tel"],
|
||||||
|
[type="url"],
|
||||||
|
[type="email"],
|
||||||
|
[type="number"] {
|
||||||
|
direction: ltr;
|
||||||
|
}
|
||||||
|
::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-color-swatch-wrapper {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::file-selector-button {
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
font: inherit;
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
|
||||||
|
output {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
iframe {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
summary {
|
||||||
|
display: list-item;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
/*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap Reboot v5.0.2 (https://getbootstrap.com/)
|
||||||
|
* Copyright 2011-2021 The Bootstrap Authors
|
||||||
|
* Copyright 2011-2021 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||||
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||||
|
*/*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
|
||||||
|
/*# sourceMappingURL=bootstrap-reboot.rtl.min.css.map */
|
||||||
File diff suppressed because one or more lines are too long
+4752
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+4743
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+10837
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+7
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+10813
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+7
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+6748
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+7
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+4967
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+7
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+5016
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Vendored
+7
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+9190
File diff suppressed because it is too large
Load Diff
+16
-6
@@ -12,6 +12,7 @@ html {
|
|||||||
}
|
}
|
||||||
body {
|
body {
|
||||||
background-color: black;
|
background-color: black;
|
||||||
|
color:white
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Top logo bar */
|
/* Top logo bar */
|
||||||
@@ -34,16 +35,11 @@ header {
|
|||||||
transition: 0.25s;
|
transition: 0.25s;
|
||||||
}
|
}
|
||||||
.hostname-text {
|
.hostname-text {
|
||||||
margin: 0;
|
|
||||||
align-self: flex-end;
|
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
color: greenyellow;
|
color: greenyellow;
|
||||||
font-size: 18px;
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
transform: translateX(-50%);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* General Ticker */
|
/* General Ticker */
|
||||||
.buttons-list {
|
.buttons-list {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -238,6 +234,20 @@ li.active {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.status {
|
||||||
|
width: 25px;
|
||||||
|
height: 25px;
|
||||||
|
}
|
||||||
|
#circle-1 {
|
||||||
|
background-color: green;
|
||||||
|
}
|
||||||
|
#circle-2 {
|
||||||
|
background-color: red;
|
||||||
|
}
|
||||||
|
#circle-3 {
|
||||||
|
background-color: orange;
|
||||||
|
}
|
||||||
|
|
||||||
@media (min-width: 768px) and (max-width: 991px) {
|
@media (min-width: 768px) and (max-width: 991px) {
|
||||||
.icons-list a {
|
.icons-list a {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
Executable → Regular
+339
-207
@@ -3,21 +3,19 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
||||||
|
<meta http-equiv="Pragma" content="no-cache" />
|
||||||
|
<meta http-equiv="Expires" content="0" />
|
||||||
<title>Fintic</title>
|
<title>Fintic</title>
|
||||||
|
|
||||||
<!-- Bootstrap 5 CDN Links -->
|
<!-- Bootstrap 5 CDN Links -->
|
||||||
<link
|
|
||||||
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css"
|
|
||||||
rel="stylesheet"
|
|
||||||
integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x"
|
|
||||||
crossorigin="anonymous"
|
|
||||||
/>
|
|
||||||
<script
|
<script
|
||||||
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
|
src="{{ url_for('static', filename='bootstrap/js/bootstrap.bundle.min.js') }}"
|
||||||
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
|
|
||||||
crossorigin="anonymous"
|
|
||||||
page
|
|
||||||
></script>
|
></script>
|
||||||
|
<link
|
||||||
|
href="{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- Fontawesome - for icons -->
|
<!-- Fontawesome - for icons -->
|
||||||
<link
|
<link
|
||||||
@@ -41,42 +39,65 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<!-- Top logo bar -->
|
<!-- Top logo bar -->
|
||||||
|
|
||||||
<header>
|
<!-- Top logo bar -->
|
||||||
<div class="d-inline-flex align-items-end">
|
<nav class="navbar navbar-light justify-content-end" style="border-bottom:2px solid white">
|
||||||
<img src="{{ url_for('static', filename='images/logo_white.png') }}" class="img-fluid logo" alt="logo" />
|
<div class="container">
|
||||||
<p class="m-0 text-white">Version 1.0</p>
|
<a class="navbar-brand" href="#">
|
||||||
</div>
|
<img src="{{ url_for('static', filename='images/logo_white.png') }}" class="logo" alt="logo" /><p class="text-white">Version 1.0</p>
|
||||||
<p class="hostname-text">
|
</a>
|
||||||
|
|
||||||
|
<div class="hostname-text">
|
||||||
|
<p>
|
||||||
Hostname: <span id="host-name">{{ general_settings.hostname }}</span>.local
|
Hostname: <span id="host-name">{{ general_settings.hostname }}</span>.local
|
||||||
</p>
|
</p>
|
||||||
<a id="update-btn" class="btn update-btn">Check Updates</a>
|
</div>
|
||||||
</header>
|
<div class="">
|
||||||
|
<button id="update-btn" class="btn btn-secondary">Check Updates</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<!-- End logo bar -->
|
||||||
|
|
||||||
<!-- General Ticker Settings -->
|
<!-- General Ticker Heading -->
|
||||||
<section class="general-ticker text-white">
|
<div class="row">
|
||||||
<h4 class="pt-3 pb-3">General Ticker Settings:</h4>
|
<div class="col-lg-11 col-md-11 col-sm-11" style="padding-top:2%">
|
||||||
<ul class="buttons-list">
|
<h3 class="text-white">
|
||||||
<!--<li><a href="/start" class="btn btn-success">Start Display</a></li>-->
|
General Ticker Settings:
|
||||||
<li><a id="start-btn" class="btn btn-success">Start Display</a></li>
|
</h3>
|
||||||
<li>
|
</div>
|
||||||
<a id="stop-btn" class="btn btn-stop-display">Stop Display</a>
|
</div>
|
||||||
</li>
|
<!-- End General Ticker Heading -->
|
||||||
<li>
|
|
||||||
<a id="screensaver-btn" class="btn btn-warning text-white">Screensaver</a>
|
|
||||||
</li>
|
|
||||||
<li><a id="shutdown-btn" class="btn btn-danger">Shut Down</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div class="row row-1">
|
<!-- Button List -->
|
||||||
|
<div class="row" style="justify-content:center">
|
||||||
|
<div class="col-lg-2 col-md-2 col-sm-2">
|
||||||
|
<a id="start-btn" class="btn btn-success">Start Display</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2 col-md-2 col-sm-2">
|
||||||
|
<a id="stop-btn" class="btn btn-info">Stop Display</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2 col-md-2 col-sm-2">
|
||||||
|
<a id="restart-btn" class="btn btn-dark">Restart Display</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2 col-md-2 col-sm-2">
|
||||||
|
<a id="screensaver-btn" class="btn btn-warning text-white">Screen Saver</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2 col-md-2 col-sm-2">
|
||||||
|
<a id="shutdown-btn" class="btn btn-danger">Shut Down</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End Button List -->
|
||||||
|
|
||||||
|
<!-- Ticker Form -->
|
||||||
|
<!-- First Row -->
|
||||||
|
<div class="ticker-form" style="padding-top:3%; padding-bottom:2%;border-bottom:2px solid white">
|
||||||
|
<div class="row g-3 align-items-center" >
|
||||||
<div class="col-lg-6 col-md-6 col-sm-12 d-block">
|
<div class="col-lg-6 col-md-6 col-sm-12 d-block">
|
||||||
<div class="row g-3 align-items-center">
|
<div class="row g-3 align-items-center">
|
||||||
|
<!-- Brightness Input -->
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="brightness-input" class="col-form-label"
|
<label for="brightness-input" class="col-form-label">Brightness (1 - 10):</label>
|
||||||
>Brightness (1 - 10):
|
</div><br /><br />
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
@@ -86,20 +107,18 @@
|
|||||||
value={{ general_settings.brightness }}
|
value={{ general_settings.brightness }}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<button class="btn set-btn" id="brightness-btn">Set</button>
|
<button class="btn btn-secondary" id="brightness-btn">Set</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- End Brightness Input -->
|
||||||
<div class="col-lg-6 col-md-6 col-sm-12 screen-saver">
|
<div class="col-lg-6 col-md-6 col-sm-12 d-block">
|
||||||
<div class="row g-3 align-items-center">
|
<div class="row g-3 align-items-center">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputAnimation" class="col-form-label"
|
<label for="inputAnimation" class="col-form-label">Screensaver animation:
|
||||||
>Screensaver animation:
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div><br/><br/>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<select id="inputAnimation" class="form-select">
|
<select id="inputAnimation" class="form-select">
|
||||||
<option>Pulsating Colors</option>
|
<option>Pulsating Colors</option>
|
||||||
@@ -110,20 +129,21 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto" id="input-animation-btn">
|
<div class="col-auto" id="input-animation-btn">
|
||||||
<button class="btn set-btn">Set</button>
|
<button class="btn btn-secondary">Set</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- End First Row -->
|
||||||
|
|
||||||
<div class="row">
|
<!-- Second Row -->
|
||||||
<div class="col-lg-6 col-md-6 col-sm-12">
|
<div class="row g-3 align-items-center" style="padding-top:3%">
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12 d-block">
|
||||||
<div class="row g-3 align-items-center">
|
<div class="row g-3 align-items-center">
|
||||||
|
<!-- Host Name Input -->
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="host-name-input" class="col-form-label"
|
<label for="host-name-input" class="col-form-label">Change host name:</label>
|
||||||
>Change host name:
|
</div><br/><br/>
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
@@ -133,126 +153,112 @@
|
|||||||
value={{ general_settings.hostname }}
|
value={{ general_settings.hostname }}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<button id="host-name-btn" class="btn set-btn">Set</button>
|
<button class="btn btn-secondary" id="host-name-btn">Set</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6 col-md-6 col-sm-12">
|
<!-- End Brightness Input -->
|
||||||
|
<div class="col-lg-6 col-md-6 col-sm-12 d-block">
|
||||||
<div class="row g-3 align-items-center">
|
<div class="row g-3 align-items-center">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputDisplayFormat" class="col-form-label"
|
<label for="inputDisplayFormat" class="col-form-label">Ticker Display Format:
|
||||||
>Ticker Display Format:
|
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div><br/><br/>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<select id="inputDisplayFormat" class="form-select">
|
<select id="inputDisplayFormat" class="form-select">
|
||||||
<option>Standard Scrolling</option>
|
<option>Standard Scrolling</option>
|
||||||
<option>Professional two rows</option>
|
<option>Professional two rows</option>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto">
|
<div class="col-auto" id="input-animation-btn">
|
||||||
<button id="dispformat-btn" class="btn set-btn">Set</button>
|
<button class="btn btn-secondary" id="dispformat-btn">Set</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End Second Row -->
|
||||||
|
<!-- End Ticker Form -->
|
||||||
|
|
||||||
|
<!-- Features to Display Heading-->
|
||||||
|
<div class="row">
|
||||||
<div class="row-2"></div>
|
<div class="col-lg-11 col-md-11 col-sm-11" style="padding-top:2%">
|
||||||
</section>
|
<h3 class="text-white">Features to Display:</h3>
|
||||||
|
|
||||||
<!-- Features to Display -->
|
|
||||||
<section class="display-features text-white">
|
|
||||||
<h4 class="pt-3">Features to Display:</h4>
|
|
||||||
<p>
|
<p>
|
||||||
Selected Display format:
|
Selected Display format:
|
||||||
<span class="font-6" id="selected-display-text"></span>
|
<span class="font-6" id="selected-display-text"></span>
|
||||||
</p>
|
</p>
|
||||||
<div class="row row-3">
|
</div>
|
||||||
<h4 id="top-row-text">Top row</h4>
|
</div><br>
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-4 col-sm-12">
|
<!-- Features List First Row -->
|
||||||
<h6>Available Features:</h6>
|
<div class="row" style="border-bottom:2px solid white; padding:2%">
|
||||||
<div class="features-div">
|
<!-- Available Features Column -->
|
||||||
|
<div class="col-lg-4 col-md-4 col-sm-12 ">
|
||||||
|
<div class="row">
|
||||||
|
<h4 id="top-row-text" style="display:none">Top row</h4>
|
||||||
|
<h6 class="col-lg-6 col-md-6 col-sm-12">Available Features:</h6>
|
||||||
|
</div>
|
||||||
|
<div class="row features-div">
|
||||||
<ul
|
<ul
|
||||||
id="available-features"
|
id="available-features"
|
||||||
class="display-features-list text-dark"
|
class="display-features-list text-dark">
|
||||||
>
|
|
||||||
{% for f in not_displaying %}
|
{% for f in not_displaying %}
|
||||||
<li>{{f}}</li>
|
<li>{{f}}</li>
|
||||||
{% endfor%}
|
{% endfor%}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-2 col-md-2 col-sm-12">
|
<!-- End Features Column -->
|
||||||
<div class="icons-list">
|
<div class="col-lg-2 col-md-2 col-sm-2 align-self-center" style="padding-top:2%;padding-bottom:5%">
|
||||||
<i
|
<div class="icon-list">
|
||||||
id="feature-to-display"
|
<i id="feature-to-display" class="fa fa-chevron-right" aria-hidden="true"></i><br><br>
|
||||||
class="fa fa-chevron-right"
|
<i id="display-to-feature" class="fa fa-chevron-left" aria-hidden="true"></i>
|
||||||
aria-hidden="true"
|
|
||||||
></i>
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<i
|
|
||||||
id="display-to-feature"
|
|
||||||
class="fa fa-chevron-left"
|
|
||||||
aria-hidden="true"
|
|
||||||
></i>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- DIsplay Format Column -->
|
||||||
<div class="col-lg-4 col-md-4 col-sm-12">
|
<div class="col-lg-4 col-md-4 col-sm-12">
|
||||||
<h6>Display Format:</h6>
|
<div class="row">
|
||||||
<div class="features-div">
|
<h6 class="col-lg-6 col-md-6 col-sm-12">Display Format:</h6>
|
||||||
<ul
|
</div>
|
||||||
id="display-format"
|
<div class="row features-div">
|
||||||
class="display-features-list text-dark"
|
<ul id="display-format" class="display-features-list text-dark">
|
||||||
>
|
|
||||||
|
|
||||||
|
|
||||||
{% for f in currently_displaying[0] %}
|
{% for f in currently_displaying[0] %}
|
||||||
<li>{{f}}</li>
|
<li>{{f}}</li>
|
||||||
{% endfor%}
|
{% endfor%}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-2 col-md-2 col-sm-12">
|
<div class="col-lg-2 col-md-2 col-sm-2 align-self-center" style="padding-top:2%;padding-bottom:5%">
|
||||||
<div class="icons-list">
|
<div class="icon">
|
||||||
<i
|
<i id="display-increase-btn" class="fa fa-chevron-up" aria-hidden="true"></i><br><br>
|
||||||
id="display-increase-btn"
|
<i id="display-decrease-btn" class="fa fa-chevron-down" aria-hidden="true"></i>
|
||||||
class="fa fa-chevron-up"
|
<a>Sort Order</a>
|
||||||
aria-hidden="true"
|
|
||||||
></i>
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<i
|
|
||||||
id="display-decrease-btn"
|
|
||||||
class="fa fa-chevron-down"
|
|
||||||
aria-hidden="true"
|
|
||||||
></i>
|
|
||||||
<a style="position: relative; bottom: 30px; left: 10px"
|
|
||||||
>Sort Order</a
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- End Display Format -->
|
||||||
|
|
||||||
<div id="second-row" class="row row-3">
|
<!-- End Features List ROw -->
|
||||||
<h4 id="bottom-row-text">Bottom row</h4>
|
|
||||||
|
|
||||||
|
<!-- Features List Second Row -->
|
||||||
|
<div id="second-row" class="row" style="border-bottom:2px solid white; padding:2%">
|
||||||
|
<h4 id="bottom-row-text" style="display:none">Bottom row</h4>
|
||||||
|
<!-- Available Features Column -->
|
||||||
<div class="col-lg-4 col-md-4 col-sm-12">
|
<div class="col-lg-4 col-md-4 col-sm-12">
|
||||||
<h6>Available Features:</h6>
|
<div class="row">
|
||||||
<div class="features-div">
|
<h6 class="col-lg-6 col-md-6 col-sm-12">Available Features:</h6>
|
||||||
|
</div>
|
||||||
|
<div class="row features-div">
|
||||||
<ul
|
<ul
|
||||||
id="available-features-2"
|
id="available-features-2"
|
||||||
class="display-features-list text-dark"
|
class="display-features-list text-dark">
|
||||||
>
|
|
||||||
<li>Stocks</li>
|
<li>Stocks</li>
|
||||||
<li>Crypto</li>
|
<li>Crypto</li>
|
||||||
<li>Forex</li>
|
<li>Forex</li>
|
||||||
@@ -269,71 +275,49 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-2 col-md-2 col-sm-12">
|
|
||||||
<div class="icons-list">
|
<!-- End Features Column -->
|
||||||
<i
|
<div class="col-lg-2 col-md-2 col-sm-2 align-self-center">
|
||||||
id="feature-to-display-2"
|
<div class="icon-list">
|
||||||
class="fa fa-chevron-right"
|
<i id="feature-to-display-2" class="fa fa-chevron-right" aria-hidden="true"></i><br><br>
|
||||||
aria-hidden="true"
|
<i id="display-to-feature-2" class="fa fa-chevron-left" aria-hidden="true"></i>
|
||||||
></i>
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<i
|
|
||||||
id="display-to-feature-2"
|
|
||||||
class="fa fa-chevron-left"
|
|
||||||
aria-hidden="true"
|
|
||||||
></i>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- DIsplay Format Column -->
|
||||||
<div class="col-lg-4 col-md-4 col-sm-12">
|
<div class="col-lg-4 col-md-4 col-sm-12">
|
||||||
<h6>Display Format:</h6>
|
<div class="row">
|
||||||
<div class="features-div">
|
<h6 class="col-lg-6 col-md-6 col-sm-12">Display Format:</h6>
|
||||||
<ul
|
</div>
|
||||||
id="display-format-2"
|
<div class="row features-div">
|
||||||
class="display-features-list text-dark"
|
<ul id="display-format-2" class="display-features-list text-dark">
|
||||||
{%if professional%}
|
{%if professional%}
|
||||||
{% for f in currently_displaying[1] %}
|
{% for f in currently_displaying[1] %}
|
||||||
<li> {{f}} </li>
|
<li> {{f}} </li>
|
||||||
{% endfor%}
|
{% endfor%}
|
||||||
{%endif%}
|
{%endif%}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2 col-md-2 col-sm-2 align-self-center">
|
||||||
|
<div class="icon">
|
||||||
|
<i id="display-increase-btn-2" class="fa fa-chevron-up" aria-hidden="true"></i><br><br>
|
||||||
|
<i id="display-decrease-btn-2" class="fa fa-chevron-down" aria-hidden="true"></i>
|
||||||
|
<a style="position: relative; bottom: 30px; left: 10px">Sort Order</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End Display Format -->
|
||||||
|
<!-- End Features List ROw -->
|
||||||
|
|
||||||
></ul>
|
<!-- What to Display in Each Feature -->
|
||||||
</div>
|
<div class="row" style="padding:2%">
|
||||||
</div>
|
|
||||||
<div class="col-lg-2 col-md-2 col-sm-12">
|
|
||||||
<div class="icons-list">
|
|
||||||
<i
|
|
||||||
id="display-increase-btn-2"
|
|
||||||
class="fa fa-chevron-up"
|
|
||||||
aria-hidden="true"
|
|
||||||
></i>
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<i
|
|
||||||
id="display-decrease-btn-2"
|
|
||||||
class="fa fa-chevron-down"
|
|
||||||
aria-hidden="true"
|
|
||||||
></i>
|
|
||||||
<a style="position: relative; bottom: 30px; left: 10px"
|
|
||||||
>Sort Order</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row-2"></div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- what to display in each feature(Stocks) -->
|
|
||||||
<section class="stocks-features text-white row-3">
|
|
||||||
<h4 class="pt-3">What to display in each feature:</h4>
|
<h4 class="pt-3">What to display in each feature:</h4>
|
||||||
<div
|
|
||||||
class="row g-3 align-items-center d-flex justify-content-center mt-3"
|
|
||||||
>
|
|
||||||
<div class="col-auto">
|
|
||||||
<label for="drop" class="col-form-label">Feature: </label>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-auto">
|
||||||
|
<label for="drop" class="col-form-label">Feature:</label>
|
||||||
|
</div>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<select id="drop" class="form-select">
|
<select id="drop" class="form-select">
|
||||||
<option value="1">Stocks</option>
|
<option value="1">Stocks</option>
|
||||||
@@ -351,7 +335,7 @@
|
|||||||
<option value="13">Custom Messages</option>
|
<option value="13">Custom Messages</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
</div><!-- End Row Dropdown Display Feature -->
|
||||||
<!-- Stocks -->
|
<!-- Stocks -->
|
||||||
<div class="page" id="Page1">
|
<div class="page" id="Page1">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -430,6 +414,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="limit-msg">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3 left-div">
|
<div class="row g-3 align-items-center mt-3 left-div">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputTransition" class="col-form-label"
|
<label for="inputTransition" class="col-form-label"
|
||||||
@@ -491,7 +478,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row g-3 align-items-center left-div">
|
<!-- <div class="row g-3 align-items-center left-div">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputTransition" class="col-form-label"
|
<label for="inputTransition" class="col-form-label"
|
||||||
>Display Intraday Chart
|
>Display Intraday Chart
|
||||||
@@ -510,7 +497,7 @@
|
|||||||
{%endif%}
|
{%endif%}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div class="row g-3 align-items-center left-div">
|
<div class="row g-3 align-items-center left-div">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
@@ -662,6 +649,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="limit-msg">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputTransition" class="col-form-label"
|
<label for="inputTransition" class="col-form-label"
|
||||||
@@ -725,7 +715,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row g-3 align-items-center">
|
<!-- <div class="row g-3 align-items-center">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputTransition" class="col-form-label"
|
<label for="inputTransition" class="col-form-label"
|
||||||
>Display Intraday Chart
|
>Display Intraday Chart
|
||||||
@@ -744,7 +734,7 @@
|
|||||||
{%endif%}
|
{%endif%}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div class="row g-3 align-items-center">
|
<div class="row g-3 align-items-center">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
@@ -895,6 +885,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="limit-msg">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputTransition" class="col-form-label"
|
<label for="inputTransition" class="col-form-label"
|
||||||
@@ -957,7 +950,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!--
|
||||||
<div class="row g-3 align-items-center">
|
<div class="row g-3 align-items-center">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputTransition" class="col-form-label"
|
<label for="inputTransition" class="col-form-label"
|
||||||
@@ -977,7 +970,7 @@
|
|||||||
{%endif%}
|
{%endif%}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div class="row g-3 align-items-center">
|
<div class="row g-3 align-items-center">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
@@ -1127,6 +1120,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="limit-msg">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputScrollSpeed" class="col-form-label"
|
<label for="inputScrollSpeed" class="col-form-label"
|
||||||
@@ -1188,7 +1184,26 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center mt-3">
|
||||||
|
<div class="col-auto">
|
||||||
|
<label for="inputText" class="col-form-label">API Key: </label>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="api-key1"
|
||||||
|
class="form-control api-key"
|
||||||
|
aria-describedby="TextHelpInline"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<button id="weather-api-btn" class="btn set-btn">Add</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-4 col-sm-12">
|
<div class="col-lg-4 col-md-4 col-sm-12">
|
||||||
<h6 class="mt-3">List:</h6>
|
<h6 class="mt-3">List:</h6>
|
||||||
<div class="features-div-two">
|
<div class="features-div-two">
|
||||||
@@ -1316,6 +1331,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="limit-msg">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputScrollSpeed52" class="col-form-label"
|
<label for="inputScrollSpeed52" class="col-form-label"
|
||||||
@@ -1393,7 +1411,25 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row g-3 align-items-center mt-3">
|
||||||
|
<div class="col-auto">
|
||||||
|
<label for="inputText" class="col-form-label">API Key: </label>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="api-key"
|
||||||
|
class="form-control api-key"
|
||||||
|
aria-describedby="TextHelpInline"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<button id="weather-api-btn" class="btn set-btn">Add</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="col-lg-4 col-md-4 col-sm-12">
|
<div class="col-lg-4 col-md-4 col-sm-12">
|
||||||
<h6 class="mt-3">List:</h6>
|
<h6 class="mt-3">List:</h6>
|
||||||
<div class="features-div-two">
|
<div class="features-div-two">
|
||||||
@@ -1503,6 +1539,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputScrollSpeed62" class="col-form-label"
|
<label for="inputScrollSpeed62" class="col-form-label"
|
||||||
@@ -1514,12 +1551,27 @@
|
|||||||
id="inputScrollSpeed62"
|
id="inputScrollSpeed62"
|
||||||
class="form-select country-select"
|
class="form-select country-select"
|
||||||
>
|
>
|
||||||
<option>US</option>
|
<option>United States</option>
|
||||||
<option>GB</option>
|
<option>Australia</option>
|
||||||
|
<option>Canada</option>
|
||||||
|
<option>Great Britain</option>
|
||||||
|
<option>New Zealand</option>
|
||||||
|
<option>Ireland</option>
|
||||||
|
<option>Singapore</option>
|
||||||
|
<option>South Africa</option>
|
||||||
|
<option>Worldwide</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input
|
||||||
|
class="form-check-input title-select news_check_class"
|
||||||
|
type="checkbox"
|
||||||
|
value=""
|
||||||
|
id="flexCheckChecked30"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
@@ -1533,17 +1585,47 @@
|
|||||||
class="form-select category-select"
|
class="form-select category-select"
|
||||||
>
|
>
|
||||||
<option>General</option>
|
<option>General</option>
|
||||||
<option>Special</option>
|
<option>Business</option>
|
||||||
<option></option>
|
<option>Entertainment</option>
|
||||||
<option></option>
|
<option>Health</option>
|
||||||
<option></option>
|
<option>Science</option>
|
||||||
|
<option>Sports</option>
|
||||||
|
<option>Technology</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<input
|
||||||
|
class="form-check-input title-select news_check_class"
|
||||||
|
type="checkbox"
|
||||||
|
value=""
|
||||||
|
id="flexCheckChecked31"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3 align-items-center mt-3">
|
||||||
|
<div class="col-auto">
|
||||||
|
<label for="inputTransition62" class="col-form-label"
|
||||||
|
>Headlines to display:
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<select
|
||||||
|
id="inputTransition62"
|
||||||
|
class="form-select category-select"
|
||||||
|
>
|
||||||
|
<option>10</option>
|
||||||
|
<option>15</option>
|
||||||
|
<option>20</option>
|
||||||
|
<option>25</option>
|
||||||
|
<option>30</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="text-center pt-2">Or</p>
|
<!-- <p class="text-center pt-2">Or</p> -->
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<!-- <div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<input
|
<input
|
||||||
class="form-check-input sources-select"
|
class="form-check-input sources-select"
|
||||||
@@ -1576,7 +1658,7 @@
|
|||||||
Add
|
Add
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
@@ -1718,7 +1800,7 @@
|
|||||||
<select id="inputTransition73" class="form-select">
|
<select id="inputTransition73" class="form-select">
|
||||||
<option>NFL</option>
|
<option>NFL</option>
|
||||||
<option>NBA</option>
|
<option>NBA</option>
|
||||||
<option>NHA</option>
|
<option>NHL</option>
|
||||||
<option>Premier League</option>
|
<option>Premier League</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@@ -1869,7 +1951,7 @@
|
|||||||
<select id="inputTransition83" class="form-select">
|
<select id="inputTransition83" class="form-select">
|
||||||
<option>NFL</option>
|
<option>NFL</option>
|
||||||
<option>NBA</option>
|
<option>NBA</option>
|
||||||
<option>NHA</option>
|
<option>NHL</option>
|
||||||
<option>Premier League</option>
|
<option>Premier League</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@@ -2020,8 +2102,7 @@
|
|||||||
<select id="inputTransition93" class="form-select">
|
<select id="inputTransition93" class="form-select">
|
||||||
<option>NFL</option>
|
<option>NFL</option>
|
||||||
<option>NBA</option>
|
<option>NBA</option>
|
||||||
<option>NHA</option>
|
<option>NHL</option>
|
||||||
<option>Premier League</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
@@ -2170,8 +2251,8 @@
|
|||||||
<select id="inputTransition103" class="form-select">
|
<select id="inputTransition103" class="form-select">
|
||||||
<option>NFL</option>
|
<option>NFL</option>
|
||||||
<option>NBA</option>
|
<option>NBA</option>
|
||||||
<option>NHA</option>
|
<option>NHL</option>
|
||||||
<option>PL</option>
|
<option>Premier League</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
@@ -2277,6 +2358,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="limit-msg">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputScrollSpeed11" class="col-form-label"
|
<label for="inputScrollSpeed11" class="col-form-label"
|
||||||
@@ -2457,6 +2541,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="limit-msg">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputScrollSpeed12" class="col-form-label"
|
<label for="inputScrollSpeed12" class="col-form-label"
|
||||||
@@ -2635,6 +2722,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="limit-msg">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row g-3 align-items-center mt-3">
|
<div class="row g-3 align-items-center mt-3">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label for="inputScrollSpeed13" class="col-form-label"
|
<label for="inputScrollSpeed13" class="col-form-label"
|
||||||
@@ -2969,26 +3059,29 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<button class="btn set-btn h-50-px" id="join-network-btn">
|
</div>
|
||||||
|
<button class="btn set-btn" id="join-network-btn">
|
||||||
Join Network
|
Join Network
|
||||||
</button>
|
</button>
|
||||||
<p class="font-6 m-0 position-absolute" id="connected-text">
|
<div id="network-status" style="padding-left:2%;padding-right:2%"></div>
|
||||||
Connected
|
<div class="status rounded-circle" id="circle-1" style="display:none"></div>
|
||||||
</p>
|
<div class="status rounded-circle" id="circle-2" style="display:none"></div>
|
||||||
|
<div class="status rounded-circle" id="circle-3" style="display:none"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Footer -->
|
<!-- Footer -->
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<p>© 2021 Fintic All Rights Reserved</p>
|
<p>© 2022 Fintic All Rights Reserved</p>
|
||||||
<p>Data Provided by IEX Cloud, Openweathermap, CoinGecko,</p>
|
<p>Data Provided by IEX Cloud, Openweathermap, CoinGecko,</p>
|
||||||
<p>Frankfurter API, NewsAPI</p>
|
<p>Exchangerate-API, TheSportsDB, Commodities-API, NewsAPI</p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
|
<script src="{{ url_for('static', filename='js/jquery-2.1.1.js') }}"></script>
|
||||||
<script src="{{ url_for('static', filename='app.js') }}"></script>
|
<script src="{{ url_for('static', filename='app.js') }}"></script>
|
||||||
<script>
|
<script>
|
||||||
$("#drop").on("change", function () {
|
$("#drop").on("change", function () {
|
||||||
@@ -2998,6 +3091,45 @@
|
|||||||
$("#Page" + value).show();
|
$("#Page" + value).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// check / uncheck category and country checkboxes
|
||||||
|
$('.news_check_class').on('change', function() {
|
||||||
|
$('.news_check_class').not(this).prop('checked', false);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
setInterval(async () => {
|
||||||
|
// const result = await checkOnlineStatus();
|
||||||
|
const statusDisplay = $("#network-status");
|
||||||
|
var result;
|
||||||
|
|
||||||
|
// try to send a request to some server
|
||||||
|
try {
|
||||||
|
const online = await fetch("https://static-global-s-msn-com.akamaized.net/hp-neu/sc/2b/a5ea21.ico?d="+Date.now());
|
||||||
|
console.log(online.status);
|
||||||
|
|
||||||
|
if (online.status >= 200 && online.status < 300){
|
||||||
|
statusDisplay.text("Connected");
|
||||||
|
$('#circle-1').show();
|
||||||
|
$('#circle-2').hide();
|
||||||
|
$('#circle-3').hide();
|
||||||
|
} // either true or false
|
||||||
|
else {
|
||||||
|
statusDisplay.text("Connected but No Internet");
|
||||||
|
$('#circle-1').hide();
|
||||||
|
$('#circle-2').hide();
|
||||||
|
$('#circle-3').show();
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
statusDisplay.text("Offline"); // definitely offline
|
||||||
|
$('#circle-1').hide();
|
||||||
|
$('#circle-2').show();
|
||||||
|
$('#circle-3').hide();
|
||||||
|
}
|
||||||
|
}, 3000);
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user