<div ng-if="service.ServiceMounts" id="service-mounts">
  <rd-widget>
    <rd-widget-header icon="list" feather-icon="true" title-text="Mounts">
      <div class="nopadding" authorization="DockerServiceUpdate">
        <a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating ||addMount(service)" ng-disabled="isUpdating">
          <pr-icon icon="'plus'" feather="true"></pr-icon> mount
        </a>
      </div>
    </rd-widget-header>
    <rd-widget-body ng-if="service.ServiceMounts.length === 0">
      <p>There are no mounts for this service.</p>
    </rd-widget-body>
    <rd-widget-body ng-if="service.ServiceMounts.length > 0" classes="no-padding">
      <table class="table">
        <thead>
          <tr>
            <th ng-if="isAdmin || allowBindMounts">Type</th>
            <th>Source</th>
            <th>Target</th>
            <th authorization="DockerServiceUpdate">Read only</th>
            <th authorization="DockerServiceUpdate">Actions</th>
          </tr>
        </thead>
        <tbody>
          <tr ng-repeat="mount in service.ServiceMounts">
            <td ng-if="isAdmin || allowBindMounts">
              <select
                name="mountType"
                class="form-control"
                ng-model="mount.Type"
                ng-change="onChangeMountType(service, mount)"
                ng-disabled="isUpdating"
                disable-authorization="DockerServiceUpdate"
              >
                <option value="volume">Volume</option>
                <option value="bind">Bind</option>
              </select>
            </td>
            <td>
              <select
                class="form-control"
                ng-model="mount.Source"
                ng-change="updateMount(service, mount)"
                ng-options="vol.Id as ((vol.Id|truncate:30) + ' - ' + (vol.Driver|truncate:30))  for vol in availableVolumes"
                ng-if="mount.Type === 'volume'"
                disable-authorization="DockerServiceUpdate"
              >
                <option selected disabled hidden value="">Select a volume</option>
              </select>
              <input
                type="text"
                class="form-control"
                name=""
                ng-model="mount.Source"
                placeholder="e.g. /tmp/portainer/data"
                ng-change="updateMount(service, mount)"
                ng-disabled="isUpdating || (!isAdmin && !allowBindMounts && mount.Type === 'bind')"
                ng-if="mount.Type === 'bind'"
              />
              <div class="col-sm-12 small text-warning" ng-show="!mount.Source">
                <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Source is required.
              </div>
            </td>
            <td>
              <input
                type="text"
                class="form-control"
                ng-model="mount.Target"
                placeholder="e.g. /tmp/portainer/data"
                ng-change="updateMount(service, mount)"
                ng-disabled="isUpdating"
                disable-authorization="DockerServiceUpdate"
              />
              <div class="col-sm-12 small text-warning" ng-show="!mount.Target">
                <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Target is required.
              </div>
            </td>
            <td authorization="DockerServiceUpdate">
              <input type="checkbox" class="form-control" ng-model="mount.ReadOnly" ng-change="updateMount(service, mount)" ng-disabled="isUpdating" />
            </td>
            <td authorization="DockerServiceUpdate">
              <span class="input-group-btn">
                <button class="btn btn-dangerlight" type="button" ng-click="removeMount(service, $index)" ng-disabled="isUpdating">
                  <pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
                </button>
              </span>
            </td>
          </tr>
        </tbody>
      </table>
    </rd-widget-body>
    <rd-widget-footer authorization="DockerServiceUpdate">
      <div class="btn-toolbar" role="toolbar">
        <div class="btn-group" role="group">
          <button type="button" class="btn btn-primary btn-sm" ng-disabled="!mountsAreValid() || !hasChanges(service, ['ServiceMounts'])" ng-click="updateService(service)">
            Apply changes
          </button>
          <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            <span class="caret"></span>
          </button>
          <ul class="dropdown-menu">
            <li><a ng-click="cancelChanges(service, ['ServiceMounts'])">Reset changes</a></li>
            <li><a ng-click="cancelChanges(service)">Reset all changes</a></li>
          </ul>
        </div>
      </div>
    </rd-widget-footer>
  </rd-widget>
</div>
