This commit is contained in:
Alessandro Francia
2018-04-05 17:01:48 +02:00
14 changed files with 856 additions and 131 deletions
Binary file not shown.
+314 -17
View File
@@ -1,5 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<userSoftKeys>
<softKey_procedure>
<active>true</active>
<category>1</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_procedure>
<softKey_toggle>
<active>true</active>
<category>1</category>
@@ -13,7 +23,7 @@
<softKey_group>
<active>true</active>
<category>1</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
@@ -85,14 +95,16 @@
</localizedNames>
<subKeys>
<subKey plcId="1"> 1 </subKey>
<subKey plcId="2"> 1 </subKey>
<subKey plcId="3"> 1 </subKey>
<subKey plcId="4"> 1 </subKey>
<subKey plcId="2"> 2 </subKey>
<subKey plcId="3"> 3 </subKey>
<subKey plcId="4"> 4 </subKey>
<subKey plcId="5"> 5 </subKey>
<subKey plcId="6"> 6 </subKey>
</subKeys>
</softKey_group>
<softKey_group>
<active>true</active>
<category>2</category>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
@@ -100,32 +112,32 @@
</localizedNames>
<subKeys>
<subKey plcId="1"> 1 </subKey>
<subKey plcId="2"> 1 </subKey>
<subKey plcId="3"> 1 </subKey>
<subKey plcId="4"> 1 </subKey>
<subKey plcId="5"> 1 </subKey>
<subKey plcId="2"> 2 </subKey>
<subKey plcId="3"> 3 </subKey>
<subKey plcId="4"> 4 </subKey>
<subKey plcId="5"> 5 </subKey>
</subKeys>
</softKey_group>
<softKey_group>
<active>true</active>
<category>2</category>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
<subKeys>
<subKey plcId="1"> 1 </subKey>
<subKey plcId="2"> 1 </subKey>
<subKey plcId="3"> 1 </subKey>
<subKey plcId="4"> 1 </subKey>
<subKey plcId="5"> 1 </subKey>
<subKey plcId="6"> 1 </subKey>
<subKey plcId="1"> A </subKey>
<subKey plcId="2"> B </subKey>
<subKey plcId="3"> C </subKey>
<subKey plcId="4"> D </subKey>
<subKey plcId="5"> E </subKey>
<subKey plcId="6"> V </subKey>
</subKeys>
</softKey_group>
<softKey_toggle>
<active>true</active>
<category>1</category>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
@@ -133,4 +145,289 @@
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_group>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
<subKeys>
<subKey plcId="1"> A </subKey>
<subKey plcId="2"> B </subKey>
<subKey plcId="3"> C </subKey>
<subKey plcId="4"> D </subKey>
<subKey plcId="5"> E </subKey>
<subKey plcId="6"> V </subKey>
</subKeys>
</softKey_group>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_toggle>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>true</operatorConfirmationNeeded>
<plcId>1</plcId>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
</softKey_toggle>
<softKey_group>
<active>true</active>
<category>3</category>
<operatorConfirmationNeeded>false</operatorConfirmationNeeded>
<localizedNames>
<lang langKey="en">Test</lang>
<lang langKey="it">Ita</lang>
</localizedNames>
<subKeys>
<subKey plcId="1"> A </subKey>
<subKey plcId="2"> B </subKey>
<subKey plcId="3"> C </subKey>
<subKey plcId="4"> D </subKey>
<subKey plcId="5"> E </subKey>
<subKey plcId="6"> V </subKey>
</subKeys>
</softKey_group>
</userSoftKeys>
+7 -3
View File
@@ -62,7 +62,11 @@ button.btn {
background-color: @color-blue;
color: white;
}
&.btn-danger{
color:@color-scarlet;
}
button.dark-blue:active {
background-color: @color-darkish-blue-two;
}
@@ -185,7 +189,7 @@ button.soft {
filter: grayscale(100%) invert(100) saturate(200);
}
}
&:active{
&:active{
background-image: linear-gradient(to bottom, @color-silver, #f1f1f1);
box-shadow: inset 0px 0px 3px 0px rgba(0, 0, 0, 0.5);
}
@@ -303,7 +307,7 @@ fieldset[disabled] .form-group.is-focused .togglebutton label {
.togglebutton label input[type=checkbox]+.toggle:active:after,
.togglebutton label input[type=checkbox][disabled]+.toggle:active:after {
box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.6), 0 0 0 20px rgba(0, 0, 0, 0.2);
}
.togglebutton label input[type=checkbox]:checked+.toggle:after {
@@ -15,6 +15,7 @@
@import "keypad.less";
@import "back-view.less";
@import "head.less";
<<<<<<< HEAD
@import "tooling.less";
@import "card.less";
@import "depot.less";
@@ -26,6 +27,13 @@
@import "equipment.less";
@import "skill-equipment.less";
@import "load-equipment.less";
=======
// @import "tooling.less";
// @import "card.less";
// @import "depot.less";
// @import "tool.less";
// @import "detail-card.less";
>>>>>>> 47dcfdc72f69746b3432660c7bb6c11272512e5e
@background-color: rgb(216, 216, 216);
@handle-width: 48px;
+170 -48
View File
@@ -16,16 +16,45 @@
background-image: linear-gradient(to bottom, #657178, #657178 65px, #404040);
box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.4);
border-radius: 2px;
.softkeys-backdrop{
position:absolute;
top:0;
left: 0;
right: 0;
bottom: 0;
z-index:1;
background-color: rgba(255, 255, 255, 0.2);
.softkeys-backdrop,
.softkeys-backdrop-top,
.softkeys-backdrop-left,
.softkeys-backdrop-right,
.softkeys-backdrop-bottom {
position: absolute;
z-index: 1;
background-color: rgba(255, 255, 255, 0.5);
}
.softkeys-backdrop {
top: 0;
left: 0;
right: 0;
bottom: 0;
}
// .softkeys-backdrop-top {
// top: 0;
// left: 0;
// width: 100%;
// height: 108px;
// }
// .softkeys-backdrop-left {
// top: 108px;
// left: 0;
// bottom: 16px;
// width: 4px;
// }
// .softkeys-backdrop-right {
// top: 108px;
// right: 0;
// bottom: 16px;
// width: 24px;
// }
// .softkeys-backdrop-bottom {
// bottom: 0;
// left: 0;
// width: 100%;
// height: 16px;
// }
&>div.waiting::after {
content: "";
display: block;
@@ -33,22 +62,26 @@
top: 0;
right: 0;
left: 0;
bottom: 0;
bottom: 72px;
cursor: wait;
background-color: rgba(255, 255, 255, 0.2);
width: 100%;
height: 100%;
background-color: rgba(255, 255, 255, 0.5);
width: 100%; // height: 100%;
}
&>div.waiting-button {
display: none;
&.waiting {
display: block;
display: flex;
position: absolute;
justify-content: space-between;
align-items: center;
bottom: 0;
width: 100%;
width: calc(~"100% - 60px");
height: 72px;
background-color: #002680;
z-index: 100;
color: #fff;
font-size: 24px;
padding: 0 30px;
}
}
&>div.container {
@@ -64,7 +97,7 @@
flex-grow: 1;
border: none;
background: @color-gunmetal;
border: 0.5px solid @color-slate-gray;
border: 1px solid @color-slate-gray;
border-top: none;
border-bottom: none;
position: relative;
@@ -92,6 +125,9 @@
color: white;
font-size: 12px;
}
&:active:not(.active) {
background-color: @color-black-50;
}
}
}
.title {
@@ -111,10 +147,8 @@
height: calc(~"100% - 124px");
overflow: hidden;
overflow-y: scroll;
margin-right: 8px;
// position: relative;
overflow-x: visible;
transform: translateZ(0);
margin-right: 8px; // position: relative;
// transform: translateZ(0);
}
}
@@ -135,27 +169,28 @@
cursor: not-allowed;
}
&.selected {
border: 2px solid rgba(23, 145, 255, 0.75);
box-shadow: inset 0px 0px 0px 2px rgba(23, 145, 255, 0.75);
.detail section {
height: 42px;
}
}
&.opened{
border: 2px solid #4b4b4b;
position: absolute;
z-index: 4;
.detail section {
height: 42px;
&.opened {
border: 2px solid #4b4b4b; // position: absolute;
z-index: 4;
.detail section {
height: 42px;
}
}
}
position: relative;
width: 184px;
height: 70px;
margin: 4px;
box-sizing: border-box;
background-color: @color-bluish-grey;
-webkit-tap-highlight-color: transparent;
&.command {
border: solid 3px @color-bluish-grey;
}
.menu-container {
width: 360px;
top: 80px;
@@ -165,8 +200,41 @@
justify-content: center;
z-index: 100;
transform: translateZ(0);
&.top {
top: -80px;
.menu::before {
content: "\f0d7";
color: #4b4b4b;
position: absolute;
left: calc(~"50% - 11px");
top: 47px;
font-family: 'fontawesome';
font-size: 38px;
}
}
&.left{
left: -2px;
justify-content: flex-start;
}
&.right{
left: -176px;
justify-content: flex-end;
}
&.bottom {
.menu::before {
content: "\f0d8";
color: #4b4b4b;
position: absolute;
left: calc(~"50% - 11px");
top: -26px;
font-family: 'fontawesome';
font-size: 38px;
}
}
.menu {
background-color: #4b4b4b;
position: relative;
padding: 7px;
button {
background-image: linear-gradient(to bottom, #5f676b, #4e585e);
@@ -176,11 +244,30 @@
font-size: 20px;
color: #fff;
border: none;
&.active,
&:active {
position: relative;
&.active {
background-image: none;
background-color: #1791ff;
}
&:active {
background-image: none;
background-color: @color-black-50;
}
&.active:active {
background-image: none;
background-color: @color-black-50;
}
&.disabled::after,
&:disabled::after {
content: " ";
position: absolute;
display: block;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(255, 255, 255, 0.5);
}
}
}
}
@@ -191,11 +278,10 @@
font-size: 14px;
line-height: 21px;
border-bottom: 1px solid #fff;
border-bottom: 1px solid #fff;
box-sizing: content-box;
}
&.active {
border: 3px solid @color-clear-blue;
border: solid 3px rgba(23, 145, 255, 1);
}
button.star {
background: transparent;
@@ -229,7 +315,14 @@
margin-top: -1px;
height: 46px;
overflow-x: visible;
transform: translateZ(0);
// transform: translateZ(0);
&.description {
cursor: pointer;
margin-top: 0;
}
&.description:active {
background-color: #4e585e;
}
&.toggle {
align-items: center;
justify-content: center;
@@ -237,6 +330,12 @@
&.multiple {
border: 0.5px solid #fff;
cursor: pointer;
&:active {
background-color: #4e585e;
}
&:active span.active {
background-color: #4e585e;
}
span {
display: flex;
background: transparent;
@@ -249,7 +348,25 @@
box-sizing: border-box;
border: 0.5px solid #fff;
align-items: center;
position: relative;
justify-content: center;
&.active {
background-color: #1791ff;
}
&.active:active {
background-color: #4e585e;
}
&.disabled::after {
content: " ";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: 100%;
width: 100%;
background: rgba(255, 255, 255, 0.5);
}
}
}
}
@@ -278,7 +395,8 @@
}
}
.jog-menu, .auto-menu {
.jog-menu,
.auto-menu {
// width: 100%;
// height: 64px;
background-color: @color-gunmetal;
@@ -297,8 +415,7 @@
font-family: 'fontawesome';
font-size: 38px;
}
.axes-menu-container > .menu > button{
.axes-menu-container>.menu>button {
background-image: linear-gradient(to bottom, #5f676b, #4e585e);
min-width: 48px;
height: 48px;
@@ -314,8 +431,7 @@
background-color: #1791ff;
}
}
.incr-menu-container > .menu > button{
.incr-menu-container>.menu>button {
background-image: linear-gradient(to bottom, #5f676b, #4e585e);
min-width: 48px;
max-width: 48px;
@@ -326,13 +442,19 @@
border: none;
padding: 0;
overflow: hidden;
&.active,
&:active {
&.active {
background-image: none;
background-color: #1791ff;
}
&:active {
background-image: none;
background-color: @color-black-50;
}
&.active:active {
background-image: none;
background-color: @color-black-50;
}
}
.axes-menu-container,
.incr-menu-container {
width: 360px;
@@ -340,7 +462,7 @@
display: flex;
justify-content: center;
z-index: 100;
transform: translateZ(0);
// transform: translateZ(0);
.menu {
background-color: #4b4b4b;
padding: 7px;
@@ -358,16 +480,16 @@
.incr-menu-container {
top: 75px;
left: 340px;
&:before{
left: 164px;
&:before {
left: 164px;
}
}
.axes-menu-container {
top: 75px;
left: 0;
justify-content: left;
&:before{
left: 23px;
&:before {
left: 23px;
}
}
}
+127 -21
View File
@@ -330,6 +330,9 @@ button.btn.dark-blue {
background-color: #002680;
color: white;
}
button.btn.btn-danger {
color: #d0021b;
}
button.btn button.dark-blue:active {
background-color: #004990;
}
@@ -545,7 +548,7 @@ fieldset[disabled] .form-group.is-focused .togglebutton label {
}
.togglebutton label input[type=checkbox] + .toggle:active:after,
.togglebutton label input[type=checkbox][disabled] + .toggle:active:after {
box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.6), 0 0 0 20px rgba(0, 0, 0, 0.2);
}
.togglebutton label input[type=checkbox]:checked + .toggle:after {
left: 48px;
@@ -1490,14 +1493,20 @@ footer .container button.big:before {
box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.4);
border-radius: 2px;
}
#plc-softkeys-container .softkeys-backdrop {
#plc-softkeys-container .softkeys-backdrop,
#plc-softkeys-container .softkeys-backdrop-top,
#plc-softkeys-container .softkeys-backdrop-left,
#plc-softkeys-container .softkeys-backdrop-right,
#plc-softkeys-container .softkeys-backdrop-bottom {
position: absolute;
z-index: 1;
background-color: rgba(255, 255, 255, 0.5);
}
#plc-softkeys-container .softkeys-backdrop {
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
background-color: rgba(255, 255, 255, 0.2);
}
#plc-softkeys-container > div.waiting::after {
content: "";
@@ -1506,23 +1515,27 @@ footer .container button.big:before {
top: 0;
right: 0;
left: 0;
bottom: 0;
bottom: 72px;
cursor: wait;
background-color: rgba(255, 255, 255, 0.2);
background-color: rgba(255, 255, 255, 0.5);
width: 100%;
height: 100%;
}
#plc-softkeys-container > div.waiting-button {
display: none;
}
#plc-softkeys-container > div.waiting-button.waiting {
display: block;
display: flex;
position: absolute;
justify-content: space-between;
align-items: center;
bottom: 0;
width: 100%;
width: calc(100% - 60px);
height: 72px;
background-color: #002680;
z-index: 100;
color: #fff;
font-size: 24px;
padding: 0 30px;
}
#plc-softkeys-container > div.container {
width: 100%;
@@ -1538,7 +1551,7 @@ footer .container button.big:before {
flex-grow: 1;
border: none;
background: #4e585e;
border: 0.5px solid #5c656b;
border: 1px solid #5c656b;
border-top: none;
border-bottom: none;
position: relative;
@@ -1567,6 +1580,9 @@ footer .container button.big:before {
color: white;
font-size: 12px;
}
#plc-softkeys-container > div > header button:active:not(.active) {
background-color: rgba(0, 0, 0, 0.5);
}
#plc-softkeys-container .title {
height: 40px;
display: flex;
@@ -1585,8 +1601,6 @@ footer .container button.big:before {
overflow: hidden;
overflow-y: scroll;
margin-right: 8px;
overflow-x: visible;
transform: translateZ(0);
}
.soft-key {
position: relative;
@@ -1595,6 +1609,7 @@ footer .container button.big:before {
margin: 4px;
box-sizing: border-box;
background-color: #808e96;
-webkit-tap-highlight-color: transparent;
}
.soft-key.disabled::after,
.soft-key:disabled::after {
@@ -1609,19 +1624,21 @@ footer .container button.big:before {
cursor: not-allowed;
}
.soft-key.selected {
border: 2px solid rgba(23, 145, 255, 0.75);
box-shadow: inset 0px 0px 0px 2px rgba(23, 145, 255, 0.75);
}
.soft-key.selected .detail section {
height: 42px;
}
.soft-key.opened {
border: 2px solid #4b4b4b;
position: absolute;
z-index: 4;
}
.soft-key.opened .detail section {
height: 42px;
}
.soft-key.command {
border: solid 3px #808e96;
}
.soft-key .menu-container {
width: 360px;
top: 80px;
@@ -1632,8 +1649,38 @@ footer .container button.big:before {
z-index: 100;
transform: translateZ(0);
}
.soft-key .menu-container.top {
top: -80px;
}
.soft-key .menu-container.top .menu::before {
content: "\f0d7";
color: #4b4b4b;
position: absolute;
left: calc(50% - 11px);
top: 47px;
font-family: 'fontawesome';
font-size: 38px;
}
.soft-key .menu-container.left {
left: -2px;
justify-content: flex-start;
}
.soft-key .menu-container.right {
left: -176px;
justify-content: flex-end;
}
.soft-key .menu-container.bottom .menu::before {
content: "\f0d8";
color: #4b4b4b;
position: absolute;
left: calc(50% - 11px);
top: -26px;
font-family: 'fontawesome';
font-size: 38px;
}
.soft-key .menu-container .menu {
background-color: #4b4b4b;
position: relative;
padding: 7px;
}
.soft-key .menu-container .menu button {
@@ -1644,12 +1691,31 @@ footer .container button.big:before {
font-size: 20px;
color: #fff;
border: none;
position: relative;
}
.soft-key .menu-container .menu button.active,
.soft-key .menu-container .menu button:active {
.soft-key .menu-container .menu button.active {
background-image: none;
background-color: #1791ff;
}
.soft-key .menu-container .menu button:active {
background-image: none;
background-color: rgba(0, 0, 0, 0.5);
}
.soft-key .menu-container .menu button.active:active {
background-image: none;
background-color: rgba(0, 0, 0, 0.5);
}
.soft-key .menu-container .menu button.disabled::after,
.soft-key .menu-container .menu button:disabled::after {
content: " ";
position: absolute;
display: block;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(255, 255, 255, 0.5);
}
.soft-key header {
height: 23px;
text-align: center;
@@ -1660,7 +1726,7 @@ footer .container button.big:before {
box-sizing: content-box;
}
.soft-key.active {
border: 3px solid #1791ff;
border: solid 3px #1791ff;
}
.soft-key button.star {
background: transparent;
@@ -1694,7 +1760,13 @@ footer .container button.big:before {
margin-top: -1px;
height: 46px;
overflow-x: visible;
transform: translateZ(0);
}
.soft-key .detail section.description {
cursor: pointer;
margin-top: 0;
}
.soft-key .detail section.description:active {
background-color: #4e585e;
}
.soft-key .detail section.toggle {
align-items: center;
@@ -1704,6 +1776,12 @@ footer .container button.big:before {
border: 0.5px solid #fff;
cursor: pointer;
}
.soft-key .detail section.multiple:active {
background-color: #4e585e;
}
.soft-key .detail section.multiple:active span.active {
background-color: #4e585e;
}
.soft-key .detail section.multiple span {
display: flex;
background: transparent;
@@ -1716,8 +1794,26 @@ footer .container button.big:before {
box-sizing: border-box;
border: 0.5px solid #fff;
align-items: center;
position: relative;
justify-content: center;
}
.soft-key .detail section.multiple span.active {
background-color: #1791ff;
}
.soft-key .detail section.multiple span.active:active {
background-color: #4e585e;
}
.soft-key .detail section.multiple span.disabled::after {
content: " ";
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: 100%;
width: 100%;
background: rgba(255, 255, 255, 0.5);
}
#nc-softkeys-container {
width: 312px;
height: 216px;
@@ -1792,11 +1888,19 @@ footer .container button.big:before {
overflow: hidden;
}
.jog-menu .incr-menu-container > .menu > button.active,
.auto-menu .incr-menu-container > .menu > button.active,
.auto-menu .incr-menu-container > .menu > button.active {
background-image: none;
background-color: #1791ff;
}
.jog-menu .incr-menu-container > .menu > button:active,
.auto-menu .incr-menu-container > .menu > button:active {
background-image: none;
background-color: #1791ff;
background-color: rgba(0, 0, 0, 0.5);
}
.jog-menu .incr-menu-container > .menu > button.active:active,
.auto-menu .incr-menu-container > .menu > button.active:active {
background-image: none;
background-color: rgba(0, 0, 0, 0.5);
}
.jog-menu .axes-menu-container,
.auto-menu .axes-menu-container,
@@ -1807,7 +1911,6 @@ footer .container button.big:before {
display: flex;
justify-content: center;
z-index: 100;
transform: translateZ(0);
}
.jog-menu .axes-menu-container .menu,
.auto-menu .axes-menu-container .menu,
@@ -2377,6 +2480,7 @@ footer .container button.big:before {
.heads-container-lt4 {
right: -12px;
}
<<<<<<< HEAD
.tooling-container {
height: 100%;
width: 100%;
@@ -3206,6 +3310,8 @@ footer .container button.big:before {
.load-equipment .arrow .fa-arrow-down {
color: #DC4557;
}
=======
>>>>>>> 47dcfdc72f69746b3432660c7bb6c11272512e5e
.persona {
height: 88px;
width: 88px;
+48
View File
@@ -158,6 +158,7 @@ if (typeof cmsClient != "undefined") {
});
/* Factory.Get(MessageService).subscribeToChannel("HMI-end-render", args => {
clearTimeout(RerenderInterval);
RerenderInterval = setTimeout(ElaborateHMIStatus, 15);
@@ -229,3 +230,50 @@ function ElaborateHMIStatus() {
cmsClient.setNcWindowState(0);
}
}
// Enable/Disable Scrollers
Factory.Get(MessageService).subscribeToChannel("disable-scroll", (args) => {
disableScroll(args[0]);
});
Factory.Get(MessageService).subscribeToChannel("enable-scroll", (args) => {
enableScroll(args[0]);
});
// Scroll manipulation
var keys = { 37: 1, 38: 1, 39: 1, 40: 1 };
function preventDefault(e) {
e = e || window.event;
if (e.preventDefault)
e.preventDefault();
e.returnValue = false;
}
function preventDefaultForScrollKeys(e) {
if (keys[e.keyCode]) {
preventDefault(e);
return false;
}
return true;
}
function disableScroll(element) {
debugger
if (element.addEventListener) // older FF
element.addEventListener('DOMMouseScroll', preventDefault, false);
element.onwheel = preventDefault; // modern standard
element.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE
element.ontouchmove = preventDefault; // mobile
element.onkeydown = preventDefaultForScrollKeys;
}
function enableScroll(element) {
debugger
if (element.removeEventListener)
element.removeEventListener('DOMMouseScroll', preventDefault, false);
element.onmousewheel = document.onmousewheel = null;
element.onwheel = null;
element.ontouchmove = null;
element.onkeydown = null;
}
+9
View File
@@ -0,0 +1,9 @@
import Vue from "vue";
Vue.directive("longpress", {
bind: function (el, binding, vnode) {
}
});
-1
View File
@@ -70,7 +70,6 @@ export default {
return false;
},
isKeyActive(id) {
if(this.checkSecurityDisabled('ncSoftkeys')) return false;
let r = this.$store.getters.getNcSoftKeyStatus(id);
+52 -7
View File
@@ -4,6 +4,7 @@ import { onOffSoftKey, procedureSoftKey, groupSoftKey } from "./under-the-hood"
import { AppModel } from "../store";
import { Hub } from "src/services/hub";
import { mapGetters } from 'vuex'
import { Factory, MessageService } from "src/_base";
@Componet({
components: { onOffSoftKey, procedureSoftKey, groupSoftKey }
@@ -16,8 +17,9 @@ export default class softKeys extends Vue {
public waitingForStart: boolean = false;
public disabled: boolean = false;
public selectedPositionTop: string = "0";
public selectedPositionLeft: string = "0";
public selectedPositionTop: number = 0;
private confirmationDelegate: Function = null;
public selectSection(value: number) {
this.selectedSection = value;
@@ -30,6 +32,14 @@ export default class softKeys extends Vue {
return false;
}
public getSubKeysStatus(keys: object): object {
let result = {};
for (const key in keys) {
result[key] = this.getSoftKeyStatus(key as any);
}
return result;
}
public getSoftKeyActive(id: number): boolean {
var sk = this.$store.getters.getSoftKeyStatus(id);
if (sk)
@@ -37,6 +47,14 @@ export default class softKeys extends Vue {
return false;
}
public getSubKeysActive(keys: object): object {
let result = {};
for (const key in keys) {
result[key] = this.getSoftKeyActive(key as any);
}
return result;
}
public isSectionVisible(value: number) {
return (this.$store.state as AppModel).machineInfo.softKeys[value] != null;
}
@@ -49,19 +67,46 @@ export default class softKeys extends Vue {
if (this.selectedMenuItem == value.id) {
this.selectedMenuItem = null;
this.selectedSoftKey = null;
Factory.Get(MessageService).publishToChannel("enable-scroll", this.$refs.scrollable);
}
else {
this.selectedMenuItem = value.id;
this.selectedSoftKey = value;
this.$nextTick(() => { if (this.$refs.backdrop) (this.$refs.backdrop as any).focus(); });
Factory.Get(MessageService).publishToChannel("disable-scroll", this.$refs.scrollable);
}
}
public setSoftKeyPosition(sk: any) {
this.selectedPositionLeft = sk.offsetLeft + "px";
this.selectedPositionTop = (sk.offsetTop + 104) + "px";
public closeBackdrop() {
this.selectedMenuItem = null;
this.selectedSoftKey = null;
Factory.Get(MessageService).publishToChannel("enable-scroll", this.$refs.scrollable);
}
public softKeyChanged(id: number) {
Hub.Current.sendUserSoftKey(id);
public setSoftKeyPosition(sk: any) {
this.selectedPositionTop = (sk.offsetTop - (this.$refs.scrollable as any).scrollTop - (this.$refs.scrollable as any).offsetTop - 80);
}
public softKeyChanged(id: number, confirm: boolean = false) {
if (!confirm)
Hub.Current.sendUserSoftKey(id);
else {
this.confirmationDelegate = () => {
Hub.Current.sendUserSoftKey(id);
};
this.waitingForStart = true;
}
}
public sendKeyConfirm() {
if (this.confirmationDelegate)
this.confirmationDelegate();
this.confirmationDelegate = null;
this.waitingForStart = false;
}
public sendKeyCancel() {
this.confirmationDelegate = null;
this.waitingForStart = false;
}
}
+46 -17
View File
@@ -11,34 +11,63 @@
<button v-if="isSectionVisible(7)" :class="{active:selectedSection==7}" @click="selectSection(7)"><span class="number">7.</span></button>
</header>
<div class="title" >{{'maint_' + selectedSection | localize('maint_' + selectedSection) }}</div>
<section class="scrollable">
<group-soft-key v-for="b in sectionButtons(selectedSection)" :key="b.id"
v-if="b.type==2" :title="'softkey_' + b.id | localize('softkey_' + b.id)"
:selected="false"
:subkeys="b.subKeys"
@position="setSoftKeyPosition"
@click="toggleMenu(b)"></group-soft-key>
<on-off-soft-key v-for="b in sectionButtons(selectedSection)" :key="b.id"
v-if="b.type==0" :title="'softkey_' + b.id | localize('softkey_' + b.id)"
:disabled="true"
:checked="getSoftKeyStatus(b.id)"
@checkChanged="softKeyChanged(b.id)"></on-off-soft-key>
<procedure-soft-key v-for="b in sectionButtons(selectedSection)" :key="b.id"
<section class="scrollable" ref="scrollable">
<div v-for="(b, index) in sectionButtons(selectedSection)" :key="b.id">
<group-soft-key
v-if="b.type==2"
:positionIndex="index"
:verticalIndex="selectedPositionTop"
:title="'softkey_' + b.id | localize('softkey_' + b.id)"
:selected="false"
:subkeys="b.subKeys"
:subkeysStatus="getSubKeysStatus(b.subKeys)"
:activeSubKeys="getSubKeysActive(b.subKeys)"
:menu-opened="b.id == selectedMenuItem"
:class="{opened: b.id == selectedMenuItem}"
:confirmationNeeded="b.operatorConfirmationNeeded"
@subkeyClick="softKeyChanged"
@position="setSoftKeyPosition"
@click="toggleMenu(b)"></group-soft-key>
<on-off-soft-key
:disabled="!getSoftKeyActive(b.id)"
v-if="b.type==0" :title="'softkey_' + b.id | localize('softkey_' + b.id)"
:checked="getSoftKeyStatus(b.id)"
@checkChanged="softKeyChanged(b.id, b.operatorConfirmationNeeded)"></on-off-soft-key>
<procedure-soft-key
:disabled="!getSoftKeyActive(b.id)"
:active="getSoftKeyStatus(b.id)"
@click="softKeyChanged(b.id, b.operatorConfirmationNeeded)"
v-if="b.type==1" :title="'softkey_' + b.id | localize('softkey_' + b.id)" ></procedure-soft-key>
</div>
<div ref="backdrop" class="softkeys-backdrop" v-if="selectedMenuItem" @click="closeBackdrop()"></div>
</section>
<group-soft-key v-if="selectedSoftKey!=null"
<!-- <group-soft-key v-if="selectedSoftKey!=null"
:title="'softkey_' + selectedSoftKey.id | localize('softkey_' + selectedSoftKey.id)"
style="position:absolute"
:selected="false"
:subkeys="selectedSoftKey.subKeys"
:subkeysStatus="getSubKeysStatus(selectedSoftKey.subKeys)"
:activeSubKeys="getSubKeysActive(selectedSoftKey.subKeys)"
@click="toggleMenu(selectedSoftKey)"
:style="{ top: selectedPositionTop , left: selectedPositionLeft}"
:menu-opened="selectedSoftKey.id == selectedMenuItem"
:class="{opened: selectedSoftKey.id == selectedMenuItem}"
@subkeyClick="softKeyChanged"></group-soft-key>
<div class="softkeys-backdrop" v-if="selectedMenuItem"></div>
:confirmationNeeded="selectedSoftKey.operatorConfirmationNeeded"
@subkeyClick="softKeyChanged"></group-soft-key> -->
<!-- <div class="softkeys-backdrop-top" v-if="selectedMenuItem"></div>
<div class="softkeys-backdrop-left" v-if="selectedMenuItem"></div>
<div class="softkeys-backdrop-right" v-if="selectedMenuItem"></div>
<div class="softkeys-backdrop-bottom" v-if="selectedMenuItem"></div> -->
</div>
<div class="waiting-button" :class="{waiting : waitingForStart}" >
{{'softkey_confirm' | localize("Confirm?")}}
<div class="buttons">
<button class="btn btn-success" @click="sendKeyConfirm()">{{'confirm_request_confirm' | localize("Confirm")}}</button>
<button class="btn" @click="sendKeyCancel()">{{'confirm_request_cancel' | localize("Cancel")}}</button>
</div>
</div>
<div class="waiting-button" :class="{waiting : waitingForStart}"></div>
</div>
</template>
<script src="./plc-softkeys.ts" lang="ts"></script>
@@ -2,14 +2,17 @@
<div class="soft-key" ref="sk" :class="{menuopened: menuOpened, disabled: disabled, selected: selected}">
<header>{{title}}</header>
<div class="detail">
<button class="star" :class="{active: starred}"><i class="fa fa-star"></i></button>
<button class="star" :class="{active: starred}" @click="toggleStar()"><i class="fa fa-star"></i></button>
<section class="multiple" @click="toggleMenu()">
<span v-for="k in keys" :key="k">{{getSubKeyText(k)}}</span>
<span v-for="k in keys" :key="k" :class="{active:getSoftKeyStatus(k), disabled:!disabled && !getSoftKeyActive(k)}">{{getSubKeyText(k)}}</span>
</section>
</div>
<div class="menu-container" v-if="menuOpened">
<div class="menu-container" v-if="menuOpened" :class="{bottom: verticalIndex<=0, top: verticalIndex>0, left : subkeyslength>3 && positionIndex%4 == 0, right: subkeyslength>3 && positionIndex%4 == 3}">
<div class="menu">
<button v-for="k in keys" :key="k" @click="sendSubKey(k)">{{getSubKeyText(k)}}</button>
<button v-for="k in keys"
:disabled="!getSoftKeyActive(k)"
:class="{active:getSoftKeyStatus(k)}"
:key="k" @click="sendSubKey(k)">{{getSubKeyText(k)}}</button>
</div>
</div>
</div>
@@ -18,12 +21,16 @@
export default {
props: {
starred: { default: false },
toggleStar: { default: null },
title: { default: "_title_" },
subkeys: {},
activeSubKeys: {},
subkeysStatus: {},
menuOpened: { default: false },
disabled: {default: false},
selected: { default: false }
positionIndex: { default: 0 },
verticalIndex:{default:0},
// disabled: { default: false },
selected: { default: false },
confirmationNeeded: { default: false }
},
computed: {
keys() {
@@ -32,9 +39,42 @@ export default {
arr.push(key);
}
return arr;
},
disabled() {
var _disabled = true;
if(this.checkSecurityDisabled('userSoftkeys')) return true;
for (const key in this.activeSubKeys) {
if (this.activeSubKeys[key]) _disabled = false;
}
return _disabled;
},
subkeyslength(){
var c = 0;
for(const k in this.subkeys)
c++;
return c;
}
},
methods: {
menuVerticalPosition(){
if(this.positionIndex<4) return "bottom";
return "top";
},
menuHorizontalPosition(){
if(this.positionIndex%4 == 0) return "left";
if(this.positionIndex%4 == 3) return "right";
return "center";
},
getSoftKeyStatus(id) {
if (this.subkeysStatus) return this.subkeysStatus[id] || false;
return false;
},
getSoftKeyActive(id) {
if (this.activeSubKeys) return this.activeSubKeys[id] || false;
return false;
},
getSubKeyText(value) {
return this.subkeys[value];
},
@@ -43,7 +83,11 @@ export default {
this.$emit("position", this.$refs.sk);
},
sendSubKey(id) {
this.$emit("subkeyClick", id);
this.$emit("subkeyClick", id, this.confirmationNeeded);
this.toggleMenu();
},
toggleStar: function() {
this.$emit("toggleStar");
}
}
};
@@ -1,11 +1,11 @@
<template>
<div class="soft-key" :class="{ disabled: disabled, selected: selected}">
<div class="soft-key" :class="{ disabled: disabled || checkSecurityDisabled('userSoftkeys'), selected: selected}">
<header>{{title}}</header>
<div class="detail">
<button class="star" :class="{active: starred}"><i class="fa fa-star"></i></button>
<button class="star" :class="{active: starred}" @click="toggleStar()"><i class="fa fa-star"></i></button>
<section class="toggle">
<div class="togglebutton"><label>
<input type="checkbox" :checked="ischecked" @click="toggleCheck()">
<input type="checkbox" :checked="ischecked" @click.prevent='toggleCheck()'>
<span class="toggle">{{checked?onLabel:offLabel}}</span>
</label></div>
</section>
@@ -16,13 +16,12 @@
export default {
props: {
starred: { default: false },
toggleStar: { default: null },
title: { default: "_title_" },
onLabel: { default: "on" },
offLabel: { default: "off" },
checked: { default: false, type: Boolean },
disabled: { default: false, type: Boolean },
selected: { default: false },
selected: { default: false }
},
data: function() {
return {
@@ -34,9 +33,16 @@ export default {
this.ischecked = n;
}
},
mounted: function() {
this.ischecked = this.checked;
},
methods: {
toggleCheck() {
this.$emit("checkChanged");
this.$forceUpdate();
},
toggleStar: function() {
this.$emit("toggleStar");
}
}
};
@@ -1,9 +1,9 @@
<template>
<div class="soft-key" :class="{disabled: disabled, selected: selected}">
<div class="soft-key command" :class="{disabled: disabled || checkSecurityDisabled('userSoftkeys'), selected: selected, active: active}">
<div class="detail no-title">
<button class="star" :class="{active: starred}"><i class="fa fa-star"></i></button>
<section class="description">
<button class="star" :class="{active: starred}" @click="toggleStar()"><i class="fa fa-star"></i></button>
<section class="description" @click="onClick()">
{{title}}
</section>
</div>
@@ -13,10 +13,18 @@
export default {
props: {
starred: { default: false },
toggleStar: { default: null },
title: { default: "_title_" },
disabled: { default: false },
selected: { default: false },
active: { default: false }
},
methods: {
onClick: function() {
this.$emit("click");
},
toggleStar: function() {
this.$emit("toggleStar");
}
}
};
</script>