| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /**
- * Script for overlay.ejs
- */
- /* 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
- }
- }
- /* Server Select View */
- document.getElementById('serverSelectConfirm').addEventListener('click', () => {
- const listings = document.getElementsByClassName('serverListing')
- for(let i=0; i<listings.length; i++){
- if(listings[i].hasAttribute('selected')){
- const serv = AssetGuard.getServerById(ConfigManager.getGameDirectory(), listings[i].getAttribute('servid'))
- ConfigManager.setSelectedServer(serv != null ? serv.id : null)
- updateSelectedServer(serv != null ? serv.name : null)
- setLaunchEnabled(serv != null)
- refreshServerStatus(true)
- toggleOverlay(false)
- return
- }
- }
- // None are selected? Not possible right? Meh, handle it.
- if(listings.length > 0){
- ConfigManager.setSelectedServer(listings[0].getAttribute('servid'))
- updateSelectedServer()
- toggleOverlay(false)
- }
- })
- // Bind server select cancel button.
- document.getElementById('serverSelectCancel').addEventListener('click', () => {
- toggleOverlay(false)
- })
- function setServerListingHandlers(){
- const listings = Array.from(document.getElementsByClassName('serverListing'))
- listings.map((val) => {
- val.onclick = e => {
- if(val.hasAttribute('selected')){
- return
- }
- const cListings = document.getElementsByClassName('serverListing')
- for(let i=0; i<cListings.length; i++){
- if(cListings[i].hasAttribute('selected')){
- cListings[i].removeAttribute('selected')
- }
- }
- val.setAttribute('selected', '')
- document.activeElement.blur()
- }
- })
- }
- setServerListingHandlers()
|