检查活动状态按钮前后的按钮

Check buttons before and after active status button

我需要检查之前和之后的活动状态,以便为已经执行的操作添加一个标记。

目前,动作以按钮的形式列出,它检查以查看作业的活动状态,然后获取活动的动作,所有其他动作都列出但不可点击。

<div class="card card">
  <div class="card-title card-white-title">Booking Actions</div>
  <div class="card-body">
    {foreach from=$booking_actions item=action}
      <button data-price="{$booking.est_price}" value="{$booking.reference}" id="{$action.integra_status}" class="btn btn-booking-control {$action.integra_action}{if $action.enabled == false} disabled action-disabled-btn{else} btn-success{/if}{if $action.show_on_portal == 'NO'} hidden{/if}" {if $action.enabled != false}onclick="javascript:performButtonAction('{$action.integra_action}', '{$action.integra_status}', '{$booking.reference}', '{$action.stop_ref}',this)"{/if}>
        {if $action.enabled == true}
          {$action.description} {$action.applies_to_desc}
            {else}
              {$action.description} {$action.applies_to_desc}  <div class="pull-right"><div class="fas fa-check"/></div>
           {/if}
        </button>
     {/foreach}
   </div>
</div>

我目前得到的是完整的操作列表,可点击的活动操作,所有其他操作都有勾号。

我想让当前活动之前的动作有勾号,之后的动作没有勾号。 我知道我需要检查它的位置,我需要像 {while $action.enabled != true} 这样的东西,但我不确定我需要在哪里以及如何最好地让它工作...... .

current outcome

wanted outcome

您可以在 Smarty 中分配和重新分配变量。在您的情况下,您可以最初将 $showTick 变量设置为 true,然后在遇到第一个启用的操作时立即将其设置为 false。这是一个最小的工作示例:

{$showTick=true}
{foreach $actions as $action}
  {if $action.enabled}
    {$showTick=false}
  {/if}
  <button class="btn {if $action.enabled}btn-success{else}disabled{/if}">
    {$action.description}
    {if $showTick}
      ✓
    {/if}
  </button>
{/foreach}