Issue 24: Added read-only mode (#27)
- Added settings to workspace, and added the read-only mode - Added the `-ro` field which will launch Dynamo-Browse in read-only mode - Added the `set ro` to enable read-only mode, and `set rw` to enable read-write mode
This commit is contained in:
parent
a1717572c5
commit
93ec519127
18 changed files with 623 additions and 315 deletions
|
|
@ -14,6 +14,7 @@ import (
|
|||
"github.com/lmika/audax/internal/common/workspaces"
|
||||
"github.com/lmika/audax/internal/dynamo-browse/controllers"
|
||||
"github.com/lmika/audax/internal/dynamo-browse/providers/dynamo"
|
||||
"github.com/lmika/audax/internal/dynamo-browse/providers/settingstore"
|
||||
"github.com/lmika/audax/internal/dynamo-browse/providers/workspacestore"
|
||||
"github.com/lmika/audax/internal/dynamo-browse/services/itemrenderer"
|
||||
keybindings_service "github.com/lmika/audax/internal/dynamo-browse/services/keybindings"
|
||||
|
|
@ -32,6 +33,7 @@ func main() {
|
|||
var flagTable = flag.String("t", "", "dynamodb table name")
|
||||
var flagLocal = flag.String("local", "", "local endpoint")
|
||||
var flagDebug = flag.String("debug", "", "file to log debug messages")
|
||||
var flagRO = flag.Bool("ro", false, "enable readonly mode")
|
||||
var flagWorkspace = flag.String("w", "", "workspace file")
|
||||
flag.Parse()
|
||||
|
||||
|
|
@ -73,14 +75,22 @@ func main() {
|
|||
uiStyles := styles.DefaultStyles
|
||||
dynamoProvider := dynamo.NewProvider(dynamoClient)
|
||||
resultSetSnapshotStore := workspacestore.NewResultSetSnapshotStore(ws)
|
||||
settingStore := settingstore.New(ws)
|
||||
|
||||
tableService := tables.NewService(dynamoProvider)
|
||||
if *flagRO {
|
||||
if err := settingStore.SetReadOnly(*flagRO); err != nil {
|
||||
cli.Fatalf("unable to set read-only mode: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
tableService := tables.NewService(dynamoProvider, settingStore)
|
||||
workspaceService := workspaces_service.NewService(resultSetSnapshotStore)
|
||||
itemRendererService := itemrenderer.NewService(uiStyles.ItemView.FieldType, uiStyles.ItemView.MetaInfo)
|
||||
|
||||
state := controllers.NewState()
|
||||
tableReadController := controllers.NewTableReadController(state, tableService, workspaceService, itemRendererService, *flagTable, true)
|
||||
tableWriteController := controllers.NewTableWriteController(state, tableService, tableReadController)
|
||||
tableWriteController := controllers.NewTableWriteController(state, tableService, tableReadController, settingStore)
|
||||
settingsController := controllers.NewSettingsController(settingStore)
|
||||
keyBindings := keybindings.Default()
|
||||
|
||||
keyBindingService := keybindings_service.NewService(keyBindings)
|
||||
|
|
@ -91,6 +101,7 @@ func main() {
|
|||
model := ui.NewModel(
|
||||
tableReadController,
|
||||
tableWriteController,
|
||||
settingsController,
|
||||
itemRendererService,
|
||||
commandController,
|
||||
keyBindingController,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue