All files / app/component/ext ext.component.html

40.69% Statements 70/172
47.61% Branches 20/42
0% Functions 0/11
69.35% Lines 43/62

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 962x 2x   1x 2x   2x         1x 1x   2x 1x   1x   2x     2x 2x   1x 1x 2x 2x 1x   2x 2x 1x   2x   1x   1x     1x   1x   1x 2x 1x     2x 1x   1x   1x 1x 1x 1x   1x     2x                         1x   1x     1x 1x               2x        
<div class="link" [class.remote]="!local">
  @if (preview | async; as p) {
    <a [routerLink]="['/tag', extLink]" [appTitle]="ext">{{ p.name || '#' + p.tag }}</a>
  } @else {
    <a [routerLink]="['/tag', extLink]" [appTitle]="ext">{{ ext.name || template?.name || plugin?.name || '#' + ext.tag }}</a>
  }
  @if (ext.name) {
    <span class="host">({{ qualifiedTag }})</span>
  } @else if (ext.origin) {
    <span class="host">({{ ext.origin }})</span>
  }
</div>
<div class="stack">
  <div class="info">
    @if (ext.modified) {
      <span [title]="ext.modified.toISO()" i18n>modified {{ ext.modified.toRelative() }}</span>
    } @else {
      <span i18n>not found</span>
    }
    @for (icon of icons; track icon) {
      <span class="icon" (click)="bookmarks.toggleTag(icon.tag)" [title]="icon.tag">{{ icon.config!.view! }}</span>
    }
    @if (!local) {
      &nbsp;<span i18n>on</span>&nbsp;<a [routerLink]="['/tag', ext.origin]">{{ ext.origin || 'default' }}</a>
    }
  </div>
  <div class="actions">
    @if (!ext.upload) {
      @if (parent) {
        <a [routerLink]="['/tags', parent]" i18n>parent</a>
      }
      <a [routerLink]="['/tags', extLink]" i18n>tags</a>
      @if (!local) {
        <a class="fake-link" (click)="copy()" i18n>copy</a>
      }
      @if (local && writeAccess) {
        @if (useEditPage) {
          <a [routerLink]="['/ext/', ext.tag]" i18n>edit</a>
        } @else {
          <a class="fake-link" (click)="editing = !editing" i18n>@if (editForm.dirty) {*edit*} @else {edit}</a>
        }
      } @else if (useEditPage) {
        <a [routerLink]="['/ext/', ext.tag]" i18n>source</a>
      } @else {
        <a class="fake-link" (click)="viewSource = !viewSource" i18n>source</a>
      }
      <a class="fake-link" (click)="download()" i18n>download</a>
      @if (store.account.mod || writeAccess) {
        <app-confirm-action #action [action]="delete$" i18n>delete</app-confirm-action>
      }
    }
    @if (store.account.user && ext.upload) {
      <a class="fake-link" (click)="upload()" i18n>upload</a>
      @if (parent) {
        <a [routerLink]="['/tags', parent]" i18n>parent</a>
      }
      <a [routerLink]="['/tags', ext.tag]" i18n>tags</a>
      <a class="fake-link" (click)="editing = !editing" i18n>@if (editForm.dirty) {*edit*} @else {edit}</a>
      <a class="fake-link" (click)="download()" i18n>download</a>
      <app-confirm-action #action [action]="delete$" i18n>delete</app-confirm-action>
    }
  </div>
</div>
 
@if (editing) {
  <form class="form" [formGroup]="editForm" (ngSubmit)="save()">
 
    <app-ext-form #extForm [group]="editForm"></app-ext-form>
 
    @for (e of serverError; track e) {
      <span><!-- Unexpected Error --></span>
      <div class="error">{{ e }}</div>
    }
 
    <span><!-- Buttons --></span>
    <span class="buttons right">
    @if (overwritten) {
      <div class="overwrite warning" i18n-title title="Will drop all unknown configs.">
        <input id="overwrite" type="checkbox" [checked]="overwrite" (input)="overwrite = !overwrite">
        <label for="overwrite" i18n>Overwrite</label>
      </div>
    }
    <button type="submit" [disabled]="submitted && !editForm.valid" i18n>save</button>
    <button type="button" (click)="editing = false" i18n>cancel</button>
  </span>
  </form>
} @else if (viewSource) {
  <form class="form" [formGroup]="editForm">
    <app-ext-form #extForm [group]="editForm"></app-ext-form>
  </form>
} @else {
  @for (e of serverError; track e) {
    <div class="error">{{ e }}</div>
  }
}