diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll
index bf40bc19..b5c3803c 100644
Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ
diff --git a/Step.Config/Config/userSoftKeyConfig.xml b/Step.Config/Config/userSoftKeyConfig.xml
index 73271d8f..7789f8eb 100644
--- a/Step.Config/Config/userSoftKeyConfig.xml
+++ b/Step.Config/Config/userSoftKeyConfig.xml
@@ -1,5 +1,15 @@
+
+ true
+ 1
+ true
+ 1
+
+ Test
+ Ita
+
+
true
1
@@ -13,7 +23,7 @@
true
1
- false
+ true
Test
Ita
@@ -85,14 +95,16 @@
1
- 1
- 1
- 1
+ 2
+ 3
+ 4
+ 5
+ 6
true
- 2
+ 3
false
Test
@@ -100,32 +112,32 @@
1
- 1
- 1
- 1
- 1
+ 2
+ 3
+ 4
+ 5
true
- 2
+ 3
false
Test
Ita
- 1
- 1
- 1
- 1
- 1
- 1
+ A
+ B
+ C
+ D
+ E
+ V
true
- 1
+ 3
true
1
@@ -133,4 +145,289 @@
Ita
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ false
+
+ Test
+ Ita
+
+
+ A
+ B
+ C
+ D
+ E
+ V
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ true
+ 1
+
+ Test
+ Ita
+
+
+
+ true
+ 3
+ false
+
+ Test
+ Ita
+
+
+ A
+ B
+ C
+ D
+ E
+ V
+
+
+
\ No newline at end of file
diff --git a/Step/wwwroot/assets/styles/base/buttons.less b/Step/wwwroot/assets/styles/base/buttons.less
index 0acb0006..b83d5d65 100644
--- a/Step/wwwroot/assets/styles/base/buttons.less
+++ b/Step/wwwroot/assets/styles/base/buttons.less
@@ -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 {
diff --git a/Step/wwwroot/assets/styles/base/layout.less b/Step/wwwroot/assets/styles/base/layout.less
index 857f63c7..1ab4a4e0 100644
--- a/Step/wwwroot/assets/styles/base/layout.less
+++ b/Step/wwwroot/assets/styles/base/layout.less
@@ -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;
diff --git a/Step/wwwroot/assets/styles/base/plc-softkeys.less b/Step/wwwroot/assets/styles/base/plc-softkeys.less
index 7d2bf4fc..76b8c40c 100644
--- a/Step/wwwroot/assets/styles/base/plc-softkeys.less
+++ b/Step/wwwroot/assets/styles/base/plc-softkeys.less
@@ -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;
}
}
}
diff --git a/Step/wwwroot/assets/styles/style.css b/Step/wwwroot/assets/styles/style.css
index 66e836ad..fd9ba1f1 100644
--- a/Step/wwwroot/assets/styles/style.css
+++ b/Step/wwwroot/assets/styles/style.css
@@ -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;
diff --git a/Step/wwwroot/src/app.business-logic.ts b/Step/wwwroot/src/app.business-logic.ts
index 923da4b1..d7ae2cd4 100644
--- a/Step/wwwroot/src/app.business-logic.ts
+++ b/Step/wwwroot/src/app.business-logic.ts
@@ -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;
+}
diff --git a/Step/wwwroot/src/filters/longpress.ts b/Step/wwwroot/src/filters/longpress.ts
new file mode 100644
index 00000000..a2740fe5
--- /dev/null
+++ b/Step/wwwroot/src/filters/longpress.ts
@@ -0,0 +1,9 @@
+import Vue from "vue";
+
+
+Vue.directive("longpress", {
+ bind: function (el, binding, vnode) {
+
+ }
+});
+
diff --git a/Step/wwwroot/src/modules/nc-softkeys.vue b/Step/wwwroot/src/modules/nc-softkeys.vue
index 0fb891ea..98ef6714 100644
--- a/Step/wwwroot/src/modules/nc-softkeys.vue
+++ b/Step/wwwroot/src/modules/nc-softkeys.vue
@@ -70,7 +70,6 @@ export default {
return false;
},
isKeyActive(id) {
-
if(this.checkSecurityDisabled('ncSoftkeys')) return false;
let r = this.$store.getters.getNcSoftKeyStatus(id);
diff --git a/Step/wwwroot/src/modules/plc-softkeys.ts b/Step/wwwroot/src/modules/plc-softkeys.ts
index 28dbdcc8..3739c708 100644
--- a/Step/wwwroot/src/modules/plc-softkeys.ts
+++ b/Step/wwwroot/src/modules/plc-softkeys.ts
@@ -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;
}
}
diff --git a/Step/wwwroot/src/modules/plc-softkeys.vue b/Step/wwwroot/src/modules/plc-softkeys.vue
index 55c34b75..9ac46d3b 100644
--- a/Step/wwwroot/src/modules/plc-softkeys.vue
+++ b/Step/wwwroot/src/modules/plc-softkeys.vue
@@ -11,34 +11,63 @@
{{'maint_' + selectedSection | localize('maint_' + selectedSection) }}
-
-
-
+ :confirmationNeeded="selectedSoftKey.operatorConfirmationNeeded"
+ @subkeyClick="softKeyChanged"> -->
+
+
+
-
diff --git a/Step/wwwroot/src/modules/under-the-hood/soft-key1.vue b/Step/wwwroot/src/modules/under-the-hood/soft-key1.vue
index 51f2a531..eccce52a 100644
--- a/Step/wwwroot/src/modules/under-the-hood/soft-key1.vue
+++ b/Step/wwwroot/src/modules/under-the-hood/soft-key1.vue
@@ -2,14 +2,17 @@
-
+
- {{getSubKeyText(k)}}
+ {{getSubKeyText(k)}}
-
@@ -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");
}
}
};
diff --git a/Step/wwwroot/src/modules/under-the-hood/soft-key2.vue b/Step/wwwroot/src/modules/under-the-hood/soft-key2.vue
index b61ba58c..a86ad766 100644
--- a/Step/wwwroot/src/modules/under-the-hood/soft-key2.vue
+++ b/Step/wwwroot/src/modules/under-the-hood/soft-key2.vue
@@ -1,11 +1,11 @@
-
+
-
+
@@ -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");
}
}
};
diff --git a/Step/wwwroot/src/modules/under-the-hood/soft-key3.vue b/Step/wwwroot/src/modules/under-the-hood/soft-key3.vue
index 0f4ab2d1..6163d4a2 100644
--- a/Step/wwwroot/src/modules/under-the-hood/soft-key3.vue
+++ b/Step/wwwroot/src/modules/under-the-hood/soft-key3.vue
@@ -1,9 +1,9 @@
-
+
-
-
@@ -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");
+ }
}
};