Ilovexm24/www/js/main.js

378 行
11 KiB
JavaScript
Raw Blame 履歴

このファイルには不可視のUnicode文字が含まれています

このファイルには人間が識別できない不可視のUnicode文字が含まれており、コンピューターによって特殊な処理が行われる可能性があります。 それが意図的なものと考えられる場合は、この警告を無視して構いません。 不可視文字を表示するにはエスケープボタンを使用します。

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
///VARIABILI GLOBALI///
var FONTE = FONTE || {};
FONTE.dbName = "xm24";
FONTE.dbHandler;
FONTE.updatedCategoriesCount;
FONTE.updatedPostsCount;
FONTE.neededPostsCount;
FONTE.tagsPageInitiated = false;
FONTE.categoriesList = [8, 497];
FONTE.categories = {
ilove : [497,647,590], //ilove, 4mar, solid
info : [8,42,68,3], //ilove, 4mar, solid
};
FONTE.page_loaded = {
ilove : 0,
info : 0,
};
FONTE.hrefseguente = "";
FONTE.contentListId = '#mostralistainfo';
FONTE.contentListClass = '.news';
FONTE.ajaxError = false;
FONTE.back_pressed = false;
/*
* data ultimo aggiornamento
*/
function displayLastUpdateDate() {
var lastUpdate = window.localStorage.getItem('db_update_date');
if (lastUpdate) {
var data = lastUpdate.split('T');
var datagiorno = data[0];
var dataora = data[1];
$("#datadiritti").empty();
$("#datadirittiora").empty();
display_results("#datadiritti", datagiorno);
display_results("#datadirittiora", dataora);
if (data) {
$("#boxdata").css("display", "block");
}
} else {
toastr.warning('Warn: manca la data del tuo ultimo aggiornamento. Aggiorna al più presto.');
}
}
function alterContent(url) {
var paginacorrente = $("body").pagecontainer("getActivePage").attr("id");
var oldUrl = url;
$( "#outside" ).panel( "close" );
// Alter the url according to the anchor's href attribute, and
// store the data-foo attribute information with the url
$.mobile.navigate(url);
switch (oldUrl) {
case '#index':
$("#navheader").addClass("hide");
$("#navfooter").addClass("hide");
break;
case '#about':
$("#navheader").removeClass("hide");
$("#navfooter").addClass("hide");
if(window.localStorage.getItem('app_firsttime') === "false") {
$("#init-btn").addClass("hide");
} else {
window.localStorage.setItem('app_firsttime', false);
}
break;
case '#ilove':
$("#navheader").removeClass("hide");
$("#navfooter").addClass("hide");
if(checkConnection()) {
postsUpdate(FONTE.categories.ilove);
} else {
renderLastNews(FONTE.contentListClass, FONTE.categories.ilove);
}
break;
case '#info':
$("#navheader").removeClass("hide");
$("#navfooter").addClass("hide");
if(checkConnection()) {
postsUpdate(FONTE.categories.info);
} else {
renderLastNews(FONTE.contentListClass, FONTE.categories.info);
}
break;
case '#events':
$("#navheader").removeClass("hide");
$("#navfooter").addClass("hide");
EVENTS.render(); //il checkconenction è fatto dentro
break;
case '#laboratori':
$("#navheader").removeClass("hide");
$("#navfooter").addClass("hide");
PROJECT.render();
break;
case '#aggiorna':
$("#navheader").removeClass("hide");
$("#navfooter").removeClass("hide");
// ultimoAggiornamento();
break;
case '#ultime':
case '#tag':
$("#navheader").removeClass("hide");
$("#navfooter").removeClass("hide");
break;
case '#quotidiano':
$("#navheader").removeClass("hide");
$("#navfooter").removeClass("hide");
myJsonRandomPost('#titolosingleR', '#mostracontentsingleR');
break;
}
}
/*///////////////utilities//////////////http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript*/
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
function display_results(contenitore, messaggio) {
$(contenitore).text(messaggio);
}
$(function () {
$("form").submit(function () {
return false;
});
});
function initMainPage() {
if (checkConnection()) {
postsUpdate(FONTE.categories.info);
} else {
renderLastNews(FONTE.contentListClass, FONTE.categories.info);
}
}
/*per link in browser di default */
document.addEventListener("deviceready", onDeviceReady, false);
//le cose all'inizio
$(window).on("navigate", function (event, data) {
var direction = data.state.direction;
if (direction == 'back') {
FONTE.back_pressed = true;
}
else {
FONTE.back_pressed = false;
}
});
$(document).on("pagecontainershow", function (e, ui) {
var pageId = $('body').pagecontainer('getActivePage').prop('id');
if ((pageId == 'ilove' || pageId == 'info' || pageId == 'events') && !FONTE.back_pressed) {
$.mobile.loading('show');
}
});
$(document).on("mobileinit", function () {
$("body").pagecontainer({
defaults: true
});
$(".ui-loader").loader({
defaults: true
});
$("input").button();
});
$(document).on("pagecontainerchange", function () {
var current = $(".ui-page-active").prop("id");     // Remove active class from nav buttons
if(current == 'about' || current == 'info' || current == 'ilove' || current == 'events' || current == 'cerca' || current == 'laboratori'){
$("#navfooter").addClass("hide");
} else {
$("#navfooter").removeClass("hide");
}
console.log("current" + current);
$("[data-role='navbar'] a.ui-btn-active").removeClass("ui-btn-active");     // Add active class to current nav button
    
$("[data-role='navbar'] a").each(function () {
var href = $(this).prop("href");        
if (href.indexOf(current, href.length - current.length) !== -1) {            
$(this).addClass("ui-btn-active");        
}    
});
});
$(document).on("pagecreate", function () {
$("body > [data-role='panel']").panel();
$("body > [data-role='panel'] [data-role='listview']").listview();
$("body > [data-role='header']").toolbar();
$("body > [data-role='footer']").toolbar();
$("body > [data-role='navbar']").navbar();
$("#navfooter").navbar();
postInList();
});
/*per inizio navigazione*/
var Site = function () {
this.homepage = "#index"; // the default page that is loaded
this.init();
};
Site.prototype.init = function () {
var self = this;
$(document).ready(function () {
// default page if no hash given
// this changes the hash, so the event is fired
// no need to call self.navigate
window.location.hash = self.homepage;
});
};
function onDeviceReady() {
//Setto il locale delle plugin delle date
moment.locale('it');
createDB();
initStorage();
if(window.localStorage.getItem('app_firsttime') !== "false") {
alterContent('#about');
} else {
initMainPage();
}
overlayblock();
$("a.nav").on("click", function (event) {
// Prevent the usual navigation behavior
event.preventDefault();
alterContent($(this).attr("href"));
});
$("button.nav").on("click", function (event) {
alterContent($(this).attr("href"));
});
// eliminare le due righe:
$("body > [data-role='header']").toolbar();
$("[data-role='navbar']").navbar();
//Non uso pageContent per non lanciare 2 volte il recupero dei dati da internet
//per la pagina principale
$("#navheader").removeClass("hide");
$("#navfooter").addClass("hide");
}
function overlayblock() {
$(".overlaynero").toggleClass("hide");
}
/*///////////////fine utilities//////////////*/
var weburl = "http://www.ecn.org/xm24/";
var arrayTag = [];
/*/////finite variabili globali////////*/
function intercettaUrl() {
// LETTURA - Log the results of the navigate event
$(window).on("navigate", function (event, data) {
idPost = getParameterByName('id');
if (idPost !== "") {
myJsonPost(idPost, "#titolosingle", "#mostracontentsingle");
}
});
}
function postInList() {
//SCRITTURA
$("body").on('click', '.listevoci li > a', function (event) {
// console.log("HUU_post in list");
if($(this).attr("rel") === 'external') {
return true;
}
var idOra = $(this).attr("data-post");
var _class = $(this).attr("class");
$("#titolosingle").empty();
$("#mostracontentsingle").empty();
//console.log(idOra);
myJsonPost(idOra, "#titolosingle", "#mostracontentsingle", _class);
// Prevent the usual navigation behavior
event.preventDefault();
/*se serve idTAg, mettiamolo nell'url!! e anche nella page!*/
$("#singleQpost").attr("id", '#singleQpost?id=' + idOra);
$(":mobile-pagecontainer").pagecontainer("load", '#singleQpost' + idOra, {
showLoadMsg: false
});
$("#navfooter").removeClass("hide");
location.hash = '#singleQpost?id=' + idOra;
});
}
function findImg(htmlString) {
var pos = htmlString.indexOf('<img ');
while (pos != -1) {
pos += 5;
htmlString = [htmlString.slice(0, pos), ' onerror="imgNotFound(this);" ', htmlString.slice(pos)].join('');
pos = htmlString.indexOf('<img ', pos);
}
return htmlString;
}
function imgNotFound(img) {
var parent = $(img).parent();
parent.empty();
parent.append('<span>Immagine disponibile online.</span>');
}
function JSONErrorHandler(jqXHR, textStatus, errorThrown) {
$.mobile.loading('hide');
if (!FONTE.ajaxError) {
var errMsg = "Err: ";
if(jqXHR.status === 404 ) {
errMsg += "Sito non raggiungibile. ";
} else if(jqXHR.status === 0) {
return checkConnection(jqXHR.status, "Occore essere connessi per poter ricevere altri articoli");
}
toastr.error(errMsg);
FONTE.ajaxError = true;
}
}
function segnalaBug() {
return checkConnection('ERR_SEGNALA');
}
function mostraEsperto() {
var ret = checkConnection('ERR_ESPERTO');
if (ret) {
myJsonPage(2167, '#espertotitle', '#mostraesperto');
}
return ret;
}
function checkAndUpdate() {
var ret = checkConnection('ERR_ESPERTO');
if (ret) {
update();
}
return ret;
}
function checkAndReset() {
var ret = checkConnection('ERR_ESPERTO');
if (ret) {
resetAndUpdate();
}
return ret;
}