<template>
  <div class="d-flex justify-content-center">
    <div class="col-8">
      <form name="editForm" novalidate @submit.prevent="save()">
        <h2 id="smartbookingApp.utenteApp.home.createOrEditLabel" data-cy="UtenteAppCreateUpdateHeading">
          {{ t$('smartbookingApp.utenteApp.home.createOrEditLabel') }}
        </h2>
        <div>
          <div class="mb-3" v-if="utenteApp.id">
            <label for="id">{{ t$('global.field.id') }}</label>
            <input type="text" class="form-control" id="id" name="id" v-model="utenteApp.id" readonly />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.username') }}</label>
            <input
              type="text"
              class="form-control"
              name="username"
              id="utente-app-username"
              data-cy="username"
              :class="{ valid: !v$.username.$invalid, invalid: v$.username.$invalid }"
              v-model="v$.username.$model"
              required
            />
            <div v-if="v$.username.$anyDirty && v$.username.$invalid">
              <small class="form-text text-danger" v-for="error of v$.username.$errors" :key="error.$uid">{{ error.$message }}</small>
            </div>
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.email') }}</label>
            <input
              type="text"
              class="form-control"
              name="email"
              id="utente-app-email"
              data-cy="email"
              :class="{ valid: !v$.email.$invalid, invalid: v$.email.$invalid }"
              v-model="v$.email.$model"
              required
            />
            <div v-if="v$.email.$anyDirty && v$.email.$invalid">
              <small class="form-text text-danger" v-for="error of v$.email.$errors" :key="error.$uid">{{ error.$message }}</small>
            </div>
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.telefono') }}</label>
            <input
              type="text"
              class="form-control"
              name="telefono"
              id="utente-app-telefono"
              data-cy="telefono"
              :class="{ valid: !v$.telefono.$invalid, invalid: v$.telefono.$invalid }"
              v-model="v$.telefono.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.ruolo') }}</label>
            <select
              class="form-control"
              name="ruolo"
              :class="{ valid: !v$.ruolo.$invalid, invalid: v$.ruolo.$invalid }"
              v-model="v$.ruolo.$model"
              id="utente-app-ruolo"
              data-cy="ruolo"
              required
            >
              <option v-for="ruolo in ruoloValues" :key="ruolo" :value="ruolo" :label="t$('smartbookingApp.Ruolo.' + ruolo)">
                {{ ruolo }}
              </option>
            </select>
            <div v-if="v$.ruolo.$anyDirty && v$.ruolo.$invalid">
              <small class="form-text text-danger" v-for="error of v$.ruolo.$errors" :key="error.$uid">{{ error.$message }}</small>
            </div>
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.attivo') }}</label>
            <input
              type="checkbox"
              class="form-check"
              name="attivo"
              id="utente-app-attivo"
              data-cy="attivo"
              :class="{ valid: !v$.attivo.$invalid, invalid: v$.attivo.$invalid }"
              v-model="v$.attivo.$model"
              required
            />
            <div v-if="v$.attivo.$anyDirty && v$.attivo.$invalid">
              <small class="form-text text-danger" v-for="error of v$.attivo.$errors" :key="error.$uid">{{ error.$message }}</small>
            </div>
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.nome') }}</label>
            <input
              type="text"
              class="form-control"
              name="nome"
              id="utente-app-nome"
              data-cy="nome"
              :class="{ valid: !v$.nome.$invalid, invalid: v$.nome.$invalid }"
              v-model="v$.nome.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.cognome') }}</label>
            <input
              type="text"
              class="form-control"
              name="cognome"
              id="utente-app-cognome"
              data-cy="cognome"
              :class="{ valid: !v$.cognome.$invalid, invalid: v$.cognome.$invalid }"
              v-model="v$.cognome.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.luogoNascita') }}</label>
            <input
              type="text"
              class="form-control"
              name="luogoNascita"
              id="utente-app-luogoNascita"
              data-cy="luogoNascita"
              :class="{ valid: !v$.luogoNascita.$invalid, invalid: v$.luogoNascita.$invalid }"
              v-model="v$.luogoNascita.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.dataNascita') }}</label>
            <input
              type="text"
              class="form-control"
              name="dataNascita"
              id="utente-app-dataNascita"
              data-cy="dataNascita"
              :class="{ valid: !v$.dataNascita.$invalid, invalid: v$.dataNascita.$invalid }"
              v-model="v$.dataNascita.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.residente') }}</label>
            <input
              type="text"
              class="form-control"
              name="residente"
              id="utente-app-residente"
              data-cy="residente"
              :class="{ valid: !v$.residente.$invalid, invalid: v$.residente.$invalid }"
              v-model="v$.residente.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.societa') }}</label>
            <input
              type="text"
              class="form-control"
              name="societa"
              id="utente-app-societa"
              data-cy="societa"
              :class="{ valid: !v$.societa.$invalid, invalid: v$.societa.$invalid }"
              v-model="v$.societa.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.sede') }}</label>
            <input
              type="text"
              class="form-control"
              name="sede"
              id="utente-app-sede"
              data-cy="sede"
              :class="{ valid: !v$.sede.$invalid, invalid: v$.sede.$invalid }"
              v-model="v$.sede.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.codfiscale') }}</label>
            <input
              type="text"
              class="form-control"
              name="codfiscale"
              id="utente-app-codfiscale"
              data-cy="codfiscale"
              :class="{ valid: !v$.codfiscale.$invalid, invalid: v$.codfiscale.$invalid }"
              v-model="v$.codfiscale.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.telefonoSoc') }}</label>
            <input
              type="text"
              class="form-control"
              name="telefonoSoc"
              id="utente-app-telefonoSoc"
              data-cy="telefonoSoc"
              :class="{ valid: !v$.telefonoSoc.$invalid, invalid: v$.telefonoSoc.$invalid }"
              v-model="v$.telefonoSoc.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.emailSoc') }}</label>
            <input
              type="text"
              class="form-control"
              name="emailSoc"
              id="utente-app-emailSoc"
              data-cy="emailSoc"
              :class="{ valid: !v$.emailSoc.$invalid, invalid: v$.emailSoc.$invalid }"
              v-model="v$.emailSoc.$model"
            />
          </div>
          <div class="mb-3">
            <label class="form-control-label" for="utente-app">{{ t$('smartbookingApp.utenteApp.internalUser') }}</label>
            <select
              class="form-control"
              id="utente-app-internalUser"
              data-cy="internalUser"
              name="internalUser"
              v-model="utenteApp.internalUser"
            >
              <option :value="null"></option>
              <option
                :value="utenteApp.internalUser && userOption.id === utenteApp.internalUser.id ? utenteApp.internalUser : userOption"
                v-for="userOption in users"
                :key="userOption.id"
              >
                {{ userOption.login }}
              </option>
            </select>
          </div>
        </div>
        <div>
          <button type="button" id="cancel-save" data-cy="entityCreateCancelButton" class="btn btn-secondary" @click="previousState()">
            <font-awesome-icon icon="ban"></font-awesome-icon>&nbsp;<span>{{ t$('entity.action.cancel') }}</span>
          </button>
          <button
            type="submit"
            id="save-entity"
            data-cy="entityCreateSaveButton"
            :disabled="v$.$invalid || isSaving"
            class="btn btn-primary"
          >
            <font-awesome-icon icon="save"></font-awesome-icon>&nbsp;<span>{{ t$('entity.action.save') }}</span>
          </button>
        </div>
      </form>
    </div>
  </div>
</template>
<script lang="ts" src="./utente-app-update.component.ts"></script>
