From bf261005496b1cd4a54a1fa1ad0ecf825f230c57 Mon Sep 17 00:00:00 2001 From: death-claw <53543762+death-claw@users.noreply.github.com> Date: Sun, 14 Jan 2024 17:33:43 +0000 Subject: [PATCH] Feature/issue 156/allow download folder rename (#158) * fixes #156 --- .../me/vripper/gui/view/popup/RenameView.kt | 42 ++++++++++++++ vripper-gui/src/main/resources/edit.png | Bin 0 -> 632 bytes .../rename-dialog.component.html | 13 +++++ .../rename-dialog.component.scss | 0 .../rename-dialog.component.spec.ts | 21 +++++++ .../rename-dialog/rename-dialog.component.ts | 53 ++++++++++++++++++ .../web/restendpoints/domain/RenameRequest.kt | 3 + 7 files changed, 132 insertions(+) create mode 100644 vripper-gui/src/main/kotlin/me/vripper/gui/view/popup/RenameView.kt create mode 100644 vripper-gui/src/main/resources/edit.png create mode 100644 vripper-web-ui/src/app/rename-dialog/rename-dialog.component.html create mode 100644 vripper-web-ui/src/app/rename-dialog/rename-dialog.component.scss create mode 100644 vripper-web-ui/src/app/rename-dialog/rename-dialog.component.spec.ts create mode 100644 vripper-web-ui/src/app/rename-dialog/rename-dialog.component.ts create mode 100644 vripper-web/src/main/kotlin/me/vripper/web/restendpoints/domain/RenameRequest.kt diff --git a/vripper-gui/src/main/kotlin/me/vripper/gui/view/popup/RenameView.kt b/vripper-gui/src/main/kotlin/me/vripper/gui/view/popup/RenameView.kt new file mode 100644 index 0000000..f1b7265 --- /dev/null +++ b/vripper-gui/src/main/kotlin/me/vripper/gui/view/popup/RenameView.kt @@ -0,0 +1,42 @@ +package me.vripper.gui.view.popup + +import javafx.beans.property.SimpleStringProperty +import javafx.geometry.Pos +import javafx.scene.control.TextField +import javafx.scene.layout.Priority +import javafx.scene.layout.VBox +import me.vripper.gui.controller.PostController +import tornadofx.* + +class RenameView : Fragment("Rename download post") { + + val postId: Long by param() + val name: String by param() + private val textAreaProperty = SimpleStringProperty() + private val postController: PostController by inject() + lateinit var input: TextField + + override fun onDock() { + textAreaProperty.value = name + } + + override val root = vbox(alignment = Pos.CENTER_RIGHT) { + padding = insets(all = 5) + spacing = 5.0 + input = textfield { + VBox.setVgrow(this, Priority.ALWAYS) + bind(textAreaProperty) + } + button("Ok") { + imageview("search.png") { + fitWidth = 18.0 + fitHeight = 18.0 + } + disableWhen(textAreaProperty.isEmpty) + action { + postController.rename(postId, textAreaProperty.value) + close() + } + } + } +} \ No newline at end of file diff --git a/vripper-gui/src/main/resources/edit.png b/vripper-gui/src/main/resources/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..4e1497875fa1d8302e23d55899109dc7cafc5abc GIT binary patch literal 632 zcmV-;0*C#HP)Q-GV%=Uj2iMd!z*j)&(S1`M3!PdcirxaM3#`>U{`P++RzW*Qjyp3 zvcQEz|P$LNvtF{L(8fYnx#BmmauL458yxr(zVK$ z;)frD%bO(k7*$v<2|~|Q^xaVikmO5T^7ktZ=61{w@o>PuibbY??-L!vB8zsD)BL1&>?X3VlV)%wszv`Lo6lQvW4%VsP`j9 zjrOoYVCq%hO!`wh-jLAog{6%Y7=HPDd(h>=?}3hUfq2Ufet9q{&Oo=`gIXXkH1y)1 zkeHh2dy9$Ir$+8U8!2D~R0=Tp1WZBY7GiP>nS$QqEyOK3%vlConfirmation + +
+ + Folder name + + +
+ + + + +
diff --git a/vripper-web-ui/src/app/rename-dialog/rename-dialog.component.scss b/vripper-web-ui/src/app/rename-dialog/rename-dialog.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/vripper-web-ui/src/app/rename-dialog/rename-dialog.component.spec.ts b/vripper-web-ui/src/app/rename-dialog/rename-dialog.component.spec.ts new file mode 100644 index 0000000..14a40c0 --- /dev/null +++ b/vripper-web-ui/src/app/rename-dialog/rename-dialog.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RenameDialogComponent } from './rename-dialog.component'; + +describe('ConfirmComponent', () => { + let component: RenameDialogComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [RenameDialogComponent], + }); + fixture = TestBed.createComponent(RenameDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/vripper-web-ui/src/app/rename-dialog/rename-dialog.component.ts b/vripper-web-ui/src/app/rename-dialog/rename-dialog.component.ts new file mode 100644 index 0000000..b5bf54c --- /dev/null +++ b/vripper-web-ui/src/app/rename-dialog/rename-dialog.component.ts @@ -0,0 +1,53 @@ +import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { + MAT_DIALOG_DATA, + MatDialogModule, + MatDialogRef, +} from '@angular/material/dialog'; +import { MatButtonModule } from '@angular/material/button'; +import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; + +export interface RenameDialogData { + postId: number; + name: string; +} + +export interface RenameDialogResult { + postId: number; + name: string; +} + +@Component({ + selector: 'app-rename-dialog', + standalone: true, + imports: [ + CommonModule, + MatDialogModule, + MatButtonModule, + FormsModule, + MatFormFieldModule, + MatInputModule, + ReactiveFormsModule, + ], + templateUrl: './rename-dialog.component.html', + styleUrls: ['./rename-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class RenameDialogComponent { + formControl = new FormControl(this.data.name); + + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: RenameDialogData + ) {} + + confirm() { + this.dialogRef.close({ + postId: this.data.postId, + name: this.formControl.value, + } as RenameDialogResult); + } +} diff --git a/vripper-web/src/main/kotlin/me/vripper/web/restendpoints/domain/RenameRequest.kt b/vripper-web/src/main/kotlin/me/vripper/web/restendpoints/domain/RenameRequest.kt new file mode 100644 index 0000000..2bd3613 --- /dev/null +++ b/vripper-web/src/main/kotlin/me/vripper/web/restendpoints/domain/RenameRequest.kt @@ -0,0 +1,3 @@ +package me.vripper.web.restendpoints.domain + +data class RenameRequest(val postId: Long, val name: String)