var EVENTS = EVENTS || {}; EVENTS.dateFormat = { store : { date: "YYYY-MM-DD", hour: "HH:mm" }, display : { date: "DD-MM-YYYY", hour: "HH:mm" } } EVENTS.storeDateFormat = EVENTS.dateFormat.store.date + " " + EVENTS.dateFormat.store.hour; EVENTS.displayDateFormat = EVENTS.dateFormat.display.date + " " + EVENTS.dateFormat.display.hour; EVENTS.render = function() { var ret = checkConnection('ERR_EVENT'); if (ret) { EVENTS.query(ai1ec.cats.single); } else { EVENTS.loadFromDb('#mostralista', ai1ec.cats.single); } } EVENTS.formatDate = function(date, format) { var mdate = moment(date); return mdate.isValid() ? mdate.format(format) : ""; } EVENTS.query = function (type) { type = type || ai1ec.cats.single; var table = type == ai1ec.cats.repeat ? 'xm24_events_repeat' : 'xm24_events_single'; $.mobile.loading('show'); ai1ec.remote.getLastEvents(type, function(events) { var n_evs = events.length, n_evs_ins = 0, n_evs_err = 0; if(n_evs > 0) { FONTE.dbHandler.executeSql('DELETE FROM ' + table , [], function() { for (var i = 0; i < events.length; i++) { var event = events[i]; var evId = ai1ec.event.getId(event); var evTitle = ai1ec.event.getTitle(event); var evDesc = ai1ec.event.getDescription(event); var evUrl = ai1ec.event.getUrl(event); var evGeo = ai1ec.event.getGeo(event); var evInitDate = EVENTS.formatDate(ai1ec.event.getInitDate(event), EVENTS.storeDateFormat); var evEndDate = EVENTS.formatDate(ai1ec.event.getEndDate(event), EVENTS.storeDateFormat); FONTE.dbHandler.executeSql('INSERT INTO ' + table + ' VALUES (?,?,?,?,?,?,?)', [evId, evTitle, evDesc, evInitDate, evEndDate, evUrl, evGeo], //onSuccess function (resultSet) { n_evs_ins++; console.log('resultSet.insertId: ' + resultSet.insertId); console.log('resultSet.rowsAffected: ' + resultSet.rowsAffected); if(n_evs_ins + n_evs_err == n_evs - 1) { if(n_evs_ins > 0) { EVENTS.loadFromDb('#mostralista', type); } } }, //onError function (error) { n_evs_err++; if(n_evs_ins + n_evs_err == n_evs - 1) { if(n_evs_ins > 0) { EVENTS.loadFromDb('#mostralista', type); } else { toastr.info("Non ci sono nuovi eventi."); $.mobile.loading('hide'); } } console.error("EVENTS.query() : ", error); }); } }, function(error){ console.error("EVENTS.query() : ", error + " type: " + type); toastr.error("Err: errore nel TRUNCATE della tabella degli eventi"); }); } else { toastr.info("Non ci sono nuovi eventi."); } }); }; EVENTS.loadFromDb = function (containerId, type) { var table = type == ai1ec.cats.repeat ? 'xm24_events_repeat' : 'xm24_events_single'; FONTE.dbHandler.executeSql("SELECT * FROM " + table + " ORDER BY initDate COLLATE NOCASE ASC;", [], function (resultSet) { var items = []; for (var i = 0; i < resultSet.rows.length; i++) { var item = resultSet.rows.item(i); var evInitDate = EVENTS.formatDate(item.initDate, EVENTS.displayDateFormat); var evEndDate = EVENTS.formatDate(item.endDate, EVENTS.displayDateFormat); var evFrom = "Da: " + evInitDate; var evTo = ""; if(evEndDate != "") { evTo = "
" + " A: " + evEndDate; } var li = "
  • " + //"" + "" + item.title + "" + "
    " + evFrom + evTo "
  • "; items.push(li); } $(containerId).empty(); $("