diff --git a/css/styles.css b/css/styles.css index a41946f..ecc5178 100644 --- a/css/styles.css +++ b/css/styles.css @@ -658,6 +658,39 @@ SETTINGS POPUP cursor: pointer; } +#message { + position: absolute; + top: 0; + right: 0; + padding: 0.4em 0.5em; + border-radius: 0 0 0 10px; + border: 2px solid #333; + font-weight: bold; + + -webkit-box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); + box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); + color: #333; + white-space: nowrap; + display: none; +} + +#message.error { + background: #EB313C; + color: #fff; +} + +#message.warning { + background: #E9A86E; +} + +#message.notice { + background: #93CAF4; +} + +#message.info { + background: #97DD8A; +} + @media only screen and (max-width: 480px),only screen and (max-width: 720px) and (min-device-pixel-ratio: 1.5),only screen and (max-width: 720px) and (-webkit-min-device-pixel-ratio: 1.5) { /* TOP LOGO diff --git a/css/styles.min.css b/css/styles.min.css index c966d05..bd85134 100644 --- a/css/styles.min.css +++ b/css/styles.min.css @@ -1 +1 @@ -body{background-color:#fcfcfc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;}img{z-index:5;}.btn{background-repeat:no-repeat;cursor:pointer;}#landscape{position:absolute;background-color:#fff;width:100%;max-width:1024px;max-height:768px;top:0px;bottom:0px;left:0px;right:0px;z-index:5;overflow:hidden;margin:0px auto;outline:2px solid #5e8c71;-webkit-box-shadow:0 0 8px rgba(8, 8, 8, 0.25);box-shadow:0 0 8px rgba(8, 8, 8, 0.25);}#portrait{display:none;}.bgContainer{position:absolute;width:100%;height:100%;overflow:hidden;}.bgTop,.bgMiddle,.bgBottom{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1.0;-webkit-transition:opacity .35s linear;-moz-transition:opacity .35s linear;-o-transition:opacity .35s linear;-ms-transition:opacity .35s linear;transition:opacity .35s linear;position:absolute;left:0px;z-index:-5;}.bgTop{top:0px;}.bgMiddle{top:30%;}.bgBottom{bottom:0px;}.centerpanel{position:absolute;left:50%;margin-left:-33%;width:66%;height:100%;z-index:5;}.logopanel{height:25%;}.d3dlogo{position:relative;top:15%;width:100%;height:100%;margin:0px auto;max-width:399px;height:139px;background:url('../img/logo/logo_full.png') no-repeat center center;cursor:pointer;}#verticalShapes{position:absolute;right:0;bottom:15px;margin-right:-8.5%;width:8%;}#verticalShapes > div{border:2px solid #333;border-radius:0px 5px 5px 0px;margin-top:4px;background-color:#fff;cursor:pointer;}#verticalShapes > div img.verticalshape{width:100%;max-width:50px;height:auto;vertical-align:bottom;}.drawareacontainer{position:relative;width:100%;height:65%;background-color:#fff;border:4px solid #000;border-radius:15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;z-index:15;}#canvasContainers{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;padding:0;margin:0;}#mycanvasContainer{position:absolute;top:0;left:0;width:78%;height:100%;}#mycanvas{width:100%;height:100%;margin:0;padding:0;border-right:2px solid #333;}#previewContainer{position:absolute;top:0;right:0;width:22%;height:100%;}#preview{min-width:50px;width:100%;height:100%;margin:0;padding:0;}#preview_tmp{position:absolute;top:0px;left:0px;z-index:500;border:1px solid #f80;display:none;}.bottompanel{position:relative;bottom:0px;width:100%;height:10%;}.manipulationBtns{margin:2px 5px;position:absolute;right:0;top:0;max-width:340px;max-height:70px;width:45%;}.manipulationBtn{width:45%;height:auto;cursor:pointer;}#btnsUpDown{float:left;width:45%;}#btnsUpDown > div{float:left;padding-right:8px;background-repeat:no-repeat;}#btnsTurnLeftRight{float:right;width:45%;}#btnsTurnLeftRight > div{float:left;padding-right:8px;background-repeat:no-repeat;}#btnMoveUp{max-width:65px;}#btnMoveDown{max-width:64px;}#btnTwistLeft{max-width:59px;}#btnTwistRight{max-width:64px;}@media screen and (max-height: 700px){.logopanel{height:22%;}.doodlecontainer{height:68%;}.d3dlogo{top:25%;max-width:399px;height:74px;background-image:url('../img/logo/logo_small.png');}}@media screen and (max-height: 655px){.bgMiddle{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0;}}@media screen and (max-height: 525px){.d3dlogo{top:20%;height:57px;max-width:307px;background-image:url('../img/logo/logo_smaller.png');}}@media screen and (max-height: 375px){.d3dlogo{height:40px;max-width:216px;background-image:url('../img/logo/logo_smallest.png');}}.leftpanel{position:absolute;width:17%;top:0px;left:0px;bottom:0px;}.btnNew{margin:5% 0% 1% 5%;width:100%;max-width:180px;height:auto;}.btnsPrevNext{margin:1% 7%;max-width:160px;}.btnPrevious{width:40%;max-width:56px;height:auto;}.btnNext{width:40%;max-width:56px;height:auto;float:right;}.btnSave{margin:5% 5% 1% 5%;width:90%;max-width:144px;height:auto;}.btnOops{margin:5% 5% 1% 5%;width:90%;max-width:144px;height:auto;}.rightpanel{position:absolute;width:17%;top:0;right:0;bottom:0;}.btnPrint{margin:1% 5% 5% 0%;width:100%;max-width:163px;height:auto;float:right;}.btnStop{margin:5% 10% 1% 5%;float:right;width:90%;max-width:98px;height:auto;}.btnsSettingsInfo{position:absolute;bottom:25px;right:5px;width:80%;margin:1% 5%;max-width:160px;}.btnInfo{width:40%;max-width:53px;height:auto;}.btnSettings{width:40%;max-width:53px;height:auto;float:right;}.progressbarAppear{right:-0.5% !important;}.thermometerAppear{right:-6.5% !important;}.progressbarCanvasContainerParent{position:relative;width:100%;padding-top:5px;}#progressbarCanvasContainer{position:relative;width:50%;float:right;border:solid #000;border-width:2px 0 2px 2px;border-radius:15px 0 0 15px;padding:5px;background-color:#fff;-webkit-box-shadow:0 2px 5px rgba(37, 37, 37, 0.35);box-shadow:0 2px 5px rgba(37, 37, 37, 0.35);-webkit-transition:right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);-moz-transition:right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);-o-transition:right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);-ms-transition:right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);transition:right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);right:-60%;}#progressbarCanvas{top:0;right:0;bottom:0;left:0;width:100%;height:auto;background-color:#fff;}.thermometerContainerParent{position:relative;width:100%;padding-top:5px;}#thermometerContainer{position:relative;width:45%;float:right;background-color:#fff;border:solid #000;border-width:2px 0 2px 2px;border-radius:15px 0 0 15px;padding:5px;-webkit-box-shadow:0 2px 5px rgba(37, 37, 37, 0.35);box-shadow:0 2px 5px rgba(37, 37, 37, 0.35);-webkit-transition:right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);-moz-transition:right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);-o-transition:right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);-ms-transition:right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);transition:right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);right:-55%;}#thermometerCanvas{top:0;right:0;bottom:0;left:0;width:100%;height:auto;background-color:#fff;}.disabled{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";filter:alpha(opacity=30);opacity:0.3;cursor:default;}#btnStop.disabled{display:none;}.clearfix:before,.clearfix:after{content:" ";display:table;}.clearfix:after{clear:both;}.clearfix{*zoom:1;}#contentOverlay{background-color:rgba(255, 255, 255, 0.65);z-index:20;position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:none;}#contentOverlay #settings{background-color:#fff;position:absolute;top:0;left:0;right:0;bottom:0;z-index:15;max-width:775px;max-height:540px;width:80%;height:75%;margin:7% 8%;-webkit-box-shadow:0px 2px 6px 0px rgba(16, 16, 16, 0.65);box-shadow:0px 2px 6px 0px rgba(16, 16, 16, 0.65);border:2px solid #222;border-radius:15px;padding:2%;}#contentOverlay #settings .toppanel{height:10%;}#contentOverlay #settings .toppanel .settingsLabelContainer{width:100%;height:auto;margin-bottom:1%;}#contentOverlay #settings .toppanel .settingsLabelContainer .settingsLabelImg{width:45%;max-width:373px;height:auto;}#contentOverlay #settings .bottompanel{width:100%;height:90%;}#contentOverlay #settings .bottompanel > .settingsContainer{float:left;width:83%;height:98%;margin:.5%;-ms-overflow-y:scroll;overflow-y:scroll;border:1px solid #bbbbbb;border-radius:5px;}#contentOverlay #settings .bottompanel > .btnContainer{width:15%;height:100%;float:right;position:relative;right:0;}#contentOverlay #settings .bottompanel > .btnContainer > .btnOK{position:absolute;bottom:3%;right:7%;max-width:85px;min-width:42px;width:88%;height:auto;margin:0 2% 2% 0;cursor:pointer;}@media only screen and (max-width: 480px),only screen and (max-width: 720px) and (min-device-pixel-ratio: 1.5),only screen and (max-width: 720px) and (-webkit-min-device-pixel-ratio: 1.5){.centerpanel{left:0;margin-left:0;width:100%;}.logopanel{height:40px;}.d3dlogo{top:0;height:40px;max-width:216px;background-image:url('../img/logo/logo_smallest.png');}.drawareacontainer{height:70%;}.bottompanel{height:10%;}.bottompanel .manipulationBtns{margin:2px -27;right:22%;width:38%;}.leftpanel{width:100px;background-color:#fff;z-index:50;-webkit-transition:left 0.3s ease-out;-moz-transition:left 0.3s ease-out;-o-transition:left 0.3s ease-out;-ms-transition:left 0.3s ease-out;transition:left 0.3s ease-out;}.hideleft{left:-101px;}.shadowright{-webkit-box-shadow:2px 0 4px rgba(42, 42, 41, 0.6);box-shadow:2px 0 4px rgba(42, 42, 41, 0.6);}.btnNew{margin:5% 5% 1% 5%;width:90%;}.btnSave{margin-left:9%;width:75%;}.btnOops{margin-left:6%;width:71%;}.rightpanel{width:100px;background-color:#fff;z-index:50;-webkit-transition:right 0.3s ease-out;-moz-transition:right 0.3s ease-out;-o-transition:right 0.3s ease-out;-ms-transition:right 0.3s ease-out;transition:right 0.3s ease-out;}.hideright{right:-101px;}.shadowleft{-webkit-box-shadow:-2px 0 4px rgba(42, 42, 41, 0.6);box-shadow:-2px 0 4px rgba(42, 42, 41, 0.6);}.btnPrint{margin:1% 5% 5% 5%;width:90%;}.btnStop{margin:5% 6% 1% 5%;width:70%;}.sidebutton{display:block;position:absolute;top:40px;width:25px;height:38px;border:1px solid #808;background:url('../img/arrows.png') no-repeat;background-color:#eee;cursor:pointer;}.sidebutton:active{background-color:#aaa;}.leftpanel .sidebutton{right:-27px;background-position:0px 0px;}.rightpanel .sidebutton{left:-27px;background-position:-25px 0px;}.sidebuttonin:active{background-color:#888;}.leftpanel .sidebuttonin{background-color:#ccc;background-position:-25px 0px;}.rightpanel .sidebuttonin{background-color:#ccc;background-position:0px 0px;}#contentOverlay{z-index:200;}#contentOverlay #settings{width:87%;height:82%;margin:6% 4%;}#contentOverlay #settings > .right{width:14%;}}@media only screen and (orientation: portrait){#landscape{display:none;}#portrait{display:block;}.vertImage{margin:0px;padding:0px;max-width:100%;height:auto;width:auto;}} \ No newline at end of file +body{background-color:#fcfcfc;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;}img{z-index:5;}.btn{background-repeat:no-repeat;cursor:pointer;}#landscape{position:absolute;background-color:#fff;width:100%;max-width:1024px;max-height:768px;top:0px;bottom:0px;left:0px;right:0px;z-index:5;overflow:hidden;margin:0px auto;outline:2px solid #5e8c71;-webkit-box-shadow:0 0 8px rgba(8, 8, 8, 0.25);box-shadow:0 0 8px rgba(8, 8, 8, 0.25);}#portrait{display:none;}.bgContainer{position:absolute;width:100%;height:100%;overflow:hidden;}.bgTop,.bgMiddle,.bgBottom{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1.0;-webkit-transition:opacity .35s linear;-moz-transition:opacity .35s linear;-o-transition:opacity .35s linear;-ms-transition:opacity .35s linear;transition:opacity .35s linear;position:absolute;left:0px;z-index:-5;}.bgTop{top:0px;}.bgMiddle{top:30%;}.bgBottom{bottom:0px;}.centerpanel{position:absolute;left:50%;margin-left:-33%;width:66%;height:100%;z-index:5;}.logopanel{height:25%;}.d3dlogo{position:relative;top:15%;width:100%;height:100%;margin:0px auto;max-width:399px;height:139px;background:url('../img/logo/logo_full.png') no-repeat center center;cursor:pointer;}#verticalShapes{position:absolute;right:0;bottom:15px;margin-right:-8.5%;width:8%;}#verticalShapes > div{border:2px solid #333;border-radius:0px 5px 5px 0px;margin-top:4px;background-color:#fff;cursor:pointer;}#verticalShapes > div img.verticalshape{width:100%;max-width:50px;height:auto;vertical-align:bottom;}.drawareacontainer{position:relative;width:100%;height:65%;background-color:#fff;border:4px solid #000;border-radius:15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;z-index:15;}#canvasContainers{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;padding:0;margin:0;}#mycanvasContainer{position:absolute;top:0;left:0;width:78%;height:100%;}#mycanvas{width:100%;height:100%;margin:0;padding:0;border-right:2px solid #333;}#previewContainer{position:absolute;top:0;right:0;width:22%;height:100%;}#preview{min-width:50px;width:100%;height:100%;margin:0;padding:0;}#preview_tmp{position:absolute;top:0px;left:0px;z-index:500;border:1px solid #f80;display:none;}.bottompanel{position:relative;bottom:0px;width:100%;height:10%;}.manipulationBtns{margin:2px 5px;position:absolute;right:0;top:0;max-width:340px;max-height:70px;width:45%;}.manipulationBtn{width:45%;height:auto;cursor:pointer;}#btnsUpDown{float:left;width:45%;}#btnsUpDown > div{float:left;padding-right:8px;background-repeat:no-repeat;}#btnsTurnLeftRight{float:right;width:45%;}#btnsTurnLeftRight > div{float:left;padding-right:8px;background-repeat:no-repeat;}#btnMoveUp{max-width:65px;}#btnMoveDown{max-width:64px;}#btnTwistLeft{max-width:59px;}#btnTwistRight{max-width:64px;}@media screen and (max-height: 700px){.logopanel{height:22%;}.doodlecontainer{height:68%;}.d3dlogo{top:25%;max-width:399px;height:74px;background-image:url('../img/logo/logo_small.png');}}@media screen and (max-height: 655px){.bgMiddle{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);opacity:0;}}@media screen and (max-height: 525px){.d3dlogo{top:20%;height:57px;max-width:307px;background-image:url('../img/logo/logo_smaller.png');}}@media screen and (max-height: 375px){.d3dlogo{height:40px;max-width:216px;background-image:url('../img/logo/logo_smallest.png');}}.leftpanel{position:absolute;width:17%;top:0px;left:0px;bottom:0px;}.btnNew{margin:5% 0% 1% 5%;width:100%;max-width:180px;height:auto;}.btnsPrevNext{margin:1% 7%;max-width:160px;}.btnPrevious{width:40%;max-width:56px;height:auto;}.btnNext{width:40%;max-width:56px;height:auto;float:right;}.btnSave{margin:5% 5% 1% 5%;width:90%;max-width:144px;height:auto;}.btnOops{margin:5% 5% 1% 5%;width:90%;max-width:144px;height:auto;}.rightpanel{position:absolute;width:17%;top:0;right:0;bottom:0;}.btnPrint{margin:1% 5% 5% 0%;width:100%;max-width:163px;height:auto;float:right;}.btnStop{margin:5% 10% 1% 5%;float:right;width:90%;max-width:98px;height:auto;}.btnsSettingsInfo{position:absolute;bottom:25px;right:5px;width:80%;margin:1% 5%;max-width:160px;}.btnInfo{width:40%;max-width:53px;height:auto;}.btnSettings{width:40%;max-width:53px;height:auto;float:right;}.progressbarAppear{right:-0.5% !important;}.thermometerAppear{right:-6.5% !important;}.progressbarCanvasContainerParent{position:relative;width:100%;padding-top:5px;}#progressbarCanvasContainer{position:relative;width:50%;float:right;border:solid #000;border-width:2px 0 2px 2px;border-radius:15px 0 0 15px;padding:5px;background-color:#fff;-webkit-box-shadow:0 2px 5px rgba(37, 37, 37, 0.35);box-shadow:0 2px 5px rgba(37, 37, 37, 0.35);-webkit-transition:right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);-moz-transition:right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);-o-transition:right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);-ms-transition:right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);transition:right 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);right:-60%;}#progressbarCanvas{top:0;right:0;bottom:0;left:0;width:100%;height:auto;background-color:#fff;}.thermometerContainerParent{position:relative;width:100%;padding-top:5px;}#thermometerContainer{position:relative;width:45%;float:right;background-color:#fff;border:solid #000;border-width:2px 0 2px 2px;border-radius:15px 0 0 15px;padding:5px;-webkit-box-shadow:0 2px 5px rgba(37, 37, 37, 0.35);box-shadow:0 2px 5px rgba(37, 37, 37, 0.35);-webkit-transition:right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);-moz-transition:right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);-o-transition:right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);-ms-transition:right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);transition:right 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);right:-55%;}#thermometerCanvas{top:0;right:0;bottom:0;left:0;width:100%;height:auto;background-color:#fff;}.disabled{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";filter:alpha(opacity=30);opacity:0.3;cursor:default;}#btnStop.disabled{display:none;}.clearfix:before,.clearfix:after{content:" ";display:table;}.clearfix:after{clear:both;}.clearfix{*zoom:1;}#contentOverlay{background-color:rgba(255, 255, 255, 0.65);z-index:20;position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:none;}#contentOverlay #settings{background-color:#fff;position:absolute;top:0;left:0;right:0;bottom:0;z-index:15;max-width:775px;max-height:540px;width:80%;height:75%;margin:7% 8%;-webkit-box-shadow:0px 2px 6px 0px rgba(16, 16, 16, 0.65);box-shadow:0px 2px 6px 0px rgba(16, 16, 16, 0.65);border:2px solid #222;border-radius:15px;padding:2%;}#contentOverlay #settings .toppanel{height:10%;}#contentOverlay #settings .toppanel .settingsLabelContainer{width:100%;height:auto;margin-bottom:1%;}#contentOverlay #settings .toppanel .settingsLabelContainer .settingsLabelImg{width:45%;max-width:373px;height:auto;}#contentOverlay #settings .bottompanel{width:100%;height:90%;}#contentOverlay #settings .bottompanel > .settingsContainer{float:left;width:83%;height:98%;margin:.5%;-ms-overflow-y:scroll;overflow-y:scroll;border:1px solid #bbbbbb;border-radius:5px;}#contentOverlay #settings .bottompanel > .btnContainer{width:15%;height:100%;float:right;position:relative;right:0;}#contentOverlay #settings .bottompanel > .btnContainer > .btnOK{position:absolute;bottom:3%;right:7%;max-width:85px;min-width:42px;width:88%;height:auto;margin:0 2% 2% 0;cursor:pointer;}#message{position:absolute;top:0;right:0;padding:0.4em 0.5em;border-radius:0 0 0 10px;border:2px solid #333;font-weight:bold;-webkit-box-shadow:0px 2px 6px 0px rgba(16, 16, 16, 0.65);box-shadow:0px 2px 6px 0px rgba(16, 16, 16, 0.65);color:#333;white-space:nowrap;display:none;}#message.error{background:#EB313C;color:#fff;}#message.warning{background:#E9A86E;}#message.notice{background:#93CAF4;}#message.info{background:#97DD8A;}@media only screen and (max-width: 480px),only screen and (max-width: 720px) and (min-device-pixel-ratio: 1.5),only screen and (max-width: 720px) and (-webkit-min-device-pixel-ratio: 1.5){.centerpanel{left:0;margin-left:0;width:100%;}.logopanel{height:40px;}.d3dlogo{top:0;height:40px;max-width:216px;background-image:url('../img/logo/logo_smallest.png');}.drawareacontainer{height:70%;}.bottompanel{height:10%;}.bottompanel .manipulationBtns{margin:2px -27;right:22%;width:38%;}.leftpanel{width:100px;background-color:#fff;z-index:50;-webkit-transition:left 0.3s ease-out;-moz-transition:left 0.3s ease-out;-o-transition:left 0.3s ease-out;-ms-transition:left 0.3s ease-out;transition:left 0.3s ease-out;}.hideleft{left:-101px;}.shadowright{-webkit-box-shadow:2px 0 4px rgba(42, 42, 41, 0.6);box-shadow:2px 0 4px rgba(42, 42, 41, 0.6);}.btnNew{margin:5% 5% 1% 5%;width:90%;}.btnSave{margin-left:9%;width:75%;}.btnOops{margin-left:6%;width:71%;}.rightpanel{width:100px;background-color:#fff;z-index:50;-webkit-transition:right 0.3s ease-out;-moz-transition:right 0.3s ease-out;-o-transition:right 0.3s ease-out;-ms-transition:right 0.3s ease-out;transition:right 0.3s ease-out;}.hideright{right:-101px;}.shadowleft{-webkit-box-shadow:-2px 0 4px rgba(42, 42, 41, 0.6);box-shadow:-2px 0 4px rgba(42, 42, 41, 0.6);}.btnPrint{margin:1% 5% 5% 5%;width:90%;}.btnStop{margin:5% 6% 1% 5%;width:70%;}.sidebutton{display:block;position:absolute;top:40px;width:25px;height:38px;border:1px solid #808;background:url('../img/arrows.png') no-repeat;background-color:#eee;cursor:pointer;}.sidebutton:active{background-color:#aaa;}.leftpanel .sidebutton{right:-27px;background-position:0px 0px;}.rightpanel .sidebutton{left:-27px;background-position:-25px 0px;}.sidebuttonin:active{background-color:#888;}.leftpanel .sidebuttonin{background-color:#ccc;background-position:-25px 0px;}.rightpanel .sidebuttonin{background-color:#ccc;background-position:0px 0px;}#contentOverlay{z-index:200;}#contentOverlay #settings{width:87%;height:82%;margin:6% 4%;}#contentOverlay #settings > .right{width:14%;}}@media only screen and (orientation: portrait){#landscape{display:none;}#portrait{display:block;}.vertImage{margin:0px;padding:0px;max-width:100%;height:auto;width:auto;}} \ No newline at end of file diff --git a/index.html b/index.html index a4cc261..b17cfe4 100755 --- a/index.html +++ b/index.html @@ -79,6 +79,8 @@ + +
@@ -154,6 +156,7 @@ + diff --git a/js/Printer.js b/js/Printer.js index 22dd89c..5cf9e78 100644 --- a/js/Printer.js +++ b/js/Printer.js @@ -12,12 +12,13 @@ function setPrintprogress(val) { function Printer() { - Printer.UNKNOWN_STATE = "unknown"; - Printer.DISCONNECTED_STATE = "disconnected"; - Printer.IDLE_STATE = "idle"; // printer found, but idle - Printer.BUFFERING_STATE = "buffering"; // printer is buffering (recieving) data, but not yet printing - Printer.PRINTING_STATE = "printing"; - Printer.STOPPING_STATE = "stopping"; // when you stop (abort) a print it prints the endcode + Printer.WIFIBOX_DISCONNECTED_STATE = "wifibox disconnected"; + Printer.UNKNOWN_STATE = "unknown"; // happens when a printer is connection but there isn't communication yet + Printer.DISCONNECTED_STATE = "disconnected"; // printer disconnected + Printer.IDLE_STATE = "idle"; // printer found, but idle + Printer.BUFFERING_STATE = "buffering"; // printer is buffering (recieving) data, but not yet printing + Printer.PRINTING_STATE = "printing"; + Printer.STOPPING_STATE = "stopping"; // when you stop (abort) a print it prints the endcode Printer.ON_BEFORE_UNLOAD_MESSAGE = "You're doodle is still being send to the printer, leaving will result in a incomplete 3D print"; @@ -97,6 +98,7 @@ function Printer() { console.log("Printer:print"); console.log(" gcode total # of lines: " + gcode.length); + message.set("Sending doodle to printer...",Message.NOTICE); self.addLeaveWarning(); /*for (i = 0; i < gcode.length; i++) { @@ -157,6 +159,7 @@ function Printer() { this.gcode = []; btnStop.css("display","block"); // hack self.removeLeaveWarning(); + message.set("Doodle is send to printer...",Message.INFO,true); //self.targetTemperature = settings["printer.temperature"]; // slight hack } else { // only if the state hasn't bin changed (by for example pressing stop) we send more gcode @@ -239,7 +242,7 @@ function Printer() { this.checkStatus = function() { console.log("Printer:checkStatus"); this.stateOverruled = false; - console.log(" stateOverruled: ",this.stateOverruled); + //console.log(" stateOverruled: ",this.stateOverruled); var self = this; if (communicateWithWifibox) { $.ajax({ @@ -247,7 +250,7 @@ function Printer() { dataType: 'json', timeout: this.timeoutTime, success: function(response){ - console.log(" Printer:status: ",response.data.state); //," response: ",response); + //console.log(" Printer:status: ",response.data.state); //," response: ",response); self.handleStatusUpdate(response); @@ -257,26 +260,27 @@ function Printer() { } }).fail(function() { console.log("Printer:checkStatus: failed"); - self.state = Printer.UNKNOWN_STATE; + self.state = Printer.WIFIBOX_DISCONNECTED_STATE; clearTimeout(self.checkStatusDelay); clearTimeout(self.retryCheckStatusDelay); self.retryCheckStatusDelay = setTimeout(function() { self.checkStatus() },self.retryDelay); // retry after delay + $(document).trigger(Printer.UPDATE); }); } else { console.log ("Printer >> f:checkStatus() >> communicateWithWifibox is false, so not executing this function"); } } this.handleStatusUpdate = function(response) { - console.log("Printer:handleStatusUpdate"); + console.log("Printer:handleStatusUpdate response: ",response); var data = response.data; if(response.status != "success") { self.state = Printer.UNKNOWN_STATE; } else { // state - console.log(" stateOverruled: ",this.stateOverruled); + //console.log(" stateOverruled: ",this.stateOverruled); if(!this.stateOverruled) { self.state = data.state; - console.log(" state > ",self.state); + //console.log(" state > ",self.state); } // temperature diff --git a/js/Progressbar.js b/js/Progressbar.js index aaa7dc1..a148ea8 100644 --- a/js/Progressbar.js +++ b/js/Progressbar.js @@ -49,7 +49,7 @@ function Progressbar() { } this.update = function(part, total) { - console.log("Progressbar.update(" + part + "," + total + ")"); + //console.log("Progressbar.update(" + part + "," + total + ")"); var pct = part / total; if (this.isInitted) { @@ -59,7 +59,7 @@ function Progressbar() { var progress = part / total; progress = Math.min(progress, 1.0); progress = Math.max(progress, 0); - console.log("progressbar >> f:update() >> progress: " + progress); + //console.log("progressbar >> f:update() >> progress: " + progress); // clear this.context.clearRect(0, 0, this.canvas.width, this.canvas.height); diff --git a/js/buttonbehaviors.js b/js/buttonbehaviors.js index c604b38..1cb2fdd 100644 --- a/js/buttonbehaviors.js +++ b/js/buttonbehaviors.js @@ -317,10 +317,12 @@ function update() { progressbar.update(printer.currentLine, printer.totalLines); } -function setState(newState,newHasControl) { //TODO add hasControl +function setState(newState,newHasControl) { if(newState == state && newHasControl == hasControl) return; - console.log("setState: ",state," > ",newState," ( ",newHasControl,")"); + prevState = state; + + console.log("setState: ",prevState," > ",newState," ( ",newHasControl,")"); setDebugText("State: "+newState); // print button @@ -347,12 +349,14 @@ function setState(newState,newHasControl) { //TODO add hasControl // thermometer switch(newState) { - case Printer.UNKNOWN_STATE: - case Printer.DISCONNECTED_STATE: - thermometer.hide(); + case Printer.IDLE_STATE: + case Printer.BUFFERING_STATE: + case Printer.PRINTING_STATE: + case Printer.STOPPING_STATE: + thermometer.show(); break; default: - thermometer.show(); + thermometer.hide(); break; } @@ -365,8 +369,18 @@ function setState(newState,newHasControl) { //TODO add hasControl progressbar.hide(); break; } - - prevState = state; + + if(newState == Printer.WIFIBOX_DISCONNECTED_STATE) { + message.set("Lost connection to WiFi box",Message.ERROR); + } else if(prevState == Printer.WIFIBOX_DISCONNECTED_STATE) { + message.set("Connected to WiFi box",Message.INFO,true); + } else if(newState == Printer.DISCONNECTED_STATE) { + message.set("Printer disconnected",Message.WARNING,true); + } else if(prevState == Printer.DISCONNECTED_STATE && newState == Printer.IDLE_STATE || + prevState == Printer.UNKNOWN_STATE && newState == Printer.IDLE_STATE) { + message.set("Printer connected",Message.INFO,true); + } + state = newState; hasControl = newHasControl; } diff --git a/js/main.js b/js/main.js index af4f505..0ff71ff 100644 --- a/js/main.js +++ b/js/main.js @@ -8,6 +8,7 @@ var printer = new Printer(); var progressbar = new Progressbar(); var thermometer = new Thermometer(); var settingsWindow = new SettingsWindow(); +var message = new Message(); var firstTimeSettingsLoaded = true; @@ -55,7 +56,8 @@ $(function() { thermometer.init($("#thermometerCanvas"), $("#thermometerContainer")); progressbar.init($("#progressbarCanvas"), $("#progressbarCanvasContainer")); - + message.init($("#message")); + printer.init(); $(document).on(Printer.UPDATE,update); @@ -128,4 +130,4 @@ function settingsLoaded() { function setDebugText(text) { $("#debug_display").text(text); -} +} \ No newline at end of file diff --git a/js/message.js b/js/message.js new file mode 100644 index 0000000..dc3cab3 --- /dev/null +++ b/js/message.js @@ -0,0 +1,52 @@ +function Message() { + + Message.ERROR = "error"; + Message.WARNING = "warning"; + Message.NOTICE = "notice"; + Message.INFO = "info"; + + this.mode = ""; + + this.$element; + + var self = this; + var autoHideDelay = 2000; + var autohideTimeout; + + this.init = function($element) { + console.log("Message:init"); + + this.$element = $element; + console.log("$element: ",$element); + } + + this.set = function(text,mode,autoHide) { + console.log("Message:set: ",text,mode,autoHide); + self.hide(function() { + self.show(); + self.clear(); + + self.$element.text(text); + self.$element.addClass(mode); + self.show(); + + self.mode = mode; + + clearTimeout(autohideTimeout); + if(autoHide) { + autohideTimeout = setTimeout(function(){ self.hide()},autoHideDelay); + } + }); + } + this.clear = function($element) { + this.$element.text(""); + this.$element.removeClass(this.mode); + } + + this.show = function() { + this.$element.fadeIn(200); + } + this.hide = function(complete) { + this.$element.fadeOut(200,complete); + } +} \ No newline at end of file diff --git a/less/message.less b/less/message.less new file mode 100644 index 0000000..8378d5f --- /dev/null +++ b/less/message.less @@ -0,0 +1,30 @@ +#message { + position: absolute; + top: 0; + right: 0; + + padding: 0.4em 0.5em; + border-radius: 0 0 0 10px; + border: 2px solid #333; + font-weight: bold; + box-shadow: 0px 2px 6px 0px rgba(16, 16, 16, 0.65); + + color: #333; + white-space:nowrap; + + display:none; + + &.error { + background: #EB313C; + color: #fff; + } + &.warning { + background: #E9A86E; + } + &.notice { + background: #93CAF4; + } + &.info { + background: #97DD8A; + } +} \ No newline at end of file diff --git a/less/styles.less b/less/styles.less index ed4d2a5..bfaef91 100644 --- a/less/styles.less +++ b/less/styles.less @@ -2,6 +2,7 @@ //@import "normalize.min.less"; @import "base.less"; @import "settingsPopup.less"; +@import "message.less"; // MOBILE