Welcome To The Homebase Tenant Portal
Access your personalized dashboard to submit maintenance requests, review history, and manage rental essentials in one place.
(function(){
function ready(fn){ if(document.readyState !== ‘loading’){ fn(); } else { document.addEventListener(‘DOMContentLoaded’, fn); } }
function esc(value){ return String(value == null ? ” : value).replace(/[&’”]/g, function(ch){ return {‘&’:’&’,”:’>’,”‘”:’'’,’”‘:’"’}[ch]; }); }
function statusLabel(value){
var map = { open:’Open’, assigned:’Assigned’, in_progress:’In Progress’, completed:’Completed’, cancelled:’Cancelled’ };
return map[value] || String(value || ‘Open’).replace(/_/g, ‘ ‘);
}
function requestCard(r){
var created = r.created_at ? new Date(String(r.created_at).replace(‘ ‘, ‘T’)) : null;
var date = created && !isNaN(created.getTime()) ? created.toLocaleDateString(undefined, { month:’short’, day:’numeric’ }) : ”;
var status = statusLabel(r.status);
return ‘
‘
‘ + esc(r.title || ‘Maintenance Request’) + ‘
‘ +
‘‘ + esc(status) + ‘
‘ +
‘
‘ + esc(r.description || ‘No additional details provided.’) + ‘
‘ +
‘
‘ +
‘
‘;
}
function emptyState(){
return ‘
‘
‘ +
‘
No Recent Requests
Submit a maintenance request and it will show up here.
‘ +
‘
‘;
}
function loadRecent(){
var grid = document.getElementById(‘hb-recent-requests-grid’);
if(!grid || !window.hbFrontend || !window.hbFrontend.apiUrl) return;
if(!grid.querySelector(‘.hb-skeleton’)) return;
fetch(window.hbFrontend.apiUrl + ‘/maintenance?per_page=3’, {
credentials: ‘same-origin’,
headers: { ‘X-WP-Nonce’: window.hbFrontend.nonce || ” }
}).then(function(resp){ return resp.ok ? resp.json() : Promise.reject(resp); })
.then(function(data){
var list = data && Array.isArray(data.requests) ? data.requests : [];
grid.innerHTML = list.length ? list.map(requestCard).join(”) : emptyState();
})
.catch(function(){ grid.innerHTML = emptyState(); });
}
ready(function(){ setTimeout(loadRecent, 250); setTimeout(loadRecent, 1250); });
})();