initial commit
This commit is contained in:
89
dev/tekton/examples/example-bank/public/javascript/home.js
Executable file
89
dev/tekton/examples/example-bank/public/javascript/home.js
Executable file
@@ -0,0 +1,89 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user