mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-20 21:33:15 -07:00
fix: Fix various styling issues (#4935)
This commit is contained in:
parent
f4af21bc92
commit
90b934a369
19 changed files with 330 additions and 341 deletions
|
@ -5,13 +5,13 @@
|
||||||
<!-- <div class="row"> -->
|
<!-- <div class="row"> -->
|
||||||
<div class="row justify-content-md-center top-spacing">
|
<div class="row justify-content-md-center top-spacing">
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group" role="group">
|
||||||
<button type="button" (click)="switchFilter(RequestFilter.All)" [attr.color]="currentFilter === RequestFilter.All ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.All ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.AllRequests' | translate}}</button>
|
<button type="button" (click)="switchFilter(RequestFilter.All)" [attr.color]="currentFilter === RequestFilter.All ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.All ? 'mat-accent' : 'mat-primary'" mat-raised-button class="grow">{{'Requests.AllRequests' | translate}}</button>
|
||||||
<button type="button" (click)="switchFilter(RequestFilter.Pending)" [attr.color]="currentFilter === RequestFilter.Pending ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Pending ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.PendingRequests' | translate}}</button>
|
<button type="button" (click)="switchFilter(RequestFilter.Pending)" [attr.color]="currentFilter === RequestFilter.Pending ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Pending ? 'mat-accent' : 'mat-primary'" mat-raised-button class="grow">{{'Requests.PendingRequests' | translate}}</button>
|
||||||
<button type="button" (click)="switchFilter(RequestFilter.Processing)" [attr.color]="currentFilter === RequestFilter.Processing ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Processing ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
<button type="button" (click)="switchFilter(RequestFilter.Processing)" [attr.color]="currentFilter === RequestFilter.Processing ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Processing ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
||||||
class="btn grow">{{'Requests.ProcessingRequests' | translate}}</button>
|
class="grow">{{'Requests.ProcessingRequests' | translate}}</button>
|
||||||
<button type="button" (click)="switchFilter(RequestFilter.Available)" [attr.color]="currentFilter === RequestFilter.Available ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Available ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
<button type="button" (click)="switchFilter(RequestFilter.Available)" [attr.color]="currentFilter === RequestFilter.Available ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Available ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
||||||
class="btn grow">{{'Requests.AvailableRequests' | translate}}</button>
|
class="grow">{{'Requests.AvailableRequests' | translate}}</button>
|
||||||
<button type="button" (click)="switchFilter(RequestFilter.Denied)" [attr.color]="currentFilter === RequestFilter.Denied ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Denied ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.DeniedRequests' | translate}}</button>
|
<button type="button" (click)="switchFilter(RequestFilter.Denied)" [attr.color]="currentFilter === RequestFilter.Denied ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Denied ? 'mat-accent' : 'mat-primary'" mat-raised-button class="grow">{{'Requests.DeniedRequests' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -69,4 +69,4 @@
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<mat-paginator [length]="resultsLength" [pageSize]="gridCount"></mat-paginator>
|
<mat-paginator [length]="resultsLength" [pageSize]="gridCount"></mat-paginator>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
<!-- <div class="row"> -->
|
<!-- <div class="row"> -->
|
||||||
<div class="row justify-content-md-center top-spacing">
|
<div class="row justify-content-md-center top-spacing">
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group" role="group">
|
||||||
<button type="button" id="filterAll" (click)="switchFilter(RequestFilter.All)" [attr.color]="currentFilter === RequestFilter.All ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.All ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.AllRequests' | translate}}</button>
|
<button type="button" id="filterAll" (click)="switchFilter(RequestFilter.All)" [attr.color]="currentFilter === RequestFilter.All ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.All ? 'mat-accent' : 'mat-primary'" mat-raised-button class="grow">{{'Requests.AllRequests' | translate}}</button>
|
||||||
<button type="button" id="filterPending" (click)="switchFilter(RequestFilter.Pending)" [attr.color]="currentFilter === RequestFilter.Pending ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Pending ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.PendingRequests' | translate}}</button>
|
<button type="button" id="filterPending" (click)="switchFilter(RequestFilter.Pending)" [attr.color]="currentFilter === RequestFilter.Pending ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Pending ? 'mat-accent' : 'mat-primary'" mat-raised-button class="grow">{{'Requests.PendingRequests' | translate}}</button>
|
||||||
<button type="button" id="filterProcessing" (click)="switchFilter(RequestFilter.Processing)" [attr.color]="currentFilter === RequestFilter.Processing ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Processing ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
<button type="button" id="filterProcessing" (click)="switchFilter(RequestFilter.Processing)" [attr.color]="currentFilter === RequestFilter.Processing ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Processing ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
||||||
class="btn grow">{{'Requests.ProcessingRequests' | translate}}</button>
|
class="grow">{{'Requests.ProcessingRequests' | translate}}</button>
|
||||||
<button type="button" id="filterAvailable" (click)="switchFilter(RequestFilter.Available)" [attr.color]="currentFilter === RequestFilter.Available ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Available ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
<button type="button" id="filterAvailable" (click)="switchFilter(RequestFilter.Available)" [attr.color]="currentFilter === RequestFilter.Available ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Available ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
||||||
class="btn grow">{{'Requests.AvailableRequests' | translate}}</button>
|
class="grow">{{'Requests.AvailableRequests' | translate}}</button>
|
||||||
<button type="button" id="filterDenied" (click)="switchFilter(RequestFilter.Denied)" [attr.color]="currentFilter === RequestFilter.Denied ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Denied ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.DeniedRequests' | translate}}</button>
|
<button type="button" id="filterDenied" (click)="switchFilter(RequestFilter.Denied)" [attr.color]="currentFilter === RequestFilter.Denied ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Denied ? 'mat-accent' : 'mat-primary'" mat-raised-button class="grow">{{'Requests.DeniedRequests' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
|
|
||||||
<div class="row justify-content-md-center top-spacing">
|
<div class="row justify-content-md-center top-spacing">
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group" role="group">
|
||||||
<button type="button" id="filterAll" (click)="switchFilter(RequestFilter.All)" [attr.color]="currentFilter === RequestFilter.All ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.All ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.AllRequests' | translate}}</button>
|
<button type="button" id="filterAll" (click)="switchFilter(RequestFilter.All)" [attr.color]="currentFilter === RequestFilter.All ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.All ? 'mat-accent' : 'mat-primary'" mat-raised-button class="grow">{{'Requests.AllRequests' | translate}}</button>
|
||||||
<button type="button" id="filterPending" (click)="switchFilter(RequestFilter.Pending)" [attr.color]="currentFilter === RequestFilter.Pending ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Pending ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.PendingRequests' | translate}}</button>
|
<button type="button" id="filterPending" (click)="switchFilter(RequestFilter.Pending)" [attr.color]="currentFilter === RequestFilter.Pending ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Pending ? 'mat-accent' : 'mat-primary'" mat-raised-button class="grow">{{'Requests.PendingRequests' | translate}}</button>
|
||||||
<button type="button" id="filterProcessing" (click)="switchFilter(RequestFilter.Processing)" [attr.color]="currentFilter === RequestFilter.Processing ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Processing ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
<button type="button" id="filterProcessing" (click)="switchFilter(RequestFilter.Processing)" [attr.color]="currentFilter === RequestFilter.Processing ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Processing ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
||||||
class="btn grow">{{'Requests.ProcessingRequests' | translate}}</button>
|
class="grow">{{'Requests.ProcessingRequests' | translate}}</button>
|
||||||
<button type="button" id="filterAvailable" (click)="switchFilter(RequestFilter.Available)" [attr.color]="currentFilter === RequestFilter.Available ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Available ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
<button type="button" id="filterAvailable" (click)="switchFilter(RequestFilter.Available)" [attr.color]="currentFilter === RequestFilter.Available ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Available ? 'mat-accent' : 'mat-primary'" mat-raised-button
|
||||||
class="btn grow">{{'Requests.AvailableRequests' | translate}}</button>
|
class="grow">{{'Requests.AvailableRequests' | translate}}</button>
|
||||||
<button type="button" id="filterDenied" (click)="switchFilter(RequestFilter.Denied)" [attr.color]="currentFilter === RequestFilter.Denied ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Denied ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.DeniedRequests' | translate}}</button>
|
<button type="button" id="filterDenied" (click)="switchFilter(RequestFilter.Denied)" [attr.color]="currentFilter === RequestFilter.Denied ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Denied ? 'mat-accent' : 'mat-primary'" mat-raised-button class="grow">{{'Requests.DeniedRequests' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
<ng-container matColumnDef="actions">
|
<ng-container matColumnDef="actions">
|
||||||
<th mat-header-cell *matHeaderCellDef> </th>
|
<th mat-header-cell *matHeaderCellDef> </th>
|
||||||
<td mat-cell *matCellDef="let element">
|
<td mat-cell *matCellDef="let element">
|
||||||
<a id="detailsButton{{element.id}}" mat-raised-button color="accent" [routerLink]="'/details/tv/' + element.parentRequest.externalProviderId">{{'Requests.Details' | translate}}</a>
|
<a id="detailsButton{{element.id}}" mat-raised-button color="accent" [routerLink]="'/details/tv/' + element.parentRequest.externalProviderId">{{'Requests.Details' | translate}}</a>
|
||||||
<button id="optionsButton{{element.id}}" mat-raised-button color="warn" (click)="openOptions(element)" *ngIf="isAdmin">{{'Requests.Options' | translate}}</button>
|
<button id="optionsButton{{element.id}}" mat-raised-button color="warn" (click)="openOptions(element)" *ngIf="isAdmin">{{'Requests.Options' | translate}}</button>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
|
@ -2,26 +2,35 @@
|
||||||
<settings-menu></settings-menu>
|
<settings-menu></settings-menu>
|
||||||
|
|
||||||
<div class="small-middle-container">
|
<div class="small-middle-container">
|
||||||
<table class="table table-striped table-hover table-responsive table-condensed">
|
<table mat-table [dataSource]="vm">
|
||||||
<thead>
|
|
||||||
<tr>
|
<ng-container matColumnDef="title">
|
||||||
<td>Title</td>
|
<th mat-header-cell *matHeaderCellDef>Title</th>
|
||||||
<td>Type</td>
|
<td mat-cell *matCellDef="let v">{{v.title}}</td>
|
||||||
<td>Retry Count</td>
|
</ng-container>
|
||||||
<td>Error Description</td>
|
|
||||||
<td>Delete</td>
|
<ng-container matColumnDef="type">
|
||||||
</tr>
|
<th mat-header-cell *matHeaderCellDef>Type</th>
|
||||||
</thead>
|
<td mat-cell *matCellDef="let v">{{RequestType[v.type] | humanize}}</td>
|
||||||
<tbody>
|
</ng-container>
|
||||||
<tr *ngFor="let v of vm">
|
|
||||||
<td class="vcenter">
|
<ng-container matColumnDef="retryCount">
|
||||||
{{v.title}}
|
<th mat-header-cell *matHeaderCellDef>Retry Count</th>
|
||||||
</td>
|
<td mat-cell *matCellDef="let v">{{v.retryCount}}</td>
|
||||||
<td>{{RequestType[v.type] | humanize}}</td>
|
</ng-container>
|
||||||
<td class="vcenter">{{v.retryCount}}</td>
|
|
||||||
<td class="vcenter"> <i [pTooltip]="v.error" class="fas fa-info-circle"></i></td>
|
<ng-container matColumnDef="errorDescription">
|
||||||
<td class="vcenter"><button type="button" class="mat-focus-indicator mat-flat-button mat-button-base mat-warn" (click)="remove(v)">Remove</button></td>
|
<th mat-header-cell *matHeaderCellDef>Error Description</th>
|
||||||
</tr>
|
<td mat-cell *matCellDef="let v"><i [pTooltip]="v.error" class="fas fa-info-circle"></i></td>
|
||||||
</tbody>
|
</ng-container>
|
||||||
</table>
|
|
||||||
|
<ng-container matColumnDef="deleteBtn">
|
||||||
|
<th mat-header-cell *matHeaderCellDef>Delete</th>
|
||||||
|
<td mat-cell *matCellDef="let v"><button mat-raised-button color="warn" (click)="remove(v)">Remove</button></td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<tr mat-header-row *matHeaderRowDef="columnsToDisplay"></tr>
|
||||||
|
<tr mat-row *matRowDef="let myRowData; columns: columnsToDisplay"></tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -8,6 +8,7 @@ import { RequestRetryService } from "../../services";
|
||||||
})
|
})
|
||||||
export class FailedRequestsComponent implements OnInit {
|
export class FailedRequestsComponent implements OnInit {
|
||||||
|
|
||||||
|
public columnsToDisplay = ["title", "type", "retryCount", "errorDescription", "deleteBtn"];
|
||||||
public vm: IFailedRequestsViewModel[];
|
public vm: IFailedRequestsViewModel[];
|
||||||
public RequestType = RequestType;
|
public RequestType = RequestType;
|
||||||
|
|
||||||
|
|
|
@ -48,12 +48,11 @@
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div *ngIf="categories">
|
<div *ngIf="categories">
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<div class="col-md-12">
|
|
||||||
<label for="categoryToAdd" class="control-label">Add Category</label>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<input type="text" [(ngModel)]="categoryToAdd.value" class="form-control form-control-custom " id="categoryToAdd"
|
<mat-form-field appearance="outline">
|
||||||
name="categoryToAdd" value="{{categoryToAdd.value}}">
|
<mat-label>Add Category</mat-label>
|
||||||
|
<input matInput type="text" [(ngModel)]="categoryToAdd.value" id="categoryToAdd" name="categoryToAdd" value="{{categoryToAdd.value}}">
|
||||||
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<button mat-raised-button (click)="addCategory()">Add</button>
|
<button mat-raised-button (click)="addCategory()">Add</button>
|
||||||
|
@ -74,4 +73,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -6,83 +6,83 @@
|
||||||
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
||||||
<small>Changes require a restart.</small><p>
|
<small>Changes require a restart.</small><p>
|
||||||
<small>You can generate valid CRON Expressions here: <a href="http://www.cronmaker.com/" target="_blank">https://www.cronmaker.com/</a></small>
|
<small>You can generate valid CRON Expressions here: <a href="http://www.cronmaker.com/" target="_blank">https://www.cronmaker.com/</a></small>
|
||||||
<div style="margin-top:1em;">
|
<div style="margin-top:1em;">
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="sonarrSync" class="control-mat-label">Sonarr Sync</mat-label>
|
<mat-label for="sonarrSync" class="control-mat-label">Sonarr Sync</mat-label>
|
||||||
<input matInput type="text" [ngClass]="{'form-error': form.get('sonarrSync').hasError('required')}" id="sonarrSync" name="sonarrSync" formControlName="sonarrSync">
|
<input matInput type="text" [ngClass]="{'form-error': form.get('sonarrSync').hasError('required')}" id="sonarrSync" name="sonarrSync" formControlName="sonarrSync">
|
||||||
<small *ngIf="form.get('sonarrSync').hasError('required')" class="error-text">The Sonarr Sync is required</small></mat-form-field>
|
<small *ngIf="form.get('sonarrSync').hasError('required')" class="error-text">The Sonarr Sync is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('sonarrSync')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('sonarrSync')?.value)">Test</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="sickRageSync" class="control-mat-label">SickRage Sync</mat-label>
|
<mat-label for="sickRageSync" class="control-mat-label">SickRage Sync</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('sonarrSync').hasError('required')}" id="sickRageSync" name="sickRageSync" formControlName="sickRageSync">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('sonarrSync').hasError('required')}" id="sickRageSync" name="sickRageSync" formControlName="sickRageSync">
|
||||||
<small *ngIf="form.get('sickRageSync').hasError('required')" class="error-text">The SickRage Sync is required</small></mat-form-field>
|
<small *ngIf="form.get('sickRageSync').hasError('required')" class="error-text">The SickRage Sync is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('sickRageSync')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('sickRageSync')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="radarrSync" class="control-mat-label">Radarr Sync</mat-label>
|
<mat-label for="radarrSync" class="control-mat-label">Radarr Sync</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('radarrSync').hasError('required')}" id="radarrSync" name="radarrSync" formControlName="radarrSync">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('radarrSync').hasError('required')}" id="radarrSync" name="radarrSync" formControlName="radarrSync">
|
||||||
<small *ngIf="form.get('radarrSync').hasError('required')" class="error-text">The Radarr Sync is required</small></mat-form-field>
|
<small *ngIf="form.get('radarrSync').hasError('required')" class="error-text">The Radarr Sync is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('radarrSync')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('radarrSync')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="lidarrArtistSync" class="control-mat-label">Lidarr Sync</mat-label>
|
<mat-label for="lidarrArtistSync" class="control-mat-label">Lidarr Sync</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('lidarrArtistSync').hasError('required')}" id="lidarrArtistSync" name="lidarrArtistSync" formControlName="lidarrArtistSync">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('lidarrArtistSync').hasError('required')}" id="lidarrArtistSync" name="lidarrArtistSync" formControlName="lidarrArtistSync">
|
||||||
<small *ngIf="form.get('lidarrArtistSync').hasError('required')" class="error-text">The Lidarr Sync is required</small></mat-form-field>
|
<small *ngIf="form.get('lidarrArtistSync').hasError('required')" class="error-text">The Lidarr Sync is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('lidarrArtistSync')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('lidarrArtistSync')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="couchPotatoSync" class="control-mat-label">CouchPotato Sync</mat-label>
|
<mat-label for="couchPotatoSync" class="control-mat-label">CouchPotato Sync</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('radarrSync').hasError('required')}" id="couchPotatoSync" name="couchPotatoSync" formControlName="couchPotatoSync">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('radarrSync').hasError('required')}" id="couchPotatoSync" name="couchPotatoSync" formControlName="couchPotatoSync">
|
||||||
<small *ngIf="form.get('couchPotatoSync').hasError('required')" class="error-text">The CouchPotato Sync is required</small></mat-form-field>
|
<small *ngIf="form.get('couchPotatoSync').hasError('required')" class="error-text">The CouchPotato Sync is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('couchPotatoSync')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('couchPotatoSync')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="automaticUpdater" class="control-mat-label">Automatic Update</mat-label>
|
<mat-label for="automaticUpdater" class="control-mat-label">Automatic Update</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('automaticUpdater').hasError('required')}" id="automaticUpdater" name="automaticUpdater" formControlName="automaticUpdater">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('automaticUpdater').hasError('required')}" id="automaticUpdater" name="automaticUpdater" formControlName="automaticUpdater">
|
||||||
<small *ngIf="form.get('automaticUpdater').hasError('required')" class="error-text">The Automatic Update is required</small></mat-form-field>
|
<small *ngIf="form.get('automaticUpdater').hasError('required')" class="error-text">The Automatic Update is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('automaticUpdater')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('automaticUpdater')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="retryRequests" class="control-mat-label">Retry Failed Requests</mat-label>
|
<mat-label for="retryRequests" class="control-mat-label">Retry Failed Requests</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('retryRequests').hasError('required')}" id="retryRequests" name="retryRequests" formControlName="retryRequests">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('retryRequests').hasError('required')}" id="retryRequests" name="retryRequests" formControlName="retryRequests">
|
||||||
<small *ngIf="form.get('retryRequests').hasError('required')" class="error-text">The Retry Requests is required</small></mat-form-field>
|
<small *ngIf="form.get('retryRequests').hasError('required')" class="error-text">The Retry Requests is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('retryRequests')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('retryRequests')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="plexContentSync" class="control-mat-label">Plex Sync</mat-label>
|
<mat-label for="plexContentSync" class="control-mat-label">Plex Sync</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('plexContentSync').hasError('required')}" id="plexContentSync" name="plexContentSync" formControlName="plexContentSync">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('plexContentSync').hasError('required')}" id="plexContentSync" name="plexContentSync" formControlName="plexContentSync">
|
||||||
<small *ngIf="form.get('plexContentSync').hasError('required')" class="error-text">The Plex Sync is required</small></mat-form-field>
|
<small *ngIf="form.get('plexContentSync').hasError('required')" class="error-text">The Plex Sync is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('plexContentSync')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('plexContentSync')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="plexRecentlyAddedSync" class="control-mat-label">Plex Recently Added Sync</mat-label>
|
<mat-label for="plexRecentlyAddedSync" class="control-mat-label">Plex Recently Added Sync</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('plexRecentlyAddedSync').hasError('required')}" id="plexRecentlyAddedSync" name="plexRecentlyAddedSync" formControlName="plexRecentlyAddedSync">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('plexRecentlyAddedSync').hasError('required')}" id="plexRecentlyAddedSync" name="plexRecentlyAddedSync" formControlName="plexRecentlyAddedSync">
|
||||||
<small *ngIf="form.get('plexRecentlyAddedSync').hasError('required')" class="error-text">The Plex Sync is required</small></mat-form-field>
|
<small *ngIf="form.get('plexRecentlyAddedSync').hasError('required')" class="error-text">The Plex Sync is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('plexRecentlyAddedSync')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('plexRecentlyAddedSync')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="plexWatchlistImport" class="control-mat-label">Plex Watchlist Import</mat-label>
|
<mat-label for="plexWatchlistImport" class="control-mat-label">Plex Watchlist Import</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('plexWatchlistImport').hasError('required')}" id="plexWatchlistImport" name="plexWatchlistImport" formControlName="plexWatchlistImport">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('plexWatchlistImport').hasError('required')}" id="plexWatchlistImport" name="plexWatchlistImport" formControlName="plexWatchlistImport">
|
||||||
<small *ngIf="form.get('plexWatchlistImport').hasError('required')" class="error-text">The Plex Watchlist Import is required</small></mat-form-field>
|
<small *ngIf="form.get('plexWatchlistImport').hasError('required')" class="error-text">The Plex Watchlist Import is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('plexWatchlistImport')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('plexWatchlistImport')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
|
@ -90,15 +90,15 @@
|
||||||
<mat-label for="embyContentSync" class="control-mat-label">Emby Sync</mat-label>
|
<mat-label for="embyContentSync" class="control-mat-label">Emby Sync</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('embyContentSync').hasError('required')}" id="embyContentSync" name="embyContentSync" formControlName="embyContentSync">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('embyContentSync').hasError('required')}" id="embyContentSync" name="embyContentSync" formControlName="embyContentSync">
|
||||||
<small *ngIf="form.get('embyContentSync').hasError('required')" class="error-text">The Emby Sync is required</small></mat-form-field>
|
<small *ngIf="form.get('embyContentSync').hasError('required')" class="error-text">The Emby Sync is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('embyContentSync')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('embyContentSync')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="embyRecentlyAddedSync" class="control-mat-label">Emby Recently Added Sync</mat-label>
|
<mat-label for="embyRecentlyAddedSync" class="control-mat-label">Emby Recently Added Sync</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('embyRecentlyAddedSync').hasError('required')}" id="embyRecentlyAddedSync" name="embyRecentlyAddedSync" formControlName="embyRecentlyAddedSync">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('embyRecentlyAddedSync').hasError('required')}" id="embyRecentlyAddedSync" name="embyRecentlyAddedSync" formControlName="embyRecentlyAddedSync">
|
||||||
<small *ngIf="form.get('embyRecentlyAddedSync').hasError('required')" class="error-text">The Emby Recently Added Sync is required</small></mat-form-field>
|
<small *ngIf="form.get('embyRecentlyAddedSync').hasError('required')" class="error-text">The Emby Recently Added Sync is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('embyRecentlyAddedSync')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('embyRecentlyAddedSync')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
<mat-label for="jellyfinContentSync" class="control-label">Jellyfin Sync</mat-label>
|
<mat-label for="jellyfinContentSync" class="control-label">Jellyfin Sync</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('jellyfinContentSync').hasError('required')}" id="jellyfinContentSync" name="jellyfinContentSync" formControlName="jellyfinContentSync">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('jellyfinContentSync').hasError('required')}" id="jellyfinContentSync" name="jellyfinContentSync" formControlName="jellyfinContentSync">
|
||||||
<small *ngIf="form.get('jellyfinContentSync').hasError('required')" class="error-text">The Jellyfin Sync is required</small></mat-form-field>
|
<small *ngIf="form.get('jellyfinContentSync').hasError('required')" class="error-text">The Jellyfin Sync is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('jellyfinContentSync')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('jellyfinContentSync')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
|
@ -114,31 +114,31 @@
|
||||||
<mat-label for="userImporter" class="control-mat-label">User Importer</mat-label>
|
<mat-label for="userImporter" class="control-mat-label">User Importer</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('userImporter').hasError('required')}" id="userImporter" name="userImporter" formControlName="userImporter">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('userImporter').hasError('required')}" id="userImporter" name="userImporter" formControlName="userImporter">
|
||||||
<small *ngIf="form.get('userImporter').hasError('required')" class="error-text">The User Importer is required</small></mat-form-field>
|
<small *ngIf="form.get('userImporter').hasError('required')" class="error-text">The User Importer is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('userImporter')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('userImporter')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="userImporter" class="control-mat-label">Newsletter</mat-label>
|
<mat-label for="userImporter" class="control-mat-label">Newsletter</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('newsletter').hasError('required')}" id="newsletter" name="newsletter" formControlName="newsletter">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('newsletter').hasError('required')}" id="newsletter" name="newsletter" formControlName="newsletter">
|
||||||
<small *ngIf="form.get('newsletter').hasError('required')" class="error-text">The Newsletter is required</small></mat-form-field>
|
<small *ngIf="form.get('newsletter').hasError('required')" class="error-text">The Newsletter is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('newsletter')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('newsletter')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="userImporter" class="control-mat-label">Issue Purge/Delete</mat-label>
|
<mat-label for="userImporter" class="control-mat-label">Issue Purge/Delete</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('issuesPurge').hasError('required')}" id="issuesPurge" name="issuesPurge" formControlName="issuesPurge">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('issuesPurge').hasError('required')}" id="issuesPurge" name="issuesPurge" formControlName="issuesPurge">
|
||||||
<small *ngIf="form.get('issuesPurge').hasError('required')" class="error-text">The Issues Purge is required</small></mat-form-field>
|
<small *ngIf="form.get('issuesPurge').hasError('required')" class="error-text">The Issues Purge is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('issuesPurge')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('issuesPurge')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<mat-form-field appearance="outline" floatLabel=always>
|
<mat-form-field appearance="outline" floatLabel=always>
|
||||||
<mat-label for="userImporter" class="control-mat-label">Media Data Refresh</mat-label>
|
<mat-label for="userImporter" class="control-mat-label">Media Data Refresh</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('mediaDatabaseRefresh').hasError('required')}" id="mediaDatabaseRefresh" name="mediaDatabaseRefresh" formControlName="mediaDatabaseRefresh">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('mediaDatabaseRefresh').hasError('required')}" id="mediaDatabaseRefresh" name="mediaDatabaseRefresh" formControlName="mediaDatabaseRefresh">
|
||||||
<small *ngIf="form.get('mediaDatabaseRefresh').hasError('required')" class="error-text">The Media Database Refresh is required</small></mat-form-field>
|
<small *ngIf="form.get('mediaDatabaseRefresh').hasError('required')" class="error-text">The Media Database Refresh is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('mediaDatabaseRefresh')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('mediaDatabaseRefresh')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
|
@ -146,15 +146,15 @@
|
||||||
<mat-label for="userImporter" class="control-mat-label">Auto Available Request Deletion</mat-label>
|
<mat-label for="userImporter" class="control-mat-label">Auto Available Request Deletion</mat-label>
|
||||||
<input type="text" matInput [ngClass]="{'form-error': form.get('autoDeleteRequests').hasError('required')}" id="autoDeleteRequests" name="autoDeleteRequests" formControlName="autoDeleteRequests">
|
<input type="text" matInput [ngClass]="{'form-error': form.get('autoDeleteRequests').hasError('required')}" id="autoDeleteRequests" name="autoDeleteRequests" formControlName="autoDeleteRequests">
|
||||||
<small *ngIf="form.get('autoDeleteRequests').hasError('required')" class="error-text">Auto Available Request Deletion is required</small></mat-form-field>
|
<small *ngIf="form.get('autoDeleteRequests').hasError('required')" class="error-text">Auto Available Request Deletion is required</small></mat-form-field>
|
||||||
<button mat-raised-button type="button" class="btn btn-sm btn-primary-outline cronbtn" (click)="testCron(form.get('autoDeleteRequests')?.value)">Test</button>
|
<button mat-raised-button type="button" class="cronbtn" (click)="testCron(form.get('autoDeleteRequests')?.value)">Test</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group cronBox">
|
<div class="form-group cronBox">
|
||||||
<div>
|
<div>
|
||||||
<button mat-raised-button type="submit" [disabled]="form.invalid" class="mat-focus-indicator mat-raised-button mat-button-base mat-accent">Submit</button>
|
<button mat-raised-button type="submit" [disabled]="form.invalid" class="mat-focus-indicator mat-raised-button mat-button-base mat-accent">Submit</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,34 +5,42 @@
|
||||||
<legend>Mass Email</legend>
|
<legend>Mass Email</legend>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group">
|
|
||||||
<input type="text" class="form-control form-control-custom " id="subject" name="subject" placeholder="Subject" [(ngModel)]="subject" [ngClass]="{'form-error': missingSubject}">
|
|
||||||
<small *ngIf="missingSubject" class="error-text">Hey! We need a subject!</small>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group" >
|
<div class="form-group">
|
||||||
<textarea rows="10" type="text" class="form-control-custom form-control" id="themeContent" name="themeContent" [(ngModel)]="message" placeholder="This supports HTML"></textarea>
|
<mat-form-field>
|
||||||
</div>
|
<mat-label>Subject</mat-label>
|
||||||
|
<input matInput type="text" id="subject" name="subject" placeholder="Subject" [(ngModel)]="subject" [ngClass]="{'form-error': missingSubject}">
|
||||||
|
<small *ngIf="missingSubject" class="error-text">Hey! We need a subject!</small>
|
||||||
|
</mat-form-field>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="logo" class="control-label">Message Preview</label>
|
<mat-form-field appearance="outline">
|
||||||
<br/>
|
<mat-label>Content</mat-label>
|
||||||
<small>May appear differently on email clients</small>
|
<textarea matInput rows="10" type="text" id="themeContent" name="themeContent" [(ngModel)]="message" placeholder="This supports HTML"></textarea>
|
||||||
<hr/>
|
</mat-form-field>
|
||||||
<div [innerHTML]="message"></div>
|
</div>
|
||||||
<hr/>
|
|
||||||
</div>
|
<div class="form-group">
|
||||||
<small>This will send out the Mass email BCC'ing all of the selected users rather than sending individual messages</small>
|
<label for="logo" class="control-label">Message Preview</label>
|
||||||
<div class="md-form-field">
|
<br/>
|
||||||
<mat-slide-toggle [(ngModel)]="bcc">BCC</mat-slide-toggle>
|
<small>May appear differently on email clients</small>
|
||||||
</div>
|
<mat-divider></mat-divider>
|
||||||
<br>
|
<div [innerHTML]="message"></div>
|
||||||
<br>
|
<mat-divider></mat-divider>
|
||||||
<div class="form-group">
|
</div>
|
||||||
<div>
|
|
||||||
<button type="submit" id="save" (click)="send()" class="mat-focus-indicator btn-spacing mat-raised-button mat-button-base mat-accent">Send</button>
|
<small>This will send out the Mass email BCC'ing all of the selected users rather than sending individual messages</small>
|
||||||
</div>
|
<div class="md-form-field">
|
||||||
</div>
|
<mat-slide-toggle [(ngModel)]="bcc">BCC</mat-slide-toggle>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<div class="form-group">
|
||||||
|
<div>
|
||||||
|
<button type="submit" id="save" (click)="send()" class="mat-focus-indicator btn-spacing mat-raised-button mat-button-base mat-accent">Send</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<!--Users Section-->
|
<!--Users Section-->
|
||||||
|
|
|
@ -7,42 +7,42 @@
|
||||||
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="checkbox">
|
<mat-checkbox id="enable" formControlName="enabled">Enabled</mat-checkbox>
|
||||||
<input type="checkbox" id="enable" formControlName="enabled">
|
|
||||||
<label for="enable">Enabled</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="baseUrl" class="control-label">Base URL</label>
|
<mat-form-field>
|
||||||
|
<mat-label>Base URL</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="baseUrl" name="baseUrl" [ngClass]="{'form-error': form.get('baseUrl').hasError('required')}" formControlName="baseUrl" pTooltip="Enter the URL of your gotify server.">
|
<input matInput type="text" id="baseUrl" name="baseUrl" [ngClass]="{'form-error': form.get('baseUrl').hasError('required')}" formControlName="baseUrl" pTooltip="Enter the URL of your gotify server.">
|
||||||
<small *ngIf="form.get('baseUrl').hasError('required')" class="error-text">The Base URL is required</small>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="applicationToken" class="control-label">Application Token</label>
|
<mat-form-field>
|
||||||
|
<mat-label>Application Token</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="applicationToken" name="applicationToken" [ngClass]="{'form-error': form.get('applicationToken').hasError('required')}" formControlName="applicationToken" pTooltip="Enter your Application token from Gotify.">
|
<input matInput type="text" id="applicationToken" name="applicationToken" [ngClass]="{'form-error': form.get('applicationToken').hasError('required')}" formControlName="applicationToken" pTooltip="Enter your Application token from Gotify.">
|
||||||
<small *ngIf="form.get('applicationToken').hasError('required')" class="error-text">The Application Token is required</small>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="priority" class="control-label">Priority</label>
|
<mat-form-field>
|
||||||
|
<mat-label>Priority</mat-label>
|
||||||
|
|
||||||
|
<mat-select id="priority" name="priority" formControlName="priority" pTooltip="The priority you want your gotify notifications sent as.">
|
||||||
|
<mat-option value="4">Normal</mat-option>
|
||||||
|
<mat-option value="8">High</mat-option>
|
||||||
|
<mat-option value="2">Low</mat-option>
|
||||||
|
<mat-option value="0">Lowest</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
<div>
|
<div>
|
||||||
<select class="form-control form-control-custom " id="priority" name="priority" formControlName="priority" pTooltip="The priority you want your gotify notifications sent as.">
|
|
||||||
<option value="4">Normal</option>
|
|
||||||
<option value="8">High</option>
|
|
||||||
<option value="2">Low</option>
|
|
||||||
<option value="0">Lowest</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)" class="btn btn-primary-outline">
|
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)">
|
||||||
Test
|
Test
|
||||||
<div id="spinner"></div>
|
<div id="spinner"></div>
|
||||||
</button>
|
</button>
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save" class="btn btn-primary-outline">Submit</button>
|
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -64,4 +64,4 @@
|
||||||
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,47 +7,42 @@
|
||||||
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="checkbox">
|
<mat-checkbox id="enable" formControlName="enabled">Enabled</mat-checkbox>
|
||||||
<input type="checkbox" id="enable" formControlName="enabled">
|
|
||||||
<label for="enable">Enabled</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<small class="control-label"> Mattermost > Integrations > Incoming Webhook > Add Incoming Webhook. You will then have a Webhook</small>
|
<small class="control-label"> Mattermost > Integrations > Incoming Webhook > Add Incoming Webhook. You will then have a Webhook</small>
|
||||||
<label for="webhookUrl" class="control-label">Incoming Webhook Url</label>
|
<mat-form-field>
|
||||||
|
<mat-label>Incoming Webhook Url</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="webhookUrl" name="webhookUrl" formControlName="webhookUrl" [ngClass]="{'form-error': form.get('webhookUrl').hasError('required')}">
|
<input matInput type="text" id="webhookUrl" name="webhookUrl" formControlName="webhookUrl" [ngClass]="{'form-error': form.get('webhookUrl').hasError('required')}">
|
||||||
<small *ngIf="form.get('webhookUrl').hasError('required')" class="error-text">The Webhook Url is required</small>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="channel" class="control-label">Channel Override</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Channel Override</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="channel" name="channel" formControlName="channel" pTooltip="Optional, you can override the default channel">
|
<input matInput type="text" id="channel" name="channel" formControlName="channel" pTooltip="Optional, you can override the default channel">
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="username" class="control-label">Username Override</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Username Override</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="username" name="username" formControlName="username" pTooltip="Optional, this will override the username you used for the Webhook">
|
<input matInput type="text" id="username" name="username" formControlName="username" pTooltip="Optional, this will override the username you used for the Webhook">
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="iconUrl" class="control-label">Icon Override</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Icon Override</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="iconUrl" name="iconUrl" formControlName="iconUrl" pTooltip="Optional, this will override the icon you use for the Webhook">
|
<input matInput type="text" id="iconUrl" name="iconUrl" formControlName="iconUrl" pTooltip="Optional, this will override the icon you use for the Webhook">
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)" class="btn btn-primary-outline">
|
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)">
|
||||||
Test
|
Test
|
||||||
<div id="spinner"></div>
|
<div id="spinner"></div>
|
||||||
</button>
|
</button>
|
||||||
|
@ -58,7 +53,7 @@
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save" class="btn btn-primary-outline">Submit</button>
|
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -69,4 +64,4 @@
|
||||||
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -36,30 +36,29 @@
|
||||||
|
|
||||||
<div class="row lmobile-actions">
|
<div class="row lmobile-actions">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="select" class="control-label">Users</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Users</mat-label>
|
||||||
<select class="form-control form-control-custom" id="select" [(ngModel)]="testUserId" [ngModelOptions]="{standalone: true}">
|
<mat-select id="select" [(ngModel)]="testUserId" [ngModelOptions]="{standalone: true}">
|
||||||
<option value="">Please select</option>
|
<mat-option *ngFor="let x of userList" [value]="x.userId">{{x.username}}</mat-option>
|
||||||
<option *ngFor="let x of userList" [value]="x.userId">{{x.username}}</option>
|
</mat-select>
|
||||||
</select>
|
</mat-form-field>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)" class="btn btn-danger-outline">Send Test Notification</button>
|
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)" mat-raised-button>Send Test Notification</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="remove(form)" class="btn btn-danger-outline">Remove User</button>
|
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="remove(form)" mat-raised-button>Remove User</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save" class="btn btn-primary-outline">Submit</button>
|
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save" mat-raised-button>Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -72,4 +71,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<mat-slide-toggle type="checkbox" id="enabled" [(ngModel)]="settings.enabled" ng-checked="settings.enabled">Enable</mat-slide-toggle>
|
<mat-slide-toggle type="checkbox" id="enabled" [(ngModel)]="settings.enabled" ng-checked="settings.enabled">Enable</mat-slide-toggle>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<mat-slide-toggle type="checkbox" id="disableTv" [(ngModel)]="settings.disableTv" ng-checked="settings.disableTv">Disable TV</mat-slide-toggle>
|
<mat-slide-toggle type="checkbox" id="disableTv" [(ngModel)]="settings.disableTv" ng-checked="settings.disableTv">Disable TV</mat-slide-toggle>
|
||||||
|
@ -46,11 +46,11 @@
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button mat-raised-button type="submit" id="save" (click)="onSubmit()" class="btn btn-primary-outline">Submit</button>
|
<button mat-raised-button type="submit" id="save" (click)="onSubmit()">Submit</button>
|
||||||
<button mat-raised-button type="button" (click)="test()" class="btn btn-danger-outline">Test</button>
|
<button mat-raised-button type="button" (click)="test()">Test</button>
|
||||||
<button mat-raised-button type="button" (click)="updateDatabase()" class="btn btn-info-outline" tooltipPosition="top" matTooltip="I recommend running this with a fresh Ombi install, this will set all the current *found* content to have been sent via Newsletter,
|
<button mat-raised-button type="button" (click)="updateDatabase()"tooltipPosition="top" matTooltip="I recommend running this with a fresh Ombi install, this will set all the current *found* content to have been sent via Newsletter,
|
||||||
if you do not do this then everything that Ombi has found in your libraries will go out on the first email!">Update Database</button>
|
if you do not do this then everything that Ombi has found in your libraries will go out on the first email!">Update Database</button>
|
||||||
<button mat-raised-button type="button" (click)="trigger()" class="btn btn-danger-outline">Trigger now</button>
|
<button mat-raised-button type="button" (click)="trigger()">Trigger now</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<button mat-raised-button class="btn btn-primary-outline" (click)="addEmail()" matTooltip="Don't forget to press the Submit button!">Add</button>
|
<button mat-raised-button (click)="addEmail()" matTooltip="Don't forget to press the Submit button!">Add</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -83,10 +83,10 @@
|
||||||
{{email}}
|
{{email}}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<button mat-raised-button class="btn btn-sm btn-danger-outline" (click)="deleteEmail(email)">Delete</button>
|
<button mat-raised-button (click)="deleteEmail(email)">Delete</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,32 +7,24 @@
|
||||||
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="checkbox">
|
<mat-checkbox id="enable" formControlName="enabled">Enabled</mat-checkbox>
|
||||||
<input type="checkbox" id="enable" formControlName="enabled">
|
|
||||||
<label for="enable">Enabled</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<small>You can find this here: <a href="https://www.pushbullet.com/#settings/account" target="_blank">https://www.pushbullet.com/#settings/account </a></small>
|
<small>You can find this here: <a href="https://www.pushbullet.com/#settings/account" target="_blank">https://www.pushbullet.com/#settings/account </a></small>
|
||||||
<div class="form-group">
|
|
||||||
<label for="accessToken" class="control-label">Access Token</label>
|
|
||||||
|
|
||||||
<input type="text" class="form-control form-control-custom " id="accessToken" name="accessToken" formControlName="accessToken" [ngClass]="{'form-error': form.get('accessToken').hasError('required')}">
|
|
||||||
<small *ngIf="form.get('accessToken').hasError('required')" class="error-text">The Access Token is required</small>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group">
|
<mat-form-field>
|
||||||
<label for="channelTag" class="control-label">Channel Tag</label>
|
<mat-label>Access Token</mat-label>
|
||||||
<div>
|
<input matInput type="text" id="accessToken" name="accessToken" formControlName="accessToken" [ngClass]="{'form-error': form.get('accessToken').hasError('required')}">
|
||||||
<input type="text" class="form-control form-control-custom " id="channelTag" name="channelTag" formControlName="channelTag" pTooltip="Optional, this is if you want to send a message to everyone subscribed to a channel">
|
</mat-form-field>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<mat-form-field>
|
||||||
|
<mat-label>Channel Tag</mat-label>
|
||||||
|
<input matInput type="text" id="channelTag" name="channelTag" formControlName="channelTag" pTooltip="Optional, this is if you want to send a message to everyone subscribed to a channel">
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)" class="btn btn-primary-outline">
|
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)">
|
||||||
Test
|
Test
|
||||||
<div id="spinner"></div>
|
<div id="spinner"></div>
|
||||||
</button>
|
</button>
|
||||||
|
@ -43,7 +35,7 @@
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save" class="btn btn-primary-outline">Submit</button>
|
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -54,4 +46,4 @@
|
||||||
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,74 +7,71 @@
|
||||||
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="checkbox">
|
<mat-checkbox id="enable" formControlName="enabled">Enabled</mat-checkbox>
|
||||||
<input type="checkbox" id="enable" formControlName="enabled">
|
|
||||||
<label for="enable">Enabled</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="accessToken" class="control-label">Access Token</label>
|
<mat-form-field>
|
||||||
|
<mat-label>Access Token</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="accessToken" name="accessToken" [ngClass]="{'form-error': form.get('accessToken').hasError('required')}" formControlName="accessToken" pTooltip="Enter your API Key from Pushover.">
|
<input matInput type="text" id="accessToken" name="accessToken" [ngClass]="{'form-error': form.get('accessToken').hasError('required')}" formControlName="accessToken" pTooltip="Enter your API Key from Pushover.">
|
||||||
<small *ngIf="form.get('accessToken').hasError('required')" class="error-text">The Access Token is required</small>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="userToken" class="control-label">User Token</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>User Token</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="userToken" name="userToken" formControlName="userToken" pTooltip="Your user or group key from Pushover.">
|
<input matInput type="text" id="userToken" name="userToken" formControlName="userToken" pTooltip="Your user or group key from Pushover.">
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="priority" class="control-label">Priority</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Priority</mat-label>
|
||||||
<select class="form-control form-control-custom " id="priority" name="priority" formControlName="priority" pTooltip="The priority you want your pushover notifications sent as.">
|
<mat-select id="priority" name="priority" formControlName="priority" pTooltip="The priority you want your pushover notifications sent as.">
|
||||||
<option value="0">Normal</option>
|
<mat-option value="0">Normal</mat-option>
|
||||||
<option value="1">High</option>
|
<mat-option value="1">High</mat-option>
|
||||||
<option value="-1">Low</option>
|
<mat-option value="-1">Low</mat-option>
|
||||||
<option value="-2">Lowest</option>
|
<mat-option value="-2">Lowest</mat-option>
|
||||||
</select>
|
</mat-select>
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="sound" class="control-label">Sound</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Sound</mat-label>
|
||||||
<select class="form-control form-control-custom " id="sound" name="sound" formControlName="sound" pTooltip="The sound you want your pushover notifications sent with.">
|
<mat-select id="sound" name="sound" formControlName="sound" pTooltip="The sound you want your pushover notifications sent with.">
|
||||||
<option value="pushover">Pushover</option>
|
<mat-option value="pushover">Pushover</mat-option>
|
||||||
<option value="bike">Bike</option>
|
<mat-option value="bike">Bike</mat-option>
|
||||||
<option value="bugle">Bugle</option>
|
<mat-option value="bugle">Bugle</mat-option>
|
||||||
<option value="cashregister">Cash Register</option>
|
<mat-option value="cashregister">Cash Register</mat-option>
|
||||||
<option value="classical">Classical</option>
|
<mat-option value="classical">Classical</mat-option>
|
||||||
<option value="cosmic">Cosmic</option>
|
<mat-option value="cosmic">Cosmic</mat-option>
|
||||||
<option value="falling">Falling</option>
|
<mat-option value="falling">Falling</mat-option>
|
||||||
<option value="gamelan">Gamelan</option>
|
<mat-option value="gamelan">Gamelan</mat-option>
|
||||||
<option value="incoming">Incoming</option>
|
<mat-option value="incoming">Incoming</mat-option>
|
||||||
<option value="intermission">Intermission</option>
|
<mat-option value="intermission">Intermission</mat-option>
|
||||||
<option value="magic">Magic</option>
|
<mat-option value="magic">Magic</mat-option>
|
||||||
<option value="mechanical">Mechanical</option>
|
<mat-option value="mechanical">Mechanical</mat-option>
|
||||||
<option value="pianobar">Piano Bar</option>
|
<mat-option value="pianobar">Piano Bar</mat-option>
|
||||||
<option value="siren">Siren</option>
|
<mat-option value="siren">Siren</mat-option>
|
||||||
<option value="spacealarm">Space Alarm</option>
|
<mat-option value="spacealarm">Space Alarm</mat-option>
|
||||||
<option value="tugboat">Tug Boat</option>
|
<mat-option value="tugboat">Tug Boat</mat-option>
|
||||||
<option value="alien">Alien Alarm (long)</option>
|
<mat-option value="alien">Alien Alarm (long)</mat-option>
|
||||||
<option value="climb">Climb (long)</option>
|
<mat-option value="climb">Climb (long)</mat-option>
|
||||||
<option value="persistent">Persistent (long)</option>
|
<mat-option value="persistent">Persistent (long)</mat-option>
|
||||||
<option value="echo">Pushover Echo (long)</option>
|
<mat-option value="echo">Pushover Echo (long)</mat-option>
|
||||||
<option value="updown">Up Down (long)</option>
|
<mat-option value="updown">Up Down (long)</mat-option>
|
||||||
<option value="none">None</option>
|
<mat-option value="none">None</mat-option>
|
||||||
</select>
|
</mat-select>
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)" class="btn btn-primary-outline">
|
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)">
|
||||||
Test
|
Test
|
||||||
<div id="spinner"></div>
|
<div id="spinner"></div>
|
||||||
</button>
|
</button>
|
||||||
|
@ -85,7 +82,7 @@
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save" class="btn btn-primary-outline">Submit</button>
|
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -96,4 +93,4 @@
|
||||||
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,57 +7,51 @@
|
||||||
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
<mat-checkbox id="enable" formControlName="enabled">Enabled</mat-checkbox>
|
||||||
<div class="checkbox">
|
|
||||||
<input type="checkbox" id="enable" formControlName="enabled">
|
|
||||||
<label for="enable">Enabled</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
||||||
<label for="webhookUrl" class="control-label">Webhook Url</label>
|
<small class="control-label"> Click <a target="_blank" href="https://my.slack.com/services/new/incoming-webhook/">Here</a> and follow the guide. You will then have a Webhook Url</small>
|
||||||
<div>
|
<mat-form-field>
|
||||||
|
<mat-label>Webhook Url</mat-label>
|
||||||
<small class="control-label"> Click <a target="_blank" href="https://my.slack.com/services/new/incoming-webhook/">Here</a> and follow the guide. You will then have a Webhook Url</small>
|
<input matInput type="text" id="webhookUrl" name="webhookUrl" formControlName="webhookUrl" [ngClass]="{'form-error': form.get('webhookUrl').hasError('required')}">
|
||||||
<input type="text" class="form-control form-control-custom " id="webhookUrl" name="webhookUrl" formControlName="webhookUrl" [ngClass]="{'form-error': form.get('webhookUrl').hasError('required')}">
|
</mat-form-field>
|
||||||
<small *ngIf="form.get('webhookUrl').hasError('required')" class="error-text">The Webhook Url is required</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="username" class="control-label">Username Override</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Username Override</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="username" name="username" formControlName="username" pTooltip="Optional, this will override the username you used for the Webhook. Default is Ombi">
|
<input matInput type="text" id="username" name="username" formControlName="username" pTooltip="Optional, this will override the username you used for the Webhook. Default is Ombi">
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="channel" class="control-label">Channel Override</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Channel Override</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="channel" name="channel" formControlName="channel" pTooltip="Optional, this will override the channel you used for the Webhook">
|
<input matInput type="text" id="channel" name="channel" formControlName="channel" pTooltip="Optional, this will override the channel you used for the Webhook">
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="iconEmoji" class="control-label">Emoji Icon Override</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Emoji Icon Override</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="iconEmoji" name="iconEmoji" formControlName="iconEmoji" pTooltip="Optional, this will override the Icon you used for the Webhook">
|
<input matInput type="text" id="iconEmoji" name="iconEmoji" formControlName="iconEmoji" pTooltip="Optional, this will override the Icon you used for the Webhook">
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="iconUrl" class="control-label">Url Icon Override</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Url Icon Override</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="iconUrl" name="iconUrl" formControlName="iconUrl" pTooltip="Optional, this will override the Icon you used for the Webhook">
|
<input matInput type="text" id="iconUrl" name="iconUrl" formControlName="iconUrl" pTooltip="Optional, this will override the Icon you used for the Webhook">
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<small>You can find more details about the Slack API <a target="_blank" href="https://api.slack.com/custom-integrations/incoming-webhooks">Here</a></small>
|
<small>You can find more details about the Slack API <a target="_blank" href="https://api.slack.com/custom-integrations/incoming-webhooks">Here</a></small>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)" class="btn btn-primary-outline">
|
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)">
|
||||||
Test
|
Test
|
||||||
<div id="spinner"></div>
|
<div id="spinner"></div>
|
||||||
</button>
|
</button>
|
||||||
|
@ -68,7 +62,7 @@
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save" class="btn btn-primary-outline">Submit</button>
|
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -79,4 +73,4 @@
|
||||||
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,27 +7,26 @@
|
||||||
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="checkbox">
|
<mat-checkbox id="enable" formControlName="enabled">Enabled</mat-checkbox>
|
||||||
<input type="checkbox" id="enable" formControlName="enabled">
|
|
||||||
<label for="enable">Enabled</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="botApi" class="control-label">Bot API</label>
|
<mat-form-field>
|
||||||
<input type="text" class="form-control form-control-custom " id="botApi" name="botApi" formControlName="botApi" [ngClass]="{'form-error': form.get('botApi').hasError('required')}">
|
<mat-label>Bot API</mat-label>
|
||||||
<small *ngIf="form.get('botApi').hasError('required')" class="error-text">The Bot API is required</small>
|
<input matInput type="text" id="botApi" name="botApi" formControlName="botApi" [ngClass]="{'form-error': form.get('botApi').hasError('required')}">
|
||||||
|
</mat-form-field>
|
||||||
<small>You need a bot for Telegram notifications, You can find out how to create a bot
|
<small>You need a bot for Telegram notifications, You can find out how to create a bot
|
||||||
<a href="https://core.telegram.org/bots#6-botfather">here</a>.</small>
|
<a href="https://core.telegram.org/bots#6-botfather">here</a>.</small>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="chatId" class="control-label">Chat Id</label>
|
<mat-form-field>
|
||||||
<input type="text" class="form-control form-control-custom " id="chatId" name="chatId" formControlName="chatId" [ngClass]="{'form-error': form.get('chatId').hasError('required')}">
|
<mat-label>Chat Id</mat-label>
|
||||||
<small *ngIf="form.get('chatId').hasError('required')" class="error-text">The Chat Id is required</small>
|
<input matInput type="text" id="chatId" name="chatId" formControlName="chatId" [ngClass]="{'form-error': form.get('chatId').hasError('required')}">
|
||||||
|
</mat-form-field>
|
||||||
<small>This is the Chat ID from Telegram. You can get the Chat Id from
|
<small>This is the Chat ID from Telegram. You can get the Chat Id from
|
||||||
<a href="https://telegram.me/get_id_bot">here</a>. This also supports Group Chat Id's.</small>
|
<a href="https://telegram.me/get_id_bot">here</a>. This also supports Group Chat Id's.</small>
|
||||||
</div>
|
</div>
|
||||||
|
@ -43,7 +42,7 @@
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)" class="btn btn-primary-outline">
|
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)">
|
||||||
Test
|
Test
|
||||||
<div id="spinner"></div>
|
<div id="spinner"></div>
|
||||||
</button>
|
</button>
|
||||||
|
@ -52,7 +51,7 @@
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save" class="btn btn-primary-outline">Submit</button>
|
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -63,4 +62,4 @@
|
||||||
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
<notification-templates [templates]="templates" [showSubject]="false"></notification-templates>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,31 +7,26 @@
|
||||||
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="checkbox">
|
<mat-checkbox id="enable" formControlName="enabled">Enabled</mat-checkbox>
|
||||||
<input type="checkbox" id="enable" formControlName="enabled">
|
|
||||||
<label for="enable">Enabled</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="baseUrl" class="control-label">Base URL</label>
|
<mat-form-field>
|
||||||
|
<mat-label>Base URL</mat-label>
|
||||||
<input type="text" class="form-control form-control-custom " id="webhookUrl" name="webhookUrl" [ngClass]="{'form-error': form.get('webhookUrl').hasError('required')}" formControlName="webhookUrl" pTooltip="Enter the URL of your webhook server.">
|
<input matInput type="text" id="webhookUrl" name="webhookUrl" [ngClass]="{'form-error': form.get('webhookUrl').hasError('required')}" formControlName="webhookUrl" pTooltip="Enter the URL of your webhook server.">
|
||||||
<small *ngIf="form.get('webhookUrl').hasError('required')" class="error-text">The Webhook URL is required</small>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="applicationToken" class="control-label">Application Token
|
<mat-form-field>
|
||||||
<i class="far fa-question-circle" pTooltip="Optional authentication token. Will be sent as 'Access-Token' header."></i>
|
<mat-label>Application Token</mat-label>
|
||||||
</label>
|
<input matInput type="text" id="applicationToken" name="applicationToken" [ngClass]="{'form-error': form.get('applicationToken').hasError('required')}" formControlName="applicationToken" pTooltip="Optional authentication token. Will be sent as 'Access-Token' header.">
|
||||||
|
</mat-form-field>
|
||||||
<input type="text" class="form-control form-control-custom " id="applicationToken" name="applicationToken" [ngClass]="{'form-error': form.get('applicationToken').hasError('required')}" formControlName="applicationToken" pTooltip="Enter your Application token from Webhook.">
|
|
||||||
<small *ngIf="form.get('applicationToken').hasError('required')" class="error-text">The Application Token is required</small>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)" class="btn btn-primary-outline">
|
<button [disabled]="form.invalid" mat-raised-button type="button" (click)="test(form)">
|
||||||
Test
|
Test
|
||||||
<div id="spinner"></div>
|
<div id="spinner"></div>
|
||||||
</button>
|
</button>
|
||||||
|
@ -40,10 +35,10 @@
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save" class="btn btn-primary-outline">Submit</button>
|
<button [disabled]="form.invalid" mat-raised-button type="submit" id="save">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<h3>Default Roles</h3>
|
<h3>Default Roles</h3>
|
||||||
<hr>
|
<mat-divider />
|
||||||
<div *ngFor="let c of claims">
|
<div *ngFor="let c of claims">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div>
|
<div>
|
||||||
|
@ -67,13 +67,13 @@
|
||||||
|
|
||||||
<h3>Default Request Limits</h3>
|
<h3>Default Request Limits</h3>
|
||||||
|
|
||||||
<hr>
|
<mat-divider />
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="movieRequestLimit" class="control-label">Movie Request Limit</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Movie Request Limit</mat-label>
|
||||||
<input type="text" [(ngModel)]="settings.movieRequestLimit" class="form-control form-small form-control-custom" id="movieRequestLimit" name="movieRequestLimit" value="{{settings?.movieRequestLimit}}">
|
<input matInput type="text" [(ngModel)]="settings.movieRequestLimit" id="movieRequestLimit" name="movieRequestLimit" value="{{settings?.movieRequestLimit}}">
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<mat-label>Movie Request Limit Type</mat-label>
|
<mat-label>Movie Request Limit Type</mat-label>
|
||||||
|
@ -84,23 +84,24 @@
|
||||||
</mat-select>
|
</mat-select>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="episodeRequestLimit" class="control-label">Episode Request Limit</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Episode Request Limit</mat-label>
|
||||||
<input type="text" [(ngModel)]="settings.episodeRequestLimit" class="form-control form-small form-control-custom" id="episodeRequestLimit" name="episodeRequestLimit" value="{{settings?.episodeRequestLimit}}">
|
<input matInput type="text" [(ngModel)]="settings.episodeRequestLimit" id="episodeRequestLimit" name="episodeRequestLimit" value="{{settings?.episodeRequestLimit}}">
|
||||||
</div>
|
</mat-form-field>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<mat-label>Episode Request Limit Type</mat-label>
|
<mat-label>Episode Request Limit Type</mat-label>
|
||||||
<mat-select id="episodeRequestLimitType" [(value)]="settings.episodeRequestLimitType">
|
<mat-select id="episodeRequestLimitType" [(value)]="settings.episodeRequestLimitType">
|
||||||
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
|
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
|
||||||
{{RequestLimitType[value]}}
|
{{RequestLimitType[value]}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="episodeRequestLimit" class="control-label">Music Request Limit</label>
|
<mat-form-field>
|
||||||
<div>
|
<mat-label>Music Request Limit</mat-label>
|
||||||
<input type="text" [(ngModel)]="settings.musicRequestLimit" class="form-control form-small form-control-custom" id="musicRequestLimit" name="musicRequestLimit" value="{{settings?.musicRequestLimit}}">
|
<input matInput type="text" [(ngModel)]="settings.musicRequestLimit" id="musicRequestLimit" name="musicRequestLimit" value="{{settings?.musicRequestLimit}}">
|
||||||
</div>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<mat-label>Music Request Limit Type</mat-label>
|
<mat-label>Music Request Limit Type</mat-label>
|
||||||
<mat-select id="musicRequestLimitType" [(value)]="settings.musicRequestLimitType">
|
<mat-select id="musicRequestLimitType" [(value)]="settings.musicRequestLimitType">
|
||||||
|
|
|
@ -178,11 +178,11 @@
|
||||||
<div class="col-md-6 col-sm-12">
|
<div class="col-md-6 col-sm-12">
|
||||||
<button *ngIf="!edit" type="button" mat-raised-button color="accent" data-test="createuserbtn" (click)="create()">Create</button>
|
<button *ngIf="!edit" type="button" mat-raised-button color="accent" data-test="createuserbtn" (click)="create()">Create</button>
|
||||||
<div *ngIf="edit">
|
<div *ngIf="edit">
|
||||||
<button type="button" data-test="updatebtn" mat-raised-button color="accent" class="btn btn-primary-outline" (click)="update()">Update</button>
|
<button type="button" data-test="updatebtn" mat-raised-button color="accent" (click)="update()">Update</button>
|
||||||
<button type="button" data-test="deletebtn" mat-raised-button color="warn" class="btn btn-danger-outline" (click)="delete()">Delete</button>
|
<button type="button" data-test="deletebtn" mat-raised-button color="warn" (click)="delete()">Delete</button>
|
||||||
<button type="button" style="float:right;" mat-raised-button color="primary" class="btn btn-info-outline" (click)="resetPassword()" matTooltip="You need your SMTP settings setup">Send
|
<button type="button" style="float:right;" mat-raised-button color="primary" (click)="resetPassword()" matTooltip="You need your SMTP settings setup">Send
|
||||||
Reset Password Link</button>
|
Reset Password Link</button>
|
||||||
<button *ngIf="appUrl" type="button" mat-raised-button color="accent" class="btn btn-info-outline" (click)="appLink()" matTooltip="Send this link to the user and they can then open the app and directly login">Copy users App Link</button>
|
<button *ngIf="appUrl" type="button" mat-raised-button color="accent" (click)="appLink()" matTooltip="Send this link to the user and they can then open the app and directly login">Copy users App Link</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -196,4 +196,4 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue