mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-03-23 21:23:22 -07:00
* Player tracker: implement a stylized tracker (#447) * Move generic tracker to a WebWorld method * render both a generic tracker at generic_tracker and the specific tracker at /tracker * create a base template for generic specific tracker and instantiate some information before callng it * some baseline for the playerTracker.html. update information fed from tracker.py * playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon. * player tracker: starting work on regions table * player tracker: change method calls * Move generic tracker to a WebWorld method * render both a generic tracker at generic_tracker and the specific tracker at /tracker * create a base template for generic specific tracker and instantiate some information before callng it * some baseline for the playerTracker.html. update information fed from tracker.py * playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon. * player tracker: starting work on regions table * player tracker: change method calls * Move generic tracker to a WebWorld method * create a base template for generic specific tracker and instantiate some information before callng it * some baseline for the playerTracker.html. update information fed from tracker.py * playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon. * player tracker: starting work on regions table * player tracker: switch item, icon and location tables to flex views. Some styling based on theme * Player Tracker: Finish building html template for all blocks. Set groundwork for theme styling * Player Tracker: Implement tracker class. Document tracker usage. * Player Tracker: Add button to switch between trackers. Some styling for styled tracker. * Player Tracker: reword some text. Attempt to fix page refreshing. * Player Tracker: reremove the TODOs that got merged back in accidentally. * player tracker: move render_template import to webworld so it isn't required outside of webhost * Player Tracker: code cleanup, typing. Add inventory with names to PlayerTracker class in case custom trackers want to use it to change their prog_items attribute. * Player Tracker: delete a line I forgot about. Add typing to theme. * Player Tracker: Generate checks_done automatically so worlds don't have to do it * Player Tracker: Add typing to PlayerTracker class in webworld method. Update documentation * Player Tracker: code cleanup * Player Tracker: Sort of implement fetch (works but could be better). Make playerTracker.html more readable. * specific trackers: significant html cleanup. DOM Endpoint auto updating page every 30 seconds * Changes by Kono * specific trackers: cache and only load the data once every minute * specific tracker: allow for one icon placement to be used for multiple items. * Player tracker fixes/updates (#635) * Move generic tracker to a WebWorld method * render both a generic tracker at generic_tracker and the specific tracker at /tracker * create a base template for generic specific tracker and instantiate some information before callng it * some baseline for the playerTracker.html. update information fed from tracker.py * playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon. * player tracker: starting work on regions table * player tracker: change method calls * Move generic tracker to a WebWorld method * render both a generic tracker at generic_tracker and the specific tracker at /tracker * create a base template for generic specific tracker and instantiate some information before callng it * some baseline for the playerTracker.html. update information fed from tracker.py * playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon. * player tracker: starting work on regions table * player tracker: change method calls * Move generic tracker to a WebWorld method * create a base template for generic specific tracker and instantiate some information before callng it * some baseline for the playerTracker.html. update information fed from tracker.py * playerTracker: finish implementing icons and generic locations rendering. hide any unacquired progression items when not using icons. Place the name of the progression item under its icon. * player tracker: starting work on regions table * player tracker: switch item, icon and location tables to flex views. Some styling based on theme * Player Tracker: Finish building html template for all blocks. Set groundwork for theme styling * Player Tracker: Implement tracker class. Document tracker usage. * Player Tracker: Add button to switch between trackers. Some styling for styled tracker. * Player Tracker: reword some text. Attempt to fix page refreshing. * Player Tracker: reremove the TODOs that got merged back in accidentally. * player tracker: move render_template import to webworld so it isn't required outside of webhost * Player Tracker: code cleanup, typing. Add inventory with names to PlayerTracker class in case custom trackers want to use it to change their prog_items attribute. * Player Tracker: delete a line I forgot about. Add typing to theme. * Player Tracker: Generate checks_done automatically so worlds don't have to do it * Player Tracker: Add typing to PlayerTracker class in webworld method. Update documentation * Player Tracker: code cleanup * Player Tracker: Sort of implement fetch (works but could be better). Make playerTracker.html more readable. * specific trackers: significant html cleanup. DOM Endpoint auto updating page every 30 seconds * Changes by Kono * specific trackers: cache and only load the data once every minute * specific tracker: allow for one icon placement to be used for multiple items. * lttp: move tracker to new format. will need more modification to generic solution to handle region keys tracking. likely a new html template that inherits the current * lttp: fix broken icons rendering, add in progressive mail that i forgor. reorder some icons * tracker: fix non edited trackers being broken from changes. * tracker: move theme application before modify method so trackers can use a different theme than the world if desired. * tracker: starting work on key tracking. * tracker: styling and cleanup by Farrak * tracker: styling and cleanup by Farrak * tracker: styling and cleanup of playerTracker.html * Revert playerTracker.html * trackers: rename some files for clarity. move trackers into their own subdirectory * small tracker.py cleanup * move minecraft tracker to new system * add item link attributing from upstream * change getPlayerTracker to get_player_tracker. refactor broken linkings * refactor styling files to trackers folders * fix broken image in minecraft tracker. move oot tracker to new system * clean up my oot nightmare * rename lttpKeysTracker to zeldaKeysTracker. Move oot to keys tracker * implement zeldaKeysTracker.js. fix table locations hiding/showing
50 lines
1.7 KiB
JavaScript
50 lines
1.7 KiB
JavaScript
window.addEventListener('load', () => {
|
|
// Reload tracker every 15 seconds
|
|
const url = window.location;
|
|
setInterval(() => {
|
|
const ajax = new XMLHttpRequest();
|
|
ajax.onreadystatechange = () => {
|
|
if (ajax.readyState !== 4) { return; }
|
|
|
|
// Create a fake DOM using the returned HTML
|
|
const domParser = new DOMParser();
|
|
const fakeDOM = domParser.parseFromString(ajax.responseText, 'text/html');
|
|
|
|
// Update item tracker
|
|
document.getElementById('inventory-table').innerHTML = fakeDOM.getElementById('inventory-table').innerHTML;
|
|
// Update only counters in the location-table
|
|
let counters = document.getElementsByClassName('counter');
|
|
const fakeCounters = fakeDOM.getElementsByClassName('counter');
|
|
for (let i = 0; i < counters.length; i++) {
|
|
counters[i].innerHTML = fakeCounters[i].innerHTML;
|
|
}
|
|
};
|
|
ajax.open('GET', url);
|
|
ajax.send();
|
|
}, 15000)
|
|
|
|
// Collapsible advancement sections
|
|
const categories = document.getElementsByClassName("location-category");
|
|
for (let i = 0; i < categories.length; i++) {
|
|
let hide_id = categories[i].id.split('-')[0];
|
|
if (hide_id == 'Total') {
|
|
continue;
|
|
}
|
|
categories[i].addEventListener('click', function() {
|
|
// Toggle the advancement list
|
|
document.getElementById(hide_id).classList.toggle("hide");
|
|
// Change text of the header
|
|
const tab_header = document.getElementById(hide_id+'-header').children[0];
|
|
const orig_text = tab_header.innerHTML;
|
|
let new_text;
|
|
if (orig_text.includes("▼")) {
|
|
new_text = orig_text.replace("▼", "▲");
|
|
}
|
|
else {
|
|
new_text = orig_text.replace("▲", "▼");
|
|
}
|
|
tab_header.innerHTML = new_text;
|
|
});
|
|
}
|
|
});
|