123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378 |
- /*
- * 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;
- }
|