Further organization of the browser scripts.
Moved server selection styles to launcher.css, as they are nearly finished. Moved overlay convenience functions to overlay.js. Moved launch area (landing.ejs) convenience functions to landing.js. Various cleanups and documentation also added.
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
/**
|
||||
* Script for landing.ejs
|
||||
*/
|
||||
// Requirements
|
||||
const cp = require('child_process')
|
||||
const {URL} = require('url')
|
||||
@@ -17,6 +20,57 @@ const launch_progress = document.getElementById('launch_progress')
|
||||
const launch_progress_label = document.getElementById('launch_progress_label')
|
||||
const launch_details_text = document.getElementById('launch_details_text')
|
||||
|
||||
/* Launch Progress Wrapper Functions */
|
||||
|
||||
/**
|
||||
* Show/hide the loading area.
|
||||
*
|
||||
* @param {boolean} loading True if the loading area should be shown, otherwise false.
|
||||
*/
|
||||
function toggleLaunchArea(loading){
|
||||
if(loading){
|
||||
launch_details.style.display = 'flex'
|
||||
launch_content.style.display = 'none'
|
||||
} else {
|
||||
launch_details.style.display = 'none'
|
||||
launch_content.style.display = 'inline-flex'
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the details text of the loading area.
|
||||
*
|
||||
* @param {string} details The new text for the loading details.
|
||||
*/
|
||||
function setLaunchDetails(details){
|
||||
launch_details_text.innerHTML = details
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the value of the loading progress bar and display that value.
|
||||
*
|
||||
* @param {number} value The progress value.
|
||||
* @param {number} max The total size.
|
||||
* @param {number|string} percent Optional. The percentage to display on the progress label.
|
||||
*/
|
||||
function setLaunchPercentage(value, max, percent = ((value/max)*100)){
|
||||
launch_progress.setAttribute('max', max)
|
||||
launch_progress.setAttribute('value', value)
|
||||
launch_progress_label.innerHTML = percent + '%'
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the value of the OS progress bar and display that on the UI.
|
||||
*
|
||||
* @param {number} value The progress value.
|
||||
* @param {number} max The total download size.
|
||||
* @param {number|string} percent Optional. The percentage to display on the progress label.
|
||||
*/
|
||||
function setDownloadPercentage(value, max, percent = ((value/max)*100)){
|
||||
remote.getCurrentWindow().setProgressBar(value/max)
|
||||
setLaunchPercentage(value, max, percent)
|
||||
}
|
||||
|
||||
// Bind launch button
|
||||
document.getElementById('launch_button').addEventListener('click', function(e){
|
||||
console.log('Launching game..')
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
//const validEmail = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i
|
||||
|
||||
/**
|
||||
* Script for login.ejs
|
||||
*/
|
||||
// Validation Regexes.
|
||||
const validUsername = /^[a-zA-Z0-9_]{1,16}$/
|
||||
const basicEmail = /^\S+@\S+\.\S+$/
|
||||
//const validEmail = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i
|
||||
|
||||
// Login Elements
|
||||
const loginEmailError = document.getElementById('loginEmailError')
|
||||
|
||||
@@ -1,22 +1,6 @@
|
||||
// Requirements
|
||||
const path = require('path')
|
||||
const ConfigManager = require(path.join(__dirname, 'assets', 'js', 'configmanager.js'))
|
||||
|
||||
// Synchronous Listener
|
||||
document.addEventListener('readystatechange', function(){
|
||||
|
||||
if (document.readyState === 'complete'){
|
||||
if(ConfigManager.isFirstLaunch()){
|
||||
$('#welcomeContainer').fadeIn(500)
|
||||
} else {
|
||||
$('#landingContainer').fadeIn(500)
|
||||
}
|
||||
}
|
||||
|
||||
/*if (document.readyState === 'interactive'){
|
||||
|
||||
}*/
|
||||
}, false)
|
||||
/**
|
||||
* Script for overlay.ejs
|
||||
*/
|
||||
|
||||
/* Overlay Wrapper Functions */
|
||||
|
||||
@@ -103,56 +87,4 @@ function setDismissHandler(handler){
|
||||
} else {
|
||||
document.getElementById('overlayDismiss').onclick = handler
|
||||
}
|
||||
}
|
||||
|
||||
/* Launch Progress Wrapper Functions */
|
||||
|
||||
/**
|
||||
* Show/hide the loading area.
|
||||
*
|
||||
* @param {boolean} loading True if the loading area should be shown, otherwise false.
|
||||
*/
|
||||
function toggleLaunchArea(loading){
|
||||
if(loading){
|
||||
launch_details.style.display = 'flex'
|
||||
launch_content.style.display = 'none'
|
||||
} else {
|
||||
launch_details.style.display = 'none'
|
||||
launch_content.style.display = 'inline-flex'
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the details text of the loading area.
|
||||
*
|
||||
* @param {string} details The new text for the loading details.
|
||||
*/
|
||||
function setLaunchDetails(details){
|
||||
launch_details_text.innerHTML = details
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the value of the loading progress bar and display that value.
|
||||
*
|
||||
* @param {number} value The progress value.
|
||||
* @param {number} max The total size.
|
||||
* @param {number|string} percent Optional. The percentage to display on the progress label.
|
||||
*/
|
||||
function setLaunchPercentage(value, max, percent = ((value/max)*100)){
|
||||
launch_progress.setAttribute('max', max)
|
||||
launch_progress.setAttribute('value', value)
|
||||
launch_progress_label.innerHTML = percent + '%'
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the value of the OS progress bar and display that on the UI.
|
||||
*
|
||||
* @param {number} value The progress value.
|
||||
* @param {number} max The total download size.
|
||||
* @param {number|string} percent Optional. The percentage to display on the progress label.
|
||||
*/
|
||||
function setDownloadPercentage(value, max, percent = ((value/max)*100)){
|
||||
remote.getCurrentWindow().setProgressBar(value/max)
|
||||
setLaunchPercentage(value, max, percent)
|
||||
}
|
||||
|
||||
}
|
||||
23
app/assets/js/scripts/uibinder.js
Normal file
23
app/assets/js/scripts/uibinder.js
Normal file
@@ -0,0 +1,23 @@
|
||||
/**
|
||||
* Initialize UI functions which depend on internal modules.
|
||||
* Loaded after core UI functions are initialized in uicore.js.
|
||||
*/
|
||||
// Requirements
|
||||
const path = require('path')
|
||||
const ConfigManager = require(path.join(__dirname, 'assets', 'js', 'configmanager.js'))
|
||||
|
||||
// Synchronous Listener
|
||||
document.addEventListener('readystatechange', function(){
|
||||
|
||||
if (document.readyState === 'complete'){
|
||||
if(ConfigManager.isFirstLaunch()){
|
||||
$('#welcomeContainer').fadeIn(500)
|
||||
} else {
|
||||
$('#landingContainer').fadeIn(500)
|
||||
}
|
||||
}
|
||||
|
||||
/*if (document.readyState === 'interactive'){
|
||||
|
||||
}*/
|
||||
}, false)
|
||||
@@ -1,7 +1,7 @@
|
||||
// DOM cache.
|
||||
const welcomeButton = document.getElementById('welcomeButton')
|
||||
|
||||
welcomeButton.addEventListener('click', e => {
|
||||
/**
|
||||
* Script for welcome.ejs
|
||||
*/
|
||||
document.getElementById('welcomeButton').addEventListener('click', e => {
|
||||
$('#welcomeContainer').fadeOut(500, () => {
|
||||
$('#loginContainer').fadeIn(500)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user