Add config path args to MiloRemote

Allowing to connect to multiple Milo system from one NI
Example:
> MiloRemote base
> MiloRemote shop
This commit is contained in:
Anavrins
2020-08-14 01:51:45 -04:00
parent 153c1ac4a2
commit db007af3ea
2 changed files with 12 additions and 8 deletions

View File

@@ -12,8 +12,12 @@ local fs = _G.fs
local peripheral = _G.peripheral local peripheral = _G.peripheral
local shell = _ENV.shell local shell = _ENV.shell
local configName = ({...})[1]
local configPath = 'miloRemote' .. (configName and "_"..configName or "")
local context = { local context = {
state = Config.load('miloRemote', { displayMode = 0, deposit = true }), state = Config.load(configPath, { displayMode = 0, deposit = true }),
configPath = configPath,
responseHandlers = { }, responseHandlers = { },
} }
@@ -158,7 +162,7 @@ function page.grid:eventHandler(event)
if event.type == 'grid_sort' then if event.type == 'grid_sort' then
context.state.sortColumn = event.sortColumn context.state.sortColumn = event.sortColumn
context.state.inverseSort = event.inverseSort context.state.inverseSort = event.inverseSort
Config.update('miloRemote', context.state) Config.update(configPath, context.state)
end end
return UI.Grid.eventHandler(self, event) return UI.Grid.eventHandler(self, event)
end end
@@ -181,7 +185,7 @@ function page:eventHandler(event)
self.statusBar:draw() self.statusBar:draw()
context:setStatus(depositMode[context.state.deposit].help) context:setStatus(depositMode[context.state.deposit].help)
context:notifyInfo(depositMode[context.state.deposit].help) context:notifyInfo(depositMode[context.state.deposit].help)
Config.update('miloRemote', context.state) Config.update(configPath, context.state)
elseif event.type == 'focus_change' then elseif event.type == 'focus_change' then
context:setStatus(event.focused.help) context:setStatus(event.focused.help)
@@ -243,7 +247,7 @@ function page:eventHandler(event)
context:setStatus(event.button.help) context:setStatus(event.button.help)
context:notifyInfo(event.button.help) context:notifyInfo(event.button.help)
self.grid:draw() self.grid:draw()
Config.update('miloRemote', context.state) Config.update(configPath, context.state)
elseif event.type == 'text_change' and event.element == self.statusBar.filter then elseif event.type == 'text_change' and event.element == self.statusBar.filter then
self.filter = event.text or '' self.filter = event.text or ''
@@ -445,7 +449,7 @@ end
function context:setState(key, value) function context:setState(key, value)
self.state[key] = value self.state[key] = value
Config.update('miloRemote', self.state) Config.update(configPath, self.state)
end end
context.responseHandlers['received'] = function(response) context.responseHandlers['received'] = function(response)

View File

@@ -5,10 +5,10 @@ local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local fs = _G.fs local fs = _G.fs
local STARTUP_FILE = 'usr/autorun/miloRemote.lua'
local context = ({ ... })[1] local context = ({ ... })[1]
local STARTUP_FILE = 'usr/autorun/'..context.configPath..'.lua'
local setup = UI.SlideOut { local setup = UI.SlideOut {
titleBar = UI.TitleBar { titleBar = UI.TitleBar {
title = 'Remote Setup', title = 'Remote Setup',
@@ -59,7 +59,7 @@ function setup:eventHandler(event)
self.statusBar:setStatus(event.focused.help) self.statusBar:setStatus(event.focused.help)
elseif event.type == 'form_complete' then elseif event.type == 'form_complete' then
Config.update('miloRemote', context.state) Config.update(context.configPath, context.state)
self:hide() self:hide()
context.page:refresh('list') context.page:refresh('list')
context.page.grid:draw() context.page.grid:draw()