Files
kubernetes/dev/tekton/examples/example-bank/public/javascript/home.js
2025-11-23 18:58:51 +01:00

90 lines
2.8 KiB
JavaScript
Executable File

class Home extends HTMLElement {
constructor() {
super();
console.log('INITIALIZING HOMESCREEN');
let template = document.getElementById('homescreen');
let templateContent = template.content;
const shadow = this.attachShadow({
mode: 'open'
})
.appendChild(templateContent.cloneNode(true));
}
generateTransaction(access_token, shadowRoot, tile){
var limit = tile.detail.eventData.limit * 100;
var base = tile.detail.eventData.base * 100;
var charge = Math.floor(Math.random() * (limit - base + 1)) + base;
charge=charge/100;
charge=charge.toFixed(2);
var entity = tile.detail.eventData.name.toUpperCase()
console.log('CREATING A CREDIT CARD CHARGE OF $' + charge + ' ON ' + entity );
createTransaction(access_token, entity, entity, charge,
(success) => {
if (success) {
let text = 'CREDIT CARD $' + charge + ' ON ' + entity ;
this.showNotification(shadowRoot, text)
} else {
this.showNotification(shadowRoot, "Failed creating transaction. Please check logs")
}
})
}
showNotification(shadowRoot, notificationText) {
var notifcationArea = shadowRoot.getElementById('notificationarea');
notifcationArea.innerHTML = '';
var message = document.createElement('div');
message.innerHTML = notificationText
message.className = 'notification';
notifcationArea.appendChild(message);
setTimeout(function(){
message.remove()
}, 2000);
}
connectedCallback() {
var sr = this.shadowRoot;
var tiles = sr.getElementById('APPTILES');
var homescreen = this;
tiles.addEventListener('APPTILE', e => {
console.log('HOMESCREEN RECIEVED EVENT FROM TILE: ' + e.detail.eventData.name.toLocaleUpperCase());
switch(e.detail.eventData.name){
case 'bank':
sr.host.parentElement.innerHTML = '<welcome-element mode="' + this.mode + '"></welcome-element>';
break;
default:
let access_token = loyalty.getCookie('access_token')
if (access_token != "") {
homescreen.generateTransaction(access_token, sr, e)
} else {
homescreen.showNotification(sr, 'Please log in using the Bank app.')
}
break;
}
});
}
}
try {
customElements.define('homescreen-element', Home);
} catch (err) {
const h3 = document.createElement('h3')
h3.innerHTML = err
document.body.appendChild(h3)
}