okay so working when you manually save ribbon
need to make it save position when you switch ribbon instead of manual save but good progressundo
parent
14e1bec9e5
commit
168a057a2a
|
@ -17,7 +17,7 @@ struct SelectedRibbon: Identifiable, Equatable {
|
||||||
/// Int64 is the recommended type for auto-incremented database ids.
|
/// Int64 is the recommended type for auto-incremented database ids.
|
||||||
/// Use nil for players that are not inserted yet in the database.
|
/// Use nil for players that are not inserted yet in the database.
|
||||||
var id: Int64?
|
var id: Int64?
|
||||||
var ribbonId: Int64
|
var ribbonGroupId: Int64
|
||||||
}
|
}
|
||||||
|
|
||||||
extension SelectedRibbon {
|
extension SelectedRibbon {
|
||||||
|
@ -32,7 +32,7 @@ extension SelectedRibbon: Codable, FetchableRecord, MutablePersistableRecord {
|
||||||
// Define database columns from CodingKeys
|
// Define database columns from CodingKeys
|
||||||
fileprivate enum Columns {
|
fileprivate enum Columns {
|
||||||
static let id = Column(CodingKeys.id)
|
static let id = Column(CodingKeys.id)
|
||||||
static let ribbonId = Column(CodingKeys.ribbonId)
|
static let ribbonGroupId = Column(CodingKeys.ribbonGroupId)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Updates a player id after it has been inserted in the database.
|
/// Updates a player id after it has been inserted in the database.
|
||||||
|
|
|
@ -52,8 +52,15 @@ struct SelectedRibbonRequest: Queryable {
|
||||||
// print(ret3)
|
// print(ret3)
|
||||||
|
|
||||||
// print("FETCH JOIN RIBBON")
|
// print("FETCH JOIN RIBBON")
|
||||||
var ret = try Ribbon.fetchAll(db, sql: "SELECT Ribbon.* FROM SelectedRibbon join Ribbon on SelectedRibbon.ribbonId = ribbon.rowId WHERE SelectedRibbon.rowId = 1") // [Player]
|
var ret = try Ribbon.fetchAll(db, sql: """
|
||||||
// print(ret)
|
SELECT Ribbon.* FROM SelectedRibbon \
|
||||||
|
JOIN (select distinct r1.* from Ribbon r1 join Ribbon r2 ON \
|
||||||
|
r1.undoLevel = r2.currentLevel AND r1.id = r2.id ORDER BY pos ASC) as Ribbon \
|
||||||
|
ON SelectedRibbon.ribbonGroupId = Ribbon.groupId \
|
||||||
|
WHERE SelectedRibbon.rowId = 1
|
||||||
|
""")
|
||||||
|
// [Player]
|
||||||
|
print("Selected Ribbon query result: \(ret)")
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ struct AppDatabase {
|
||||||
|
|
||||||
try db.create(table: "SelectedRibbon") { t in
|
try db.create(table: "SelectedRibbon") { t in
|
||||||
t.autoIncrementedPrimaryKey("id")
|
t.autoIncrementedPrimaryKey("id")
|
||||||
t.column("ribbonId", .integer).notNull()
|
t.column("ribbonGroupId", .integer).notNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
try db.create(table: "ScrollState") { t in
|
try db.create(table: "ScrollState") { t in
|
||||||
|
@ -394,7 +394,7 @@ extension AppDatabase {
|
||||||
scrollId: "1",
|
scrollId: "1",
|
||||||
scrollOffset: 0).inserted(db)
|
scrollOffset: 0).inserted(db)
|
||||||
|
|
||||||
_ = try SelectedRibbon(id: 1, ribbonId: 1).inserted(db)
|
_ = try SelectedRibbon(id: 1, ribbonGroupId: 1).inserted(db)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch {
|
} catch {
|
||||||
|
|
|
@ -74,7 +74,7 @@ func goToRibbon(selectedRibbon: Ribbon,
|
||||||
|
|
||||||
refresh.wrappedValue.toggle()
|
refresh.wrappedValue.toggle()
|
||||||
|
|
||||||
var updateSelectRibbon = SelectedRibbon(id: Int64(1), ribbonId: destRibbon.id!)
|
var updateSelectRibbon = SelectedRibbon(id: Int64(1), ribbonGroupId: Int64(destRibbon.groupId))
|
||||||
// print("Saving selected ribbon")
|
// print("Saving selected ribbon")
|
||||||
// print(updateSelectRibbon)
|
// print(updateSelectRibbon)
|
||||||
do {
|
do {
|
||||||
|
|
Loading…
Reference in New Issue