2024-11-02 11:16:25 +13:00
async function checkInstanceUpdateStatus ( ) {
try {
const response = await fetch ( '/commits.atom' ) ;
const text = await response . text ( ) ;
const parser = new DOMParser ( ) ;
const xmlDoc = parser . parseFromString ( text , "application/xml" ) ;
const entries = xmlDoc . getElementsByTagName ( 'entry' ) ;
const localCommit = document . getElementById ( 'git_commit' ) . dataset . value ;
let statusMessage = '' ;
if ( entries . length > 0 ) {
const commitHashes = Array . from ( entries ) . map ( entry => {
const id = entry . getElementsByTagName ( 'id' ) [ 0 ] . textContent ;
return id . split ( '/' ) . pop ( ) ;
} ) ;
const commitIndex = commitHashes . indexOf ( localCommit ) ;
if ( commitIndex === 0 ) {
statusMessage = '✅ Instance is up to date.' ;
} else if ( commitIndex > 0 ) {
statusMessage = ` ⚠️ This instance is not up to date and is ${ commitIndex } commits old. Test and confirm on an up-to-date instance before reporting. ` ;
2024-11-15 05:49:47 +13:00
document . getElementById ( 'error-318' ) . remove ( ) ;
2024-11-02 11:16:25 +13:00
} else {
statusMessage = ` ⚠️ This instance is not up to date and is at least ${ commitHashes . length } commits old. Test and confirm on an up-to-date instance before reporting. ` ;
2024-11-15 05:49:47 +13:00
document . getElementById ( 'error-318' ) . remove ( ) ;
2024-11-02 11:16:25 +13:00
}
} else {
statusMessage = '⚠️ Unable to fetch commit information.' ;
}
document . getElementById ( 'update-status' ) . innerText = statusMessage ;
} catch ( error ) {
console . error ( 'Error fetching commits:' , error ) ;
document . getElementById ( 'update-status' ) . innerText = '⚠️ Error checking update status.' ;
}
}
checkInstanceUpdateStatus ( ) ;