<form #settingsForm="ngForm" class="form-horizontal">
  <div class="card mb-4">
    <h5 class="card-header">
      {{Name}}
      <ng-container *ngIf="changed">*</ng-container>
    </h5>
    <div class="card-body">
      <div [hidden]="!error" class="alert alert-danger" role="alert"><strong>Error: </strong>{{error}}</div>


      <div class="form-group row">
        <label class="col-md-2 control-label" for="Type" i18n>Type</label>
        <div class="col-md-10">
          <select name="Type" id="Type"
                  class="form-control" [(ngModel)]="settings.type" required>
            <option *ngFor="let type of types" [ngValue]="type.key">{{type.value}}
            </option>
          </select>
          <small *ngIf="settings.type == DatabaseType.mysql"
                 class="form-text text-muted" i18n>Install manually mysql node module to use mysql (npm install mysql)
          </small>
        </div>
      </div>

      <ng-container *ngIf="settings.type == DatabaseType.mysql">

        <div class="form-group row">
          <label class="col-md-2 control-label" for="host" i18n>Host</label>
          <div class="col-md-10">
            <input type="text" class="form-control" placeholder="localhost"
                   [(ngModel)]="settings.mysql.host" id="host" name="host" required>
          </div>
        </div>
        <div class="form-group row">
          <label class="col-md-2 control-label" for="database" i18n>Database</label>
          <div class="col-md-10">
            <input type="text" class="form-control" placeholder="pigallery2"
                   [(ngModel)]="settings.mysql.database" id="database" name="database" required>
          </div>
        </div>
        <div class="form-group row">
          <label class="col-md-2 control-label" for="username" i18n>Username</label>
          <div class="col-md-10">
            <input type="text" class="form-control" placeholder="username"
                   [(ngModel)]="settings.mysql.username" id="username" name="username" required>
          </div>
        </div>
        <div class="form-group row">
          <label class="col-md-2 control-label" for="password" i18n>Password</label>
          <div class="col-md-10">
            <input type="password" class="form-control" placeholder="password"
                   [(ngModel)]="settings.mysql.password" id="password" name="password" required>
          </div>
        </div>
      </ng-container>
      <ng-container *ngIf="settings.type == DatabaseType.sqlite">
        <div class="form-group row">
          <label class="col-md-2 control-label" for="storage" i18n>Storage file</label>
          <div class="col-md-10">
            <input type="text" class="form-control" placeholder="sqlite.db"
                   [(ngModel)]="settings.sqlite.storage" id="storage" name="storage" required>
          </div>
        </div>
      </ng-container>
      <ng-container *ngIf="settings.type == DatabaseType.memory">
        <div class="form-group row">
          <label class="col-md-2 control-label" for="usersFile" i18n>User's file</label>
          <div class="col-md-10">
            <input type="text" class="form-control" placeholder="users.db"
                   [(ngModel)]="settings.memory.usersFile" id="usersFile" name="usersFile" required>
          </div>
        </div>
      </ng-container>

      <button class="btn btn-success float-right"
              [disabled]="!settingsForm.form.valid || !changed || inProgress"
              (click)="save()" i18n>Save
      </button>
      <button class="btn btn-secondary float-right"
              [disabled]=" !changed || inProgress"
              (click)="reset()" i18n>Reset
      </button>
    </div>
  </div>
</form>