]> uap-core.de Git - rssreader.git/commitdiff
implement moving feeds to another group when a group is deleted
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 16 Nov 2025 08:10:54 +0000 (09:10 +0100)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 16 Nov 2025 08:10:54 +0000 (09:10 +0100)
rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt
rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt

index 820b312eef657753eb222f0d580fe038b7ae7e0a..930ca4fa3bc119eb5d404ff3b7669cb6da8b90da 100644 (file)
@@ -3,12 +3,7 @@ package de.unixwork.rssreader
 import com.zaxxer.hikari.HikariConfig
 import com.zaxxer.hikari.HikariDataSource
 import de.unixwork.ui.Context
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.GlobalScope
-import kotlinx.coroutines.IO
-import kotlinx.coroutines.launch
 import java.sql.Connection
-import java.sql.DriverManager
 import java.sql.Statement
 
 object Database {
@@ -424,6 +419,19 @@ object Database {
         }
     }
 
+    public fun moveFeedCollections(from: FeedGroup, to: FeedGroup) {
+        dataSource.connection.use { conn ->
+            // move
+            conn.prepareStatement("""
+                update feedcollections set group_id = ? where group_id = ?
+            """.trimIndent()).use { stmt ->
+                stmt.setInt(1, to.id)
+                stmt.setInt(2, from.id)
+                stmt.execute()
+            }
+        }
+    }
+
     public fun getPendingFeeds(defaultInterval: Int) : MutableList<Feed> {
         val feeds = mutableListOf<Feed>()
 
index 438006f5f84eb59084cc81ad4361d939602629e3..2939627e67fbc64da0f13e468b1d7fe4eef4b09f 100644 (file)
@@ -136,13 +136,12 @@ class MainWindow() {
                     onClick = { ev ->
                         if(ev.intValue == 4) {
                             sourceList.removeFeedGroup(feedGroup)
-                            if(move!!.booleanValue() && groups!!.selected != null) {
-                                // move and delete
-                            } else {
-                                // delete
-                                GlobalScope.launch(Dispatchers.IO) {
-                                    Database.deleteFeedGroup(feedGroup)
+                            GlobalScope.launch(Dispatchers.IO) {
+                                if(move!!.booleanValue() && groups!!.selected != null) {
+                                    // move and delete
+                                    Database.moveFeedCollections(feedGroup, groups!!.selected)
                                 }
+                                Database.deleteFeedGroup(feedGroup)
                             }
                         }
                         ev.`object`.close()