2021-08-11 19:58:01 +00:00
var availableFeatures = document . querySelectorAll ( "#available-features li" ) ;
2021-11-17 18:30:13 +00:00
var availableFeatures2 = document . querySelectorAll ( "#available-features-2 li" ) ;
2021-08-11 19:58:01 +00:00
var displayFormat = document . querySelector ( "#display-format" ) ;
2021-11-17 18:30:13 +00:00
var displayFormat2 = document . querySelector ( "#display-format-2" ) ;
2021-08-11 19:58:01 +00:00
var featureToDisplay = document . querySelector ( "#feature-to-display" ) ;
2021-11-17 18:30:13 +00:00
var featureToDisplay2 = document . querySelector ( "#feature-to-display-2" ) ;
2021-08-11 19:58:01 +00:00
var displayToFeature = document . querySelector ( "#display-to-feature" ) ;
2021-11-17 18:30:13 +00:00
var displayToFeature2 = document . querySelector ( "#display-to-feature-2" ) ;
2021-08-11 19:58:01 +00:00
var displayToFormat = document . querySelectorAll ( "#display-format li" ) ;
2021-11-17 18:30:13 +00:00
var displayToFormat2 = document . querySelectorAll ( "#display-format-2 li" ) ;
2021-08-11 19:58:01 +00:00
var availableToDisplay = document . querySelector ( "#available-features" ) ;
2021-11-17 18:30:13 +00:00
var availableToDisplay2 = document . querySelector ( "#available-features-2" ) ;
2021-08-11 19:58:01 +00:00
var displayincreaseBtn = document . getElementById ( "display-increase-btn" ) ;
2021-11-17 18:30:13 +00:00
var displayincreaseBtn2 = document . getElementById ( "display-increase-btn-2" ) ;
2021-08-11 19:58:01 +00:00
var displayDecreaseBtn = document . getElementById ( "display-decrease-btn" ) ;
2021-11-17 18:30:13 +00:00
var displayDecreaseBtn2 = document . getElementById ( "display-decrease-btn-2" ) ;
var secondRow = document . getElementById ( "second-row" ) ;
2021-08-11 19:58:01 +00:00
// features lists
var stocksFeatures = document . querySelectorAll ( "#stocks-features li" ) ;
var cryptoFeatures = document . querySelectorAll ( "#crypto-features li" ) ;
var forexFeatures = document . querySelectorAll ( "#forex-features li" ) ;
var currentWeatherFeatures = document . querySelectorAll (
"#current-weather-features li"
) ;
var dailyForecastFeatures = document . querySelectorAll (
"#daily-forecast-features li"
) ;
var newsFeatures = document . querySelectorAll ( "#news-features li" ) ;
var upcomingGamesFeatures = document . querySelectorAll (
"#upcoming-games-features li"
) ;
var pastGamesFeatures = document . querySelectorAll ( "#past-games-features li" ) ;
var liveGamesFeatures = document . querySelectorAll ( "#live-games-features li" ) ;
var teamStatsFeatures = document . querySelectorAll ( "#team-stats-features li" ) ;
var imagesFeatures = document . querySelectorAll ( "#images-features li" ) ;
var gifsFeatures = document . querySelectorAll ( "#gifs-features li" ) ;
var messagesFeatures = document . querySelectorAll ( "#messages-features li" ) ;
2022-06-12 18:04:59 +00:00
var commoditiesFeatures = document . querySelectorAll ( "#commodities-features li" ) ;
2022-10-05 10:29:42 +00:00
var indicesFeatures = document . querySelectorAll ( "#indices-features li" ) ;
2023-01-09 08:58:19 +00:00
var moviesFeatures = document . querySelectorAll ( "#movies-features li" ) ;
2023-03-08 06:41:44 +00:00
var ipoFeatures = document . querySelectorAll ( "#ipo-features li" ) ;
2023-06-14 07:57:05 +00:00
var economicFeatures = document . querySelectorAll ( "#economic-list li" ) ;
2021-08-11 19:58:01 +00:00
var allFeaturesList = [
stocksFeatures ,
cryptoFeatures ,
forexFeatures ,
currentWeatherFeatures ,
dailyForecastFeatures ,
newsFeatures ,
upcomingGamesFeatures ,
pastGamesFeatures ,
liveGamesFeatures ,
teamStatsFeatures ,
imagesFeatures ,
gifsFeatures ,
messagesFeatures ,
2022-06-12 18:04:59 +00:00
commoditiesFeatures ,
2022-10-05 10:29:42 +00:00
indicesFeatures ,
2023-01-09 08:58:19 +00:00
moviesFeatures ,
2023-03-08 06:41:44 +00:00
ipoFeatures ,
2023-06-14 07:57:05 +00:00
economicFeatures ,
2021-08-11 19:58:01 +00:00
] ;
// features remove buttons
var stocksRemoveBtn = document . getElementById ( "stocks-remove-btn" ) ;
var cryptoRemoveBtn = document . getElementById ( "crypto-remove-btn" ) ;
var forexRemoveBtn = document . getElementById ( "forex-remove-btn" ) ;
var currentWeatherRemoveBtn = document . getElementById (
"current-weather-remove-btn"
) ;
var dailyForecastRemoveBtn = document . getElementById (
"daily-forecast-remove-btn"
) ;
var newsRemoveBtn = document . getElementById ( "news-remove-btn" ) ;
var upcomingGamesRemoveBtn = document . getElementById (
"upcoming-games-remove-btn"
) ;
var pastGamesRemoveBtn = document . getElementById ( "past-games-remove-btn" ) ;
var liveGamesRemoveBtn = document . getElementById ( "live-games-remove-btn" ) ;
var teamStatsRemoveBtn = document . getElementById ( "team-stats-remove-btn" ) ;
var imagesRemoveBtn = document . getElementById ( "images-remove-btn" ) ;
var gifsRemoveBtn = document . getElementById ( "gifs-remove-btn" ) ;
var messagesRemoveBtn = document . getElementById ( "messages-remove-btn" ) ;
2022-06-12 18:04:59 +00:00
var commoditiesRemoveBtn = document . getElementById ( "commodities-remove-btn" ) ;
2022-10-05 10:29:42 +00:00
var indicesRemoveBtn = document . getElementById ( "indices-remove-btn" ) ;
2023-01-09 08:58:19 +00:00
var moviesRemoveBtn = document . getElementById ( "movies-remove-btn" ) ;
2023-03-08 06:41:44 +00:00
var ipoRemoveBtn = document . getElementById ( "ipo-remove-btn" ) ;
2023-06-14 07:57:05 +00:00
var economicRemoveBtn = document . getElementById ( "economic-remove-btn" ) ;
2021-08-11 19:58:01 +00:00
var allFeaturesRemoveBtns = [
stocksRemoveBtn ,
cryptoRemoveBtn ,
forexRemoveBtn ,
currentWeatherRemoveBtn ,
dailyForecastRemoveBtn ,
newsRemoveBtn ,
upcomingGamesRemoveBtn ,
pastGamesRemoveBtn ,
liveGamesRemoveBtn ,
teamStatsRemoveBtn ,
imagesRemoveBtn ,
gifsRemoveBtn ,
messagesRemoveBtn ,
2022-06-12 18:04:59 +00:00
commoditiesRemoveBtn ,
2022-10-05 10:29:42 +00:00
indicesRemoveBtn ,
2023-01-09 08:58:19 +00:00
moviesRemoveBtn ,
2023-03-08 06:41:44 +00:00
ipoRemoveBtn ,
2023-06-14 07:57:05 +00:00
economicRemoveBtn ,
2021-08-11 19:58:01 +00:00
] ;
// features increase buttons
var stocksincreaseBtn = document . getElementById ( "stocks-increase-btn" ) ;
var cryptoincreaseBtn = document . getElementById ( "crypto-increase-btn" ) ;
var forexincreaseBtn = document . getElementById ( "forex-increase-btn" ) ;
var currentWeatherincreaseBtn = document . getElementById (
"current-weather-increase-btn"
) ;
var dailyForecastincreaseBtn = document . getElementById (
"daily-forecast-increase-btn"
) ;
var newsincreaseBtn = document . getElementById ( "news-increase-btn" ) ;
var upcomingGamesincreaseBtn = document . getElementById (
"upcoming-games-increase-btn"
) ;
var pastGamesincreaseBtn = document . getElementById ( "past-games-increase-btn" ) ;
var liveGamesincreaseBtn = document . getElementById ( "live-games-increase-btn" ) ;
var teamStatsincreaseBtn = document . getElementById ( "team-stats-increase-btn" ) ;
var imagesincreaseBtn = document . getElementById ( "images-increase-btn" ) ;
var gifsincreaseBtn = document . getElementById ( "gifs-increase-btn" ) ;
var messagesincreaseBtn = document . getElementById ( "messages-increase-btn" ) ;
2022-06-12 18:04:59 +00:00
var commoditiesincreaseBtn = document . getElementById ( "commodities-increase-btn" ) ;
2022-10-05 10:29:42 +00:00
var indicesincreaseBtn = document . getElementById ( "indices-increase-btn" ) ;
2023-01-09 08:58:19 +00:00
var moviesincreaseBtn = document . getElementById ( "movies-increase-btn" ) ;
2023-03-08 06:41:44 +00:00
var ipoincreaseBtn = document . getElementById ( "ipo-increase-btn" ) ;
2023-06-14 07:57:05 +00:00
var economicincreaseBtn = document . getElementById ( "economic-increase-btn" ) ;
2021-08-11 19:58:01 +00:00
var allFeaturesIncreaseBtns = [
stocksincreaseBtn ,
cryptoincreaseBtn ,
forexincreaseBtn ,
currentWeatherincreaseBtn ,
dailyForecastincreaseBtn ,
newsincreaseBtn ,
upcomingGamesincreaseBtn ,
pastGamesincreaseBtn ,
liveGamesincreaseBtn ,
teamStatsincreaseBtn ,
imagesincreaseBtn ,
gifsincreaseBtn ,
messagesincreaseBtn ,
2022-06-12 18:04:59 +00:00
commoditiesincreaseBtn ,
2022-10-05 10:29:42 +00:00
indicesincreaseBtn ,
2023-01-09 08:58:19 +00:00
moviesincreaseBtn ,
2023-03-08 06:41:44 +00:00
ipoincreaseBtn ,
2023-06-14 07:57:05 +00:00
economicincreaseBtn ,
2021-08-11 19:58:01 +00:00
] ;
// features decrease buttons
var stocksDecreaseBtn = document . getElementById ( "stocks-decrease-btn" ) ;
var cryptoDecreaseBtn = document . getElementById ( "crypto-decrease-btn" ) ;
var forexDecreaseBtn = document . getElementById ( "forex-decrease-btn" ) ;
var currentWeatherDecreaseBtn = document . getElementById (
"current-weather-decrease-btn"
) ;
var dailyForecastDecreaseBtn = document . getElementById (
"daily-forecast-decrease-btn"
) ;
var newsDecreaseBtn = document . getElementById ( "news-decrease-btn" ) ;
var upcomingGamesDecreaseBtn = document . getElementById (
"upcoming-games-decrease-btn"
) ;
var pastGamesDecreaseBtn = document . getElementById ( "past-games-decrease-btn" ) ;
var liveGamesDecreaseBtn = document . getElementById ( "live-games-decrease-btn" ) ;
var teamStatsDecreaseBtn = document . getElementById ( "team-stats-decrease-btn" ) ;
var imagesDecreaseBtn = document . getElementById ( "images-decrease-btn" ) ;
var gifsDecreaseBtn = document . getElementById ( "gifs-decrease-btn" ) ;
var messagesDecreaseBtn = document . getElementById ( "messages-decrease-btn" ) ;
2022-06-12 18:04:59 +00:00
var commoditiesDecreaseBtn = document . getElementById ( "commodities-decrease-btn" ) ;
2022-10-05 10:29:42 +00:00
var indicesDecreaseBtn = document . getElementById ( "indices-decrease-btn" ) ;
2023-01-09 08:58:19 +00:00
var moviesDecreaseBtn = document . getElementById ( "movies-decrease-btn" ) ;
2023-03-08 06:41:44 +00:00
var ipoDecreaseBtn = document . getElementById ( "ipo-decrease-btn" ) ;
2023-06-14 07:57:05 +00:00
var economicDecreaseBtn = document . getElementById ( "economic-decrease-btn" ) ;
2021-08-11 19:58:01 +00:00
var allFeaturesDecreaseBtns = [
stocksDecreaseBtn ,
cryptoDecreaseBtn ,
forexDecreaseBtn ,
currentWeatherDecreaseBtn ,
dailyForecastDecreaseBtn ,
newsDecreaseBtn ,
upcomingGamesDecreaseBtn ,
pastGamesDecreaseBtn ,
liveGamesDecreaseBtn ,
teamStatsDecreaseBtn ,
imagesDecreaseBtn ,
gifsDecreaseBtn ,
messagesDecreaseBtn ,
2022-06-12 18:04:59 +00:00
commoditiesDecreaseBtn ,
2022-10-05 10:29:42 +00:00
indicesDecreaseBtn ,
2023-01-09 08:58:19 +00:00
moviesDecreaseBtn ,
2023-03-08 06:41:44 +00:00
ipoDecreaseBtn ,
2023-06-14 07:57:05 +00:00
economicDecreaseBtn ,
2021-08-11 19:58:01 +00:00
] ;
const changeVarValue = ( ) => {
stocksFeatures = document . querySelectorAll ( "#stocks-features li" ) ;
cryptoFeatures = document . querySelectorAll ( "#crypto-features li" ) ;
forexFeatures = document . querySelectorAll ( "#forex-features li" ) ;
currentWeatherFeatures = document . querySelectorAll (
"#current-weather-features li"
) ;
dailyForecastFeatures = document . querySelectorAll (
"#daily-forecast-features li"
) ;
newsFeatures = document . querySelectorAll ( "#news-features li" ) ;
upcomingGamesFeatures = document . querySelectorAll (
"#upcoming-games-features li"
) ;
pastGamesFeatures = document . querySelectorAll ( "#past-games-features li" ) ;
liveGamesFeatures = document . querySelectorAll ( "#live-games-features li" ) ;
teamStatsFeatures = document . querySelectorAll ( "#team-stats-features li" ) ;
imagesFeatures = document . querySelectorAll ( "#images-features li" ) ;
gifsFeatures = document . querySelectorAll ( "#gifs-features li" ) ;
messagesFeatures = document . querySelectorAll ( "#messages-features li" ) ;
2022-06-12 18:04:59 +00:00
commoditiesFeatures = document . querySelectorAll ( "#commodities-features li" ) ;
2022-10-05 10:29:42 +00:00
indicesFeatures = document . querySelectorAll ( "#indices-features li" ) ;
2023-01-09 08:58:19 +00:00
moviesFeatures = document . querySelectorAll ( "#movies-features li" ) ;
2023-03-08 06:41:44 +00:00
ipoFeatures = document . querySelectorAll ( "#ipo-features li" ) ;
2023-06-14 07:57:05 +00:00
economicFeatures = document . querySelectorAll ( "#economic-list li" ) ;
2023-03-08 06:41:44 +00:00
2021-08-11 19:58:01 +00:00
allFeaturesList = [
stocksFeatures ,
cryptoFeatures ,
forexFeatures ,
currentWeatherFeatures ,
dailyForecastFeatures ,
newsFeatures ,
upcomingGamesFeatures ,
pastGamesFeatures ,
liveGamesFeatures ,
teamStatsFeatures ,
imagesFeatures ,
gifsFeatures ,
messagesFeatures ,
2022-06-12 18:04:59 +00:00
commoditiesFeatures ,
2022-10-05 10:29:42 +00:00
indicesFeatures ,
2023-01-09 08:58:19 +00:00
moviesFeatures ,
2023-03-08 06:41:44 +00:00
ipoFeatures ,
2023-06-14 07:57:05 +00:00
economicFeatures ,
2021-08-11 19:58:01 +00:00
] ;
} ;
const addEventOnList = ( ) => {
// for available feature
for ( let i = 0 ; i < availableFeatures . length ; i ++ ) {
const availableFeature = availableFeatures [ i ] ;
availableFeature . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < availableFeatures . length ; i ++ ) {
availableFeatures [ i ] . setAttribute ( "class" , "" ) ;
}
if ( availableFeature . getAttribute ( "class" ) == "active" ) {
availableFeature . setAttribute ( "class" , "" ) ;
} else {
availableFeature . setAttribute ( "class" , "active" ) ;
}
} ) ;
}
2021-11-17 18:30:13 +00:00
// for available feature 2
for ( let i = 0 ; i < availableFeatures2 . length ; i ++ ) {
const availableFeature = availableFeatures2 [ i ] ;
availableFeature . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < availableFeatures2 . length ; i ++ ) {
availableFeatures2 [ i ] . setAttribute ( "class" , "" ) ;
}
if ( availableFeature . getAttribute ( "class" ) == "active" ) {
availableFeature . setAttribute ( "class" , "" ) ;
} else {
availableFeature . setAttribute ( "class" , "active" ) ;
}
} ) ;
}
2021-08-11 19:58:01 +00:00
// for display format
for ( let i = 0 ; i < displayToFormat . length ; i ++ ) {
const display _format = displayToFormat [ i ] ;
display _format . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < displayToFormat . length ; i ++ ) {
displayToFormat [ i ] . setAttribute ( "class" , "" ) ;
}
if ( display _format . getAttribute ( "class" ) == "active" ) {
display _format . setAttribute ( "class" , "" ) ;
} else {
display _format . setAttribute ( "class" , "active" ) ;
}
} ) ;
}
2021-11-17 18:30:13 +00:00
// for display format 2
for ( let i = 0 ; i < displayToFormat2 . length ; i ++ ) {
const display _format = displayToFormat2 [ i ] ;
display _format . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < displayToFormat2 . length ; i ++ ) {
displayToFormat2 [ i ] . setAttribute ( "class" , "" ) ;
}
if ( display _format . getAttribute ( "class" ) == "active" ) {
display _format . setAttribute ( "class" , "" ) ;
} else {
display _format . setAttribute ( "class" , "active" ) ;
}
} ) ;
}
2021-08-11 19:58:01 +00:00
} ;
const addEventonBtns = ( ) => {
featureToDisplay . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < availableFeatures . length ; i ++ ) {
const availableFeature = availableFeatures [ i ] ;
if ( availableFeature . getAttribute ( "class" ) == "active" ) {
availableFeature . remove ( ) ;
availableFeature . setAttribute ( "class" , "" ) ;
displayFormat . appendChild ( availableFeature ) ;
availableFeatures = document . querySelectorAll ( "#available-features li" ) ;
displayToFormat = document . querySelectorAll ( "#display-format li" ) ;
addEventOnList ( ) ;
}
}
} ) ;
displayToFeature . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < displayToFormat . length ; i ++ ) {
const availableFormat = displayToFormat [ i ] ;
if ( availableFormat . getAttribute ( "class" ) == "active" ) {
availableFormat . remove ( ) ;
availableFormat . setAttribute ( "class" , "" ) ;
availableToDisplay . appendChild ( availableFormat ) ;
availableFeatures = document . querySelectorAll ( "#available-features li" ) ;
displayToFormat = document . querySelectorAll ( "#display-format li" ) ;
addEventOnList ( ) ;
}
}
} ) ;
2021-11-17 18:30:13 +00:00
featureToDisplay2 . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < availableFeatures2 . length ; i ++ ) {
const availableFeature = availableFeatures2 [ i ] ;
if ( availableFeature . getAttribute ( "class" ) == "active" ) {
availableFeature . remove ( ) ;
availableFeature . setAttribute ( "class" , "" ) ;
displayFormat2 . appendChild ( availableFeature ) ;
availableFeatures2 = document . querySelectorAll (
"#available-features-2 li"
) ;
displayToFormat2 = document . querySelectorAll ( "#display-format-2 li" ) ;
addEventOnList ( ) ;
}
}
} ) ;
displayToFeature2 . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < displayToFormat2 . length ; i ++ ) {
const availableFormat = displayToFormat2 [ i ] ;
if ( availableFormat . getAttribute ( "class" ) == "active" ) {
availableFormat . remove ( ) ;
availableFormat . setAttribute ( "class" , "" ) ;
availableToDisplay2 . appendChild ( availableFormat ) ;
availableFeatures2 = document . querySelectorAll (
"#available-features-2 li"
) ;
displayToFormat2 = document . querySelectorAll ( "#display-format-2 li" ) ;
addEventOnList ( ) ;
}
}
} ) ;
2021-08-11 19:58:01 +00:00
} ;
addEventOnList ( ) ;
addEventonBtns ( ) ;
const addEventOnFeaturesList = ( ) => {
allFeaturesList . map ( ( value ) => {
for ( let i = 0 ; i < value . length ; i ++ ) {
const availableFeature = value [ i ] ;
availableFeature . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < value . length ; i ++ ) {
value [ i ] . setAttribute ( "class" , "" ) ;
}
if ( availableFeature . getAttribute ( "class" ) == "active" ) {
availableFeature . setAttribute ( "class" , "" ) ;
} else {
availableFeature . setAttribute ( "class" , "active" ) ;
2022-02-26 16:35:15 +00:00
let getCustomImages = JSON . parse (
localStorage . getItem ( "customImages" )
) ;
let getCustomGifs = JSON . parse ( localStorage . getItem ( "customGifs" ) ) ;
let getCustomMsg = JSON . parse ( localStorage . getItem ( "customMsg" ) ) ;
2021-11-17 18:30:13 +00:00
getCustomImages . map ( ( value ) => {
let scrollSpeed1 = document . getElementById ( "inputScrollSpeed11" ) ;
let scrollSpeed2 = document . getElementById ( "inputScrollSpeedRow11" ) ;
let inputTransition = document . getElementById ( "inputTransition11" ) ;
let inputText12 = document . getElementById ( "inputText12" ) ;
let displayCheck = document . getElementById ( "flexCheckChecked25" ) ;
if ( value . fileName == availableFeature . innerText ) {
scrollSpeed1 . value = value . scrollSpeed ;
scrollSpeed2 . value = value . scrollSpeed2 ;
inputTransition . value = value . transition ;
inputText12 . value = value . pauseScreen ;
displayCheck . checked = value . displayCheck ;
}
} ) ;
getCustomGifs . map ( ( value ) => {
let scrollSpeed1 = document . getElementById ( "inputScrollSpeed12" ) ;
let scrollSpeed2 = document . getElementById ( "inputScrollSpeedRow12" ) ;
let inputTransition = document . getElementById ( "inputTransition12" ) ;
let inputText12 = document . getElementById ( "inputText112" ) ;
let displayCheck = document . getElementById ( "flexCheckChecked28" ) ;
if ( value . fileName == availableFeature . innerText ) {
scrollSpeed1 . value = value . scrollSpeed ;
scrollSpeed2 . value = value . scrollSpeed2 ;
inputTransition . value = value . transition ;
inputText12 . value = value . pauseScreen ;
displayCheck . checked = value . displayCheck ;
}
} ) ;
getCustomMsg . map ( ( value ) => {
let scrollSpeed1 = document . getElementById ( "inputScrollSpeed13" ) ;
let scrollSpeed2 = document . getElementById ( "inputScrollSpeedRow13" ) ;
let inputTransition = document . getElementById ( "inputTransition13" ) ;
let inputMsg = document . getElementById ( "inputText14" ) ;
let inputColor = document . getElementById ( "inputScrollSpeed16" ) ;
let inputSize = document . getElementById ( "inputScrollSpeed17" ) ;
let inputBg = document . getElementById ( "inputScrollSpeed19" ) ;
let displayCheck = document . getElementById ( "flexCheckChecked29" ) ;
if ( value . messageName == availableFeature . innerText ) {
scrollSpeed1 . value = value . scrollSpeed1 ;
scrollSpeed2 . value = value . scrollSpeed2 ;
inputTransition . value = value . transition ;
inputMsg . value = value . messageInput ;
inputColor . value = value . colorInput ;
inputSize . value = value . sizeInput ;
inputBg . value = value . backgroundInput ;
displayCheck . checked = value . displayCheck ;
}
} ) ;
2021-08-11 19:58:01 +00:00
}
} ) ;
}
} ) ;
} ;
addEventOnFeaturesList ( ) ;
// display increase function
displayincreaseBtn . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < displayToFormat . length ; i ++ ) {
var displayItem = displayToFormat [ i ] ;
if ( displayItem . getAttribute ( "class" ) == "active" ) {
var prevElement = displayItem . previousElementSibling ;
var currentText = displayItem . innerText ;
displayItem . innerText = prevElement . innerText ;
prevElement . innerText = currentText ;
prevElement . setAttribute ( "class" , "active" ) ;
displayItem . setAttribute ( "class" , "" ) ;
}
}
} ) ;
2021-11-17 18:30:13 +00:00
// display increase 2 function
displayincreaseBtn2 . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < displayToFormat2 . length ; i ++ ) {
var displayItem = displayToFormat2 [ i ] ;
if ( displayItem . getAttribute ( "class" ) == "active" ) {
var prevElement = displayItem . previousElementSibling ;
var currentText = displayItem . innerText ;
displayItem . innerText = prevElement . innerText ;
prevElement . innerText = currentText ;
prevElement . setAttribute ( "class" , "active" ) ;
displayItem . setAttribute ( "class" , "" ) ;
}
}
} ) ;
2021-08-11 19:58:01 +00:00
// display decrease function
displayDecreaseBtn . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < displayToFormat . length ; i ++ ) {
var displayItem = displayToFormat [ i ] ;
if ( displayItem . getAttribute ( "class" ) == "active" ) {
var nextElement = displayItem . nextElementSibling ;
var currentText = displayItem . innerText ;
displayItem . innerText = nextElement . innerText ;
nextElement . innerText = currentText ;
nextElement . setAttribute ( "class" , "active" ) ;
displayItem . setAttribute ( "class" , "" ) ;
break ;
}
}
} ) ;
2021-11-17 18:30:13 +00:00
// display decrease 2 function
displayDecreaseBtn2 . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < displayToFormat2 . length ; i ++ ) {
var displayItem = displayToFormat2 [ i ] ;
if ( displayItem . getAttribute ( "class" ) == "active" ) {
var nextElement = displayItem . nextElementSibling ;
var currentText = displayItem . innerText ;
displayItem . innerText = nextElement . innerText ;
nextElement . innerText = currentText ;
nextElement . setAttribute ( "class" , "active" ) ;
displayItem . setAttribute ( "class" , "" ) ;
break ;
}
}
} ) ;
2021-08-11 19:58:01 +00:00
// feature remove function
allFeaturesRemoveBtns . map ( ( value , index ) => {
value . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < allFeaturesList [ index ] . length ; i ++ ) {
var item = allFeaturesList [ index ] [ i ] ;
2022-02-24 18:35:43 +00:00
console . log ( item ) ;
2023-03-17 08:50:55 +00:00
if ( ( item . getAttribute ( "class" ) == "active" ) && ( index == 0 ) ) {
let symbol = item . innerText ;
item . remove ( ) ;
uploaded _images = [ ] ;
uploaded _GIFs = [ ] ;
fetch ( "/deletePortfolioSettings" , {
method : "POST" ,
body : JSON . stringify ( symbol ) ,
} ) ;
}
2023-03-17 09:22:10 +00:00
else if ( ( item . getAttribute ( "class" ) == "active" ) && ( index == 1 ) ) {
let symbol = item . innerText ;
item . remove ( ) ;
uploaded _images = [ ] ;
uploaded _GIFs = [ ] ;
fetch ( "/deletePortfolioCryptoSettings" , {
method : "POST" ,
body : JSON . stringify ( symbol ) ,
} ) ;
}
2023-03-17 08:50:55 +00:00
else if ( item . getAttribute ( "class" ) == "active" ) {
2022-02-24 18:35:43 +00:00
item . remove ( ) ;
2022-03-02 10:18:05 +00:00
uploaded _images = [ ] ;
uploaded _GIFs = [ ] ;
2021-08-11 19:58:01 +00:00
}
}
} ) ;
} ) ;
// feature increase function
allFeaturesIncreaseBtns . map ( ( value , index ) => {
value . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < allFeaturesList [ index ] . length ; i ++ ) {
var item = allFeaturesList [ index ] [ i ] ;
if ( item . getAttribute ( "class" ) == "active" ) {
var prevElement = item . previousElementSibling ;
var currentText = item . innerText ;
item . innerText = prevElement . innerText ;
prevElement . innerText = currentText ;
prevElement . setAttribute ( "class" , "active" ) ;
item . setAttribute ( "class" , "" ) ;
}
}
} ) ;
} ) ;
// feature decrease function
allFeaturesDecreaseBtns . map ( ( value , index ) => {
value . addEventListener ( "click" , ( ) => {
for ( let i = 0 ; i < allFeaturesList [ index ] . length ; i ++ ) {
var item = allFeaturesList [ index ] [ i ] ;
if ( item . getAttribute ( "class" ) == "active" ) {
var nextElement = item . nextElementSibling ;
var currentText = item . innerText ;
item . innerText = nextElement . innerText ;
nextElement . innerText = currentText ;
nextElement . setAttribute ( "class" , "active" ) ;
item . setAttribute ( "class" , "" ) ;
break ;
}
}
} ) ;
} ) ;
// all features
var stocks = document . getElementById ( "stocks-features" ) ;
var crypto1 = document . getElementById ( "crypto-features" ) ;
var forex = document . getElementById ( "forex-features" ) ;
var currentWeather = document . getElementById ( "current-weather-features" ) ;
var dailyForecast = document . getElementById ( "daily-forecast-features" ) ;
var news = document . getElementById ( "news-features" ) ;
var upcomingGames = document . getElementById ( "upcoming-games-features" ) ;
var pastGames = document . getElementById ( "past-games-features" ) ;
var liveGames = document . getElementById ( "live-games-features" ) ;
var teamStats = document . getElementById ( "team-stats-features" ) ;
var images = document . getElementById ( "images-features" ) ;
var gifs = document . getElementById ( "gifs-features" ) ;
var messages = document . getElementById ( "messages-features" ) ;
2022-06-12 18:04:59 +00:00
var commodities = document . getElementById ( "commodities-features" ) ;
2022-10-05 10:29:42 +00:00
var indices = document . getElementById ( "indices-features" ) ;
2023-01-09 08:58:19 +00:00
var movies = document . getElementById ( "movies-features" ) ;
2023-03-08 06:41:44 +00:00
var ipos = document . getElementById ( "ipo-features" ) ;
2023-06-14 07:57:05 +00:00
var economics = document . getElementById ( "economic-list" ) ;
2021-08-11 19:58:01 +00:00
var allFeatures = [
stocks ,
crypto1 ,
forex ,
currentWeather ,
dailyForecast ,
news ,
upcomingGames ,
pastGames ,
liveGames ,
teamStats ,
images ,
gifs ,
messages ,
2022-06-12 18:04:59 +00:00
commodities ,
2022-10-05 10:29:42 +00:00
indices ,
2023-01-09 08:58:19 +00:00
movies ,
2023-03-08 06:41:44 +00:00
ipos ,
2023-06-14 07:57:05 +00:00
economics ,
2021-08-11 19:58:01 +00:00
] ;
// features select box
var newsSelect = document . getElementById ( "inputTransition63" ) ;
var upcomingGamesSelect = document . getElementById ( "inputTransition73" ) ;
var pastGamesSelect = document . getElementById ( "inputTransition83" ) ;
var liveGamesSelect = document . getElementById ( "inputTransition93" ) ;
var teamStatsSelect = document . getElementById ( "inputTransition103" ) ;
2023-01-09 08:58:19 +00:00
var moviesSelect = document . getElementById ( "inputTransition64" ) ;
2023-06-14 07:57:05 +00:00
var economicSelect = document . getElementById ( "inputTransition2222" ) ;
2021-08-11 19:58:01 +00:00
var allFeaturesSelectBox = [
null ,
null ,
null ,
null ,
null ,
newsSelect ,
upcomingGamesSelect ,
pastGamesSelect ,
liveGamesSelect ,
teamStatsSelect ,
null ,
null ,
null ,
2022-06-12 18:04:59 +00:00
null ,
2022-10-05 10:29:42 +00:00
null ,
2023-01-09 08:58:19 +00:00
moviesSelect ,
2023-03-08 06:41:44 +00:00
null ,
2023-06-14 07:57:05 +00:00
economicSelect ,
2021-08-11 19:58:01 +00:00
] ;
// features select add buttons
var newsAddBtn = document . getElementById ( "inputTransitionBtn63" ) ;
var upcomingGamesAddBtn = document . getElementById ( "inputTransitionBtn73" ) ;
var pastGamesAddBtn = document . getElementById ( "inputTransitionBtn83" ) ;
var liveGamesAddBtn = document . getElementById ( "inputTransitionBtn93" ) ;
var teamStatsAddBtn = document . getElementById ( "inputTransitionBtn103" ) ;
2023-06-14 07:57:05 +00:00
var economicAddBtn = document . getElementById ( "economic-countries-btn" ) ;
2021-08-11 19:58:01 +00:00
var allFeaturesSelectAddBtn = [
null ,
null ,
null ,
null ,
null ,
newsAddBtn ,
upcomingGamesAddBtn ,
pastGamesAddBtn ,
liveGamesAddBtn ,
teamStatsAddBtn ,
null ,
null ,
null ,
2022-06-12 18:04:59 +00:00
null ,
2022-10-05 10:29:42 +00:00
null ,
2023-01-09 08:58:19 +00:00
null ,
2023-03-08 06:41:44 +00:00
null ,
2023-06-14 07:57:05 +00:00
economicAddBtn ,
2021-08-11 19:58:01 +00:00
] ;
allFeaturesSelectAddBtn . map ( ( value , index ) => {
if ( value != null ) {
value . addEventListener ( "click" , ( ) => {
var tag = document . createElement ( "li" ) ;
tag . innerHTML = allFeaturesSelectBox [ index ] . value ;
allFeatures [ index ] . appendChild ( tag ) ;
changeVarValue ( ) ;
addEventOnFeaturesList ( ) ;
} ) ;
}
} ) ;
// features input file
var imagesFile = document . getElementById ( "inputText11" ) ;
var gifsFile = document . getElementById ( "inputText1112" ) ;
var allFeaturesFile = [
null ,
null ,
null ,
null ,
null ,
null ,
null ,
null ,
null ,
null ,
imagesFile ,
gifsFile ,
null ,
2022-06-12 18:04:59 +00:00
null ,
2022-10-05 10:29:42 +00:00
null ,
2023-01-09 08:58:19 +00:00
null ,
2023-03-08 06:41:44 +00:00
null ,
2023-06-14 07:57:05 +00:00
null ,
2021-08-11 19:58:01 +00:00
] ;
// features file add button
var imagesFileAddBtn = document . getElementById ( "inputTextBtn11" ) ;
var gifsFileAddBtn = document . getElementById ( "inputTextBtn1112" ) ;
var allFeaturesFileAddBtn = [
null ,
null ,
null ,
null ,
null ,
null ,
null ,
null ,
null ,
null ,
imagesFileAddBtn ,
gifsFileAddBtn ,
null ,
2022-06-12 18:04:59 +00:00
null ,
2022-10-05 10:29:42 +00:00
null ,
2023-01-09 08:58:19 +00:00
null ,
2023-03-08 06:41:44 +00:00
null ,
2023-06-14 07:57:05 +00:00
null ,
2021-08-11 19:58:01 +00:00
] ;
// features input text
var stocksText = document . getElementById ( "inputText3" ) ;
var cryptoText = document . getElementById ( "inputText4" ) ;
2023-06-12 07:31:14 +00:00
var forexText = document . getElementById ( "base-select" ) . value + ',' + document . getElementById ( "quote-select" ) . value ;
2021-08-11 19:58:01 +00:00
var currentWeatherText = document . getElementById ( "inputText6" ) ;
var dailyForecastText = document . getElementById ( "inputText7" ) ;
var messagesText = document . getElementById ( "inputText13" ) ;
2023-06-12 07:39:30 +00:00
var indicesText = document . getElementById ( "indices-items" ) ;
var commoditiesText = document . getElementById ( "commodities-items" ) ;
2021-08-11 19:58:01 +00:00
var allFeaturesText = [
stocksText ,
cryptoText ,
forexText ,
currentWeatherText ,
dailyForecastText ,
null ,
null ,
null ,
null ,
null ,
null ,
null ,
messagesText ,
2022-06-12 18:04:59 +00:00
commoditiesText ,
2022-10-05 10:29:42 +00:00
indicesText ,
2023-01-09 08:58:19 +00:00
null ,
2023-03-08 06:41:44 +00:00
null ,
2023-06-14 07:57:05 +00:00
null ,
2021-08-11 19:58:01 +00:00
] ;
// features text add button
var stocksTextAddBtn = document . getElementById ( "inputTextBtn3" ) ;
var cryptoTextAddBtn = document . getElementById ( "inputTextBtn4" ) ;
var forexTextAddBtn = document . getElementById ( "inputTextBtn5" ) ;
var currentWeatherTextAddBtn = document . getElementById ( "inputTextBtn6" ) ;
var dailyForecastTextAddBtn = document . getElementById ( "inputTextBtn7" ) ;
var messagesTextAddBtn = document . getElementById ( "inputTextBtn13" ) ;
2022-06-12 18:04:59 +00:00
var commoditiesTextAddBtn = document . getElementById ( "inputTextBtn20" ) ;
2022-10-05 10:29:42 +00:00
var indicesTextAddBtn = document . getElementById ( "inputTextBtn21" ) ;
2021-08-11 19:58:01 +00:00
var allFeaturesTextAddBtn = [
stocksTextAddBtn ,
cryptoTextAddBtn ,
forexTextAddBtn ,
currentWeatherTextAddBtn ,
dailyForecastTextAddBtn ,
null ,
null ,
null ,
null ,
null ,
null ,
null ,
messagesTextAddBtn ,
2022-06-12 18:04:59 +00:00
commoditiesTextAddBtn ,
2022-10-05 10:29:42 +00:00
indicesTextAddBtn ,
2023-01-09 08:58:19 +00:00
null ,
2023-03-08 06:41:44 +00:00
null ,
2023-06-14 07:57:05 +00:00
null ,
2021-08-11 19:58:01 +00:00
] ;
2022-02-24 18:35:43 +00:00
var allFeaturesLimit = [
200 ,
100 ,
100 ,
20 ,
20 ,
null ,
null ,
null ,
null ,
null ,
20 ,
20 ,
20 ,
2022-06-12 18:04:59 +00:00
30 ,
2022-10-05 10:29:42 +00:00
40 ,
2023-01-09 08:58:19 +00:00
null ,
2023-03-08 06:41:44 +00:00
null ,
2023-06-14 07:57:05 +00:00
null ,
2022-02-24 18:35:43 +00:00
] ;
2022-06-11 16:19:01 +00:00
var createLi = false ;
// function addingItems() {
2021-08-11 19:58:01 +00:00
allFeaturesTextAddBtn . map ( ( value , index ) => {
if ( value !== null ) {
value . addEventListener ( "click" , ( ) => {
2022-06-11 16:19:01 +00:00
if ( ( value == messagesTextAddBtn ) && ( createLi === true ) ) {
2021-11-17 18:30:13 +00:00
// custom message
let messageName = document . getElementById ( "inputText13" ) . value ;
let scrollSpeed1 = document . getElementById ( "inputScrollSpeed13" ) . value ;
let scrollSpeed2 = document . getElementById (
"inputScrollSpeedRow13"
) . value ;
let transition = document . getElementById ( "inputTransition13" ) . value ;
let messageInput = document . getElementById ( "inputText14" ) . value ;
let colorInput = document . getElementById ( "inputScrollSpeed16" ) . value ;
let sizeInput = document . getElementById ( "inputScrollSpeed17" ) . value ;
let backgroundInput =
document . getElementById ( "inputScrollSpeed19" ) . value ;
let displayCheck =
document . getElementById ( "flexCheckChecked29" ) . checked ;
let messagesWrapper = document . getElementById ( "messages-features" ) ;
let fileFound = false ;
for ( let i = 0 ; i < messagesWrapper . children . length ; i ++ ) {
fileFound =
messagesWrapper . children [ i ] ? . innerText == messageName && true ;
}
if ( ! fileFound ) {
let values = {
messageName ,
scrollSpeed1 ,
scrollSpeed2 ,
transition ,
messageInput ,
colorInput ,
sizeInput ,
backgroundInput ,
displayCheck ,
} ;
2022-02-26 16:35:15 +00:00
let getCustomMsg = localStorage . getItem ( "customMsg" ) ;
2021-11-17 18:30:13 +00:00
let newValues = getCustomMsg && JSON . parse ( getCustomMsg ) ;
getCustomMsg && newValues . push ( values ) ;
2022-02-24 18:35:43 +00:00
// getCustomMsg
// ? localStorage.setItem("customMsg", JSON.stringify(newValues))
// : localStorage.setItem("customMsg", JSON.stringify([values]));
2022-06-11 16:19:01 +00:00
2021-11-17 18:30:13 +00:00
var tag = document . createElement ( "li" ) ;
2022-02-24 18:35:43 +00:00
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 {
tag . innerHTML = allFeaturesText [ index ] . value ;
2023-07-07 08:22:21 +00:00
tag . setAttribute ( "onclick" , "getCustomMsg(this.innerText)" ) ;
2022-02-24 18:35:43 +00:00
allFeatures [ index ] . appendChild ( tag ) ;
changeVarValue ( ) ;
addEventOnFeaturesList ( ) ;
2022-06-11 16:19:01 +00:00
createLi = false ;
} }
2021-11-17 18:30:13 +00:00
} else {
2022-02-24 18:35:43 +00:00
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 {
2022-06-11 16:19:01 +00:00
if ( createLi === true ) {
2022-02-24 18:35:43 +00:00
var tag = document . createElement ( "li" ) ;
2023-06-12 07:31:14 +00:00
if ( index == 2 ) {
tag . innerHTML = document . getElementById ( "base-select" ) . value + ',' + document . getElementById ( "quote-select" ) . value ;
} else {
tag . innerHTML = allFeaturesText [ index ] . value ;
}
2022-02-24 18:35:43 +00:00
allFeatures [ index ] . appendChild ( tag ) ;
changeVarValue ( ) ;
addEventOnFeaturesList ( ) ;
2022-06-11 16:19:01 +00:00
createLi = false ;
2022-02-24 18:35:43 +00:00
}
}
2022-06-11 16:19:01 +00:00
} } ) ;
2021-08-11 19:58:01 +00:00
}
} ) ;
2022-06-14 09:37:57 +00:00
var startButton = document . getElementById ( "start-btn" ) ;
// start the display
startButton . addEventListener ( "click" , ( ) => {
fetch ( "/start" , {
method : "PUT" ,
} ) ;
} ) ;
2021-10-25 18:42:00 +00:00
var brightnessButton = document . getElementById ( "brightness-btn" ) ;
// start the display
brightnessButton . addEventListener ( "click" , ( ) => {
let brightness = document . querySelectorAll ( ".brightness-text" ) [ 0 ] . value ;
fetch ( "/brightness" , {
2021-11-17 18:30:13 +00:00
method : "PUT" ,
body : JSON . stringify ( { brightness : brightness } ) ,
2021-10-25 18:42:00 +00:00
} ) ;
} ) ;
2021-08-18 19:50:02 +00:00
var shutdownButton = document . getElementById ( "shutdown-btn" ) ;
shutdownButton . addEventListener ( "click" , ( ) => {
fetch ( "/shutdown" , {
2021-11-17 18:30:13 +00:00
method : "GET" ,
2021-08-18 19:50:02 +00:00
} ) ;
2023-01-30 13:33:45 +00:00
document . getElementById ( 'yooo' ) . style . display = "block" ;
2021-08-18 19:50:02 +00:00
} ) ;
2022-02-24 18:35:43 +00:00
var restartButton = document . getElementById ( "restart-btn" ) ;
restartButton . addEventListener ( "click" , ( ) => {
fetch ( "/restart" , {
method : "GET" ,
} ) ;
2023-01-30 13:33:45 +00:00
document . getElementById ( 'yooo' ) . style . display = "block" ;
2022-02-24 18:35:43 +00:00
} ) ;
2022-02-26 16:35:15 +00:00
var resetButton = document . getElementById ( "reset-btn" ) ;
resetButton . addEventListener ( "click" , ( ) => {
fetch ( "/reset" , {
method : "GET" ,
} ) ;
2023-02-04 08:24:20 +00:00
document . getElementById ( 'yooo' ) . style . display = "block" ;
2022-02-26 16:35:15 +00:00
} ) ;
2022-02-24 18:35:43 +00:00
2021-08-18 19:50:02 +00:00
var stopButton = document . getElementById ( "stop-btn" ) ;
stopButton . addEventListener ( "click" , ( ) => {
fetch ( "/stop" , {
2021-11-17 18:30:13 +00:00
method : "GET" ,
2021-08-18 19:50:02 +00:00
} ) ;
} ) ;
2021-11-18 17:50:50 +00:00
2022-02-26 16:35:15 +00:00
var screensaverButton = document . getElementById ( "screensaver-btn" ) ;
screensaverButton . addEventListener ( "click" , ( ) => {
2021-11-18 17:50:50 +00:00
let anim = localStorage . getItem ( "inputAnimation" ) ;
fetch ( "/screensaver" , {
method : "POST" ,
body : anim ,
} ) ;
} ) ;
2021-11-20 15:30:31 +00:00
var updateButton = document . getElementById ( "update-btn" ) ;
updateButton . addEventListener ( "click" , ( ) => {
fetch ( "/update" , {
method : "POST" ,
} ) ;
} ) ;
2021-08-18 19:50:02 +00:00
var dispFormatButton = document . getElementById ( "dispformat-btn" ) ;
var displayFormats = document . getElementById ( "inputDisplayFormat" ) ;
2021-09-16 19:23:04 +00:00
// gets selected functions to display
2021-08-18 19:50:02 +00:00
function getSelected ( selector ) {
var opt ;
2021-11-17 18:30:13 +00:00
for ( var i = 0 , len = selector . options . length ; i < len ; i ++ ) {
opt = selector . options [ i ] ;
if ( opt . selected === true ) {
break ;
}
2021-08-18 19:50:02 +00:00
}
2021-11-17 18:30:13 +00:00
2021-08-18 19:50:02 +00:00
return opt . innerHTML ;
}
2021-09-16 19:23:04 +00:00
function getListItems ( list _el ) {
let symbols = list _el . getElementsByTagName ( "li" ) ;
2021-11-17 18:30:13 +00:00
let items = [ ] ;
2021-09-16 19:23:04 +00:00
for ( var i = 0 ; i < symbols . length ; ++ i ) {
items . push ( symbols [ i ] . innerText ) ;
}
return items ;
}
2022-02-24 17:05:37 +00:00
2021-08-18 19:50:02 +00:00
2021-12-10 17:06:47 +00:00
// gets which features are to be displayed
function getDisplaying ( ) {
let opt = getSelected ( displayFormats ) ;
if ( opt . includes ( "Standard" ) ) {
var list _el = document . getElementById ( "display-format" ) ;
let features = getListItems ( list _el ) ;
2022-02-24 17:05:37 +00:00
return [ features ] ;
2021-12-10 17:06:47 +00:00
} else if ( opt . includes ( "Professional" ) ) {
var top _list _el = document . getElementById ( "display-format" ) ;
let top _features = getListItems ( top _list _el ) ;
var bot _list _el = document . getElementById ( "display-format-2" ) ;
let bot _features = getListItems ( bot _list _el ) ;
let features = [ top _features , bot _features ] ;
return features ;
}
}
2022-02-24 19:04:57 +00:00
// gets feature specific settings
function getFeatureSettings ( ) {
2021-08-18 19:50:02 +00:00
let featureSelector = document . getElementById ( "drop" ) ;
feature = getSelected ( featureSelector ) ;
2021-11-17 18:30:13 +00:00
let features = [
"Stocks" ,
"Crypto" ,
"Forex" ,
"Current Weather" ,
"Daily Forecast" ,
"News" ,
"Sports (Upcoming Games)" ,
"Sports (Past Games)" ,
"Sports (Live Games)" ,
"Sports (Team Stats)" ,
"Custom Images" ,
"Custom GIFs" ,
"Custom Messages" ,
2022-06-12 18:04:59 +00:00
"Commodities" ,
2022-10-05 10:29:42 +00:00
"Indices" ,
2023-01-09 08:58:19 +00:00
"Movies" ,
2023-03-08 06:41:44 +00:00
"IPO Calendar" ,
2023-06-14 07:57:05 +00:00
"Economic Calendar" ,
2021-11-17 18:30:13 +00:00
] ;
2021-08-18 19:50:02 +00:00
let pageNum = features . indexOf ( feature ) + 1 ;
let pageSelector = "Page" + pageNum . toString ( ) ;
2021-11-17 18:30:13 +00:00
2021-08-18 19:50:02 +00:00
let page = document . getElementById ( pageSelector ) ;
2021-11-17 18:30:13 +00:00
2021-09-16 19:23:04 +00:00
// these common to all settings
2022-03-07 16:47:07 +00:00
let speeds = page . querySelectorAll ( ".speed-select" ) ;
var speed ;
var speed2 ;
speed = getSelected ( speeds [ 0 ] ) ;
if ( speeds . length == 2 ) {
speed2 = getSelected ( page . querySelectorAll ( ".speed-select" ) [ 1 ] ) ;
} else {
speed2 = "Medium" ;
}
2021-08-18 19:50:02 +00:00
let animation = getSelected ( page . querySelectorAll ( ".animation-select" ) [ 0 ] ) ;
2021-11-17 18:30:13 +00:00
2022-03-07 16:47:07 +00:00
var settings = { feature : feature , speed : speed , speed2 : speed2 , animation : animation } ; // general settings
2021-11-17 18:30:13 +00:00
2021-09-16 19:23:04 +00:00
var s ;
//function specific settings
2021-11-17 18:30:13 +00:00
switch ( pageNum ) {
case 1 :
case 2 :
case 3 :
2021-09-16 19:23:04 +00:00
s = getTradingSettings ( page ) ;
break ;
2021-11-17 18:30:13 +00:00
case 4 :
case 5 :
2021-09-16 19:23:04 +00:00
s = getWeatherSettings ( page ) ;
break ;
2022-01-24 18:40:06 +00:00
case 6 :
2021-09-16 19:23:04 +00:00
s = getNewsSettings ( page ) ;
break ;
2021-11-17 18:30:13 +00:00
case 7 :
case 8 :
case 9 :
case 10 :
2021-09-16 19:23:04 +00:00
s = getSportsSettings ( page ) ;
break ;
2021-11-17 18:30:13 +00:00
case 11 :
case 12 :
2021-09-16 19:23:04 +00:00
s = getImageSettings ( page ) ;
break ;
case 13 :
s = getMessageSettings ( page ) ;
break ;
2022-06-12 18:04:59 +00:00
case 14 :
s = getTradingSettings ( page ) ;
break ;
2022-10-05 10:29:42 +00:00
case 15 :
s = getTradingSettings ( page ) ;
break ;
2023-01-09 08:58:19 +00:00
case 16 :
s = getMovieSettings ( page ) ;
break ;
2023-03-08 06:41:44 +00:00
case 17 :
s = getIpoSettings ( page ) ;
break ;
2023-06-14 07:57:05 +00:00
case 18 :
s = getEconomicSettings ( page ) ;
break ;
2021-09-16 19:23:04 +00:00
}
2021-12-10 17:06:47 +00:00
2021-12-29 13:05:45 +00:00
settings = { ... settings , ... s } ; // merge both sets of settings
return settings ;
}
function getFiles ( ) {
var data = new FormData ( ) ;
2021-11-17 18:30:13 +00:00
for ( var i = 0 ; i < uploaded _images . length ; i ++ ) {
2021-10-07 19:40:43 +00:00
data . append ( uploaded _images [ i ] . name , uploaded _images [ i ] ) ;
2021-12-29 13:05:45 +00:00
console . log ( uploaded _images [ i ] . name ) ;
2021-10-07 19:40:43 +00:00
}
2021-12-29 13:05:45 +00:00
for ( var i = 0 ; i < uploaded _GIFs . length ; i ++ ) {
2021-10-07 19:40:43 +00:00
data . append ( uploaded _GIFs [ i ] . name , uploaded _GIFs [ i ] ) ;
}
2021-12-29 13:05:45 +00:00
//return data;
2021-10-07 19:40:43 +00:00
fetch ( "/upload" , {
2021-11-17 18:30:13 +00:00
method : "POST" ,
body : data ,
2021-10-07 19:40:43 +00:00
} ) ;
2021-12-10 17:06:47 +00:00
}
function saveSettings ( ) {
2021-12-29 13:05:45 +00:00
let displaying = getDisplaying ( ) ;
let feature _settings = getFeatureSettings ( ) ;
let files = getFiles ( ) ;
console . log ( JSON . stringify ( { 'displaying' : displaying , 'feature_settings' : feature _settings , 'files' : files } ) ) ;
2021-12-10 17:06:47 +00:00
fetch ( "/save" , {
2021-12-29 13:05:45 +00:00
method : "POST" ,
2021-12-10 17:06:47 +00:00
body : JSON . stringify ( { 'displaying' : displaying , 'feature_settings' : feature _settings } ) ,
} ) ;
2021-08-18 19:50:02 +00:00
}
2021-12-10 17:06:47 +00:00
2022-02-24 18:35:43 +00:00
let saveSettingsButtons = document . querySelectorAll ( ".save-btn" ) . forEach ( ( button ) => button . addEventListener ( "click" , saveSettings ) ) ;
2021-09-16 19:23:04 +00:00
2021-11-17 18:30:13 +00:00
// gets the stock, crypto or forex specific settings
2021-09-16 19:23:04 +00:00
function getTradingSettings ( page ) {
// get all the tick boxes
2023-03-16 15:23:11 +00:00
let whatFeature = document . getElementById ( 'drop' ) . value ;
2021-09-16 19:23:04 +00:00
let percent = page . querySelectorAll ( ".percent-select" ) [ 0 ] . checked ;
let point = page . querySelectorAll ( ".point-select" ) [ 0 ] . checked ;
let no _logos = page . querySelectorAll ( ".logo-select" ) [ 0 ] . checked ;
let title = page . querySelectorAll ( ".title-select" ) [ 0 ] . checked ;
let symbols _el = page . querySelectorAll ( ".symbol-list" ) [ 0 ] ;
let symbols = getListItems ( symbols _el ) ;
2021-11-17 18:30:13 +00:00
2023-03-27 09:08:33 +00:00
if ( whatFeature == 2 ) {
2023-03-16 15:23:11 +00:00
let portfolio = page . querySelectorAll ( ".portfolio-select" ) [ 0 ] . checked ;
settings = {
percent : percent ,
point : point ,
logos : no _logos ,
title : title ,
symbols : symbols ,
chart : portfolio ,
} ;
}
2023-03-27 09:08:33 +00:00
else if ( whatFeature == 1 ) {
let prepost = page . querySelectorAll ( ".prepost-select" ) [ 0 ] . checked ;
let portfolio = page . querySelectorAll ( ".portfolio-select" ) [ 0 ] . checked ;
settings = {
prepost : prepost ,
percent : percent ,
point : point ,
logos : no _logos ,
title : title ,
symbols : symbols ,
chart : portfolio ,
} ;
}
2023-03-16 15:23:11 +00:00
else {
settings = {
percent : percent ,
point : point ,
logos : no _logos ,
title : title ,
symbols : symbols ,
} ;
}
2023-03-27 09:08:33 +00:00
console . log ( settings ) ;
2021-09-16 19:23:04 +00:00
return settings ;
2023-03-17 06:53:26 +00:00
}
2021-09-16 19:23:04 +00:00
2021-11-17 18:30:13 +00:00
// gets the current wether and forecast settings
2021-09-16 19:23:04 +00:00
function getWeatherSettings ( page ) {
let temp = getSelected ( page . querySelectorAll ( ".temp-select" ) [ 0 ] ) ;
let speed = getSelected ( page . querySelectorAll ( ".wind-speed-select" ) [ 0 ] ) ;
2021-12-22 09:43:36 +00:00
2021-09-16 19:23:04 +00:00
let title = page . querySelectorAll ( ".title-select" ) [ 0 ] . checked ;
2023-05-23 08:36:24 +00:00
2022-02-24 18:35:43 +00:00
let
2021-11-17 18:30:13 +00:00
settings = {
temp : temp ,
wind _speed : speed ,
title : title ,
} ;
2021-09-16 19:23:04 +00:00
//only for daily weather
try {
2021-11-17 18:30:13 +00:00
current _weather = page . querySelectorAll ( ".current-weather-select" ) [ 0 ]
. checked ;
settings [ "current_weather" ] = current _weather ;
} catch { }
2021-09-16 19:23:04 +00:00
2021-09-25 09:40:29 +00:00
let locations _el = page . querySelectorAll ( ".location-list" ) [ 0 ] ;
let locations = getListItems ( locations _el ) ;
2021-11-17 18:30:13 +00:00
settings [ "locations" ] = locations ;
2021-12-22 09:43:36 +00:00
console . log ( settings ) ;
2021-09-16 19:23:04 +00:00
return settings ;
}
2023-05-23 08:36:24 +00:00
// function saveWeatherAPIKey(){
// let featureSelector = document.getElementById("drop");
// feature = getSelected(featureSelector);
// let features = [
// "Stocks",
// "Crypto",
// "Forex",
// "Current Weather",
// "Daily Forecast",
// "News",
// "Sports (Upcoming Games)",
// "Sports (Past Games)",
// "Sports (Live Games)",
// "Sports (Team Stats)",
// "Custom Images",
// "Custom GIFs",
// "Custom Messages",
// "Commodities",
// "Indices",
// "Movies",
// "IPO Calendar",
// ];
// let pageNum = features.indexOf(feature) + 1;
// let pageSelector = "Page" + pageNum.toString();
// let page = document.getElementById(pageSelector);
2022-02-24 18:35:43 +00:00
2023-05-23 08:36:24 +00:00
// let api_key = page.querySelectorAll(".api-key")[0].value;
// let settings = {
// api_key:api_key
// };
2022-02-24 18:35:43 +00:00
2023-05-23 08:36:24 +00:00
// console.log(settings);
2022-02-24 18:35:43 +00:00
2023-05-23 08:36:24 +00:00
// fetch("/saveWeatherAPIKey", {
// method: "POST",
// body: JSON.stringify(settings),
// });
// }
2022-02-24 18:35:43 +00:00
2023-01-09 08:58:19 +00:00
function saveMovieAPIKey ( ) {
let featureSelector = document . getElementById ( "drop" ) ;
feature = getSelected ( featureSelector ) ;
let features = [
"Stocks" ,
"Crypto" ,
"Forex" ,
"Current Weather" ,
"Daily Forecast" ,
"News" ,
"Sports (Upcoming Games)" ,
"Sports (Past Games)" ,
"Sports (Live Games)" ,
"Sports (Team Stats)" ,
"Custom Images" ,
"Custom GIFs" ,
"Custom Messages" ,
"Commodities" ,
"Indices" ,
"Movies" ,
2023-03-08 06:41:44 +00:00
"IPO Calendar" ,
2023-06-14 07:57:05 +00:00
"Economic Calendar" ,
2023-01-09 08:58:19 +00:00
] ;
let pageNum = features . indexOf ( feature ) + 1 ;
let pageSelector = "Page" + pageNum . toString ( ) ;
let page = document . getElementById ( pageSelector ) ;
let api _key = page . querySelectorAll ( ".api-key" ) [ 0 ] . value ;
let settings = {
api _key : api _key
} ;
console . log ( settings ) ;
fetch ( "/saveMovieAPIKey" , {
method : "POST" ,
body : JSON . stringify ( settings ) ,
} ) ;
}
2022-02-24 18:35:43 +00:00
2023-03-08 06:41:44 +00:00
function saveIpoAPIKey ( ) {
let featureSelector = document . getElementById ( "drop" ) ;
feature = getSelected ( featureSelector ) ;
let features = [
"Stocks" ,
"Crypto" ,
"Forex" ,
"Current Weather" ,
"Daily Forecast" ,
"News" ,
"Sports (Upcoming Games)" ,
"Sports (Past Games)" ,
"Sports (Live Games)" ,
"Sports (Team Stats)" ,
"Custom Images" ,
"Custom GIFs" ,
"Custom Messages" ,
"Commodities" ,
"Indices" ,
"Movies" ,
"IPO Calendar" ,
2023-06-14 07:57:05 +00:00
"Economic Calendar" ,
2023-03-08 06:41:44 +00:00
] ;
let pageNum = features . indexOf ( feature ) + 1 ;
let pageSelector = "Page" + pageNum . toString ( ) ;
let page = document . getElementById ( pageSelector ) ;
let api _key = page . querySelectorAll ( ".api-key" ) [ 0 ] . value ;
let settings = {
api _key : api _key
} ;
console . log ( settings ) ;
fetch ( "/saveIpoAPIKey" , {
method : "POST" ,
body : JSON . stringify ( settings ) ,
} ) ;
}
var ipoAPIbtn = document . getElementById ( "ipo-api-btn" ) ;
ipoAPIbtn . addEventListener ( "click" , saveIpoAPIKey ) ;
2023-01-09 08:58:19 +00:00
var movieAPIbtn = document . getElementById ( "movie-api-btn" ) ;
movieAPIbtn . addEventListener ( "click" , saveMovieAPIKey ) ;
2022-02-24 18:35:43 +00:00
2023-05-23 08:36:24 +00:00
// var weatherAPIbtn = document.getElementById("weather-api-btn");
// weatherAPIbtn.addEventListener("click", saveWeatherAPIKey);
2022-02-24 18:35:43 +00:00
2021-11-17 18:30:13 +00:00
function getNewsSettings ( page ) {
2022-02-24 19:42:33 +00:00
2021-09-16 19:23:04 +00:00
let country = getSelected ( page . querySelectorAll ( ".country-select" ) [ 0 ] ) ;
let category = getSelected ( page . querySelectorAll ( ".category-select" ) [ 0 ] ) ;
2022-02-24 19:42:33 +00:00
let country _check = page . querySelectorAll ( ".country-check" ) [ 0 ] . checked ;
let category _check = page . querySelectorAll ( ".category-check" ) [ 0 ] . checked ;
let num _headlines = page . querySelectorAll ( ".headline-num" ) [ 0 ] . value
2021-09-16 19:23:04 +00:00
let title = page . querySelectorAll ( ".title-select" ) [ 0 ] . checked ;
2021-11-17 18:30:13 +00:00
settings = {
country : country ,
category : category ,
2022-02-24 19:42:33 +00:00
use _country : country _check ,
use _category : category _check ,
num _headlines : num _headlines ,
2021-11-17 18:30:13 +00:00
title : title ,
} ;
2022-02-24 19:42:33 +00:00
console . log ( settings ) ;
2021-09-16 19:23:04 +00:00
return settings ;
}
2023-01-09 08:58:19 +00:00
function getMovieSettings ( page ) {
let category = getSelected ( page . querySelectorAll ( ".movie-categories" ) [ 0 ] ) ;
let title = page . querySelectorAll ( ".title-select" ) [ 0 ] . checked ;
let api _key = page . querySelectorAll ( ".api-key" ) [ 0 ] ;
settings = {
category : category ,
title : title ,
api _key : api _key
} ;
return settings ;
}
2023-03-08 06:41:44 +00:00
function getIpoSettings ( page ) {
let title = page . querySelectorAll ( ".title-select" ) [ 0 ] . checked ;
let api _key = page . querySelectorAll ( ".api-key" ) [ 0 ] ;
settings = {
title : title ,
api _key : api _key
} ;
return settings ;
}
2021-11-17 18:30:13 +00:00
function getSportsSettings ( page ) {
2021-09-16 19:23:04 +00:00
let title = page . querySelectorAll ( ".title-select" ) [ 0 ] . checked ;
let leagues _el = page . querySelectorAll ( ".league-list" ) [ 0 ] ;
leagues = getListItems ( leagues _el ) ;
2022-01-29 09:26:55 +00:00
2021-11-17 18:30:13 +00:00
settings = { title : title , leagues : leagues } ;
2021-09-16 19:23:04 +00:00
return settings ;
}
2021-10-11 19:16:04 +00:00
var uploaded _images = [ ] ;
var uploaded _GIFs = [ ] ;
allFeaturesFileAddBtn . map ( ( value , index ) => {
if ( value !== null ) {
value . addEventListener ( "click" , ( ) => {
var tag = document . createElement ( "li" ) ;
tag . innerHTML = allFeaturesFile [ index ] . files [ 0 ] . name ;
if ( index == 10 ) {
2022-02-26 16:35:15 +00:00
let getCustomImg = localStorage . getItem ( "customImages" ) ;
2021-11-17 18:30:13 +00:00
let fileName = imagesFile . files [ 0 ] . name ;
let scrollSpeed = document . getElementById ( "inputScrollSpeed11" ) . value ;
let scrollSpeed2 = document . getElementById (
"inputScrollSpeedRow11"
) . value ;
let transition = document . getElementById ( "inputTransition11" ) . value ;
let pauseScreen = document . getElementById ( "inputText12" ) . value ;
let displayCheck =
document . getElementById ( "flexCheckChecked25" ) . checked ;
let fileFound = false ;
for ( let i = 0 ; i < allFeatures [ index ] . children . length ; i ++ ) {
fileFound =
allFeatures [ index ] . children [ i ] ? . innerText == fileName && true ;
}
if ( ! fileFound ) {
let values = {
fileName ,
scrollSpeed ,
scrollSpeed2 ,
transition ,
pauseScreen ,
displayCheck ,
} ;
let newValues = getCustomImg && JSON . parse ( getCustomImg ) ;
getCustomImg && newValues . push ( values ) ;
2022-02-24 18:35:43 +00:00
// getCustomImg
// ? localStorage.setItem("customImages", JSON.stringify(newValues))
// : localStorage.setItem("customImages", JSON.stringify([values]));
2021-11-17 18:30:13 +00:00
uploaded _images . push ( allFeaturesFile [ index ] . files [ 0 ] ) ;
allFeatures [ index ] . appendChild ( tag ) ;
}
2021-10-11 19:16:04 +00:00
} else if ( index == 11 ) {
2022-02-26 16:35:15 +00:00
let getCustomGifs = localStorage . getItem ( "customGifs" ) ;
2021-11-17 18:30:13 +00:00
let fileName = allFeaturesFile [ index ] . files [ 0 ] . name ;
let scrollSpeed = document . getElementById ( "inputScrollSpeed12" ) . value ;
let scrollSpeed2 = document . getElementById (
"inputScrollSpeedRow12"
) . value ;
let transition = document . getElementById ( "inputTransition12" ) . value ;
let pauseScreen = document . getElementById ( "inputText112" ) . value ;
let displayCheck =
document . getElementById ( "flexCheckChecked28" ) . checked ;
let fileFound = false ;
for ( let i = 0 ; i < allFeatures [ index ] . children . length ; i ++ ) {
fileFound =
allFeatures [ index ] . children [ i ] ? . innerText == fileName && true ;
}
if ( ! fileFound ) {
let values = {
fileName ,
scrollSpeed ,
scrollSpeed2 ,
transition ,
pauseScreen ,
displayCheck ,
} ;
let newValues = getCustomGifs && JSON . parse ( getCustomGifs ) ;
getCustomGifs && newValues . push ( values ) ;
2022-02-24 18:35:43 +00:00
// getCustomGifs
// ? localStorage.setItem("customGifs", JSON.stringify(newValues))
// : localStorage.setItem("customGifs", JSON.stringify([values]));
2021-11-17 18:30:13 +00:00
uploaded _GIFs . push ( allFeaturesFile [ index ] . files [ 0 ] ) ;
allFeatures [ index ] . appendChild ( tag ) ;
}
2021-10-11 19:16:04 +00:00
}
2022-02-24 18:35:43 +00:00
imagesFile . value = "" ;
2021-10-11 19:16:04 +00:00
changeVarValue ( ) ;
addEventOnFeaturesList ( ) ;
} ) ;
}
} ) ;
2021-09-16 19:23:04 +00:00
//images and GIFs
2021-11-17 18:30:13 +00:00
function getImageSettings ( page ) {
2021-09-16 19:23:04 +00:00
let pause = page . querySelectorAll ( ".pause-select" ) [ 0 ] . value ;
let title = page . querySelectorAll ( ".title-select" ) [ 0 ] . checked ;
2021-11-17 18:30:13 +00:00
2021-09-16 19:23:04 +00:00
let images _el = page . querySelectorAll ( ".image-list" ) [ 0 ] ;
images = getListItems ( images _el ) ;
2021-11-17 18:30:13 +00:00
settings = { title : title , pause : pause , images : images } ;
2021-09-16 19:23:04 +00:00
return settings ;
}
2021-10-11 19:16:04 +00:00
var messages = [ ] ;
messagesTextAddBtn . addEventListener ( "click" , ( ) => {
2021-11-17 18:30:13 +00:00
let pageSelector = "Page13" ;
2021-10-11 19:16:04 +00:00
2021-11-17 18:30:13 +00:00
let page = document . getElementById ( pageSelector ) ;
2021-10-11 19:16:04 +00:00
2021-11-17 18:30:13 +00:00
let msg _name = messagesText . value ;
//let speed = getSelected(page.querySelectorAll(".speed-select")[0]);
//let animation = getSelected(page.querySelectorAll(".animation-select")[0]);
let message _text = page . querySelectorAll ( ".message-input" ) [ 0 ] . value ;
let text _colour = getSelected ( page . querySelectorAll ( ".text-colour" ) [ 0 ] ) ;
let text _size = getSelected ( page . querySelectorAll ( ".text-size" ) [ 0 ] ) ;
let background _colour = getSelected ( page . querySelectorAll ( ".back-colour" ) [ 0 ] ) ;
let message = {
name : msg _name ,
text : message _text ,
text _colour : text _colour ,
size : text _size ,
background _colour : background _colour ,
} ;
messages . push ( message ) ;
} ) ;
2021-10-11 19:16:04 +00:00
2021-09-16 19:23:04 +00:00
function getMessageSettings ( page ) {
2021-10-11 19:16:04 +00:00
let messages _el = page . querySelectorAll ( ".message-list" ) [ 0 ] ;
let message _names = getListItems ( messages _el ) ;
2021-11-17 18:30:13 +00:00
2021-10-11 19:16:04 +00:00
//remove any messages that arent in the list
let new _messages = [ ] ;
2021-12-15 11:06:54 +00:00
let new _names = [ ] ;
2021-11-17 18:30:13 +00:00
2021-12-15 11:06:54 +00:00
for ( let i = 0 ; i < message _names . length ; i ++ ) {
for ( let j = 0 ; j < messages . length ; j ++ ) {
if ( message _names [ i ] == messages [ j ] [ "name" ] ) {
new _messages . push ( messages [ j ] ) ;
new _names . push ( messages [ j ] [ "name" ] ) ;
}
2021-10-11 19:16:04 +00:00
}
2021-12-15 11:06:54 +00:00
if ( ! ( new _names . includes ( message _names [ i ] ) ) ) {
new _messages . push ( { name : message _names [ i ] } ) ;
}
2021-10-11 19:16:04 +00:00
}
2021-12-15 11:06:54 +00:00
2021-10-11 19:16:04 +00:00
let title = page . querySelectorAll ( ".title-select" ) [ 0 ] . checked ;
2021-11-17 18:30:13 +00:00
return { title : title , messages : new _messages } ;
}
2023-06-14 07:57:05 +00:00
// economic settings
function getEconomicSettings ( page ) {
let title = page . querySelectorAll ( ".title-select" ) [ 0 ] . checked ;
let countries = getListItems ( page . querySelectorAll ( ".symbol-list" ) [ 0 ] ) ;
let importance = page . querySelectorAll ( ".economic-importance-select" ) [ 0 ] . value ;
let timezone = page . querySelectorAll ( ".economic-tz-select" ) [ 0 ] . value ;
settings = {
title : title ,
countries : countries ,
importance : importance ,
timezone : timezone ,
} ;
console . log ( settings ) ;
return settings ;
}
2021-11-17 18:30:13 +00:00
// Join Network
let wifiSsidInput = document . getElementById ( "wifi-ssid-input" ) ;
let wifiPassInput = document . getElementById ( "wifi-pass-input" ) ;
let countryCodeInput = document . getElementById ( "country-code-input" ) ;
let joinNetworkBtn = document . querySelector ( "#join-network-btn" ) ;
let connectedText = document . querySelector ( "#connected-text" ) ;
2022-03-02 15:09:52 +00:00
joinNetworkBtn . addEventListener ( "click" , ( ) => {
localStorage . setItem ( "wifiSsid" , wifiSsidInput . value ) ;
localStorage . setItem ( "wifiPass" , wifiPassInput . value ) ;
localStorage . setItem ( "countryCode" , countryCodeInput . value ) ;
2021-11-17 18:30:13 +00:00
2022-02-24 18:35:43 +00:00
// connectedText.style.display = "block";
// setTimeout(() => {
// connectedText.style.display = "none";
// }, 2000);
2021-11-18 19:41:50 +00:00
2022-03-02 15:09:52 +00:00
data = { country : countryCodeInput . value , ssid : wifiSsidInput . value , pwd : wifiPassInput . value }
2021-11-18 19:41:50 +00:00
2022-03-02 15:09:52 +00:00
fetch ( "/wifi" , {
method : "POST" ,
body : JSON . stringify ( data ) ,
} ) ;
} ) ;
2021-11-17 18:30:13 +00:00
// change display format
let displayFormatDropDown = document . querySelector ( "#inputDisplayFormat" ) ;
let displayFormatBtn = document . querySelector ( "#dispformat-btn" ) ;
let selectedDisplayText = document . querySelector ( "#selected-display-text" ) ;
let topRowText = document . querySelector ( "#top-row-text" ) ;
let bottomRowText = document . querySelector ( "#bottom-row-text" ) ;
displayFormatBtn . addEventListener ( "click" , ( ) => {
selectedDisplayText . innerText = displayFormatDropDown . value ;
2022-06-10 09:45:13 +00:00
if ( selectedDisplayText . innerText === "Professional Two Rows" ) {
2021-11-17 18:30:13 +00:00
topRowText . style . display = "inline" ;
bottomRowText . style . display = "inline" ;
secondRow . style . display = "flex" ;
inputScrollSpeedRow . forEach ( ( value ) => {
value . parentElement . parentElement . style . display = "flex" ;
} ) ;
} else {
topRowText . style . display = "none" ;
bottomRowText . style . display = "none" ;
secondRow . style . display = "none" ;
inputScrollSpeedRow . forEach ( ( value ) => {
value . parentElement . parentElement . style . display = "none" ;
} ) ;
}
} ) ;
2022-06-27 09:08:26 +00:00
// after clicking reset user settings, change back to standard scrolling
let resetSettingsBtn = document . querySelector ( "#reset-btn" )
resetSettingsBtn . addEventListener ( "click" , ( ) => {
selectedDisplayText . innerText = "Standard Scrolling" ;
topRowText . style . display = "none" ;
bottomRowText . style . display = "none" ;
secondRow . style . display = "none" ;
inputScrollSpeedRow . forEach ( ( value ) => {
value . parentElement . parentElement . style . display = "none" ;
} ) ;
} ) ;
2021-11-17 18:30:13 +00:00
// if selected display text = Professional two rows
2022-06-10 09:45:13 +00:00
if ( selectedDisplayText . innerText === "Professional Two Rows" ) {
2021-11-17 18:30:13 +00:00
topRowText . style . display = "inline" ;
2021-09-16 19:23:04 +00:00
}
2021-11-17 18:30:13 +00:00
// change host name
let hostNameInput = document . getElementById ( "host-name-input" ) ;
let hostNameBtn = document . getElementById ( "host-name-btn" ) ;
let hostNameText = document . getElementById ( "host-name" ) ;
hostNameBtn . addEventListener ( "click" , ( ) => {
hostNameText . innerText = hostNameInput . value ;
2022-02-24 18:35:43 +00:00
// localStorage.setItem("hostName", hostNameText.innerText);
2021-11-26 15:33:10 +00:00
data = { hostname : hostNameText . innerText }
fetch ( "/hostname" , {
method : "POST" ,
body : JSON . stringify ( data ) ,
} ) ;
2021-11-17 18:30:13 +00:00
} ) ;
2022-02-24 18:35:43 +00:00
// 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),
// });
// });
2021-11-17 18:30:13 +00:00
// change brightness
let brightnessInput = document . getElementById ( "brightness-input" ) ;
let brightnessBtn = document . getElementById ( "brightness-btn" ) ;
brightnessBtn . addEventListener ( "click" , ( ) => {
2022-02-24 18:35:43 +00:00
// localStorage.setItem("brightness", brightnessInput.value);
2021-11-17 18:30:13 +00:00
} ) ;
// change input animation
let inputAnimation = document . getElementById ( "inputAnimation" ) ;
let inputAnimationBtn = document . getElementById ( "input-animation-btn" ) ;
inputAnimationBtn . addEventListener ( "click" , ( ) => {
localStorage . setItem ( "inputAnimation" , inputAnimation . value ) ;
2021-11-18 17:50:50 +00:00
2021-11-17 18:30:13 +00:00
} ) ;
// scroll speed row two
let inputScrollSpeedRow = [ ] ;
2021-09-16 19:23:04 +00:00
2023-06-14 07:57:05 +00:00
for ( let i = 1 ; i <= 18 ; i ++ ) {
2021-11-17 18:30:13 +00:00
inputScrollSpeedRow . push (
document . getElementById (
i === 1 ? "inputScrollSpeedRow" : ` inputScrollSpeedRow ${ i } `
)
) ;
}
2021-08-18 19:50:02 +00:00
2021-11-17 18:30:13 +00:00
window . onload = ( ) => {
2022-02-24 18:35:43 +00:00
// let getHostName = localStorage.getItem("hostName");
// let getBrightness = localStorage.getItem("brightness");
// let getWifiSsid = localStorage.getItem("wifiSsid");
// let getWifiPass = localStorage.getItem("wifiPass");
// let getCountryCode = localStorage.getItem("countryCode");
// let getInputAnimation = localStorage.getItem("inputAnimation");
// getHostName &&
// (hostNameText.innerText = getHostName) &&
// (hostNameInput.value = getHostName);
2021-11-17 18:30:13 +00:00
2021-12-06 20:10:14 +00:00
//getBrightness && (brightnessInput.value = getBrightness);
2021-12-04 14:52:34 +00:00
//getWifiSsid && (wifiSsidInput.value = getWifiSsid);
//getWifiPass && (wifiPassInput.value = getWifiPass);
2021-12-06 20:10:14 +00:00
//getCountryCode && (countryCodeInput.value = getCountryCode);
2021-11-17 18:30:13 +00:00
2023-01-30 05:15:21 +00:00
// let getDispayFormat = localStorage.getItem("displayFormat");
// getDispayFormat && (displayFormatDropDown.value = getDispayFormat);
2021-11-17 18:30:13 +00:00
selectedDisplayText . innerText = displayFormatDropDown . value ;
2022-02-28 13:41:19 +00:00
// getInputAnimation && (inputAnimation.value = getInputAnimation);
2021-11-17 18:30:13 +00:00
2022-06-10 09:45:13 +00:00
if ( selectedDisplayText . innerText === "Professional Two Rows" ) {
2021-11-17 18:30:13 +00:00
topRowText . style . display = "inline" ;
bottomRowText . style . display = "inline" ;
secondRow . style . display = "flex" ;
inputScrollSpeedRow . forEach ( ( value ) => {
value . parentElement . parentElement . style . display = "flex" ;
} ) ;
} else {
topRowText . style . display = "none" ;
bottomRowText . style . display = "none" ;
secondRow . style . display = "none" ;
inputScrollSpeedRow . forEach ( ( value ) => {
value . parentElement . parentElement . style . display = "none" ;
} ) ;
}
// custom images
2021-12-08 17:26:35 +00:00
/ *
2021-11-17 18:30:13 +00:00
let localCustomImages = JSON . parse ( localStorage . getItem ( "customImages" ) ) ;
localCustomImages ? . map ( ( value ) => {
let tag = document . createElement ( "li" ) ;
tag . innerText = value . fileName ;
images . appendChild ( tag ) ;
} ) ;
// custom gifs
let localCustomGifs = JSON . parse ( localStorage . getItem ( "customGifs" ) ) ;
localCustomGifs ? . map ( ( value ) => {
let tag = document . createElement ( "li" ) ;
tag . innerText = value . fileName ;
gifs . appendChild ( tag ) ;
} ) ;
// custom messages
let localCustomMsg = JSON . parse ( localStorage . getItem ( "customMsg" ) ) ;
localCustomMsg ? . map ( ( value ) => {
let tag = document . createElement ( "li" ) ;
tag . innerText = value . messageName ;
var messagesWrapper = document . getElementById ( "messages-features" ) ;
messagesWrapper . appendChild ( tag ) ;
} ) ;
2021-12-08 17:26:35 +00:00
* * /
2021-11-17 18:30:13 +00:00
addEventOnList ( ) ;
addEventonBtns ( ) ;
changeVarValue ( ) ;
addEventOnFeaturesList ( ) ;
} ;
2022-06-10 10:05:10 +00:00
// Update button CSS effects if update available vs if already up to date
var btnText = document . getElementById ( "update-btn" ) . innerText
var divClass = document . getElementById ( "outer-div" )
if ( btnText == "Up to date" ) {
divClass . classList . remove ( "main-div2" ) ;
divClass . classList . add ( "main-div3" ) ;
} else {
divClass . classList . remove ( "main-div3" ) ;
divClass . classList . add ( "main-div2" ) ;
}
2022-06-11 05:30:16 +00:00
function togglePass ( ) {
var x = document . getElementById ( "wifi-pass-input" ) ;
if ( x . type === "password" ) {
x . type = "text" ;
} else {
x . type = "password" ;
}
}
2022-06-11 05:41:16 +00:00
// Show messages when updating ticker / joining wifi network
function showDiv ( ) {
document . getElementById ( 'update-message' ) . style . display = "block" ;
}
function showDivTwo ( ) {
document . getElementById ( 'wifi-message' ) . style . display = "block" ;
}
2022-06-11 05:45:10 +00:00
// Display message asking for restart of ticker when new API key added for weather
2023-05-23 08:36:24 +00:00
// function showWeatherP() {
// if(document.getElementById("api-key1").value==="") {
2022-06-11 05:45:10 +00:00
2023-05-23 08:36:24 +00:00
// document.getElementById('weather-api-p').style.display = "none";
// }
2022-06-11 05:45:10 +00:00
2023-05-23 08:36:24 +00:00
// else if (document.getElementById("api-key1").value==="Weather API Key") {
// document.getElementById('weather-api-p').style.display = "none";
2022-06-11 05:45:10 +00:00
2023-05-23 08:36:24 +00:00
// }
2022-06-11 05:45:10 +00:00
2023-05-23 08:36:24 +00:00
// else {
// document.getElementById('weather-api-p').style.display = "block"
// }
2022-06-11 05:45:10 +00:00
2023-05-23 08:36:24 +00:00
// }
2022-06-11 05:45:10 +00:00
2023-01-09 08:58:19 +00:00
// Display message asking for restart of ticker when new API key added for movie
function showMovieP ( ) {
if ( document . getElementById ( "api-key-movie" ) . value === "" ) {
document . getElementById ( 'movie-api-p' ) . style . display = "none" ;
}
else if ( document . getElementById ( "api-key-movie" ) . value === "Movies API Key" ) {
document . getElementById ( 'movie-api-p' ) . style . display = "none" ;
}
else {
document . getElementById ( 'movie-api-p' ) . style . display = "block"
}
}
2023-03-08 06:41:44 +00:00
function showIpoP ( ) {
if ( document . getElementById ( "api-key-ipo" ) . value === "" ) {
document . getElementById ( 'ipo-api-p' ) . style . display = "none" ;
}
else if ( document . getElementById ( "api-key-ipo" ) . value === "IPO Calendar API Key" ) {
document . getElementById ( 'ipo-api-p' ) . style . display = "none" ;
}
else {
document . getElementById ( 'ipo-api-p' ) . style . display = "block"
}
}
2022-06-11 15:57:23 +00:00
// Disable adding cities when no API key detected
2023-05-23 08:36:24 +00:00
// if(document.getElementById("api-key1").value==="") {
// document.getElementById('inputTextBtn6').disabled = true;
// }
2022-06-11 15:57:23 +00:00
2023-05-23 08:36:24 +00:00
// else if (document.getElementById("api-key1").value==="Weather API Key") {
// document.getElementById('inputTextBtn6').disabled = true;
// }
2022-06-11 15:57:23 +00:00
2023-05-23 08:36:24 +00:00
// else {
// document.getElementById('inputTextBtn6').disabled = false;
// }
2022-06-11 15:57:23 +00:00
2023-05-23 08:36:24 +00:00
// if(document.getElementById("api-key").value==="") {
// document.getElementById('inputTextBtn7').disabled = true;
// }
2022-06-11 15:57:23 +00:00
2023-05-23 08:36:24 +00:00
// else if (document.getElementById("api-key").value==="Weather API Key") {
// document.getElementById('inputTextBtn7').disabled = true;
// }
2022-06-11 15:57:23 +00:00
2023-05-23 08:36:24 +00:00
// else {
// document.getElementById('inputTextBtn7').disabled = false;
// }
2022-06-11 15:57:23 +00:00
2022-06-11 16:13:49 +00:00
// Stocks validation
function stockValidate ( ) {
var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,<>\/?~]/ ;
let x = document . getElementById ( "inputText3" ) . value ;
2023-03-16 10:55:10 +00:00
let portfolioCheckbox = document . getElementById ( "flexCheckChecked4" ) ;
let sharesText = document . getElementById ( "inputText8" ) . value ;
let averageCost = document . getElementById ( "inputText9" ) . value ;
let dateText = document . getElementById ( "inputText10" ) . value ;
2022-06-11 16:13:49 +00:00
let text ;
2023-03-16 10:55:10 +00:00
let text2 ;
2022-06-11 16:13:49 +00:00
if ( x . toUpperCase ( ) != x ) {
document . getElementById ( 'demo' ) . style . display = "block" ;
text = "Stock symbol must be uppercase" ;
document . getElementById ( "inputText3" ) . value = '' ;
// createLi = false;
}
else if ( x === '' ) {
document . getElementById ( 'demo' ) . style . display = "block" ;
text = "No blanks"
// createLi = false;
}
else if ( x . includes ( ' ' ) ) {
text = "No spaces" ;
document . getElementById ( 'demo' ) . style . display = "block" ;
document . getElementById ( "inputText3" ) . value = '' ;
// createLi = false;
}
else if ( x . length > 5 ) {
document . getElementById ( 'demo' ) . style . display = "block" ;
text = "No more than 5 characters" ;
document . getElementById ( "inputText3" ) . value = '' ;
// createLi = false;
}
else if ( /\d/ . test ( x ) ) {
document . getElementById ( 'demo' ) . style . display = "block" ;
text = "No numbers allowed" ;
document . getElementById ( "inputText3" ) . value = '' ;
// createLi = false;
}
// CAREFUL TO DELETE THE BACKEND LIST ITEMS, JUST DELETING THE VALUE LIKE THIS ISN"T 100% ACCURATE
else if ( specialChars . test ( x ) ) {
document . getElementById ( 'demo' ) . style . display = "block" ;
text = "No special characters allowed" ;
document . getElementById ( "inputText3" ) . value = '' ;
// createLi = false;
}
else {
text = "Input OK" ;
document . getElementById ( 'demo' ) . style . display = "none" ;
2023-03-16 10:55:10 +00:00
//PORTFOLIO VALIDATION HERE
if ( portfolioCheckbox . checked ) {
if ( ( sharesText === ' ' ) || ( averageCost === ' ' ) || ( dateText === ' ' ) ) {
text2 = "No spaces" ;
document . getElementById ( 'demo-portfolio' ) . style . display = "block" ;
document . getElementById ( "inputText8" ) . value = '' ;
document . getElementById ( "inputText9" ) . value = '' ;
document . getElementById ( "inputText10" ) . value = '' ;
document . getElementById ( "inputText3" ) . value = '' ;
}
else if ( ( isNaN ( sharesText ) ) || ( isNaN ( averageCost ) ) ) {
text2 = "No text characters, only numbers" ;
document . getElementById ( 'demo-portfolio' ) . style . display = "block" ;
document . getElementById ( "inputText8" ) . value = '' ;
document . getElementById ( "inputText9" ) . value = '' ;
document . getElementById ( "inputText10" ) . value = '' ;
document . getElementById ( "inputText3" ) . value = '' ;
}
else if ( ( ! dateText . includes ( '-' ) ) && ( dateText !== '' ) ) {
text2 = "Incorrect date format, it should be YYYY-MM-DD" ;
document . getElementById ( 'demo-portfolio' ) . style . display = "block" ;
document . getElementById ( "inputText8" ) . value = '' ;
document . getElementById ( "inputText9" ) . value = '' ;
document . getElementById ( "inputText10" ) . value = '' ;
document . getElementById ( "inputText3" ) . value = '' ;
}
else if ( ( ( sharesText !== '' ) || ( averageCost !== '' ) || ( dateText !== '' ) ) && ( ( sharesText === '' ) || ( averageCost === '' ) || ( dateText === '' ) ) ) {
text2 = "Some fields are empty" ;
document . getElementById ( 'demo-portfolio' ) . style . display = "block" ;
document . getElementById ( "inputText8" ) . value = '' ;
document . getElementById ( "inputText9" ) . value = '' ;
document . getElementById ( "inputText10" ) . value = '' ;
document . getElementById ( "inputText3" ) . value = '' ;
}
else {
text2 = "Input OK" ;
document . getElementById ( 'demo-portfolio' ) . style . display = "none" ;
createLi = true ;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// addingItems();
let cost = document . getElementById ( 'inputText9' ) . value ;
let shares = document . getElementById ( 'inputText8' ) . value ;
let symbol = document . getElementById ( 'inputText3' ) . value ;
let days = document . getElementById ( 'inputText10' ) . value ;
let settings = {
shares : shares ,
cost : cost ,
symbol : symbol ,
days : days ,
} ;
console . log ( JSON . stringify ( settings ) ) ;
setTimeout (
function ( ) {
document . getElementById ( 'inputText3' ) . value = "" ;
document . getElementById ( "inputText8" ) . value = '' ;
document . getElementById ( "inputText9" ) . value = '' ;
document . getElementById ( "inputText10" ) . value = '' ;
document . getElementById ( "inputText3" ) . value = '' ;
} , 100 ) ;
if ( ( sharesText !== '' ) && ( averageCost !== '' ) && ( dateText !== '' ) ) {
fetch ( "/savePortfolioSettings" , {
method : "POST" ,
body : JSON . stringify ( settings ) ,
} ) ;
}
}
document . getElementById ( "demo-portfolio" ) . innerHTML = text2 ;
}
else {
createLi = true ;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// addingItems();
setTimeout (
function ( ) {
document . getElementById ( 'inputText3' ) . value = "" ;
} , 100 ) ;
}
2022-06-11 16:13:49 +00:00
}
document . getElementById ( "demo" ) . innerHTML = text ;
}
// Crypto validation
function cryptoValidate ( ) {
var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/ ;
let x = document . getElementById ( "inputText4" ) . value ;
let baseCurrency = x . split ( "," ) [ 1 ] ;
2023-03-17 10:06:29 +00:00
let portfolioCheckbox = document . getElementById ( "crypto_portfolio_checkbox" ) ;
let sharesText = document . getElementById ( "cryptoshares" ) . value ;
let averageCost = document . getElementById ( "cryptocost" ) . value ;
let dateText = document . getElementById ( "cryptodate" ) . value ;
2022-06-11 16:13:49 +00:00
let text ;
2023-03-17 10:06:29 +00:00
let text2 ;
2022-06-11 16:13:49 +00:00
if ( x . toUpperCase ( ) != x ) {
document . getElementById ( 'demo2' ) . style . display = "block" ;
text = "Crypto and base must be uppercase" ;
document . getElementById ( "inputText4" ) . value = '' ;
// createLi = false;
}
else if ( x === '' ) {
document . getElementById ( 'demo2' ) . style . display = "block" ;
text = "No blanks"
// createLi = false;
}
else if ( x . includes ( ' ' ) ) {
text = "No spaces" ;
document . getElementById ( 'demo2' ) . style . display = "block" ;
document . getElementById ( "inputText4" ) . value = '' ;
// createLi = false;
}
else if ( specialChars . test ( x ) ) {
document . getElementById ( 'demo2' ) . style . display = "block" ;
text = "No special characters allowed" ;
document . getElementById ( "inputText4" ) . value = '' ;
// createLi = false;
}
else if ( ! x . includes ( ',' ) ) {
document . getElementById ( 'demo2' ) . style . display = "block" ;
document . getElementById ( "inputText4" ) . value = '' ;
text = "Missing ',' (e.g. BTC,USD)"
// createLi = false;
}
else if ( ! [ "USD" , "AUD" , "BTC" , "CAD" , "CHF" , "EUR" , "GBP" , "ETH" , "JPY" , "NZD" ] . includes ( baseCurrency ) ) {
document . getElementById ( 'demo2' ) . style . display = "block" ;
document . getElementById ( "inputText4" ) . value = '' ;
text = "Invalid base currency"
}
else {
text = "Input OK" ;
document . getElementById ( 'demo2' ) . style . display = "none" ;
2023-03-17 10:06:29 +00:00
//PORTFOLIO VALIDATION HERE
if ( portfolioCheckbox . checked ) {
if ( ( sharesText === ' ' ) || ( averageCost === ' ' ) || ( dateText === ' ' ) ) {
text2 = "No spaces" ;
document . getElementById ( 'demo-portfolio-crypto' ) . style . display = "block" ;
document . getElementById ( "cryptoshares" ) . value = '' ;
document . getElementById ( "cryptocost" ) . value = '' ;
document . getElementById ( "cryptodate" ) . value = '' ;
document . getElementById ( "inputText4" ) . value = '' ;
}
else if ( ( isNaN ( sharesText ) ) || ( isNaN ( averageCost ) ) ) {
text2 = "No text characters, only numbers" ;
document . getElementById ( 'demo-portfolio-crypto' ) . style . display = "block" ;
document . getElementById ( "cryptoshares" ) . value = '' ;
document . getElementById ( "cryptocost" ) . value = '' ;
document . getElementById ( "cryptodate" ) . value = '' ;
document . getElementById ( "inputText4" ) . value = '' ;
}
else if ( ( ! dateText . includes ( '-' ) ) && ( dateText !== '' ) ) {
text2 = "Incorrect date format, it should be YYYY-MM-DD" ;
document . getElementById ( 'demo-portfolio-crypto' ) . style . display = "block" ;
document . getElementById ( "cryptoshares" ) . value = '' ;
document . getElementById ( "cryptocost" ) . value = '' ;
document . getElementById ( "cryptodate" ) . value = '' ;
document . getElementById ( "inputText4" ) . value = '' ;
}
else if ( ( ( sharesText !== '' ) || ( averageCost !== '' ) || ( dateText !== '' ) ) && ( ( sharesText === '' ) || ( averageCost === '' ) || ( dateText === '' ) ) ) {
text2 = "Some fields are empty" ;
document . getElementById ( 'demo-portfolio-crypto' ) . style . display = "block" ;
document . getElementById ( "cryptoshares" ) . value = '' ;
document . getElementById ( "cryptocost" ) . value = '' ;
document . getElementById ( "cryptodate" ) . value = '' ;
document . getElementById ( "inputText4" ) . value = '' ;
}
else {
text2 = "Input OK" ;
document . getElementById ( 'demo-portfolio-crypto' ) . style . display = "none" ;
createLi = true ;
let cost = document . getElementById ( 'cryptocost' ) . value ;
let shares = document . getElementById ( 'cryptoshares' ) . value ;
let symbol = document . getElementById ( 'inputText4' ) . value ;
let days = document . getElementById ( 'cryptodate' ) . value ;
let settings = {
shares : shares ,
cost : cost ,
symbol : symbol ,
days : days ,
} ;
console . log ( JSON . stringify ( settings ) ) ;
setTimeout (
function ( ) {
document . getElementById ( 'inputText4' ) . value = "" ;
document . getElementById ( "cryptocost" ) . value = '' ;
document . getElementById ( "cryptoshares" ) . value = '' ;
document . getElementById ( "cryptodate" ) . value = '' ;
document . getElementById ( "inputText4" ) . value = '' ;
} , 100 ) ;
if ( ( sharesText !== '' ) && ( averageCost !== '' ) && ( dateText !== '' ) ) {
fetch ( "/savePortfolioCryptoSettings" , {
method : "POST" ,
body : JSON . stringify ( settings ) ,
} ) ;
}
}
document . getElementById ( "demo-portfolio-crypto" ) . innerHTML = text2 ;
}
else {
createLi = true ;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
setTimeout (
function ( ) {
document . getElementById ( 'inputText4' ) . value = "" ;
} , 100 ) ;
}
2022-06-11 16:13:49 +00:00
}
document . getElementById ( "demo2" ) . innerHTML = text ;
}
// Forex validation
function forexValidate ( ) {
2023-06-12 07:31:14 +00:00
createLi = true ;
}
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/;
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// let x = document.getElementById("inputText5").value;
// let quoteCurrency = x.split(",")[1];
// let baseCurrency = x.split(",")[0];
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// // console.log("base"+baseCurrency);
// // console.log("quote"+quoteCurrency);
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// let text;
// if (x.toUpperCase() != x) {
// document.getElementById('demo3').style.display = "block";
// text = "Base and quote must be uppercase";
// document.getElementById("inputText5").value = '';
// // createLi = false;
// }
// else if (x === '') {
// document.getElementById('demo3').style.display = "block";
// text = "No blanks"
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// else if (x.includes(' ')) {
// text = "No spaces";
// document.getElementById('demo3').style.display = "block";
// document.getElementById("inputText5").value = '';
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// else if (/\d/.test(x)) {
// document.getElementById('demo3').style.display = "block";
// text = "No numbers allowed";
// document.getElementById("inputText5").value = '';
// }
// // CAREFUL TO DELETE THE BACKEND LIST ITEMS, JUST DELETING THE VALUE LIKE THIS ISN"T 100% ACCURATE
// else if (specialChars.test(x)) {
// document.getElementById('demo3').style.display = "block";
// text = "No special characters allowed";
// document.getElementById("inputText5").value = '';
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// else if (!x.includes(',')) {
// document.getElementById('demo3').style.display = "block";
// document.getElementById("inputText5").value = '';
// text = "Missing ',' (e.g. EUR,USD)"
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// else if (x.length > 7) {
// document.getElementById('demo3').style.display = "block";
// text = "No more than 7 characters";
// document.getElementById("inputText5").value = '';
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// else if (!["USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","HKD","NZD","SEK","KRW","SGD","NOK","MXN","INR","RUB","ZAR","TRY","BRL",
// "TWD","DKK","PLN","THB","IDR","HUF","ILS","CLP","PHP","AED","CZK","COP","SAR","MYR","RON","CLP","ARS","VND","QAR","KWD"].includes(baseCurrency)) {
// document.getElementById('demo3').style.display = "block";
// document.getElementById("inputText5").value = '';
// text = "Invalid base currency"
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// else if (!["AED","AFN","ALL","AMD","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BMD","BND","BOB","BRL","BSD", "BTN", "BWP", "BYN",
// "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR",
// "FJD", "FKP", "FOK", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP",
// "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY","KES","KGS","KHR","KID","KMF","KRW","KWD", "KYD","KZT","LAK","LBP","LKR","LRD","LSL", "LYD",
// "MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN",
// "PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SYP","SZL",
// "THB","TJS","TMT","TND","TOP","TRY","TTD","TVD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","YER","ZAR"].includes(quoteCurrency)) {
// document.getElementById('demo3').style.display = "block";
// document.getElementById("inputText5").value = '';
// text = "Invalid quote currency"
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:31:14 +00:00
// else {
// text = "Input OK";
// document.getElementById('demo3').style.display = "none";
// createLi = true;
// // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// // addingItems();
// setTimeout(
// function() {
// document.getElementById('inputText5').value="";
// }, 100);
// }
// document.getElementById("demo3").innerHTML = text;
// }
2022-06-11 16:13:49 +00:00
// Custom messages validation
function customMsgValidate ( ) {
let x = document . getElementById ( "inputText13" ) . value ;
let y = document . getElementById ( "inputText14" ) . value ;
let text ;
if ( ( x === '' ) && ( y !== '' ) ) {
createLi = false ;
document . getElementById ( 'demo4' ) . style . display = "block" ;
text = "No blanks"
document . getElementById ( "inputText14" ) . value = '' ;
document . getElementById ( 'demo5' ) . style . display = "none" ;
}
else if ( ( y === '' ) && ( x !== '' ) ) {
createLi = false ;
document . getElementById ( 'demo5' ) . style . display = "block" ;
document . getElementById ( "inputText13" ) . value = '' ;
document . getElementById ( 'demo4' ) . style . display = "none" ;
text = "No blanks"
}
else if ( ( y === '' ) && ( x === '' ) ) {
createLi = false ;
document . getElementById ( 'demo5' ) . style . display = "block" ;
// document.getElementById("inputText13").value = '';
document . getElementById ( 'demo4' ) . style . display = "block" ;
text = "No blanks"
}
else if ( ( x !== '' ) && ( y !== '' ) ) {
text = "Input OK" ;
document . getElementById ( 'demo4' ) . style . display = "none" ;
document . getElementById ( 'demo5' ) . style . display = "none" ;
createLi = true ;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// addingItems();
setTimeout (
function ( ) {
document . getElementById ( 'inputText13' ) . value = "" ;
document . getElementById ( 'inputText14' ) . value = "" ;
} , 100 ) ;
}
document . getElementById ( "demo4" ) . innerHTML = text ;
document . getElementById ( "demo5" ) . innerHTML = text ;
}
// current weather validation
function currentWeatherValidate ( ) {
var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/ ;
let x = document . getElementById ( "inputText6" ) . value ;
let text ;
if ( specialChars . test ( x ) ) {
document . getElementById ( 'demo6' ) . style . display = "block" ;
text = "No special characters allowed" ;
document . getElementById ( "inputText6" ) . value = '' ;
}
else if ( x === '' ) {
document . getElementById ( 'demo6' ) . style . display = "block" ;
text = "No blanks"
}
else if ( /\d/ . test ( x ) ) {
document . getElementById ( 'demo6' ) . style . display = "block" ;
text = "No numbers allowed" ;
document . getElementById ( "inputText6" ) . value = '' ;
}
else {
text = "Input OK" ;
document . getElementById ( 'demo6' ) . style . display = "none" ;
createLi = true ;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// addingItems();
setTimeout (
function ( ) {
document . getElementById ( 'inputText6' ) . value = "" ;
} , 100 ) ;
}
document . getElementById ( "demo6" ) . innerHTML = text ;
}
// Daily forecast validation
function dailyWeatherValidate ( ) {
var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/ ;
let x = document . getElementById ( "inputText7" ) . value ;
let text ;
if ( specialChars . test ( x ) ) {
document . getElementById ( 'demo7' ) . style . display = "block" ;
text = "No special characters allowed" ;
document . getElementById ( "inputText7" ) . value = '' ;
}
else if ( x === '' ) {
document . getElementById ( 'demo7' ) . style . display = "block" ;
text = "No blanks"
}
else if ( /\d/ . test ( x ) ) {
document . getElementById ( 'demo7' ) . style . display = "block" ;
text = "No numbers allowed" ;
document . getElementById ( "inputText7" ) . value = '' ;
}
else {
text = "Input OK" ;
document . getElementById ( 'demo7' ) . style . display = "none" ;
createLi = true ;
// CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// addingItems();
setTimeout (
function ( ) {
document . getElementById ( 'inputText7' ) . value = "" ;
} , 100 ) ;
}
document . getElementById ( "demo7" ) . innerHTML = text ;
}
// Commodities validation
function commoditiesValidate ( ) {
2023-06-12 07:39:30 +00:00
createLi = true ;
}
// var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/;
2022-06-11 16:13:49 +00:00
2023-06-12 07:39:30 +00:00
// let x = document.getElementById("inputText20").value;
2022-06-11 16:13:49 +00:00
2023-06-12 07:39:30 +00:00
// let text;
// if (x.toUpperCase() != x) {
// document.getElementById('demo8').style.display = "block";
// text = "Commodity symbol must be uppercase";
// document.getElementById("inputText20").value = '';
// // createLi = false;
// }
// else if (x === '') {
// document.getElementById('demo8').style.display = "block";
// text = "No blanks"
// // createLi = false;
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:39:30 +00:00
// else if (x.includes(' ')) {
// text = "No spaces";
// document.getElementById('demo8').style.display = "block";
// document.getElementById("inputText20").value = '';
// // createLi = false;
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:39:30 +00:00
// else if (specialChars.test(x)) {
// document.getElementById('demo8').style.display = "block";
// text = "No special characters allowed";
// document.getElementById("inputText20").value = '';
// // createLi = false;
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:39:30 +00:00
// else if (!["ALU","BRENTOIL","LCO","COFFEE","XCU","CORN","COTTON","XAU","IRD","NI","XPD","XPT","XRH","RICE","RUTH","XAG","SOYBEAN",
// "XDR","SUGAR","TIN","WHEAT","WTIOIL","ZNC","ETHANOL","CPO","NG","COCOA","ROBUSTA","LUMBER","RUBBER","HOG","CATTLE"].includes(x)) {
// document.getElementById('demo8').style.display = "block";
// document.getElementById("inputText20").value = '';
// text = "Invalid commodity symbol"
2022-06-11 16:13:49 +00:00
2023-06-12 07:39:30 +00:00
// }
2022-06-11 16:13:49 +00:00
2023-06-12 07:39:30 +00:00
// else {
// text = "Input OK";
// document.getElementById('demo8').style.display = "none";
// createLi = true;
// // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// setTimeout(
// function() {
// document.getElementById('inputText20').value="";
// }, 100);
// }
// document.getElementById("demo8").innerHTML = text;
// }
2022-10-05 10:29:42 +00:00
// Indices validation
function indicesValidate ( ) {
2023-06-12 07:39:30 +00:00
createLi = true
} ;
// var specialChars = /[`!@#$%&*()_+\-=\[\]{};':"\\|<>\/?~]/;
2022-10-05 10:29:42 +00:00
2023-06-12 07:39:30 +00:00
// let x = document.getElementById("inputText21").value;
2022-10-05 10:29:42 +00:00
2023-06-12 07:39:30 +00:00
// let text;
// if (x.toUpperCase() != x) {
// document.getElementById('demo9').style.display = "block";
// text = "Index symbol must be uppercase";
// document.getElementById("inputText21").value = '';
// // createLi = false;
// }
// else if (x === '') {
// document.getElementById('demo9').style.display = "block";
// text = "No blanks"
// // createLi = false;
// }
2022-10-05 10:29:42 +00:00
2023-06-12 07:39:30 +00:00
// else if (x.includes(' ')) {
// text = "No spaces";
// document.getElementById('demo9').style.display = "block";
// document.getElementById("inputText21").value = '';
// // createLi = false;
// }
2022-10-05 10:29:42 +00:00
2023-06-12 07:39:30 +00:00
// else if (specialChars.test(x)) {
// document.getElementById('demo9').style.display = "block";
// text = "No special characters allowed";
// document.getElementById("inputText21").value = '';
// // createLi = false;
// }
2022-10-05 10:29:42 +00:00
2023-06-12 07:39:30 +00:00
// else if (!["^DJI","^GSPC","^NDX","^RUT","^VIX","^GSPTSE","^MXX","^BVSP","^GDAXI","^FTSE","^IBEX","^FCHI","^SSMI","^BFX","^ATX","^AEX","^OMX","^IXIC","FTSEMIB.MI",
// "^OMXH25","PSI20.LS","^STOXX","^STOXX50E","^N100","^KS11","^NZ50","^AXJO","^STI","000001.SS","399001.SZ","^N225","^NSEI","^BSESN","^HSI","^TWII","^JKSE","PSEI.PS","^SET.BK","XU100.IS"].includes(x)) {
// document.getElementById('demo9').style.display = "block";
// document.getElementById("inputText21").value = '';
// text = "Invalid index symbol"
2022-10-05 10:29:42 +00:00
2023-06-12 07:39:30 +00:00
// }
2023-01-09 10:34:29 +00:00
2023-06-12 07:39:30 +00:00
// else {
// text = "Input OK";
// document.getElementById('demo9').style.display = "none";
// createLi = true;
// // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST
// setTimeout(
// function() {
// document.getElementById('inputText21').value="";
// }, 100);
// }
// document.getElementById("demo9").innerHTML = text;
// }
2023-03-16 09:25:27 +00:00
// portoflio stuff
var portfolioCheckbox = document . getElementById ( "flexCheckChecked4" ) ;
if ( portfolioCheckbox . checked ) {
document . getElementById ( 'stocks-portfolio' ) . style . display = "block" ;
} else {
document . getElementById ( 'stocks-portfolio' ) . style . display = "none" ;
}
function portfolioValidate ( ) {
var portfolioCheckbox = document . getElementById ( "flexCheckChecked4" ) ;
if ( portfolioCheckbox . checked ) {
document . getElementById ( 'stocks-portfolio' ) . style . display = "block" ;
} else {
document . getElementById ( 'stocks-portfolio' ) . style . display = "none" ;
}
}
2023-03-17 09:32:03 +00:00
// crypto portfolio stuff
var portfolioCryptoCheckbox = document . getElementById ( "crypto_portfolio_checkbox" ) ;
if ( portfolioCryptoCheckbox . checked ) {
document . getElementById ( 'crypto-portfolio' ) . style . display = "block" ;
} else {
document . getElementById ( 'crypto-portfolio' ) . style . display = "none" ;
}
function portfolioCryptoValidate ( ) {
var portfolioCryptoCheckbox = document . getElementById ( "crypto_portfolio_checkbox" ) ;
if ( portfolioCryptoCheckbox . checked ) {
document . getElementById ( 'crypto-portfolio' ) . style . display = "block" ;
} else {
document . getElementById ( 'crypto-portfolio' ) . style . display = "none" ;
}
}
2023-03-16 09:25:27 +00:00
2023-04-21 10:52:09 +00:00
// scheduler show div
function showScheduler ( ) {
document . getElementById ( 'scheduler-div' ) . style . display = "block" ;
}
function closeScheduler ( ) {
document . getElementById ( 'scheduler-div' ) . style . display = "none" ;
2023-04-24 10:23:58 +00:00
document . getElementById ( 'saved' ) . style . display = "none" ;
2023-04-21 10:52:09 +00:00
}
2023-04-22 10:12:09 +00:00
// save scheduler settings
function saveSchedulerSettings ( ) {
let shutdown _hour = document . getElementById ( "shutdown-hour-select" ) . value ;
let shutdown _minute = document . getElementById ( "shutdown-minute-select" ) . value ;
let shutdown _enabled = document . getElementById ( "shutdown-enabled" ) . checked ;
let reboot _hour = document . getElementById ( "reboot-hour-select" ) . value ;
let reboot _minute = document . getElementById ( "reboot-minute-select" ) . value ;
let reboot _enabled = document . getElementById ( "reboot-enabled" ) . checked ;
2023-04-26 07:27:44 +00:00
let brightness1 _hour = document . getElementById ( "brightness1-hour1-select" ) . value ;
let brightness1 _minute = document . getElementById ( "brightness1-minute1-select" ) . value ;
let brightness1 _enabled = document . getElementById ( "brightness1-enabled" ) . checked ;
let brightness1 _bright = document . getElementById ( "brightness1-bright-select" ) . value ;
let brightness2 _hour = document . getElementById ( "brightness2-hour1-select" ) . value ;
let brightness2 _minute = document . getElementById ( "brightness2-minute1-select" ) . value ;
let brightness2 _enabled = document . getElementById ( "brightness2-enabled" ) . checked ;
let brightness2 _bright = document . getElementById ( "brightness2-bright-select" ) . value ;
let brightness3 _hour = document . getElementById ( "brightness3-hour1-select" ) . value ;
let brightness3 _minute = document . getElementById ( "brightness3-minute1-select" ) . value ;
let brightness3 _enabled = document . getElementById ( "brightness3-enabled" ) . checked ;
let brightness3 _bright = document . getElementById ( "brightness3-bright-select" ) . value ;
let brightness4 _hour = document . getElementById ( "brightness4-hour1-select" ) . value ;
let brightness4 _minute = document . getElementById ( "brightness4-minute1-select" ) . value ;
let brightness4 _enabled = document . getElementById ( "brightness4-enabled" ) . checked ;
let brightness4 _bright = document . getElementById ( "brightness4-bright-select" ) . value ;
2023-04-22 10:12:09 +00:00
let timezone = document . getElementById ( "timezone-select" ) . value ;
let settings = {
shutdown _hour : shutdown _hour ,
shutdown _minute : shutdown _minute ,
shutdown _enabled : shutdown _enabled ,
reboot _hour : reboot _hour ,
reboot _minute : reboot _minute ,
reboot _enabled : reboot _enabled ,
timezone : timezone ,
2023-04-26 07:27:44 +00:00
brightness1 _hour : brightness1 _hour ,
brightness1 _minute : brightness1 _minute ,
brightness1 _bright : brightness1 _bright ,
brightness1 _enabled : brightness1 _enabled ,
brightness2 _hour : brightness2 _hour ,
brightness2 _minute : brightness2 _minute ,
brightness2 _bright : brightness2 _bright ,
brightness2 _enabled : brightness2 _enabled ,
brightness3 _hour : brightness3 _hour ,
brightness3 _minute : brightness3 _minute ,
brightness3 _bright : brightness3 _bright ,
brightness3 _enabled : brightness3 _enabled ,
brightness4 _hour : brightness4 _hour ,
brightness4 _minute : brightness4 _minute ,
brightness4 _bright : brightness4 _bright ,
brightness4 _enabled : brightness4 _enabled ,
2023-04-22 10:12:09 +00:00
} ;
console . log ( settings ) ;
2023-04-24 10:23:58 +00:00
fetch ( "/saveSchedulerSettings" , {
method : "POST" ,
2023-04-24 10:33:22 +00:00
body : JSON . stringify ( settings ) ,
2023-04-24 10:23:58 +00:00
} ) ;
document . getElementById ( 'saved' ) . style . display = "block" ;
2023-04-22 10:12:09 +00:00
}
2023-05-15 08:27:01 +00:00
// CHANGE TOP 20 OR TOP 10 WORLD GOLF RANKING
function setTop20 ( ) {
let top20 = document . getElementById ( "golf-ranking-number" ) . value ;
fetch ( "/setTop20or10" , {
method : "POST" ,
body : JSON . stringify ( top20 ) ,
} ) ;
}
2023-07-07 08:22:21 +00:00
// get custom message values
function getCustomMsg ( value ) {
let messaged = value ;
const the _thing = document . getElementById ( "inputText13" ) ;
const the _msg = document . getElementById ( "inputText14" ) ;
const t _color = document . getElementById ( "inputScrollSpeed16" ) ;
const b _color = document . getElementById ( "inputScrollSpeed19" ) ;
const t _size = document . getElementById ( "inputScrollSpeed17" ) ;
the _thing . value = messaged ;
fetch ( "/fetchCustomMsg" , {
method : "POST" ,
body : JSON . stringify ( messaged ) ,
} )
. then ( response => response . json ( ) )
. then ( data => {
// Update the elements with the retrieved information
the _msg . value = data . text ;
t _color . value = data . text _colour ;
b _color . value = data . background _colour ;
t _size . value = data . size ;
} )
. catch ( error => {
console . error ( 'Error:' , error ) ;
} ) ;
}