├── icons ├── min.png ├── moon.png ├── plus.png ├── sun.png ├── favicon.ico ├── offline.jpg ├── offline.png ├── plusRed.png ├── clockFace.png ├── menu │ ├── log.png │ ├── map.png │ ├── agenda.png │ ├── clock.png │ ├── light1.png │ ├── light2.png │ ├── light3.png │ ├── light4.png │ ├── meteo.png │ ├── pluie.png │ ├── chauffage.png │ └── domoticz.png ├── freeRemote.png ├── switchs │ ├── fun.png │ ├── mouv.png │ ├── rock.png │ ├── metal.png │ ├── movie.png │ ├── pause.png │ ├── reggae.png │ ├── sleep.png │ ├── spoon.png │ ├── baby48_On.png │ ├── cocktail2.png │ ├── pump48_On.png │ ├── baby48_Off.png │ ├── coffee48_On.png │ ├── pump48_Off.png │ ├── cocktail48_Off.png │ ├── cocktail48_On.png │ ├── coffee48_Off.png │ ├── mailbox48_Off.png │ ├── mailbox48_On.png │ ├── radiateur48_On.png │ ├── radiateur48_Off.png │ ├── thermostat48_Off.png │ └── thermostat48_On.png ├── meteo │ ├── day │ │ ├── Cle.png │ │ ├── Clo.png │ │ ├── Fog.png │ │ ├── Hai.png │ │ ├── Par.png │ │ ├── Rai.png │ │ ├── Sle.png │ │ ├── Sno.png │ │ ├── Sun.png │ │ └── Thu.png │ └── night │ │ ├── Cle.png │ │ ├── Clo.png │ │ ├── Fog.png │ │ ├── Hai.png │ │ ├── Par.png │ │ ├── Rai.png │ │ ├── Sle.png │ │ ├── Sno.png │ │ ├── Sun.png │ │ └── Thu.png └── wallpaper │ ├── pissanli.jpg │ ├── romantic.jpg │ ├── autumn_day.png │ ├── autumn_night.jpg │ ├── spring_day.jpg │ ├── spring_night.jpg │ ├── summer_day.jpg │ ├── summer_night.jpg │ ├── winter_day.jpg │ └── winter_night.jpg ├── fonts ├── arimo.woff ├── arimo.woff2 ├── digital.ttf ├── brankovic.ttf ├── fontawesome-webfont.woff └── fontawesome-webfont.woff2 ├── sounds ├── Bean.ogg ├── Bubble.ogg ├── Echo.ogg ├── Email.ogg ├── Pebble.ogg ├── Sprout.ogg ├── Arpeggio.ogg ├── Crystal.ogg ├── Schedule.ogg ├── Twinkle.ogg └── Ding_Dong.ogg ├── pages ├── freeRemote.html ├── canevas.html ├── iframe.html ├── trafic.html ├── page5.html ├── logs.html ├── page4.html ├── page1.html ├── page2.html ├── page3.html ├── pluie.html ├── clock.html └── meteo.html ├── js ├── jquery.ui.touch-punch.min.js ├── swipeSetup.js ├── jskata.nofreeze.min.js ├── mqtt.connect.js ├── full │ ├── jskata.nofreeze.js │ └── swipe.js ├── snow.js ├── swipe.min.js ├── frontpage_settings.js └── frontpage_settings_exemple.js ├── css ├── trafic.css ├── iframe.css ├── logs.css ├── page1.css ├── page2.css ├── page3.css ├── pluie.css ├── page4.css ├── meteo.css ├── page5.css ├── clock.css ├── global.css └── highcharts.css ├── README.md └── index.html /icons/min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/min.png -------------------------------------------------------------------------------- /icons/moon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/moon.png -------------------------------------------------------------------------------- /icons/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/plus.png -------------------------------------------------------------------------------- /icons/sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/sun.png -------------------------------------------------------------------------------- /fonts/arimo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/fonts/arimo.woff -------------------------------------------------------------------------------- /fonts/arimo.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/fonts/arimo.woff2 -------------------------------------------------------------------------------- /fonts/digital.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/fonts/digital.ttf -------------------------------------------------------------------------------- /icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/favicon.ico -------------------------------------------------------------------------------- /icons/offline.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/offline.jpg -------------------------------------------------------------------------------- /icons/offline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/offline.png -------------------------------------------------------------------------------- /icons/plusRed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/plusRed.png -------------------------------------------------------------------------------- /sounds/Bean.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Bean.ogg -------------------------------------------------------------------------------- /sounds/Bubble.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Bubble.ogg -------------------------------------------------------------------------------- /sounds/Echo.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Echo.ogg -------------------------------------------------------------------------------- /sounds/Email.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Email.ogg -------------------------------------------------------------------------------- /sounds/Pebble.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Pebble.ogg -------------------------------------------------------------------------------- /sounds/Sprout.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Sprout.ogg -------------------------------------------------------------------------------- /fonts/brankovic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/fonts/brankovic.ttf -------------------------------------------------------------------------------- /icons/clockFace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/clockFace.png -------------------------------------------------------------------------------- /icons/menu/log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/log.png -------------------------------------------------------------------------------- /icons/menu/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/map.png -------------------------------------------------------------------------------- /sounds/Arpeggio.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Arpeggio.ogg -------------------------------------------------------------------------------- /sounds/Crystal.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Crystal.ogg -------------------------------------------------------------------------------- /sounds/Schedule.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Schedule.ogg -------------------------------------------------------------------------------- /sounds/Twinkle.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Twinkle.ogg -------------------------------------------------------------------------------- /icons/freeRemote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/freeRemote.png -------------------------------------------------------------------------------- /icons/menu/agenda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/agenda.png -------------------------------------------------------------------------------- /icons/menu/clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/clock.png -------------------------------------------------------------------------------- /icons/menu/light1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/light1.png -------------------------------------------------------------------------------- /icons/menu/light2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/light2.png -------------------------------------------------------------------------------- /icons/menu/light3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/light3.png -------------------------------------------------------------------------------- /icons/menu/light4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/light4.png -------------------------------------------------------------------------------- /icons/menu/meteo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/meteo.png -------------------------------------------------------------------------------- /icons/menu/pluie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/pluie.png -------------------------------------------------------------------------------- /icons/switchs/fun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/fun.png -------------------------------------------------------------------------------- /icons/switchs/mouv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/mouv.png -------------------------------------------------------------------------------- /icons/switchs/rock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/rock.png -------------------------------------------------------------------------------- /pages/freeRemote.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/pages/freeRemote.html -------------------------------------------------------------------------------- /sounds/Ding_Dong.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/sounds/Ding_Dong.ogg -------------------------------------------------------------------------------- /icons/menu/chauffage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/chauffage.png -------------------------------------------------------------------------------- /icons/menu/domoticz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/menu/domoticz.png -------------------------------------------------------------------------------- /icons/meteo/day/Cle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/day/Cle.png -------------------------------------------------------------------------------- /icons/meteo/day/Clo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/day/Clo.png -------------------------------------------------------------------------------- /icons/meteo/day/Fog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/day/Fog.png -------------------------------------------------------------------------------- /icons/meteo/day/Hai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/day/Hai.png -------------------------------------------------------------------------------- /icons/meteo/day/Par.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/day/Par.png -------------------------------------------------------------------------------- /icons/meteo/day/Rai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/day/Rai.png -------------------------------------------------------------------------------- /icons/meteo/day/Sle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/day/Sle.png -------------------------------------------------------------------------------- /icons/meteo/day/Sno.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/day/Sno.png -------------------------------------------------------------------------------- /icons/meteo/day/Sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/day/Sun.png -------------------------------------------------------------------------------- /icons/meteo/day/Thu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/day/Thu.png -------------------------------------------------------------------------------- /icons/switchs/metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/metal.png -------------------------------------------------------------------------------- /icons/switchs/movie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/movie.png -------------------------------------------------------------------------------- /icons/switchs/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/pause.png -------------------------------------------------------------------------------- /icons/switchs/reggae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/reggae.png -------------------------------------------------------------------------------- /icons/switchs/sleep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/sleep.png -------------------------------------------------------------------------------- /icons/switchs/spoon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/spoon.png -------------------------------------------------------------------------------- /icons/meteo/night/Cle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/night/Cle.png -------------------------------------------------------------------------------- /icons/meteo/night/Clo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/night/Clo.png -------------------------------------------------------------------------------- /icons/meteo/night/Fog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/night/Fog.png -------------------------------------------------------------------------------- /icons/meteo/night/Hai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/night/Hai.png -------------------------------------------------------------------------------- /icons/meteo/night/Par.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/night/Par.png -------------------------------------------------------------------------------- /icons/meteo/night/Rai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/night/Rai.png -------------------------------------------------------------------------------- /icons/meteo/night/Sle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/night/Sle.png -------------------------------------------------------------------------------- /icons/meteo/night/Sno.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/night/Sno.png -------------------------------------------------------------------------------- /icons/meteo/night/Sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/night/Sun.png -------------------------------------------------------------------------------- /icons/meteo/night/Thu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/meteo/night/Thu.png -------------------------------------------------------------------------------- /icons/switchs/baby48_On.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/baby48_On.png -------------------------------------------------------------------------------- /icons/switchs/cocktail2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/cocktail2.png -------------------------------------------------------------------------------- /icons/switchs/pump48_On.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/pump48_On.png -------------------------------------------------------------------------------- /icons/switchs/baby48_Off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/baby48_Off.png -------------------------------------------------------------------------------- /icons/switchs/coffee48_On.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/coffee48_On.png -------------------------------------------------------------------------------- /icons/switchs/pump48_Off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/pump48_Off.png -------------------------------------------------------------------------------- /icons/wallpaper/pissanli.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/wallpaper/pissanli.jpg -------------------------------------------------------------------------------- /icons/wallpaper/romantic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/wallpaper/romantic.jpg -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /icons/switchs/cocktail48_Off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/cocktail48_Off.png -------------------------------------------------------------------------------- /icons/switchs/cocktail48_On.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/cocktail48_On.png -------------------------------------------------------------------------------- /icons/switchs/coffee48_Off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/coffee48_Off.png -------------------------------------------------------------------------------- /icons/switchs/mailbox48_Off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/mailbox48_Off.png -------------------------------------------------------------------------------- /icons/switchs/mailbox48_On.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/mailbox48_On.png -------------------------------------------------------------------------------- /icons/switchs/radiateur48_On.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/radiateur48_On.png -------------------------------------------------------------------------------- /icons/wallpaper/autumn_day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/wallpaper/autumn_day.png -------------------------------------------------------------------------------- /icons/wallpaper/autumn_night.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/wallpaper/autumn_night.jpg -------------------------------------------------------------------------------- /icons/wallpaper/spring_day.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/wallpaper/spring_day.jpg -------------------------------------------------------------------------------- /icons/wallpaper/spring_night.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/wallpaper/spring_night.jpg -------------------------------------------------------------------------------- /icons/wallpaper/summer_day.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/wallpaper/summer_day.jpg -------------------------------------------------------------------------------- /icons/wallpaper/summer_night.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/wallpaper/summer_night.jpg -------------------------------------------------------------------------------- /icons/wallpaper/winter_day.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/wallpaper/winter_day.jpg -------------------------------------------------------------------------------- /icons/wallpaper/winter_night.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/wallpaper/winter_night.jpg -------------------------------------------------------------------------------- /js/jquery.ui.touch-punch.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/js/jquery.ui.touch-punch.min.js -------------------------------------------------------------------------------- /icons/switchs/radiateur48_Off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/radiateur48_Off.png -------------------------------------------------------------------------------- /icons/switchs/thermostat48_Off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/thermostat48_Off.png -------------------------------------------------------------------------------- /icons/switchs/thermostat48_On.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vil1driver/monitor/HEAD/icons/switchs/thermostat48_On.png -------------------------------------------------------------------------------- /css/trafic.css: -------------------------------------------------------------------------------- 1 | #map { 2 | /*width: 935px;*/ 3 | width: 885px; 4 | height: 505px; 5 | } 6 | 7 | 8 | .avoid-clicks { 9 | pointer-events: none; 10 | } 11 | 12 | @media screen and (min-height: 610px) { 13 | #map 14 | { 15 | height: 590px; 16 | } 17 | } -------------------------------------------------------------------------------- /css/iframe.css: -------------------------------------------------------------------------------- 1 | iframe 2 | { 3 | border-width: 0; 4 | /*width: 935px;*/ 5 | width: 885px; 6 | height: 505px; 7 | frameborder: 0; 8 | scrolling: no; 9 | } 10 | 11 | @media screen and (min-height: 610px) { 12 | iframe 13 | { 14 | height: 590px; 15 | } 16 | } 17 | 18 | .avoid-clicks 19 | { 20 | pointer-events: none; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Custom page for Domoticz 2 | 3 | 4 | 5 | 6 | 7 | 8 | # Usage 9 | 10 |
http://easydomoticz.com/forum/viewtopic.php?f=17&t=331
-------------------------------------------------------------------------------- /pages/canevas.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 |
8 |
9 | 10 | 11 | 16 | 17 | 18 |
19 |
20 | 21 | -------------------------------------------------------------------------------- /pages/iframe.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 | 17 | 18 |
19 |
20 | 21 |
22 |
23 | 24 | 25 | 26 | 27 |
28 |
29 | 30 | -------------------------------------------------------------------------------- /js/swipeSetup.js: -------------------------------------------------------------------------------- 1 | // swipe function 2 | var autoRestart; 3 | if (delai == 0){ 4 | autoRestart = false; 5 | }else{ 6 | autoRestart = true; 7 | } 8 | var mySwipe = {}; 9 | mySwipe = Swipe(document.getElementById('slider'),{ 10 | startSlide: 0, 11 | speed: speed, 12 | auto: delai, 13 | direction: direction, 14 | autoRestart: autoRestart, 15 | continuous: true, 16 | draggable: false, 17 | disableScroll: false, 18 | stopPropagation: true 19 | }); 20 | 21 | mySwipe.setup(); 22 | 23 | // swipe on keypad 24 | $("body").keydown(function(e) { 25 | if(e.keyCode === 37) { // left key 26 | mySwipe.prev(); 27 | } else if(e.keyCode === 39) { // right key 28 | mySwipe.next(); 29 | } 30 | }); 31 | 32 | // swipe on mouse wheel 33 | $(window).bind('mousewheel DOMMouseScroll', function(event){ 34 | if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) { 35 | mySwipe.prev(); 36 | } 37 | else { 38 | mySwipe.next(); 39 | } 40 | }); -------------------------------------------------------------------------------- /pages/trafic.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 29 | 30 | 31 |
32 |
33 | 34 | 35 | 40 | 41 |
42 |
43 |
44 |
45 |
46 | 47 | 48 |
49 |
50 | 51 | -------------------------------------------------------------------------------- /css/logs.css: -------------------------------------------------------------------------------- 1 | #showlog 2 | { 3 | /*width:950px;*/ 4 | width:880px; 5 | height:490px; 6 | overflow-y:scroll; 7 | padding: 10px; 8 | font-family: arimo; 9 | font-weight: normal; 10 | font-size: 17px; 11 | text-align:left; 12 | color: #F2DDB3; 13 | text-shadow: 1px 1px 4px black; 14 | } 15 | 16 | #ls_logs1, #ls_logs2, #ls_logs3, #ls_logs4, #ls_logs5 17 | { 18 | font-family: arimo; 19 | font-weight: normal; 20 | color: #999; 21 | font-size: 12px; 22 | margin-top: -20px; 23 | height: 20px; 24 | line-height: 65px; 25 | text-shadow: 1px 1px 5px black; 26 | 27 | } 28 | 29 | #desc_logs1, #desc_logs2, #desc_logs3, #desc_logs4, #desc_logs5 30 | { 31 | font-family: arimo; 32 | font-weight: normal; 33 | /* color: #999; */ 34 | color: #F2DDB3; 35 | font-size: 17px; 36 | margin-top: -20px; 37 | height: 25px; 38 | line-height: 15px; 39 | text-shadow: 1px 1px 4px black; 40 | 41 | } 42 | 43 | 44 | #logs1, #logs2, #logs3, #logs4, #logs5 45 | { 46 | font-family: arimo; 47 | font-weight: bold; 48 | /*width: 162px;*/ 49 | width: 152px; 50 | padding: 10px; 51 | /* border: 1px solid #1E1E1F; */ 52 | border: 1px solid transparent; 53 | border-radius: 0px; 54 | height: 58px; 55 | line-height: 55px; 56 | color: #999; 57 | font-size:40px; 58 | text-shadow: 1px 1px 4px black; 59 | 60 | } 61 | 62 | #logs3 63 | { 64 | /*width: 184px;*/ 65 | width: 154px; 66 | } 67 | 68 | -------------------------------------------------------------------------------- /js/jskata.nofreeze.min.js: -------------------------------------------------------------------------------- 1 | !function(){var o={sleepFor:1,chunkSize:10,stops:[],forLoop:function(o,t,n,i,r){var e,a=this,u=i&&i.sleepFor?i.sleepFor:this.sleepFor,s=i&&i.chunkSize?i.chunkSize:this.chunkSize,f=function(){r&&r(),clearTimeout(e)},c=function(){f&&f(),f=null};a.stops.push(c);var p=function w(){for(var i=0;o()&&i++=r},function(){r++},e,n,i)},infinite:function(o,t,n){return this.forloop(function(){return!0},null,o,t,n)},each:function(o,t,n,i){var r=0;if("[object Array]"==Object.prototype.toString.call(o))return r=0,this.forloop(function(){return r 2 | 3 | 4 | 5 | Domoticz Monitor 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
31 |
32 |
33 | 47 |
48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 |
62 |
63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /css/pluie.css: -------------------------------------------------------------------------------- 1 | #ls_pluie_1, #ls_pluie_2, #ls_pluie_3, #ls_pluie_4, #ls_pluie_5, #ls_pluie_6, 2 | #ls_pluie_7, #ls_pluie_8, #ls_pluie_9, #ls_pluie_10, #ls_pluie_11, #ls_pluie_12, 3 | #ls_pluie_13, #ls_pluie_14, #ls_pluie_15, #ls_pluie_16, #ls_pluie_17, #ls_pluie_18, 4 | #ls_pluie_19, #ls_pluie_20, #ls_pluie_21, #ls_pluie_22, #ls_pluie_23, #ls_pluie_24, 5 | #ls_pluie_25, #ls_pluie_26, #ls_pluie_27, #ls_pluie_28, #ls_pluie_29, #ls_pluie_30, 6 | #ls_pluie_31, #ls_pluie_32, #ls_pluie_33, #ls_pluie_34, #ls_pluie_35, #ls_pluie_36 7 | { 8 | font-family: arimo; 9 | font-weight: normal; 10 | color: #999; 11 | font-size: 12px; 12 | margin-top: -20px; 13 | height: 20px; 14 | line-height: 65px; 15 | text-shadow: 1px 1px 5px black; 16 | 17 | } 18 | 19 | #desc_pluie_1, #desc_pluie_2, #desc_pluie_3, #desc_pluie_4, #desc_pluie_5, #desc_pluie_6, 20 | #desc_pluie_7, #desc_pluie_8, #desc_pluie_9, #desc_pluie_10, #desc_pluie_11, #desc_pluie_12, 21 | #desc_pluie_13, #desc_pluie_14, #desc_pluie_15, #desc_pluie_16, #desc_pluie_17, #desc_pluie_18, 22 | #desc_pluie_19, #desc_pluie_20, #desc_pluie_21, #desc_pluie_22, #desc_pluie_23, #desc_pluie_24, 23 | #desc_pluie_25, #desc_pluie_26, #desc_pluie_27, #desc_pluie_28, #desc_pluie_29, #desc_pluie_30, 24 | #desc_pluie_31, #desc_pluie_32, #desc_pluie_33, #desc_pluie_34, #desc_pluie_35, #desc_pluie_36 25 | { 26 | font-family: arimo; 27 | font-weight: normal; 28 | /* color: #999; */ 29 | color: #F2DDB3; 30 | font-size: 17px; 31 | margin-top: -20px; 32 | height: 25px; 33 | line-height: 15px; 34 | text-shadow: 1px 1px 4px black; 35 | 36 | } 37 | 38 | #pluie_3, #pluie_4 39 | { 40 | font-family: arimo; 41 | font-weight: bold; 42 | /*width: 304px;*/ 43 | width: 282px; 44 | padding: 5px; 45 | border: 1px solid #1E1E1F; 46 | border: 1px solid transparent; 47 | /* border-radius: 0px;*/ 48 | height: 152.5px; 49 | line-height: 170px; 50 | font-size: 100px; 51 | color: #999; 52 | margin: 0px ; 53 | text-shadow: 1px 1px 4px black; 54 | 55 | 56 | } 57 | 58 | #pluie_1, #pluie_2, #pluie_5, #pluie_6, 59 | #pluie_7, #pluie_8, #pluie_9, #pluie_10, #pluie_11, #pluie_12, 60 | #pluie_13, #pluie_14, #pluie_15, #pluie_16, #pluie_17, #pluie_18, 61 | #pluie_19, #pluie_20, #pluie_21, #pluie_22, #pluie_23, #pluie_24, 62 | #pluie_25, #pluie_26, #pluie_27, #pluie_28, #pluie_29, #pluie_30, 63 | #pluie_31, #pluie_32, #pluie_33, #pluie_34, #pluie_35, #pluie_36 64 | { 65 | font-family: arimo; 66 | font-weight: bold; 67 | /*width: 134px;*/ 68 | width: 123px; 69 | padding: 10px; 70 | /* border: 1px solid #ffffff; */ 71 | border: 1px solid transparent; 72 | border-radius: 0px; 73 | height: 58px; 74 | line-height: 55px; 75 | color: #999; 76 | font-size:40px; 77 | text-shadow: 1px 1px 4px black; 78 | margin: 0px ; 79 | } 80 | #pluie_13, #pluie_14, #pluie_15, #pluie_16, #pluie_17, #pluie_18, 81 | #pluie_19, #pluie_20, #pluie_21, #pluie_22, #pluie_23, #pluie_24, 82 | #pluie_25, #pluie_26, #pluie_27, #pluie_28, #pluie_29, #pluie_30 83 | { 84 | line-height: 15px; 85 | } 86 | 87 | 88 | -------------------------------------------------------------------------------- /css/page4.css: -------------------------------------------------------------------------------- 1 | #ls_cell4_1, #ls_cell4_1a, #ls_cell4_2, #ls_cell4_2a, #ls_cell4_3, #ls_cell4_4, #ls_cell4_4a, 2 | #ls_cell4_5, #ls_cell4_5a, #ls_cell4_6, #ls_cell4_7, #ls_cell4_8, #ls_cell4_9, 3 | #ls_cell4_10, #ls_cell4_11, #ls_cell4_12, #ls_cell4_13, #ls_cell4_14, 4 | #ls_cell4_15, #ls_cell4_16, #ls_cell4_17, #ls_cell4_18, #ls_cell4_19, 5 | #ls_cell4_20, #ls_cell4_21, 6 | #ls_cell4_22, #ls_cell4_23, #ls_cell4_24, #ls_cell4_25, #ls_cell4_26 7 | { 8 | font-family: arimo; 9 | font-weight: normal; 10 | color: #999; 11 | font-size: 12px; 12 | margin-top: -27px; 13 | height: 27px; 14 | line-height: 68px; 15 | text-shadow: 1px 1px 5px black; 16 | } 17 | 18 | #desc_cell4_1, #desc_cell4_2, #desc_cell4_3, #desc_cell4_4, 19 | #desc_cell4_5, #desc_cell4_6, #desc_cell4_7, #desc_cell4_8, #desc_cell4_9, 20 | #desc_cell4_10, #desc_cell4_11, #desc_cell4_12, #desc_cell4_13, #desc_cell4_14, 21 | #desc_cell4_15, #desc_cell4_16, #desc_cell4_17, #desc_cell4_18, #desc_cell4_19, 22 | #desc_cell4_20, #desc_cell4_21, 23 | #desc_cell4_22, #desc_cell4_23, #desc_cell4_24, #desc_cell4_25, #desc_cell4_26 24 | { 25 | font-family: arimo; 26 | font-weight: normal; 27 | 28 | color: #F2DDB3; 29 | font-size: 17px; 30 | margin-top: -20px; 31 | height: 25px; 32 | line-height: 18px; 33 | text-shadow: 1px 1px 4px black; 34 | 35 | } 36 | 37 | #cell4_3, #cell4_21 38 | { 39 | font-family: arimo; 40 | font-weight: bold; 41 | 42 | /*width: 277px;*/ 43 | width: 252px; 44 | padding: 5px; 45 | border: 1px solid transparent; 46 | border-radius: 0px; 47 | height: 217px; 48 | line-height: 210px; 49 | color: #999; 50 | font-size: 100px; 51 | text-shadow: 1px 1px 4px black; 52 | } 53 | 54 | #cell4_1, #cell4_2, #cell4_4, #cell4_5, 55 | #cell4_6, #cell4_7, #cell4_8, #cell4_9, #cell4_10, 56 | #cell4_11, #cell4_12, #cell4_13, #cell4_14, #cell4_15, 57 | #cell4_16, #cell4_17, #cell4_18, #cell4_19, #cell4_20, 58 | #cell4_22, #cell4_23, #cell4_24, #cell4_25, #cell4_26 59 | { 60 | font-family: arimo; 61 | font-weight: bold; 62 | /*width: 162px;*/ 63 | width: 152px; 64 | padding: 10px; 65 | border: 1px solid transparent; 66 | border-radius: 0px; 67 | height: 90px; 68 | line-height: 75px; 69 | color: #999; 70 | font-size: 40px; 71 | text-shadow: 1px 1px 4px black; 72 | } 73 | 74 | #cell4_1a, #cell4_1b, #cell4_2a, #cell4_2b, #cell4_4a, #cell4_4b, #cell4_5a, #cell4_5b 75 | { 76 | font-family: arimo; 77 | font-weight: bold; 78 | margin: -15px 0px -42px 0px; 79 | color: #999; 80 | font-size: 40px; 81 | position: relative; 82 | z-index:20; 83 | text-shadow: 1px 1px 4px black; 84 | } 85 | 86 | #cell4_6, #cell4_7, #cell4_8, #cell4_9, #cell4_10, 87 | #cell4_11, #cell4_12, #cell4_13, #cell4_14, #cell4_15, 88 | #cell4_16, #cell4_17, #cell4_18, #cell4_19, #cell4_20, 89 | #cell4_22, #cell4_23, #cell4_24, #cell4_25, #cell4_26 90 | { 91 | height: 63px; 92 | line-height: 55px; 93 | } 94 | 95 | #cell4_8, #cell4_13, #cell4_18, #cell4_24 96 | { 97 | /*width: 184px;*/ 98 | width: 154px; 99 | } 100 | 101 | -------------------------------------------------------------------------------- /pages/page5.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 | 17 | 18 |
19 |
20 |
--
cell5_1
21 |
a
b
c
d
e
f
g
22 |
23 |
24 |
--
cell5_2
25 |
a
b
c
d
e
f
g
26 |
27 |
28 | 29 |
30 |
31 |
--
cell5_3
32 |
a
b
c
d
e
f
g
33 |
34 |
35 |
--
cell5_4
36 |
a
b
c
d
e
f
g
37 |
38 |
39 | 40 | 41 |
42 |
43 |
--
cell5_5
44 |
45 |
46 |
--
cell5_6
47 |
48 |
49 |
--
cell5_7
50 |
51 |
52 |
--
cell5_8
53 |
54 |
55 |
--
cell5_9
56 |
57 |
58 | 59 |
60 |
61 |
--
cell5_10
62 |
63 |
64 |
--
cell5_11
65 |
66 |
67 |
--
cell5_12
68 |
69 |
70 |
--
cell5_13
71 |
72 |
73 |
--
cell5_14
74 |
75 |
76 | 77 | 78 |
79 |
80 | 81 | -------------------------------------------------------------------------------- /pages/logs.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 |
8 |
9 | 10 | 11 | 16 | 17 |
18 |
19 |
20 |
21 |
22 | 23 | 24 |
25 |
26 |
--
logs1
27 |
28 |
29 |
--
logs2
30 |
31 |
32 |
--
logs3
33 |
34 |
35 |
--
logs4
36 |
37 |
38 |
--
logs5
39 |
40 |
41 | 42 | 43 | 44 |
45 |
46 | 47 | 48 | 101 | -------------------------------------------------------------------------------- /pages/page4.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 |
8 |
9 | 10 | 11 | 16 | 17 | 18 |
19 |
20 |
--
--
cell4_1
21 |
--
--
cell4_2
22 |
23 |
24 |
--
cell4_3
25 |
26 |
27 |
--
cell4_21
28 |
29 |
30 |
--
--
cell4_4
31 |
--
--
cell4_5
32 |
33 |
34 | 35 |
36 |
37 |
--
cell4_6
38 |
39 |
40 |
--
cell4_7
41 |
42 |
43 |
--
cell4_8
44 |
45 |
46 |
--
cell4_9
47 |
48 |
49 |
--
cell4_10
50 |
51 |
52 | 53 |
54 |
55 |
--
cell4_11
56 |
57 |
58 |
--
cell4_12
59 |
60 |
61 |
--
cell4_13
62 |
63 |
64 |
--
cell4_14
65 |
66 |
67 |
--
cell4_15
68 |
69 |
70 | 71 |
72 |
73 |
--
cell4_16
74 |
75 |
76 |
--
cell4_17
77 |
78 |
79 |
--
cell4_18
80 |
81 |
82 |
--
cell4_19
83 |
84 |
85 |
--
cell4_20
86 |
87 |
88 | 89 |
90 |
91 |
--
cell4_22
92 |
93 |
94 |
--
cell4_23
95 |
96 |
97 |
--
cell4_24
98 |
99 |
100 |
--
cell4_25
101 |
102 |
103 |
--
cell4_26
104 |
105 |
106 | 107 | 108 |
109 |
110 | 111 | -------------------------------------------------------------------------------- /pages/page1.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 |
8 |
9 | 10 | 11 | 16 | 17 |
18 |
19 |
--
cell1
20 |
--
cell2
21 |
22 |
23 |
--
cell3
24 |
25 |
26 |
--
cell25
27 |
28 |
29 |
--
cell4
30 |
--
cell5
31 |
32 |
33 | 34 |
35 |
36 |
--
cell6
37 |
38 |
39 |
--
cell7
40 |
41 |
42 |
--
cell8
43 |
44 |
45 |
--
cell9
46 |
47 |
48 |
--
cell10
49 |
50 |
51 | 52 |
53 |
54 |
--
cell11
55 |
56 |
57 |
--
cell12
58 |
59 |
60 |
--
cell13
61 |
62 |
63 |
--
cell14
64 |
65 |
66 |
--
cell15
67 |
68 |
69 | 70 |
71 |
72 |
--
cell16
73 |
74 |
75 |
--
cell17
76 |
77 |
78 |
--
cell18
79 |
80 |
81 |
--
cell19
82 |
83 |
84 |
--
cell20
85 |
86 |
87 | 88 |
89 |
90 |
--
cell21
91 |
92 |
93 |
--
cell22
94 |
95 |
96 |
--
cell24
97 |
98 |
99 |
--
cell26
100 |
101 |
102 |
--
cell23
103 |
104 |
105 | 106 |
107 |
108 |
--
cell27
109 |
110 |
111 |
--
cell28
112 |
113 |
114 |
--
cell29
115 |
116 |
117 |
--
cell30
118 |
119 |
120 |
--
cell31
121 |
122 |
123 | 124 | 125 |
126 |
127 | 128 | -------------------------------------------------------------------------------- /js/full/jskata.nofreeze.js: -------------------------------------------------------------------------------- 1 | /*jslint forin: true */ 2 | (function() { 3 | var jsk = { 4 | sleepFor : 1, // How many milliseconds should it sleeps 5 | chunkSize : 10, // How many executions before sleep 6 | stops : [], // Contains all stop functions 7 | // A responsive for 8 | forLoop:function for_(wh, inc, fct, options, stopCallback) { 9 | var self = this; 10 | var timerId; 11 | 12 | var sleepFor = options && options.sleepFor ? 13 | options.sleepFor : this.sleepFor; 14 | 15 | var chunkSize = options && options.chunkSize ? 16 | options.chunkSize : this.chunkSize; 17 | 18 | // Create the stop function 19 | var innerStop = function innerStop() { 20 | if (stopCallback) { stopCallback(); } 21 | clearTimeout(timerId); 22 | }; 23 | 24 | var stop = function stopWrapper() { 25 | if (innerStop) { innerStop(); } 26 | innerStop = null; 27 | }; 28 | 29 | self.stops.push(stop); 30 | 31 | // Execute a chunk of code 32 | var chunk = function chunk() { 33 | var jskcurrent = 0; 34 | while (wh() && jskcurrent++ < chunkSize) { 35 | fct(); 36 | if (inc) { inc(); } 37 | } 38 | 39 | if (wh()) { 40 | timerId = setTimeout(chunk, sleepFor); 41 | } else { 42 | stop(); 43 | } 44 | }; 45 | 46 | // Start the process 47 | chunk(); 48 | 49 | return {stop:stop}; 50 | }, 51 | // A simple for with an index increasing to a count 52 | forCount : function forCount(maxCount, fct, options, stopCallback) { 53 | var jsKataforCountIndex = (options && options.beginAt) || 0; 54 | var newFct = function() { fct(jsKataforCountIndex); }; 55 | return this.forloop( 56 | function() {return jsKataforCountIndex <= maxCount;}, 57 | function() {jsKataforCountIndex++;}, 58 | newFct, 59 | options, 60 | stopCallback 61 | ); 62 | }, 63 | // Create an infinite loop 64 | infinite:function infinite(fct, options, stopCallback) { 65 | return this.forloop( 66 | function() { return true; }, 67 | null, 68 | fct, 69 | options, 70 | stopCallback 71 | ); 72 | }, 73 | // Each 74 | each:function(obj, fct, options, stopCallback) { 75 | var i = 0; 76 | 77 | // If it's an array 78 | // taken from jQuery 79 | if (Object.prototype.toString.call(obj) == "[object Array]") { 80 | i = 0; 81 | return this.forloop( 82 | function() { return i < obj.length; }, 83 | function() { i++; }, 84 | function() { fct.call(obj[i], i, obj[i]); }, 85 | options, 86 | stopCallback 87 | ); 88 | // If it's an an object 89 | } else { 90 | // Create an array of properties 91 | var props = []; 92 | 93 | for(var prop in obj) { 94 | if (true) { // for jshint 95 | props.push(prop); 96 | } 97 | } 98 | 99 | i = 0; 100 | return this.forloop( 101 | function() { return i < props.length; }, 102 | function() { i++; }, 103 | function() { fct.call(obj[props[i]], props[i], obj[props[i]]);}, 104 | options, 105 | stopCallback 106 | ); 107 | } 108 | }, 109 | // Stop it after the next round 110 | stop:function() { 111 | for(var i = 0; i < this.stops.length; i++) { 112 | this.stops[i](); 113 | } 114 | if (this.onStop) { this.onStop(); } 115 | } 116 | }; 117 | 118 | jsk.forloop = jsk.forLoop; // backward compatibility 119 | 120 | // Creates the base namespaces 121 | if (typeof window !== 'undefined') { 122 | if (window.javascriptKataDotCom === undefined) { window.javascriptKataDotCom = {}; } 123 | if (window.jsKata === undefined) { window.jsKata = window.javascriptKataDotCom; } 124 | if (window.jsk === undefined) { window.jsk = window.javascriptKataDotCom; } 125 | if (window._ === undefined) { window._ = window.javascriptKataDotCom; } 126 | 127 | window.javascriptKataDotCom.nofreeze = jsk; 128 | window.javascriptKataDotCom.nf = window.javascriptKataDotCom.nofreeze; 129 | } else if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { 130 | module.exports = jsk; 131 | } 132 | })(); 133 | -------------------------------------------------------------------------------- /pages/page2.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 |
8 |
9 | 10 | 11 | 16 | 17 | 18 |
19 |
20 |
--
cell2_1
21 |
--
cell2_2
22 |
23 |
24 |
--
cell2_3
25 |
26 |
27 |
--
cell2_25
28 |
29 |
30 |
--
cell2_4
31 |
--
cell2_5
32 |
33 |
34 | 35 |
36 |
37 |
--
cell2_6
38 |
39 |
40 |
--
cell2_7
41 |
42 |
43 |
--
cell2_8
44 |
45 |
46 |
--
cell2_9
47 |
48 |
49 |
--
cell2_10
50 |
51 |
52 | 53 |
54 |
55 |
--
cell2_11
56 |
57 |
58 |
--
cell2_12
59 |
60 |
61 |
--
cell2_13
62 |
63 |
64 |
--
cell2_14
65 |
66 |
67 |
--
cell2_15
68 |
69 |
70 | 71 |
72 |
73 |
--
cell2_16
74 |
75 |
76 |
--
cell2_17
77 |
78 |
79 |
--
cell2_18
80 |
81 |
82 |
--
cell2_19
83 |
84 |
85 |
--
cell2_20
86 |
87 |
88 | 89 |
90 |
91 |
--
cell2_21
92 |
93 |
94 |
--
cell2_22
95 |
96 |
97 |
--
cell2_24
98 |
99 |
100 |
--
cell2_26
101 |
102 |
103 |
--
cell2_23
104 |
105 |
106 | 107 |
108 |
109 |
--
cell2_27
110 |
111 |
112 |
--
cell2_28
113 |
114 |
115 |
--
cell2_29
116 |
117 |
118 |
--
cell2_30
119 |
120 |
121 |
--
cell2_31
122 |
123 |
124 | 125 | 126 |
127 |
128 | 129 | -------------------------------------------------------------------------------- /pages/page3.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 |
8 |
9 | 10 | 11 | 16 | 17 | 18 |
19 |
20 |
--
cell3_1
21 |
--
cell3_2
22 |
23 |
24 |
--
cell3_3
25 |
26 |
27 |
--
cell3_25
28 |
29 |
30 |
--
cell3_4
31 |
--
cell3_5
32 |
33 |
34 | 35 |
36 |
37 |
--
cell3_6
38 |
39 |
40 |
--
cell3_7
41 |
42 |
43 |
--
cell3_8
44 |
45 |
46 |
--
cell3_9
47 |
48 |
49 |
--
cell3_10
50 |
51 |
52 | 53 |
54 |
55 |
--
cell3_11
56 |
57 |
58 |
--
cell3_12
59 |
60 |
61 |
--
cell3_13
62 |
63 |
64 |
--
cell3_14
65 |
66 |
67 |
--
cell3_15
68 |
69 |
70 | 71 |
72 |
73 |
--
cell3_16
74 |
75 |
76 |
--
cell3_17
77 |
78 |
79 |
--
cell3_18
80 |
81 |
82 |
--
cell3_19
83 |
84 |
85 |
--
cell3_20
86 |
87 |
88 | 89 |
90 |
91 |
--
cell3_21
92 |
93 |
94 |
--
cell3_22
95 |
96 |
97 |
--
cell3_24
98 |
99 |
100 |
--
cell3_26
101 |
102 |
103 |
--
cell3_23
104 |
105 |
106 | 107 |
108 |
109 |
--
cell3_27
110 |
111 |
112 |
--
cell3_28
113 |
114 |
115 |
--
cell3_29
116 |
117 |
118 |
--
cell3_30
119 |
120 |
121 |
--
cell3_31
122 |
123 |
124 | 125 | 126 |
127 |
128 | 129 | -------------------------------------------------------------------------------- /css/meteo.css: -------------------------------------------------------------------------------- 1 | #ls_meteo1, #ls_meteo2, #ls_meteo3, #ls_meteo25, #ls_meteo4, #ls_meteo5, 2 | #ls_meteo6, #ls_meteo7, #ls_meteo8, #ls_meteo9, #ls_meteo10, #ls_meteo11 3 | { 4 | font-family: arimo; 5 | font-weight: normal; 6 | color: #999; 7 | font-size: 12px; 8 | margin-top: -20px; 9 | height: 20px; 10 | line-height: 65px; 11 | text-shadow: 1px 1px 5px black; 12 | 13 | } 14 | 15 | #desc_meteo1, #desc_meteo2, #desc_meteo3, #desc_meteo25, #desc_meteo4, #desc_meteo5, 16 | #desc_meteo6, #desc_meteo7, #desc_meteo8, #desc_meteo9, #desc_meteo10, #desc_meteo11 17 | { 18 | font-family: arimo; 19 | font-weight: normal; 20 | /* color: #999; */ 21 | color: #F2DDB3; 22 | font-size: 17px; 23 | margin-top: -20px; 24 | height: 25px; 25 | line-height: 15px; 26 | text-shadow: 1px 1px 4px black; 27 | 28 | } 29 | 30 | #meteo3, #meteo25 31 | { 32 | font-family: arimo; 33 | font-weight: bold; 34 | /*width: 277px;*/ 35 | width: 252px; 36 | padding: 5px; 37 | /* border: 1px solid #1E1E1F; */ 38 | border: 1px solid transparent; 39 | border-radius: 0px; 40 | height: 152.5px; 41 | line-height: 170px; 42 | font-size: 100px; 43 | color: #999; 44 | margin: 0px ; 45 | text-shadow: 1px 1px 4px black; 46 | 47 | } 48 | 49 | 50 | #meteo1, #meteo2, #meteo4, #meteo5, 51 | #meteo6, #meteo7, #meteo8, #meteo9, #meteo10, #meteo11 52 | { 53 | font-family: arimo; 54 | font-weight: bold; 55 | /*width: 162px;*/ 56 | width: 152px; 57 | padding: 10px; 58 | /* border: 1px solid #1E1E1F; */ 59 | border: 1px solid transparent; 60 | border-radius: 0px; 61 | height: 58px; 62 | line-height: 55px; 63 | color: #999; 64 | font-size:40px; 65 | text-shadow: 1px 1px 4px black; 66 | 67 | } 68 | 69 | #meteo7, #meteo8, #meteo9, #meteo10 70 | { 71 | /*width: 114px; */ 72 | width: 123px; 73 | } 74 | 75 | #meteo6, #meteo11 76 | { 77 | /*width: 115px; */ 78 | width: 122px; 79 | } 80 | 81 | 82 | #desc_jour0, #desc_jour1, #desc_jour2, #desc_jour3, 83 | #temp_day_0_1H00, #temp_day_0_3H00, #temp_day_0_5H00, #temp_day_0_7H00, #temp_day_0_9H00, #temp_day_0_11H00, 84 | #temp_day_0_13H00, #temp_day_0_15H00, #temp_day_0_17H00, #temp_day_0_19H00, #temp_day_0_21H00, #temp_day_0_23H00, 85 | #temp_day_1_1H00, #temp_day_1_3H00, #temp_day_1_5H00, #temp_day_1_7H00, #temp_day_1_9H00, #temp_day_1_11H00, 86 | #temp_day_1_13H00, #temp_day_1_15H00, #temp_day_1_17H00, #temp_day_1_19H00, #temp_day_1_21H00, #temp_day_1_23H00, 87 | #temp_day_2_1H00, #temp_day_2_3H00, #temp_day_2_5H00, #temp_day_2_7H00, #temp_day_2_9H00, #temp_day_2_11H00, 88 | #temp_day_2_13H00, #temp_day_2_15H00, #temp_day_2_17H00, #temp_day_2_19H00, #temp_day_2_21H00, #temp_day_2_23H00, 89 | #temp_day_3_1H00, #temp_day_3_3H00, #temp_day_3_5H00, #temp_day_3_7H00, #temp_day_3_9H00, #temp_day_3_11H00, 90 | #temp_day_3_13H00, #temp_day_3_15H00, #temp_day_3_17H00, #temp_day_3_19H00, #temp_day_3_21H00, #temp_day_3_23H00 91 | { 92 | font-family: arimo; 93 | font-weight: normal; 94 | /* color: #999; */ 95 | color: #F2DDB3; 96 | font-size: 20px; 97 | margin-top: -20px; 98 | height: 25px; 99 | line-height: 15px; 100 | text-shadow: 1px 1px 4px black; 101 | 102 | } 103 | 104 | .ghost 105 | { 106 | opacity: 0.3; 107 | } 108 | 109 | #jour0, #jour1, #jour2, #jour3, 110 | #day_0_1H00, #day_0_3H00, #day_0_5H00, #day_0_7H00, #day_0_9H00, #day_0_11H00, 111 | #day_0_13H00, #day_0_15H00, #day_0_17H00, #day_0_19H00, #day_0_21H00, #day_0_23H00, 112 | #day_1_1H00, #day_1_3H00, #day_1_5H00, #day_1_7H00, #day_1_9H00, #day_1_11H00, 113 | #day_1_13H00, #day_1_15H00, #day_1_17H00, #day_1_19H00, #day_1_21H00, #day_1_23H00, 114 | #day_2_1H00, #day_2_3H00, #day_2_5H00, #day_2_7H00, #day_2_9H00, #day_2_11H00, 115 | #day_2_13H00, #day_2_15H00, #day_2_17H00, #day_2_19H00, #day_2_21H00, #day_2_23H00, 116 | #day_3_1H00, #day_3_3H00, #day_3_5H00, #day_3_7H00, #day_3_9H00, #day_3_11H00, 117 | #day_3_13H00, #day_3_15H00, #day_3_17H00, #day_3_19H00, #day_3_21H00, #day_3_23H00 118 | { 119 | font-family: arimo; 120 | font-weight: bold; 121 | /*width: 46px;*/ 122 | width: 41.6px; 123 | padding: 10px; 124 | /* border: 1px solid #1E1E1F; */ 125 | border: 1px solid transparent; 126 | border-radius: 0px; 127 | height: 58px; 128 | line-height: 55px; 129 | color: #999; 130 | font-size:40px; 131 | text-shadow: 1px 1px 4px black; 132 | } 133 | 134 | #jour0, #jour1, #jour2, #jour3 135 | { 136 | /*width: 55px;*/ 137 | width: 55px; 138 | font-size:27px; 139 | color:#F2DDB3; 140 | text-align: left; 141 | margin-top: -5px; 142 | } 143 | 144 | #sep 145 | { 146 | position: absolute; 147 | margin-top: -40px; 148 | margin-left: 0px; 149 | border : 0; 150 | height : 160px; 151 | width : 1px; 152 | background-image: -webkit-linear-gradient(top, transparent, #F2DDB3, transparent); 153 | background-image: -moz-linear-gradient(top, transparent, #F2DDB3, transparent); 154 | background-image: -ms-linear-gradient(top, transparent, #F2DDB3, transparent); 155 | background-image: -o-linear-gradient(top, transparent, #F2DDB3, transparent); 156 | background-image: linear-gradient(top, transparent, #F2DDB3, transparent); 157 | } 158 | 159 | @media screen and (min-height: 610px) { 160 | #sep 161 | { 162 | height : 250px; 163 | } 164 | } -------------------------------------------------------------------------------- /js/snow.js: -------------------------------------------------------------------------------- 1 | (function($){$.snowfall=function(element,options){var defaults={flakeCount:25,flakeColor:'#ffffff',flakeIndex:999999,minSize:1,maxSize:4,minSpeed:1,maxSpeed:5,round:false,shadow:false,collection:false,collectionHeight:40,deviceorientation:false},options=$.extend(defaults,options),random=function random(min,max){return Math.round(min+ Math.random()*(max-min));};$(element).data("snowfall",this);function Flake(_x,_y,_size,_speed,_id) 2 | {this.id=_id;this.x=_x;this.y=_y;this.size=_size;this.speed=_speed;this.step=0;this.stepSize=random(1,10)/ 100; 3 | if(options.collection){this.target=canvasCollection[random(0,canvasCollection.length-1)];} 4 | var flakeMarkup=$(document.createElement("div")).attr({'class':'snowfall-flakes','id':'flake-'+ this.id}).css({'width':this.size,'height':this.size,'background':options.flakeColor,'position':'absolute','top':this.y,'left':this.x,'fontSize':0,'zIndex':options.flakeIndex});if($(element).get(0).tagName===$(document).get(0).tagName){$('body').append(flakeMarkup);element=$('body');}else{$(element).append(flakeMarkup);} 5 | this.element=document.getElementById('flake-'+ this.id);this.update=function(){this.y+=this.speed;if(this.y>(elHeight)-(this.size+ 6)){this.reset();} 6 | this.element.style.top=this.y+'px';this.element.style.left=this.x+'px';this.step+=this.stepSize;if(doRatio===false){this.x+=Math.cos(this.step);}else{this.x+=(doRatio+ Math.cos(this.step));} 7 | if(options.collection){if(this.x>this.target.x&&this.xthis.target.y&&this.ythis.target.height){if(curY+this.speed+this.size>this.target.height){while(curY+this.speed+this.size>this.target.height&&this.speed>0){this.speed*=.5;} 8 | ctx.fillStyle="#fff";if(colData[parseInt(curX)][parseInt(curY+this.speed+this.size)]==undefined){colData[parseInt(curX)][parseInt(curY+this.speed+this.size)]=1;ctx.fillRect(curX,(curY)+this.speed+this.size,this.size,this.size);}else{colData[parseInt(curX)][parseInt(curY+this.speed)]=1;ctx.fillRect(curX,curY+this.speed,this.size,this.size);} 9 | this.reset();}else{this.speed=1;this.stepSize=0;if(parseInt(curX)+10&&colData[parseInt(curX)-1][parseInt(curY)+1]==undefined){this.x--;}else{ctx.fillStyle="#fff";ctx.fillRect(curX,curY,this.size,this.size);colData[parseInt(curX)][parseInt(curY)]=1;this.reset();}}}}} 10 | if(this.x>(elWidth)- widthOffset||this.x0){document.body.appendChild(canvas);canvas.style.position='absolute';canvas.height=collectionHeight;canvas.width=bounds.width;canvas.style.left=bounds.left+'px';canvas.style.top=bounds.top-collectionHeight+'px';for(var w=0;w 2 | 5 | 6 | 7 |
8 |
9 | 10 | 11 | 16 | 17 | 18 |
19 |
20 |
--
pluie_1
21 |
--
pluie_2
22 |
23 |
24 |
--
pluie_3
25 |
26 |
27 |
--
pluie_4
28 | 29 |
30 |
31 |
--
pluie_5
32 |
--
pluie_6
33 |
34 |
35 | 36 |
37 |
38 |
--
pluie_7
39 |
40 |
41 |
--
pluie_8
42 |
43 |
44 |
--
pluie_9
45 |
46 |
47 |
--
pluie_10
48 |
49 |
50 |
--
pluie_11
51 |
52 |
53 |
--
pluie_12
54 |
55 |
56 | 57 |
58 |
59 |
--
pluie_13
60 |
61 |
62 |
--
pluie_14
63 |
64 |
65 |
--
pluie_15
66 |
67 |
68 |
--
pluie_16
69 |
70 |
71 |
--
pluie_17
72 |
73 |
74 |
--
pluie_18
75 |
76 |
77 | 78 |
79 |
80 |
--
pluie_19
81 |
82 |
83 |
--
pluie_20
84 |
85 |
86 |
--
pluie_21
87 |
88 |
89 |
--
pluie_22
90 |
91 |
92 |
--
pluie_23
93 |
94 |
95 |
--
pluie_24
96 |
97 |
98 | 99 |
100 |
101 |
--
pluie_25
102 |
103 |
104 |
--
pluie_26
105 |
106 |
107 |
--
pluie_27
108 |
109 |
110 |
--
pluie_28
111 |
112 |
113 |
--
pluie_29
114 |
115 |
116 |
--
pluie_30
117 |
118 |
119 | 120 |
121 |
122 |
--
pluie_31
123 |
124 |
125 |
--
pluie_32
126 |
127 |
128 |
--
pluie_33
129 |
130 |
131 |
--
pluie_34
132 |
133 |
134 |
--
pluie_35
135 |
136 |
137 |
--
pluie_36
138 |
139 |
140 | 141 | 142 |
143 |
144 | 145 | -------------------------------------------------------------------------------- /js/swipe.min.js: -------------------------------------------------------------------------------- 1 | !function(a,b){"function"==typeof define&&define.amd?define([],function(){return a.Swipe=b(),a.Swipe}):"object"==typeof module&&module.exports?module.exports=b():a.Swipe=b()}(this,function(){function c(c,d){"use strict";function w(){m.addEventListener?(n.removeEventListener("touchstart",v,!1),n.removeEventListener("mousedown",v,!1),n.removeEventListener("webkitTransitionEnd",v,!1),n.removeEventListener("msTransitionEnd",v,!1),n.removeEventListener("oTransitionEnd",v,!1),n.removeEventListener("otransitionend",v,!1),n.removeEventListener("transitionend",v,!1),a.removeEventListener("resize",v,!1)):a.onresize=null}function x(){m.addEventListener?(m.touch&&n.addEventListener("touchstart",v,!1),d.draggable&&n.addEventListener("mousedown",v,!1),m.transitions&&(n.addEventListener("webkitTransitionEnd",v,!1),n.addEventListener("msTransitionEnd",v,!1),n.addEventListener("oTransitionEnd",v,!1),n.addEventListener("otransitionend",v,!1),n.addEventListener("transitionend",v,!1)),a.addEventListener("resize",v,!1)):a.onresize=u}function y(){if(o=n.children,r=o.length,o.length<2&&(d.continuous=!1),m.transitions&&d.continuous&&o.length<3){var a=o[0].cloneNode(!0),b=n.children[1].cloneNode(!0);n.appendChild(a),n.appendChild(b),a.setAttribute("data-cloned",!0),b.setAttribute("data-cloned",!0),o=n.children}p=new Array(o.length),q=c.getBoundingClientRect().width||c.offsetWidth,n.style.width=o.length*q*2+"px";for(var e=o.length;e--;){var f=o[e];f.style.width=q+"px",f.setAttribute("data-index",e),m.transitions&&(f.style.left=e*-q+"px",G(e,s>e?-q:s=r&&(a-=r),a}function F(a,b){if(a="number"!=typeof a?parseInt(a,10):a,s!==a){if(m.transitions){var c=Math.abs(s-a)/(s-a);if(d.continuous){var e=c;c=-p[D(a)]/q,c!==e&&(a=-c*o.length+a)}for(var f=Math.abs(s-a)-1;f--;)G(D((a>s?a:s)-f-1),q*c,0);a=D(a),G(s,q*c,b||t),G(a,0,b||t),d.continuous&&G(D(a-c),-(q*c),0)}else a=D(a),I(s*-q,a*-q,b||t);s=a,k(function(){B(E(),o[s],c)})}}function G(a,b,c){H(a,b,c),p[a]=b}function H(a,b,c){var d=o[a],e=d&&d.style;e&&(e.webkitTransitionDuration=e.MozTransitionDuration=e.msTransitionDuration=e.OTransitionDuration=e.transitionDuration=c+"ms",e.webkitTransform="translate("+b+"px,0)translateZ(0)",e.msTransform=e.MozTransform=e.OTransform="translateX("+b+"px)")}function I(a,b,c){if(!c)return void(n.style.left=b+"px");var e=+new Date,f=setInterval(function(){var g=+new Date-e;return g>c?(n.style.left=b+"px",(h||d.autoRestart)&&L(),C(E(),o[s]),void clearInterval(f)):void(n.style.left=(b-a)*(Math.floor(g/c*100)/100)+a+"px")},4)}function J(){"next"==d.direction?i=setTimeout(A,h):"index"==d.direction&&(i=setTimeout(function(){F(0,t)},h))}function K(){h=0,clearTimeout(i)}function L(){K(),h=d.auto||0,J()}function M(a){return/^mouse/.test(a.type)}function N(){K(),c.style.visibility="",n.style.width="",n.style.left="";for(var a=o.length;a--;){m.transitions&&H(a,0,0);var b=o[a];if(b.getAttribute("data-cloned")){var d=b.parentElement;d.removeChild(b)}b.style.width="",b.style.left="",b.style.webkitTransitionDuration=b.style.MozTransitionDuration=b.style.msTransitionDuration=b.style.OTransitionDuration=b.style.transitionDuration="",b.style.webkitTransform=b.style.msTransform=b.style.MozTransform=b.style.OTransform=""}w(),u.cancel()}d=d||{};var g,i,e={},f={},h=d.auto||0,j=function(){},k=function(a){setTimeout(a||j,0)},l=function(a,b){function d(){c&&clearTimeout(c)}function e(){var e=this,f=arguments;d(),c=setTimeout(function(){c=null,a.apply(e,f)},b)}b=b||100;var c=null;return e.cancel=d,e},m={addEventListener:!!a.addEventListener,touch:"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch,transitions:function(a){var b=["transitionProperty","WebkitTransition","MozTransition","OTransition","msTransition"];for(var c in b)if(void 0!==a.style[b[c]])return!0;return!1}(b.createElement("swipe"))};if(c){var o,p,q,r,n=c.children[0],s=parseInt(d.startSlide,10)||0,t=d.speed||300;d.continuous=void 0===d.continuous||d.continuous,d.autoRestart=void 0!==d.autoRestart&&d.autoRestart;var u=l(y),v={handleEvent:function(a){switch(a.type){case"mousedown":case"touchstart":this.start(a);break;case"mousemove":case"touchmove":this.move(a);break;case"mouseup":case"mouseleave":case"touchend":this.end(a);break;case"webkitTransitionEnd":case"msTransitionEnd":case"oTransitionEnd":case"otransitionend":case"transitionend":this.transitionEnd(a);break;case"resize":u()}d.stopPropagation&&a.stopPropagation()},start:function(a){var b;M(a)?(b=a,a.preventDefault()):b=a.touches[0],e={x:b.pageX,y:b.pageY,time:+new Date},g=void 0,f={},M(a)?(n.addEventListener("mousemove",this,!1),n.addEventListener("mouseup",this,!1),n.addEventListener("mouseleave",this,!1)):(n.addEventListener("touchmove",this,!1),n.addEventListener("touchend",this,!1))},move:function(a){var b;if(M(a))b=a;else{if(a.touches.length>1||a.scale&&1!==a.scale)return;d.disableScroll&&a.preventDefault(),b=a.touches[0]}f={x:b.pageX-e.x,y:b.pageY-e.y},"undefined"==typeof g&&(g=!!(g||Math.abs(f.x)0||s===o.length-1&&f.x<0?Math.abs(f.x)/q+1:1),H(s-1,f.x+p[s-1],0),H(s,f.x+p[s],0),H(s+1,f.x+p[s+1],0)))},end:function(a){var b=+new Date-e.time,c=Number(b)<250&&Math.abs(f.x)>20||Math.abs(f.x)>q/2,h=!s&&f.x>0||s===o.length-1&&f.x<0;d.continuous&&(h=!1);var i=Math.abs(f.x)/f.x;g||(c&&!h?(i<0?(d.continuous?(G(D(s-1),-q,0),G(D(s+2),q,0)):G(s-1,-q,0),G(s,p[s]-q,t),G(D(s+1),p[D(s+1)]-q,t),s=D(s+1)):(d.continuous?(G(D(s+1),q,0),G(D(s-2),-q,0)):G(s+1,q,0),G(s,p[s]+q,t),G(D(s-1),p[D(s-1)]+q,t),s=D(s-1)),B(E(),o[s],i)):d.continuous?(G(D(s-1),-q,t),G(s,0,t),G(D(s+1),q,t)):(G(s-1,-q,t),G(s,0,t),G(s+1,q,t))),M(a)?(n.removeEventListener("mousemove",v,!1),n.removeEventListener("mouseup",v,!1),n.removeEventListener("mouseleave",v,!1)):(n.removeEventListener("touchmove",v,!1),n.removeEventListener("touchend",v,!1))},transitionEnd:function(a){var b=parseInt(a.target.getAttribute("data-index"),10);b===s&&((h||d.autoRestart)&&L(),C(E(),o[s]))}};return y(),h&&J(),{setup:y,slide:function(a,b){K(),F(a,b)},prev:function(){K(),z()},next:function(){K(),A()},restart:L,stop:K,getPos:E,getNumSlides:function(){return r},kill:N}}}var a="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this,b=a.document;return(a.jQuery||a.Zepto)&&!function(a){a.fn.Swipe=function(b){return this.each(function(){a(this).data("Swipe",new c(a(this)[0],b))})}}(a.jQuery||a.Zepto),c}); -------------------------------------------------------------------------------- /pages/clock.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 102 | 103 | 104 | 105 |
106 |
107 | 108 | 109 | 114 | 115 | 116 |
117 |
118 |
--
clock1
119 |
120 |
121 |
--
clock2
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
clock15
131 |
clock16
132 |
133 |
134 |
135 |
136 | 137 |
138 |
139 |
--
clock3
140 |
--
clock6
141 |
142 |
143 |
--
clock4
144 |
--
clock7
145 |
146 |
147 |
--
clock5
148 |
--
clock8
149 |
150 |
151 |
152 |
153 |
154 |
155 | 156 | 157 |
158 |
159 |
--
clock9
160 |
--
clock12
161 |
162 |
163 |
--
clock10
164 |
--
clock13
165 |
166 |
167 |
--
clock11
168 |
--
clock14
169 |
170 |
171 |
172 |
173 |
174 |
175 | 176 | 177 |
178 |
179 |
--
clock17
180 |
181 |
182 |
--
clock18
183 |
184 |
185 |
--
clock19
186 |
187 |
188 |
--
clock20
189 |
190 |
191 |
--
clock21
192 |
193 |
194 | 195 | 196 |
197 |
198 | 199 | 200 | 246 | 247 | -------------------------------------------------------------------------------- /pages/meteo.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 74 | 75 | 76 |
77 |
78 | 79 | 80 | 85 | 86 | 87 |
88 |
89 |
--
meteo1
90 |
--
meteo2
91 |
92 |
93 |
--
meteo3
94 |
95 |
96 |
--
meteo25
97 |
98 |
99 |
--
meteo4
100 |
--
meteo5
101 |
102 |
103 | 104 |
105 |
106 |
--
meteo6
107 |
108 |
109 |
--
meteo7
110 |
111 |
112 |
--
meteo8
113 |
114 |
115 |
--
meteo9
116 |
117 |
118 |
--
meteo10
119 |
120 |
121 |
--
meteo11
122 |
123 |
124 | 125 | 126 |
127 | 128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 | 170 | 171 |
172 | 173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 | 215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 | 259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 | 303 | 304 | 305 |
306 |
307 | 308 | 309 | -------------------------------------------------------------------------------- /css/global.css: -------------------------------------------------------------------------------- 1 | @font-face{ 2 | font-family: 'arimo'; 3 | src: url(../fonts/arimo.woff2) format('woff2'), 4 | url(../fonts/arimo.woff) format('woff'); 5 | } 6 | @font-face{ 7 | font-family: 'brankovic'; 8 | src: url(../fonts/brankovic.ttf) format('truetype'); 9 | } 10 | @font-face{ 11 | font-family: 'digital'; 12 | src: url(../fonts/digital.ttf) format('truetype'); 13 | } 14 | @font-face{ 15 | font-family: 'Audiowide'; 16 | src: url(../fonts/Audiowide.ttf) format('truetype'); 17 | } 18 | 19 | @viewport { 20 | width: device-width; 21 | zoom: 1; 22 | user-zoom: fixed; 23 | } 24 | 25 | #menu div { 26 | height: 55px; 27 | width: 55px; 28 | } 29 | 30 | #menu img { 31 | height: 48px; 32 | width: 48px; 33 | padding: 2.5px 0px 0px 2.5px; 34 | } 35 | 36 | .autoHide { 37 | display:none; 38 | } 39 | 40 | body,html 41 | { 42 | height: 95%; 43 | margin: 0 auto; 44 | padding: 10px 0px 0px 4px; 45 | cursor: default; 46 | } 47 | 48 | 49 | @media screen and (min-height: 610px) { 50 | .autoHide { 51 | display:block; 52 | } 53 | 54 | body,html 55 | { 56 | padding: 5px 0px 0px 4px; 57 | } 58 | } 59 | 60 | 61 | 62 | body 63 | { 64 | background-color: #000; 65 | } 66 | 67 | /* preload */ 68 | body:after{ 69 | display:none; 70 | content: 71 | url(../icons/offline.png); 72 | 73 | } 74 | 75 | #black 76 | { 77 | content:""; 78 | position:absolute; 79 | left:0; 80 | right:0; 81 | top:0; 82 | bottom:0; 83 | background:rgba(0,0,0,0); 84 | z-index:-1; 85 | } 86 | 87 | .cnt 88 | { 89 | 90 | /*width: 990px;*/ 91 | width: 940px; 92 | margin: 0 auto; 93 | text-align: center; 94 | 95 | } 96 | 97 | .swipe 98 | { 99 | overflow: hidden; 100 | visibility: hidden; 101 | position: relative; 102 | } 103 | 104 | .swipe-wrap 105 | { 106 | overflow: hidden; 107 | position: relative; 108 | } 109 | .swipe-wrap > div 110 | { 111 | float:left; 112 | width:100%; 113 | min-height: 100%; 114 | position: relative; 115 | } 116 | 117 | .v-wrap 118 | { 119 | height: 100%; 120 | white-space: nowrap; 121 | text-align: center; 122 | 123 | } 124 | 125 | .v-wrap:before 126 | { 127 | content: ""; 128 | display: inline-block; 129 | vertical-align: middle; 130 | width: 0; 131 | margin-right: -2em; 132 | height: 100%; 133 | 134 | } 135 | 136 | .v-box 137 | { 138 | display: inline-block; 139 | vertical-align: middle; 140 | white-space: normal; 141 | } 142 | 143 | 144 | a, a:visited { text-decoration: none; color: #336699; } 145 | a:hover { text-decoration: none; color: #003366; } 146 | 147 | .frame 148 | { 149 | float: left; 150 | margin: 0px; 151 | padding: 0px 2px 0px 2px; 152 | 153 | } 154 | 155 | sup 156 | { 157 | vertical-align: super; 158 | line-height: 0; 159 | } 160 | 161 | span.percent { 162 | color: #FD0CE9; 163 | font-size: 20px; 164 | 165 | } 166 | 167 | img[alt] { 168 | color: transparent; 169 | text-shadow: none; 170 | } 171 | 172 | #popup_switch, #popup_graph, 173 | #popup_meteo0, #popup_meteo1, #popup_meteo2, #popup_meteo3, #popup_meteo4, 174 | #popup_secpanel, #popup_help, #popup_camera, #popup_selector, #popup_range 175 | { 176 | display: none; 177 | position: absolute; 178 | top: 50%; 179 | left: 50%; 180 | width: 300px; 181 | height: 75px; 182 | margin-left: -150px; 183 | margin-top: -100px; 184 | padding: 0px; 185 | border: 2px solid red; 186 | background: #333; 187 | z-index:1002; 188 | overflow:hidden; 189 | font-family: 'Open Sans', sans-serif; 190 | font-weight: bold; 191 | font-size: 25px; 192 | color: white; 193 | line-height: 75px; 194 | text-align: center; 195 | border-radius: 15px 15px 15px 15px; 196 | } 197 | 198 | #popup_range 199 | { 200 | margin-left: -250px; 201 | margin-top: -150px; 202 | width: 500px; 203 | height: 175px; 204 | 205 | } 206 | 207 | #popup_range label 208 | { 209 | text-align: center; 210 | } 211 | 212 | #popup_range input 213 | { 214 | border:0; 215 | background:transparent; 216 | color:#f6931f; 217 | font-weight:bold; 218 | font-size:25px; 219 | } 220 | 221 | #slider-H 222 | { 223 | margin-left: 50px; 224 | width: 400px; 225 | height:15px; 226 | } 227 | 228 | #popup_selector 229 | { 230 | /*top: calc(50% - attr(height) / 2); 231 | left: calc(50% - attr(width) / 2);*/ 232 | top:-18px; 233 | left:none; 234 | font-size: 30px; 235 | width: auto; 236 | min-width: 250px; 237 | height: auto; 238 | min-height: 75px; 239 | line-height: 45px; 240 | padding: 0px 30px 0px 30px; 241 | /*margin: 100 auto;*/ 242 | margin-top: 50vh; /* poussé de la moitié de hauteur de viewport */ 243 | transform: translateY(-50%); /* tiré de la moitié de sa propre hauteur */ 244 | 245 | } 246 | 247 | #popup_meteo0, #popup_meteo1, #popup_meteo2, #popup_meteo3 248 | { 249 | width: 650px; 250 | height: 250px; 251 | margin-left: -325px; 252 | margin-top: -155px; 253 | } 254 | 255 | #popup_meteo0:after, #popup_meteo1:after, #popup_meteo2:after, #popup_meteo3:after 256 | { 257 | content: "\A Waiting.."; 258 | width: 650px; 259 | height: 250px; 260 | line-height: 15px; 261 | } 262 | 263 | #popup_meteo4 264 | { 265 | width: 828px; 266 | height: 302px; 267 | margin-left: -415px; 268 | margin-top: -165px; 269 | } 270 | 271 | #popup_meteo4:after 272 | { 273 | content: "\A Waiting.."; 274 | width: 828px; 275 | height: 272px; 276 | line-height: 15px; 277 | } 278 | 279 | #popup_graph 280 | { 281 | width: 850px; 282 | height: 280px; 283 | margin-left: -430px; 284 | margin-top: -180px; 285 | } 286 | 287 | .highcharts-container { 288 | text-shadow: none; 289 | } 290 | .highcharts-background { 291 | fill: white; 292 | } 293 | .highcharts-axis-title { 294 | font-family: Tahoma, sans-serif; 295 | font-size: 13px; 296 | font-weight: bold; 297 | } 298 | .highcharts-color-0{ 299 | stroke: #3333FF; 300 | } 301 | .highcharts-color-1{ 302 | stroke: #0099FF; 303 | } 304 | 305 | #popup_camera 306 | { 307 | width: 640px; 308 | height: 480px; 309 | margin-left: -325px; 310 | margin-top: -255px; 311 | background: url(../icons/offline.jpg) no-repeat; 312 | background-size: 640px 480px; 313 | } 314 | 315 | #popup_camera img 316 | { 317 | width: 640px; 318 | height: 480px; 319 | } 320 | 321 | 322 | #popup_secpanel 323 | { 324 | text-align:center; 325 | border: none; 326 | width: 455px; 327 | height: 600px; 328 | margin-left: -240px; 329 | margin-top: -240px; 330 | border-radius: 0px 0px 0px 0px; 331 | } 332 | 333 | #popup_freeRemote 334 | { 335 | display: none; 336 | position: absolute; 337 | top: 50%; 338 | left: 50%; 339 | padding: 0px; 340 | border: 2px solid red; 341 | background: #333; 342 | z-index:1002; 343 | overflow:hidden; 344 | border-radius: 15px 15px 15px 15px; 345 | width:630px; 346 | height:360px; 347 | margin-left:-325px; 348 | margin-top:-200px 349 | } 350 | 351 | #fade,#fade2 352 | { 353 | display: none; 354 | position: fixed; 355 | top: 0%; 356 | left: 0%; 357 | width: 100%; 358 | height: 100%; 359 | background-color: #000; 360 | z-index:1001; 361 | opacity:.70; 362 | } 363 | 364 | #popup_offline 365 | { 366 | display: none; 367 | position: absolute; 368 | top: 50%; 369 | left: 50%; 370 | width: 358px; 371 | height: 108px; 372 | margin-left: -180px; 373 | margin-top: -130px; 374 | padding: 0px; 375 | border: 2px solid red; 376 | background: url(../icons/offline.png) no-repeat; 377 | z-index:1002; 378 | overflow:hidden; 379 | font-family: 'Open Sans', sans-serif; 380 | font-weight: bold; 381 | font-size: 25px; 382 | color: white; 383 | line-height: 75px; 384 | text-align: center; 385 | border-radius: 15px 15px 15px 15px; 386 | } 387 | 388 | .camera 389 | { 390 | background: url(../icons/offline.jpg) no-repeat; 391 | background-size: 204px 153px; 392 | width: 204px; 393 | height: 153px; 394 | } 395 | 396 | .blink_me { 397 | animation-name: blinker; 398 | animation-duration: 1s; 399 | animation-timing-function: linear; 400 | animation-iteration-count: infinite; 401 | } 402 | 403 | @keyframes blinker { 404 | 0% { opacity: 1.0; } 405 | 50% { opacity: 0.5; } 406 | 100% { opacity: 1.0; } 407 | } 408 | 409 | .T35 { color: #FF0000;} 410 | .T34 { color: #FE1400;} 411 | .T33 { color: #FD2800;} 412 | .T32 { color: #FD3C00;} 413 | .T31 { color: #FC5000;} 414 | .T30 { color: #FC6500;} 415 | .T29 { color: #FC6F0A;} 416 | .T28 { color: #FC7A14;} 417 | .T27 { color: #FC841E;} 418 | .T26 { color: #FC8F28;} 419 | .T25 { color: #FC9A32;} 420 | .T24 { color: #FCA43C;} 421 | .T23 { color: #FCAF46;} 422 | .T22 { color: #FCB950;} 423 | .T21 { color: #FCC45A;} 424 | .T20 { color: #FCCF65;} 425 | .T19 { color: #FCD270;} 426 | .T18 { color: #FDD67B;} 427 | .T17 { color: #FDDA87;} 428 | .T16 { color: #FEDE92;} 429 | .T15 { color: #FFE29E;} 430 | .T14 { color: #F8E5A1;} 431 | .T13 { color: #F1E9A4;} 432 | .T12 { color: #EAEDA7;} 433 | .T11 { color: #E3F1AA;} 434 | .T10 { color: #DDF5AE;} 435 | .T9 { color: #D3F5B7;} 436 | .T8 { color: #CAF5C0;} 437 | .T7 { color: #C0F5C9;} 438 | .T6 { color: #B7F5D2;} 439 | .T5 { color: #AEF5DC;} 440 | .T4 { color: #AEF1E1;} 441 | .T3 { color: #AEEDE6;} 442 | .T2 { color: #AEEAEB;} 443 | .T1 { color: #AEE6F0;} 444 | .T0 { color: #AEE3F5;} 445 | .T00 { color: #EBF4F7;} 446 | 447 | button.yellow{ 448 | -moz-box-shadow: 0px 1px 0px 0px #fff6af; 449 | -webkit-box-shadow: 0px 1px 0px 0px #fff6af; 450 | box-shadow: 0px 1px 0px 0px #fff6af; 451 | background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #ffec64), color-stop(1, #ffab23)); 452 | background:-moz-linear-gradient(top, #ffec64 5%, #ffab23 100%); 453 | background:-webkit-linear-gradient(top, #ffec64 5%, #ffab23 100%); 454 | background:-o-linear-gradient(top, #ffec64 5%, #ffab23 100%); 455 | background:-ms-linear-gradient(top, #ffec64 5%, #ffab23 100%); 456 | background:linear-gradient(to bottom, #ffec64 5%, #ffab23 100%); 457 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffec64', endColorstr='#ffab23',GradientType=0); 458 | background-color:#ffec64; 459 | -moz-border-radius:6px; 460 | -webkit-border-radius:6px; 461 | border-radius:6px; 462 | border:1px solid #ffaa22; 463 | display:inline-block; 464 | cursor:pointer; 465 | color:#333333; 466 | font-family:Arial; 467 | font-size:15px; 468 | font-weight:bold; 469 | padding:6px 24px; 470 | text-decoration:none; 471 | text-shadow:0px 1px 0px #ffee66; 472 | } 473 | 474 | button.pink{ 475 | -moz-box-shadow: 0px 1px 0px 0px #899599; 476 | -webkit-box-shadow: 0px 1px 0px 0px #899599; 477 | box-shadow: 0px 1px 0px 0px #899599; 478 | background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #bab1ba)); 479 | background:-moz-linear-gradient(top, #ededed 5%, #bab1ba 100%); 480 | background:-webkit-linear-gradient(top, #ededed 5%, #bab1ba 100%); 481 | background:-o-linear-gradient(top, #ededed 5%, #bab1ba 100%); 482 | background:-ms-linear-gradient(top, #ededed 5%, #bab1ba 100%); 483 | background:linear-gradient(to bottom, #ededed 5%, #bab1ba 100%); 484 | filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#bab1ba',GradientType=0); 485 | background-color:#ededed; 486 | -moz-border-radius:6px; 487 | -webkit-border-radius:6px; 488 | border-radius:6px; 489 | border:1px solid #d6bcd6; 490 | display:inline-block; 491 | cursor:pointer; 492 | color:#3a8a9e; 493 | font-family:Arial; 494 | font-size:15px; 495 | font-weight:bold; 496 | padding:6px 24px; 497 | text-decoration:none; 498 | text-shadow:0px 1px 0px #e1e2ed; 499 | } 500 | -------------------------------------------------------------------------------- /css/highcharts.css: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Highcharts 3 | * 4 | * (c) 2009-2016 Torstein Honsi 5 | * 6 | * License: www.highcharts.com/license 7 | */ 8 | .highcharts-container { 9 | position: relative; 10 | overflow: hidden; 11 | width: 100%; 12 | height: 100%; 13 | text-align: left; 14 | line-height: normal; 15 | z-index: 0; 16 | /* #1072 */ 17 | -webkit-tap-highlight-color: transparent; 18 | font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif; 19 | font-size: 12px; 20 | } 21 | 22 | .highcharts-root text { 23 | stroke-width: 0; 24 | } 25 | 26 | .highcharts-background { 27 | fill: #ffffff; 28 | } 29 | 30 | .highcharts-plot-border, .highcharts-plot-background { 31 | fill: none; 32 | } 33 | 34 | .highcharts-label-box { 35 | fill: none; 36 | } 37 | 38 | .highcharts-button-box { 39 | fill: inherit; 40 | } 41 | 42 | /* Titles */ 43 | .highcharts-title { 44 | fill: #333333; 45 | font-size: 1.5em; 46 | } 47 | 48 | .highcharts-subtitle { 49 | fill: #666666; 50 | } 51 | 52 | /* Axes */ 53 | .highcharts-axis-line { 54 | fill: none; 55 | stroke: #ccd6eb; 56 | } 57 | 58 | .highcharts-yaxis .highcharts-axis-line { 59 | stroke-width: 0; 60 | } 61 | 62 | .highcharts-axis-title { 63 | fill: #666666; 64 | } 65 | 66 | .highcharts-axis-labels { 67 | fill: #666666; 68 | cursor: default; 69 | font-size: 0.9em; 70 | } 71 | 72 | .highcharts-grid-line { 73 | fill: none; 74 | stroke: #e6e6e6; 75 | } 76 | 77 | .highcharts-xaxis-grid .highcharts-grid-line { 78 | stroke-width: 0; 79 | } 80 | 81 | .highcharts-tick { 82 | stroke: #ccd6eb; 83 | } 84 | 85 | .highcharts-yaxis .highcharts-tick { 86 | stroke-width: 0; 87 | } 88 | 89 | .highcharts-minor-grid-line { 90 | stroke: #f2f2f2; 91 | } 92 | 93 | .highcharts-crosshair-thin { 94 | stroke-width: 1px; 95 | stroke: #cccccc; 96 | } 97 | 98 | .highcharts-crosshair-category { 99 | stroke: #ccd6eb; 100 | stroke-opacity: 0.25; 101 | } 102 | 103 | /* Credits */ 104 | .highcharts-credits { 105 | cursor: pointer; 106 | fill: #999999; 107 | font-size: 0.7em; 108 | transition: fill 250ms, font-size 250ms; 109 | } 110 | 111 | .highcharts-credits:hover { 112 | fill: black; 113 | font-size: 1em; 114 | } 115 | 116 | /* Tooltip */ 117 | .highcharts-tooltip { 118 | cursor: default; 119 | pointer-events: none; 120 | white-space: nowrap; 121 | transition: stroke 150ms; 122 | } 123 | 124 | .highcharts-tooltip text { 125 | fill: #333333; 126 | } 127 | 128 | .highcharts-tooltip .highcharts-header { 129 | font-size: 0.85em; 130 | } 131 | 132 | .highcharts-tooltip-box { 133 | stroke-width: 1px; 134 | fill: #f7f7f7; 135 | fill-opacity: 0.85; 136 | } 137 | 138 | .highcharts-selection-marker { 139 | fill: #335cad; 140 | fill-opacity: 0.25; 141 | } 142 | 143 | .highcharts-graph { 144 | fill: none; 145 | stroke-width: 2px; 146 | stroke-linecap: round; 147 | stroke-linejoin: round; 148 | } 149 | 150 | .highcharts-state-hover .highcharts-graph { 151 | stroke-width: 3; 152 | } 153 | 154 | .highcharts-state-hover path { 155 | transition: stroke-width 50; 156 | /* quick in */ 157 | } 158 | 159 | .highcharts-state-normal path { 160 | transition: stroke-width 250ms; 161 | /* slow out */ 162 | } 163 | 164 | /* Legend hover affects points and series */ 165 | g.highcharts-series, .highcharts-point { 166 | transition: opacity 250ms; 167 | } 168 | 169 | .highcharts-legend-series-active g.highcharts-series:not(.highcharts-series-hover), 170 | .highcharts-legend-point-active .highcharts-point:not(.highcharts-point-hover) { 171 | opacity: 0.2; 172 | } 173 | 174 | /* Series options */ 175 | /* Default colors */ 176 | .highcharts-color-0 { 177 | fill: #7cb5ec; 178 | stroke: #7cb5ec; 179 | } 180 | 181 | .highcharts-color-1 { 182 | fill: #434348; 183 | stroke: #434348; 184 | } 185 | 186 | .highcharts-color-2 { 187 | fill: #90ed7d; 188 | stroke: #90ed7d; 189 | } 190 | 191 | .highcharts-color-3 { 192 | fill: #f7a35c; 193 | stroke: #f7a35c; 194 | } 195 | 196 | .highcharts-color-4 { 197 | fill: #8085e9; 198 | stroke: #8085e9; 199 | } 200 | 201 | .highcharts-color-5 { 202 | fill: #f15c80; 203 | stroke: #f15c80; 204 | } 205 | 206 | .highcharts-color-6 { 207 | fill: #e4d354; 208 | stroke: #e4d354; 209 | } 210 | 211 | .highcharts-color-7 { 212 | fill: #2b908f; 213 | stroke: #2b908f; 214 | } 215 | 216 | .highcharts-color-8 { 217 | fill: #f45b5b; 218 | stroke: #f45b5b; 219 | } 220 | 221 | .highcharts-color-9 { 222 | fill: #91e8e1; 223 | stroke: #91e8e1; 224 | } 225 | 226 | .highcharts-area { 227 | fill-opacity: 0.75; 228 | stroke-width: 0; 229 | } 230 | 231 | .highcharts-markers { 232 | stroke-width: 1px; 233 | stroke: #ffffff; 234 | } 235 | 236 | .highcharts-point { 237 | stroke-width: 1px; 238 | } 239 | 240 | .highcharts-dense-data .highcharts-point { 241 | stroke-width: 0; 242 | } 243 | 244 | .highcharts-data-label { 245 | font-size: 0.9em; 246 | font-weight: bold; 247 | } 248 | 249 | .highcharts-data-label-box { 250 | fill: none; 251 | stroke-width: 0; 252 | } 253 | 254 | .highcharts-data-label text { 255 | fill: #333333; 256 | } 257 | 258 | .highcharts-data-label-connector { 259 | fill: none; 260 | } 261 | 262 | .highcharts-halo { 263 | fill-opacity: 0.25; 264 | stroke-width: 0; 265 | } 266 | 267 | .highcharts-point-select { 268 | fill: #cccccc; 269 | stroke: #000000; 270 | } 271 | 272 | .highcharts-column-series .highcharts-point { 273 | stroke: #ffffff; 274 | transition: fill-opacity 250ms; 275 | } 276 | 277 | .highcharts-column-series .highcharts-point-hover { 278 | fill-opacity: 0.75; 279 | transition: fill-opacity 50ms; 280 | } 281 | 282 | .highcharts-pie-series .highcharts-point { 283 | stroke-linejoin: round; 284 | stroke: #ffffff; 285 | } 286 | 287 | .highcharts-pie-series .highcharts-point-hover { 288 | fill-opacity: 0.75; 289 | transition: fill-opacity 50ms; 290 | } 291 | 292 | .highcharts-pie-series .highcharts-point-select { 293 | fill: inherit; 294 | stroke: inherit; 295 | } 296 | 297 | .highcharts-funnel-series .highcharts-point { 298 | stroke-linejoin: round; 299 | stroke: #ffffff; 300 | } 301 | 302 | .highcharts-funnel-series .highcharts-point-hover { 303 | fill-opacity: 0.75; 304 | transition: fill-opacity 50ms; 305 | } 306 | 307 | .highcharts-funnel-series .highcharts-point-select { 308 | fill: inherit; 309 | stroke: inherit; 310 | } 311 | 312 | .highcharts-pyramid-series .highcharts-point { 313 | stroke-linejoin: round; 314 | stroke: #ffffff; 315 | } 316 | 317 | .highcharts-pyramid-series .highcharts-point-hover { 318 | fill-opacity: 0.75; 319 | transition: fill-opacity 50ms; 320 | } 321 | 322 | .highcharts-pyramid-series .highcharts-point-select { 323 | fill: inherit; 324 | stroke: inherit; 325 | } 326 | 327 | .highcharts-solidgauge-series .highcharts-point { 328 | stroke-width: 0; 329 | } 330 | 331 | .highcharts-treemap-series .highcharts-point { 332 | stroke-width: 1px; 333 | stroke: #e6e6e6; 334 | transition: stroke 250ms, fill 250ms, fill-opacity 250ms; 335 | } 336 | 337 | .highcharts-treemap-series .highcharts-point-hover { 338 | stroke: #999999; 339 | transition: stroke 25ms, fill 25ms, fill-opacity 25ms; 340 | } 341 | 342 | .highcharts-treemap-series .highcharts-above-level { 343 | display: none; 344 | } 345 | 346 | .highcharts-treemap-series .highcharts-internal-node { 347 | fill: none; 348 | } 349 | 350 | .highcharts-treemap-series .highcharts-internal-node-interactive { 351 | fill-opacity: 0.15; 352 | cursor: pointer; 353 | } 354 | 355 | .highcharts-treemap-series .highcharts-internal-node-interactive:hover { 356 | fill-opacity: 0.75; 357 | } 358 | 359 | /* Legend */ 360 | .highcharts-legend-box { 361 | fill: none; 362 | stroke-width: 0; 363 | } 364 | 365 | .highcharts-legend-item text { 366 | fill: #333333; 367 | font-weight: bold; 368 | cursor: pointer; 369 | stroke-width: 0; 370 | } 371 | 372 | .highcharts-legend-item:hover text { 373 | fill: #000000; 374 | } 375 | 376 | .highcharts-legend-item-hidden * { 377 | fill: #cccccc !important; 378 | stroke: #cccccc !important; 379 | transition: fill 250ms; 380 | } 381 | 382 | .highcharts-legend-nav-active { 383 | fill: #003399; 384 | cursor: pointer; 385 | } 386 | 387 | .highcharts-legend-nav-inactive { 388 | fill: #cccccc; 389 | } 390 | 391 | .highcharts-legend-title-box { 392 | fill: none; 393 | stroke-width: 0; 394 | } 395 | 396 | /* Loading */ 397 | .highcharts-loading { 398 | position: absolute; 399 | background-color: #ffffff; 400 | opacity: 0.5; 401 | text-align: center; 402 | z-index: 10; 403 | transition: opacity 250ms; 404 | } 405 | 406 | .highcharts-loading-hidden { 407 | height: 0 !important; 408 | opacity: 0; 409 | overflow: hidden; 410 | transition: opacity 250ms, height 250ms step-end; 411 | } 412 | 413 | .highcharts-loading-inner { 414 | font-weight: bold; 415 | position: relative; 416 | top: 45%; 417 | } 418 | 419 | /* Plot bands and polar pane backgrounds */ 420 | .highcharts-plot-band { 421 | fill: #000000; 422 | fill-opacity: 0.05; 423 | } 424 | 425 | .highcharts-plot-line { 426 | fill: none; 427 | stroke: #999999; 428 | stroke-width: 1px; 429 | } 430 | 431 | /* Highcharts More */ 432 | .highcharts-boxplot-box { 433 | fill: #ffffff; 434 | } 435 | 436 | .highcharts-boxplot-median { 437 | stroke-width: 2px; 438 | } 439 | 440 | .highcharts-bubble-series .highcharts-point { 441 | fill-opacity: 0.5; 442 | } 443 | 444 | .highcharts-errorbar-series .highcharts-point { 445 | stroke: #000000; 446 | } 447 | 448 | .highcharts-gauge-series .highcharts-data-label-box { 449 | stroke: #cccccc; 450 | stroke-width: 1px; 451 | } 452 | 453 | .highcharts-gauge-series .highcharts-dial { 454 | fill: #000000; 455 | stroke-width: 0; 456 | } 457 | 458 | .highcharts-polygon-series .highcharts-graph { 459 | fill: inherit; 460 | stroke-width: 0; 461 | } 462 | 463 | .highcharts-waterfall-series .highcharts-graph { 464 | stroke: #333333; 465 | stroke-dasharray: 1, 3; 466 | } 467 | 468 | /* Highstock */ 469 | .highcharts-navigator-mask { 470 | fill: #6685c2; 471 | /* navigator.maskFill option */ 472 | fill-opacity: 0.25; 473 | } 474 | 475 | .highcharts-navigator-mask-inside { 476 | fill: #6685c2; 477 | /* navigator.maskFill option */ 478 | fill-opacity: 0.25; 479 | cursor: ew-resize; 480 | } 481 | 482 | .highcharts-navigator-outline { 483 | stroke: #cccccc; 484 | fill: none; 485 | } 486 | 487 | .highcharts-navigator-handle { 488 | stroke: #cccccc; 489 | fill: #f2f2f2; 490 | cursor: ew-resize; 491 | } 492 | 493 | .highcharts-navigator-series { 494 | fill: #335cad; 495 | stroke: #335cad; 496 | } 497 | 498 | .highcharts-navigator-series .highcharts-graph { 499 | stroke-width: 1px; 500 | } 501 | 502 | .highcharts-navigator-series .highcharts-area { 503 | fill-opacity: 0.05; 504 | } 505 | 506 | .highcharts-navigator-xaxis .highcharts-axis-line { 507 | stroke-width: 0; 508 | } 509 | 510 | .highcharts-navigator-xaxis .highcharts-grid-line { 511 | stroke-width: 1px; 512 | stroke: #e6e6e6; 513 | } 514 | 515 | .highcharts-navigator-xaxis.highcharts-axis-labels { 516 | fill: #999999; 517 | } 518 | 519 | .highcharts-navigator-yaxis .highcharts-grid-line { 520 | stroke-width: 0; 521 | } 522 | 523 | .highcharts-scrollbar-thumb { 524 | fill: #cccccc; 525 | stroke: #cccccc; 526 | stroke-width: 1px; 527 | } 528 | 529 | .highcharts-scrollbar-button { 530 | fill: #e6e6e6; 531 | stroke: #cccccc; 532 | stroke-width: 1px; 533 | } 534 | 535 | .highcharts-scrollbar-arrow { 536 | fill: #666666; 537 | } 538 | 539 | .highcharts-scrollbar-rifles { 540 | stroke: #666666; 541 | stroke-width: 1px; 542 | } 543 | 544 | .highcharts-scrollbar-track { 545 | fill: #f2f2f2; 546 | stroke: #f2f2f2; 547 | stroke-width: 1px; 548 | } 549 | 550 | .highcharts-button { 551 | fill: #f7f7f7; 552 | stroke: #cccccc; 553 | cursor: default; 554 | stroke-width: 1px; 555 | transition: fill 250ms; 556 | } 557 | 558 | .highcharts-button text { 559 | fill: #333333; 560 | } 561 | 562 | .highcharts-button-hover { 563 | transition: fill 0ms; 564 | fill: #e6e6e6; 565 | stroke: #333333; 566 | } 567 | 568 | .highcharts-button-pressed { 569 | font-weight: bold; 570 | fill: #e6ebf5; 571 | stroke: #335cad; 572 | } 573 | 574 | .highcharts-button-disabled text { 575 | fill: #cccccc; 576 | } 577 | 578 | .highcharts-range-selector-buttons .highcharts-button { 579 | stroke-width: 0; 580 | } 581 | 582 | .highcharts-range-label rect { 583 | fill: none; 584 | } 585 | 586 | .highcharts-range-label text { 587 | fill: #666666; 588 | } 589 | 590 | .highcharts-range-input rect { 591 | fill: none; 592 | } 593 | 594 | .highcharts-range-input text { 595 | fill: #333333; 596 | } 597 | 598 | input.highcharts-range-selector { 599 | position: absolute; 600 | border: 0; 601 | width: 1px; 602 | /* Chrome needs a pixel to see it */ 603 | height: 1px; 604 | padding: 0; 605 | text-align: center; 606 | left: -9em; 607 | /* #4798 */ 608 | } 609 | 610 | .highcharts-crosshair-label text { 611 | fill: #ffffff; 612 | font-size: 1.1em; 613 | } 614 | 615 | .highcharts-crosshair-label .highcharts-label-box { 616 | fill: inherit; 617 | } 618 | 619 | .highcharts-candlestick-series .highcharts-point { 620 | stroke: #000000; 621 | stroke-width: 1px; 622 | } 623 | 624 | .highcharts-candlestick-series .highcharts-point-up { 625 | fill: #ffffff; 626 | } 627 | 628 | .highcharts-ohlc-series .highcharts-point-hover { 629 | stroke-width: 3px; 630 | } 631 | 632 | .highcharts-flags-series .highcharts-point { 633 | stroke: #999999; 634 | fill: #ffffff; 635 | } 636 | 637 | .highcharts-flags-series .highcharts-point-hover { 638 | stroke: #000000; 639 | fill: #ccd6eb; 640 | } 641 | 642 | .highcharts-flags-series .highcharts-point text { 643 | fill: #000000; 644 | font-size: 0.9em; 645 | font-weight: bold; 646 | } 647 | 648 | /* Highmaps */ 649 | .highcharts-map-series .highcharts-point { 650 | transition: fill 500ms, fill-opacity 500ms, stroke-width 250ms; 651 | stroke: #cccccc; 652 | } 653 | 654 | .highcharts-map-series .highcharts-point-hover { 655 | transition: fill 0ms, fill-opacity 0ms; 656 | fill-opacity: 0.5; 657 | stroke-width: 2px; 658 | } 659 | 660 | .highcharts-mapline-series .highcharts-point { 661 | fill: none; 662 | } 663 | 664 | .highcharts-heatmap-series .highcharts-point { 665 | stroke-width: 0; 666 | } 667 | 668 | .highcharts-map-navigation { 669 | font-size: 1.3em; 670 | font-weight: bold; 671 | text-align: center; 672 | } 673 | 674 | .highcharts-coloraxis { 675 | stroke-width: 0; 676 | } 677 | 678 | .highcharts-coloraxis-marker { 679 | fill: #999999; 680 | } 681 | 682 | .highcharts-null-point { 683 | fill: #f7f7f7; 684 | } 685 | 686 | /* 3d charts */ 687 | .highcharts-3d-frame { 688 | fill: transparent; 689 | } 690 | 691 | .highcharts-column-series .highcharts-point { 692 | stroke: inherit; 693 | /* use point color */ 694 | } 695 | 696 | /* Exporting module */ 697 | .highcharts-contextbutton { 698 | fill: #ffffff; 699 | /* needed to capture hover */ 700 | stroke: none; 701 | stroke-linecap: round; 702 | } 703 | 704 | .highcharts-contextbutton:hover { 705 | fill: #e6e6e6; 706 | stroke: #e6e6e6; 707 | } 708 | 709 | .highcharts-button-symbol { 710 | stroke: #666666; 711 | stroke-width: 3px; 712 | } 713 | 714 | .highcharts-menu { 715 | border: 1px solid #999999; 716 | background: #ffffff; 717 | padding: 5px 0; 718 | box-shadow: 3px 3px 10px #888; 719 | } 720 | 721 | .highcharts-menu-item { 722 | padding: 0.5em 1em; 723 | background: none; 724 | color: #333333; 725 | cursor: pointer; 726 | transition: background 250ms, color 250ms; 727 | } 728 | 729 | .highcharts-menu-item:hover { 730 | background: #335cad; 731 | color: #ffffff; 732 | } 733 | 734 | /* Drilldown module */ 735 | .highcharts-drilldown-point { 736 | cursor: pointer; 737 | } 738 | 739 | .highcharts-drilldown-data-label text, .highcharts-drilldown-axis-label { 740 | cursor: pointer; 741 | fill: #003399; 742 | font-weight: bold; 743 | text-decoration: underline; 744 | } 745 | 746 | /* No-data module */ 747 | .highcharts-no-data text { 748 | font-weight: bold; 749 | font-size: 12px; 750 | fill: #666666; 751 | } -------------------------------------------------------------------------------- /js/frontpage_settings.js: -------------------------------------------------------------------------------- 1 | 2 | // Change the text for on/off switches 3 | var txt_on = 'On'; 4 | var txt_off = 'Off'; 5 | var txt_closed = 'Fermée'; 6 | var txt_open = 'Ouverte'; 7 | var txt_sunboth='Soleil'; 8 | var txt_sunset='Coucher soleil'; 9 | var txt_sunrise='Lever soleil'; 10 | var days = ["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"]; 11 | var months = ["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Décembre"]; 12 | 13 | // Change the text displayed in PopUps 14 | var txt_switch_on = '\'Switch On\''; 15 | var txt_switch_off = '\'Switch Off\''; 16 | var txt_blind_up = '\'Ouverture\''; 17 | var txt_blind_down = '\'Fermeture\''; 18 | var txt_blind_stop = '\'Arrêt\''; 19 | var txt_wrong_code = 'Mot de pass erroné'; 20 | 21 | // Change backgrounds images,size and brightness 22 | var bg_day = 'wallpaper/pissanli.jpg'; // image de fond le jour, laisser vide pour fond noir 23 | var bg_night = 'wallpaper/romantic.jpg'; // image de fond la nuit, laisser vide pour fond noir 24 | var bg_day_spring = ''; // image de fond pour la saison printemps 25 | var bg_night_spring = ''; 26 | var bg_day_summer = ''; // image de fond pour la saison été 27 | var bg_night_summer = ''; 28 | var bg_day_autumn = ''; // image de fond pour la saison automne 29 | var bg_night_autumn = ''; 30 | var bg_day_winter = ''; // image de fond pour la saison hiver 31 | var bg_night_winter = ''; 32 | var bg_size = 'cover'; // taille de l'image de fond (ex: '1024px 768px') 'cover' : "couvre" au mieux tout le fond. 33 | var bg_dayBright = 0.5; // luminosité du fond le jour (0=normal 1=noir) 34 | var bg_nightBright = 0.5; // luminosité du fond la nuit (0=normal 1=noir) 35 | 36 | // Change the timeout of the PopUp 37 | var switch_timeout = 1000; // durée d'affichage (en milisecondes) [ 0 = désactivée ] 38 | var wrongCode_timeout = 1500; // durée d'affichage (en milisecondes) 39 | var fad_Duration = 200; // durée de l'animation (en milisecondes) [ 0 = désactivée ] 40 | 41 | // Special items 42 | var city = 'paris'; // localité pour la popup météo option 0,1,2,3 (lors du clic sur l'icon météo) cf http://www.prevision-meteo.ch/ 43 | var place = 'France/Île-de-France/Paris/'; // localité pour la popup météo option 4 (lors du clic sur l'icon météo) cf http://www.yr.no/ 44 | var blink = false; // faire clignoter les valeurs en alarme (true/false) 45 | var showMonth = false; // affichage du mois dans la date (true/false) 46 | 47 | // Swipe options 48 | var speed = 300; // durée de l'animation (en milisecondes) 49 | var delai = 0; // défilement automatique, temps avant changement de page (en milisecondes) 50 | var direction = 'next'; // si delai est différent de 0, choix d'aller à la page suivante ou de revenir à la première page ('next'/'index') 51 | 52 | // Display 53 | var connectTimeout = 3000; // durée avant d'afficher un domoticz offline (en millisecondes) 54 | var refresh = 8000; // temps entre 2 rafraîchissements (en millisecondes) 55 | var snow = false; // ajout effet chute de neige.. 56 | 57 | // Debug 58 | var debug = false; // affichage des infos de debug dans la console (true/false) 59 | 60 | // ############################################################################################################ 61 | // #### vvvvv USER VALUES below vvvvv ####### 62 | // ############################################################################################################ 63 | 64 | 65 | $.roomplan = 0; // define roomplan in Domoticz and create items below. (0 = all devices, not limited to a roomplan) 66 | 67 | //$.domoticzurl = "http://192.168.22.100:8080"; // url de connection à domoticz (ex: http://paul:ochon@toto.com:8765) 68 | $.domoticzurl = location.protocol + "//" + location.host; // auto detect (location.protocol + "//paul:ochon@" + location.host) 69 | 70 | $.PagesList = [ 71 | 72 | // ['html page name (location must be in 'monitor/pages/')','menu icon name (location must be in 'monitor/icons/menu/')], 73 | 74 | ['iframe.html','domoticz.png'], 75 | ['clock.html','clock.png'], 76 | ['meteo.html','meteo.png'], 77 | ['pluie.html','pluie.png'], 78 | ['page1.html','light1.png'], 79 | ['page2.html','light2.png'], 80 | ['page3.html','light3.png'], 81 | ['page4.html','light4.png'], 82 | ['page5.html','chauffage.png'], 83 | ['trafic.html','map.png'], 84 | ['logs.html','log.png'], 85 | 86 | 87 | 88 | 89 | []]; 90 | 91 | 92 | $.PageArray = [ 93 | 94 | //page 1 95 | 96 | // ['idx','value', 'cellule', 'description','1=lastseen 2=icon 3=both ou J+x(popup météo)','pas de thermostat','override css','Alarme ou valeur max de thermostat'], 97 | 98 | ['0','Clock', 'cell1', '','','','font-family:digital;color:#8BFD1C;font-size:160%',''], // heure et date 99 | ['0','', 'cell2', '','','','',''], 100 | ['0','', 'cell3', '','','','',''], 101 | ['0','', 'cell4', '','','','',''], 102 | ['0','', 'cell5', '','','','',''], 103 | ['0','', 'cell6', '','','','',''], 104 | ['0','', 'cell7', '','','','',''], 105 | ['0','', 'cell8', '','','','',''], 106 | ['0','', 'cell9', '','','','',''], 107 | ['0','', 'cell10', '','','','',''], 108 | ['0','', 'cell11', '','','','',''], 109 | ['0','', 'cell12', '','','','',''], 110 | ['0','', 'cell13', '','','','',''], 111 | ['0','', 'cell14', '','','','',''], 112 | ['0','', 'cell15', '','','','',''], 113 | ['0','', 'cell16', '','','','',''], 114 | ['0','', 'cell17', '','','','',''], 115 | ['0','', 'cell18', '','','','',''], 116 | ['0','', 'cell19', '','','','',''], 117 | ['0','', 'cell20', '','','','',''], 118 | ['0','', 'cell21', '','','','',''], 119 | ['0','', 'cell22', '','','','',''], 120 | ['0','', 'cell23', '','','','',''], 121 | ['0','', 'cell24', '','','','',''], 122 | ['0','', 'cell25', '','','','',''], 123 | ['0','SunBoth', 'desc_cell25', '','','','color:#F2DDB3;font-size:19px;font-weight:bold'], // heures soleil dans la description de la cellule 25 124 | 125 | // page 2 126 | 127 | ['0','', 'cell2_1', '','','','',''], 128 | ['0','', 'cell2_2', '','','','',''], 129 | ['0','', 'cell2_3', '','','','',''], 130 | ['0','', 'cell2_4', '','','','',''], 131 | ['0','', 'cell2_5', '','','','',''], 132 | ['0','', 'cell2_6', '','','','',''], 133 | ['0','', 'cell2_7', '','','','',''], 134 | ['0','', 'cell2_8', '','','','',''], 135 | ['0','', 'cell2_9', '','','','',''], 136 | ['0','', 'cell2_10', '','','','',''], 137 | ['0','', 'cell2_11', '','','','',''], 138 | ['0','', 'cell2_12', '','','','',''], 139 | ['0','', 'cell2_13', '','','','',''], 140 | ['0','', 'cell2_14', '','','','',''], 141 | ['0','', 'cell2_15', '','','','',''], 142 | ['0','', 'cell2_16', '','','','',''], 143 | ['0','', 'cell2_17', '','','','',''], 144 | ['0','', 'cell2_18', '','','','',''], 145 | ['0','', 'cell2_19', '','','','',''], 146 | ['0','', 'cell2_20', '','','','',''], 147 | ['0','', 'cell2_21', '','','','',''], 148 | ['0','', 'cell2_22', '','','','',''], 149 | ['0','', 'cell2_23', '','','','',''], 150 | ['0','', 'cell2_24', '','','','',''], 151 | ['0','', 'cell2_25', '','','','',''], 152 | 153 | 154 | // page 3 155 | 156 | ['0','', 'cell3_1', '','','','',''], 157 | ['0','', 'cell3_2', '','','','',''], 158 | // ['0','', 'cell3_3', '','','','',''], // camera 159 | ['0','', 'cell3_4', '','','','',''], 160 | ['0','', 'cell3_5', '','','','',''], 161 | ['0','', 'cell3_6', '','','','',''], 162 | ['0','', 'cell3_7', '','','','',''], 163 | ['0','', 'cell3_8', '','','','',''], 164 | ['0','', 'cell3_9', '','','','',''], 165 | ['0','', 'cell3_10', '','','','',''], 166 | ['0','', 'cell3_11', '','','','',''], 167 | ['0','', 'cell3_12', '','','','',''], 168 | ['0','', 'cell3_13', '','','','',''], 169 | ['0','', 'cell3_14', '','','','',''], 170 | ['0','', 'cell3_15', '','','','',''], 171 | ['0','', 'cell3_16', '','','','',''], 172 | ['0','', 'cell3_17', '','','','',''], 173 | ['0','', 'cell3_18', '','','','',''], 174 | ['0','', 'cell3_19', '','','','',''], 175 | ['0','', 'cell3_20', '','','','',''], 176 | ['0','', 'cell3_21', '','','','',''], 177 | ['0','', 'cell3_22', '','','','',''], 178 | ['0','', 'cell3_23', '','','','',''], 179 | ['0','', 'cell3_24', '','','','',''], 180 | // ['0','', 'cell3_25', '','','','',''], // camera 181 | 182 | 183 | 184 | []]; 185 | $.PageArray_Scenes = [ // placez ci dessous vos groupes et scènes 186 | 187 | // ['idx','value','cellule','description','icon name (ex: Light, Blinds, WallSocket, Generic,..)','override css'], 188 | 189 | ['0','', '', '','',''], 190 | ['0','', '', '','',''], 191 | ['0','', '', '','',''], 192 | 193 | []]; 194 | $.PageArray_UserVariable = [ // placez ci dessous vos userVariable 195 | 196 | //['idx','value','cellule','description','override css'], 197 | 198 | ['0','Value','','',''], 199 | 200 | []]; 201 | 202 | 203 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 204 | 205 | // MQTT 206 | 207 | 208 | // called when a message arrives 209 | function onMessageArrived(message) { 210 | console.log('%cMQTT Message Arrived:','color: #c44800','\n',message.payloadString); 211 | 212 | message = JSON.parse(message.payloadString); 213 | 214 | 215 | 216 | switch(message.name) { // filtre sur le nom du dispositif 217 | 218 | 219 | //////////////////////////////////////////////////////////////////////////////// 220 | 221 | // si le nom est "d1", changer de page 222 | case "d1": // nom du bouton de la télécommande 223 | 224 | if (message.nvalue == 1) // status On 225 | mySwipe.prev(); // page précédente 226 | 227 | if (message.nvalue == 0) // status Off 228 | mySwipe.next(); // page suivante 229 | 230 | break; 231 | 232 | //////////////////////////////////////////////////////////////////////////////// 233 | 234 | case "Cafetiere on": // nom du bouton pushOn de mise en route de la cafetière 235 | 236 | // affiche une popup text 237 | lightbox_open('switch',25000,'café en préparation'); 238 | 239 | break; 240 | 241 | //////////////////////////////////////////////////////////////////////////////// 242 | 243 | //lire une musique 244 | case "d2": // nom du bouton de la télécommande 245 | 246 | /* 247 | /!\ IMPORTANT /!\ 248 | 249 | à fin de pouvoir lancer de l'audio automatiquement 250 | il est nécessaire de désactiver la sécurité suivante 251 | "Exiger un geste de l'utilisateur pour lire des éléments multimédias" 252 | 253 | saisissez cette adresse dans chrome et désactivez l'option 254 | 255 | chrome://flags/#disable-gesture-requirement-for-media-playback 256 | 257 | */ 258 | 259 | var oAudio = document.getElementById('myaudio'); 260 | 261 | if (message.nvalue == 1){ // status On 262 | 263 | oAudio.src = "http://icecast.skyrock.net/s/natio_mp3_128k"; 264 | oAudio.play(); 265 | } 266 | 267 | if (message.nvalue == 0){ // status Off 268 | 269 | oAudio.pause(); // stop 270 | oAudio.src = ""; 271 | } 272 | 273 | break; 274 | 275 | //////////////////////////////////////////////////////////////////////////////// 276 | 277 | // afficher la caméra en grand 278 | case "d3": // nom du bouton de la télécommande 279 | 280 | if (message.nvalue == 1){ // status On 281 | var source = "http://www.saintveranmeteo.eu/villagesaintveranwebcam.jpg"; // source du flux de la caméra 282 | $('#popup_camera').html(''); // charge le flux dans la popup caméra 283 | lightbox_open('camera', 25000); // afficher la popup 25 secondes 284 | } 285 | if (message.nvalue == 0) // status Off 286 | lightbox_close('camera'); // fermer la popup 287 | 288 | break; 289 | 290 | //////////////////////////////////////////////////////////////////////////////// 291 | 292 | // annonces vocales 293 | case "tts": // nom du widget text 294 | 295 | /* 296 | /!\ IMPORTANT /!\ 297 | 298 | à fin de pouvoir lancer de l'audio automatiquement 299 | il est nécessaire de désactiver la sécurité suivante 300 | "Exiger un geste de l'utilisateur pour lire des éléments multimédias" 301 | 302 | saisissez cette adresse dans chrome et désactivez l'option 303 | 304 | chrome://flags/#disable-gesture-requirement-for-media-playback 305 | 306 | */ 307 | 308 | var text = message.svalue1; 309 | var oAudio = document.getElementById('myaudio'); 310 | var launched = false; 311 | oAudio.src = "sounds/Arpeggio.ogg"; // ding dong d'alerte 312 | oAudio.play(); 313 | oAudio.onended = function() { 314 | if ( !launched ) { 315 | launched = true; 316 | oAudio.src = "http://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&text="+text+"&voice=Fabienne"; 317 | oAudio.play(); 318 | } 319 | }; 320 | 321 | break; 322 | 323 | //////////////////////////////////////////////////////////////////////////////// 324 | 325 | // afficher une page précise suivant le choix d'un switch sélecteur 326 | case "page": // nom du switch sélecteur 327 | 328 | if (message.svalue1 == 10) // sélecteur à 10 % 329 | mySwipe.slide(0); // vers page 1 (la première page est numéroté 0) 330 | if (message.svalue1 == 20) 331 | mySwipe.slide(1); // vers page 2 332 | if (message.svalue1 == 30) 333 | mySwipe.slide(2); // vers page 3 334 | if (message.svalue1 == 40) 335 | mySwipe.slide(3); // vers page 4 336 | if (message.svalue1 == 50) 337 | mySwipe.slide(4); // vers page 5 338 | if (message.svalue1 == 60) 339 | mySwipe.slide(5); // vers page 6 340 | if (message.svalue1 == 70) 341 | mySwipe.slide(6); // vers page 7 342 | if (message.svalue1 == 80) 343 | mySwipe.slide(7); // vers page 8 344 | if (message.svalue1 == 90) 345 | mySwipe.slide(8); // vers page 9 346 | if (message.svalue1 == 100) 347 | mySwipe.slide(9); // vers page 10 348 | 349 | break; 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | } 372 | 373 | } 374 | 375 | 376 | 377 | // ############################################################################################################ 378 | // #### ^^^^^ USER VALUES above ^^^^^ ####### 379 | // ############################################################################################################ 380 | 381 | 382 | 383 | 384 | -------------------------------------------------------------------------------- /js/frontpage_settings_exemple.js: -------------------------------------------------------------------------------- 1 | 2 | // Change the text for on/off switches 3 | var txt_on = 'On'; 4 | var txt_off = 'Off'; 5 | var txt_closed = 'Fermée'; 6 | var txt_open = 'Ouverte'; 7 | var txt_sunboth = 'Soleil'; 8 | var txt_sunset = 'Coucher soleil'; 9 | var txt_sunrise = 'Lever soleil'; 10 | var days = ["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"]; 11 | var months = ["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Décembre"]; 12 | 13 | // Change the text displayed in PopUps 14 | var txt_switch_on = '\'Switch On\''; 15 | var txt_switch_off = '\'Switch Off\''; 16 | var txt_blind_up = '\'Ouverture\''; 17 | var txt_blind_down = '\'Fermeture\''; 18 | var txt_blind_stop = '\'Arrêt\''; 19 | var txt_wrong_code = 'Mot de pass erroné'; 20 | 21 | // Change backgrounds images, size and brightness 22 | var bg_day = ''; // image de fond le jour, laisser vide pour fond noir 23 | var bg_night = ''; // image de fond la nuit, laisser vide pour fond noir 24 | var bg_day_spring = 'wallpaper/spring_day.jpg'; // image de fond pour la saison printemps 25 | var bg_night_spring = 'wallpaper/spring_night.jpg'; 26 | var bg_day_summer = 'wallpaper/summer_day.jpg'; // image de fond pour la saison été 27 | var bg_night_summer = 'wallpaper/summer_night.jpg'; 28 | var bg_day_autumn = 'wallpaper/autumn_day.png'; // image de fond pour la saison automne 29 | var bg_night_autumn = 'wallpaper/autumn_night.jpg'; 30 | var bg_day_winter = 'wallpaper/winter_day.jpg'; // image de fond pour la saison hiver 31 | var bg_night_winter = 'wallpaper/winter_night.jpg'; 32 | var bg_size = 'cover'; // taille de l'image de fond (ex: '1024px 768px') 'cover' : "couvre" au mieux tout le fond. 33 | var bg_dayBright = 0.5; // luminosité du fond le jour (0=normal 1=noir) 34 | var bg_nightBright = 0.5; // luminosité du fond la nuit (0=normal 1=noir) 35 | 36 | // Change the timeout of the PopUp 37 | var switch_timeout = 0; // durée d'affichage (en milisecondes) [ 0 = désactivée ] 38 | var wrongCode_timeout = 1500; // durée d'affichage (en milisecondes) 39 | var fad_Duration = 0; // durée de l'animation (en milisecondes) [ 0 = désactivée ] 40 | 41 | // Special items 42 | var city = 'saint-jacques-de-la-lande'; // localité pour la popup météo option 0,1,2,3 (lors du clic sur l'icon météo) cf http://www.prevision-meteo.ch/ 43 | var place = 'France/Brittany/Saint-Jacques-de-la-Lande'; // localité pour la popup météo option 4 (lors du clic sur l'icon météo) cf http://www.yr.no/ 44 | var blink = true; // faire clignoter les valeurs en alarme (true/false) 45 | var showMonth = false; // affichage du mois dans la date (true/false) 46 | 47 | // Swipe options 48 | var speed = 300; // durée de l'animation (en milisecondes) 49 | var delai = 60000; // défilement automatique, temps avant changement de page (en milisecondes) 50 | var direction = 'index'; // si delai est différent de 0, choix d'aller à la page suivante ou de revenir à la première page ('next'/'index') 51 | 52 | // Display 53 | var connectTimeout = 3000; // durée avant d'afficher un domoticz offline (en millisecondes) 54 | var refresh = 8000; // temps entre 2 rafraîchissements (en millisecondes) 55 | var snow = false; // ajout effet chute de neige.. 56 | 57 | // Debug 58 | var debug = false; // affichage des infos de debug dans la console (true/false) 59 | 60 | // ############################################################################################################ 61 | // #### vvvvv USER VALUES below vvvvv ####### 62 | // ############################################################################################################ 63 | 64 | 65 | $.roomplan = 2; // define roomplan in Domoticz and create items below. (0 = all devices, not limited to a roomplan) 66 | 67 | //$.domoticzurl = "http://192.168.22.100:8080"; // url de connection à domoticz (ex: http://paul:ochon@toto.com:8765) 68 | $.domoticzurl = location.protocol + "//" + location.host; // auto detect (location.protocol + "//paul:ochon@" + location.host) 69 | 70 | $.PagesList = [ 71 | 72 | // ['html page name (location must be in 'monitor/pages/')','menu icon name (location must be in 'monitor/icons/menu/')], 73 | 74 | ['iframe.html','domoticz.png'], 75 | ['clock.html','clock.png'], 76 | ['meteo.html','meteo.png'], 77 | ['pluie.html','pluie.png'], 78 | ['page1.html','light1.png'], 79 | ['page2.html','light2.png'], 80 | ['page3.html','light3.png'], 81 | ['page4.html','light4.png'], 82 | ['page5.html','chauffage.png'], 83 | ['trafic.html','map.png'], 84 | ['logs.html','log.png'], 85 | 86 | 87 | 88 | 89 | []]; 90 | 91 | 92 | $.PageArray = [ 93 | 94 | // ['idx','value','cellule','description','1=lastseen 2=icon 3=both ou J+x(popup météo)','pas de thermostat','override css','Alarme ou valeur max de thermostat'], 95 | 96 | 97 | //page 1 98 | ['exterieur','Temp', 'cell3', ''], // températures exterieure 99 | 100 | 101 | ['la cafetiere','Status', 'cell26', 'Cafetière','2'], // interrupteurs classics 102 | ['les pierres','Status', 'cell13', 'Pierres','2'], 103 | ['la chambre','Status', 'cell9', 'Chambre','2'], 104 | ['la musique','Status', 'cell4', '','2'], // interrupteurs classics avec icon 105 | 106 | ['rgb1_rouge','Level', 'cell12', 'rgb1_red','2'], // rgb 107 | ['rgb1_vert','Level', 'cell17', 'rgb1_green','2'], // rgb 108 | ['rgb1_bleu','Level', 'cell22', 'rgb1_blue','2'], // rgb 109 | ['rgb1_show','Status', 'cell7', 'rgb1_show','2'], // rgb 110 | 111 | ['rgb2_rouge','Level', 'cell11', 'rgb2_red','2'], // rgb 112 | ['rgb2_vert','Level', 'cell16', 'rgb2_green','2'], // rgb 113 | ['rgb2_bleu','Level', 'cell21', 'rgb2_blue','2'], // rgb 114 | ['rgb2_show','Status', 'cell6', 'rgb2_show','2'], // rgb 115 | 116 | ['','Hide', 'cell2', ''], // réveil 117 | 118 | 119 | 120 | ['la veilleuse','Level', 'cell14', 'Veilleuse','2'], // variateur 121 | ['le salon','Level', 'cell8', 'Salon','2'], 122 | 123 | ['mpd_goa','Status', 'cell23', 'Goa','','','color:#6594FE;font-family:brankovic;font-size:100%'], // boutons PushOn ou pushOff 124 | ['mpd_metal','Status', 'cell20', 'Metal','','','color:#6594FE;font-family:brankovic;font-size:100%'], 125 | ['mpd_spoon','Status', 'cell5', 'Spoon','','','color:#6594FE;font-family:brankovic;font-size:100%'], 126 | ['mpd_reggae','Status', 'cell10', 'Reggae','','','color:#6594FE;font-family:brankovic;font-size:100%'], 127 | ['mpd_rock','Status', 'cell15', 'Rock','','','color:#6594FE;font-family:brankovic;font-size:100%'], 128 | 129 | ['exterieur','ForecastStr', 'cell25', '','4'], // icon météo (idx du capteur de température extérieur virtuel Weather Underground) 130 | ['','Hide', 'cell1', ''], // heure et date 131 | 132 | 133 | ['','SunBoth', 'desc_cell25', '','','','color:#F2DDB3;font-size:19px;font-weight:bold'], // heures soleil dans la description de la cellule 25 134 | 135 | 136 | // page 5 137 | 138 | ['salon','Temp', 'cell5_3', 'Salon (7h - 23h)','','','color:#FA8072',''], // températures salon color:#FA8072 139 | ['chambre','Temp', 'cell5_4', 'Chambre (9h - 21h)','','','color:#52CE8A'], // températures chambre color:#52CE8A 140 | ['salle de bain','Temp', 'cell5_2', 'Salle de bain','','','color:#A752CE'], // températures Salle de bain color:#A752CE 141 | 142 | ['salon','Humidity', 'cell5_3f', '','','','color:#1CD5FD','x < 30 || x > 70'], // Humidity salon 143 | ['chambre','Humidity', 'cell5_4f', '','','','color:#1CD5FD','x < 30 || x > 70'], // Humidity chambre font-size:110%;color:#1CD5FD 144 | ['salle de bain','Humidity', 'cell5_2f', '','','','color:#1CD5FD','x < 30 || x > 70'], // Humidity Salle de bain font-size:110%;color:#1CD5FD 145 | 146 | ['th_chambre','SetPoint', 'cell5_4b', '','','0.5','font-size:110%;color:#72DDEA','23'], // thermostat salon avec un pas de 0.5, valeur max 23°C 147 | ['th_salon','SetPoint', 'cell5_3b', '','','0.5','font-size:110%;color:#72DDEA','23'], // thermostat chambre avec un pas de 0.5, valeur max 23°C 148 | ['th_salle de bain','SetPoint', 'cell5_2b', '','','1','font-size:110%;color:#72DDEA','25'], // thermostat Salle de bain avec un pas de 1, valeur max 25°C 149 | 150 | ['boost','Status', 'cell5_3g', 'Boost','2'], 151 | ['','Hide', 'cell5_1b', ''], 152 | ['','Hide', 'cell5_1d', ''], 153 | ['','Hide', 'cell5_3a', ''], 154 | 155 | ['radiateur salon','Status', 'cell5_3e', '','2'], // visu radiateur salon 156 | ['radiateur chambre','Status', 'cell5_4d', '','2'], // visu radiateur chambre 157 | ['conso veille euros','Euro', 'cell5_8', 'edf hier','','','color:pink','x > 4'], 158 | 159 | ['chauffage','Status', 'cell5_7', 'Chauffage','2'], 160 | 161 | 162 | ['','Hide', 'cell5_3d', ''], 163 | ['112','Usage', 'cell5_9', 'edf now','','','color:#D5DE3F;font-size:90%','x > 7500'], // consommation instantanée (téléinfo) 164 | ['107','CounterToday', 'cell5_6', 'chauffage day','','','color:#D5DE3F;font-size:90%'], // consommation totale (téléinfo) 165 | ['','Hide', 'cell5_4c', ''], 166 | 167 | ['exterieur','Temp', 'cell5_1c', '','','','font-size:180%'], // températures exterieure 168 | 169 | ['','Hide', 'cell5_1a', ''], 170 | 171 | ['exterieur','ForecastStr', 'cell5_1', '','1'], // icon météo (idx du capteur de température extérieur virtuel Weather Underground) 172 | 173 | ['exterieur','HumidityStatus', 'cell5_1f', '','','','color:#88B496;font-size:80%'], 174 | 175 | 176 | ['','Hide', 'cell5_4a', ''], 177 | ['','Hide', 'cell5_2a', ''], 178 | ['','Hide', 'cell5_2c', ''], 179 | ['','Hide', 'cell5_2d', ''], 180 | ['','Hide', 'cell5_3c', ''], 181 | ['','Hide', 'cell5_4e', ''], 182 | ['','Hide', 'cell5_4g', ''], 183 | 184 | ['conso chauffage','Usage', 'cell5_5', 'chauffage now','','','color:#D5DE3F;font-size:90%','x > 4000'], // consommation instantanée chauffage 185 | 186 | ['soufflant','Status', 'cell5_2e', '','2'], // soufflant sdb 187 | ['douche','Status', 'cell5_2g', '','2'], // douche 188 | ['proba pluie 1h','Data', 'cell5_1e', '','','','','x > 65'], // proba pluie dans 1h 189 | ['proba pluie 2h','Data', 'cell5_1g', '','','','','x > 45'], // proba pluie dans 2h 190 | 191 | // clock page 192 | 193 | ['','Hide', 'clock3', ''], 194 | ['','Hide', 'clock5', ''], 195 | ['','Hide', 'clock6', ''], 196 | ['','Hide', 'clock7', ''], 197 | ['','Hide', 'clock8', ''], 198 | ['','Hide', 'clock10', ''], 199 | ['','Hide', 'clock11', ''], 200 | ['','Hide', 'clock12', ''], 201 | ['','Hide', 'clock13', ''], 202 | ['','Hide', 'clock14', ''], 203 | ['reveil','Wakeup', 'clock16', '','','','color:#3A5486;font-size:130%'], // réveil 204 | ['','Date', 'clock15', '','','','color:#3A5486;font-size:130%'], // date 205 | // ['','MonthYear', 'clock15', '','','','color:#3A5486;font-size:130%'], // date 206 | ['exterieur','ForecastStr', 'clock2', ''], // icon météo (idx du capteur de température extérieur virtuel Weather Underground) 207 | 208 | ['','SunBoth', 'desc_clock2', '','','','color:#F2DDB3;font-size:19px;font-weight:bold'], // heures soleil dans la description de la cellule clock2 209 | ['exterieur','Temp', 'clock1', ''], // températures exterieure 210 | // ['','Camera', 'clock4', 'http://webcam.st-malo.com/mjpg/video.mjpg','http://webcam.st-malo.com/axis-cgi/mjpg/video.cgi','',''], // camera 1 211 | ['','Camera', 'clock4', 'http://192.168.22.100:2550','','',''], // camera 1 212 | // ['','Hide', 'clock4', ''], 213 | ['saint','Data', 'clock9', '','','','color:#4dd2ff'], // saint du jour 214 | 215 | 216 | 217 | []]; 218 | $.PageArray_Scenes = [ // placez ci dessous vos groupes et scènes 219 | 220 | // ['idx','value','cellule','description','icon name (ex: Light, Blinds, WallSocket, Generic,..)','override css'], 221 | 222 | ['ciné','Status', 'cell18', 'Ciné','','color:#E4D422;font-size:90%'], // scène 223 | ['apéro','Status', 'cell19', 'Apéro','','color:#E4D422;font-size:90%'], // scène 224 | ['toute la maison','Status', 'cell24', 'Toute la maison','Light'], // groupe avec icon Light 225 | 226 | []]; 227 | $.PageArray_UserVariable = [ // placez ci dessous vos userVariable 228 | 229 | //['idx','value','cellule','description','override css'], 230 | 231 | ['reveilmatin','Value','cell5_9','',''], 232 | 233 | []]; 234 | 235 | 236 | 237 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 238 | 239 | // MQTT 240 | 241 | 242 | // called when a message arrives 243 | function onMessageArrived(message) { 244 | console.log('%cMQTT Message Arrived:','color: #c44800','\n',message.payloadString); 245 | 246 | message = JSON.parse(message.payloadString); 247 | 248 | 249 | 250 | switch(message.name) { // filtre sur le nom du dispositif 251 | 252 | 253 | //////////////////////////////////////////////////////////////////////////////// 254 | 255 | // si le nom est "d1", changer de page 256 | case "d1": // nom du bouton de la télécommande 257 | 258 | if (message.nvalue == 1) // status On 259 | mySwipe.prev(); // page précédente 260 | 261 | if (message.nvalue == 0) // status Off 262 | mySwipe.next(); // page suivante 263 | 264 | break; 265 | 266 | //////////////////////////////////////////////////////////////////////////////// 267 | 268 | case "Cafetiere on": // nom du bouton pushOn de mise en route de la cafetière 269 | 270 | // affiche une popup text 271 | lightbox_open('switch',25000,'café en préparation'); 272 | 273 | break; 274 | 275 | //////////////////////////////////////////////////////////////////////////////// 276 | 277 | //lire une musique 278 | case "d2": // nom du bouton de la télécommande 279 | 280 | /* 281 | /!\ IMPORTANT /!\ 282 | 283 | à fin de pouvoir lancer de l'audio automatiquement 284 | il est nécessaire de désactiver la sécurité suivante 285 | "Exiger un geste de l'utilisateur pour lire des éléments multimédias" 286 | 287 | saisissez cette adresse dans chrome et désactivez l'option 288 | 289 | chrome://flags/#disable-gesture-requirement-for-media-playback 290 | 291 | */ 292 | 293 | var oAudio = document.getElementById('myaudio'); 294 | 295 | if (message.nvalue == 1){ // status On 296 | 297 | oAudio.src = "http://icecast.skyrock.net/s/natio_mp3_128k"; 298 | oAudio.play(); 299 | } 300 | 301 | if (message.nvalue == 0){ // status Off 302 | 303 | oAudio.pause(); // stop 304 | oAudio.src = ""; 305 | } 306 | 307 | break; 308 | 309 | //////////////////////////////////////////////////////////////////////////////// 310 | 311 | // afficher la caméra en grand 312 | case "d3": // nom du bouton de la télécommande 313 | 314 | if (message.nvalue == 1){ // status On 315 | var source = "http://www.saintveranmeteo.eu/villagesaintveranwebcam.jpg"; // source du flux de la caméra 316 | $('#popup_camera').html(''); // charge le flux dans la popup caméra 317 | lightbox_open('camera', 25000); // afficher la popup 25 secondes 318 | } 319 | if (message.nvalue == 0) // status Off 320 | lightbox_close('camera'); // fermer la popup 321 | 322 | break; 323 | 324 | //////////////////////////////////////////////////////////////////////////////// 325 | 326 | // annonces vocales 327 | case "tts": // nom du widget text 328 | 329 | /* 330 | /!\ IMPORTANT /!\ 331 | 332 | à fin de pouvoir lancer de l'audio automatiquement 333 | il est nécessaire de désactiver la sécurité suivante 334 | "Exiger un geste de l'utilisateur pour lire des éléments multimédias" 335 | 336 | saisissez cette adresse dans chrome et désactivez l'option 337 | 338 | chrome://flags/#disable-gesture-requirement-for-media-playback 339 | 340 | */ 341 | 342 | var text = message.svalue1; 343 | var oAudio = document.getElementById('myaudio'); 344 | var launched = false; 345 | oAudio.src = "sounds/Arpeggio.ogg"; // ding dong d'alerte 346 | oAudio.play(); 347 | oAudio.onended = function() { 348 | if ( !launched ) { 349 | launched = true; 350 | oAudio.src = "http://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&text="+text+"&voice=Fabienne"; 351 | oAudio.play(); 352 | } 353 | }; 354 | 355 | break; 356 | 357 | //////////////////////////////////////////////////////////////////////////////// 358 | 359 | // afficher une page précise suivant le choix d'un switch sélecteur 360 | case "page": // nom du switch sélecteur 361 | 362 | if (message.svalue1 == 10) // sélecteur à 10 % 363 | mySwipe.slide(0); // vers page 1 (la première page est numéroté 0) 364 | if (message.svalue1 == 20) 365 | mySwipe.slide(1); // vers page 2 366 | if (message.svalue1 == 30) 367 | mySwipe.slide(2); // vers page 3 368 | if (message.svalue1 == 40) 369 | mySwipe.slide(3); // vers page 4 370 | if (message.svalue1 == 50) 371 | mySwipe.slide(4); // vers page 5 372 | if (message.svalue1 == 60) 373 | mySwipe.slide(5); // vers page 6 374 | if (message.svalue1 == 70) 375 | mySwipe.slide(6); // vers page 7 376 | if (message.svalue1 == 80) 377 | mySwipe.slide(7); // vers page 8 378 | if (message.svalue1 == 90) 379 | mySwipe.slide(8); // vers page 9 380 | if (message.svalue1 == 100) 381 | mySwipe.slide(9); // vers page 10 382 | 383 | break; 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | } 406 | 407 | } 408 | 409 | // ############################################################################################################ 410 | // #### ^^^^^ USER VALUES above ^^^^^ ####### 411 | // ############################################################################################################ 412 | 413 | 414 | 415 | 416 | -------------------------------------------------------------------------------- /js/full/swipe.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Swipe 2.2.4 3 | * 4 | * Brad Birdsall 5 | * Copyright 2013, MIT License 6 | * 7 | */ 8 | 9 | // if the module has no dependencies, the above pattern can be simplified to 10 | // eslint-disable-next-line no-extra-semi 11 | ;(function (root, factory) { 12 | // eslint-disable-next-line no-undef 13 | if (typeof define === 'function' && define.amd) { 14 | // AMD. Register as an anonymous module. 15 | // eslint-disable-next-line no-undef 16 | define([], function(){ 17 | root.Swipe = factory(); 18 | return root.Swipe; 19 | }); 20 | } else if (typeof module === 'object' && module.exports) { 21 | // Node. Does not work with strict CommonJS, but 22 | // only CommonJS-like environments that support module.exports, 23 | // like Node. 24 | module.exports = factory(); 25 | } else { 26 | // Browser globals 27 | root.Swipe = factory(); 28 | } 29 | }(this, function () { 30 | // Establish the root object, `window` (`self`) in the browser, `global` 31 | // on the server, or `this` in some virtual machines. We use `self` 32 | // instead of `window` for `WebWorker` support. 33 | var root = typeof self == 'object' && self.self === self && self || 34 | typeof global == 'object' && global.global === global && global || 35 | this; 36 | 37 | var _document = root.document; 38 | 39 | function Swipe(container, options) { 40 | 41 | 'use strict'; 42 | 43 | options = options || {}; 44 | 45 | // setup initial vars 46 | var start = {}; 47 | var delta = {}; 48 | var isScrolling; 49 | 50 | // setup auto slideshow 51 | var delay = options.auto || 0; 52 | var interval; 53 | 54 | // utilities 55 | // simple no operation function 56 | var noop = function() {}; 57 | // offload a functions execution 58 | var offloadFn = function(fn) { setTimeout(fn || noop, 0); }; 59 | // Returns a function, that, as long as it continues to be invoked, will not 60 | // be triggered. 61 | var throttle = function (fn, threshhold) { 62 | threshhold = threshhold || 100; 63 | var timeout = null; 64 | 65 | function cancel() { 66 | if (timeout) clearTimeout(timeout); 67 | } 68 | 69 | function throttledFn() { 70 | var context = this; 71 | var args = arguments; 72 | cancel(); 73 | timeout = setTimeout(function() { 74 | timeout = null; 75 | fn.apply(context, args); 76 | }, threshhold); 77 | } 78 | 79 | // allow remove throttled timeout 80 | throttledFn.cancel = cancel; 81 | 82 | return throttledFn; 83 | }; 84 | 85 | // check browser capabilities 86 | var browser = { 87 | addEventListener: !!root.addEventListener, 88 | // eslint-disable-next-line no-undef 89 | touch: ('ontouchstart' in root) || root.DocumentTouch && _document instanceof DocumentTouch, 90 | transitions: (function(temp) { 91 | var props = ['transitionProperty', 'WebkitTransition', 'MozTransition', 'OTransition', 'msTransition']; 92 | for ( var i in props ) { 93 | if (temp.style[ props[i] ] !== undefined){ 94 | return true; 95 | } 96 | } 97 | return false; 98 | })(_document.createElement('swipe')) 99 | }; 100 | 101 | // quit if no root element 102 | if (!container) return; 103 | 104 | var element = container.children[0]; 105 | var slides, slidePos, width, length; 106 | var index = parseInt(options.startSlide, 10) || 0; 107 | var speed = options.speed || 300; 108 | options.continuous = options.continuous !== undefined ? options.continuous : true; 109 | 110 | // AutoRestart option: auto restart slideshow after user's touch event 111 | options.autoRestart = options.autoRestart !== undefined ? options.autoRestart : false; 112 | 113 | // throttled setup 114 | var throttledSetup = throttle(setup); 115 | 116 | // setup event capturing 117 | var events = { 118 | 119 | handleEvent: function(event) { 120 | switch (event.type) { 121 | case 'mousedown': 122 | case 'touchstart': this.start(event); break; 123 | case 'mousemove': 124 | case 'touchmove': this.move(event); break; 125 | case 'mouseup': 126 | case 'mouseleave': 127 | case 'touchend': this.end(event); break; 128 | case 'webkitTransitionEnd': 129 | case 'msTransitionEnd': 130 | case 'oTransitionEnd': 131 | case 'otransitionend': 132 | case 'transitionend': this.transitionEnd(event); break; 133 | case 'resize': throttledSetup(); break; 134 | } 135 | 136 | if (options.stopPropagation) { 137 | event.stopPropagation(); 138 | } 139 | }, 140 | 141 | start: function(event) { 142 | var touches; 143 | 144 | if (isMouseEvent(event)) { 145 | touches = event; 146 | event.preventDefault(); // For desktop Safari drag 147 | } else { 148 | touches = event.touches[0]; 149 | } 150 | 151 | // measure start values 152 | start = { 153 | 154 | // get initial touch coords 155 | x: touches.pageX, 156 | y: touches.pageY, 157 | 158 | // store time to determine touch duration 159 | time: +new Date() 160 | 161 | }; 162 | 163 | // used for testing first move event 164 | isScrolling = undefined; 165 | 166 | // reset delta and end measurements 167 | delta = {}; 168 | 169 | // attach touchmove and touchend listeners 170 | if (isMouseEvent(event)) { 171 | element.addEventListener('mousemove', this, false); 172 | element.addEventListener('mouseup', this, false); 173 | element.addEventListener('mouseleave', this, false); 174 | } else { 175 | element.addEventListener('touchmove', this, false); 176 | element.addEventListener('touchend', this, false); 177 | } 178 | 179 | }, 180 | 181 | move: function(event) { 182 | var touches; 183 | 184 | if (isMouseEvent(event)) { 185 | touches = event; 186 | } else { 187 | // ensure swiping with one touch and not pinching 188 | if ( event.touches.length > 1 || event.scale && event.scale !== 1) { 189 | return; 190 | } 191 | 192 | if (options.disableScroll) { 193 | event.preventDefault(); 194 | } 195 | 196 | touches = event.touches[0]; 197 | } 198 | 199 | // measure change in x and y 200 | delta = { 201 | x: touches.pageX - start.x, 202 | y: touches.pageY - start.y 203 | }; 204 | 205 | // determine if scrolling test has run - one time test 206 | if ( typeof isScrolling === 'undefined') { 207 | isScrolling = !!( isScrolling || Math.abs(delta.x) < Math.abs(delta.y) ); 208 | } 209 | 210 | // if user is not trying to scroll vertically 211 | if (!isScrolling) { 212 | 213 | // prevent native scrolling 214 | event.preventDefault(); 215 | 216 | // stop slideshow 217 | stop(); 218 | 219 | // increase resistance if first or last slide 220 | if (options.continuous) { // we don't add resistance at the end 221 | 222 | translate(circle(index-1), delta.x + slidePos[circle(index-1)], 0); 223 | translate(index, delta.x + slidePos[index], 0); 224 | translate(circle(index+1), delta.x + slidePos[circle(index+1)], 0); 225 | 226 | } else { 227 | 228 | delta.x = 229 | delta.x / 230 | ( (!index && delta.x > 0 || // if first slide and sliding left 231 | index === slides.length - 1 && // or if last slide and sliding right 232 | delta.x < 0 // and if sliding at all 233 | ) ? 234 | ( Math.abs(delta.x) / width + 1 ) // determine resistance level 235 | : 1 ); // no resistance if false 236 | 237 | // translate 1:1 238 | translate(index-1, delta.x + slidePos[index-1], 0); 239 | translate(index, delta.x + slidePos[index], 0); 240 | translate(index+1, delta.x + slidePos[index+1], 0); 241 | } 242 | } 243 | }, 244 | 245 | end: function(event) { 246 | 247 | // measure duration 248 | var duration = +new Date() - start.time; 249 | 250 | // determine if slide attempt triggers next/prev slide 251 | var isValidSlide = 252 | Number(duration) < 250 && // if slide duration is less than 250ms 253 | Math.abs(delta.x) > 20 || // and if slide amt is greater than 20px 254 | Math.abs(delta.x) > width/2; // or if slide amt is greater than half the width 255 | 256 | // determine if slide attempt is past start and end 257 | var isPastBounds = 258 | !index && delta.x > 0 || // if first slide and slide amt is greater than 0 259 | index === slides.length - 1 && delta.x < 0; // or if last slide and slide amt is less than 0 260 | 261 | if (options.continuous) { 262 | isPastBounds = false; 263 | } 264 | 265 | // OLD determine direction of swipe (true:right, false:left) 266 | // determine direction of swipe (1: backward, -1: forward) 267 | var direction = Math.abs(delta.x) / delta.x; 268 | 269 | // if not scrolling vertically 270 | if (!isScrolling) { 271 | 272 | if (isValidSlide && !isPastBounds) { 273 | 274 | // if we're moving right 275 | if (direction < 0) { 276 | 277 | if (options.continuous) { // we need to get the next in this direction in place 278 | 279 | move(circle(index-1), -width, 0); 280 | move(circle(index+2), width, 0); 281 | 282 | } else { 283 | move(index-1, -width, 0); 284 | } 285 | 286 | move(index, slidePos[index]-width, speed); 287 | move(circle(index+1), slidePos[circle(index+1)]-width, speed); 288 | index = circle(index+1); 289 | 290 | } else { 291 | if (options.continuous) { // we need to get the next in this direction in place 292 | 293 | move(circle(index+1), width, 0); 294 | move(circle(index-2), -width, 0); 295 | 296 | } else { 297 | move(index+1, width, 0); 298 | } 299 | 300 | move(index, slidePos[index]+width, speed); 301 | move(circle(index-1), slidePos[circle(index-1)]+width, speed); 302 | index = circle(index-1); 303 | } 304 | 305 | runCallback(getPos(), slides[index], direction); 306 | 307 | } else { 308 | 309 | if (options.continuous) { 310 | 311 | move(circle(index-1), -width, speed); 312 | move(index, 0, speed); 313 | move(circle(index+1), width, speed); 314 | 315 | } else { 316 | 317 | move(index-1, -width, speed); 318 | move(index, 0, speed); 319 | move(index+1, width, speed); 320 | } 321 | } 322 | } 323 | 324 | // kill touchmove and touchend event listeners until touchstart called again 325 | if (isMouseEvent(event)) { 326 | element.removeEventListener('mousemove', events, false); 327 | element.removeEventListener('mouseup', events, false); 328 | element.removeEventListener('mouseleave', events, false); 329 | } else { 330 | element.removeEventListener('touchmove', events, false); 331 | element.removeEventListener('touchend', events, false); 332 | } 333 | 334 | }, 335 | 336 | transitionEnd: function(event) { 337 | var currentIndex = parseInt(event.target.getAttribute('data-index'), 10); 338 | if (currentIndex === index) { 339 | if (delay || options.autoRestart) restart(); 340 | 341 | runTransitionEnd(getPos(), slides[index]); 342 | } 343 | } 344 | }; 345 | 346 | // trigger setup 347 | setup(); 348 | 349 | // start auto slideshow if applicable 350 | if (delay) begin(); 351 | 352 | // Expose the Swipe API 353 | return { 354 | // initialize 355 | setup: setup, 356 | 357 | // go to slide 358 | slide: function(to, speed) { 359 | stop(); 360 | slide(to, speed); 361 | }, 362 | 363 | // move to previous 364 | prev: function() { 365 | stop(); 366 | prev(); 367 | }, 368 | 369 | // move to next 370 | next: function() { 371 | stop(); 372 | next(); 373 | }, 374 | 375 | // Restart slideshow 376 | restart: restart, 377 | 378 | // cancel slideshow 379 | stop: stop, 380 | 381 | // return current index position 382 | getPos: getPos, 383 | 384 | // return total number of slides 385 | getNumSlides: function() { return length; }, 386 | 387 | // completely remove swipe 388 | kill: kill 389 | }; 390 | 391 | // remove all event listeners 392 | function detachEvents() { 393 | if (browser.addEventListener) { 394 | // remove current event listeners 395 | element.removeEventListener('touchstart', events, false); 396 | element.removeEventListener('mousedown', events, false); 397 | element.removeEventListener('webkitTransitionEnd', events, false); 398 | element.removeEventListener('msTransitionEnd', events, false); 399 | element.removeEventListener('oTransitionEnd', events, false); 400 | element.removeEventListener('otransitionend', events, false); 401 | element.removeEventListener('transitionend', events, false); 402 | root.removeEventListener('resize', events, false); 403 | } else { 404 | root.onresize = null; 405 | } 406 | } 407 | 408 | // add event listeners 409 | function attachEvents() { 410 | if (browser.addEventListener) { 411 | 412 | // set touchstart event on element 413 | if (browser.touch) { 414 | element.addEventListener('touchstart', events, false); 415 | } 416 | 417 | if (options.draggable) { 418 | element.addEventListener('mousedown', events, false); 419 | } 420 | 421 | if (browser.transitions) { 422 | element.addEventListener('webkitTransitionEnd', events, false); 423 | element.addEventListener('msTransitionEnd', events, false); 424 | element.addEventListener('oTransitionEnd', events, false); 425 | element.addEventListener('otransitionend', events, false); 426 | element.addEventListener('transitionend', events, false); 427 | } 428 | 429 | // set resize event on window 430 | root.addEventListener('resize', events, false); 431 | 432 | } else { 433 | root.onresize = throttledSetup; // to play nice with old IE 434 | } 435 | } 436 | 437 | function setup() { 438 | // cache slides 439 | slides = element.children; 440 | length = slides.length; 441 | 442 | // set continuous to false if only one slide 443 | if (slides.length < 2) { 444 | options.continuous = false; 445 | } 446 | 447 | // special case if two slides 448 | if (browser.transitions && options.continuous && slides.length < 3) { 449 | var clone0 = slides[0].cloneNode(true); 450 | var clone1 = element.children[1].cloneNode(true); 451 | element.appendChild(clone0); 452 | element.appendChild(clone1); 453 | 454 | // tag these slides as clones (to remove them on kill) 455 | clone0.setAttribute('data-cloned', true); 456 | clone1.setAttribute('data-cloned', true); 457 | 458 | slides = element.children; 459 | } 460 | 461 | // create an array to store current positions of each slide 462 | slidePos = new Array(slides.length); 463 | 464 | // determine width of each slide 465 | width = container.getBoundingClientRect().width || container.offsetWidth; 466 | 467 | element.style.width = (slides.length * width * 2) + 'px'; 468 | 469 | // stack elements 470 | var pos = slides.length; 471 | while(pos--) { 472 | var slide = slides[pos]; 473 | 474 | slide.style.width = width + 'px'; 475 | slide.setAttribute('data-index', pos); 476 | 477 | if (browser.transitions) { 478 | slide.style.left = (pos * -width) + 'px'; 479 | move(pos, index > pos ? -width : (index < pos ? width : 0), 0); 480 | } 481 | } 482 | 483 | // reposition elements before and after index 484 | if (options.continuous && browser.transitions) { 485 | move(circle(index-1), -width, 0); 486 | move(circle(index+1), width, 0); 487 | } 488 | 489 | if (!browser.transitions) { 490 | element.style.left = (index * -width) + 'px'; 491 | } 492 | 493 | container.style.visibility = 'visible'; 494 | 495 | // reinitialize events 496 | detachEvents(); 497 | attachEvents(); 498 | } 499 | 500 | function prev() { 501 | if (options.continuous) { 502 | slide(index-1); 503 | } 504 | else if (index) { 505 | slide(index-1); 506 | } 507 | } 508 | 509 | function next() { 510 | 511 | if (options.continuous) { 512 | slide(index+1); 513 | } else if (index < slides.length - 1) { 514 | slide(index+1); 515 | } 516 | } 517 | 518 | function runCallback(pos, index, dir) { 519 | if (options.callback) { 520 | options.callback(pos, index, dir); 521 | } 522 | } 523 | 524 | function runTransitionEnd(pos, index) { 525 | if (options.transitionEnd) { 526 | options.transitionEnd(pos, index); 527 | } 528 | } 529 | 530 | function circle(index) { 531 | 532 | // a simple positive modulo using slides.length 533 | return (slides.length + (index % slides.length)) % slides.length; 534 | } 535 | 536 | function getPos() { 537 | // Fix for the clone issue in the event of 2 slides 538 | var currentIndex = index; 539 | 540 | if (currentIndex >= length) { 541 | currentIndex = currentIndex - length; 542 | } 543 | 544 | return currentIndex; 545 | } 546 | 547 | function slide(to, slideSpeed) { 548 | 549 | // ensure to is of type 'number' 550 | to = typeof to !== 'number' ? parseInt(to, 10) : to; 551 | 552 | // do nothing if already on requested slide 553 | if (index === to) return; 554 | 555 | if (browser.transitions) { 556 | 557 | var direction = Math.abs(index-to) / (index-to); // 1: backward, -1: forward 558 | 559 | // get the actual position of the slide 560 | if (options.continuous) { 561 | var natural_direction = direction; 562 | direction = -slidePos[circle(to)] / width; 563 | 564 | // if going forward but to < index, use to = slides.length + to 565 | // if going backward but to > index, use to = -slides.length + to 566 | if (direction !== natural_direction) { 567 | to = -direction * slides.length + to; 568 | } 569 | 570 | } 571 | 572 | var diff = Math.abs(index-to) - 1; 573 | 574 | // move all the slides between index and to in the right direction 575 | while (diff--) { 576 | move( circle((to > index ? to : index) - diff - 1), width * direction, 0); 577 | } 578 | 579 | to = circle(to); 580 | 581 | move(index, width * direction, slideSpeed || speed); 582 | move(to, 0, slideSpeed || speed); 583 | 584 | if (options.continuous) { // we need to get the next in place 585 | move(circle(to - direction), -(width * direction), 0); 586 | } 587 | 588 | } else { 589 | 590 | to = circle(to); 591 | animate(index * -width, to * -width, slideSpeed || speed); 592 | // no fallback for a circular continuous if the browser does not accept transitions 593 | } 594 | 595 | index = to; 596 | offloadFn(function() { 597 | runCallback(getPos(), slides[index], direction); 598 | }); 599 | } 600 | 601 | function move(index, dist, speed) { 602 | translate(index, dist, speed); 603 | slidePos[index] = dist; 604 | } 605 | 606 | function translate(index, dist, speed) { 607 | 608 | var slide = slides[index]; 609 | var style = slide && slide.style; 610 | 611 | if (!style) return; 612 | 613 | style.webkitTransitionDuration = 614 | style.MozTransitionDuration = 615 | style.msTransitionDuration = 616 | style.OTransitionDuration = 617 | style.transitionDuration = speed + 'ms'; 618 | 619 | style.webkitTransform = 'translate(' + dist + 'px,0)' + 'translateZ(0)'; 620 | style.msTransform = 621 | style.MozTransform = 622 | style.OTransform = 'translateX(' + dist + 'px)'; 623 | 624 | } 625 | 626 | function animate(from, to, speed) { 627 | 628 | // if not an animation, just reposition 629 | if (!speed) { 630 | element.style.left = to + 'px'; 631 | return; 632 | } 633 | 634 | var start = +new Date(); 635 | 636 | var timer = setInterval(function() { 637 | var timeElap = +new Date() - start; 638 | 639 | if (timeElap > speed) { 640 | 641 | element.style.left = to + 'px'; 642 | 643 | if (delay || options.autoRestart) restart(); 644 | 645 | runTransitionEnd(getPos(), slides[index]); 646 | 647 | clearInterval(timer); 648 | 649 | return; 650 | } 651 | 652 | element.style.left = (( (to - from) * (Math.floor((timeElap / speed) * 100) / 100) ) + from) + 'px'; 653 | }, 4); 654 | 655 | } 656 | 657 | /* function begin() { 658 | interval = setTimeout(next, delay); 659 | } */ 660 | function begin() { 661 | 662 | if (options.direction == 'next') { 663 | interval = setTimeout(next, delay); 664 | } else if (options.direction == 'index') { 665 | interval = setTimeout(function(){slide(0,speed);}, delay); 666 | } 667 | } 668 | 669 | function stop() { 670 | delay = 0; 671 | clearTimeout(interval); 672 | } 673 | 674 | function restart() { 675 | stop(); 676 | delay = options.auto || 0; 677 | begin(); 678 | } 679 | 680 | function isMouseEvent(e) { 681 | return /^mouse/.test(e.type); 682 | } 683 | 684 | function kill() { 685 | // cancel slideshow 686 | stop(); 687 | 688 | // remove inline styles 689 | container.style.visibility = ''; 690 | 691 | // reset element 692 | element.style.width = ''; 693 | element.style.left = ''; 694 | 695 | // reset slides 696 | var pos = slides.length; 697 | while (pos--) { 698 | 699 | if (browser.transitions) { 700 | translate(pos, 0, 0); 701 | } 702 | 703 | var slide = slides[pos]; 704 | 705 | // if the slide is tagged as clone, remove it 706 | if (slide.getAttribute('data-cloned')) { 707 | var _parent = slide.parentElement; 708 | _parent.removeChild(slide); 709 | } 710 | 711 | // remove styles 712 | slide.style.width = ''; 713 | slide.style.left = ''; 714 | 715 | slide.style.webkitTransitionDuration = 716 | slide.style.MozTransitionDuration = 717 | slide.style.msTransitionDuration = 718 | slide.style.OTransitionDuration = 719 | slide.style.transitionDuration = ''; 720 | 721 | slide.style.webkitTransform = 722 | slide.style.msTransform = 723 | slide.style.MozTransform = 724 | slide.style.OTransform = ''; 725 | 726 | // remove custom attributes (?) 727 | // slide.removeAttribute('data-index'); 728 | } 729 | 730 | // remove all events 731 | detachEvents(); 732 | 733 | // remove throttled function timeout 734 | throttledSetup.cancel(); 735 | } 736 | } 737 | 738 | if ( root.jQuery || root.Zepto ) { 739 | (function($) { 740 | $.fn.Swipe = function(params) { 741 | return this.each(function() { 742 | $(this).data('Swipe', new Swipe($(this)[0], params)); 743 | }); 744 | }; 745 | })( root.jQuery || root.Zepto ); 746 | } 747 | 748 | return Swipe; 749 | })); --------------------------------------------------------------------------------