From 91b422968a0e7585f6ce4e75968649202dce86b1 Mon Sep 17 00:00:00 2001 From: MaMe82 Date: Mon, 15 Oct 2018 15:44:44 +0200 Subject: [PATCH] Webclient: TriggerAction 'DeployTemplate' shows proper modals for stored template selection --- .../hvueComponentsLoadTemplateModals.go | 74 ------------------- web_client/hvueComponentsTriggerActions.go | 65 +++++++++++++++- web_client/main.go | 1 - 3 files changed, 63 insertions(+), 77 deletions(-) delete mode 100644 web_client/hvueComponentsLoadTemplateModals.go diff --git a/web_client/hvueComponentsLoadTemplateModals.go b/web_client/hvueComponentsLoadTemplateModals.go deleted file mode 100644 index 4f05280..0000000 --- a/web_client/hvueComponentsLoadTemplateModals.go +++ /dev/null @@ -1,74 +0,0 @@ -package main - -import ( - "github.com/gopherjs/gopherjs/js" - "github.com/mame82/hvue" -) - - -type modalLoadBashScriptData struct { - *js.Object - IsVisible bool `js:"isVisible"` -} - -func InitCompsLoadModals() { - hvue.NewComponent( - "modalLoadBashScript", - hvue.Template(templateLoadBashScript), - hvue.DataFunc(func(vm *hvue.VM) interface{} { - data := &modalLoadBashScriptData{Object:O()} - data.IsVisible = false - - return data - }), - hvue.PropObj( - "show", - hvue.Types(hvue.PBoolean), - ), - hvue.Method("setVisible", - func(vm *hvue.VM, visible bool) { - data := &modalLoadBashScriptData{Object:vm.Data} - data.IsVisible = visible - }, - ), - hvue.Mounted(func(vm *hvue.VM) { - data := &modalLoadBashScriptData{Object:vm.Data} - data.IsVisible = vm.Get("show").Bool() - // ToDo: update BashScriptList via vuex store action - return - }), - ) -} - -const templateLoadBashScript = ` - - - - - Load WiFi settings - - - - - - - - - - {{ tname }} - - - - - - - - - - - - - - - -` diff --git a/web_client/hvueComponentsTriggerActions.go b/web_client/hvueComponentsTriggerActions.go index 9377f4d..229d9a9 100644 --- a/web_client/hvueComponentsTriggerActions.go +++ b/web_client/hvueComponentsTriggerActions.go @@ -442,9 +442,11 @@ func InitComponentsTriggerActions() { *js.Object ShowSelectHIDScriptModal bool `js:"ShowSelectHIDScriptModal"` ShowSelectBashScriptModal bool `js:"ShowSelectBashScriptModal"` + ShowSelectTemplateModal bool `js:"ShowSelectTemplateModal"` }{Object: O()} data.ShowSelectHIDScriptModal = false data.ShowSelectBashScriptModal = false + data.ShowSelectTemplateModal = false return &data }), hvue.Method("updateStoredHIDScriptsList", @@ -455,6 +457,64 @@ func InitComponentsTriggerActions() { func(vm *hvue.VM) { vm.Store.Call("dispatch", VUEX_ACTION_UPDATE_STORED_BASH_SCRIPTS_LIST) }), + hvue.Computed( + "typedTemplateList", + func(vm *hvue.VM) interface{} { + // template type: ta.ActionData.Type + ta:=&jsTriggerAction{Object: vm.Get("ta")} + if !ta.IsActionDeploySettingsTemplate() { + return []string{} + } + aData := &jsActionDeploySettingsTemplate{Object: ta.ActionData} + switch aData.Type { + case TemplateTypeFullSettings: + //ToDo: Implement + case TemplateTypeBluetooth: + //ToDo: Implement + case TemplateTypeUSB: + //return USB list + return vm.Store.Get("state").Get("StoredUSBSettingsList") + case TemplateTypeTriggerActions: + //return TriggerAction list + return vm.Store.Get("state").Get("StoredTriggerActionSetsList") + case TemplateTypeWifi: + //return WiFi settings list + return vm.Store.Get("state").Get("StoredWifiSettingsList") + case TemplateTypeNetwork: + //return ethernet interface settings list + return vm.Store.Get("state").Get("StoredEthernetInterfaceSettingsList") + } + return []string{} //empty list + }), + hvue.Method( + "actionTemplateTypeUpdate", + func(vm *hvue.VM) interface{} { + // template type: ta.ActionData.Type + ta:=&jsTriggerAction{Object: vm.Get("ta")} + if !ta.IsActionDeploySettingsTemplate() { + return []string{} + } + aData := &jsActionDeploySettingsTemplate{Object: ta.ActionData} + switch aData.Type { + case TemplateTypeFullSettings: + //ToDo: Implement + case TemplateTypeBluetooth: + //ToDo: Implement + case TemplateTypeUSB: + //update USB list + vm.Store.Call("dispatch", VUEX_ACTION_UPDATE_STORED_USB_SETTINGS_LIST) + case TemplateTypeTriggerActions: + //update TriggerAction list + vm.Store.Call("dispatch", VUEX_ACTION_UPDATE_STORED_TRIGGER_ACTION_SETS_LIST) + case TemplateTypeWifi: + //update WiFi settings template list + vm.Store.Call("dispatch", VUEX_ACTION_UPDATE_STORED_WIFI_SETTINGS_LIST) + case TemplateTypeNetwork: + //update ethernet interface settings template list + vm.Store.Call("dispatch", VUEX_ACTION_UPDATE_STORED_ETHERNET_INTERFACE_SETTINGS_LIST) + } + return []string{} //empty list + }), hvue.Computed("actiontypes", func(vm *hvue.VM) interface{} { return generateSelectOptionsAction() }), @@ -747,17 +807,18 @@ const templateAction = ` Type Name of the stored settings template to load - + + Template name Name of the stored settings template to load - + diff --git a/web_client/main.go b/web_client/main.go index dd08952..4c83ac3 100644 --- a/web_client/main.go +++ b/web_client/main.go @@ -80,7 +80,6 @@ func main() { InitComponentsNetwork() InitComponentsWiFi() InitComponentsTriggerActions() - InitCompsLoadModals() vm := hvue.NewVM( hvue.El("#app"), /*