3 Commits
38 changed files with 1466 additions and 1148 deletions
+6 -6
View File
@@ -15,12 +15,12 @@ AddOutputFilterByType DEFLATE text/css application/x-javascript text/html text/r
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index.html$ index.php [L]
RewriteRule ^js/libs/(.*)\.[0-9]+\.js$ /IlLievitarioManut/js/libs/$1.js [L]
RewriteRule ^js/(.*)\.[0-9]+\.js$ /IlLievitarioManut/js/$1.js [L]
RewriteRule ^css/(.*)\.[0-9]+\.css$ /IlLievitarioManut/css/$1.css [L]
RewriteRule ^Resources/img/(.*)\.[0-9]+\.png$ /IlLievitarioManut/Resources/img/$1.png [L]
RewriteRule ^Resources/img/(.*)\.[0-9]+\.gif$ /IlLievitarioManut/Resources/img/$1.gif [L]
RewriteRule ^Resources/icons/(.*)\.[0-9]+\.png$ /IlLievitarioManut/Resources/icons/$1.png [L]
RewriteRule ^js/libs/(.*)\.[0-9]+\.js$ /WebClient_Manut/js/libs/$1.js [L]
RewriteRule ^js/(.*)\.[0-9]+\.js$ /WebClient_Manut/js/$1.js [L]
RewriteRule ^css/(.*)\.[0-9]+\.css$ /WebClient_Manut/css/$1.css [L]
RewriteRule ^Resources/img/(.*)\.[0-9]+\.png$ /WebClient_Manut/Resources/img/$1.png [L]
RewriteRule ^Resources/img/(.*)\.[0-9]+\.gif$ /WebClient_Manut/Resources/img/$1.gif [L]
RewriteRule ^Resources/icons/(.*)\.[0-9]+\.png$ /WebClient_Manut/Resources/icons/$1.png [L]
</ifModule>
<ifModule mod_headers.c>
+2 -1
View File
@@ -1,5 +1,6 @@
call uglifyjs .\js\libs\hello.min.js .\js\libs\ua-parser.min.js -o .\js\common.min.js
REM node r.js -o app.build_dev.js
node r.js -o app.build_prod.js
REM call cleancss -o .\css\loadingStyle.min.css .\css\loadingStyle.css
call cleancss -o .\css\style.min.css .\css\style.css
call cleancss --s0 --skip-rebase -o .\css\style.min.css .\css\style.css
pause
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

+19 -9
View File
@@ -9,7 +9,8 @@
.ui-icon-myHome:after {
background: url("https://dl.dropboxusercontent.com/s/w5evmv0suijf2jd/house.png") 50% 50% no-repeat; background-size: 22px 22px;
margin-top: -15px !important;
width: 30px!important; height: 30px!important; margin-left: -15px !important; box-shadow: none!important; -moz-box-shadow: none!important; -webkit-box-shadow: none!important; -webkit-border-radius: 0 !important; border-radius: 0 !important;
width: 30px!important; height: 30px!important; margin-left: -15px !important;
box-shadow: none!important; -moz-box-shadow: none!important; -webkit-box-shadow: none!important; -webkit-border-radius: 0 !important; border-radius: 0 !important;
}
#favoriteBtn:after { background: url("https://dl.dropboxusercontent.com/s/ptt4475xkrv0chu/favorite.png") 50% 50% no-repeat; background-size: 22px 22px; }
@@ -26,23 +27,23 @@
#saveBtn:after { background: url("https://dl.dropboxusercontent.com/s/dsqkblkv9zgqyab/save.png") 50% 50% no-repeat; background-size: 22px 22px;
box-shadow: none!important; -moz-box-shadow: none!important; -webkit-box-shadow: none!important; -webkit-border-radius: 0 !important; border-radius: 0 !important;}
.loginfb {
content: url('https://www.dropbox.com/s/vsc19gan0ihjptr/fblogin.png');
.loginfb:before {
content: url('https://dl.dropboxusercontent.com/s/vsc19gan0ihjptr/fblogin.png');
width: 200px;
}
.logoutfb {
content: url('https://www.dropbox.com/s/sdbe56vqxeqevph/fblogout.png');
.logoutfb:before {
content: url('https://dl.dropboxusercontent.com/s/sdbe56vqxeqevph/fblogout.png');
width: 200px;
}
.logingplus {
content: url('https://www.dropbox.com/s/k43w3cfzowlynhk/gpluslogin.png');
.logingplus:before {
content: url('https://dl.dropboxusercontent.com/s/k43w3cfzowlynhk/gpluslogin.png');
width: 200px;
}
.logoutgplus {
content: url('https://www.dropbox.com/s/nnprsunm8zg31en/gpluslogout.png');
.logoutgplus:before {
content: url('https://dl.dropboxusercontent.com/s/nnprsunm8zg31en/gpluslogout.png');
width: 200px;
}
@@ -117,6 +118,15 @@ div.ricettaAutore{
-webkit-touch-callout: none;
}
.selectable {
-webkit-user-select: auto;
-moz-user-select: auto;
-ms-user-select: auto;
-o-user-select: auto;
user-select: auto;
-webkit-touch-callout: auto;
}
textarea {
-webkit-user-select: auto !important;
}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

+5 -5
View File
@@ -1,9 +1,9 @@
/* jQuery.Rating Plugin CSS - http://www.fyneworks.com/jquery/star-rating/ */
div.rating-cancel,div.star-rating{float:left;width:24px;height:24px;text-indent:-999em;cursor:pointer;display:block;background:transparent;overflow:hidden}
div.rating-cancel,div.rating-cancel a{background:url(delete.png) no-repeat 0 -24px}
div.star-rating,div.star-rating a{background:url(star.png) no-repeat 0 0px}
div.rating-cancel a,div.star-rating a{display:block;width:24px;height:100%;background-position:0 0px;border:0}
div.star-rating-on a{background-position:0 -24px!important}
div.rating-cancel,div.star-rating{float:left;width:16px;height:16px;text-indent:-999em;cursor:pointer;display:block;background:transparent;overflow:hidden}
div.rating-cancel,div.rating-cancel a{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAgCAYAAAAbifjMAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwgAADsIBFShKgAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAABAZJREFUSEuVlGtIHFcUx++6YaPGB2ow3WqiCa2apmo0tkrQSExqrCVak7gVs6SPL6FQUGPB9RH8YkFBKPigii8oguL7rbvia0VQ/BBajCFQKCQxJsXo2mzdjbs7p/87O6luNt0kf/hx7sz9nzN3Zu497FXNz8/76fX65OXl5ZtLS0u3gWZxcfHG7Oxs5MzMzAHJ9nqNjY0dhEkHswHszs3NCYgConl6evox5n6SrM6ampqKBvcBuWJycrJpYGDAW0rbk06n6wcCDNzkChP4WkqzC4kZWq2W3paJiQkDOComd3V1KUZHR/V4f+JgTCMjIw7we+Pj4zxR9Ei+PLHA4ODgkaGhodXh4WHirKyskMViEdnd3SWTyUQ7OztkNBoJH1T0cJBTVV5e7sZ6e3uV/f399/BhiLO6ukr7ZbPZxGK8CP+IL319fX3VWL2coZInBgs9PT3EwYoIRQn3HOju7hbn93FLfAWujo6OvM7OTnoXUOBDKV2UrL29fQEIgN6AGThvqNbW1pS2trZNQG9A29TU5C+l/SdZQUGBR0NDg7q5ufkOilleTWxpadnC3FB9fX1Udna2XMqzi/8O4FlaWhpSUVGRVVVVVVtXV3e3sbFxE0XXampqdJWVlfnwxGk0mgBEp0Mlw00F8C8rKwtHTEFUFRcXq0EOxuklJSWxIKiwsPAQ5t2kvD3hl8vwu+T8VfhTsJqjiCeKiopCkRAIfAB/iHPyflFurp/w7ffJQt6PN623NLet+UUa6w95N17kfhNJyc5Ld5CQlnZQyPxKR1m5BuHq9V3hmlqwXVULGJttmTmPbRmq/+8HQmpWtC39yn364hq5wpZ2pUk4m+HcD2wXL/cLn2UKlPoluQIek3DhsmM/EM5dzKDkz+ltsSWlGYSkVHs/oI+yFZb483pr/AUS+eQ8WWOSyXpago9jwdlUsiZesns4cSn2fvD84/gj/0QnrppOnyOOubqWzDi6O+gDRkTD9jZtPHtGT54+JaPqO9FjJ6mKGHNjxohYpTHi03vGkwnEefHzL/ZGIMlqtYpNZRtFnmdcFz2cvyMSqrsYtvSa8oznVmjMguF4LHG2IxMRz9BWUJQDhmAQGiN6RN/xmL1+sHH4VN5G4Cl6F/46fNKxH6z7hC2se4UJT7zCyBXwmNd9P3DeUA/ZsZRHspDNNVkIueKR7Jj2AQt27gfBjHlo3d5T/86Ud/5k71sesCB6yUPwB1Nu/caUQ4MsMAp+x34A8RPm6e7uHpKg8MpSyb1qf2W+d/XMf3OS+a3Vy3x1KjeP/HB2IA6+AODcD4DCh/n4eyu8w+VyeQquVUANcnCdjhgLgsAh8NojzYvwpXl4M+8Ad+bOt+oJEAoCgQ9QgH3JjP0LiOu08eQI5iQAAAAASUVORK5CYII=') no-repeat 0 -16px}
div.star-rating,div.star-rating a{background:url('data:image/png;base64,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') no-repeat 0 0px}
div.rating-cancel a,div.star-rating a{display:block;width:16px;height:100%;background-position:0 0px;border:0}
div.star-rating-on a{background-position:0 -16px!important}
div.star-rating-hover a{background-position:0 -48px}
/* Read Only CSS */
div.star-rating-readonly a{cursor:default !important}
+15 -2
View File
File diff suppressed because one or more lines are too long
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

+2
View File
@@ -1,3 +1,5 @@
@import url("jquery.mobile.icons.min.css");
@import url("IlLievitario.min.css");
@import url("loadingStyle.css");
@import url("base.style.css");
@import url("mobile.style.css") screen;
+1 -1
View File
File diff suppressed because one or more lines are too long
+4 -23
View File
@@ -5,13 +5,10 @@
<meta name="google" value="notranslate" />
<meta http-equiv="expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="X-UA-Compatible" content="IE=9">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.3/jquery.mobile.structure.min.css" >
<link rel="stylesheet" href="css/jquery.mobile.icons.min.<?php echo filemtime('css/jquery.mobile.icons.min.css'); ?>.css">
<link rel="stylesheet" href="css/IlLievitario.min.<?php echo filemtime('css/IlLievitario.min.css'); ?>.css">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.css" >
<link rel="stylesheet" href="css/style.min.<?php echo filemtime('css/style.min.css'); ?>.css">
<link rel="shortcut icon" sizes="196x196" href="https://dl.dropboxusercontent.com/s/l26w7lk0zwnpehf/Icon_Android196.png">
<link rel="apple-touch-icon" href="https://dl.dropboxusercontent.com/s/9cc174ato4hckl5/Icon.png" />
@@ -20,34 +17,18 @@
<link rel="apple-touch-icon" sizes="144x144" href="https://dl.dropboxusercontent.com/s/pj3fk1lgc4cefwx/Icon~ipad%402x.png" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimal-ui"/>
<meta http-equiv="Access-Control-Allow-Origin" content="*"/>
<script type='text/javascript' src="js/libs/ua-parser.min.<?php echo filemtime('js/libs/ua-parser.min.js'); ?>.js"></script>
<script type='text/javascript' src="js/openfb.<?php echo filemtime('js/openfb.js'); ?>.js"></script>
<script type='text/javascript' src="js/opengplus.<?php echo filemtime('js/opengplus.js'); ?>.js"></script>
<script type='text/javascript' src="js/common.min.<?php echo filemtime('js/common.min.js'); ?>.js"></script>
<script type='text/javascript'>
if(openFB && window.location &&
window.location.href.indexOf("access_token") != -1 &&
window.localStorage.getItem("tryLogin")=="fb") {
openFB.oauthCallback(window.location.href);
window.location.href = "#syncView/tokenFound";
}
else if(openGPlus && window.location &&
window.location.href.indexOf("access_token") != -1 &&
window.localStorage.getItem("tryLogin")=="gplus") {
openGPlus.oauthCallback(window.location.href);
window.location.href = "#syncView/tokenFound";
}
<?php echo file_get_contents("js/manifest.js"); ?>
</script>
<!--<script type='text/javascript' src="js/manifest.<?php echo filemtime('js/manifest.js'); ?>.js"></script>-->
<script data-main="js/config" src="js/libs/require.<?php echo filemtime('js/libs/require.js'); ?>.js"></script>
<script data-main="js/config.<?php echo filemtime('js/config.js'); ?>" src="js/libs/require.<?php echo filemtime('js/libs/require.js'); ?>.js"></script>
</head>
<body style="background-color: #1d1d1d;">
<?php include_once("analyticstracking.php") ?>
<div id="loadingFrm" style="text-align: center;">
<img src="https://dl.dropboxusercontent.com/s/6qrdp9mbi1rb92k/sfondo.png" class="loadingSfondo">
<div class="loadingSfondo">
<div class="loadingText">
<div style="color: #ffffff;"><b>Caricamento...</b></div>
<img src="https://dl.dropboxusercontent.com/s/mw90t9oay2v9jev/loading.gif">
</div>
</div>
</body>
+54 -5
View File
@@ -1,24 +1,73 @@
define(['jquery','underscore', 'backbone', 'router', 'classes/profile'],function
($, _, Backbone,Router, Profile) {
define(['jquery', 'underscore', 'backbone', 'router', 'classes/profile', 'classes/cache'], function
($, _, Backbone, Router, Profile, Cache) {
'use strict';
var init = function () {
//create backbone router
var router = new Router();
Backbone.history.start();
Backbone.emulateJSON = true;
var origin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '') + (location.pathname?location.pathname:'');
openFB.init('1466942266882168', origin, window.localStorage);
openGPlus.init('319140243944-qk0lfhgmi8shi4go97r83l69f1k0gdf4.apps.googleusercontent.com', origin, window.localStorage);
hello.init({
facebook: '1466942266882168',
google: '319140243944-qk0lfhgmi8shi4go97r83l69f1k0gdf4.apps.googleusercontent.com'
}, {display: 'page', scope: 'email'});
//console.log("Backbone history start");
// Trigger 'route' event on router instance.
router.on('route', function (name, args) {
//alert(name);
});
Cache.checkCacheFromServer();
if (Profile.isConnected()) {
Profile.loadProfile();
}
hello.on('auth.login', function (auth) {
if (!Profile.isConnected())
{
hello(auth.network).api("me").then(function (json) {
var id = "";
var displayName = "";
var email = "";
var gender = "";
if (auth.network === "google")
{
id = json.id;
displayName = json.displayName;
email = json.email;
gender = json.gender;
}
else if (auth.network === "facebook")
{
id = json.id;
displayName = json.name;
email = json.email;
gender = json.gender;
}
Profile.internalLoadProfile(id, function(retVal){
if(retVal === false)
{
Profile.createProfile(
id,
auth.network,
displayName,
email,
gender,
function () {
window.location.href = "#syncView/tokenFound";
}
);
}
else
window.location.href = "#syncView/tokenFound";
});
});
}
});
$('body').css('background-color', '');
$('#loadingFrm').remove();
};
+66
View File
@@ -0,0 +1,66 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
define(['jquery', 'backbone'],
function ($, Backbone) {
var Cache = {
convertToDate: function (mysql_string)
{
if (typeof mysql_string === 'string')
{
var t = mysql_string.split(/[- :]/);
//when t[3], t[4] and t[5] are missing they defaults to zero
return new Date(t[0], t[1] - 1, t[2], t[3] || 0, t[4] || 0, t[5] || 0);
}
return null;
},
prefix: "cacheItem",
get: function (name) {
var item = window.localStorage.getItem(this.prefix + name);
if(item === null)
return null;
item = JSON.parse(item);
return item.storeValue;
},
set: function (name, value) {
window.localStorage.setItem(this.prefix + name, JSON.stringify({setTime: new Date(), storeValue: value}));
},
isExpired: function (name, timeDiff) {
var item = window.localStorage.getItem(this.prefix + name);
if(item === null)
return true;
item = JSON.parse(item);
var time = item.setTime;
if(timeDiff.getTime() > Date.parse(time))
return true;
return false;
},
checkCacheFromServer: function ()
{
var self = this;
$.ajax({
url: myManifest.Settings.DefaultURL + "/api/profile/statusCache",
//dataType: "json",
type: 'GET',
success: function (msg) {
$(msg).each(function (index, element) {
var elemName = "Category" + element.ID_CATEGORIA;
if (self.isExpired(elemName, self.convertToDate(element.LastDateModified)))
{
self.set(elemName, null);
}
});
}
});
}
};
return Cache;
});
+54
View File
@@ -0,0 +1,54 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
define(['jquery', 'underscore', 'backbone', 'classes/cache'],
function ($, _, Backbone, Cache) {
var CachedCollection = Backbone.Collection.extend({
cacheName: null,
fetch: function (options) {
options = _.defaults(options || {}, {parse: true});
var deferred = new $.Deferred(),
self = this;
var cachedItem = Cache.get(this.cacheName);
if (cachedItem !== null)
{
window.setTimeout(function () {
self[options.reset ? 'reset' : 'set'](false, options);
deferred.resolve(cachedItem);
self.push(cachedItem);
self.trigger('sync', self, false, options);
if (_.isFunction(options.success)) {
options.success(self, false, options);
}
return deferred;
}, 0);
}
else
{
// Delegate to the actual fetch method and store the attributes in the cache
var jqXHR = Backbone.Collection.prototype.fetch.apply(this, arguments);
// resolve the returned promise when the AJAX call completes
jqXHR.done(_.bind(deferred.resolve, this, this))
// Set the new data in the cache
.done(_.bind(
function (a, b, c) {
Cache.set(self.cacheName, a);
}
, null, this, options))
// Reject the promise on fail
.fail(_.bind(deferred.reject, this, this));
deferred.abort = jqXHR.abort;
// return a promise which provides the same methods as a jqXHR object
return deferred;
}
}
});
return CachedCollection;
});
+2 -7
View File
@@ -11,11 +11,6 @@ define(['jquery', 'backbone'],
if (this.data.type == null)
this.loadProfile();
}
else
{
this.data.risRic = window.localStorage.getItem("risRic");
this.data.tema = window.localStorage.getItem("tema");
}
return this;
},
@@ -78,12 +73,12 @@ define(['jquery', 'backbone'],
},
isGPlusConnected: function(){
if(this.data.type == "gplus")
if(this.data.type === "google")
return true;
return false;
},
isFbConnected: function(){
if(this.data.type == "fb")
if(this.data.type === "facebook")
return true;
return false;
},
+3
View File
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -1,5 +1,6 @@
var pathJquery = "http://ajax.googleapis.com/ajax/libs/jquery/" + myManifest.Settings.JQueryVersion + "/jquery.min";
var pathJqueryMobile = "http://ajax.googleapis.com/ajax/libs/jquerymobile/"+ myManifest.Settings.JQueryMobileVersion + "/jquery.mobile.min";
var pathJqueryMobile = "http://code.jquery.com/mobile/"+ myManifest.Settings.JQueryMobileVersion + "/jquery.mobile-"+ myManifest.Settings.JQueryMobileVersion + ".min";
//var pathJqueryMobile = "http://ajax.googleapis.com/ajax/libs/jquerymobile/"+ myManifest.Settings.JQueryMobileVersion + "/jquery.mobile.min";
requirejs.config({
baseUrl: 'js',
+27 -5
View File
@@ -4,7 +4,6 @@
/**
* @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
*
* @version 1.0.3
* @codingstandard ftlabs-jsv2
* @copyright The Financial Times Limited [All Rights Reserved]
* @license MIT License (see LICENSE.txt)
@@ -96,6 +95,13 @@
*/
this.tapDelay = options.tapDelay || 200;
/**
* The maximum time for a tap
*
* @type number
*/
this.tapTimeout = options.tapTimeout || 700;
if (FastClick.notNeeded(layer)) {
return;
}
@@ -167,13 +173,19 @@
}
}
/**
* Windows Phone 8.1 fakes user agent string to look like Android and iPhone.
*
* @type boolean
*/
var deviceIsWindowsPhone = navigator.userAgent.indexOf("Windows Phone") >= 0;
/**
* Android requires exceptions.
*
* @type boolean
*/
var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0;
var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;
/**
@@ -181,7 +193,7 @@
*
* @type boolean
*/
var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent);
var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;
/**
@@ -193,11 +205,11 @@
/**
* iOS 6.0(+?) requires the target element to be manually derived
* iOS 6.0-7.* requires the target element to be manually derived
*
* @type boolean
*/
var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS ([6-9]|\d{2})_\d/).test(navigator.userAgent);
var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\d/).test(navigator.userAgent);
/**
* BlackBerry requires exceptions.
@@ -519,6 +531,10 @@
return true;
}
if ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {
return true;
}
// Reset to prevent wrong click cancel on input (issue #156).
this.cancelNextClick = false;
@@ -776,6 +792,12 @@
return true;
}
// IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version
// http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx
if (layer.style.touchAction === 'none') {
return true;
}
return false;
};
+2
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -1,10 +1,10 @@
var myManifest = {
Debug: false,
Name: "Il Lievitario",
Version: "2.2.3",
Version: "2.5.0",
Author: "Denis Ironi",
Settings: {
//DefaultURL: "http://localhost:8081/Service",
//DefaultURL: "http://localhost:8081/Service_Manut",
DefaultURL: "http://app.gruppolapastamadre.it/Service",
JQueryVersion: "1.11.1",
JQueryMobileVersion: "1.4.3",
+4 -5
View File
@@ -1,11 +1,10 @@
define(['app', 'jquery', 'underscore', 'backbone', 'model/category/categoryModel'],
function (app, $, _, Backbone, Category){
var Categories=Backbone.Collection.extend({
define(['app', 'jquery', 'underscore', 'backbone', 'model/category/categoryModel', 'classes/cachedCollection'],
function (app, $, _, Backbone, Category, CachedCollection) {
var Categories = CachedCollection.extend({
cacheName: "Category0",
// Book is the model of the collection
model: Category,
url: function () {
return myManifest.Settings.DefaultURL + "/api/categories";
}
@@ -1,11 +1,12 @@
define(['app', 'jquery', 'underscore', 'backbone', 'model/categoryItem/categoryItemModel'],
function (app, $, _, Backbone, Category){
define(['app', 'jquery', 'underscore', 'backbone', 'model/categoryItem/categoryItemModel', 'classes/cachedCollection'],
function (app, $, _, Backbone, Category, CachedCollection){
var CategoryItems=Backbone.Collection.extend({
var CategoryItems=CachedCollection.extend({
categoryId: null,
initialize: function (options) {
this.categoryId = options.categoryId;
this.cacheName = "Category" + this.categoryId;
},
// Book is the model of the collection
model:Category,
+3 -3
View File
@@ -1,5 +1,5 @@
define(['jquery', 'underscore', 'backbone','text!modules/about/aboutViewTemplate.html', 'modules/base/baseView'],
function($, _, Backbone, aboutViewTemplate, BaseView){
define(['jquery', 'underscore', 'backbone','text!modules/about/aboutViewTemplate.html', 'modules/base/baseView', 'classes/profile'],
function($, _, Backbone, aboutViewTemplate, BaseView, Profile){
var AboutView = BaseView.extend({
@@ -18,7 +18,7 @@ function($, _, Backbone, aboutViewTemplate, BaseView){
//$el is cached jQuery object for the view's element.
//append the compiled template into view div container
this.$el.append(this.header.$el);
this.$el.append(this.template( { app: myManifest }));
this.$el.append(this.template( { app: myManifest, profile: Profile }));
this.$el.append(this.footer.$el);
this.$el.find("#infoBtn").addClass("ui-btn-active");
//$("#homeBtn").addClass("ui-btn-active");
+1
View File
@@ -7,6 +7,7 @@
<b>Sviluppatore:</b> <%= app.Author %><br><br>
<br><b>Dettagli Sviluppo: </b><br>S.O.:<%= app.Agent.os.name %><br>Versione: <%= app.Agent.os.version %><br><br>
<b>Librerie Usate: </b><br>JQuery:<%= app.Settings.JQueryVersion %><br>JQueryMobile: <%= app.Settings.JQueryMobileVersion %><br>
<div class="selectable"><b>Key Sync: </b><%= profile.getKeySave() %><br></div>
<br><br>
<b>Ringraziamenti a</b>
<br><br>
+12 -4
View File
@@ -2,13 +2,11 @@ define(['jquery', 'underscore', 'backbone','text!modules/category/categoryViewTe
function ($, _, Backbone, categoryViewTemplate, categoryItemTemplate, BaseView) {
var CategoryView = BaseView.extend({
collection: null,
categoryName: null,
//initialize template
template: _.template(categoryViewTemplate),
itemtemplate: _.template(categoryItemTemplate),
initialize: function (options) {
var self = this;
CategoryView.__super__.initialize.call(this);
@@ -21,7 +19,6 @@ function($, _, Backbone, categoryViewTemplate, categoryItemTemplate, BaseView){
//success: function(){ self.renderItem(); }
});
},
renderItem: function () {
var $ul = $('#allRicette');
@@ -31,10 +28,21 @@ function($, _, Backbone, categoryViewTemplate, categoryItemTemplate, BaseView){
$ul.listview("refresh");
$ul.trigger("updatelayout");
$ul.find('input[type=radio].star').rating({
callback: function (value, link) {
var tip = $('#hover-test');
if (value === undefined)
{
$('#hover-test').html("Nessuna" || 'value: ');
}
else
$('#hover-test').html(link.title || 'value: ' + value);
}
});
$.mobile.loading('hide');
//$( '[data-alpha="true"]' ).alphascroll();
},
//render the content into div of view
render: function () {
//this.header.title = "pippo";
+13 -1
View File
@@ -2,5 +2,17 @@
<h1>Nessuna ricetta trovata</h1>
<%} else { for (var i = 0; i < data.length; i++) { %>
<% var item = data[i]; %>
<li><a href="#ricetta/<%= item.ricetta_id%>" class="ui-btn ui-btn-icon-right ui-icon-carat-r"><div class='ricettaTitolo'><%= unescape(item.titolo) %></div><div class='ricettaAutore'><%= unescape(item.autore) %></div></a></li>
<li><a href="#ricetta/<%= item.ricetta_id%>" class="ui-btn ui-btn-icon-right ui-icon-carat-r">
<div class='ricettaTitolo'><%= unescape(item.titolo) %></div>
<div class='ricettaAutore'><%= unescape(item.autore) %></div>
<div id="valutazione" style="clear:both;">
<form id="difficoltaFrm" data-role="none">
<input name="difficolta" <% if(item.difficolta==="1"){%>checked="checked"<%}%> type="radio" data-role="none" value="1" disabled="disabled" title="Molto Semplice" class="star"/>
<input name="difficolta" <% if(item.difficolta==="2"){%>checked="checked"<%}%> type="radio" data-role="none" value="2" disabled="disabled" title="Semplice" class="star"/>
<input name="difficolta" <% if(item.difficolta==="3"){%>checked="checked"<%}%> type="radio" data-role="none" value="3" disabled="disabled" title="Normale" class="star"/>
<input name="difficolta" <% if(item.difficolta==="4"){%>checked="checked"<%}%> type="radio" data-role="none" value="4" disabled="disabled" title="Difficile" class="star"/>
<input name="difficolta" <% if(item.difficolta==="5"){%>checked="checked"<%}%> type="radio" data-role="none" value="5" disabled="disabled" title="Molto Difficile" class="star"/>
</form>
</div>
</a></li>
<% }} %>
+1
View File
@@ -15,6 +15,7 @@
Le admin <br><br><b>Alessia, Elena e Francesca</b><br><br>hanno RIFONDATO IL GRUPPO!!<br>
<br>"<b>Gruppo La Pasta Madre</b>"<br>
<br>vuoi chiedere di diventare membro?
<br>Se sei già membro premi si e poi torna indietro con il browser
</p>
<p style="text-align: center;">
<a id="goFbGroup" href="#" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b" data-rel="back">Si</a>
+1 -1
View File
@@ -15,7 +15,7 @@
liStyle="list-style-type: none;";
qty = "";
nome_ingr = "";
} %> <li style="<%= liStyle %>"><b><%= nome_ingr %></b><%= qty %> <%= ingrediente.unita %> <%= ingrediente.note %></li><br> <% }); %>
} %> <li style="<%= liStyle %>"><b><%= nome_ingr %></b><%= qty %> <%= ingrediente.unita %> <%= unescape(ingrediente.note) %></li><br> <% }); %>
</p></center>
</div>
<div id="contentProcedimento" data-role="content" style="display: none;">
-9
View File
@@ -33,23 +33,14 @@ define(['jquery', 'underscore', 'backbone','text!modules/search/searchViewTempla
render: function () {
//this.header.title = "pippo";
SearchView.__super__.render.call(this);
//this.el is the root element of Backbone.View. By default, it is a div.
//$el is cached jQuery object for the view's element.
//append the compiled template into view div container
this.$el.append(this.header.$el);
this.$el.append(this.template({data:this.collection.toJSON()}));
this.$el.append(this.footer.$el);
this.$el.find('#nResult').val(Profile.data.risRic);
// this.$el.find('#search').on("click", function(e){
// e.preventDefault();
//
// });
this.trigger("renderCompleted:Search", this);
this.$el.find("#searchBtn").addClass("ui-btn-active");
//$("#homeBtn").addClass("ui-btn-active");
//return to enable chained calls
return this;
}
});
+16 -45
View File
@@ -2,62 +2,42 @@ define(['jquery', 'underscore', 'backbone','text!modules/sync/syncViewTemplate.h
function ($, _, Backbone, syncViewTemplate, BaseView, Profile) {
var SyncView = BaseView.extend({
//initialize template
template: _.template(syncViewTemplate),
initialize: function (options) {
SyncView.__super__.initialize.call(this);
if (options &&
options.tokenFound == 1)
{
if(window.localStorage.getItem("tryLogin")=="fb")
{
this.fbAfterLogin();
}
else if(window.localStorage.getItem("tryLogin")=="gplus")
{
this.gPlusAfterLogin();
}
this.updateLoginBtn();
}
window.localStorage.setItem("tryLogin", null);
},
events: {
"click #backBtn": "backBtn",
"click #fblogin": "fbLogin",
"click #gpluslogin": "gplusLogin",
"click #resetBtn": "resetBtn"
},
resetBtn: function (e) {
e.preventDefault();
Profile.setKeySave(null);
window.localStorage.setItem("hello", null);
Backbone.history.loadUrl();
},
backBtn: function (e) {
e.preventDefault();
window.history.back();
},
fbLogin: function (e) {
var self = this;
e.preventDefault();
if(!Profile.isConnected()) {
window.localStorage.setItem("tryLogin", "fb");
openFB.login('email');
}
else if(Profile.isConnected() && Profile.isFbConnected())
openFB.revokePermissions(function(){
Profile.setKeySave(null);
self.updateLoginBtn();
});
hello('facebook').login();
},
fbAfterLogin: function ()
{
/*
var self = this;
openFB.api({
path: '/me',
@@ -76,25 +56,17 @@ define(['jquery', 'underscore', 'backbone','text!modules/sync/syncViewTemplate.h
self.updateLoginBtn();
});
}});
*/
},
gplusLogin: function (e) {
var self = this;
e.preventDefault();
if(!Profile.isConnected()) {
window.localStorage.setItem("tryLogin", "gplus");
openGPlus.login('email');
}
else if(Profile.isConnected() && Profile.isGPlusConnected())
openGPlus.revokePermissions(function(){
Profile.setKeySave(null);
self.updateLoginBtn();
});
hello('google').login();
},
gPlusAfterLogin: function ()
{
/*
var self = this;
openGPlus.api({
path: 'people/me',
@@ -114,34 +86,33 @@ define(['jquery', 'underscore', 'backbone','text!modules/sync/syncViewTemplate.h
self.updateLoginBtn();
});
}});
*/
},
updateLoginBtn: function ()
{
if (Profile.isConnected()) {
if (Profile.isFbConnected()) {
this.$el.find("#fblogin").show();
this.$el.find("#gpluslogin").hide();
this.$el.find("#loginFbImg").removeClass("loginfb");
this.$el.find("#loginFbImg").addClass("logoutfb");
this.$el.find("#fblogin").removeClass("loginfb");
this.$el.find("#fblogin").addClass("logoutfb");
}
if (Profile.isGPlusConnected()) {
this.$el.find("#gpluslogin").show();
this.$el.find("#fblogin").hide();
this.$el.find("#loginGPlusImg").removeClass("logingplus");
this.$el.find("#loginGPlusImg").addClass("logoutgplus");
this.$el.find("#gpluslogin").removeClass("logingplus");
this.$el.find("#gpluslogin").addClass("logoutgplus");
}
}
else
{
this.$el.find("#loginFbImg").removeClass("logoutfb");
this.$el.find("#loginFbImg").addClass("loginfb");
this.$el.find("#loginGPlusImg").removeClass("logoutgplus");
this.$el.find("#loginGPlusImg").addClass("logingplus");
this.$el.find("#fblogin").removeClass("logoutfb");
this.$el.find("#fblogin").addClass("loginfb");
this.$el.find("#gpluslogin").removeClass("logoutgplus");
this.$el.find("#gpluslogin").addClass("logingplus");
}
},
//render the content into div of view
render: function () {
var self = this;
+2 -2
View File
@@ -3,8 +3,8 @@
<div style="text-align: center;">
Qui puoi collegarti con l'account che preferisci<br>per avere la sincronizzazione dei tuoi dati su qualsiasi dispositivo che userai<br>
Scegli il tipo di account e premi il tasto qui sotto per effettuare il login<br><br>
<a id="fblogin" href=""><img id="loginFbImg" class="loginfb"/><br></a>
<a id="gpluslogin" href=""><img id="loginGPlusImg" class="logingplus"/></a>
<a id="fblogin" href="" class="loginfb"></a><br>
<a id="gpluslogin" href="" class="logingplus"></a>
<div data-role="popup" id="popupLogin" data-overlay-theme="a" data-theme="a" data-corners="false" data-tolerance="15,15">
<a href="#" data-rel="back" class="ui-btn ui-btn-b ui-corner-all ui-shadow ui-btn-a ui-icon-delete ui-btn-icon-notext ui-btn-right">Close</a>
<iframe id="urlLogin" src="" width="497" height="298" seamless=""></iframe>
+15 -3
View File
@@ -156,6 +156,19 @@ var openFB = (function () {
tokenStore['fbtoken'] = undefined;
}
function createHttpReq(callbackFn){
var request;
if (window.XDomainRequest) {
request = new window.XDomainRequest();
request.onload = callbackFn;
}
else {
request = new XMLHttpRequest();
request.onreadystatechange = callbackFn;
}
return request;
}
/**
* Lets you make any Facebook Graph API request.
* @param obj - Request configuration object. Can include:
@@ -169,14 +182,13 @@ var openFB = (function () {
var method = obj.method || 'GET',
params = obj.params || {},
xhr = new XMLHttpRequest(),
url;
params['access_token'] = tokenStore['fbtoken'];
url = 'https://graph.facebook.com' + obj.path + '?' + toQueryString(params);
xhr.onreadystatechange = function () {
var xhr = createHttpReq( function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
if (obj.success) obj.success(JSON.parse(xhr.responseText));
@@ -185,7 +197,7 @@ var openFB = (function () {
if (obj.error) obj.error(error);
}
}
};
});
xhr.open(method, url, true);
xhr.send();
+16 -3
View File
@@ -157,6 +157,19 @@ var openGPlus = (function () {
tokenStore['gplustoken'] = undefined;
}
function createHttpReq(callbackFn){
var request;
if (window.XDomainRequest) {
request = new window.XDomainRequest();
request.onload = callbackFn;
}
else {
request = new XMLHttpRequest();
request.onreadystatechange = callbackFn;
}
return request;
}
/**
* Lets you make any Facebook Graph API request.
* @param obj - Request configuration object. Can include:
@@ -171,14 +184,14 @@ var openGPlus = (function () {
var method = obj.method || 'GET',
baseUrl = obj.baseUrl || 'https://www.googleapis.com/plus/v1/',
params = obj.params || {},
xhr = new XMLHttpRequest(),
url;
params['access_token'] = tokenStore['gplustoken'];
url = baseUrl + obj.path + '?' + toQueryString(params);
xhr.onreadystatechange = function () {
//xhr.onreadystatechange =
var xhr = createHttpReq(function () {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
if (obj.success) obj.success(JSON.parse(xhr.responseText));
@@ -187,7 +200,7 @@ var openGPlus = (function () {
if (obj.error) obj.error(error);
}
}
};
});
xhr.open(method, url, true);
xhr.send();
+5 -3
View File
@@ -4,14 +4,14 @@ define(['jquery', 'underscore', 'backbone',
'modules/sync/sync', 'modules/converter/converter', 'modules/donation/donation', 'modules/settings/settings',
'model/note/noteCollection', 'model/category/categoryCollection', 'model/categoryItem/categoryItemCollection',
'model/item/itemCollection', 'model/item/ingredientiCollection', 'model/categoryItem/foundItemCollection',
'libs/fastclick', 'jqm', 'jQueryPlugins'],
'libs/fastclick', 'classes/cache', 'jqm', 'jQueryPlugins'],
function ($, _, Backbone,
HomeView, FaqView, IndexView, CategoryView, ItemView,
AboutView, SearchView, FoundView, MoreView, NoteView,
SyncView, ConverterView, DonationView, SettingsView,
NoteCollection, CategoryCollection, CategoryItemCollection,
ItemCollection, IngredientiCollection, FoundItemCollection,
FastClick) {
FastClick, Cache) {
'use strict';
var Router = Backbone.Router.extend({
@@ -84,6 +84,8 @@ define(['jquery', 'underscore', 'backbone',
this.changePage(faqView);
},
showIndex: function (actions) {
Cache.checkCacheFromServer();
var categories = new CategoryCollection();
// will render home view and navigate to homeView
var indexView = new IndexView({collection: categories});
@@ -172,7 +174,7 @@ define(['jquery', 'underscore', 'backbone',
$('input[type=radio].star').rating({
callback: function (value, link) {
var tip = $('#hover-test');
if (value == undefined)
if (value === undefined)
{
$('#hover-test').html("Nessuna" || 'value: ');
}
+63
View File
@@ -0,0 +1,63 @@
<?php
/**
* XML Sitemap PHP Script
* For more info, see: http://yoast.com/xml-sitemap-php-script/
* Copyright (C), 2011 - 2012 - Joost de Valk, joost@yoast.com
*/
// inclusione del file contenente la classe
require_once "./Service/MySqlClass.php";
require_once "./Service/utility.php";
// Get the keys so we can check quickly
// Sent the correct header so browsers display properly, with or without XSL.
header( 'Content-Type: application/xml' );
echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
$url = "http://app.gruppolapastamadre.it/";
$blog_timezone = 'UTC';
$timezone_offset = '+01:00';
$W3C_datetime_format_php = 'Y-m-d\Th:i:s'; // See http://www.w3.org/TR/NOTE-datetime
function dinamicSite() {
global $url, $blog_timezone, $timezone_offset, $W3C_datetime_format_php;
$mysqlconnetion = new MysqlClass;
//$mysqlconneti on->connetti();
$retObj = $mysqlconnetion->queryToObject("select ID as category_id, NAME as name from categorie order by name");
foreach ($retObj as $key => $value)
{
$catStr = "#category/". $value["name"] ."/" . $value["category_id"];
$lastModified = $mysqlconnetion->queryToObject("select MAX(Data_creazione) as lastModified from ricette where ID_CATEGORIA = ". $value["category_id"]);
$date = DateTime::createFromFormat('Y-m-d H:i:s', $lastModified[0]["lastModified"], new DateTimeZone("Europe/Rome"));
$lastDate = date_format($date, $W3C_datetime_format_php) . $timezone_offset;
?>
<url>
<loc><?php echo $url . $catStr; ?></loc>
<lastmod><?php echo $lastDate; ?></lastmod>
</url><?php
$query = "select ID as ricetta_id, titolo from ricette where ID_CATEGORIA = " . $value["category_id"] . " order by titolo, autore";
$ricItems = $mysqlconnetion->queryToObject($query);
foreach ($ricItems as $keyRic => $valueRic)
{
$itemStr= "#ricetta/" . $valueRic["ricetta_id"];
?>
<url>
<loc><?php echo $url . $itemStr; ?></loc>
</url><?php
}
}
$mysqlconnetion->disconnetti();
}
?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><?php
dinamicSite();
?>
</urlset>
+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://app.gruppolapastamadre.it/</loc>
<lastmod>2014-04-09</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://app.gruppolapastamadre.it/</loc>
<lastmod>2014-04-09</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
+30
View File
@@ -0,0 +1,30 @@
<!DOCTYPE html>
<html>
<head>
<title>Il Lievitario</title>
<meta name="google" value="notranslate" />
<meta http-equiv="expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="X-UA-Compatible" content="IE=9">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.css" >
<link rel="stylesheet" href="css/style.min.<?php echo filemtime('css/style.min.css'); ?>.css">
<link rel="shortcut icon" sizes="196x196" href="https://dl.dropboxusercontent.com/s/l26w7lk0zwnpehf/Icon_Android196.png">
<link rel="apple-touch-icon" href="https://dl.dropboxusercontent.com/s/9cc174ato4hckl5/Icon.png" />
<link rel="apple-touch-icon" sizes="72x72" href="https://dl.dropboxusercontent.com/s/onehseqh6cusbo0/Icon~ipad.png" />
<link rel="apple-touch-icon" sizes="114x114" href="https://dl.dropboxusercontent.com/s/tcxl91zd502mapa/Icon%402x.png" />
<link rel="apple-touch-icon" sizes="144x144" href="https://dl.dropboxusercontent.com/s/pj3fk1lgc4cefwx/Icon~ipad%402x.png" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimal-ui"/>
<meta http-equiv="Access-Control-Allow-Origin" content="*"/>
</head>
<body style="background-color: #1d1d1d;">
<div id="loadingFrm" style="text-align: center;">
<div class="loadingSfondo">
<div class="loadingText">
<div style="color: #ffffff;"><b>Caricamento...</b></div>
</div>
</div>
</body>
</html>