FUNCT Add buttons, fan speed and chair functionality
authorHumberto Alfonso Díaz <humberto.alfonso@asvito.es>
Fri, 5 Jul 2019 09:15:05 +0000 (11:15 +0200)
committerLorenzo Tilve <ltilve@igalia.com>
Tue, 4 Feb 2020 08:42:15 +0000 (09:42 +0100)
src/index.html
src/js/buttons.js [new file with mode: 0644]
src/js/chair.js [new file with mode: 0644]
src/js/fan_speed.js [new file with mode: 0644]
src/styles/main.scss
webpack.config.js

index 4541301..4ffbb28 100644 (file)
@@ -12,8 +12,8 @@
             </div>
             <div class="fanSpeed">
                 <div class="fanSpeedContainer">
-                    <input type="range" min="1" max="100" value="50">
-                    <progress value="50" max="100"></progress>
+                    <input id="FanSpeedInput" type="range" min="1" value="1" max="100" onchange="FANSPEED.update(this.value)">
+                    <progress id="FanSpeedProgress" value="1" max="100"></progress>
                 </div>
                 <div class="label">
                     FAN SPEED
 
         </div>
         <div class="center">
-            <div class="seat item">
-                <img src="../images/HMI_HVAC_Left_Chair_OFF.svg"/>
-                <img src="../images/HMI_HVAC_ChairIndicator_OFF.svg"/>
-            </div>
-            <div class="ac item">
-                <img src="../images/HMI_HVAC_Inactive.svg"/>
+            <a id="LeftChair" value="0" href="#" class="seat left item button" onclick="CHAIR.left()">
+                <img class="off" src="../images/HMI_HVAC_Left_Chair_OFF.svg"/>
+                <img class="one two" src="../images/HMI_HVAC_Left_Chair_ON.svg"/>
+                <img class="off" src="../images/HMI_HVAC_ChairIndicator_OFF.svg"/>
+                <img class="one" src="../images/HMI_HVAC_ChairIndicator_One.svg"/>
+                <img class="two" src="../images/HMI_HVAC_ChairIndicator_Two.svg"/>
+            </a>
+            <a id="acbutton" value="false" href="#" class="ac item button" onclick="BUTTON.ac()">
+                <img class="disabled" src="../images/HMI_HVAC_Inactive.svg"/>
+                <img class="enabled" src="../images/HMI_HVAC_Active.svg"/>
                 <div class="label">
                     A/C
                 </div>
-            </div>
-            <div class="seat item">
-                <img src="../images/HMI_HVAC_Right_Chair_OFF.svg"/>
-                <img src="../images/HMI_HVAC_ChairIndicator_OFF.svg"/>
-            </div>
+            </a>
+            <a id="RightChair" value="0" href="#" class="seat right item button" onclick="CHAIR.right()">
+                <img class="off" src="../images/HMI_HVAC_Right_Chair_OFF.svg"/>
+                <img class="one two" src="../images/HMI_HVAC_Right_Chair_ON.svg"/>
+                <img class="off" src="../images/HMI_HVAC_ChairIndicator_OFF.svg"/>
+                <img class="one" src="../images/HMI_HVAC_ChairIndicator_One.svg"/>
+                <img class="two" src="../images/HMI_HVAC_ChairIndicator_Two.svg"/>
+            </a>
             <div class="temperatures item">
                 <div class="temperatures-container">
                     <div class="temperature">
                 </div>
             </div>
             <div class="block item">
-                <div class="auto item">
-                    <img src="../images/HMI_HVAC_Inactive.svg"/>
+                <a id="autobutton" value="false" href="#" class="auto item button" onclick="BUTTON.auto()">
+                    <img class="disabled" src="../images/HMI_HVAC_Inactive.svg"/>
+                    <img class="enabled" src="../images/HMI_HVAC_Active.svg"/>
                     <div class="label">
                         AUTO
                     </div>
-                </div>
-                <div class="circulation item">
-                    <img src="../images/HMI_HVAC_Circulation_Inactive.svg"/>
-                </div>
+                </a>
+                <a id="circulationbutton" value="false" href="#" class="circulation item button" onclick="BUTTON.circulation()">
+                    <img class="disabled" src="../images/HMI_HVAC_Circulation_Inactive.svg"/>
+                    <img class="enabled" src="../images/HMI_HVAC_Circulation_Active.svg"/>
+                </a>
             </div>
             <div class=" temperatures item">
                 <div class="temperatures-container">
             </div>
         </div>
         <div class="bottom">
-            <a class="button">
-                <img src="../images/HMI_HVAC_AirDown_Inactive.svg">
+            <a id="downbutton" value="false" href="#" class="down item button" onclick="BUTTON.down()">
+                <img class="disabled" src="../images/HMI_HVAC_AirDown_Inactive.svg">
+                <img class="enabled" src="../images/HMI_HVAC_AirDown_Active.svg">
             </a>
-            <a class="button">
-                <img src="../images/HMI_HVAC_AirUp_Inactive.svg">
+            <a id="upbutton" value="false" href="#" class="up item button" onclick="BUTTON.up()">
+                <img class="disabled" src="../images/HMI_HVAC_AirUp_Inactive.svg">
+                <img class="enabled" src="../images/HMI_HVAC_AirUp_Active.svg">
             </a>
-            <a class="button">
-                <img src="../images/HMI_HVAC_AirRight_Inactive.svg">
+            <a id="rightbutton" value="false" href="#" class="right item button" onclick="BUTTON.right()">
+                <img class="disabled" src="../images/HMI_HVAC_AirRight_Inactive.svg">
+                <img class="enabled" src="../images/HMI_HVAC_AirRight_Active.svg">
             </a>
-            <a class="button">
-                <img src="../images/HMI_HVAC_Rear_Inactive.svg">
+            <a id="rearbutton" value="false" href="#" class="rear item button" onclick="BUTTON.rear()">
+                <img class="disabled" src="../images/HMI_HVAC_Rear_Inactive.svg">
+                <img class="enabled" src="../images/HMI_HVAC_Rear_Active.svg">
             </a>
-            <a class="button">
-                <img src="../images/HMI_HVAC_Front_Inactive.svg">
+            <a id="frontbutton" value="false" href="#" class="front item button" onclick="BUTTON.front()">
+                <img class="disabled" src="../images/HMI_HVAC_Front_Inactive.svg">
+                <img class="enabled" src="../images/HMI_HVAC_Front_Active.svg">
             </a>
         </div>
         <div class="log" id="log">
diff --git a/src/js/buttons.js b/src/js/buttons.js
new file mode 100644 (file)
index 0000000..3730d9f
--- /dev/null
@@ -0,0 +1,50 @@
+var buttons = {
+    ac: false,
+    auto: false,
+    circulation: false,
+    down: false,
+    up: false,
+    right: false,
+    rear: false,
+    front: false
+};
+
+module.exports = {
+    update: function() {
+        for( var button in buttons ) {
+            document.getElementById(button+'button').setAttribute('value', buttons[button]);
+        }
+    },
+    ac: function() {
+        buttons.ac = !buttons.ac;
+        this.update();
+    },
+    auto: function() {
+        buttons.auto = !buttons.auto;
+        this.update();
+    },
+    circulation: function() {
+        buttons.circulation = !buttons.circulation;
+        this.update();
+    },
+    down: function() {
+        buttons.down = !buttons.down;
+        this.update();
+    },
+    up: function() {
+        buttons.up = !buttons.up;
+        this.update();
+    },
+    right: function() {
+        buttons.right = !buttons.right;
+        this.update();
+    },
+    rear: function() {
+        buttons.rear = !buttons.rear;
+        this.update();
+    },
+    front: function() {
+        buttons.front = !buttons.front;
+        this.update();
+    }
+}
\ No newline at end of file
diff --git a/src/js/chair.js b/src/js/chair.js
new file mode 100644 (file)
index 0000000..ceed88c
--- /dev/null
@@ -0,0 +1,19 @@
+var left = 0;
+var right = 0;
+
+module.exports = {
+    update_left: function() {
+        document.getElementById('LeftChair').setAttribute('value', left);
+    },
+    left: function() {
+        left = (left + 1) % 3;
+        this.update_left();
+    },
+    update_right: function() {
+        document.getElementById('RightChair').setAttribute('value', right);
+    },
+    right: function() {
+        right = (right + 1) % 3;
+        this.update_right();
+    },
+}
\ No newline at end of file
diff --git a/src/js/fan_speed.js b/src/js/fan_speed.js
new file mode 100644 (file)
index 0000000..cc81fe0
--- /dev/null
@@ -0,0 +1,10 @@
+module.exports = {
+    set: function(value) {
+        document.getElementById('FanSpeedProgress').value = value;
+        document.getElementById('FanSpeedInput').value = value;
+    },
+    update: function( value ) {
+        this.set(value);
+
+    }
+}
\ No newline at end of file
index d0867c4..698d3ee 100644 (file)
@@ -61,6 +61,31 @@ body {
     color: map-get($colors, font);
     margin: 5%;
 
+    a {
+        color: map-get($colors, font);
+    }
+
+    .button {
+        &[value="true"] {
+            color: map-get($colors, primary);
+            .disabled {
+                display: none;
+            }
+            .enabled {
+                display: block;
+            }
+        }
+        &[value="false"] {
+            color: map-get($colors, grey);
+            .disabled {
+                display: block;
+            }
+            .enabled {
+                display: none;
+            }
+        }
+    }
+
     .top {
         display: flex;
         flex-direction: row;
@@ -114,6 +139,34 @@ body {
                     width: 50%;
                     margin: 0 25%;
                 }
+
+                &[value="0"] {
+                    .one, .two {
+                        display: none;
+                    }
+                    .off {
+                        display: block;
+                    }
+                }
+
+                &[value="1"] {
+                    .off, .two {
+                        display: none;
+                    }
+                    .one {
+                        display: block;
+                    }
+                }
+
+                &[value="2"] {
+                    .one, .off {
+                        display: none;
+                    }
+                    .two {
+                        display: block;
+                    }
+                }
+
             }
 
             &.circulation {
index e6baeb2..ed7e0a3 100644 (file)
@@ -9,10 +9,18 @@ const ZipPlugin = require('zip-webpack-plugin');
 
 module.exports = {
     mode: 'production',
-    entry: './src/index.js',
+    entry: {
+        index: './src/index.js',
+        FANSPEED: './src/js/fan_speed.js',
+        CHAIR: './src/js/chair.js',
+        BUTTON: './src/js/buttons.js'
+    },
     output: {
-        filename: 'index.js',
-        path: __dirname + '/dist'
+        path: __dirname + '/dist',
+        filename: '[name].js',
+        libraryTarget: 'var',
+        // `library` determines the name of the global variable
+        library: '[name]'
     },
     optimization: {
         minimizer: [new UglifyJsPlugin()],