<!--
Controller: CaseTypeCtrl
Required vars: activitySet
-->
<table>
  <thead>
  <tr>
    <th></th>
    <th>{{:: ts('Activity') }}</th>
    <th>{{:: ts('Status') }}</th>
    <th>{{:: ts('Reference') }}</th>
    <th>{{:: ts('Offset') }}</th>
    <th>{{:: ts('Select') }}</th>
    <th>{{:: ts('Default assignee') }}</th>
    <th></th>
  </tr>
  </thead>

  <tbody ui-sortable ng-model="activitySet.activityTypes">
  <tr ng-repeat="activity in activitySet.activityTypes">
    <td>
      <i class="crm-i fa-arrows grip-n-drag" aria-hidden="true"></i>
    </td>
    <td>
      <i class="crm-i {{activityTypes[activity.name].icon}}" aria-hidden="true"></i>
      {{activity.label}}
    </td>
    <td>
      <select
        ui-jq="select2"
        ui-options="{dropdownAutoWidth: true}"
        ng-model="activity.status"
        ng-options="actStatus.name as actStatus.label for actStatus in activityStatuses|orderBy:'label'"
        >
        <option value=""></option>
      </select>
    </td>
    <td>
      <select
        ui-jq="select2"
        ui-options="{dropdownAutoWidth: true}"
        ng-model="activity.reference_activity"
        ng-options="activityType.name as activityType.label for activityType in caseType.definition.timelineActivityTypes"
        >
        <option value="">-- Case Start --</option>
      </select>
    </td>
    <td>
      <input
        class="number crm-form-text"
        type="text"
        ng-pattern="/^-?[0-9]*$/"
        ng-model="activity.reference_offset"
        >
    </td>
    <td>
      <select
        ui-jq="select2"
        ui-options="{dropdownAutoWidth: true}"
        ng-model="activity.reference_select"
        ng-options="key as value for (key,value) in {newest: ts('Newest'), oldest: ts('Oldest')}"
        >
      </select>
    </td>
    <td>
      <select
        ui-jq="select2"
        ui-options="{dropdownAutoWidth: true}"
        ng-model="activity.default_assignee_type"
        ng-options="option.value as option.label for option in defaultAssigneeTypes"
        ng-change="clearActivityDefaultAssigneeValues(activity)"
      ></select>

      <p ng-if="activity.default_assignee_type === defaultAssigneeTypeValues.BY_RELATIONSHIP">
        <select
          ui-jq="select2"
          ui-options="{dropdownAutoWidth: true}"
          ng-model="activity.default_assignee_relationship"
          ng-options="option.id as option.text for option in relationshipTypeOptions"
          required
        ></select>
      </p>

      <p ng-if="activity.default_assignee_type === defaultAssigneeTypeValues.SPECIFIC_CONTACT">
        <input
          type="text"
          ng-model="activity.default_assignee_contact"
          placeholder="- Select contact -"
          crm-entityref="{ entity: 'Contact' }"
          data-create-links="true"
          required />
      </p>
    </td>
    <td>
      <a class="crm-hover-button"
         crm-icon="fa-trash"
         ng-show="isActivityRemovable(activitySet, activity)"
         ng-click="removeItem(activitySet.activityTypes, activity)"
         title="{{:: ts('Remove') }}">
      </a>
    </td>
  </tr>
  </tbody>

  <tfoot>
  <tr class="addRow">
    <td colspan="8">
      <span crm-add-name=""
           crm-options="activityTypeOptions"
           crm-var="newActivity"
           crm-on-add="addActivity(activitySet, newActivity)"
           placeholder="{{:: ts('Add activity') }}"
      ></span>
    </td>
  </tr>
  </tfoot>
</table>
