Create a section in the history panel to reset scene activity (#5168)

Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
This commit is contained in:
Ian McKenzie
2024-08-28 20:34:22 -07:00
committed by GitHub
parent 68738bd227
commit 96fdd94a01
9 changed files with 184 additions and 1 deletions

View File

@@ -1267,6 +1267,27 @@ func (_m *SceneReaderWriter) QueryCount(ctx context.Context, sceneFilter *models
return r0, r1
}
// ResetActivity provides a mock function with given fields: ctx, sceneID, resetResume, resetDuration
func (_m *SceneReaderWriter) ResetActivity(ctx context.Context, sceneID int, resetResume bool, resetDuration bool) (bool, error) {
ret := _m.Called(ctx, sceneID, resetResume, resetDuration)
var r0 bool
if rf, ok := ret.Get(0).(func(context.Context, int, bool, bool) bool); ok {
r0 = rf(ctx, sceneID, resetResume, resetDuration)
} else {
r0 = ret.Get(0).(bool)
}
var r1 error
if rf, ok := ret.Get(1).(func(context.Context, int, bool, bool) error); ok {
r1 = rf(ctx, sceneID, resetResume, resetDuration)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// ResetO provides a mock function with given fields: ctx, id
func (_m *SceneReaderWriter) ResetO(ctx context.Context, id int) (int, error) {
ret := _m.Called(ctx, id)

View File

@@ -137,6 +137,7 @@ type SceneWriter interface {
OHistoryWriter
ViewHistoryWriter
SaveActivity(ctx context.Context, sceneID int, resumeTime *float64, playDuration *float64) (bool, error)
ResetActivity(ctx context.Context, sceneID int, resetResume bool, resetDuration bool) (bool, error)
}
// SceneReaderWriter provides all scene methods.

View File

@@ -1234,6 +1234,30 @@ func (qb *SceneStore) SaveActivity(ctx context.Context, id int, resumeTime *floa
return true, nil
}
func (qb *SceneStore) ResetActivity(ctx context.Context, id int, resetResume bool, resetDuration bool) (bool, error) {
if err := qb.tableMgr.checkIDExists(ctx, id); err != nil {
return false, err
}
record := goqu.Record{}
if resetResume {
record["resume_time"] = 0.0
}
if resetDuration {
record["play_duration"] = 0.0
}
if len(record) > 0 {
if err := qb.tableMgr.updateByID(ctx, id, record); err != nil {
return false, err
}
}
return true, nil
}
func (qb *SceneStore) GetURLs(ctx context.Context, sceneID int) ([]string, error) {
return scenesURLsTableMgr.get(ctx, sceneID)
}