UI: move loading indicator into ui.js, add cover option