Add backup

This commit is contained in:
Lars Westermann 2019-05-30 21:30:46 +02:00
parent 67f24adfdf
commit c6620d3395
Signed by: lars.westermann
GPG key ID: 9D417FA5BB9D5E1D
14 changed files with 471 additions and 39 deletions

View file

@ -1,5 +1,6 @@
package de.kif.frontend.views
import de.kif.frontend.iterator
import de.kif.frontend.launch
import de.kif.frontend.repository.WorkGroupRepository
import de.westermann.kobserve.event.EventListener
@ -14,16 +15,12 @@ fun initWorkGroupConstraints() {
var index = 10000
val constraints =
ListView.wrap<View>(document.getElementsByClassName("work-group-constraints")[0] as HTMLElement)
document.getElementsByClassName("work-group-constraints")[0] as HTMLElement
val addButton =
View.wrap(document.getElementsByClassName("work-group-constraints-add")[0] as HTMLElement)
val addList =
ListView.wrap<View>(document.getElementsByClassName("work-group-constraints-add-list")[0] as HTMLElement)
console.log(constraints.html)
console.log(addButton.html)
console.log(addList.html)
addButton.onClick {
addList.classList += "active"
@ -39,9 +36,12 @@ fun initWorkGroupConstraints() {
addList.textView("Add only on day") {
onClick {
constraints.html.appendChild(View.wrap(createHtmlView<HTMLDivElement>()) {
constraints.appendChild(View.wrap(createHtmlView<HTMLDivElement>()) {
classList += "input-group"
html.appendChild(TextView("On day").apply { classList += "form-btn" }.html)
html.appendChild(TextView("On day").apply {
classList += "form-btn"
onClick { this@wrap.html.remove() }
}.html)
html.appendChild(InputView(InputType.NUMBER).apply {
classList += "form-control"
html.name = "constraint-only-on-day-${index++}"
@ -53,9 +53,12 @@ fun initWorkGroupConstraints() {
}
addList.textView("Add only after time") {
onClick {
constraints.html.appendChild(View.wrap(createHtmlView<HTMLDivElement>()) {
constraints.appendChild(View.wrap(createHtmlView<HTMLDivElement>()) {
classList += "input-group"
html.appendChild(TextView("After time").apply { classList += "form-btn" }.html)
html.appendChild(TextView("After time").apply {
classList += "form-btn"
onClick { this@wrap.html.remove() }
}.html)
html.appendChild(InputView(InputType.NUMBER).apply {
classList += "form-control"
html.name = "constraint-only-after-time-${index++}"
@ -67,9 +70,12 @@ fun initWorkGroupConstraints() {
}
addList.textView("Add not at same time") {
onClick {
constraints.html.appendChild(View.wrap(createHtmlView<HTMLDivElement>()) {
constraints.appendChild(View.wrap(createHtmlView<HTMLDivElement>()) {
classList += "input-group"
html.appendChild(TextView("Not with").apply { classList += "form-btn" }.html)
html.appendChild(TextView("Not with").apply {
classList += "form-btn"
onClick { this@wrap.html.remove() }
}.html)
val select = createHtmlView<HTMLSelectElement>()
select.classList.add("form-control")
@ -92,9 +98,12 @@ fun initWorkGroupConstraints() {
}
addList.textView("Add only after work group") {
onClick {
constraints.html.appendChild(View.wrap(createHtmlView<HTMLDivElement>()) {
constraints.appendChild(View.wrap(createHtmlView<HTMLDivElement>()) {
classList += "input-group"
html.appendChild(TextView("After AK").apply { classList += "form-btn" }.html)
html.appendChild(TextView("After AK").apply {
classList += "form-btn"
onClick { this@wrap.html.remove() }
}.html)
val select = createHtmlView<HTMLSelectElement>()
select.classList.add("form-control")
@ -115,4 +124,18 @@ fun initWorkGroupConstraints() {
}.html)
}
}
}
console.log(constraints)
for (child in constraints.children.iterator()) {
console.log(child)
if (child.classList.contains("input-group")) {
val span = child.firstElementChild as HTMLElement
console.log(span)
span.addEventListener("click", org.w3c.dom.events.EventListener {
println("click")
child.remove()
})
}
}
}

View file

@ -43,7 +43,7 @@ open class TableLine(line: HTMLElement) : View(line) {
protected fun setupBoolean(view: TextView, onSave: () -> Unit) {
view.classList += "no-select"
view.tabIndex = 0
view.onDblClick {
view.onClick {
onSave()
}
view.onKeyDown {

View file

@ -23,6 +23,7 @@ $input-border-color: #888;
$table-border-color: rgba($text-primary-color, 0.1);
$table-header-color: rgba($text-primary-color, 0.06);
$border-radius: 0.2rem;
$transitionTime: 150ms;
$bg-disabled-color: rgba($text-primary-color, .26);
@ -45,7 +46,7 @@ body, html {
padding: 0;
& > *:last-child {
margin-bottom: 1rem;
//margin-bottom: 1rem;
}
}
@ -323,7 +324,7 @@ a {
height: 2.5rem;
width: 100%;
background-color: $background-primary-color;
border-radius: 0.2rem;
border-radius: $border-radius;
margin: 1px;
transition: border-color $transitionTime;
@ -433,7 +434,7 @@ select:-moz-focusring {
display: inline-block;
margin-right: 0.6rem;
border-radius: 0.2rem;
border-radius: $border-radius;
font-weight: 600;
text-transform: uppercase;
font-size: 0.9rem;
@ -484,8 +485,14 @@ form {
margin-top: 1px;
}
span {
white-space: nowrap;
}
& > * {
margin-right: 0;
flex-grow: 1;
flex-shrink: 1;
&:not(:first-child) {
border-top-left-radius: 0;
@ -547,7 +554,7 @@ form {
.calendar-work-group {
position: relative;
display: block;
border-radius: 0.2rem;
border-radius: $border-radius;
line-height: 2rem;
font-size: 0.8rem;
white-space: nowrap;
@ -615,7 +622,7 @@ form {
right: 0;
background-color: #fff;
padding: 0.2rem 0.5rem;
border-radius: 0.2rem;
border-radius: $border-radius;
display: none;
z-index: 10;
@ -643,7 +650,7 @@ form {
.calendar-entry {
position: absolute;
display: block;
border-radius: 0.2rem;
border-radius: $border-radius;
z-index: 1;
line-height: 2rem;
font-size: 0.8rem;
@ -934,26 +941,62 @@ form {
.work-group-constraints {
position: relative;
& > label {
margin-bottom: 0.8rem;
}
.input-group {
margin-bottom: 0.5rem;
span {
width: 4rem;
position: relative;
text-align: center;
overflow: hidden;
&:hover::after {
content: 'DELETE';
position: absolute;
top: 0;
left: 0;
width: 100%;
text-align: center;
font-weight: bold;
color: $primary-text-color;
background: $primary-color;
}
}
.form-control {
width: 12rem;
}
}
}
.work-group-constraints-add {
position: absolute;
top: 0;
top: -0.5rem;
right: 0;
}
.work-group-constraints-add-list {
position: absolute;
top: 0;
top: -2rem;
right: 0;
z-index: 1;
display: none;
padding: 0.5rem 0;
background: $background-primary-color;
border: solid 1px $table-border-color;
border: solid 1px $input-border-color;
border-radius: $border-radius;
span {
padding: 0 0.5rem;
line-height: 2rem;
display: block;
&:hover {
background-color: $table-header-color;
@ -1022,6 +1065,10 @@ form {
flex-direction: column;
}
.post-column-left, .post-column-right {
flex-grow: 1;
}
.post-image {
width: 100%;
margin: 0.4rem 0 0;