fix: Fields under Stop alt-pause vises stoppet med [Start], [Start] genoptager kun den mark; listen skjules bag redigeringsvinduet (tekst skinnede igennem) (v1.59.3.0)
This commit is contained in:
@@ -109,7 +109,8 @@ function SmartPickupFrame:fieldCells(row)
|
||||
return {
|
||||
name, crop, self:fieldPlanText(field, info),
|
||||
self.i18n:getText(field.plan.mode == "auto" and "spu_field_mode_auto" or "spu_field_mode_manual"),
|
||||
self:fieldStatusText(field, info, true),
|
||||
self:fieldStatusText(field, info, true) .. ((ADFieldJobs.state.paused and not ADFieldJobs.isFieldResumed(info.id)
|
||||
and ADFieldModel.isWorking(field)) and (" " .. self.i18n:getText("spu_field_pausedSuffix")) or ""),
|
||||
ADFlowView.joinCounted(names, ", ", "-"),
|
||||
self:fieldActionText(info.id),
|
||||
}
|
||||
@@ -168,12 +169,19 @@ function SmartPickupFrame:refreshFieldLevels()
|
||||
end
|
||||
end
|
||||
|
||||
-- Arbejder marken reelt (ikke bare et plan-trin under Stop alt-pause)?
|
||||
function SmartPickupFrame:fieldIsActive(id, field)
|
||||
field = field or ADFieldJobs.getField(id)
|
||||
return field ~= nil and ADFieldView.isActiveWork({working = ADFieldModel.isWorking(field),
|
||||
paused = ADFieldJobs.state.paused == true, resumed = ADFieldJobs.isFieldResumed(id)})
|
||||
end
|
||||
|
||||
-- [Start] kræver en markør (Stop/Overtag altid muligt når marken arbejder).
|
||||
function SmartPickupFrame:fieldCanStart(id)
|
||||
local field, info = ADFieldJobs.getField(id), ADFields.getInfo(id)
|
||||
if field == nil or info == nil then return false end
|
||||
return ADFieldView.canStart({hasMarker = info.markerId ~= nil,
|
||||
working = ADFieldModel.isWorking(field) or ADFieldJobs.awaitingPlayer(id) ~= nil})
|
||||
working = self:fieldIsActive(id, field) or ADFieldJobs.awaitingPlayer(id) ~= nil})
|
||||
end
|
||||
|
||||
function SmartPickupFrame:fieldLevel(id)
|
||||
@@ -181,6 +189,7 @@ function SmartPickupFrame:fieldLevel(id)
|
||||
if field == nil or info == nil then return "stopped" end
|
||||
local reason = type(field.reason) == "table" and field.reason.key or nil
|
||||
return ADFieldView.fieldStatus({hasMarker = info.markerId ~= nil, working = ADFieldModel.isWorking(field),
|
||||
paused = ADFieldJobs.state.paused == true, resumed = ADFieldJobs.isFieldResumed(id),
|
||||
awaiting = ADFieldJobs.awaitingPlayer(id) ~= nil,
|
||||
startRequested = ADFieldJobs.isStartRequested ~= nil and ADFieldJobs.isStartRequested(id) or false,
|
||||
reasonKey = reason})
|
||||
@@ -190,7 +199,7 @@ end
|
||||
function SmartPickupFrame:fieldActionText(id, forButton)
|
||||
local field = ADFieldJobs.getField(id)
|
||||
if ADFieldJobs.awaitingPlayer(id) ~= nil then return self.i18n:getText("spu_field_button_takeover") end
|
||||
local isWorking = field ~= nil and ADFieldModel.isWorking(field)
|
||||
local isWorking = self:fieldIsActive(id, field)
|
||||
if forButton then return self.i18n:getText(isWorking and "spu_field_button_stop" or "spu_field_button_start") end
|
||||
return self.i18n:getText(isWorking and "spu_flowList_stop" or "spu_flowList_start")
|
||||
end
|
||||
@@ -340,7 +349,7 @@ function SmartPickupFrame:refreshFieldRows(adEnv)
|
||||
if row ~= nil then
|
||||
SmartPickupFrame.setCells(entry.cells, self:fieldCells(row))
|
||||
total = total + 1
|
||||
if ADFieldModel.isWorking(row.field) then working = working + 1 end
|
||||
if self:fieldIsActive(entry.id, row.field) then working = working + 1 end
|
||||
end
|
||||
end
|
||||
self:refreshFieldLevels()
|
||||
@@ -386,9 +395,16 @@ function SmartPickupFrame:toggleField(id)
|
||||
ADFieldJobs.requestTakeover(id)
|
||||
frame.statusOverride = string.format(frame.i18n:getText("spu_field_takeoverRequested"), id)
|
||||
frame.statusOverrideTicks = SmartPickupFrame.STATUS_OVERRIDE_TICKS
|
||||
elseif ADFieldModel.isWorking(field) then
|
||||
elseif frame:fieldIsActive(id, field) then
|
||||
ADFieldJobs.stopField(frame.getAdEnv(), id)
|
||||
ADFieldJobs.setFieldResumed(id, false)
|
||||
elseif ADFieldJobs.state.paused and ADFieldModel.isWorking(field) then
|
||||
-- Stop alt-pause: kun denne mark genoptages fra sit trin (de andre venter på Start alle)
|
||||
ADFieldJobs.setFieldResumed(id, true)
|
||||
frame.statusOverride = string.format(frame.i18n:getText("spu_field_startRequested"), id)
|
||||
frame.statusOverrideTicks = SmartPickupFrame.STATUS_OVERRIDE_TICKS
|
||||
else
|
||||
if ADFieldJobs.state.paused then ADFieldJobs.setFieldResumed(id, true) end
|
||||
local decision = ADFieldJobs.lastDecision[id]
|
||||
if decision == nil or decision.care == nil then
|
||||
ADFieldJobs.forceReady(id)
|
||||
|
||||
Reference in New Issue
Block a user