Replace server-side dnd validation with client-side validation: (#368)

* Replace server-side dnd validation with client-side validation:

Client-side validation means:
* Custom widgetset is used to introduce the client-side validation
* Accept-calculation is performed on client-side
* Drop-hints are calculated on client-side (show/hide)
* Row count decoration is calculated on client-side (multi-selection)
* Notification box is triggered from client-side

Beside the migration from server-side validation to client-side
validation there are few improvements:
* Improvement1: If drag is aborted outside the components by releasing
the mouse or the drag aborts by pressing the ESC key) -> drop area hints
are removed
* Improvement2: If multiple rows are selected in table, but drag is
performed on a non-selected single element from table -> the single
drag-element is not decorated with the row selection count
* Improvement3: Upload View: Component 'Drop files to upload' only
accepts files (and no drags from filter and software module component)

Signed-off-by: Marcel Mager (INST-IOT/ESB) <Marcel.Mager@bosch-si.com>

* Improve code quality

Signed-off-by: Marcel Mager (INST-IOT/ESB) <Marcel.Mager@bosch-si.com>

* Fix formatting of license headers

Signed-off-by: Marcel Mager (INST-IOT/ESB) <Marcel.Mager@bosch-si.com>

* Fix scopes and modifiers

Signed-off-by: Marcel Mager (INST-IOT/ESB) <Marcel.Mager@bosch-si.com>

* Externalize key-strings used for dnd-data transfer from server to client

Minor issues:
* improve naming schema of control variables (no more i-s)
* add final modifier

Signed-off-by: Marcel Mager (INST-IOT/ESB) <Marcel.Mager@bosch-si.com>

* Add license header

Signed-off-by: Marcel Mager (INST-IOT/ESB) <Marcel.Mager@bosch-si.com>
This commit is contained in:
Marcel Mager
2016-12-06 19:56:10 +01:00
committed by Kai Zimmermann
parent 8e7943dc4f
commit 11fa4469dd
64 changed files with 2181 additions and 992 deletions

View File

@@ -9,32 +9,30 @@
// scss-lint:disable ImportantRule, PropertySortOrder
@mixin drop-hint {
//Distribution tag table -Drop hint - Dashed border displayed
.show-filter-drop-hint {
border: 1px dashed $hawkbit-primary-color !important;
//Border for delete button wrapper.Which will be displayed when deletable components are dragged
.delete-button-border {
border: 1px dashed transparent;
}
//Style to display drop hint on tables
.show-table-drop-hint {
.show-drop-hint {
.type-button-layout {
border: 1px dashed $hawkbit-primary-color !important;
}
}
.show-drop-hint.type-button-layout {
border-style: dashed !important;
border-width: 1px !important;
border-color: $hawkbit-primary-color !important;
}
.show-drop-hint.sp-table {
.v-table-body {
border-style: dashed !important;
border-width: 1px !important;
border-color: $hawkbit-primary-color !important;
}
}
//Style for target table header drop hint
.show-table-header-drop-hint {
.filter-drop-hint-layout {
border-style: dashed;
border-width: 1px;
border-color: $hawkbit-primary-color;
}
}
//Border for delete button wrapper.Which will be displayed when deletable components are dragged
.delete-button-border {
border: 1px dashed transparent;
.show-drop-hint.v-ddwrapper {
border: 1px dashed $hawkbit-primary-color !important;
}
//Target table header - distribution filter text field style

View File

@@ -29,6 +29,8 @@
&[style*="hidden"] {
}
right: -10px;
top: -15px;
}
@mixin table {
@@ -87,7 +89,6 @@
&:after {
@include count-sp-drag-image;
right: -10px;
}
&.v-table-focus {
@@ -128,7 +129,6 @@
&:after {
@include count-sp-drag-image;
right: -10px;
}
}
}