| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- // 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)
- /* Overlay Wrapper Functions */
- /**
- * Toggle the visibility of the overlay.
- *
- * @param {boolean} toggleState True to display, false to hide.
- * @param {boolean} dismissable Optional. True to show the dismiss option, otherwise false.
- * @param {string} content Optional. The content div to be shown.
- */
- function toggleOverlay(toggleState, dismissable = false, content = 'overlayContent'){
- if(toggleState == null){
- toggleState = !document.getElementById('main').hasAttribute('overlay')
- }
- if(typeof dismissable === 'string'){
- content = dismissable
- }
- if(toggleState){
- document.getElementById('main').setAttribute('overlay', true)
- $('#' + content).parent().children().hide()
- $('#' + content).show()
- if(dismissable){
- $('#overlayDismiss').show()
- } else {
- $('#overlayDismiss').hide()
- }
- $('#overlayContainer').fadeIn(250)
- } else {
- document.getElementById('main').removeAttribute('overlay')
- $('#overlayContainer').fadeOut(250, () => {
- $('#' + content).parent().children().hide()
- $('#' + content).show()
- if(dismissable){
- $('#overlayDismiss').show()
- } else {
- $('#overlayDismiss').hide()
- }
- })
- }
- }
- /**
- * Set the content of the overlay.
- *
- * @param {string} title Overlay title text.
- * @param {string} description Overlay description text.
- * @param {string} acknowledge Acknowledge button text.
- * @param {string} dismiss Dismiss button text.
- */
- function setOverlayContent(title, description, acknowledge, dismiss = 'Dismiss'){
- document.getElementById('overlayTitle').innerHTML = title
- document.getElementById('overlayDesc').innerHTML = description
- document.getElementById('overlayAcknowledge').innerHTML = acknowledge
- document.getElementById('overlayDismiss').innerHTML = dismiss
- }
- /**
- * Set the onclick handler of the overlay acknowledge button.
- * If the handler is null, a default handler will be added.
- *
- * @param {function} handler
- */
- function setOverlayHandler(handler){
- if(handler == null){
- document.getElementById('overlayAcknowledge').onclick = () => {
- toggleOverlay(false)
- }
- } else {
- document.getElementById('overlayAcknowledge').onclick = handler
- }
- }
- /**
- * Set the onclick handler of the overlay dismiss button.
- * If the handler is null, a default handler will be added.
- *
- * @param {function} handler
- */
- function setDismissHandler(handler){
- if(handler == null){
- document.getElementById('overlayDismiss').onclick = () => {
- toggleOverlay(false)
- }
- } 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)
- }
|