feat(flows): besked på skærmen når solgte traktorer fjernes fra et flow; rød når flowet står uden traktorer (v1.59.7.0)
This commit is contained in:
@@ -361,6 +361,20 @@ function ADRuns.pruneMissingVehicles(store, exists)
|
||||
return new, missing
|
||||
end
|
||||
|
||||
-- Én besked pr. berørt flow efter pruneMissingVehicles: {runName, removed, left, critical} (critical = flowet
|
||||
-- står uden traktorer og virker ikke). I samme rækkefølge som flowene.
|
||||
function ADRuns.pruneNotices(storeAfter, removed)
|
||||
local byName = {}
|
||||
for _, entry in ipairs(removed or {}) do byName[entry.runName] = (byName[entry.runName] or 0) + 1 end
|
||||
local notices = {}
|
||||
for _, run in ipairs(storeAfter.runs) do
|
||||
if byName[run.name] ~= nil then
|
||||
table.insert(notices, {runName = run.name, removed = byName[run.name], left = #run.vehicleIds, critical = #run.vehicleIds == 0})
|
||||
end
|
||||
end
|
||||
return notices
|
||||
end
|
||||
|
||||
-- En traktor er kun i ét run. Returnerer ny store + id på det run den blev flyttet FRA (nil = ingen).
|
||||
function ADRuns.assignVehicle(store, runId, vehicleId)
|
||||
local previous = ADRuns.findRunByVehicle(store, vehicleId)
|
||||
|
||||
@@ -1513,6 +1513,14 @@ function ADRunsController.pruneMissingVehicles(adEnv)
|
||||
Logging.info(ADRunsController.LOG_PREFIX .. "run '%s': køretøj %s findes ikke længere — fjernet fra flowet", tostring(entry.runName), tostring(entry.vehicleId))
|
||||
end
|
||||
ADRunsController.save()
|
||||
-- besked på skærmen (højre side); rød når flowet står uden traktorer
|
||||
if ADFieldJobs ~= nil and ADFieldJobs.notify ~= nil and g_i18n ~= nil then
|
||||
for _, notice in ipairs(ADRuns.pruneNotices(store, removed)) do
|
||||
local text = notice.critical and string.format(g_i18n:getText("spu_prune_empty"), notice.runName)
|
||||
or string.format(g_i18n:getText("spu_prune_removed"), notice.runName, notice.removed, notice.left)
|
||||
ADFieldJobs.notify(text, notice.critical)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ADRunsController.installSaveHook()
|
||||
|
||||
@@ -261,6 +261,8 @@
|
||||
<text name="spu_panel_flowTitle" text="Rediger flow: %s"/>
|
||||
<text name="spu_panel_fieldTitle" text="Mark F%d"/>
|
||||
<text name="spu_field_pausedSuffix" text="(pause)"/>
|
||||
<text name="spu_prune_removed" text="Flow '%s': %d traktor(er) findes ikke længere og er fjernet (%d tilbage)"/>
|
||||
<text name="spu_prune_empty" text="Flow '%s' har ingen traktorer længere og virker ikke — tildel en i Flows"/>
|
||||
<text name="spu_newRunName" text="Flow %d"/>
|
||||
<text name="spu_renameTitle" text="Navn på flow"/>
|
||||
<text name="spu_deleteConfirm" text="Slet run '%s'? Dets kørende traktorer stoppes. Kan ikke fortrydes."/>
|
||||
|
||||
@@ -261,6 +261,8 @@
|
||||
<text name="spu_panel_flowTitle" text="Edit flow: %s"/>
|
||||
<text name="spu_panel_fieldTitle" text="Field F%d"/>
|
||||
<text name="spu_field_pausedSuffix" text="(paused)"/>
|
||||
<text name="spu_prune_removed" text="Flow '%s': %d tractor(s) no longer exist and were removed (%d left)"/>
|
||||
<text name="spu_prune_empty" text="Flow '%s' has no tractors left and won't run — assign one in Flows"/>
|
||||
<text name="spu_newRunName" text="Flow %d"/>
|
||||
<text name="spu_renameTitle" text="Flow name"/>
|
||||
<text name="spu_deleteConfirm" text="Delete run '%s'? Its running tractors will be stopped. This cannot be undone."/>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<modDesc descVersion="107">
|
||||
<author>masterdraco</author>
|
||||
<version>1.59.6.0</version>
|
||||
<version>1.59.7.0</version>
|
||||
<title>
|
||||
<en>AD Smart Pickup</en>
|
||||
</title>
|
||||
|
||||
@@ -360,5 +360,18 @@ do
|
||||
local _, none = ADRuns.pruneMissingVehicles(st, function() return false end)
|
||||
check("prune: alle mangler -> intet fjernes", #none, 0)
|
||||
end
|
||||
-- beskeder på skærmen efter oprydning: én pr. flow; rød når flowet står uden traktorer
|
||||
do
|
||||
local st, r1 = ADRuns.createRun(ADRuns.newStore(), "TMR", "supply")
|
||||
local st2, r2 = ADRuns.createRun(st, "Solo", "supply")
|
||||
st2 = ADRuns.assignVehicle(st2, r1.id, "keep")
|
||||
st2 = ADRuns.assignVehicle(st2, r1.id, "gone1")
|
||||
st2 = ADRuns.assignVehicle(st2, r2.id, "gone2")
|
||||
local pruned, removed = ADRuns.pruneMissingVehicles(st2, function(id) return id == "keep" end)
|
||||
local notes = ADRuns.pruneNotices(pruned, removed)
|
||||
check("besked: én pr. flow", #notes, 2)
|
||||
check("besked: TMR har traktorer tilbage", notes[1].runName .. "/" .. notes[1].left .. "/" .. tostring(notes[1].critical), "TMR/1/false")
|
||||
check("besked: Solo står tom -> rød", notes[2].runName .. "/" .. notes[2].left .. "/" .. tostring(notes[2].critical), "Solo/0/true")
|
||||
end
|
||||
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
|
||||
os.exit(failures == 0 and 0 or 1)
|
||||
|
||||
Reference in New Issue
Block a user