61 changed files with 873 additions and 1042 deletions
View File
+7 -19
View File
@@ -1,26 +1,14 @@
AddHandler application/x-httpd-php .html .htm AddHandler application/x-httpd-php .html .htm
<IfModule mod_deflate.c>
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
</IfModule>
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
AddOutputFilterByType DEFLATE text/css application/x-javascript text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon
</IfModule>
<ifModule mod_rewrite.c> <ifModule mod_rewrite.c>
RewriteEngine On RewriteEngine On
RewriteRule ^index.html$ index.php [L] RewriteRule ^index.html$ /NewMobileWebSite/index.php [L]
RewriteRule ^js/libs/(.*)\.[0-9]+\.js$ /IlLievitarioManut/js/libs/$1.js [L] RewriteRule ^js/libs/(.*)\.[0-9]+\.js$ /NewMobileWebSite/js/libs/$1.js [L]
RewriteRule ^js/(.*)\.[0-9]+\.js$ /IlLievitarioManut/js/$1.js [L] RewriteRule ^js/(.*)\.[0-9]+\.js$ /NewMobileWebSite/js/$1.js [L]
RewriteRule ^css/(.*)\.[0-9]+\.css$ /IlLievitarioManut/css/$1.css [L] RewriteRule ^css/(.*)\.[0-9]+\.css$ /NewMobileWebSite/css/$1.css [L]
RewriteRule ^Resources/img/(.*)\.[0-9]+\.png$ /IlLievitarioManut/Resources/img/$1.png [L] RewriteRule ^Resources/img/(.*)\.[0-9]+\.png$ /NewMobileWebSite/Resources/img/$1.png [L]
RewriteRule ^Resources/img/(.*)\.[0-9]+\.gif$ /IlLievitarioManut/Resources/img/$1.gif [L] RewriteRule ^Resources/img/(.*)\.[0-9]+\.gif$ /NewMobileWebSite/Resources/img/$1.gif [L]
RewriteRule ^Resources/icons/(.*)\.[0-9]+\.png$ /IlLievitarioManut/Resources/icons/$1.png [L] RewriteRule ^Resources/icons/(.*)\.[0-9]+\.png$ /NewMobileWebSite/Resources/icons/$1.png [L]
</ifModule> </ifModule>
<ifModule mod_headers.c> <ifModule mod_headers.c>
Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 874 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

-1
View File
@@ -2,4 +2,3 @@ REM node r.js -o app.build_dev.js
node r.js -o app.build_prod.js node r.js -o app.build_prod.js
REM call cleancss -o .\css\loadingStyle.min.css .\css\loadingStyle.css REM call cleancss -o .\css\loadingStyle.min.css .\css\loadingStyle.css
call cleancss -o .\css\style.min.css .\css\style.css call cleancss -o .\css\style.min.css .\css\style.css
pause
+57 -7
View File
@@ -3,18 +3,68 @@
height: 400px; height: 400px;
} }
.circle
{
position: relative;
top: -6px;
left: 15px;
width: 12px;
height: 12px;
border-radius: 12px;
font-size: 10px;
color: #fff;
line-height: 12px;
text-align: center;
background: red;
z-index: 1;
text-indent: 0;
}
.nav-glyphish-example .ui-btn { padding-top: 35px !important; } .nav-glyphish-example .ui-btn { padding-top: 35px !important; }
.nav-glyphish-example .ui-btn:after { 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; } .nav-glyphish-example .ui-btn:after { 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; }
.ui-icon-myHome:after { .ui-icon-myHome:after {
background: url("https://dl.dropboxusercontent.com/s/w5evmv0suijf2jd/house.png") 50% 50% no-repeat; background-size: 22px 22px; background: url("https://dl.dropboxusercontent.com/s/w5evmv0suijf2jd/house.png") 50% 50% no-repeat; background-size: 22px 22px;
margin-top: -15px !important; 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;
}
.notification:after {
background: url("https://dl.dropboxusercontent.com/s/afsciy4lipub4hf/notification.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;
}
#optionBtn:after {
background: url("https://dl.dropboxusercontent.com/s/gnlhujh5a86qdhi/property.png?dl=0") 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;
}
#favoriteBtn:after {
background: url("https://dl.dropboxusercontent.com/s/ptt4475xkrv0chu/favorite.png") 50% 50% no-repeat; background-size: 22px 22px;
margin-top: -15px !important;
width: 30px!important; height: 30px!important; box-shadow: none!important; -moz-box-shadow: none!important; -webkit-box-shadow: none!important; -webkit-border-radius: 0 !important; border-radius: 0 !important;
}
#scattaPhotoBtn:after {
background: url("https://dl.dropboxusercontent.com/s/kou4hv3nzau9161/camera.png") 50% 50% no-repeat; background-size: 22px 22px;
margin-top: -15px !important;
width: 30px!important; height: 30px!important; box-shadow: none!important; -moz-box-shadow: none!important; -webkit-box-shadow: none!important; -webkit-border-radius: 0 !important; border-radius: 0 !important;
}
#uploadPhotoBtn:after {
background: url("https://dl.dropboxusercontent.com/s/k65p3k0frglitu2/photo.png") 50% 50% no-repeat; background-size: 22px 22px;
margin-top: -15px !important;
width: 30px!important; height: 30px!important; box-shadow: none!important; -moz-box-shadow: none!important; -webkit-box-shadow: none!important; -webkit-border-radius: 0 !important; border-radius: 0 !important;
}
#backBtn:after { background: url("https://dl.dropboxusercontent.com/s/b5feph9hnl1wvep/previous.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;
} }
#favoriteBtn:after { background: url("https://dl.dropboxusercontent.com/s/ptt4475xkrv0chu/favorite.png") 50% 50% no-repeat; background-size: 22px 22px; }
#infoBtn:after { background: url("https://dl.dropboxusercontent.com/s/uoe0goxll3anh3x/info.png") 50% 50% no-repeat; background-size: 22px 22px; } #infoBtn:after { background: url("https://dl.dropboxusercontent.com/s/uoe0goxll3anh3x/info.png") 50% 50% no-repeat; background-size: 22px 22px; }
#backBtn:after { background: url("https://dl.dropboxusercontent.com/s/b5feph9hnl1wvep/previous.png") 50% 50% no-repeat; background-size: 16px 16px; }
#noteBtn:after { background: url("https://dl.dropboxusercontent.com/s/vtl7zq0b144aiep/blocco.png") 50% 50% no-repeat; background-size: 22px 22px; } #noteBtn:after { background: url("https://dl.dropboxusercontent.com/s/vtl7zq0b144aiep/blocco.png") 50% 50% no-repeat; background-size: 22px 22px; }
#indexBtn:after { background: url("https://dl.dropboxusercontent.com/s/pn37wqdw6z1rd8s/ricette.png") 50% 50% no-repeat; background-size: 22px 22px; } #indexBtn:after { background: url("https://dl.dropboxusercontent.com/s/pn37wqdw6z1rd8s/ricette.png") 50% 50% no-repeat; background-size: 22px 22px; }
#toolsBtn:after { background: url("https://dl.dropboxusercontent.com/s/8n0npemivbc6kuy/toolbox.png") 50% 50% no-repeat; background-size: 22px 22px; } #toolsBtn:after { background: url("https://dl.dropboxusercontent.com/s/8n0npemivbc6kuy/toolbox.png") 50% 50% no-repeat; background-size: 22px 22px; }
@@ -27,22 +77,22 @@
box-shadow: none!important; -moz-box-shadow: none!important; -webkit-box-shadow: none!important; -webkit-border-radius: 0 !important; border-radius: 0 !important;} box-shadow: none!important; -moz-box-shadow: none!important; -webkit-box-shadow: none!important; -webkit-border-radius: 0 !important; border-radius: 0 !important;}
.loginfb { .loginfb {
content: url('https://www.dropbox.com/s/vsc19gan0ihjptr/fblogin.png'); content: url('https://dl.dropboxusercontent.com/s/vsc19gan0ihjptr/fblogin.png');
width: 200px; width: 200px;
} }
.logoutfb { .logoutfb {
content: url('https://www.dropbox.com/s/sdbe56vqxeqevph/fblogout.png'); content: url('https://dl.dropboxusercontent.com/s/sdbe56vqxeqevph/fblogout.png');
width: 200px; width: 200px;
} }
.logingplus { .logingplus {
content: url('https://www.dropbox.com/s/k43w3cfzowlynhk/gpluslogin.png'); content: url('https://dl.dropboxusercontent.com/s/k43w3cfzowlynhk/gpluslogin.png');
width: 200px; width: 200px;
} }
.logoutgplus { .logoutgplus {
content: url('https://www.dropbox.com/s/nnprsunm8zg31en/gpluslogout.png'); content: url('https://dl.dropboxusercontent.com/s/nnprsunm8zg31en/gpluslogout.png');
width: 200px; width: 200px;
} }
+1 -1
View File
File diff suppressed because one or more lines are too long
+9 -9
View File
@@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>Il Lievitario</title> <title>Il Lievitario</title>
<meta name="google" value="notranslate" /> <meta name="google" value="notranslate" />
<meta http-equiv="expires" content="0"> <meta http-equiv="expires" content="0">
@@ -9,7 +9,7 @@
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no"> <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="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.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/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="css/IlLievitario.min.<?php echo filemtime('css/IlLievitario.min.css'); ?>.css">
<link rel="stylesheet" href="css/style.min.<?php echo filemtime('css/style.min.css'); ?>.css"> <link rel="stylesheet" href="css/style.min.<?php echo filemtime('css/style.min.css'); ?>.css">
@@ -24,15 +24,15 @@
<script type='text/javascript' src="js/openfb.<?php echo filemtime('js/openfb.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/opengplus.<?php echo filemtime('js/opengplus.js'); ?>.js"></script>
<script type='text/javascript'> <script type='text/javascript'>
if(openFB && window.location && if (openFB && window.location &&
window.location.href.indexOf("access_token") != -1 && window.location.href.indexOf("access_token") != -1 &&
window.localStorage.getItem("tryLogin")=="fb") { window.localStorage.getItem("tryLogin") == "fb") {
openFB.oauthCallback(window.location.href); openFB.oauthCallback(window.location.href);
window.location.href = "#syncView/tokenFound"; window.location.href = "#syncView/tokenFound";
} }
else if(openGPlus && window.location && else if (openGPlus && window.location &&
window.location.href.indexOf("access_token") != -1 && window.location.href.indexOf("access_token") != -1 &&
window.localStorage.getItem("tryLogin")=="gplus") { window.localStorage.getItem("tryLogin") == "gplus") {
openGPlus.oauthCallback(window.location.href); openGPlus.oauthCallback(window.location.href);
window.location.href = "#syncView/tokenFound"; window.location.href = "#syncView/tokenFound";
} }
@@ -40,8 +40,8 @@
</script> </script>
<!--<script type='text/javascript' src="js/manifest.<?php echo filemtime('js/manifest.js'); ?>.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" src="js/libs/require.<?php echo filemtime('js/libs/require.js'); ?>.js"></script>
</head> </head>
<body style="background-color: #1d1d1d;"> <body style="background-color: #1d1d1d;">
<?php include_once("analyticstracking.php") ?> <?php include_once("analyticstracking.php") ?>
<div id="loadingFrm" style="text-align: center;"> <div id="loadingFrm" style="text-align: center;">
<img src="https://dl.dropboxusercontent.com/s/6qrdp9mbi1rb92k/sfondo.png" class="loadingSfondo"> <img src="https://dl.dropboxusercontent.com/s/6qrdp9mbi1rb92k/sfondo.png" class="loadingSfondo">
@@ -50,5 +50,5 @@
<img src="https://dl.dropboxusercontent.com/s/mw90t9oay2v9jev/loading.gif"> <img src="https://dl.dropboxusercontent.com/s/mw90t9oay2v9jev/loading.gif">
</div> </div>
</div> </div>
</body> </body>
</html> </html>
+13 -9
View File
@@ -1,9 +1,14 @@
define(['jquery','underscore', 'backbone', 'router', 'classes/profile'],function define(['jquery','underscore', 'backbone', 'router', 'classes/profile'],
($, _, Backbone,Router, Profile) { function($, _, Backbone, Router, Profile) {
'use strict';
var init=function(){ var Application={
_retThis: function() {
return this;
},
router: null,
initialize:function(){
//create backbone router //create backbone router
var router=new Router(); this.router=new Router();
Backbone.history.start(); Backbone.history.start();
Backbone.emulateJSON = true; Backbone.emulateJSON = true;
var origin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '') + (location.pathname?location.pathname:''); var origin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '') + (location.pathname?location.pathname:'');
@@ -11,7 +16,7 @@ define(['jquery','underscore', 'backbone', 'router', 'classes/profile'],function
openGPlus.init('319140243944-qk0lfhgmi8shi4go97r83l69f1k0gdf4.apps.googleusercontent.com', origin, window.localStorage); openGPlus.init('319140243944-qk0lfhgmi8shi4go97r83l69f1k0gdf4.apps.googleusercontent.com', origin, window.localStorage);
//console.log("Backbone history start"); //console.log("Backbone history start");
// Trigger 'route' event on router instance. // Trigger 'route' event on router instance.
router.on('route', function(name, args) { this.router.on('route', function(name, args) {
//alert(name); //alert(name);
}); });
@@ -21,9 +26,8 @@ define(['jquery','underscore', 'backbone', 'router', 'classes/profile'],function
$('body').css('background-color', ''); $('body').css('background-color', '');
$('#loadingFrm').remove(); $('#loadingFrm').remove();
}
}; };
return { return Application._retThis();
initialize:init
};
}); });
+6 -1
View File
@@ -27,7 +27,8 @@ define(['jquery', 'backbone'],
"gender":null, "gender":null,
"tema": 'b', "tema": 'b',
"risRic": '10', "risRic": '10',
"type": null "type": null,
"lastNumRicette": null
}, },
isConnected: function(){ isConnected: function(){
@@ -64,12 +65,16 @@ define(['jquery', 'backbone'],
self.data.tema = response[0].TemaUI; self.data.tema = response[0].TemaUI;
self.data.risRic = response[0].RisultatiRicerca; self.data.risRic = response[0].RisultatiRicerca;
self.data.type = response[0].TipoAccesso; self.data.type = response[0].TipoAccesso;
self.data.lastNumRicette = response[0].NumRicette;
retBool = true; retBool = true;
} }
if(successFn) if(successFn)
successFn(retBool); successFn(retBool);
}, },
getLastNumRicette: function(){
return this.data.lastNumRicette;
},
getKeySave: function(){ getKeySave: function(){
return window.localStorage.getItem("KeySave"); return window.localStorage.getItem("KeySave");
}, },
+50
View File
@@ -0,0 +1,50 @@
/*
* 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.
*/
/**
* Created by Denis on 19/06/2014.
*/
define(['jquery', 'backbone','libs/fastclick', 'jqm', 'jQueryPlugins'],
function($, Backbone, FastClick){
var Utility = {
retMe: function(){
return this;
},
changePage: function(view){
//append to dom
$('body').append(view.$el);
$.mobile.pageContainer.pagecontainer ("change", $(view.el), {changeHash:false});
FastClick.attach(document.body);
$(":jqmData(role='page'):last").on("pageshow", function (event) {
if (view.onShowed !== null)
view.onShowed();
});
$('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);
},
focus: function(value, link){
var tip = $('#hover-test');
tip[0].data = tip[0].data || tip.html();
tip.html(link.title || 'value: ' + value);
}
});
}
};
return Utility.retMe();
});
+2 -1
View File
@@ -1,5 +1,6 @@
var pathJquery = "http://ajax.googleapis.com/ajax/libs/jquery/" + myManifest.Settings.JQueryVersion + "/jquery.min"; 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";
// "http://ajax.googleapis.com/ajax/libs/jquerymobile/"+ myManifest.Settings.JQueryMobileVersion + "/jquery.mobile.min";
requirejs.config({ requirejs.config({
baseUrl: 'js', baseUrl: 'js',
+3 -2
View File
@@ -1,5 +1,5 @@
define(['jquery', 'underscore', 'backbone','text!controls/header/headerTemplate.html'], define(['jquery', 'underscore', 'backbone','text!controls/header/headerTemplate.html', 'classes/profile'],
function($, _, Backbone, headerTemplate){ function($, _, Backbone, headerTemplate, Profile){
var header = Backbone.View.extend({ var header = Backbone.View.extend({
@@ -22,6 +22,7 @@ define(['jquery', 'underscore', 'backbone','text!controls/header/headerTemplate.
//append the compiled template into view div container //append the compiled template into view div container
this.$el.append(this.template( { "title":this.title } )); this.$el.append(this.template( { "title":this.title } ));
this.$el.find('#notifyBtn').closest('.ui-btn').hide();
//return to enable chained calls //return to enable chained calls
return this; return this;
} }
+2 -1
View File
@@ -1,2 +1,3 @@
<a href="#homeView" class="nav-glyphish-example ui-btn ui-icon-myHome ui-btn-icon-notext">Home</a> <a id="homeBtn" href="#homeView" class="nav-glyphish-example ui-btn ui-icon-myHome ui-btn-icon-notext">Home</a>
<h4><%= title %></h4> <h4><%= title %></h4>
<a href="#newsView" id="notifyBtn" class="ui-btn ui-icon-withoutCorner ui-btn-icon-notext">News<div class="circle">3</div></a>
+2 -1
View File
@@ -1,7 +1,8 @@
//1. load app.js, //1. load app.js,
//2. configure jquery mobile to prevent default JQM ajax navigation //2. configure jquery mobile to prevent default JQM ajax navigation
//3. bootstrapping application //3. bootstrapping application
define(["app", "jqm", "jqm-config", 'jQueryPlugins'], function( app ){ define(["app", "jqm", "jqm-config", 'jQueryPlugins'],
function( app ){
if(myManifest.Agent.browser.name == "IE Mobile" && myManifest.Agent.browser.version <= 9 ) { if(myManifest.Agent.browser.name == "IE Mobile" && myManifest.Agent.browser.version <= 9 ) {
window.location.href = "http://old.gruppolapastamadre.it"; window.location.href = "http://old.gruppolapastamadre.it";
} }
+6 -6
View File
@@ -1,20 +1,20 @@
var myManifest = { var myManifest = {
Debug: false, Debug: false,
Name: "Il Lievitario", Name: "Il Lievitario",
Version: "2.2.3", Version: "3.0.0.0",
Author: "Denis Ironi", Author: "Denis Ironi",
Settings: { Settings: {
//DefaultURL: "http://localhost:8081/Service", DefaultURL: "http://localhost:8081/Service",
DefaultURL: "http://app.gruppolapastamadre.it/Service", //DefaultURL: "http://dev.gruppolapastamadre.it/Service",
JQueryVersion: "1.11.1", JQueryVersion: "1.11.1",
JQueryMobileVersion: "1.4.3", JQueryMobileVersion: "1.4.5",
Device:{ Device: {
Width: (window.innerWidth > 0) ? window.innerWidth : screen.width, Width: (window.innerWidth > 0) ? window.innerWidth : screen.width,
Height: (window.innerHeight > 0) ? window.innerHeight : screen.height Height: (window.innerHeight > 0) ? window.innerHeight : screen.height
} }
}, },
Agent: (new UAParser()).getResult(), Agent: (new UAParser()).getResult(),
getUrlArg: function(){ getUrlArg: function() {
return (this.Debug ? this.Version + "." + (Math.random() * 1000) : this.Version); return (this.Debug ? this.Version + "." + (Math.random() * 1000) : this.Version);
} }
}; };
@@ -11,7 +11,7 @@ var CategoryItems=Backbone.Collection.extend({
model:Category, model:Category,
url: function() { url: function() {
return myManifest.Settings.DefaultURL + "/api/categoryitems/" + this.categoryId; return myManifest.Settings.DefaultURL + "/api/ricette/" + this.categoryId;
} }
}); });
+2 -2
View File
@@ -1,5 +1,5 @@
define(['jquery', 'underscore', 'backbone'], define(['jquery', 'underscore', 'backbone'],
function ($, _, Backbone){ function($, _, Backbone) {
var CategoryItem = Backbone.Model.extend({ var CategoryItem = Backbone.Model.extend({
//default attributes //default attributes
@@ -14,5 +14,5 @@ function ($, _, Backbone){
}); });
return CategoryItem; return CategoryItem;
}); });
+1 -1
View File
@@ -17,7 +17,7 @@ define(['app', 'jquery', 'underscore', 'backbone', 'model/categoryItem/categoryI
model:Category, model:Category,
url: function() { url: function() {
var u = myManifest.Settings.DefaultURL + "/api/categoryitems/search/" + this.numItems + var u = myManifest.Settings.DefaultURL + "/api/ricette/search/" + this.numItems +
"/" + this.dataFilter.categoryId + "/" + this.dataFilter.categoryId +
"/" + this.dataFilter.difficolta; "/" + this.dataFilter.difficolta;
if(this.dataFilter.titolo !== null) if(this.dataFilter.titolo !== null)
@@ -0,0 +1,21 @@
define(['app', 'jquery', 'underscore', 'backbone', 'model/lastRicette/lastRicetteModel'],
function (app, $, _, Backbone, LastRicette){
var lastRicette=Backbone.Collection.extend({
profileID: null,
initialize: function (options) {
this.profileID = options.profileID;
},
// Book is the model of the collection
model:LastRicette,
url: function() {
return myManifest.Settings.DefaultURL + "/api/ricette/lastinserted/" + this.profileID;
}
});
return lastRicette;
});
+18
View File
@@ -0,0 +1,18 @@
define(['jquery', 'underscore', 'backbone'],
function($, _, Backbone) {
var LastRicette = Backbone.Model.extend({
//default attributes
defaults: {
ricetta_id: "",
titolo: '',
autore: '',
valutazione: 0,
difficolta: 0,
categoria_name: ''
}
});
return LastRicette;
});
+15 -19
View File
@@ -1,49 +1,45 @@
define(['jquery', 'underscore', 'backbone','text!modules/category/categoryViewTemplate.html', 'text!modules/category/categoryItemTemplate.html', 'modules/base/baseView'], define(['jquery', 'underscore', 'backbone', 'text!modules/category/categoryViewTemplate.html', 'text!modules/category/categoryItemTemplate.html', 'modules/base/baseView'],
function($, _, Backbone, categoryViewTemplate, categoryItemTemplate, BaseView){ function($, _, Backbone, categoryViewTemplate, categoryItemTemplate, BaseView) {
var CategoryView = BaseView.extend({ var CategoryView = BaseView.extend({
collection: null, collection: null,
categoryName: null, categoryName: null,
//initialize template //initialize template
template:_.template(categoryViewTemplate), template: _.template(categoryViewTemplate),
itemtemplate:_.template(categoryItemTemplate), itemtemplate: _.template(categoryItemTemplate),
initialize: function(options) {
initialize: function (options) {
var self = this; var self = this;
CategoryView.__super__.initialize.call(this); CategoryView.__super__.initialize.call(this);
this.collection = options.collection; this.collection = options.collection;
this.categoryName = options.categoryName; this.categoryName = options.categoryName;
this.collection.fetch({ this.collection.fetch({
success: function(data, textStatus, jqXHR){ success: function(data, textStatus, jqXHR) {
self.renderItem(); self.renderItem();
} }
//success: function(){ self.renderItem(); } //success: function(){ self.renderItem(); }
}); });
}, },
renderItem: function() {
renderItem: function(){
var $ul = $('#allRicette'); var $ul = $('#allRicette');
var items = this.itemtemplate({data:this.collection.toJSON()}); var items = this.itemtemplate({data: this.collection.toJSON()});
$ul.html( items ); $ul.html(items);
$ul.listview( "refresh" ); $ul.listview("refresh");
$ul.trigger( "updatelayout"); $ul.trigger("updatelayout");
$.mobile.loading( 'hide' ); $.mobile.loading('hide');
//$( '[data-alpha="true"]' ).alphascroll(); //$( '[data-alpha="true"]' ).alphascroll();
}, },
//render the content into div of view //render the content into div of view
render: function(){ render: function() {
//this.header.title = "pippo"; //this.header.title = "pippo";
CategoryView.__super__.render.call(this); CategoryView.__super__.render.call(this);
//this.el is the root element of Backbone.View. By default, it is a div. //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. //$el is cached jQuery object for the view's element.
//append the compiled template into view div container //append the compiled template into view div container
this.$el.append(this.header.$el); this.$el.append(this.header.$el);
this.$el.append(this.template({ categoryName: this.categoryName })); this.$el.append(this.template({categoryName: this.categoryName}));
this.$el.append(this.footer.$el); this.$el.append(this.footer.$el);
//return to enable chained calls //return to enable chained calls
this.$el.find("#indexBtn").addClass("ui-btn-active"); this.$el.find("#indexBtn").addClass("ui-btn-active");
@@ -51,4 +47,4 @@ function($, _, Backbone, categoryViewTemplate, categoryItemTemplate, BaseView){
} }
}); });
return CategoryView; return CategoryView;
}); });
-498
View File
@@ -1,498 +0,0 @@
define(['jquery', 'underscore', 'backbone',
'text!modules/converter/converterViewTemplate.html',
'modules/base/baseView'],
function($, _, Backbone, converterViewTemplate, BaseView){
var ConverterView = BaseView.extend({
collection: null,
//initialize template
template:_.template(converterViewTemplate),
initialize: function (options) {
var self = this;
ConverterView.__super__.initialize.call(this);
//this.header.title = "pippo";
},
events: {
"click #calculate": "performCalcBtn",
"change #typeLvStart": "typeLvStartChanged"
},
performCalcBtn: function (e) {
e.preventDefault();
//this.calculateConvert();
this.$el.find("#inputForm").submit();
},
typeLvStartChanged: function(e){
e.preventDefault();
if(this.$el.find("#typeLvStart").val() == "ldbf" ||
this.$el.find("#typeLvStart").val() == "ldbs"){
}
else{
}
},
calculateConvert: function(){
var ret ="";
if(this.$el.find("#typeLvStart").val() == "ldbf" ||
this.$el.find("#typeLvStart").val() == "ldbs"){
this.$el.find("#qtaLvlAlt").val(this.impostaPmConsigliata());
ret += this.convertiLDB();
}
else{
this.$el.find("#qtaLvlAlt").val(this.impostaPmConsigliata());
ret += this.convertiPM();
}
this.$el.find('#result')[0].innerHTML = ret.replace(/<br>/g, "<br><br>");
this.$el.find('#popupConvertResult').popup("open");
},
convertiPM: function(){
// dichiaro e inizializzo la variabile che conterrà il risultato dell'elaborazione
var risultato = "";
// imposto come fissa al 50% l'idratazione della PM solida
var VidratazionePmSolida = 50;
// ottengo i valori scelti dall'utente
var vTipoPmPartenza = this.$el.find("#typeLvStart").val();
var vTipoPmFinale = "";
var vIdratazionePmFinale = 0;
var vIdratazionePmPartenza = 50; //parseInt(this.$el.find("#qtaLiquidi").val());
if(this.$el.find("#typeLvStart").val() == "lic100" )
vIdratazionePmPartenza = 100;
else if(this.$el.find("#typeLvStart").val() == "lic130" )
vIdratazionePmPartenza = 130;
var vQuantitaPmPartenza = parseInt(this.$el.find("#qtaLvStart").val());
var vQuantitaFarinaPartenza = parseInt(this.$el.find("#qtaFarina").val());
var vQuantitaAcquaPartenza = parseInt(this.$el.find("#qtaLiquidi").val());
var vQuantitaPmFinale = parseInt(this.$el.find("#qtaLvlAlt").val());
// Imposto di il tipo di PM finale in funzione di quello scelto come partenza
// e visualizzo o nascondo di conseguenza la select per l'idratazione
switch (this.$el.find("#typeLvDest").val()){
case "pm":
vTipoPmFinale = "SOLIDA";
vIdratazionePmFinale = 50;
break;
case "lic100":
vTipoPmFinale = "LIQUIDA";
vIdratazionePmFinale = 100;
break;
case "lic130":
vTipoPmFinale = "LIQUIDA";
vIdratazionePmFinale = 130;
break;
default:
vTipoPmFinale = "";
}
// elaborazione per PM finale SOLIDA
if (vTipoPmFinale == "SOLIDA") {
// quanta acqua c'è nella PM liquida di partenza?
var qAcquaPmPartenza = (vQuantitaPmPartenza / (100 + vIdratazionePmPartenza)) * vIdratazionePmPartenza;
qAcquaPmPartenza = qAcquaPmPartenza.toFixed(0);
// quanta farina c'è nella PM liquida di partenza?
var qFarinaPmPartenza = vQuantitaPmPartenza - qAcquaPmPartenza;
// quanta acqua c'è nella PM finale?
var qAcquaPmFinale = (vQuantitaPmFinale / (100 + VidratazionePmSolida)) * VidratazionePmSolida
qAcquaPmFinale = qAcquaPmFinale.toFixed(0);
// quanta farina c'è nella PM finale?
var qFarinaPmFinale = vQuantitaPmFinale - qAcquaPmFinale;
// come devo modificare l'acqua prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra l'acqua della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaAcquaPM = qAcquaPmPartenza - qAcquaPmFinale;
// ...e la aggiungo/tolgo all'acqua dell'impasto della ricetta originale
var qAcquaImpastoFinale = vQuantitaAcquaPartenza;
// se il delta acqua è negativo lo tolgo
// altrimenti lo aggiungo
if (deltaAcquaPM < 0) {
qAcquaImpastoFinale -= deltaAcquaPM;
}
else {
qAcquaImpastoFinale += deltaAcquaPM;
}
// come devo modificare la farina prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra la farina della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaFarinaPM = qFarinaPmPartenza - qFarinaPmFinale;
// ...e la aggiungo/tolgo alla farina dell'impasto della ricetta originale
var qFarinaImpastoFinale = vQuantitaFarinaPartenza;
// se il delta farina è negativo lo aggiungo
// altrimenti lo tolgo
if (deltaFarinaPM < 0) {
qFarinaImpastoFinale += deltaFarinaPM;
}
else {
qFarinaImpastoFinale -= deltaFarinaPM;
}
risultato += "PM solida gr " + vQuantitaPmFinale.toString();
risultato += "<br>";
risultato += "Farina gr " + qFarinaImpastoFinale.toString();
risultato += "<br>";
risultato += "Acqua gr " + qAcquaImpastoFinale.toString();
}
// elaborazione per PM finale LIQUIDA
if (vTipoPmFinale == "LIQUIDA"){
// CASO PM LIQUIDA FINALE AL 100%
// quanta acqua c'è nella PM solida iniziale?
var qAcquaPmPartenza = (vQuantitaPmPartenza / (100 + VidratazionePmSolida)) * VidratazionePmSolida
qAcquaPmPartenza = qAcquaPmPartenza.toFixed(0);
// quanta farina c'è nella PM solida iniziale?
var qFarinaPmPartenza = vQuantitaPmPartenza - qAcquaPmPartenza;
// quanta acqua c'è nella PM finale?
var qAcquaPmFinale = (vQuantitaPmFinale / (100 + 100)) * 100;
qAcquaPmFinale = qAcquaPmFinale.toFixed(0);
// quanta farina c'è nella PM finale?
var qFarinaPmFinale = vQuantitaPmFinale - qAcquaPmFinale;
// come devo modificare l'acqua prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra l'acqua della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaAcquaPM = qAcquaPmPartenza - qAcquaPmFinale;
// ...e la aggiungo/tolgo all'acqua dell'impasto della ricetta originale
var qAcquaImpastoFinale = vQuantitaAcquaPartenza;
// se il delta acqua è negativo lo aggiungo
// altrimenti lo tolgo
if (deltaAcquaPM < 0){
qAcquaImpastoFinale += deltaAcquaPM;
}
else{
qAcquaImpastoFinale -= deltaAcquaPM;
}
// come devo modificare la farina prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra la farina della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaFarinaPM = qFarinaPmPartenza - qFarinaPmFinale;
// ...e la aggiungo/tolgo alla farina dell'impasto della ricetta originale
var qFarinaImpastoFinale = vQuantitaFarinaPartenza;
// se il delta farina è negativo lo aggiungo
// altrimenti lo tolgo
if (deltaFarinaPM < 0){
qFarinaImpastoFinale -= deltaFarinaPM;
}
else{
qFarinaImpastoFinale += deltaFarinaPM;
}
if(vIdratazionePmFinale == 100) {
risultato += "PM liquida 100% gr " + vQuantitaPmFinale.toString();
risultato += "<br>";
risultato += "Farina gr " + qFarinaImpastoFinale.toString();
risultato += "<br>";
risultato += "Acqua gr " + qAcquaImpastoFinale.toString();
}
else {
// CASO PM LIQUIDA FINALE AL 130%
// quanta acqua c'è nella PM solida iniziale?
var qAcquaPmPartenza = (vQuantitaPmPartenza / (100 + VidratazionePmSolida)) * VidratazionePmSolida
qAcquaPmPartenza = qAcquaPmPartenza.toFixed(0);
// quanta farina c'è nella PM solida iniziale?
var qFarinaPmPartenza = vQuantitaPmPartenza - qAcquaPmPartenza;
// quanta acqua c'è nella PM finale?
var qAcquaPmFinale = (vQuantitaPmFinale / (100 + 130)) * 130;
qAcquaPmFinale = qAcquaPmFinale.toFixed(0);
// quanta farina c'è nella PM finale?
var qFarinaPmFinale = vQuantitaPmFinale - qAcquaPmFinale;
// come devo modificare l'acqua prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra l'acqua della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaAcquaPM = qAcquaPmPartenza - qAcquaPmFinale;
// ...e la aggiungo/tolgo all'acqua dell'impasto della ricetta originale
var qAcquaImpastoFinale = vQuantitaAcquaPartenza;
// se il delta acqua è negativo lo aggiungo
// altrimenti lo tolgo
if (deltaAcquaPM < 0) {
qAcquaImpastoFinale += deltaAcquaPM;
}
else {
qAcquaImpastoFinale -= deltaAcquaPM;
}
// come devo modificare la farina prevista dalla ricetta originale?
// devo aggiungere/togliere la differenza tra la farina della PM di partenza e quella finale
// quindi calcolo tale differenza...
var deltaFarinaPM = qFarinaPmPartenza - qFarinaPmFinale;
// ...e la aggiungo/tolgo alla farina dell'impasto della ricetta originale
var qFarinaImpastoFinale = vQuantitaFarinaPartenza;
// se il delta farina è negativo lo aggiungo
// altrimenti lo tolgo
if (deltaFarinaPM < 0) {
qFarinaImpastoFinale -= deltaFarinaPM;
}
else {
qFarinaImpastoFinale += deltaFarinaPM;
}
risultato += "PM liquida 130% gr " + vQuantitaPmFinale.toString();
risultato += "<br>";
risultato += "Farina gr " + qFarinaImpastoFinale.toString();
risultato += "<br>";
risultato += "Acqua gr " + qAcquaImpastoFinale.toString();
}
}
return risultato;
},
convertiLDB: function(){
// dichiaro e inizializzo la variabile che conterrà il risultato dell'elaborazione
var risultato = "";
// dichiaro e inizializzo la variabile che conterrà la quantità di farina da usare
var vQuantitaFarinaDaUsare = 0;
// dichiaro e inizializzo la variabile che conterrà la quantità di acqua da usare
var vQuantitaAcquaDaUsare = 0;
// dichiaro e inizializzo la variabile per la quantità di farina presente nella PM da usare
var qFarinaPmDaUsare = 0;
// dichiaro e inizializzo la variabile per la quantità di acqua presente nella PM da usare
var qAcquaPmDaUsare = 0;
// ricavo la quantità di LDB della ricetta originale
var vQuantitaLdbPartenza = parseInt(this.$el.find("#qtaLvStart").val());
// ricavo l'idratazione della PM da usare
var vIdratazionePmFinale = 50;
if(this.$el.find("#typeLvDest").val() == "lic100" )
vIdratazionePmFinale = 100;
else if(this.$el.find("#typeLvDest").val() == "lic130" )
vIdratazionePmFinale = 130;
// ricavo la quantità di farina della ricetta originale
var vQuantitaFarinaPartenza = parseInt(this.$el.find("#qtaFarina").val());
// ricavo la quantità di acqua della ricetta originale
var vQuantitaAcquaPartenza = parseInt(this.$el.find("#qtaLiquidi").val());
// ricavo la quantità di PM da usare
var vQuantitaPmDaUsare = parseInt(this.$el.find("#qtaLvlAlt").val());
// quanta acqua c'è nella PM da usare?
var qAcquaPmDaUsare = (vQuantitaPmDaUsare / (100 + vIdratazionePmFinale)) * vIdratazionePmFinale;
qAcquaPmDaUsare = qAcquaPmDaUsare.toFixed(0);
// ricavo la quantità di farina presente nella PM da usare
qFarinaPmDaUsare = vQuantitaPmDaUsare - qAcquaPmDaUsare;
// diminuisco la farina della ricetta originale di una quantità pari a quella presente nella PM da usare
vQuantitaFarinaDaUsare = vQuantitaFarinaPartenza - qFarinaPmDaUsare;
// diminuisco l'acqua della ricetta originale di una quantità pari a quella presente nella PM da usare
vQuantitaAcquaDaUsare = vQuantitaAcquaPartenza - qAcquaPmDaUsare;
// costruisco la stringa del risultato
risultato += "PM gr " + vQuantitaPmDaUsare.toString();
risultato += "<br>";
risultato += "Farina gr " + vQuantitaFarinaDaUsare.toString();
risultato += "<br>";
risultato += "Acqua gr " + vQuantitaAcquaDaUsare.toString();
return risultato;
},
impostaPmConsigliata: function(){
var dummy = "";
// dichiaro e inizializzo la variabile per la quantità consigliata di pasta madre
var vQuantitaPmConsigliata = 0;
if(this.$el.find("#typeLvStart").val() == "pm")
{
vQuantitaPmConsigliata = ((parseInt(this.$el.find("#qtaLvStart").val()) / 3) * 2);
}
else if(this.$el.find("#typeLvStart").val() == "lic100" ||
this.$el.find("#typeLvStart").val() == "lic130")
{
vQuantitaPmConsigliata = ((parseInt(this.$el.find("#qtaLvStart").val()) / 2) * 3);
}
else {
// dichiaro e inizializzo la variabile per la quantità di lievito di birra
var vQuantitaLdbPartenza = 0;
// dichiaro e inizializzo la variabile per il tipo di lievito di birra
var vTipoLdbPartenza = "";
// dichiaro e inizializzo la variabile per la quantità consigliata di pasta madre massima ammessa
var vQuantitaPmConsigliataMax = 0;
// imposto il rapporto percentuale di default PM solida/Farina... ma è solo orientativo
var rapportoPmSolidaFarina = 25;
// imposto il rapporto percentuale di default PM liquida 100%/Farina... ma è solo orientativo
var rapportoPm100Farina = 16.5;
// imposto il rapporto percentuale di default PM liquida 100%/Farina... ma è solo orientativo
var rapportoPm130Farina = 16.5;
// ricavo la quantità di farina della ricetta originale
var vQuantitaFarinaPartenza = parseInt(this.$el.find('#qtaFarina').val());
// ricavo l'idratazione della PM da usare
var vIdratazionePmFinale = 0;
switch (this.$el.find("#typeLvDest").val()) {
case "pm":
vTipoPmFinale = "SOLIDA";
vIdratazionePmFinale = 50;
break;
case "lic100":
vTipoPmFinale = "LIQUIDA";
vIdratazionePmFinale = 100;
break;
case "lic130":
vTipoPmFinale = "LIQUIDA";
vIdratazionePmFinale = 130;
break;
default:
vTipoPmFinale = "";
}
// altrimenti faccio il rapporto partendo dalla quantità del lievito di birra
// ricavo la quantità di lievito di birra
vQuantitaLdbPartenza = parseInt(this.$el.find('#qtaLvStart').val());
// ricavo il tipo di lievito di birra
vTipoLdbPartenza = this.$el.find("#typeLvStart").val();
if (!isNaN(vQuantitaLdbPartenza)) {
if (vQuantitaLdbPartenza > 0) {
if (vTipoLdbPartenza == "ldbs") {
// 6 ldb = 240 PM
vQuantitaPmConsigliata = (240 / 6) * vQuantitaLdbPartenza;
}
else {
// 15 ldb = 240 PM
vQuantitaPmConsigliata = (240 / 15) * vQuantitaLdbPartenza;
}
// SE IL RISULTATO OTTENUTO E' IRRAGIONEVOLE LO CORREGGO
switch (this.$el.find('#typeLvDest').val()) {
case "pm":
vQuantitaPmConsigliataMax = (vQuantitaFarinaPartenza / 100) * rapportoPmSolidaFarina;
break;
case "lic100":
vQuantitaPmConsigliataMax = (vQuantitaFarinaPartenza / 100) * rapportoPm100Farina;
break;
case "lic130":
vQuantitaPmConsigliataMax = (vQuantitaFarinaPartenza / 100) * rapportoPm130Farina;
break;
default:
vQuantitaPmConsigliataMax = 0;
}
if (vQuantitaPmConsigliata > vQuantitaPmConsigliataMax) {
vQuantitaPmConsigliata = vQuantitaPmConsigliataMax;
}
}
else {
vQuantitaPmConsigliata = 0;
alert("Impossibile calcolare\nAccertati di aver scritto bene la quantita'\ndi lievito di birra nella ricetta originale.");
}
}
else {
vQuantitaPmConsigliata = 0;
alert("Impossibile calcolare\nAccertati di aver scritto bene la quantita'\ndi lievito di birra nella ricetta originale.");
}
}
return vQuantitaPmConsigliata;
},
//render the content into div of view
render: function(){
//this.header.title = "pippo";
ConverterView.__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
var self = this;
this.$el.append(this.header.$el);
this.$el.append(this.template({ deviceWidth: myManifest.Settings.Device.Width }));
this.$el.append(this.footer.$el);
//this.$el.find("#popupConvertResult").css("max-width", myManifest.Settings.Device.Width + "px" );
jQuery.validator.addMethod("cRequired", $.validator.methods.required,
"Il campo è richiesto, si prega di completarlo");
jQuery.validator.addMethod("requireIf", function(value, element, params) {
if(self.$el.find('#typeLvStart').val() != "ldbf" &&
self.$el.find('#typeLvStart').val() != "ldbs")
{
return value!="";
}
return true;
}, jQuery.validator.format("Il campo è richiesto, si prega di completarlo"));
jQuery.validator.addClassRules("cRequireIf", {
requireIf: true
});
jQuery.validator.addClassRules("cRequired", {
cRequired: true
});
this.$el.find("#inputForm").validate({
submitHandler: function() {
self.calculateConvert();
}
});
this.$el.find("#moreBtn").addClass("ui-btn-active");
//$("#homeBtn").addClass("ui-btn-active");
//return to enable chained calls
return this;
}
});
return ConverterView;
});
@@ -1,57 +0,0 @@
<div data-role="content">
<h1>Convertitore</h1>
<form id="inputForm">
<label for="typeLvStart">Tipo lievito della ricetta originale:</label>
<select name="typeLvStart" id="typeLvStart" data-theme="a" class="cRequired">
<option value="">Selezionare il tipo di lievito</option>
<option value="ldbf">Lievito di Birra Fresco</option>
<option value="ldbs">Lievito di Birra Secco</option>
<option value="pm">PM Solida</option>
<option value="lic100">PM Liquida 100% (Li.Co.Li.)</option>
<option value="lic130">PM Liquida 130% (Li.Co.Li.)</option>
</select>
<br>
<label for="qtaLvStart">Lievito nella ricetta originale:</label>
<input type="number" data-clear-btn="false" name="qtaLvStart" id="qtaLvStart" value="" placeholder="Specificare quantità in grammi" data-theme="a" class="cRequired">
<br>
<label for="typeLvDest">Tipo lievito che si vuole utilizzare:</label>
<select name="typeLvDest" id="typeLvDest" data-theme="a" class="cRequired">
<option value="">Selezionare il tipo di lievito</option>
<option value="pm">PM Solida</option>
<option value="lic100">PM Liquida 100% (Li.Co.Li.)</option>
<option value="lic130">PM Liquida 130% (Li.Co.Li.)</option>
</select>
<br>
<label for="qtaFarina">Farina per l'impasto nella ricetta originale:</label>
<input type="number" data-clear-btn="false" name="qtaFarina" id="qtaFarina" value="" placeholder="Specificare quantità in grammi" data-theme="a" class="cRequired">
<br>
<label for="qtaLiquidi">Liquidi (acqua, latte...) per l'impasto nella ricetta originale:</label>
<input type="number" data-clear-btn="false" name="qtaLiquidi" id="qtaLiquidi" value="" placeholder="Specificare quantità in grammi" data-theme="a" class="cRequired">
<br>
<!-- <label for="qtaLvlAlt">Lievito alternativo rispetto alla ricetta originale che intendi usare:</label>-->
<input type="hidden" data-clear-btn="false" name="qtaLvlAlt" id="qtaLvlAlt" value="" placeholder="Specificare quantità in grammi" data-theme="a" disabled="disabled">
<br>
<button type="submit" id="calculate" class="ui-shadow ui-btn ui-corner-all" data-theme="a">Calcola</button>
</form>
<div data-role="popup" id="popupConvertResult" data-dismissible="false" style="width: 300px;max-width: <%= deviceWidth%>px">
<div data-role="header">
<h1>Conversione</h1>
</div>
<div role="main" class="ui-content">
<h3 class="ui-title" id="result" style="text-align: center;"></h3>
<p style="text-align: center;font-style: italic;"><br><br>IMPORTANTE<br><br>
La quantità consigliata è da ritenersi
<br>
assolutamente indicativa in quanto la scelta
<br>
dovrebbe essere fatta sulla base
<br>
dell'esperienza, del particolare impasto
<br>
e delle condizioni ambientali di temperatura
<br>
e umidità</p>
<a href="" class="ui-btn ui-corner-all ui-shadow ui-btn-b ui-icon-check" data-rel="back">Ok</a>
</div>
</div>
</div>
+21 -3
View File
@@ -1,5 +1,7 @@
define(['jquery', 'underscore', 'backbone','text!modules/home/homeViewTemplate.html', 'modules/base/baseView', 'classes/profile'], define(['jquery', 'underscore', 'backbone','text!modules/home/homeViewTemplate.html',
function($, _, Backbone, homeViewTemplate, BaseView, Profile){ 'modules/base/baseView', 'classes/profile', 'classes/utility', 'model/lastRicette/lastRicetteCollection', 'modules/lastricette/lastRicette'],
function($, _, Backbone, homeViewTemplate,
BaseView, Profile, Utility, LastRicetteCollection, LastRicette ){
var HomeView = BaseView.extend({ var HomeView = BaseView.extend({
@@ -12,7 +14,8 @@ define(['jquery', 'underscore', 'backbone','text!modules/home/homeViewTemplate.h
}, },
events: { events: {
"click #goFbGroup": "goFbGroup" "click #goFbGroup": "goFbGroup",
"click #notifyBtn": "onNotifyBtn"
}, },
goFbGroup: function(){ goFbGroup: function(){
@@ -20,6 +23,14 @@ define(['jquery', 'underscore', 'backbone','text!modules/home/homeViewTemplate.h
window.location.href = "https://www.facebook.com/groups/732844273469518/"; window.location.href = "https://www.facebook.com/groups/732844273469518/";
}, },
onNotifyBtn:function(){
var lastricette = new LastRicetteCollection();
// will render home view and navigate to homeView
var lastRicetteView=new LastRicette({ collection: lastricette});
//indexView.render();
lastRicetteView.bind('renderCompleted:Categories',Utility.changePage,this);
},
onShowed: function() onShowed: function()
{ {
if(window.localStorage.getItem("goFbGroup") !== "1") if(window.localStorage.getItem("goFbGroup") !== "1")
@@ -38,6 +49,13 @@ define(['jquery', 'underscore', 'backbone','text!modules/home/homeViewTemplate.h
this.$el.append(this.footer.$el); this.$el.append(this.footer.$el);
this.$el.find("#homeBtn").addClass("ui-btn-active"); this.$el.find("#homeBtn").addClass("ui-btn-active");
var lastNumRicette = Profile.getLastNumRicette();
//if( lastNumRicette > 0)
{
this.$el.find('#notifyBtn').closest('.ui-btn').show();
this.$el.find('#notifyBtn').addClass("notification");
this.$el.find('.circle').text(12);
}
//$("#homeBtn").addClass("ui-btn-active"); //$("#homeBtn").addClass("ui-btn-active");
//return to enable chained calls //return to enable chained calls
return this; return this;
+1 -1
View File
@@ -9,7 +9,7 @@
</div> </div>
<div data-role="popup" id="nuovoGruppo" data-history="false" data-dismissible="false"> <div data-role="popup" id="nuovoGruppo" data-history="false" data-dismissible="false">
<div data-role="header"><h1>IMPORTANTE</h1></div> <div data-role="header"><h1>IMPORTANTE</h1></div>
    <div role="main" class="ui-content"> <div role="main" class="ui-content">
<p style="text-align: center;font-style: italic;"> <p style="text-align: center;font-style: italic;">
<img src="https://dl.dropboxusercontent.com/s/xnbrbbe7eejkfv2/festa.png"><br><br> <img src="https://dl.dropboxusercontent.com/s/xnbrbbe7eejkfv2/festa.png"><br><br>
Le admin <br><br><b>Alessia, Elena e Francesca</b><br><br>hanno RIFONDATO IL GRUPPO!!<br> Le admin <br><br><b>Alessia, Elena e Francesca</b><br><br>hanno RIFONDATO IL GRUPPO!!<br>
+91 -23
View File
@@ -1,17 +1,14 @@
define(['jquery', 'underscore', 'backbone','text!modules/item/itemViewTemplate.html', 'modules/base/baseView', 'classes/profile'], define(['jquery', 'underscore', 'backbone', 'text!modules/item/itemViewTemplate.html', 'modules/base/baseView', 'classes/profile'],
function($, _, Backbone, itemViewTemplate, BaseView, Profile){ function($, _, Backbone, itemViewTemplate, BaseView, Profile) {
var ItemView = BaseView.extend({ var ItemView = BaseView.extend({
collRicetta: null, collRicetta: null,
collIngredienti: null, collIngredienti: null,
fetchedRicetta: false, fetchedRicetta: false,
fetchedIngredienti: false, fetchedIngredienti: false,
//initialize template //initialize template
template:_.template(itemViewTemplate), template: _.template(itemViewTemplate),
initialize: function(options) {
initialize: function (options) {
var self = this; var self = this;
ItemView.__super__.initialize.call(this); ItemView.__super__.initialize.call(this);
this.collRicetta = options.collRicetta; this.collRicetta = options.collRicetta;
@@ -26,23 +23,93 @@ define(['jquery', 'underscore', 'backbone','text!modules/item/itemViewTemplate.h
self.render(); self.render();
}}); }});
}, },
events: { events: {
"click #favoriteBtn": "favBtn", "click #favoriteBtn": "favBtn",
"click #backBtn": "backBtn" "click #optionBtn": "optionBtn",
"click #backBtn": "backBtn",
"click #scattaPhotoBtn": "scattaPhotoBtn",
"change #cameraFile": "cameraFileChanged",
"click #uploadPhotoBtn": "uploadPhotoBtn",
"change #galleyFile": "galleyFileChanged"
}, },
backBtn: function(e) {
backBtn:function(e){
e.preventDefault(); e.preventDefault();
window.history.back(); window.history.back();
}, },
optionBtn: function(e) {
e.preventDefault();
var self = this;
self.$el.find('#optionPopupDialog').popup("open");
},
scattaPhotoBtn: function(e) {
e.preventDefault();
var self = this;
favBtn:function(e){ if (!Profile.isConnected())
{
self.$el.find('#popupDialog').popup("open");
return;
}
$("#cameraFile").click();
},
uploadPhotoBtn: function(e) {
e.preventDefault();
var self = this;
if (!Profile.isConnected())
{
self.$el.find('#popupDialog').popup("open");
return;
}
$("#galleyFile").click();
},
loadPhoto: function(objInputFile){
var self = this;
self.$el.find('#optionPopupDialog').popup("close");
$.mobile.loading( "show", {
text: "Caricamento immagine in corso...",
textVisible: true,
theme: "a",
textonly: false
});
var ric = this.collRicetta.toJSON()[0];
var data = new FormData();
data.append("ricetta_id", ric.ricetta_id);
data.append("image", objInputFile[0].files[0]);
data.append("keyStore", Profile.getKeySave());
$.ajax({
url: myManifest.Settings.DefaultURL + "/api/photos",
cache: false,
contentType: false,
processData: false,
type: 'POST',
data: data,
success: function(msg) {
$.mobile.loading( "hide" );
alert("Immagine inviata con successo\n\nSarà cura degl'admin di validare la foto inviata");
objInputFile.val("");
}
});
},
galleyFileChanged: function(e) {
e.preventDefault();
this.loadPhoto($("#galleyFile"));
},
cameraFileChanged: function(e) {
e.preventDefault();
this.loadPhoto($("#cameraFile"));
},
favBtn: function(e) {
e.preventDefault(); e.preventDefault();
var self = this; var self = this;
var ric = this.collRicetta.toJSON()[0]; var ric = this.collRicetta.toJSON()[0];
if(!Profile.isConnected()) if (!Profile.isConnected())
{ {
self.$el.find('#popupDialog').popup("open"); self.$el.find('#popupDialog').popup("open");
return; return;
@@ -56,8 +123,8 @@ define(['jquery', 'underscore', 'backbone','text!modules/item/itemViewTemplate.h
); );
}, },
//render the content into div of view //render the content into div of view
render: function(){ render: function() {
if(this.fetchedIngredienti && this.fetchedRicetta ) if (this.fetchedIngredienti && this.fetchedRicetta)
{ {
ItemView.__super__.render.call(this); ItemView.__super__.render.call(this);
var self = this; var self = this;
@@ -75,12 +142,12 @@ define(['jquery', 'underscore', 'backbone','text!modules/item/itemViewTemplate.h
self.$arrayNavBar = self.$el.find('div[data-role="navbar"] a'); self.$arrayNavBar = self.$el.find('div[data-role="navbar"] a');
var favBtn = self.$el.find('#favoriteBtn'); var favBtn = self.$el.find('#favoriteBtn');
if(exist > 0) if (exist > 0)
favBtn.addClass('ui-disabled'); favBtn.addClass('ui-disabled');
self.$arrayNavBar.on("click", function(e){ self.$arrayNavBar.on("click", function(e) {
e.preventDefault(); e.preventDefault();
var index = jQuery.inArray( this , self.$arrayNavBar); var index = jQuery.inArray(this, self.$arrayNavBar);
self.goToContent(index); self.goToContent(index);
}); });
@@ -92,7 +159,10 @@ define(['jquery', 'underscore', 'backbone','text!modules/item/itemViewTemplate.h
var index = jQuery.inArray(this, self.$arrayContent); var index = jQuery.inArray(this, self.$arrayContent);
self.goToContent(index - 1 ); self.goToContent(index - 1 );
}); });
self.trigger("renderCompleted:Item",self); // self.$arrayContent.on("tap", function(e) {
// self.optionBtn(e);
// });
self.trigger("renderCompleted:Item", self);
} }
); );
@@ -106,8 +176,7 @@ define(['jquery', 'underscore', 'backbone','text!modules/item/itemViewTemplate.h
return this; return this;
} }
}, },
goToContent: function(newIndex)
goToContent:function(newIndex)
{ {
if(this.$arrayContent.length > newIndex && newIndex >= 0) if(this.$arrayContent.length > newIndex && newIndex >= 0)
{ {
@@ -115,8 +184,7 @@ define(['jquery', 'underscore', 'backbone','text!modules/item/itemViewTemplate.h
this.switchContent(); this.switchContent();
} }
}, },
switchContent: function() {
switchContent: function(){
this.$arrayContent.hide(); this.$arrayContent.hide();
this.$arrayNavBar.removeClass('ui-btn-active'); this.$arrayNavBar.removeClass('ui-btn-active');
this.$arrayNavBar.removeClass('ui-state-persist'); this.$arrayNavBar.removeClass('ui-state-persist');
+14 -2
View File
@@ -1,7 +1,7 @@
<div data-role="header" data-position="fixed" data-tap-toggle="false"> <div data-role="header" data-position="fixed" data-tap-toggle="false">
<a id="favoriteBtn" href="" data-role="button" class="ui-btn-left" data-icon="custom" style="font-size: x-small;">Agg. al Blocco</a> <a id="optionBtn" href="" class="ui-btn ui-icon-withoutCorner ui-btn-icon-notext"></a>
<h3 id='titoloRicetta'><%= unescape(ricetta.titolo)%></h3> <h3 id='titoloRicetta'><%= unescape(ricetta.titolo)%></h3>
<a id="backBtn" href="" data-role="button" class="ui-btn-right" data-icon="custom">Indietro</a> <a id="backBtn" href="" class="ui-btn ui-icon-withoutCorner ui-btn-icon-notext">Indietro</a>
</div> </div>
<div id="contentIngredienti" data-role="content"> <div id="contentIngredienti" data-role="content">
<h1>Ingredienti</h1> <h1>Ingredienti</h1>
@@ -46,6 +46,18 @@
<h1 id="linkFonte" style="padding: 0px;"><a target="_blank" href="<%= ricetta.link_fonte%>">Link Fonte</a></h1> <h1 id="linkFonte" style="padding: 0px;"><a target="_blank" href="<%= ricetta.link_fonte%>">Link Fonte</a></h1>
<% }%> <% }%>
</div> </div>
<div data-role="popup" id="optionPopupDialog">
<div data-role="header">
<h1>Opzioni</h1>
</div>
<div role="main" class="ui-content">
<a id="favoriteBtn" href="" class="ui-btn ui-icon-withoutCorner ui-btn-icon-left">Agg. al Blocco</a>
<a id="scattaPhotoBtn" href="" class="ui-btn ui-icon-withoutCorner ui-btn-icon-left">Scatta Foto</a>
<a id="uploadPhotoBtn" href="" class="ui-btn ui-icon-withoutCorner ui-btn-icon-left">Carica Foto</a>
<input id="cameraFile" type="file" accept="image/*" capture style="position:absolute; top:-100px; visibility: hidden;">
<input id="galleyFile" type="file" accept="image/*" style="position:absolute; top:-100px; visibility: hidden;">
</div>
</div>
<div data-role="popup" id="popupDialog"> <div data-role="popup" id="popupDialog">
<div data-role="header"> <div data-role="header">
<h1>Informazione</h1> <h1>Informazione</h1>
+49
View File
@@ -0,0 +1,49 @@
define(['jquery', 'underscore', 'backbone', 'text!modules/lastRicette/lastRicetteViewTemplate.html',
'text!modules/lastRicette/lastRicetteItemTemplate.html', 'modules/base/baseView'],
function($, _, Backbone, lastRicetteViewTemplate, lastRicetteItemTemplate, BaseView) {
var LastRicetteView = BaseView.extend({
collection: null,
//initialize template
template: _.template(lastRicetteViewTemplate),
itemtemplate: _.template(lastRicetteItemTemplate),
initialize: function(options) {
var self = this;
LastRicetteView.__super__.initialize.call(this);
this.collection = options.collection;
this.collection.fetch({
success: function(data, textStatus, jqXHR) {
self.renderItem();
}
//success: function(){ self.renderItem(); }
});
},
renderItem: function() {
var $ul = $('#allRicette');
var items = this.itemtemplate({data: this.collection.toJSON()});
$ul.html(items);
$ul.listview("refresh");
$ul.trigger("updatelayout");
$.mobile.loading('hide');
//$( '[data-alpha="true"]' ).alphascroll();
},
//render the content into div of view
render: function() {
//this.header.title = "pippo";
LastRicetteView.__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());
this.$el.append(this.footer.$el);
//return to enable chained calls
//this.$el.find("#indexBtn").addClass("ui-btn-active");
return this;
}
});
return LastRicetteView;
});
@@ -0,0 +1,6 @@
<% if(data.length == 0){ %>
<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>
<% }} %>
@@ -0,0 +1,5 @@
<div id="lastRicetteListContent" data-role="content">
<h1>Ultime Ricette Inserite</h1>
<ul id="allRicette" data-role="listview" data-autodividers="true" data-alpha="true" data-inset="true">
</ul>
</div>
+71 -92
View File
@@ -1,17 +1,17 @@
define(['jquery', 'underscore', 'backbone', define(['jquery', 'underscore', 'backbone',
'modules/home/home', 'modules/faq/faq', 'modules/index/index', 'modules/category/category', 'modules/item/item', 'modules/home/home','modules/faq/faq','modules/index/index', 'modules/category/category', 'modules/item/item',
'modules/about/about', 'modules/search/search', 'modules/search/found', 'modules/more/more', 'modules/note/note', 'modules/about/about', 'modules/search/search', 'modules/search/found', 'modules/more/more', 'modules/note/note',
'modules/sync/sync', 'modules/converter/converter', 'modules/donation/donation', 'modules/settings/settings', 'modules/sync/sync', 'modules/donation/donation','modules/settings/settings',
'model/note/noteCollection', 'model/category/categoryCollection', 'model/categoryItem/categoryItemCollection', 'model/note/noteCollection', 'model/category/categoryCollection','model/categoryItem/categoryItemCollection',
'model/item/itemCollection', 'model/item/ingredientiCollection', 'model/categoryItem/foundItemCollection', 'model/item/itemCollection','model/item/ingredientiCollection','model/categoryItem/foundItemCollection',
'libs/fastclick', 'jqm', 'jQueryPlugins'], 'classes/utility', 'jqm', 'jQueryPlugins'],
function ($, _, Backbone, function($, _, Backbone,
HomeView, FaqView, IndexView, CategoryView, ItemView, HomeView, FaqView, IndexView, CategoryView, ItemView,
AboutView, SearchView, FoundView, MoreView, NoteView, AboutView, SearchView, FoundView, MoreView, NoteView,
SyncView, ConverterView, DonationView, SettingsView, SyncView, DonationView, SettingsView,
NoteCollection, CategoryCollection, CategoryItemCollection, NoteCollection, CategoryCollection, CategoryItemCollection,
ItemCollection, IngredientiCollection, FoundItemCollection, ItemCollection, IngredientiCollection, FoundItemCollection,
FastClick) { Utility) {
'use strict'; 'use strict';
var Router = Backbone.Router.extend({ var Router = Backbone.Router.extend({
@@ -21,10 +21,10 @@ define(['jquery', 'underscore', 'backbone',
'homeView': 'showHome', //home view as well 'homeView': 'showHome', //home view as well
'faqView': 'showFaq', //home view as well 'faqView': 'showFaq', //home view as well
'indexView': 'showIndex', //home view as well 'indexView': 'showIndex', //home view as well
'category/:categoryName/:categoryId': 'showCategory', 'category/:categoryName/:categoryId' : 'showCategory',
'ricetta/:itemId': 'showItem', 'ricetta/:itemId' : 'showItem',
'aboutView': 'showAbout', 'aboutView' : 'showAbout',
'syncView(/)*founded': 'showSync', 'syncView(/)*founded' : 'showSync',
'noteView': 'showNote', 'noteView': 'showNote',
'searchView': 'showSearch', 'searchView': 'showSearch',
'settingsView': 'showSettings', 'settingsView': 'showSettings',
@@ -34,71 +34,81 @@ define(['jquery', 'underscore', 'backbone',
'moreView': 'showMore', 'moreView': 'showMore',
'*actions': 'defaultAction' //default action '*actions': 'defaultAction' //default action
}, },
defaultAction: function (actions) {
defaultAction: function(actions){
this.showHome(actions); this.showHome(actions);
}, },
showHome: function (actions) {
showHome:function(actions){
// will render home view and navigate to homeView // will render home view and navigate to homeView
var homeView = new HomeView(); var homeView=new HomeView();
homeView.render(); homeView.render();
this.changePage(homeView); this.changePage(homeView);
}, },
showSettings: function (actions) {
var settingsView = new SettingsView(); showSettings:function(actions){
var settingsView=new SettingsView();
settingsView.render(); settingsView.render();
this.changePage(settingsView); this.changePage(settingsView);
}, },
showDonation: function (actions) {
var donationView = new DonationView(); showDonation:function(actions){
var donationView=new DonationView();
donationView.render(); donationView.render();
this.changePage(donationView); this.changePage(donationView);
}, },
showAbout: function (actions) {
showAbout:function(actions){
// will render home view and navigate to homeView // will render home view and navigate to homeView
var aboutView = new AboutView(); var aboutView=new AboutView();
aboutView.render(); aboutView.render();
this.changePage(aboutView); this.changePage(aboutView);
}, },
showSync: function (actions) {
showSync:function(actions){
var option = {}; var option = {};
if (actions) if(actions)
{ {
option = {tokenFound: 1}; option = { tokenFound: 1 };
} }
// will render home view and navigate to homeView // will render home view and navigate to homeView
var syncView = new SyncView(option); var syncView=new SyncView(option);
syncView.render(); syncView.render();
this.changePage(syncView); this.changePage(syncView);
}, },
showNote: function (actions) {
showNote:function(actions){
var notes = new NoteCollection(); var notes = new NoteCollection();
// will render home view and navigate to homeView // will render home view and navigate to homeView
var noteView = new NoteView({collection: notes}); var noteView=new NoteView({collection: notes});
noteView.render(); noteView.render();
this.changePage(noteView); this.changePage(noteView);
}, },
showFaq: function (actions) {
showFaq:function(actions){
// will render home view and navigate to homeView // will render home view and navigate to homeView
var faqView = new FaqView(); var faqView=new FaqView();
faqView.render(); faqView.render();
this.changePage(faqView); this.changePage(faqView);
}, },
showIndex: function (actions) {
showIndex:function(actions){
var categories = new CategoryCollection(); var categories = new CategoryCollection();
// will render home view and navigate to homeView // will render home view and navigate to homeView
var indexView = new IndexView({collection: categories}); var indexView=new IndexView({ collection: categories});
//indexView.render(); //indexView.render();
indexView.bind('renderCompleted:Categories', this.changePage, this); indexView.bind('renderCompleted:Categories',this.changePage,this);
}, },
showCategory: function (categoryName, categoryId) {
var categories = new CategoryItemCollection({categoryId: categoryId}); showCategory: function(categoryName, categoryId){
var categories = new CategoryItemCollection({ categoryId: categoryId });
// will render home view and navigate to homeView // will render home view and navigate to homeView
var categoryView = new CategoryView({categoryName: categoryName, collection: categories}); var categoryView=new CategoryView({ categoryName: categoryName, collection: categories});
categoryView.render(); categoryView.render();
this.changePage(categoryView); this.changePage(categoryView);
$.mobile.loading('show', { $.mobile.loading( 'show', {
text: 'Caricamento categoria ' + categoryName + '...', text: 'Caricamento categoria ' + categoryName + '...',
textVisible: true, textVisible: true,
//theme: 'z', //theme: 'z',
@@ -106,98 +116,67 @@ define(['jquery', 'underscore', 'backbone',
}); });
//categoryView.bind('renderCompleted:Category',this.changePage,this); //categoryView.bind('renderCompleted:Category',this.changePage,this);
}, },
showItem: function (itemId) {
var item = new ItemCollection({ricettaId: itemId}); showItem: function(itemId){
var ingr = new IngredientiCollection({ricettaId: itemId}); var item = new ItemCollection({ ricettaId: itemId });
var ingr = new IngredientiCollection({ ricettaId: itemId });
// will render home view and navigate to homeView // will render home view and navigate to homeView
var itemView = new ItemView({ var itemView=new ItemView({
collRicetta: item, collRicetta: item,
collIngredienti: ingr collIngredienti: ingr
}); });
//indexView.render(); //indexView.render();
itemView.bind('renderCompleted:Item', this.changePage, this); itemView.bind('renderCompleted:Item',this.changePage,this);
}, },
showConverter: function () {
var converterView = new ConverterView(); showMore: function(){
converterView.render();
this.changePage(converterView);
},
showMore: function () {
var moreView = new MoreView(); var moreView = new MoreView();
moreView.render(); moreView.render();
this.changePage(moreView); this.changePage(moreView);
}, },
showSearch: function () {
showSearch: function(){
var categories = new CategoryCollection(); var categories = new CategoryCollection();
// will render home view and navigate to homeView // will render home view and navigate to homeView
var searchView = new SearchView({collection: categories}); var searchView=new SearchView({ collection: categories});
//indexView.render(); //indexView.render();
searchView.bind('renderCompleted:Search', this.changePage, this); searchView.bind('renderCompleted:Search',this.changePage,this);
}, },
searchFn: function (nresult, categoria, difficolta, titolo) {
searchFn: function(nresult, categoria, difficolta, titolo){
//console.log("Search by Titolo: " + titolo + ", Categoria: " + categoria + ", Difficoltà: " + difficolta); //console.log("Search by Titolo: " + titolo + ", Categoria: " + categoria + ", Difficoltà: " + difficolta);
var foundedItems = new FoundItemCollection({categoryId: categoria, difficolta: difficolta, titolo: titolo, nResult: nresult}); var foundedItems = new FoundItemCollection({ categoryId: categoria, difficolta: difficolta, titolo: titolo, nResult:nresult });
var foundView = new FoundView({collection: foundedItems}); var foundView = new FoundView({ collection: foundedItems });
foundView.render(); foundView.render();
this.changePage(foundView); this.changePage(foundView);
$.mobile.loading('show', { $.mobile.loading( 'show', {
text: 'Caricamento ricerca ricette...', text: 'Caricamento ricerca ricette...',
textVisible: true, textVisible: true,
//theme: 'z', //theme: 'z',
html: "" html: ""
}); });
}, },
init: true,
init:true,
//1. changePage will insert view into DOM and then call changePage to enhance and transition //1. changePage will insert view into DOM and then call changePage to enhance and transition
//2. for the first page, jQuery mobile will present and enhance automatically //2. for the first page, jQuery mobile will present and enhance automatically
//3. for the other page, we will call $.mobile.changePage() to enhance page and make transition //3. for the other page, we will call $.mobile.changePage() to enhance page and make transition
//4. argument 'view' is passed from event trigger //4. argument 'view' is passed from event trigger
changePage: function (view) { changePage:function (view) {
//append to dom Utility.changePage(view);
$('body').append(view.$el);
$.mobile.pageContainer.pagecontainer("change", $(view.el), {changeHash: false}); if(!this.init){
FastClick.attach(document.body); }else{
$(":jqmData(role='page'):last").on("pageshow", function (event) {
if (view.onShowed !== null)
view.onShowed();
});
$('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);
},
focus: function (value, link) {
var tip = $('#hover-test');
tip[0].data = tip[0].data || tip.html();
tip.html(link.title || 'value: ' + value);
}
// ,
// blur: function(value, link){
// var tip = $('#hover-test');
// $('#hover-test').html(tip[0].data || '');
// }
});
if (!this.init) {
} else {
this.init = false; this.init = false;
} }
} }
}); });
return Router; return Router;
}); });
+2
View File
@@ -1 +1,3 @@
browser=Chrome.INTEGRATED browser=Chrome.INTEGRATED
external.project.url=
server=INTERNAL
+13 -1
View File
@@ -2,6 +2,18 @@
<project-private xmlns="http://www.netbeans.org/ns/project-private/1"> <project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/> <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group/> <group>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/manifest.js</file>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/config.js</file>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/modules/lastricette/lastRicetteViewTemplate.html</file>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/router.js</file>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/app.js</file>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/classes/profile.js</file>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/jqm-config.js</file>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/modules/lastricette/lastRicette.js</file>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/main.js</file>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/modules/home/home.js</file>
<file>file:/E:/Sviluppo/IlLievitario/WebClient/js/modules/lastricette/lastRicetteItemTemplate.html</file>
</group>
</open-files> </open-files>
</project-private> </project-private>
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system">
<system systemId="http://www.sitemaps.org/schemas/sitemap/0.9" uri="www.sitemaps.org/schemas/sitemap/0.9/index"/>
</catalog>
@@ -0,0 +1,3 @@
<html><head><title>www.sitemaps.org - /schemas/sitemap/0.9/</title></head><body><H1>www.sitemaps.org - /schemas/sitemap/0.9/</H1><hr>
<pre><A HREF="/schemas/sitemap/">[To Parent Directory]</A><br><br> 2/1/2013 8:18 PM 2591 <A HREF="/schemas/sitemap/0.9/siteindex.xsd">siteindex.xsd</A><br> 2/1/2013 8:19 PM 4451 <A HREF="/schemas/sitemap/0.9/sitemap.xsd">sitemap.xsd</A><br></pre><hr></body></html>
+16 -2
View File
@@ -1,3 +1,17 @@
file.reference.IlLievitario-WebClient_210=. auxiliary.org-netbeans-modules-css-prep.less_2e_compiler_2e_options=
auxiliary.org-netbeans-modules-css-prep.less_2e_enabled=false
auxiliary.org-netbeans-modules-css-prep.less_2e_mappings=/less:/css
auxiliary.org-netbeans-modules-css-prep.sass_2e_compiler_2e_options=
auxiliary.org-netbeans-modules-css-prep.sass_2e_enabled=false
auxiliary.org-netbeans-modules-css-prep.sass_2e_mappings=/scss:/css
auxiliary.org-netbeans-modules-javascript2-requirejs.enabled=true
auxiliary.org-netbeans-modules-web-clientproject-api.js_2e_libs_2e_folder=app-build_prod/libs
browser.autorefresh.SL[/Browsers/webviewBrowser=true
browser.highlightselection.SL[/Browsers/webviewBrowser=true
config.folder=
file.reference.IlLievitario-WebClient=.
files.encoding=UTF-8 files.encoding=UTF-8
site.root.folder=${file.reference.IlLievitario-WebClient_210} site.root.folder=${file.reference.IlLievitario-WebClient}
start.file=index.php
test.folder=
web.context.root=/WebClient
+1 -1
View File
@@ -3,7 +3,7 @@
<type>org.netbeans.modules.web.clientproject</type> <type>org.netbeans.modules.web.clientproject</type>
<configuration> <configuration>
<data xmlns="http://www.netbeans.org/ns/clientside-project/1"> <data xmlns="http://www.netbeans.org/ns/clientside-project/1">
<name>WebClient_Manut</name> <name>Il Lievitario</name>
</data> </data>
</configuration> </configuration>
</project> </project>
+15 -14
View File
@@ -1,5 +1,5 @@
/** /**
* @license r.js 2.1.14 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. * @license r.js 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license. * Available via the MIT or new BSD license.
* see: http://github.com/jrburke/requirejs for details * see: http://github.com/jrburke/requirejs for details
*/ */
@@ -20,7 +20,7 @@ var requirejs, require, define, xpcUtil;
(function (console, args, readFileFunc) { (function (console, args, readFileFunc) {
var fileName, env, fs, vm, path, exec, rhinoContext, dir, nodeRequire, var fileName, env, fs, vm, path, exec, rhinoContext, dir, nodeRequire,
nodeDefine, exists, reqMain, loadedOptimizedLib, existsForNode, Cc, Ci, nodeDefine, exists, reqMain, loadedOptimizedLib, existsForNode, Cc, Ci,
version = '2.1.14', version = '2.1.15',
jsSuffixRegExp = /\.js$/, jsSuffixRegExp = /\.js$/,
commandOption = '', commandOption = '',
useLibLoaded = {}, useLibLoaded = {},
@@ -238,7 +238,7 @@ var requirejs, require, define, xpcUtil;
} }
/** vim: et:ts=4:sw=4:sts=4 /** vim: et:ts=4:sw=4:sts=4
* @license RequireJS 2.1.14 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. * @license RequireJS 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license. * Available via the MIT or new BSD license.
* see: http://github.com/jrburke/requirejs for details * see: http://github.com/jrburke/requirejs for details
*/ */
@@ -251,7 +251,7 @@ var requirejs, require, define, xpcUtil;
(function (global) { (function (global) {
var req, s, head, baseElement, dataMain, src, var req, s, head, baseElement, dataMain, src,
interactiveScript, currentlyAddingScript, mainScript, subPath, interactiveScript, currentlyAddingScript, mainScript, subPath,
version = '2.1.14', version = '2.1.15',
commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg, commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
jsSuffixRegExp = /\.js$/, jsSuffixRegExp = /\.js$/,
@@ -22949,7 +22949,7 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
//Like traverse, but skips if branches that would not be processed //Like traverse, but skips if branches that would not be processed
//after has application that results in tests of true or false boolean //after has application that results in tests of true or false boolean
//literal values. //literal values.
var key, child, result, i, params, param, var key, child, result, i, params, param, tempObject,
hasHas = options && options.has; hasHas = options && options.has;
fnExpScope = fnExpScope || emptyScope; fnExpScope = fnExpScope || emptyScope;
@@ -22979,14 +22979,14 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
//Build up a "scope" object that informs nested recurse calls if //Build up a "scope" object that informs nested recurse calls if
//the define call references an identifier that is likely a UMD //the define call references an identifier that is likely a UMD
//wrapped function expresion argument. //wrapped function expression argument.
if (object.type === 'ExpressionStatement' && object.expression && if (object.type === 'ExpressionStatement' && object.expression &&
object.expression.type === 'CallExpression' && object.expression.callee && object.expression.type === 'CallExpression' && object.expression.callee &&
object.expression.callee.type === 'FunctionExpression') { object.expression.callee.type === 'FunctionExpression') {
object = object.expression.callee; tempObject = object.expression.callee;
if (object.params && object.params.length) { if (tempObject.params && tempObject.params.length) {
params = object.params; params = tempObject.params;
fnExpScope = mixin({}, fnExpScope, true); fnExpScope = mixin({}, fnExpScope, true);
for (i = 0; i < params.length; i++) { for (i = 0; i < params.length; i++) {
param = params[i]; param = params[i];
@@ -23014,12 +23014,12 @@ define('parse', ['./esprimaAdapter', 'lang'], function (esprima, lang) {
//wrapping. //wrapping.
if (typeof result === 'string') { if (typeof result === 'string') {
if (hasProp(fnExpScope, result)) { if (hasProp(fnExpScope, result)) {
//Just a plain return, parsing can continue past this //result still in scope, keep jumping out indicating the
//point. //identifier still in use.
return; return result;
} }
return result; return;
} }
} }
}; };
@@ -26539,7 +26539,8 @@ define('build', function (require) {
"excludeShallow": true, "excludeShallow": true,
"insertRequire": true, "insertRequire": true,
"stubModules": true, "stubModules": true,
"deps": true "deps": true,
"mainConfigFile": true
}; };
for (i = 0; i < ary.length; i++) { for (i = 0; i < ary.length; i++) {
+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>