3 Commits
81 changed files with 2270 additions and 1783 deletions
View File
+19 -7
View File
@@ -1,14 +1,26 @@
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$ /NewMobileWebSite/index.php [L] RewriteRule ^index.html$ index.php [L]
RewriteRule ^js/libs/(.*)\.[0-9]+\.js$ /NewMobileWebSite/js/libs/$1.js [L] RewriteRule ^js/libs/(.*)\.[0-9]+\.js$ /WebClient_Manut/js/libs/$1.js [L]
RewriteRule ^js/(.*)\.[0-9]+\.js$ /NewMobileWebSite/js/$1.js [L] RewriteRule ^js/(.*)\.[0-9]+\.js$ /WebClient_Manut/js/$1.js [L]
RewriteRule ^css/(.*)\.[0-9]+\.css$ /NewMobileWebSite/css/$1.css [L] RewriteRule ^css/(.*)\.[0-9]+\.css$ /WebClient_Manut/css/$1.css [L]
RewriteRule ^Resources/img/(.*)\.[0-9]+\.png$ /NewMobileWebSite/Resources/img/$1.png [L] RewriteRule ^Resources/img/(.*)\.[0-9]+\.png$ /WebClient_Manut/Resources/img/$1.png [L]
RewriteRule ^Resources/img/(.*)\.[0-9]+\.gif$ /NewMobileWebSite/Resources/img/$1.gif [L] RewriteRule ^Resources/img/(.*)\.[0-9]+\.gif$ /WebClient_Manut/Resources/img/$1.gif [L]
RewriteRule ^Resources/icons/(.*)\.[0-9]+\.png$ /NewMobileWebSite/Resources/icons/$1.png [L] RewriteRule ^Resources/icons/(.*)\.[0-9]+\.png$ /WebClient_Manut/Resources/icons/$1.png [L]
</ifModule> </ifModule>
<ifModule mod_headers.c> <ifModule mod_headers.c>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 874 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

+3 -1
View File
@@ -1,4 +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 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 --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

+15 -55
View File
@@ -3,23 +3,6 @@
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; }
@@ -29,42 +12,10 @@ text-indent: 0;
width: 30px!important; height: 30px!important; margin-left: -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; 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; }
@@ -76,22 +27,22 @@ text-indent: 0;
#saveBtn:after { background: url("https://dl.dropboxusercontent.com/s/dsqkblkv9zgqyab/save.png") 50% 50% no-repeat; background-size: 22px 22px; #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;} 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:before {
content: url('https://dl.dropboxusercontent.com/s/vsc19gan0ihjptr/fblogin.png'); content: url('https://dl.dropboxusercontent.com/s/vsc19gan0ihjptr/fblogin.png');
width: 200px; width: 200px;
} }
.logoutfb { .logoutfb:before {
content: url('https://dl.dropboxusercontent.com/s/sdbe56vqxeqevph/fblogout.png'); content: url('https://dl.dropboxusercontent.com/s/sdbe56vqxeqevph/fblogout.png');
width: 200px; width: 200px;
} }
.logingplus { .logingplus:before {
content: url('https://dl.dropboxusercontent.com/s/k43w3cfzowlynhk/gpluslogin.png'); content: url('https://dl.dropboxusercontent.com/s/k43w3cfzowlynhk/gpluslogin.png');
width: 200px; width: 200px;
} }
.logoutgplus { .logoutgplus:before {
content: url('https://dl.dropboxusercontent.com/s/nnprsunm8zg31en/gpluslogout.png'); content: url('https://dl.dropboxusercontent.com/s/nnprsunm8zg31en/gpluslogout.png');
width: 200px; width: 200px;
} }
@@ -167,6 +118,15 @@ div.ricettaAutore{
-webkit-touch-callout: none; -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 { textarea {
-webkit-user-select: auto !important; -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/ */ /* 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.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(delete.png) no-repeat 0 -24px} 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(star.png) no-repeat 0 0px} div.star-rating,div.star-rating a{background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAwCAYAAAAYX/pXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUAAAaFSURBVEhLjZZrTFNnGMd7O6cXbrYsgoRvxo9GxC1Zsg98IEaMMSFmzTRsMidpshCMSJlfltR7QTMTXUDocFxkqdsQBCog4CjScqflUsUlBnVLVC4G2UUQ7Hv2f05beqgY9yaPPefw/v/v+zzv8/6iDEOem5ubVFJScqy2tnYEsWi326crKiounj17dmdDQ8MOm82WcuDAgQ8wV0khCIIsFDKTyaS7cuXKtcHBwdednZ3M6XSy0dFR4c6dO29cLteC1+ud6+vrm7l06ZLDarUWw/xcdnb2J7SwaJCfn7/t7t27syRyOBxsbGxMIJOhoSFhYmJiNfDND0OGhfx1dXUzKSkpaaJBWVnZnoGBgeXx8XGBxDS5sbHRLxVTuN1u5vF4BCwmLnLo0KES0aC6unofXFloIhndvHlzjQF9a2trE8iAdkfvR44cqRQNSktLd8FgSSqg1aTvra2trKWlRfw2PDwsdHV1sbS0tP2iQWFh4Ra4PqUaSEXSoHrQqvSMXfiLioquJycna0UDi8Wiq6ysvI1Kr66Kyq/ZgTQ6OjomzWbzZhKLBjhG7gIGTsBPWxsZGRGam5vFQlHOocKi0AyLzKMnDhqNxtVeoKHMy8sz37hxgyFXoaenh+GYWHd3N0N9GITiN6S5WFVVdYb6JiReNcDEglCOoUAaVEw6EXb58mWGZuvPyclJlopFA2yHRy9US8XSIOPe3l4hNTX1Sywmdt8ag6ysrGRs/xFtlQJHKkSeCO5JP8SqSLFokJ6evhVdNXvixAlG26V2bmpqYlRIyp3M0O6F64kpZHSeiYmJBdjJ/fr6+hU6czoJ2kl7ezvD7WQo3N71xBSBf1DI7du3J2VkZKAkRvupU6em0BtLqPocbqAtMzMzPlIYChryQq02qUmjOebi+RE3zy/2c9x0u1p9sSYqauc4x+1w6HQpx6Kj38GDTZt0t9Tqa//I5a//UKnYM6WSvcHG/lQq38wqFAvLMtncS7l8pk6jcVRHRRX3cdy5o3p9mAdWnW7bjEIxuyKXC7/DgMTPYfIv3sUMgwFj/wuFgmEhv5fjZj5OTAzwoJXn9/wtly/7MYnENNnHcX6pmILESzCdhjnNNev1AR44eX4fXFloIkMg7zUG9G1KpRJew4B2R+8nY2MDPGhWq3dhB0tSAa0mfX+I1ChIuAiTZ/h7RkJCgAfFMTFbnisUT0PbXy9eQURiekYa/hqtNsyDcplMhzRuv5SsuixJKTKeKBST52NjwzyAAfeTVnvhgUrlf4r8qFCT2C4Vip7pl4RIky3I5fNtGs3BXyS9QEN5Oi7OPMpxlKeAs2cePE/j16HRsL8UCvEb0lzsUqvPWNA3IbFoYITBLY2mILRSKFYQKCYdKavXahmarf8bg+FtHlhkMt7B89VSsTSoePMw+ighYX0e5MEV5/4IOVKeAnpCXF1q0qjRvJsHuzdu3Jqv18+WRUezeygetTMVEUVlc8idjtcaF/d+HuTq9fcnOG6F7gA1C+3mMU4Ft5Md37Dhf/AgPj7pU4PBeNhgsF/V6aZQ8aVunp+r0mptX8TEvIcHueBBGXhgBw/s4MGv4MGP4EEReNAAHtjAA1OYB6IqNEwm8MAGHnjBAyd44AIP7oEH3eDBAHjgAw+GwYPvwYNi8OBn8CA7wAPRwHocPOgFD3zgQRt4APFzN3gwihN7gF0G45kbPBgAD7zgQQN48GFimmjQWgEeeMGDSfDgfmCy7xaus0RMQeKlCfCgFzzAPPNhfYlo4LSDB15cnuBEBqPx5rUG9G2qEzyAAe2O3k8eja0UDZpt4IEHPJAIXgziZkreH3aABwiG58Ux8MAFHqQl7BcNir8FD1zgAXKXiqTxCvWgVekZafhrzgd4IBqUW8CDWvBgOLzqsi+cUmQ8cYIH5tjNophGuQk8+A48aAMPesCDcfCgBTxAoeiZfkmINNnCMHhwFTwwru0F5emj4EEjeNABHvSBBw3gQS94YAMPPOBBP3jgBg9qwQP0TVAXGCIPfgAPgjmGYsUnHp3gc4AHJeCBDTzIMSQHZeFhsYAH5eCBRCwNKt78EHiQGuBBQCUZeVngQRN44MENRKAnhJWIE2ksDfAgoIgYu9PBg6/Ag9PggQM8QDtPtoIH+J1D7nS81oK4wuD0t8cqDz4HD5rAA5w5NQvt5vFv4MF18ODrDXuD09858P8D8CADPPgMPDgDHtSAB7XggRU8yIyJD86LGDLZfy7jet43Ah+lAAAAAElFTkSuQmCC') 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.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 -24px!important} div.star-rating-on a{background-position:0 -16px!important}
div.star-rating-hover a{background-position:0 -48px} div.star-rating-hover a{background-position:0 -48px}
/* Read Only CSS */ /* Read Only CSS */
div.star-rating-readonly a{cursor:default !important} 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("loadingStyle.css");
@import url("base.style.css"); @import url("base.style.css");
@import url("mobile.style.css") screen; @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 name="google" value="notranslate" />
<meta http-equiv="expires" content="0"> <meta http-equiv="expires" content="0">
<meta http-equiv="Pragma" content="no-cache"> <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="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://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.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/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/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">
<link rel="shortcut icon" sizes="196x196" href="https://dl.dropboxusercontent.com/s/l26w7lk0zwnpehf/Icon_Android196.png"> <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" 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" /> <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 name="viewport" content="width=device-width, initial-scale=1, minimal-ui"/>
<meta http-equiv="Access-Control-Allow-Origin" content="*"/> <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/common.min.<?php echo filemtime('js/common.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'> <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"); ?> <?php echo file_get_contents("js/manifest.js"); ?>
</script> </script>
<!--<script type='text/javascript' src="js/manifest.<?php echo filemtime('js/manifest.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>
<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"> <div class="loadingSfondo">
<div class="loadingText"> <div class="loadingText">
<div style="color: #ffffff;"><b>Caricamento...</b></div> <div style="color: #ffffff;"><b>Caricamento...</b></div>
<img src="https://dl.dropboxusercontent.com/s/mw90t9oay2v9jev/loading.gif">
</div> </div>
</div> </div>
</body> </body>
+61 -16
View File
@@ -1,33 +1,78 @@
define(['jquery','underscore', 'backbone', 'router', 'classes/profile'], define(['jquery', 'underscore', 'backbone', 'router', 'classes/profile', 'classes/cache'], function
function($, _, Backbone, Router, Profile) { ($, _, Backbone, Router, Profile, Cache) {
'use strict';
var Application={ var init = function () {
_retThis: function() {
return this;
},
router: null,
initialize:function(){
//create backbone router //create backbone router
this.router=new Router(); var 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:'');
openFB.init('1466942266882168', origin, window.localStorage); hello.init({
openGPlus.init('319140243944-qk0lfhgmi8shi4go97r83l69f1k0gdf4.apps.googleusercontent.com', origin, window.localStorage); facebook: '1466942266882168',
google: '319140243944-qk0lfhgmi8shi4go97r83l69f1k0gdf4.apps.googleusercontent.com'
}, {display: 'page', scope: 'email'});
//console.log("Backbone history start"); //console.log("Backbone history start");
// Trigger 'route' event on router instance. // Trigger 'route' event on router instance.
this.router.on('route', function(name, args) { router.on('route', function (name, args) {
//alert(name); //alert(name);
}); });
Cache.checkCacheFromServer();
if (Profile.isConnected()) { if (Profile.isConnected()) {
Profile.loadProfile(); 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', ''); $('body').css('background-color', '');
$('#loadingFrm').remove(); $('#loadingFrm').remove();
}
}; };
return Application._retThis(); return {
initialize: init
};
}); });
+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;
});
+3 -13
View File
@@ -11,11 +11,6 @@ define(['jquery', 'backbone'],
if (this.data.type == null) if (this.data.type == null)
this.loadProfile(); this.loadProfile();
} }
else
{
this.data.risRic = window.localStorage.getItem("risRic");
this.data.tema = window.localStorage.getItem("tema");
}
return this; return this;
}, },
@@ -27,8 +22,7 @@ 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(){
@@ -65,16 +59,12 @@ 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");
}, },
@@ -83,12 +73,12 @@ define(['jquery', 'backbone'],
}, },
isGPlusConnected: function(){ isGPlusConnected: function(){
if(this.data.type == "gplus") if(this.data.type === "google")
return true; return true;
return false; return false;
}, },
isFbConnected: function(){ isFbConnected: function(){
if(this.data.type == "fb") if(this.data.type === "facebook")
return true; return true;
return false; return false;
}, },
-50
View File
@@ -1,50 +0,0 @@
/*
* 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();
});
+3
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,6 +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://code.jquery.com/mobile/"+ myManifest.Settings.JQueryMobileVersion + "/jquery.mobile-"+ myManifest.Settings.JQueryMobileVersion + ".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"; //var pathJqueryMobile = "http://ajax.googleapis.com/ajax/libs/jquerymobile/"+ myManifest.Settings.JQueryMobileVersion + "/jquery.mobile.min";
requirejs.config({ requirejs.config({
baseUrl: 'js', baseUrl: 'js',
+2 -3
View File
@@ -1,5 +1,5 @@
define(['jquery', 'underscore', 'backbone','text!controls/header/headerTemplate.html', 'classes/profile'], define(['jquery', 'underscore', 'backbone','text!controls/header/headerTemplate.html'],
function($, _, Backbone, headerTemplate, Profile){ function($, _, Backbone, headerTemplate){
var header = Backbone.View.extend({ var header = Backbone.View.extend({
@@ -22,7 +22,6 @@ 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;
} }
+1 -2
View File
@@ -1,3 +1,2 @@
<a id="homeBtn" href="#homeView" class="nav-glyphish-example ui-btn ui-icon-myHome ui-btn-icon-notext">Home</a> <a 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>
+27 -5
View File
@@ -4,7 +4,6 @@
/** /**
* @preserve FastClick: polyfill to remove click delays on browsers with touch UIs. * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
* *
* @version 1.0.3
* @codingstandard ftlabs-jsv2 * @codingstandard ftlabs-jsv2
* @copyright The Financial Times Limited [All Rights Reserved] * @copyright The Financial Times Limited [All Rights Reserved]
* @license MIT License (see LICENSE.txt) * @license MIT License (see LICENSE.txt)
@@ -96,6 +95,13 @@
*/ */
this.tapDelay = options.tapDelay || 200; this.tapDelay = options.tapDelay || 200;
/**
* The maximum time for a tap
*
* @type number
*/
this.tapTimeout = options.tapTimeout || 700;
if (FastClick.notNeeded(layer)) { if (FastClick.notNeeded(layer)) {
return; 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. * Android requires exceptions.
* *
* @type boolean * @type boolean
*/ */
var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0; var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;
/** /**
@@ -181,7 +193,7 @@
* *
* @type boolean * @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 * @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. * BlackBerry requires exceptions.
@@ -519,6 +531,10 @@
return true; return true;
} }
if ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {
return true;
}
// Reset to prevent wrong click cancel on input (issue #156). // Reset to prevent wrong click cancel on input (issue #156).
this.cancelNextClick = false; this.cancelNextClick = false;
@@ -776,6 +792,12 @@
return true; 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; return false;
}; };
+2
View File
File diff suppressed because one or more lines are too long
+1 -2
View File
@@ -1,8 +1,7 @@
//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'], define(["app", "jqm", "jqm-config", 'jQueryPlugins'], function( app ){
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";
} }
+4 -4
View File
@@ -1,13 +1,13 @@
var myManifest = { var myManifest = {
Debug: false, Debug: false,
Name: "Il Lievitario", Name: "Il Lievitario",
Version: "3.0.0.0", Version: "2.5.0",
Author: "Denis Ironi", Author: "Denis Ironi",
Settings: { Settings: {
DefaultURL: "http://localhost:8081/Service", //DefaultURL: "http://localhost:8081/Service_Manut",
//DefaultURL: "http://dev.gruppolapastamadre.it/Service", DefaultURL: "http://app.gruppolapastamadre.it/Service",
JQueryVersion: "1.11.1", JQueryVersion: "1.11.1",
JQueryMobileVersion: "1.4.5", JQueryMobileVersion: "1.4.3",
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
+4 -5
View File
@@ -1,11 +1,10 @@
define(['app', 'jquery', 'underscore', 'backbone', 'model/category/categoryModel'], define(['app', 'jquery', 'underscore', 'backbone', 'model/category/categoryModel', 'classes/cachedCollection'],
function (app, $, _, Backbone, Category){ function (app, $, _, Backbone, Category, CachedCollection) {
var Categories=Backbone.Collection.extend({
var Categories = CachedCollection.extend({
cacheName: "Category0",
// Book is the model of the collection // Book is the model of the collection
model: Category, model: Category,
url: function () { url: function () {
return myManifest.Settings.DefaultURL + "/api/categories"; return myManifest.Settings.DefaultURL + "/api/categories";
} }
@@ -1,17 +1,18 @@
define(['app', 'jquery', 'underscore', 'backbone', 'model/categoryItem/categoryItemModel'], define(['app', 'jquery', 'underscore', 'backbone', 'model/categoryItem/categoryItemModel', 'classes/cachedCollection'],
function (app, $, _, Backbone, Category){ function (app, $, _, Backbone, Category, CachedCollection){
var CategoryItems=Backbone.Collection.extend({ var CategoryItems=CachedCollection.extend({
categoryId: null, categoryId: null,
initialize: function (options) { initialize: function (options) {
this.categoryId = options.categoryId; this.categoryId = options.categoryId;
this.cacheName = "Category" + this.categoryId;
}, },
// Book is the model of the collection // Book is the model of the collection
model:Category, model:Category,
url: function() { url: function() {
return myManifest.Settings.DefaultURL + "/api/ricette/" + this.categoryId; return myManifest.Settings.DefaultURL + "/api/categoryitems/" + this.categoryId;
} }
}); });
+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/ricette/search/" + this.numItems + var u = myManifest.Settings.DefaultURL + "/api/categoryitems/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)
@@ -1,21 +0,0 @@
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
@@ -1,18 +0,0 @@
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;
});
+3 -3
View File
@@ -1,5 +1,5 @@
define(['jquery', 'underscore', 'backbone','text!modules/about/aboutViewTemplate.html', 'modules/base/baseView'], define(['jquery', 'underscore', 'backbone','text!modules/about/aboutViewTemplate.html', 'modules/base/baseView', 'classes/profile'],
function($, _, Backbone, aboutViewTemplate, BaseView){ function($, _, Backbone, aboutViewTemplate, BaseView, Profile){
var AboutView = BaseView.extend({ var AboutView = BaseView.extend({
@@ -18,7 +18,7 @@ function($, _, Backbone, aboutViewTemplate, BaseView){
//$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( { app: myManifest })); this.$el.append(this.template( { app: myManifest, profile: Profile }));
this.$el.append(this.footer.$el); this.$el.append(this.footer.$el);
this.$el.find("#infoBtn").addClass("ui-btn-active"); this.$el.find("#infoBtn").addClass("ui-btn-active");
//$("#homeBtn").addClass("ui-btn-active"); //$("#homeBtn").addClass("ui-btn-active");
+1
View File
@@ -7,6 +7,7 @@
<b>Sviluppatore:</b> <%= app.Author %><br><br> <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> <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> <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> <br><br>
<b>Ringraziamenti a</b> <b>Ringraziamenti a</b>
<br><br> <br><br>
+12
View File
@@ -28,6 +28,18 @@ define(['jquery', 'underscore', 'backbone', 'text!modules/category/categoryViewT
$ul.listview("refresh"); $ul.listview("refresh");
$ul.trigger("updatelayout"); $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'); $.mobile.loading('hide');
//$( '[data-alpha="true"]' ).alphascroll(); //$( '[data-alpha="true"]' ).alphascroll();
}, },
+13 -1
View File
@@ -2,5 +2,17 @@
<h1>Nessuna ricetta trovata</h1> <h1>Nessuna ricetta trovata</h1>
<%} else { for (var i = 0; i < data.length; i++) { %> <%} else { for (var i = 0; i < data.length; i++) { %>
<% var item = data[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>
<% }} %> <% }} %>
+498
View File
@@ -0,0 +1,498 @@
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;
});
@@ -0,0 +1,57 @@
<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>
+3 -21
View File
@@ -1,7 +1,5 @@
define(['jquery', 'underscore', 'backbone','text!modules/home/homeViewTemplate.html', define(['jquery', 'underscore', 'backbone','text!modules/home/homeViewTemplate.html', 'modules/base/baseView', 'classes/profile'],
'modules/base/baseView', 'classes/profile', 'classes/utility', 'model/lastRicette/lastRicetteCollection', 'modules/lastricette/lastRicette'], function($, _, Backbone, homeViewTemplate, BaseView, Profile){
function($, _, Backbone, homeViewTemplate,
BaseView, Profile, Utility, LastRicetteCollection, LastRicette ){
var HomeView = BaseView.extend({ var HomeView = BaseView.extend({
@@ -14,8 +12,7 @@ define(['jquery', 'underscore', 'backbone','text!modules/home/homeViewTemplate.h
}, },
events: { events: {
"click #goFbGroup": "goFbGroup", "click #goFbGroup": "goFbGroup"
"click #notifyBtn": "onNotifyBtn"
}, },
goFbGroup: function(){ goFbGroup: function(){
@@ -23,14 +20,6 @@ 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")
@@ -49,13 +38,6 @@ 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;
+2 -1
View File
@@ -9,12 +9,13 @@
</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>
<br>"<b>Gruppo La Pasta Madre</b>"<br> <br>"<b>Gruppo La Pasta Madre</b>"<br>
<br>vuoi chiedere di diventare membro? <br>vuoi chiedere di diventare membro?
<br>Se sei già membro premi si e poi torna indietro con il browser
</p> </p>
<p style="text-align: center;"> <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> <a id="goFbGroup" href="#" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b" data-rel="back">Si</a>
+8 -76
View File
@@ -2,12 +2,15 @@ define(['jquery', 'underscore', 'backbone', 'text!modules/item/itemViewTemplate.
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);
@@ -23,87 +26,17 @@ define(['jquery', 'underscore', 'backbone', 'text!modules/item/itemViewTemplate.
self.render(); self.render();
}}); }});
}, },
events: { events: {
"click #favoriteBtn": "favBtn", "click #favoriteBtn": "favBtn",
"click #optionBtn": "optionBtn", "click #backBtn": "backBtn"
"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;
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){ favBtn:function(e){
e.preventDefault(); e.preventDefault();
var self = this; var self = this;
@@ -159,9 +92,6 @@ define(['jquery', 'underscore', 'backbone', 'text!modules/item/itemViewTemplate.
var index = jQuery.inArray(this, self.$arrayContent); var index = jQuery.inArray(this, self.$arrayContent);
self.goToContent(index - 1 ); self.goToContent(index - 1 );
}); });
// self.$arrayContent.on("tap", function(e) {
// self.optionBtn(e);
// });
self.trigger("renderCompleted:Item",self); self.trigger("renderCompleted:Item",self);
} }
); );
@@ -176,6 +106,7 @@ define(['jquery', 'underscore', 'backbone', 'text!modules/item/itemViewTemplate.
return this; return this;
} }
}, },
goToContent:function(newIndex) goToContent:function(newIndex)
{ {
if(this.$arrayContent.length > newIndex && newIndex >= 0) if(this.$arrayContent.length > newIndex && newIndex >= 0)
@@ -184,6 +115,7 @@ define(['jquery', 'underscore', 'backbone', 'text!modules/item/itemViewTemplate.
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');
+3 -15
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="optionBtn" href="" class="ui-btn ui-icon-withoutCorner ui-btn-icon-notext"></a> <a id="favoriteBtn" href="" data-role="button" class="ui-btn-left" data-icon="custom" style="font-size: x-small;">Agg. al Blocco</a>
<h3 id='titoloRicetta'><%= unescape(ricetta.titolo)%></h3> <h3 id='titoloRicetta'><%= unescape(ricetta.titolo)%></h3>
<a id="backBtn" href="" class="ui-btn ui-icon-withoutCorner ui-btn-icon-notext">Indietro</a> <a id="backBtn" href="" data-role="button" class="ui-btn-right" data-icon="custom">Indietro</a>
</div> </div>
<div id="contentIngredienti" data-role="content"> <div id="contentIngredienti" data-role="content">
<h1>Ingredienti</h1> <h1>Ingredienti</h1>
@@ -15,7 +15,7 @@
liStyle="list-style-type: none;"; liStyle="list-style-type: none;";
qty = ""; qty = "";
nome_ingr = ""; 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> </p></center>
</div> </div>
<div id="contentProcedimento" data-role="content" style="display: none;"> <div id="contentProcedimento" data-role="content" style="display: none;">
@@ -46,18 +46,6 @@
<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
@@ -1,49 +0,0 @@
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;
});
@@ -1,6 +0,0 @@
<% 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>
<% }} %>
@@ -1,5 +0,0 @@
<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>
-9
View File
@@ -33,23 +33,14 @@ define(['jquery', 'underscore', 'backbone','text!modules/search/searchViewTempla
render: function () { render: function () {
//this.header.title = "pippo"; //this.header.title = "pippo";
SearchView.__super__.render.call(this); 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.header.$el);
this.$el.append(this.template({data:this.collection.toJSON()})); this.$el.append(this.template({data:this.collection.toJSON()}));
this.$el.append(this.footer.$el); this.$el.append(this.footer.$el);
this.$el.find('#nResult').val(Profile.data.risRic); this.$el.find('#nResult').val(Profile.data.risRic);
// this.$el.find('#search').on("click", function(e){
// e.preventDefault();
//
// });
this.trigger("renderCompleted:Search", this); this.trigger("renderCompleted:Search", this);
this.$el.find("#searchBtn").addClass("ui-btn-active"); this.$el.find("#searchBtn").addClass("ui-btn-active");
//$("#homeBtn").addClass("ui-btn-active");
//return to enable chained calls
return this; return this;
} }
}); });
+16 -45
View File
@@ -2,62 +2,42 @@ define(['jquery', 'underscore', 'backbone','text!modules/sync/syncViewTemplate.h
function ($, _, Backbone, syncViewTemplate, BaseView, Profile) { function ($, _, Backbone, syncViewTemplate, BaseView, Profile) {
var SyncView = BaseView.extend({ var SyncView = BaseView.extend({
//initialize template //initialize template
template: _.template(syncViewTemplate), template: _.template(syncViewTemplate),
initialize: function (options) { initialize: function (options) {
SyncView.__super__.initialize.call(this); SyncView.__super__.initialize.call(this);
if (options && if (options &&
options.tokenFound == 1) options.tokenFound == 1)
{ {
if(window.localStorage.getItem("tryLogin")=="fb") this.updateLoginBtn();
{
this.fbAfterLogin();
}
else if(window.localStorage.getItem("tryLogin")=="gplus")
{
this.gPlusAfterLogin();
}
} }
window.localStorage.setItem("tryLogin", null); window.localStorage.setItem("tryLogin", null);
}, },
events: { events: {
"click #backBtn": "backBtn", "click #backBtn": "backBtn",
"click #fblogin": "fbLogin", "click #fblogin": "fbLogin",
"click #gpluslogin": "gplusLogin", "click #gpluslogin": "gplusLogin",
"click #resetBtn": "resetBtn" "click #resetBtn": "resetBtn"
}, },
resetBtn: function (e) { resetBtn: function (e) {
e.preventDefault(); e.preventDefault();
Profile.setKeySave(null); Profile.setKeySave(null);
window.localStorage.setItem("hello", null);
Backbone.history.loadUrl(); Backbone.history.loadUrl();
}, },
backBtn: function (e) { backBtn: function (e) {
e.preventDefault(); e.preventDefault();
window.history.back(); window.history.back();
}, },
fbLogin: function (e) { fbLogin: function (e) {
var self = this; var self = this;
e.preventDefault(); e.preventDefault();
if(!Profile.isConnected()) { hello('facebook').login();
window.localStorage.setItem("tryLogin", "fb");
openFB.login('email');
}
else if(Profile.isConnected() && Profile.isFbConnected())
openFB.revokePermissions(function(){
Profile.setKeySave(null);
self.updateLoginBtn();
});
}, },
fbAfterLogin: function () fbAfterLogin: function ()
{ {
/*
var self = this; var self = this;
openFB.api({ openFB.api({
path: '/me', path: '/me',
@@ -76,25 +56,17 @@ define(['jquery', 'underscore', 'backbone','text!modules/sync/syncViewTemplate.h
self.updateLoginBtn(); self.updateLoginBtn();
}); });
}}); }});
*/
}, },
gplusLogin: function (e) { gplusLogin: function (e) {
var self = this; var self = this;
e.preventDefault(); e.preventDefault();
if(!Profile.isConnected()) { hello('google').login();
window.localStorage.setItem("tryLogin", "gplus");
openGPlus.login('email');
}
else if(Profile.isConnected() && Profile.isGPlusConnected())
openGPlus.revokePermissions(function(){
Profile.setKeySave(null);
self.updateLoginBtn();
});
}, },
gPlusAfterLogin: function () gPlusAfterLogin: function ()
{ {
/*
var self = this; var self = this;
openGPlus.api({ openGPlus.api({
path: 'people/me', path: 'people/me',
@@ -114,34 +86,33 @@ define(['jquery', 'underscore', 'backbone','text!modules/sync/syncViewTemplate.h
self.updateLoginBtn(); self.updateLoginBtn();
}); });
}}); }});
*/
}, },
updateLoginBtn: function () updateLoginBtn: function ()
{ {
if (Profile.isConnected()) { if (Profile.isConnected()) {
if (Profile.isFbConnected()) { if (Profile.isFbConnected()) {
this.$el.find("#fblogin").show(); this.$el.find("#fblogin").show();
this.$el.find("#gpluslogin").hide(); this.$el.find("#gpluslogin").hide();
this.$el.find("#loginFbImg").removeClass("loginfb"); this.$el.find("#fblogin").removeClass("loginfb");
this.$el.find("#loginFbImg").addClass("logoutfb"); this.$el.find("#fblogin").addClass("logoutfb");
} }
if (Profile.isGPlusConnected()) { if (Profile.isGPlusConnected()) {
this.$el.find("#gpluslogin").show(); this.$el.find("#gpluslogin").show();
this.$el.find("#fblogin").hide(); this.$el.find("#fblogin").hide();
this.$el.find("#loginGPlusImg").removeClass("logingplus"); this.$el.find("#gpluslogin").removeClass("logingplus");
this.$el.find("#loginGPlusImg").addClass("logoutgplus"); this.$el.find("#gpluslogin").addClass("logoutgplus");
} }
} }
else else
{ {
this.$el.find("#loginFbImg").removeClass("logoutfb"); this.$el.find("#fblogin").removeClass("logoutfb");
this.$el.find("#loginFbImg").addClass("loginfb"); this.$el.find("#fblogin").addClass("loginfb");
this.$el.find("#loginGPlusImg").removeClass("logoutgplus"); this.$el.find("#gpluslogin").removeClass("logoutgplus");
this.$el.find("#loginGPlusImg").addClass("logingplus"); this.$el.find("#gpluslogin").addClass("logingplus");
} }
}, },
//render the content into div of view //render the content into div of view
render: function () { render: function () {
var self = this; var self = this;
+2 -2
View File
@@ -3,8 +3,8 @@
<div style="text-align: center;"> <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> 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> 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="fblogin" href="" class="loginfb"></a><br>
<a id="gpluslogin" href=""><img id="loginGPlusImg" class="logingplus"/></a> <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"> <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> <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> <iframe id="urlLogin" src="" width="497" height="298" seamless=""></iframe>
+15 -3
View File
@@ -156,6 +156,19 @@ var openFB = (function () {
tokenStore['fbtoken'] = undefined; 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. * Lets you make any Facebook Graph API request.
* @param obj - Request configuration object. Can include: * @param obj - Request configuration object. Can include:
@@ -169,14 +182,13 @@ var openFB = (function () {
var method = obj.method || 'GET', var method = obj.method || 'GET',
params = obj.params || {}, params = obj.params || {},
xhr = new XMLHttpRequest(),
url; url;
params['access_token'] = tokenStore['fbtoken']; params['access_token'] = tokenStore['fbtoken'];
url = 'https://graph.facebook.com' + obj.path + '?' + toQueryString(params); url = 'https://graph.facebook.com' + obj.path + '?' + toQueryString(params);
xhr.onreadystatechange = function () { var xhr = createHttpReq( function() {
if (xhr.readyState === 4) { if (xhr.readyState === 4) {
if (xhr.status === 200) { if (xhr.status === 200) {
if (obj.success) obj.success(JSON.parse(xhr.responseText)); if (obj.success) obj.success(JSON.parse(xhr.responseText));
@@ -185,7 +197,7 @@ var openFB = (function () {
if (obj.error) obj.error(error); if (obj.error) obj.error(error);
} }
} }
}; });
xhr.open(method, url, true); xhr.open(method, url, true);
xhr.send(); xhr.send();
+16 -3
View File
@@ -157,6 +157,19 @@ var openGPlus = (function () {
tokenStore['gplustoken'] = undefined; 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. * Lets you make any Facebook Graph API request.
* @param obj - Request configuration object. Can include: * @param obj - Request configuration object. Can include:
@@ -171,14 +184,14 @@ var openGPlus = (function () {
var method = obj.method || 'GET', var method = obj.method || 'GET',
baseUrl = obj.baseUrl || 'https://www.googleapis.com/plus/v1/', baseUrl = obj.baseUrl || 'https://www.googleapis.com/plus/v1/',
params = obj.params || {}, params = obj.params || {},
xhr = new XMLHttpRequest(),
url; url;
params['access_token'] = tokenStore['gplustoken']; params['access_token'] = tokenStore['gplustoken'];
url = baseUrl + obj.path + '?' + toQueryString(params); url = baseUrl + obj.path + '?' + toQueryString(params);
xhr.onreadystatechange = function () { //xhr.onreadystatechange =
var xhr = createHttpReq(function () {
if (xhr.readyState === 4) { if (xhr.readyState === 4) {
if (xhr.status === 200) { if (xhr.status === 200) {
if (obj.success) obj.success(JSON.parse(xhr.responseText)); if (obj.success) obj.success(JSON.parse(xhr.responseText));
@@ -187,7 +200,7 @@ var openGPlus = (function () {
if (obj.error) obj.error(error); if (obj.error) obj.error(error);
} }
} }
}; });
xhr.open(method, url, true); xhr.open(method, url, true);
xhr.send(); xhr.send();
+44 -21
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/donation/donation','modules/settings/settings', 'modules/sync/sync', 'modules/converter/converter', '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',
'classes/utility', 'jqm', 'jQueryPlugins'], 'libs/fastclick', 'classes/cache', '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, DonationView, SettingsView, SyncView, ConverterView, DonationView, SettingsView,
NoteCollection, CategoryCollection, CategoryItemCollection, NoteCollection, CategoryCollection, CategoryItemCollection,
ItemCollection, IngredientiCollection, FoundItemCollection, ItemCollection, IngredientiCollection, FoundItemCollection,
Utility) { FastClick, Cache) {
'use strict'; 'use strict';
var Router = Backbone.Router.extend({ var Router = Backbone.Router.extend({
@@ -34,37 +34,31 @@ 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) { showSettings: function (actions) {
var settingsView = new SettingsView(); var settingsView = new SettingsView();
settingsView.render(); settingsView.render();
this.changePage(settingsView); this.changePage(settingsView);
}, },
showDonation: function (actions) { showDonation: function (actions) {
var donationView = new DonationView(); 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)
@@ -76,7 +70,6 @@ define(['jquery', 'underscore', 'backbone',
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
@@ -84,22 +77,21 @@ define(['jquery', 'underscore', 'backbone',
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) {
Cache.checkCacheFromServer();
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) { showCategory: function (categoryName, categoryId) {
var categories = new CategoryItemCollection({categoryId: categoryId}); var categories = new CategoryItemCollection({categoryId: categoryId});
// will render home view and navigate to homeView // will render home view and navigate to homeView
@@ -116,7 +108,6 @@ define(['jquery', 'underscore', 'backbone',
}); });
//categoryView.bind('renderCompleted:Category',this.changePage,this); //categoryView.bind('renderCompleted:Category',this.changePage,this);
}, },
showItem: function (itemId) { showItem: function (itemId) {
var item = new ItemCollection({ricettaId: itemId}); var item = new ItemCollection({ricettaId: itemId});
var ingr = new IngredientiCollection({ricettaId: itemId}); var ingr = new IngredientiCollection({ricettaId: itemId});
@@ -128,13 +119,16 @@ define(['jquery', 'underscore', 'backbone',
//indexView.render(); //indexView.render();
itemView.bind('renderCompleted:Item', this.changePage, this); itemView.bind('renderCompleted:Item', this.changePage, this);
}, },
showConverter: function () {
var converterView = new ConverterView();
converterView.render();
this.changePage(converterView);
},
showMore: function () { 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
@@ -142,7 +136,6 @@ define(['jquery', 'underscore', 'backbone',
//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);
@@ -159,16 +152,46 @@ define(['jquery', 'underscore', 'backbone',
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) {
Utility.changePage(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);
}
// ,
// blur: function(value, link){
// var tip = $('#hover-test');
// $('#hover-test').html(tip[0].data || '');
// }
});
if (!this.init) { if (!this.init) {
-2
View File
@@ -1,3 +1 @@
browser=Chrome.INTEGRATED browser=Chrome.INTEGRATED
external.project.url=
server=INTERNAL
+1 -13
View File
@@ -2,18 +2,6 @@
<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
@@ -1,4 +0,0 @@
<?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>
@@ -1,3 +0,0 @@
<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>
+2 -16
View File
@@ -1,17 +1,3 @@
auxiliary.org-netbeans-modules-css-prep.less_2e_compiler_2e_options= file.reference.IlLievitario-WebClient_210=.
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} site.root.folder=${file.reference.IlLievitario-WebClient_210}
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>Il Lievitario</name> <name>WebClient_Manut</name>
</data> </data>
</configuration> </configuration>
</project> </project>
+14 -15
View File
@@ -1,5 +1,5 @@
/** /**
* @license r.js 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. * @license r.js 2.1.14 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.15', version = '2.1.14',
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.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. * @license RequireJS 2.1.14 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.15', version = '2.1.14',
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, tempObject, var key, child, result, i, params, param,
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 expression argument. //wrapped function expresion 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') {
tempObject = object.expression.callee; object = object.expression.callee;
if (tempObject.params && tempObject.params.length) { if (object.params && object.params.length) {
params = tempObject.params; params = object.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)) {
//result still in scope, keep jumping out indicating the //Just a plain return, parsing can continue past this
//identifier still in use. //point.
return result; return;
} }
return; return result;
} }
} }
}; };
@@ -26539,8 +26539,7 @@ 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++) {
+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>