A sorter site for Idolm@ster Characters
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

name saved data uniquely in case of multiple sorters within same domain

+17 -9
+1 -1
README.md
··· 15 15 This is a list of things you need to change for your sorter, for each file. 16 16 17 17 * `index.html` 18 - * Sorter name: Change under `starting start button` and the `<title>` tags. 18 + * Sorter name: Change under `sortername` and the `<title>` tags. 19 19 * Starting banner images: 120px x 180px, under `left sort image` and `right sort image`. 20 20 * OpenGraph tags: `og:site_name`, `og:description` and `og:image` will show up on embeds when linked to social media such as Facebook, Twitter and Discord. 21 21 * Sorter info: Insert whatever you like under the `info` tag.
+5 -1
index.html
··· 35 35 <div class="sorter"> 36 36 <img src="src/assets/defaultL.jpg" class="left sort image"> 37 37 38 - <div class="starting start button">Touhou Project Character Sorter<br><br>Click to Start!</div> 38 + <div class="starting start button"> 39 + <span class="sortername">Touhou Project Character Sorter</span> 40 + <br><br> 41 + Click to Start! 42 + </div> 39 43 <div class="starting load button">Load <span></span></div> 40 44 41 45 <div class="loading button"><div></div><span>Loading...</span></div>
+11 -7
src/js/main.js
··· 50 50 let finalCharacters = []; 51 51 let loading = false; 52 52 let totalBattles = 0; 53 - let storedSaveType = localStorage.getItem('saveType'); 53 + let sorterName = ''; 54 + let storedSaveType = ''; 54 55 55 56 /** Initialize script. */ 56 57 function init() { 58 + sorterName = document.querySelector('.sortername').textContent; 59 + storedSaveType = localStorage.getItem(`${sorterName}_saveType`); 60 + 57 61 /** Define button behavior. */ 58 62 document.querySelector('.starting.start.button').addEventListener('click', start); 59 63 document.querySelector('.starting.load.button').addEventListener('click', loadProgress); ··· 551 555 function saveProgress(saveType) { 552 556 const saveData = generateSavedata(); 553 557 554 - localStorage.setItem('saveData', saveData); 555 - localStorage.setItem('saveType', saveType); 558 + localStorage.setItem(`${sorterName}_saveData`, saveData); 559 + localStorage.setItem(`${sorterName}_saveType`, saveType); 556 560 557 561 if (saveType !== 'Autosave') { 558 - const saveURL = `${window.location.origin}${window.location.pathname}?${saveData}`; 562 + const saveURL = `${location.protocol}//${location.host}${location.pathname}?${saveData}`; 559 563 const inProgressText = 'You may click Load Progress after this to resume, or use this URL.'; 560 564 const finishedText = 'You may use this URL to share this result, or click Load Last Result to view it again.'; 561 565 ··· 567 571 * Load progress from local browser storage. 568 572 */ 569 573 function loadProgress() { 570 - const saveData = localStorage.getItem('saveData'); 574 + const saveData = localStorage.getItem(`${sorterName}_saveData`); 571 575 572 576 if (saveData) decodeQuery(saveData); 573 577 } ··· 578 582 function clearProgress() { 579 583 storedSaveType = ''; 580 584 581 - localStorage.removeItem('saveData'); 582 - localStorage.removeItem('saveType'); 585 + localStorage.removeItem(`${sorterName}_saveData`); 586 + localStorage.removeItem(`${sorterName}_saveType`); 583 587 584 588 document.querySelectorAll('.starting.start.button').forEach(el => el.style['grid-row'] = 'span 6'); 585 589 document.querySelectorAll('.starting.load.button').forEach(el => el.style.display = 'none');