fix(gui): Start starter altid (kørende AD-traktor stoppes og startes på run'et), Stop-knap kun for runs vi har startet, sprungne traktorer med årsag i status/log, kapacitet <100 l = ingen vogn, ASCII-tegn (v1.12.2.0)
This commit is contained in:
@@ -7,6 +7,7 @@ SmartPickupFrame = {}
|
||||
SmartPickupFrame._mt = Class(SmartPickupFrame, TabbedMenuFrameElement)
|
||||
|
||||
SmartPickupFrame.REFRESH_INTERVAL_MS = 1000
|
||||
SmartPickupFrame.STATUS_OVERRIDE_TICKS = 6
|
||||
SmartPickupFrame.LOG_PREFIX = "ADSmartPickup: "
|
||||
SmartPickupFrame.STATE_OFF, SmartPickupFrame.STATE_ON = 1, 2
|
||||
SmartPickupFrame.TAB_OVERVIEW, SmartPickupFrame.TAB_SUPPLY, SmartPickupFrame.TAB_OUTBOUND, SmartPickupFrame.TAB_STORAGE = 1, 2, 3, 4
|
||||
@@ -475,9 +476,9 @@ function SmartPickupFrame:describeVehicle(adEnv, run, vehicle, isInRun)
|
||||
end
|
||||
end
|
||||
if validation.ok then
|
||||
table.insert(parts, "✔")
|
||||
table.insert(parts, "OK")
|
||||
else
|
||||
table.insert(parts, "✖ " .. self.i18n:getText("spu_reason_" .. tostring(validation.reason)))
|
||||
table.insert(parts, "X " .. self.i18n:getText("spu_reason_" .. tostring(validation.reason)))
|
||||
end
|
||||
return table.concat(parts, " — ")
|
||||
end
|
||||
@@ -687,8 +688,8 @@ function SmartPickupFrame:refreshLive()
|
||||
self:refreshNeedsRows(adEnv, run)
|
||||
end
|
||||
local status = ADRunsController.getRunStatus(adEnv, run)
|
||||
isRunning = status.running > 0
|
||||
local text = isRunning and string.format(self.i18n:getText("spu_status_running"), status.running, status.total)
|
||||
isRunning = status.isRunning == true
|
||||
local text = status.running > 0 and string.format(self.i18n:getText("spu_status_running"), status.running, status.total)
|
||||
or string.format(self.i18n:getText("spu_status_stopped"), status.total)
|
||||
self:setStatusText(self.statusOverride or text)
|
||||
for option, data in pairs(self.rowData) do
|
||||
@@ -701,9 +702,12 @@ function SmartPickupFrame:refreshLive()
|
||||
else
|
||||
self:setStatusText(self.statusOverride or self.i18n:getText("spu_noRuns"))
|
||||
end
|
||||
-- Engangsbesked ("Startet 2, sprunget over 1", "flyttet fra ..."): vist nu, ryddet her,
|
||||
-- så næste opdatering om et sekund viser den levende status igen.
|
||||
self.statusOverride = nil
|
||||
-- Engangsbesked ("Startet 2, sprunget over 1: …", "flyttet fra ..."): står i
|
||||
-- STATUS_OVERRIDE_TICKS opdateringer (sekunder), så man når at læse hvorfor.
|
||||
self.statusOverrideTicks = (self.statusOverrideTicks or 0) - 1
|
||||
if self.statusOverrideTicks <= 0 then
|
||||
self.statusOverride = nil
|
||||
end
|
||||
self.startButtonInfo.text = self.i18n:getText(isRunning and "spu_button_stop" or "spu_button_start")
|
||||
self.startButtonInfo.disabled = run == nil
|
||||
self.renameButtonInfo.disabled = run == nil
|
||||
@@ -758,6 +762,7 @@ function SmartPickupFrame:onClickVehicle(state, element)
|
||||
if previousRunId ~= nil then
|
||||
local previous = ADRuns.getRun(ADRunsController.store, previousRunId)
|
||||
frame.statusOverride = string.format(frame.i18n:getText("spu_movedFrom"), previous ~= nil and previous.name or tostring(previousRunId))
|
||||
frame.statusOverrideTicks = SmartPickupFrame.STATUS_OVERRIDE_TICKS
|
||||
end
|
||||
else
|
||||
ADRunsController.unassignVehicle(data.vehicle)
|
||||
@@ -772,15 +777,24 @@ function SmartPickupFrame:onClickStartStop()
|
||||
self:safe(function(frame)
|
||||
local adEnv, run = frame.getAdEnv(), frame:getRun()
|
||||
if adEnv == nil or run == nil then return end
|
||||
if ADRunsController.getRunStatus(adEnv, run).running > 0 then
|
||||
if ADRunsController.getRunStatus(adEnv, run).isRunning then
|
||||
ADRunsController.stopRun(adEnv, run.id)
|
||||
frame.statusOverride = nil
|
||||
else
|
||||
local started, skipped = 0, 0
|
||||
local started, skipped, reasons = 0, 0, {}
|
||||
for _, result in ipairs(ADRunsController.startRun(adEnv, run.id)) do
|
||||
if result.ok then started = started + 1 else skipped = skipped + 1 end
|
||||
if result.ok then
|
||||
started = started + 1
|
||||
else
|
||||
skipped = skipped + 1
|
||||
table.insert(reasons, string.format("%s: %s", tostring(result.vehicle:getName()), frame.i18n:getText("spu_reason_" .. tostring(result.reason))))
|
||||
end
|
||||
end
|
||||
frame.statusOverride = string.format(frame.i18n:getText("spu_status_started"), started, skipped)
|
||||
if #reasons > 0 then
|
||||
frame.statusOverride = frame.statusOverride .. " — " .. table.concat(reasons, "; ")
|
||||
end
|
||||
frame.statusOverrideTicks = SmartPickupFrame.STATUS_OVERRIDE_TICKS
|
||||
end
|
||||
ADRunsController.save()
|
||||
frame:requestRebuild()
|
||||
|
||||
Reference in New Issue
Block a user