Compare commits

...

37 commits

Author SHA1 Message Date
643c0c08f1 copia dell'android manifest... nn sn sicura che serva, ma melgio averla 2019-07-26 15:23:09 +02:00
2d9e4cfb36 Merge branch 'master' of git.lattuga.net:hacklabbo/Ilovexm24 2019-07-26 14:42:43 +02:00
8a4512c9d0 aggiunto chiake android store a gitignore 2019-07-26 14:42:06 +02:00
e67c21e69c Bump version 1.5.1 2019-07-25 15:02:19 +02:00
cb16f5d79a Fix parser degli eventi per ai1ec 2.5.39 2019-07-25 15:01:36 +02:00
3e2279da06 grafica rossa nera 2019-07-24 13:53:55 +02:00
a83539747d hook sul plugin e non sul manifest 2019-07-24 13:53:28 +02:00
f99e13adc7 avanzati alla versione 1.5.0 2019-07-24 13:52:59 +02:00
e0454f8784 finito grafica 2019-07-23 19:05:18 +02:00
4194389489 menu con hover rosso nera 2019-07-23 18:15:25 +02:00
567741d595 aggiornamenti cordova 9 2019-07-17 16:02:14 +02:00
db2cfa4a51 menu rosso e nero 2019-07-16 21:07:00 +02:00
09fec967a5 correct link for manifest 2019-07-16 20:32:52 +02:00
9a1f23d3b5 aggiunto un font, colori di base e l'icona 2019-03-06 22:17:15 +01:00
d0c
08e714f6e2 aggiornato il numero di versione con le ultime modifiche 2017-12-10 02:32:57 +01:00
ignifugo
a58d489b4d fixed deprecated java modules https://stackoverflow.com/questions/46562289/multiple-dex-files-define-lorg-apache-cordova-buildhelper 2017-11-24 18:04:05 +01:00
ignifugo
eff4fa027a aggiornata a platform android 6.3 con cordova 7 2017-11-24 15:58:37 +01:00
2e5ad29957 Corretto orario sim 2017-11-10 15:00:39 +01:00
666d32a63b Fix orari eventi ripetuti 2017-11-10 14:35:52 +01:00
1920be90e4 Gestione immagine locandina negli eventi 2017-11-10 13:58:51 +01:00
39d5e46bbf Modificati orari boxe 2017-10-24 10:09:45 +02:00
d0c
cece28ddf0 jenkins builda l'app verificando periodicamente se ci sono nuovi commit ed eventualmente aggiorna il repo https://fdroid.hacklabbo.indivia.net con la nuova build. Close #1 2017-05-03 20:49:52 +02:00
d0c
eb9d7e0acd combiata la versione in 1.0.2, per la prossima release e per un test del repo fdroid 2017-04-20 01:07:00 +02:00
d0c
4d5a595d49 fix 2017-04-19 22:44:34 +02:00
d0c
15fe72c394 Merge branch 'master' of git.lattuga.net:hacklabbo/Ilovexm24 2017-04-19 22:25:27 +02:00
d0c
e84b4d871a aggiornato name, author e description 2017-04-19 22:24:55 +02:00
7ad97de466 Rimosso parametro presente 2 volte 2017-04-19 19:22:17 +02:00
54c0a488f4 Aggiunto hook per rimuovere dei permessi che non utiliziamo ma che vengono inseriti di default dal plugin media 2017-04-19 19:21:24 +02:00
852874da7f Update 'README.md' 2017-04-19 18:07:39 +02:00
6679bb2f79 Rimossa apk in favore del repo fdroid 2017-04-19 17:49:29 +02:00
2bd4ed9e17 Fix Loader senza rete #36 2017-04-19 17:42:11 +02:00
6c5e85cef1 Update 'README.md' 2017-04-09 14:05:18 +02:00
fbcbbc9a3d Ridimensionati screenshot 2017-04-09 14:03:35 +02:00
bf624eb0f9 Aggiornati gli screenshot. Aggiunto screenshot per laboratori 2017-04-09 13:59:34 +02:00
a0a85cd1b8 Build 09.04.2017 13.49 2017-04-09 13:49:40 +02:00
cbd064d5f3 Sistemata la pagina dei laboratori raccolti per progetto 2017-04-09 13:48:52 +02:00
9cdae97e00 Build del 09.04.2017 03:41 2017-04-09 03:41:52 +02:00
19 changed files with 476 additions and 139 deletions

7
.gitignore vendored
View file

@ -1,3 +1,10 @@
#Specific Android sec file#
###########################
ilovexm24.keystore
myBuildConfig.json
# Compiled platform # # Compiled platform #
################### ###################
platforms/ platforms/

48
AndroidManifest.xml Normal file
View file

@ -0,0 +1,48 @@
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="10501" android:versionName="1.5.1" package="xm24.digitigrafo.it" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider android:authorities="${applicationId}.sharing.provider" android:exported="false" android:grantUriPermissions="true" android:name="nl.xservices.plugins.FileProvider">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/sharing_paths" />
</provider>
<activity android:exported="true" android:name="com.adobe.phonegap.push.PushHandlerActivity" android:permission="${applicationId}.permission.PushHandlerActivity" />
<receiver android:name="com.adobe.phonegap.push.BackgroundActionButtonHandler" />
<receiver android:exported="true" android:name="com.google.android.gms.gcm.GcmReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
<service android:exported="false" android:name="com.adobe.phonegap.push.GCMIntentService">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service android:exported="false" android:name="com.adobe.phonegap.push.PushInstanceIDListenerService">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<service android:exported="false" android:name="com.adobe.phonegap.push.RegistrationIntentService" />
</application>
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
<uses-permission android:name="${applicationId}.permission.PushHandlerActivity" />
<permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<permission android:name="${applicationId}.permission.PushHandlerActivity" android:protectionLevel="signature" />
</manifest>

View file

@ -3,6 +3,7 @@ App per xm, prende i contenuti dal sito e te li salva nel cellulare.
<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_post.png" style="width:300px;border:solid 1px black;border-radius:20px;" /> <img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_post.png" style="width:300px;border:solid 1px black;border-radius:20px;" />
<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_eventi.png" style="width:300px;border:solid 1px black;border-radius:20px;" /> <img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_eventi.png" style="width:300px;border:solid 1px black;border-radius:20px;" />
<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_menu.png" style="width:300px;border:solid 1px black;border-radius:20px;" /> <img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_menu.png" style="width:300px;border:solid 1px black;border-radius:20px;" />
<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_lab.png" style="width:300px;border:solid 1px black;border-radius:20px;" />
## Environment ## ## Environment ##
@ -87,6 +88,46 @@ Per installare il plugin sulla rete che non viene installato in automatico
Per lanciare l'emulatore Android con l'applicazione. Per lanciare l'emulatore Android con l'applicazione.
Ovviamente si deve aver configurato il proprio environment correttamente. Ovviamente si deve aver configurato il proprio environment correttamente.
## Aggiornamento
Siam passati allal versione di Cordova 9 e la versione della piattaforma Android 8, per verificare, nella cartella del progetto IloveXM24:
$ cordova -v
9.0.0 (cordova-lib@9.0.1)
$ cordova platform list
Installed platforms:
android 8.0.0
I plugin così:
$ cordova plugin list
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-media 3.0.1 "Media"
cordova-plugin-network-information 1.3.4 "Network Information"
cordova-plugin-splashscreen 4.0.3 "Splashscreen"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-plugin-x-socialsharing 5.1.8 "SocialSharing"
cordova-sqlite-storage 2.0.4 "Cordova sqlite storage plugin"
es6-promise-plugin 4.2.2 "Promise"
phonegap-plugin-push 1.9.4 "PushPlugin"
E le API dell'sdk Android, ora hanno target 28!
Per aggiornarle, da linea di comando, nella cartella dove avete l'ambiente android, io ce l'ho in home/.android/
$ ./android update sdk
Accettate le malvagie licenze e scaricate.
Poi il build pare funzionare :) yhuuu!
Non ricordo se era bloccante o no, ma ci siamo fatte una copia dell AndroidManifest.xml dopo aver aggiunto la platform, così:
cd platforms/android/app/
cp src/main/AndroidManifest.xml AndroidManifest.xml
## build app
cordova build android --release --buildConfig=myBuildConfig.json
### iOS ### ### iOS ###
Installando `phonegap-plugin-push` se si incontra questo errore: Installando `phonegap-plugin-push` se si incontra questo errore:
@ -99,7 +140,27 @@ Error: CocoaPods was not found. Please install version 1.0.1 or greater from htt
Occore installare `CocoaPods` come descritto sulla [documentazione del plugin](https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/INSTALLATION.md#ios-details) Occore installare `CocoaPods` come descritto sulla [documentazione del plugin](https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/INSTALLATION.md#ios-details)
## Download ##
## Google Play ##
Solo per chi ha un account google.
Sconsigliamo l'installazione dal Google Play perche' google come multinazionale profila ogni tuo gusto e l'utilizza a scopo commerciale. In pratica ti tratta come merce per accaparrarsi profitto. Se ti e' possibile quindi utilizza fdroid.
https://play.google.com/store/apps/details?id=xm24.digitigrafo.it
## Repository Privato Fdroid ##
Repository gestito da hacklabbo, non e' il repository fdroid ufficiale.
Per poter utilizzare questo repository devi comunque scaricare l'applicazione [fdroid](https://f-droid.org/) e aggiungere questo repository ed attivarlo nella configurazione dell'applicazaione. E' un operazione piuttosto semplice da effettuare.
https://fdroid.hacklabbo.indivia.net/
P.S. Per chi sviluppa: ad ogni commit sarebbe opportuno aumentare l'ultima cifra della versione in config.xml (riga 2: version=1.0.2 -> version=1.0.3) in modo che fdroid riconosca e proponga l'aggiornamento.
## TODO, ISSUE e FEATURE ## ## TODO, ISSUE e FEATURE ##
Usiamo l'[issue tracker](https://git.lattuga.net/hacklabbo/Ilovexm24/issues) non il wiki. Usiamo l'[issue tracker](https://git.lattuga.net/hacklabbo/Ilovexm24/issues) non il wiki.

Binary file not shown.

View file

@ -1,19 +1,17 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<widget id="xm24.digitigrafo.it" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <widget id="xm24.digitigrafo.it" version="1.5.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>I XM24</name> <name>I love XM24</name>
<description> <description>
XM24 Spazio Sociale Autogestito XM24, Bolognina (BO): info, eventi, comunicati.. I love XM24, iloveXM24
</description> </description>
<author email="info@digitigrafo.it" href="http://hacklabbo.indivia.net"> <author email="hacklabbo@indivia.net" href="http://hacklabbo.indivia.net">
hacklabbo.indivia.net - digitigrafo.it hacklabbo.indivia.net
</author> </author>
<content src="index.html" /> <content src="index.html" />
<preference name="SplashScreen" value="res/splashscreen.png" />
<preference name = "SplashScreen" value = "res/splashscreen.png" />
<preference name="SplashScreenDelay" value="3000" /> <preference name="SplashScreenDelay" value="3000" />
<preference name="AutoHideSplashScreen" value="false" /> <preference name="AutoHideSplashScreen" value="false" />
<preference name="AndroidPersistentFileLocation" value="Compatibility" /> <preference name="AndroidPersistentFileLocation" value="Compatibility" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<access origin="*" /> <access origin="*" />
<allow-intent href="http://*/*" /> <allow-intent href="http://*/*" />
<allow-intent href="https://*/*" /> <allow-intent href="https://*/*" />
@ -22,28 +20,36 @@
<allow-intent href="mailto:*" /> <allow-intent href="mailto:*" />
<allow-intent href="geo:*" /> <allow-intent href="geo:*" />
<platform name="android"> <platform name="android">
<allow-intent href = "market:*" /> <allow-intent href="market:*" />
<icon src = "res/icon.png" /> <icon src="res/icon.png" />
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name = "SplashScreen" value = "res/splashscreen.png" />
<splash src = "res/splashscreen.png" />
<preference name = "AutoHideSplashScreen" value="false" />
<preference name = "SplashScreen" value = "splashscreen" />
<preference name = "SplashScreenDelay" value="3000" />
<preference name = "SplashMaintainAspectRatio" value="true" />
<preference name = "SplashShowOnlyFirstTime" value="false" />
<preference name="AndroidPersistentFileLocation" value="Compatibility" /> <preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name="SplashScreen" value="res/splashscreen.png" />
<splash src="res/splashscreen.png" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="SplashScreen" value="splashscreen" />
<preference name="SplashScreenDelay" value="3000" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="SplashShowOnlyFirstTime" value="false" />
</platform> </platform>
<platform name="ios"> <platform name="ios">
<allow-intent href="itms:*" /> <allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" /> <allow-intent href="itms-apps:*" />
</platform> </platform>
<plugin name="cordova-plugin-file" spec="~4.3.3" />
<plugin name="cordova-plugin-media" spec="~3.0.1" />
<plugin name="cordova-plugin-network-information" spec="~1.3.3">
<variable name="SENDER_ID" value="667898382143" />
</plugin>
<plugin name="cordova-plugin-splashscreen" spec="~4.0.3">
<variable name="SENDER_ID" value="667898382143" />
</plugin>
<plugin name="cordova-plugin-whitelist" spec="~1.3.2" />
<plugin name="cordova-plugin-x-socialsharing" spec="~5.1.8">
<variable name="SENDER_ID" value="667898382143" />
</plugin>
<plugin name="cordova-sqlite-storage" spec="~2.0.4" />
<plugin name="phonegap-plugin-push" spec="~1.9.4"> <plugin name="phonegap-plugin-push" spec="~1.9.4">
<variable name="SENDER_ID" value="667898382143" /> <variable name="SENDER_ID" value="667898382143" />
</plugin> </plugin>
<engine name="android" spec="^8.0.0" />
<plugin name="cordova-sqlite-storage" spec="~2.0.2" />
<plugin name="cordova-plugin-media" spec="~3.0.0" />
<plugin name="cordova-plugin-splashscreen" />
</widget> </widget>

View file

@ -0,0 +1,43 @@
#!/usr/bin/env node
//
// This hook removes specific permissions from the AndroidManifest.xml
// The AndroidManifest is re-generated during the prepare stage,
// so this must be run on the "after_prepare" hook.
//
// Configure the permissions to be forcefully removed.
// NOTE: These permissions will be removed regardless of how many plugins
// require the permission. You can check the permission is only required
// by the plugin you *think* needs it, by looking at the "count" shown in
// your /plugins/android.json file.
// If the count is more than 1, you should search through
// the /plugins//plugin.xml files for <uses-permission> tags.
var permsToRm = [ "RECORD_AUDIO", "MODIFY_AUDIO_SETTINGS", "READ_PHONE_STATE" ];
var fs = require('fs');
var path = require('path');
var rootdir = process.argv[2];
var manifestFile = path.join(rootdir, "plugin/cordova-plugin-media/config.xml");
/*
"platforms/android/app/AndroidManifest.xml"
*/
fs.readFile( manifestFile, "utf8", function( err, data ) {
if (err)
return console.log( "Error reading plugin/cordova-plugin-media/config.xml", err );
var result = data;
for(var i = 0; i < permsToRm.length; i++) {
var search = '<uses-permission android:name="android.permission.' + permsToRm[i] + '" />';
result = result.replace(search, '');
}
fs.writeFile( manifestFile, result, "utf8", function( err ){
if (err)
return console.log( "Error writing AndroidManifest.xml", err );
});
} );

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 148 KiB

BIN
screenshot_lab.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 114 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View file

@ -56,7 +56,7 @@
<body> <body>
<!--panel --> <!--panel -->
<div data-role="panel" data-position="left" id="outside" data-theme="a" data-position-fixed="true" data-display="overlay" data-swipe-close="true"> <div data-role="panel" data-position="left" id="outside" data-theme="a" data-position-fixed="true" data-display="overlay" data-swipe-close="true">
<p><img src="image/ilovexm24_menu.png" class="panel_logo" /></p> <p><img src="image/xm-logo.png" class="panel_logo" /></p>
<ul data-role="listview"> <ul data-role="listview">
<li><a class="nav" href="#info">Home</a></li> <li><a class="nav" href="#info">Home</a></li>
<li><a class="nav" href="#ilove">I love XM24</a></li> <li><a class="nav" href="#ilove">I love XM24</a></li>

View file

@ -54,11 +54,12 @@ EVENTS.getDataAndLoad = function (type) {
var evDesc = ai1ec.event.getDescription(event); var evDesc = ai1ec.event.getDescription(event);
var evUrl = ai1ec.event.getUrl(event); var evUrl = ai1ec.event.getUrl(event);
var evGeo = ai1ec.event.getGeo(event); var evGeo = ai1ec.event.getGeo(event);
var evImg = ai1ec.event.getImage(event);
var evInitDate = EVENTS.formatDate(ai1ec.event.getInitDate(event), EVENTS.storeDateFormat); var evInitDate = EVENTS.formatDate(ai1ec.event.getInitDate(event), EVENTS.storeDateFormat);
var evEndDate = EVENTS.formatDate(ai1ec.event.getEndDate(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], FONTE.dbHandler.executeSql('INSERT INTO ' + table + ' VALUES (?,?,?,?,?,?,?,?)', [evId, evTitle, evDesc, evInitDate, evEndDate, evUrl, evGeo, evImg],
//onSuccess //onSuccess
function (resultSet) { function (resultSet) {
n_evs_ins++; n_evs_ins++;

View file

@ -1,6 +1,6 @@
var ai1ec = (function(){ var ai1ec = (function(){
var API = {}, json = [], events = []; var API = {}, json = [], events = [];
//Categorie di eventi //Categorie di eventi
API.cats = { API.cats = {
single: 34, single: 34,
@ -12,56 +12,60 @@ var ai1ec = (function(){
endChar = uid.indexOf('@'); endChar = uid.indexOf('@');
return uid.substr(initChar+1, uid.length - uid.substr(endChar -1).length - initChar ); return uid.substr(initChar+1, uid.length - uid.substr(endChar -1).length - initChar );
}; };
//Parser di un evento dell'array tornato da getXmlData //Parser di un evento dell'array tornato da getXmlData
API.event = { API.event = {
getId : function(event) { getId : function(event) {
return event.uid ? getCleanId(event.uid) : null; return event.properties.uid ? getCleanId(event.properties.uid.text) : null;
}, },
getTitle : function(event) { getTitle : function(event) {
return event.summary || null; return event.properties.summary.text || null;
}, },
getDescription : function(event) { getDescription : function(event) {
return event.description || ""; return event.properties.description.text || "";
}, },
getInitDate : function(event) { getInitDate : function(event) {
return event.dtstart && event.dtstart._ ? event.dtstart._ : ""; return event.properties.dtstart && event.properties.dtstart["date-time"] ? event.properties.dtstart["date-time"] : "";
}, },
getEndDate : function(event) { getEndDate : function(event) {
return event.dtend && event.dtend._ ? event.dtend._ : ""; return event.properties.dtend && event.properties.dtend["date-time"] ? event.properties.dtend["date-time"] : "";
}, },
getCats : function(event) { getCats : function(event) {
return event.categories || ""; return event.properties.categories.text || "";
}, },
getTags : function(event) { getTags : function(event) {
return event["x-tags"] && event["x-tags"]._ ? event["x-tags"]._ : ""; return event.properties["x-tags"] && event.properties["x-tags"]._ ? event.properties["x-tags"]._ : "";
}, },
getUrl : function(event) { getUrl : function(event) {
return event.url && event.url.$ && event.url.$.uri ? event.url.$.uri : ""; return event.properties.url && event.properties.url.uri && event.properties.url.uri ? event.properties.url.uri : "";
}, },
getContact : function(event) { getContact : function(event) {
return event.contact || ""; return event.properties.contact || "";
}, },
getGeo : function(event) { getGeo : function(event) {
return event.geo || ""; return event.properties.location.text || "";
}, },
//Regole per gli evebti ripetitivi //Regole per gli eventi ripetitivi
getRule : function(event) { getRule : function(event) {
return event.rrule || ""; return event.properties.rrule || "";
}, },
getImage : function(event){
return event.properties['x-wp-images-url'] && event.properties['x-wp-images-url'].unknown ? event.properties['x-wp-images-url'].unknown : "";
},
}; };
var getXmlData = function(url, catId, callback) { var getXmlData = function(url, catId, callback) {
$.ajax({ $.ajax({
url: url, url: url,
@ -69,7 +73,7 @@ var ai1ec = (function(){
method: 'GET', method: 'GET',
success: function(res) { success: function(res) {
json[catId] = $.xml2json(res); json[catId] = $.xml2json(res);
events[catId] = json[catId]["#document"].vcalendar.vevent; events[catId] = json[catId]["#document"].icalendar.vcalendar.components.vevent;
console.log(events[catId]); console.log(events[catId]);
return callback(events[catId]); return callback(events[catId]);
}, },
@ -79,13 +83,13 @@ var ai1ec = (function(){
} }
}); });
}; };
var getDefaultUrl = function(catId){ var getDefaultUrl = function(catId){
catId = catId || API.cats.single; catId = catId || API.cats.single;
return API.remote.site + API.remote.q + "&" + API.remote.catq + catId + "&" + API.remote.xmlq; return API.remote.site + API.remote.q + "&" + API.remote.catq + catId + "&" + API.remote.xmlq;
} };
//Oggetto che gestisce attività remote //Oggetto che gestisce attività remote
API.remote = { API.remote = {
site : 'http://www.ecn.org/xm24', site : 'http://www.ecn.org/xm24',
@ -95,20 +99,20 @@ var ai1ec = (function(){
xmlq : 'xml=true', xmlq : 'xml=true',
win : 'window=true', win : 'window=true',
//post_ids //post_ids
//Torna un array con tutti gli eventi organizzati da xm24, un array vuoto se errore. //Torna un array con tutti gli eventi organizzati da xm24, un array vuoto se errore.
getAllEvents : function(catId, callback) { getAllEvents : function(catId, callback) {
var url = getDefaultUrl(catId); var url = getDefaultUrl(catId);
getXmlData(url, catId, callback); getXmlData(url, catId, callback);
}, },
//Torna un array con gli eventi tra -30 e +30 giorni da oggi, un array vuoto se errore. //Torna un array con gli eventi tra -30 e +30 giorni da oggi, un array vuoto se errore.
getLastEvents : function(catId, callback) { getLastEvents : function(catId, callback) {
var url = getDefaultUrl(catId) + '&' + API.remote.win; var url = getDefaultUrl(catId) + '&' + API.remote.win;
getXmlData(url, catId, callback); getXmlData(url, catId, callback);
}, },
} }
return API; return API;
})(); })();

View file

@ -12,12 +12,12 @@ PROJECT.labs = [
old_event: "", //un vecchio evento old_event: "", //un vecchio evento
site: "http://ampioraggio.noblogs.org", //sito personale site: "http://ampioraggio.noblogs.org", //sito personale
contatto : "", //email contatto : "", //email
page: "http://www.ecn.org/xm24/?page_id=16", //pagina su sito xm24 page: "http://www.ecn.org/xm24/ciclofficina-ampioraggio", //pagina su sito xm24
sn: "", //social network sn: "", //social network
}, },
{ collettivo: "SIM", { collettivo: "SIM",
dshort: '“Nessuno educa nessuno, nessuno educa se stesso, gli uomini'+ dshort: '“Nessuno educa nessuno, nessuno educa se stesso, gli uomini'+
'si educano insieme, con la mediazione del mondo.” Paulo Freire,', 'si educano insieme, con la mediazione del mondo.” Paulo Freire',
dlong: "La Scuola dItaliano CON migranti del XM24 è una scuola "+ dlong: "La Scuola dItaliano CON migranti del XM24 è una scuola "+
"autogestita che unisce al percorso linguistico un percorso politico, sia "+ "autogestita che unisce al percorso linguistico un percorso politico, sia "+
"perchè si oppone alle leggi razziste dello stato, sia perchè concepisce "+ "perchè si oppone alle leggi razziste dello stato, sia perchè concepisce "+
@ -25,27 +25,33 @@ PROJECT.labs = [
"di emancipazione, autodefinizione e socializzazione.", "di emancipazione, autodefinizione e socializzazione.",
when : [ when : [
{day: "Lun", hour: ["19:00", "21:00"], title:"Scuola Italiano con Migranti"}, {day: "Lun", hour: ["19:00", "21:00"], title:"Scuola Italiano con Migranti"},
{day: "Mar", hour: ["19:00", "21:00"], title:"Scuola Italiano con Migranti"}, {day: "Lun", hour: ["21:00", "23:00"], title:"Assemlea di gestione SIM"},
{day: "Mer", hour: ["19:00", "21:00"], title:"Scuola Italiano con Migranti"} {day: "Mar", hour: ["19:00", "21:00"], title:"Scuola Italiano con Migranti"}
], ],
old_event: "", //un vecchio evento old_event: "", //un vecchio evento
site: "http://simxm24.noblogs.org", //sito personale site: "http://simxm24.noblogs.org", //sito personale
contatto : "", //email contatto : "", //email
page: "", //pagina su sito xm24 page: "", //pagina su sito xm24
sn: "", //social network sn: "https://www.fb.com/infoschockxm24", //social network
}, },
{ collettivo: "Hacklabbo", { collettivo: "Hacklabbo",
dshort: "Serata di smanettamento collettivo, giochi, confronto. Sottoterra nascono idee, serpeggiano progetti, si condividono codice, saldatori e birrette.", dshort: "Serata di smanettamento collettivo, giochi, confronto. Sottoterra nascono idee, "+
dlong: "Le tecnologie invasive, limposizione di una socialita predigerita da parte dei colossi dellinformatica e dei media, la profilazione pervasiva a scopo commerciale e di controllo sociale, la censura governativa ed aziendale e la commercializzazione di massa di prodotti hardware e software che utilizzano licenze limitanti e brevetti intellettuali come armi legali e dogane virtuali sono gabbie sociali in cui lutente viene rinchiuso." + "serpeggiano progetti, si condividono codice, saldatori e birrette.",
"Per uscirne analizziamo, smontiamo e scardiniamo le meccaniche in cui ci siamo fatti inscatolare rivendicando la libera circolazione (analogica e digitale) dellinformazione, il diritto alla privacy, allanonimato e alla liberta di espressione ed invenzione e condividiamo conoscenza autoproducendo dal basso strumenti alternativi ed infrastrutture autonome di comunicazione per una partecipazione politica consapevole.", dlong: "Analizziamo e smontiamo e scardiniamoLe tecnologie invasive, limposizione "+
"di una socialita predigerita da parte dei colossi dellinformatica "+
"e dei media, la profilazione, la censura licenze limitanti e brevetti "+
"Rivendicando la libera circolazione "+
"(analogica e digitale) dellinformazione, il diritto alla privacy, "+
"allanonimato e alla liberta di espressione ed invenzione. Condividiamo "+
"conoscenza autoproducendo dal basso strumenti alternativi ed infrastrutture "+
"autonome di comunicazione per una partecipazione politica consapevole.",
when : [ when : [
{day: "Mer", hour: ["20:00", "23:00"], title:"Hacklabbo" }, {day: "Mer", hour: ["21:00", "24:00"], title:"Hacklabbo" },
], ],
old_event: "", //un vecchio evento old_event: "", //un vecchio evento
site: "http://liste.indivia.net/listinfo/hacklabbo", //sito personale site: "http://liste.indivia.net/listinfo/hacklabbo", //sito personale
contatto : "", //email contatto : "", //email
page: "http://www.ecn.org/xm24/hacklabbo/", //pagina su sito xm24 page: "http://www.ecn.org/xm24/hacklabbo/", //pagina su sito xm24
sn: "", //social network
}, },
{ collettivo: "Infoshock", { collettivo: "Infoshock",
dshort: "L InfoShock di XM24 è uno spazio di consultazione e distribuzione "+ dshort: "L InfoShock di XM24 è uno spazio di consultazione e distribuzione "+
@ -54,7 +60,7 @@ PROJECT.labs = [
"sociale, di incontro, confronto e condivisione, un veicolo sperimentale e "+ "sociale, di incontro, confronto e condivisione, un veicolo sperimentale e "+
"creativo per la trasmissione della cultura e della politica.", "creativo per la trasmissione della cultura e della politica.",
when : [ when : [
{day: "Giov", hour: ["18:00", "23:00"], title:"Apertura spazio Infoshock" }, {day: "Giov", hour: ["20:00", "23:00"], title:"Apertura spazio Infoshock" },
], ],
old_event: "", //un vecchio evento old_event: "", //un vecchio evento
site: "https://infoshockxm24.noblogs.org", //sito personale site: "https://infoshockxm24.noblogs.org", //sito personale
@ -68,7 +74,9 @@ PROJECT.labs = [
"applicare la creazione legata al mondo del visuale. La serigrafia come "+ "applicare la creazione legata al mondo del visuale. La serigrafia come "+
"tecnica di stampa manuale legata al mondo d.i.y. si pone in maniera "+ "tecnica di stampa manuale legata al mondo d.i.y. si pone in maniera "+
"opposta alle logiche della produzione industriale massiva e omologante.", "opposta alle logiche della produzione industriale massiva e omologante.",
when : [], when : [
{day: "Mer", hour: ["19:30", "22:00"], title:"Apertura serigrafia"},
],
old_event: "", //un vecchio evento old_event: "", //un vecchio evento
site: "", //sito personale site: "", //sito personale
contatto : "serixm@autistici.org", //email contatto : "serixm@autistici.org", //email
@ -82,14 +90,15 @@ PROJECT.labs = [
"tecnica di stampa manuale legata al mondo d.i.y. si pone in maniera "+ "tecnica di stampa manuale legata al mondo d.i.y. si pone in maniera "+
"opposta alle logiche della produzione industriale massiva e omologante.", "opposta alle logiche della produzione industriale massiva e omologante.",
when : [ when : [
{day: "Mar", hour: ["18:30", "20:30"], title:"Hata Yoga"}, {day: "Mar", hour: ["18:30", "20:00"], title:"Hata Yoga"},
{day: "Mer", hour: ["20:30", "22:30"], title:"Hata Yoga meditativa)"}, {day: "Mer", hour: ["20:30", "22:30"], title:"Hata Yoga meditativa"},
{day: "Gio", hour: ["18:30", "21:00"], title:"Hata Yoga"}, {day: "Lun", hour: ["20:30", "22:30"], title:"Hata Yoga meditativa"},
{day: "Gio", hour: ["18:30", "20:00"], title:"Hata Yoga"},
{day: "Lun", hour: ["19:00", "21:00"], title:"Tessuti aerei"}, {day: "Lun", hour: ["19:00", "21:00"], title:"Tessuti aerei"},
{day: "Mer", hour: ["19:00", "21:00"], title:"Tessuti aerei"}, {day: "Mer", hour: ["19:00", "21:00"], title:"Tessuti aerei"},
{day: "Ven", hour: ["19:00", "21:00"], title:"Tessuti aerei"}, {day: "Ven", hour: ["19:00", "21:00"], title:"Tessuti aerei"},
{day: "Sab", hour: ["15:00", "17:00"], title:"Shiatsu"}, {day: "Sab", hour: ["15:00", "17:00"], title:"Shiatsu"},
{day: "Lun", hour: ["15:00", "17:00"], title:"Acrobalance"} //{day: "Lun", hour: ["15:00", "17:00"], title:"Acrobalance"}
], ],
old_event: "", //un vecchio evento old_event: "", //un vecchio evento
site: "http://liste.indivia.net/listinfo/pallestra", //sito personale site: "http://liste.indivia.net/listinfo/pallestra", //sito personale
@ -104,15 +113,15 @@ PROJECT.labs = [
"di insegnare a praticare una disciplina che ha come principi luguaglianza "+ "di insegnare a praticare una disciplina che ha come principi luguaglianza "+
"e il rispetto reciproco", "e il rispetto reciproco",
when : [ when : [
{day: "Lun", hour: ["20:00", "22:00"], title:"Pugilato"}, {day: "Lun", hour: ["19:00", "21:00"], title:"Pugilato"},
{day: "Mer", hour: ["20:00", "22:00"], title:"Pugilato Principianti"}, {day: "Mer", hour: ["19:00", "21:00"], title:"Pugilato Principianti"},
{day: "Ven", hour: ["20:00", "22:00"], title:"Pugilato"}, {day: "Ven", hour: ["19:00", "21:00"], title:"Pugilato"},
], ],
old_event: "", //un vecchio evento old_event: "", //un vecchio evento
site: "http://liste.indivia.net/listinfo/pallestra", //sito personale site: "http://liste.indivia.net/listinfo/pallestra", //sito personale
contatto : "palestrapopolarestevenson@autistici.org", //email contatto : "palestrapopolarestevenson@autistici.org", //email
page: "http://www.ecn.org/xm24/palestrina-libera/", //pagina su sito xm24 page: "http://www.ecn.org/xm24/palestrina-libera/", //pagina su sito xm24
sn: "https://www.facebook.com/palestrapopolarestevenson", //social network sn: "https://www.fb.com/palestrapopolarestevenson", //social network
}, },
{ collettivo: "Lab57 Alchemica", { collettivo: "Lab57 Alchemica",
dshort: "Ascolto psicologico e punto di primo soccorso", dshort: "Ascolto psicologico e punto di primo soccorso",
@ -126,7 +135,7 @@ PROJECT.labs = [
old_event: "", //un vecchio evento old_event: "", //un vecchio evento
site: "http://lab57.indivia.net", //sito personale site: "http://lab57.indivia.net", //sito personale
contatto : "lab57@indivia.net", //email contatto : "lab57@indivia.net", //email
page: "http://www.ecn.org/xm24/evento/sportello-consulenza-lab57alchemica/", //pagina su sito xm24 page: "http://www.ecn.org/xm24/alchemicalab57/", //pagina su sito xm24
sn: "", //social network sn: "", //social network
}, },
{ collettivo: "Campi aperti", { collettivo: "Campi aperti",
@ -164,11 +173,7 @@ PROJECT.labs = [
when : [ when : [
{day: "Mar", hour: ["20.30", "24:30"], title:"Assemblea pubblica Xm24"}, {day: "Mar", hour: ["20.30", "24:30"], title:"Assemblea pubblica Xm24"},
], ],
old_event: "", //un vecchio evento
site: "http://www.ecn.org/xm24/", //sito personale site: "http://www.ecn.org/xm24/", //sito personale
contatto : "", //email
page: "http://www.ecn.org/xm24/", //pagina su sito xm24
sn: "", //social network
}, },
{ collettivo: "No Borders", { collettivo: "No Borders",
dshort: "Lottiamo contro tutte le frontiere, fisiche e immaginarie, e siamo per la libertà di movimento di tutti e tutte.", dshort: "Lottiamo contro tutte le frontiere, fisiche e immaginarie, e siamo per la libertà di movimento di tutti e tutte.",
@ -236,18 +241,26 @@ var init = true;
PROJECT.hr = "<hr class='post-divider'>"; PROJECT.hr = "<hr class='post-divider'>";
PROJECT.getHtmlA = function(label, url, _class) { var getLabelUrl = function(url){
var label = url.replace(/(http|https):\/\/(www\.)*/,'')
.replace(/\/\s*$/, ""); //l'ultima barra
return label;
};
PROJECT.getHtmlA = function(label, url, _class, isMail) {
if(!url) if(!url)
return ""; return "";
_class = _class || ""; _class = _class || "";
return "<span class='"+_class+"'>" + label + "</span>"+ var link = isMail ? "mailto:" + url : url;
"<a class='"+_class+"' href='" + url + "' rel='external'>" +
url + return "<span class='e_link title "+_class+"'>" + label + "</span>"+
"</a>"; "<a class='e_link e_url"+_class+"' href='" + link + "' rel='external'>" +
getLabelUrl(url) +
"</a>" +
"<br>";
}; };
PROJECT.getHtmlDate = function(evt, noDay) { PROJECT.getHtmlDate = function(evt, noDay) {
@ -265,22 +278,28 @@ PROJECT.getHtmlDate = function(evt, noDay) {
}; };
PROJECT.labOrder = function(lab){ PROJECT.labOrder = function(lab){
var events = "<ul>"; var events = "";
for(var e = 0; e < lab.when.length; e++) { for(var e = 0; e < lab.when.length; e++) {
events += "<ol>" + PROJECT.getHtmlDate(lab.when[e]) + "</ol>"; events += "<li>" + PROJECT.getHtmlDate(lab.when[e]) + "</li>";
}
if(events !== '') {
events = "<small>Orari:</small>"+
"<ul>" +
events +
"</ul>";
} }
events += "</ul>";
var li = "<li>"+ var li = "<li>"+
"<span class='title'>" + lab.collettivo + "</span>"+ "<p class='title'>" + lab.collettivo + "</p>"+
"<br>"+ "<p class='dshort'>" + lab.dshort + "</p>"+
"<span class='dshort'>" + lab.dshort + "</span>"+ PROJECT.getHtmlA("Url: ", lab.page) +
"<br>"+ PROJECT.getHtmlA("Sito: ", lab.site) +
PROJECT.getHtmlA("Sito:", lab.site)+ PROJECT.getHtmlA("Email: ", lab.contatto, null, true) +
PROJECT.getHtmlA("Social Network", lab.sn)+ PROJECT.getHtmlA("Social: ", lab.sn)+
events+ "<br>" +
//"<small>" + cleanTime + "</small>"+ events +
"<hr class='post-divider'>"+ PROJECT.hr +
"</li>"; "</li>";
return li; return li;
@ -374,4 +393,4 @@ PROJECT.render = function() {
$('#project p').html("<ul>" + lab + "</ul>"); $('#project p').html("<ul>" + lab + "</ul>");
init = false; init = false;
}; };

View file

@ -1,6 +1,5 @@
function myJsonCategory(Qcategory, div, addTagCategory) { function myJsonCategory(Qcategory, div, addTagCategory) {
$.mobile.loading('show'); FONTE.dbHandler.executeSql("SELECT DISTINCT * FROM xm24_posts WHERE category = ? ORDER BY date COLLATE NOCASE DESC;", [Qcategory], function (resultSet) {
FONTE.dbHandler.executeSql("SELECT * FROM xm24_posts WHERE category = ? ORDER BY date COLLATE NOCASE DESC;", [Qcategory], function (resultSet) {
var items = []; var items = [];
for (var i = 0; i < resultSet.rows.length; i++) { for (var i = 0; i < resultSet.rows.length; i++) {
var val = JSON.parse(resultSet.rows.item(i).post); var val = JSON.parse(resultSet.rows.item(i).post);
@ -83,7 +82,10 @@ var drawListPost = function(div, resultSet, position) {
} else if(position == 'prepend'){ } else if(position == 'prepend'){
ul.prependTo(div); ul.prependTo(div);
} }
$.mobile.loading('hide');
setTimeout(function () {
$.mobile.loading('hide');
}, 1000);
}; };
var appendPostList = function(div, resultSet, categories, fallback) { var appendPostList = function(div, resultSet, categories, fallback) {
@ -144,7 +146,7 @@ var getCategoryWhere = function(categories) {
var POST = POST || {}; var POST = POST || {};
POST.sql = { POST.sql = {
init: "SELECT * FROM xm24_posts JOIN xm24_cats_to_posts USING(id) WHERE ", init: "SELECT DISTINCT * FROM xm24_posts JOIN xm24_cats_to_posts USING(id) WHERE ",
end : "ORDER BY date COLLATE NOCASE DESC LIMIT ?" end : "ORDER BY date COLLATE NOCASE DESC LIMIT ?"
}; };
@ -195,7 +197,7 @@ function myJsonLastPage(div) {
var firstTime = storage.getItem('db_lastnews_firsttime'); var firstTime = storage.getItem('db_lastnews_firsttime');
if (firstTime != 'yes') { if (firstTime != 'yes') {
if (lastnewsDate) { if (lastnewsDate) {
FONTE.dbHandler.executeSql("SELECT * FROM xm24_posts WHERE date > ? ORDER BY date COLLATE NOCASE DESC LIMIT 40;", [lastnewsDate], function (resultSet) { FONTE.dbHandler.executeSql("SELECT DISTINCT * FROM xm24_posts WHERE date > ? ORDER BY date COLLATE NOCASE DESC LIMIT 40;", [lastnewsDate], function (resultSet) {
var items = []; var items = [];
$(div).empty(); $(div).empty();
if (resultSet.rows.length > 0) { if (resultSet.rows.length > 0) {
@ -232,7 +234,7 @@ function myJsonLastPage(div) {
function myJsonCategoryPaginated(Qcategory, div, pageNumber) { function myJsonCategoryPaginated(Qcategory, div, pageNumber) {
$.mobile.loading('show'); $.mobile.loading('show');
FONTE.dbHandler.executeSql("SELECT * FROM xm24_posts WHERE category = ? ORDER BY date COLLATE NOCASE DESC;", [Qcategory], function (resultSet) { FONTE.dbHandler.executeSql("SELECT DISTINCT * FROM xm24_posts WHERE category = ? ORDER BY date COLLATE NOCASE DESC;", [Qcategory], function (resultSet) {
var items = []; var items = [];
$(div).empty(); $(div).empty();
for (var i = 0; i < resultSet.rows.length; i++) { for (var i = 0; i < resultSet.rows.length; i++) {
@ -298,11 +300,15 @@ function drawEvent(div_title, div_content, resultSet){
var id = val.id; var id = val.id;
var title = val.title; var title = val.title;
var url = val.url; var url = val.url;
var content = val.description; var content = entityToHtml(val.description);
var geo = val.geo; var geo = val.geo;
var imgUrlThumb = getImageUrl(val.img, 'thumb');
$(div_title).html(title); $(div_title).html(title);
$(div_content).html("<small>" + evInitDate +"-" + evEndDate +"</small><p>" + content + "</p>"); var img = imgUrlThumb != "" ? "<a href='" + getImageUrl(val.img, 'large') + "'>" +
"<img src='" + imgUrlThumb + "'/>" +
"</a><br>" : "";
$(div_content).html(img + "<small>" + evInitDate +"-" + evEndDate +"</small><p>" + content + "</p>");
renderShareButton(div_content, title, url, evInitDate + " "+ evEndDate); renderShareButton(div_content, title, url, evInitDate + " "+ evEndDate);
} }
} }
@ -313,7 +319,7 @@ function myJsonPost(Qid, div_title, div_content, _class) {
table = EVENTS.table.single; table = EVENTS.table.single;
} }
FONTE.dbHandler.executeSql("SELECT * FROM " + table + " WHERE id = ?;", [Qid], function(resultSet) { FONTE.dbHandler.executeSql("SELECT DISTINCT * FROM " + table + " WHERE id = ?;", [Qid], function(resultSet) {
if(!_class){ if(!_class){
drawPost(div_title, div_content, resultSet); drawPost(div_title, div_content, resultSet);
} else { } else {
@ -325,7 +331,7 @@ function myJsonPost(Qid, div_title, div_content, _class) {
function myJsonPage(Qid, div_title, div_content) { function myJsonPage(Qid, div_title, div_content) {
$.mobile.loading('show'); $.mobile.loading('show');
var pageId = parseInt(Qid); var pageId = parseInt(Qid);
FONTE.dbHandler.executeSql("SELECT * FROM xm24_pages WHERE id = ?;", [pageId], function (resultSet) { FONTE.dbHandler.executeSql("SELECT DISTINCT * FROM xm24_pages WHERE id = ?;", [pageId], function (resultSet) {
for (var i = 0; i < resultSet.rows.length; i++) { for (var i = 0; i < resultSet.rows.length; i++) {
var data = resultSet.rows.item(i); var data = resultSet.rows.item(i);
var id = data.id; var id = data.id;
@ -342,7 +348,7 @@ function myJsonPage(Qid, div_title, div_content) {
function myJsonRandomPost(div_title, div_content) { function myJsonRandomPost(div_title, div_content) {
$.mobile.loading('show'); $.mobile.loading('show');
FONTE.dbHandler.executeSql("SELECT * FROM xm24_posts ORDER BY RANDOM() LIMIT 1;", [], function (resultSet) { FONTE.dbHandler.executeSql("SELECT DISTINCT * FROM xm24_posts ORDER BY RANDOM() LIMIT 1;", [], function (resultSet) {
for (var i = 0; i < resultSet.rows.length; i++) { for (var i = 0; i < resultSet.rows.length; i++) {
var val = JSON.parse(resultSet.rows.item(i).post); var val = JSON.parse(resultSet.rows.item(i).post);
var id = val.id; var id = val.id;
@ -373,7 +379,8 @@ function createDB() {
//FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_tags (id INTEGER PRIMARY KEY, title, tag)'); //FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_tags (id INTEGER PRIMARY KEY, title, tag)');
//FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_tags_to_posts (id, tagid)'); //FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_tags_to_posts (id, tagid)');
//FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_pages (id INTEGER PRIMARY KEY, title, date, page)'); //FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_pages (id INTEGER PRIMARY KEY, title, date, page)');
FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_events_single (id INTEGER PRIMARY KEY, title, description, initDate, endDate, url, geo)'); FONTE.dbHandler.executeSql('DROP TABLE IF EXISTS xm24_events_single');
FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_events_single (id INTEGER PRIMARY KEY, title, description, initDate, endDate, url, geo, img)');
//FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_tags_to_events (id, tagid)'); //FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_tags_to_events (id, tagid)');
//FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_events_repeat (id INTEGER PRIMARY KEY, title, description, initDate, endDate, url, geo)'); //FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_events_repeat (id INTEGER PRIMARY KEY, title, description, initDate, endDate, url, geo)');
}, function () { }, function () {

View file

@ -245,9 +245,9 @@ function getLastSinglePageRecur(url, pagenum, categories) {
}); });
}); });
if (data.length == 0) { // if (data.length === 0) {
renderLastNews(FONTE.contentListClass, categories); // renderLastNews(FONTE.contentListClass, categories);
} // }
}, },
error: JSONErrorHandler error: JSONErrorHandler
}); });

View file

@ -8,7 +8,7 @@ function initStorage() {
} }
/*per network info*/ /*per network info*/
function checkConnection(code, msgConnect) { function checkConnection(code, msgConnect, print) {
var msgTitle = "Non sei connesso"; var msgTitle = "Non sei connesso";
msgConnect = msgConnect || "Occore essere connessi per poter ricevere i nuovi articoli"; msgConnect = msgConnect || "Occore essere connessi per poter ricevere i nuovi articoli";
@ -23,7 +23,8 @@ function checkConnection(code, msgConnect) {
states[Connection.CELL] = 'Cell generic connection'; states[Connection.CELL] = 'Cell generic connection';
states[Connection.NONE] = 'No network connection'; states[Connection.NONE] = 'No network connection';
if (states[networkState] == 'Unknown connection' || states[networkState] == 'No network connection') { if (states[networkState] == 'Unknown connection' || states[networkState] == 'No network connection') {
toastr.warning(msgConnect, msgTitle); if(! print)
toastr.warning(msgConnect, msgTitle);
console.log(code); console.log(code);
return false; return false;
} else { } else {
@ -58,6 +59,15 @@ function entityToHtml(string) {
return string; return string;
} }
function getImageUrl(str, dim) {
var sstr = str.split(";");
for(var i = 0; i < sstr.length; i++) {
if(sstr[i].indexOf(dim) > -1){
return sstr[i +1];
}
}
}
var entity_table = { var entity_table = {
// 34: "&quot;", // Quotation mark. Not required // 34: "&quot;", // Quotation mark. Not required
38: "&amp;", // Ampersand. Applied before everything else in the application 38: "&amp;", // Ampersand. Applied before everything else in the application

View file

@ -63,6 +63,9 @@
for (i = 0; i < xml.childNodes.length; i++) { for (i = 0; i < xml.childNodes.length; i++) {
node = xml.childNodes[i]; node = xml.childNodes[i];
if (node.nodeName === "#comment")
continue;
if (node.nodeType === 1) { if (node.nodeType === 1) {
if (node.attributes.length === 0 && node.childElementCount === 0){ if (node.attributes.length === 0 && node.childElementCount === 0){
@ -116,7 +119,7 @@
} }
var root = {}; var root = {};
if (xml.attributes && xml.attributes.length === 0 && xml.childElementCount === 0){ if (xml.attributes && xml.attributes.length === 0 && xml.childElementCount === 0){
root[xml.nodeName] = normalize(xml.textContent, options); root[xml.nodeName] = normalize(xml.textContent, options);
} else { } else {
@ -133,4 +136,4 @@
} else if (typeof window !== 'undefined') { } else if (typeof window !== 'undefined') {
window.xml2json = xml2json; window.xml2json = xml2json;
} }
})(); })();