Skip to content

Instantly share code, notes, and snippets.

@acappelli
Last active August 29, 2015 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save acappelli/dbe22415bba5d469aab8 to your computer and use it in GitHub Desktop.
Save acappelli/dbe22415bba5d469aab8 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<title>Live</title>
<script type="text/javascript" src="./js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="./js/jquery.mobile-1.3.2.js"></script>
<link rel="stylesheet" href="./assets/css/jquery.mobile-1.3.2.css"/>
<link rel="stylesheet" href="./assets/css/style.css"/>
<link rel="stylesheet" href="./assets/css/index.css"/>
<link rel="stylesheet" href="./assets/css/formation_countdown.css"/>
<link rel="stylesheet" href="./assets/css/live.css"/>
</head>
<body>
<div data-role="page" id="live-page">
<div data-role="content" data-theme="c">
<div class="ui-grid-solo header-top-custom-a">
<div class="ui-block-a">
<!-- <img src="./css/images/notifica-ok.png" alt="icon" class="image-header align-middle-to-context">-->
<span>Live</span>
<span id="live-team-name"></span>
<div class="ui-block-a live-team-wrapper">
<span class="live-team-avatar"><img class = "live-avatar-img" /></span>
<span class="live-team-name">Mametrentadue F.C.</span>
<span class="live-event-label">live</span>
</div>
<div class="ui-block-a live-player-list-wrapper">
<div class="live-player-item">
<span class="live-player-name">Pirlo</span>
<img src="./assets/images/avatar-sample.png" class="player-event" />
<img src="./assets/images/avatar-sample.png" class="player-event "/>
</div>
</div>
</div>
</div>
<!-- /content -->
<div data-role="footer" data-position="fixed" data-tap-toggle="false" data-theme="a">
<!-- bottom_nav_history -->
<div class="ui-grid-a">
<div class="ui-block-a nav_history nav_history_on"></div>
<div class="ui-block-b nav_history nav_history_off"></div>
</div>
</div>
<!-- /footer -->
</div>
<!-- /page -->
</body>
</html>
var backEventListener = null;
// Db reference
var db = null;
// GC dell'app
var unregister = function() {
if ( backEventListener !== null ) {
// Eliminazione del listener del btn di back del gear
document.removeEventListener( 'tizenhwkey', backEventListener);
backEventListener = null;
// Eliminazione navigator-listener
NavigatorEventListener.unsetListeners();
// Exit
window.tizen.application.getCurrentApplication().exit();
}
}
//Initialize function
var init = function () {
/*var req = indexedDB.deleteDatabase("leghe");
req.onsuccess = function () {
console.log("Deleted database successfully");
};
req.onerror = function () {
console.log("Couldn't delete database");
};
req.onblocked = function () {
console.log("Couldn't delete database due to the operation being blocked");
};*/
if(db == null) {
var dbRequest = DaoMaster.initDb();
dbRequest.onsuccess = function(e) {
// Prelevo il riferimento al db
db = e.target.result;
// Operazioni di init della sessione
Session.init();
};
dbRequest.onerror = function(e) {
console.log("dbRequest.onerror");
};
}
// register once
if ( backEventListener !== null ) {
return;
}
// Funzione scatenata al press del btn di back del gear
var backEvent = function(e) {
// Gear back button
if (e.keyName == "back") {
try {
// Se l'utente è nella pagina del profilo, termino l'app
if(NavigatorEventListener.currentPageIndex == 3) {
unregister();
return;
}
// if first page, terminate app
if ($.mobile.urlHistory.activeIndex <= 0) {
unregister();
}
// move previous page
else {
$.mobile.urlHistory.activeIndex -= 1;
$.mobile.urlHistory.clearForward();
window.history.back();
}
}
catch(ex) {
unregister();
}
}
}
// add eventListener for tizenhwkey (Back Button)
document.addEventListener('tizenhwkey', backEvent);
backEventListener = backEvent;
// Navigator event listener
NavigatorEventListener.init();
// Navigazione tramite notifica all'onStart
//NavigatorEventListener.navigateToFromNotification();
// Connect to host device (SAP)
tryToReconnect();
//Debug.run();
};
var onPageShow = function() {
// Index page
if($("#index-page").length > 0) {}
// Live page
if($("#live-page").length > 0) {
var teamName = HostDataDao.get().onsuccess = function(e) {
var bean = e.target.result;
if (bean !== undefined) {
$(".squadra").html(bean.userProfile.teamName);
}
}
var userImageBean = UserImageDao.get(1).onsuccess = function(e) {
var bean = e.target.result;
if(bean !== undefined) {
// Setto la t-shirt del profilo
$(".live-team-avatar-img").attr("src", "data:image/jpeg;base64," + bean.userTshirtBase64);
}
}
var notification = NotificationDao.get().onsuccess = function(e) {
var bean = e.target.result;
var customerItemTemplate =
'<div class="live-player-item">\n\
<span class="live-player-name"></span>\n\
{imgs}\n\
</div>';
var customerItemData = '';
//TODO improve me
if(bean !== undefined && bean.length > 0) {
var s = "";
for (var i = 0; i < bean.length; i++) {
$(".live-player-list-wrapper").append(s);
customerItemData = customerItemData.replace(/{customerType}/g, item.customer_type_description);
s += "<br>" + bean[i].nome + "<br>";
if(bean[i].gol_fatto > 0) {
s += bean[i].gol_fatto + "<img src='/assets/images/ic_event_goal.png' class='player-event'>";
}
if(bean[i].gol_subito > 0){
s += bean[i].gol_subito + "<img src='/assets/images/ic_event_lost_goal.png' class='player-event'>";
}
if(bean[i].rigore_segnato > 0){
s += bean[i].rigore_segnato + "<img src='/assets/images/ic_event_penalty_scored.png' class='player-event'>";
}
if(bean[i].rigore_parato > 0){
s += bean[i].rigore_parato + "<img src='/assets/images/ic_event_penalty_blocked.png' class='player-event'>";
}
if(bean[i].rigore_sbagliato > 0){
s += bean[i].rigore_sbagliato + "<img src='/assets/images/ic_event_penalty_failed.png' class='player-event'>";
}
if(bean[i].assist > 0){
s += bean[i].assist + "<img src='/assets/images/ic_event_assist_sationary.png' class='player-event'>";
}
if(bean[i].assist_fermo > 0){
s += bean[i].assist_fermo + "<img src='/assets/images/ic_event_assist_sationary.png' class='player-event'>";
}
if(bean[i].autorete > 0){
s += bean[i].autorete + "<img src='/assets/images/ic_event_owngoal.png' class='player-event'>";
}
if(bean[i].gol_decisivo_pareggio > 0){
s += bean[i].gol_decisivo_pareggio + "<img src='/assets/images/ic_event_goal_tie.png' class='player-event'>";
}
if(bean[i].gol_decisivo_vittoria > 0){
s += bean[i].gol_decisivo_vittoria + "<img src='/assets/images/ic_event_goal_victory.png' class='player-event'>";
}
if(bean[i].ammonizione == 1){
s += "<img src='/assets/images/ic_event_yellow_card.png' class='player-event'>";
}
if(bean[i].espulsione == 1){
s += "<img src='/assets/images/ic_event_red_card.png' class='player-event'>";
}
if(bean[i].sostituzione.indexOf("E") != (-1)) {
s += "<img src='/assets/images/ic_event_player_in.png' class='player-event'>";
}
if(bean[i].sostituzione.indexOf("U") != (-1)) {
s += "<img src='/assets/images/ic_event_player_out.png' class='player-event'>";
}
}
$("#live-notification").html(s);
}
else {
$("#live-notification").html("Nessun dato da visualizzare");
}
}
notification.onerror = function(e) {
$("#live-notification").html("Nessun dato da visualizzare");
}
}
// Formation countdown page
if($("#formation-countdown-page").length > 0) {
var hostDataBean = HostDataDao.get().onsuccess = function(e) {
var bean = e.target.result;
if(bean !== undefined && bean.formationCountdown > 0) {
// countdown(start, end, units, max, digits);
var start = null;
var end = new Date(bean.formationCountdown);
var units = countdown.DAYS & countdown.HOURS & countdown.MINUTES & countdown.SECONDS;
var max = 3;
// Init countdown
var countDownStart = countdown(start, end, units, max).toString();
// Se mancano ancora alcune ore setto il limite delle label da mostare a 1
/*if( (countDownStart.search("ora") >= 0) || (countDownStart.search("ore") >= 0) ) {
max = 1;
countDownStart = countdown(start, end, units, max).toString();
}*/
// Append della data formattata
$("#formation-countdown").html(countDownStart);
// Update del countdown ad ogni secondo
var countdownIntervalId = setInterval(function() {
var actualCountDown = countdown(start, end, units, max).toString();
// Se il countdown è a 0 termino l'interval
if(actualCountDown == "") {
// Disabilito la slide del countdown
PageManager.pages[2].isEnabled = false;
// Abilito la pagina del live
PageManager.pages[1].isEnabled = true;
$("#formation-countdown").html("Segui gli aggiornamenti in tempo reale nella sezione live");
// Timeout prima del redirect sulla slide del live
setTimeout(function() {
NavigatorEventListener.goTo(1);
}, 5000);
clearInterval(countdownIntervalId);
return;
}
$("#formation-countdown").html(actualCountDown);
}, 1000);
}
else {
$("#formation-countdown").html("In attesa di sincronizzazione...");
}
}
hostDataBean.onerror = function(e) {
$("#formation-countdown").html("In attesa di sincronizzazione...");
}
}
// User profile page
if($("#user-profile-page").length > 0) {
var hostDataBean = HostDataDao.get().onsuccess = function(e) {
var bean = e.target.result;
if(bean !== undefined) {
// Setto i dati del profilo
$(".lega").html(bean.userProfile.leagueName);
$(".competizione").html(bean.userProfile.competitionName);
$(".squadra").html(bean.userProfile.teamName);
$("#score").html(bean.userProfile.score);
$("#position").html(bean.userProfile.position);
}
}
var userImageBean = UserImageDao.get(1).onsuccess = function(e) {
var bean = e.target.result;
if(bean !== undefined) {
// Setto le immagini del profilo
$("#binary-avatar").attr("src", "data:image/jpeg;base64," + bean.userAvatarBase64);
}
}
var userImageBean = UserImageDao.get(2).onsuccess = function(e) {
var bean = e.target.result;
if(bean !== undefined) {
// Setto le immagini del profilo
$("#binary-tshirt").attr("src", "data:image/jpeg;base64," + bean.userTshirtBase64);
}
}
}
}
// Page event
$(document).bind('pageinit', init);
$(document).bind('pageshow', onPageShow);
$(document).unload(unregister);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment