function generateEventToggles(eventInfo, eventConfig, eventEnabled) { let cardContent = $('
') if(typeof eventInfo['info'] === 'string') { cardContent.append( $('
').append( $('
') ).append( $('

' + eventInfo['info'] + '

') ) ) } else { for(const infoIter in eventInfo['info']) { cardContent.append( $('
').append( $('
') ).append( $('

' + eventInfo['info'][infoIter] + '

') ) ) } } return cardContent } async function generateNewEventsConfigFile(eventData) { let eventConfig = {} for(const eventIter in eventData['events']) { eventConfig[eventData['events'][eventIter]['id']] = await insertNewEventConfig(eventData, eventIter, eventData['events'][eventIter]['id']) } return eventConfig } async function insertNewEventConfig(eventData, eventIter, eventID) { let toggle = false if(typeof eventData['events'][eventIter]['info'] !== 'string') { toggle = {} for(const toggleIter in eventData['events'][eventIter]['info']) { toggle[eventData['events'][eventIter]['id'] + '_' + (parseInt(toggleIter) + 1)] = false } } return { 'toggle': toggle } } async function readEventsConfigFile(eventData) { try { return await $.getJSON("static/asset/config/events.json", function(data) { return data }) } catch { return await generateNewEventsConfigFile(eventData) } } async function readEventsJsonFile() { return await $.getJSON("static/asset/json/events.json", function(data) { return data }) } $(document).ready(async function() { let eventData = await readEventsJsonFile() let eventConfig = await readEventsConfigFile(eventData) for(const eventIter in eventData['events']) { if(eventConfig[eventData['events'][eventIter]['id']] === undefined) { eventConfig[eventData['events'][eventIter]['id']] = await insertNewEventConfig(eventData, eventIter, eventData['events'][eventIter]['id']) } if(eventData['events'][eventIter]['enabled']) { if(eventData['events'][eventIter]['type'] === 'stamp') { $('#stampevent_select').append( '' ) } else if(eventData['events'][eventIter]['type'] === 'gift') { $('#giftevent_select').append( '' ) } else if(eventData['events'][eventIter]['type'] === 'cross_online') { $('#crossevent_select').append( '' ) } } } $('#event-submit').on('click', async function() { $.each($('span.check'), function(index, value) { for(const eventIter in eventData['events']) { let toggle = true if($(value).css('background-color').includes("54, 54, 54")) { toggle = false } if(eventData['events'][eventIter]['id'] === $(value).parent().children('input').attr('name')) { eventConfig[eventData['events'][eventIter]['id']]['toggle'] = toggle } else if ($(value).parent().children('input').attr('name').includes(eventData['events'][eventIter]['id'] + "_")) { eventConfig[eventData['events'][eventIter]['id']]['toggle'][[$(value).parent().children('input').attr('name')]] = toggle } } }) await emit("manageEvents", {eventConfig: eventConfig}).then( function(response) { alert('Saved.') }, function(error) { console.log(error) } ) }) $('select').change(async function(event) { let selectClass = '#' + $(this).attr('id') let listClasses = {'#stampevent_select': 'stamp', '#giftevent_select': 'gift', '#crossevent_select': 'cross'} $('.' + listClasses[selectClass] + '.list').empty() for(const eventIter in eventData['events']) { if(eventData['events'][eventIter]['id'] === $(selectClass).val()) { $('.' + listClasses[selectClass] + '.list').append( generateEventToggles(eventData['events'][eventIter], eventConfig[eventData['events'][eventIter]['id']], eventData['events'][eventIter]['enabled']) ) $('div.main').append( $('
') ) } } }) })