diff --git a/service/dhcp.go b/service/dhcp.go index 4bf9cca..00a1a5d 100644 --- a/service/dhcp.go +++ b/service/dhcp.go @@ -1,3 +1,5 @@ +// +build linux + package service import ( diff --git a/web_client/hvueCompHIDScript.go b/web_client/hvueCompHIDScript.go index 01b5aef..70a8cef 100644 --- a/web_client/hvueCompHIDScript.go +++ b/web_client/hvueCompHIDScript.go @@ -162,7 +162,7 @@ const (
-
+
diff --git a/web_client/hvueComponentWiFi.go b/web_client/hvueComponentWiFi.go index 270ca96..a4c9ff7 100644 --- a/web_client/hvueComponentWiFi.go +++ b/web_client/hvueComponentWiFi.go @@ -141,9 +141,9 @@ func InitComponentsWiFi() { vm.Store.Call("dispatch", VUEX_ACTION_UPDATE_STORED_WIFI_SETTINGS_LIST) }), hvue.Method("store", - func(vm *hvue.VM) { + func(vm *hvue.VM, name *js.Object) { sReq := NewWifiRequestSettingsStorage() - sReq.TemplateName = vm.Get("templateName").String() + sReq.TemplateName = name.String() sReq.Settings = &jsWiFiSettings{ Object: vm.Get("$store").Get("state").Get("wifiState").Get("CurrentSettings"), } @@ -151,6 +151,11 @@ func InitComponentsWiFi() { vm.Get("$store").Call("dispatch", VUEX_ACTION_STORE_WIFI_SETTINGS, sReq) vm.Set("showStoreModal", false) }), + hvue.Method("load", + func(vm *hvue.VM, name *js.Object) { + println("Loading :", name.String()) + vm.Get("$store").Call("dispatch", VUEX_ACTION_LOAD_WIFI_SETTINGS, name) + }), hvue.Computed("deploying", func(vm *hvue.VM) interface{} { return vm.Get("$store").Get("state").Get("deployingWifiSettings") @@ -164,65 +169,10 @@ func InitComponentsWiFi() { const templateWiFi = ` - -
- - - - - Load WiFi settings - - + + - - - - - - - {{ tname }} - - - - - - - - - - - - - - - - - - - Store current WiFi Settings - - - - - - Template name - - - - - - - - - - - - - - - -
diff --git a/web_client/hvueComponentsNetwork.go b/web_client/hvueComponentsNetwork.go index 2a0d43e..47d644b 100644 --- a/web_client/hvueComponentsNetwork.go +++ b/web_client/hvueComponentsNetwork.go @@ -221,7 +221,7 @@ func InitComponentsNetwork() { const templateNetwork = `
-
+
Network interface settings @@ -248,7 +248,7 @@ const templateNetwork = `
-
+
diff --git a/web_client/mvuexGlobalState.go b/web_client/mvuexGlobalState.go index 74ced82..90eb662 100644 --- a/web_client/mvuexGlobalState.go +++ b/web_client/mvuexGlobalState.go @@ -37,10 +37,10 @@ const ( VUEX_ACTION_UPDATE_STORED_WIFI_SETTINGS_LIST = "updateStoredWifiSettingsList" VUEX_ACTION_STORE_WIFI_SETTINGS = "storeWifiSettings" - VUEX_ACTION_LOAD_WIFI_SETTINGS = "storeWifiSettings" + VUEX_ACTION_LOAD_WIFI_SETTINGS = "loadWifiSettings" VUEX_MUTATION_SET_CURRENT_GADGET_SETTINGS_TO = "setCurrentGadgetSettings" - VUEX_MUTATION_SET_WIFI_STATE = "setCurrentWifiSettings" + VUEX_MUTATION_SET_WIFI_STATE = "setCurrentWifiState" VUEX_MUTATION_SET_CURRENT_HID_SCRIPT_SOURCE_TO = "setCurrentHIDScriptSource" VUEX_MUTATION_SET_STORED_WIFI_SETTINGS_LIST = "setStoredWifiSettingsList" @@ -51,6 +51,7 @@ const ( VUEX_ACTION_STORE_CURRENT_HID_SCRIPT_SOURCE_TO_REMOTE_FILE = "storeCurrentHidScriptSourceToRemoteFile" + VUEX_MUTATION_SET_CURRENT_WIFI_SETTINGS = "setCurrentWifiSettings" VUEX_MUTATION_SET_STORED_BASH_SCRIPTS_LIST = "setStoredBashScriptsList" VUEX_MUTATION_SET_STORED_HID_SCRIPTS_LIST = "setStoredHIDScriptsList" @@ -275,6 +276,23 @@ func actionStoreWifiSettings(store *mvuex.Store, context *mvuex.ActionContext, s }() } +func actionLoadWifiSettings(store *mvuex.Store, context *mvuex.ActionContext, state *GlobalState, settingsName *js.Object) { + go func() { + println("Vuex dispatch load WiFi settings: ", settingsName.String()) + // convert to Go type + settings,err := RpcClient.GetStoredWifiSettings(defaultTimeout, &pb.StringMessage{Msg:settingsName.String()}) + if err != nil { + QuasarNotifyError("Error fetching stored WiFi Settings", err.Error(), QUASAR_NOTIFICATION_POSITION_BOTTOM) + } + + jsSettings := NewWifiSettings() + jsSettings.fromGo(settings) + context.Commit(VUEX_MUTATION_SET_CURRENT_WIFI_SETTINGS, jsSettings) + + QuasarNotifySuccess("New WiFi settings loaded", "", QUASAR_NOTIFICATION_POSITION_TOP) + }() +} + func actionDeployWifiSettings(store *mvuex.Store, context *mvuex.ActionContext, state *GlobalState, settings *jsWiFiSettings) { go func() { @@ -529,6 +547,10 @@ func initMVuex() *mvuex.Store { state.WiFiState = wifiState return }), + mvuex.Mutation(VUEX_MUTATION_SET_CURRENT_WIFI_SETTINGS, func(store *mvuex.Store, state *GlobalState, wifiSettings *jsWiFiSettings) { + state.WiFiState.CurrentSettings = wifiSettings + return + }), mvuex.Mutation(VUEX_MUTATION_SET_STORED_WIFI_SETTINGS_LIST, func(store *mvuex.Store, state *GlobalState, wsList []interface{}) { println("New ws list", wsList) hvue.Set(state, "StoredWifiSettingsList", wsList) @@ -575,6 +597,7 @@ func initMVuex() *mvuex.Store { mvuex.Action(VUEX_ACTION_UPDATE_STORED_HID_SCRIPTS_LIST, actionUpdateStoredHIDScriptsList), mvuex.Action(VUEX_ACTION_UPDATE_CURRENT_HID_SCRIPT_SOURCE_FROM_REMOTE_FILE, actionUpdateCurrentHidScriptSourceFromRemoteFile), mvuex.Action(VUEX_ACTION_STORE_CURRENT_HID_SCRIPT_SOURCE_TO_REMOTE_FILE, actionStoreCurrentHidScriptSourceToRemoteFile), + mvuex.Action(VUEX_ACTION_LOAD_WIFI_SETTINGS, actionLoadWifiSettings), mvuex.Getter("triggerActions", func(state *GlobalState) interface{} { diff --git a/web_client/rpcClient.go b/web_client/rpcClient.go index ef1c327..0f71bf2 100644 --- a/web_client/rpcClient.go +++ b/web_client/rpcClient.go @@ -131,6 +131,15 @@ func (rpc *Rpc) StoreWifiSettings(timeout time.Duration, req *pb.WifiRequestSett return } +func (rpc *Rpc) GetStoredWifiSettings(timeout time.Duration, req *pb.StringMessage) (settings *pb.WiFiSettings, err error) { + ctx, cancel := context.WithTimeout(context.Background(), timeout) + defer cancel() + + settings, err = rpc.Client.GetStoredWifiSettings(ctx, req) + + return +} + func (rpc *Rpc) GetWifiState(timeout time.Duration) (state *jsWiFiState, err error) { ctx, cancel := context.WithTimeout(context.Background(), timeout)