mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-22 22:23:34 -07:00
Merge 622b1f69f8
into 09f648515e
This commit is contained in:
commit
a922106ea4
18 changed files with 172 additions and 118 deletions
|
@ -51,7 +51,7 @@ namespace Ombi.Core.Tests.Engine.V2
|
|||
[Ignore("Needs to be tested")]
|
||||
public async Task Get_UnavailableRequests()
|
||||
{
|
||||
_movieRequestRepository.Setup(x => x.GetWithUser()).Returns(new List<MovieRequests>
|
||||
_movieRequestRepository.Setup(x => x.GetWithUser(false)).Returns(new List<MovieRequests>
|
||||
{
|
||||
new MovieRequests
|
||||
{
|
||||
|
|
|
@ -157,6 +157,7 @@ namespace Ombi.Core.Engine
|
|||
var result = new HideResult
|
||||
{
|
||||
Hide = settings.HideRequestsUsers,
|
||||
Anonimize = settings.AnonimizeRequests,
|
||||
UserId = user.Id
|
||||
};
|
||||
return result;
|
||||
|
@ -245,6 +246,7 @@ namespace Ombi.Core.Engine
|
|||
public class HideResult
|
||||
{
|
||||
public bool Hide { get; set; }
|
||||
public bool Anonimize { get; set; }
|
||||
public string UserId { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -179,7 +179,7 @@ namespace Ombi.Core.Engine
|
|||
{
|
||||
allRequests =
|
||||
MovieRepository
|
||||
.GetWithUser(); //.Skip(position).Take(count).OrderByDescending(x => x.ReleaseDate).ToListAsync();
|
||||
.GetWithUser(shouldHide.Anonimize); //.Skip(position).Take(count).OrderByDescending(x => x.ReleaseDate).ToListAsync();
|
||||
}
|
||||
|
||||
switch (orderFilter.AvailabilityFilter)
|
||||
|
@ -240,8 +240,8 @@ namespace Ombi.Core.Engine
|
|||
{
|
||||
allRequests =
|
||||
MovieRepository
|
||||
.GetWithUser();
|
||||
}
|
||||
.GetWithUser(shouldHide.Anonimize);
|
||||
}
|
||||
|
||||
var prop = TypeDescriptor.GetProperties(typeof(MovieRequests)).Find(sortProperty, true);
|
||||
|
||||
|
@ -284,7 +284,7 @@ namespace Ombi.Core.Engine
|
|||
{
|
||||
allRequests =
|
||||
MovieRepository
|
||||
.GetWithUser();
|
||||
.GetWithUser(shouldHide.Anonimize);
|
||||
}
|
||||
|
||||
switch (status)
|
||||
|
@ -346,7 +346,7 @@ namespace Ombi.Core.Engine
|
|||
{
|
||||
allRequests =
|
||||
MovieRepository
|
||||
.GetWithUser().Where(x => !x.Available && x.Approved);
|
||||
.GetWithUser(shouldHide.Anonimize).Where(x => !x.Available && x.Approved);
|
||||
}
|
||||
|
||||
var prop = TypeDescriptor.GetProperties(typeof(MovieRequests)).Find(sortProperty, true);
|
||||
|
@ -428,7 +428,7 @@ namespace Ombi.Core.Engine
|
|||
}
|
||||
else
|
||||
{
|
||||
return await MovieRepository.GetWithUser().CountAsync();
|
||||
return await MovieRepository.GetWithUser(shouldHide.Anonimize).CountAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -446,7 +446,7 @@ namespace Ombi.Core.Engine
|
|||
}
|
||||
else
|
||||
{
|
||||
allRequests = await MovieRepository.GetWithUser().ToListAsync();
|
||||
allRequests = await MovieRepository.GetWithUser(shouldHide.Anonimize).ToListAsync();
|
||||
}
|
||||
|
||||
await CheckForSubscription(shouldHide, allRequests);
|
||||
|
@ -456,7 +456,8 @@ namespace Ombi.Core.Engine
|
|||
|
||||
public async Task<MovieRequests> GetRequest(int requestId)
|
||||
{
|
||||
var request = await MovieRepository.GetWithUser().Where(x => x.Id == requestId).FirstOrDefaultAsync();
|
||||
var shouldHide = await HideFromOtherUsers();
|
||||
var request = await MovieRepository.GetWithUser(shouldHide.Anonimize).Where(x => x.Id == requestId).FirstOrDefaultAsync();
|
||||
await CheckForSubscription(new HideResult(), new List<MovieRequests> { request });
|
||||
|
||||
return request;
|
||||
|
@ -499,7 +500,7 @@ namespace Ombi.Core.Engine
|
|||
}
|
||||
else
|
||||
{
|
||||
allRequests = await MovieRepository.GetWithUser().ToListAsync();
|
||||
allRequests = await MovieRepository.GetWithUser(shouldHide.Anonimize).ToListAsync();
|
||||
}
|
||||
|
||||
var results = allRequests.Where(x => x.Title.Contains(search, CompareOptions.IgnoreCase)).ToList();
|
||||
|
@ -630,7 +631,8 @@ namespace Ombi.Core.Engine
|
|||
/// <returns></returns>
|
||||
public async Task<MovieRequests> UpdateMovieRequest(MovieRequests request)
|
||||
{
|
||||
var allRequests = await MovieRepository.GetWithUser().ToListAsync();
|
||||
var shouldHide = await HideFromOtherUsers();
|
||||
var allRequests = await MovieRepository.GetWithUser(shouldHide.Anonimize).ToListAsync();
|
||||
var results = allRequests.FirstOrDefault(x => x.Id == request.Id);
|
||||
|
||||
results.Approved = request.Approved;
|
||||
|
|
|
@ -369,7 +369,7 @@ namespace Ombi.Core.Engine
|
|||
}
|
||||
else
|
||||
{
|
||||
allRequests = await TvRepository.GetChild().ToListAsync();
|
||||
allRequests = await TvRepository.GetChild(shouldHide.Anonimize).ToListAsync();
|
||||
|
||||
}
|
||||
|
||||
|
@ -424,7 +424,7 @@ namespace Ombi.Core.Engine
|
|||
}
|
||||
else
|
||||
{
|
||||
allRequests = await TvRepository.GetChild().ToListAsync();
|
||||
allRequests = await TvRepository.GetChild(shouldHide.Anonimize).ToListAsync();
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -23,8 +23,9 @@ namespace Ombi.Core.Engine
|
|||
|
||||
public async Task<UserStatsSummary> GetSummary(SummaryRequest request)
|
||||
{
|
||||
|
||||
// get all movie requests
|
||||
var movies = _movieRequest.GetWithUser();
|
||||
var movies = _movieRequest.GetWithUser(false);
|
||||
var filteredMovies = movies.Where(x => x.RequestedDate >= request.From && x.RequestedDate <= request.To);
|
||||
var tv = _tvRequest.GetLite();
|
||||
var children = tv.SelectMany(x =>
|
||||
|
|
|
@ -145,7 +145,7 @@ namespace Ombi.Notifications
|
|||
{
|
||||
if (type == RequestType.Movie)
|
||||
{
|
||||
MovieRequest = await MovieRepository.GetWithUser().FirstOrDefaultAsync(x => x.Id == requestId);
|
||||
MovieRequest = await MovieRepository.GetWithUser(false).FirstOrDefaultAsync(x => x.Id == requestId);
|
||||
}
|
||||
else if (type == RequestType.TvShow)
|
||||
{
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace Ombi.Schedule.Jobs.Ombi
|
|||
_ombiSettings = ombiSettings;
|
||||
_movieRequests = movieRequest;
|
||||
_tvRequestRepository = tvRequestRepository;
|
||||
_musicRequestRepository = _musicRequestRepository;
|
||||
_musicRequestRepository = musicRequestRepository;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ namespace Ombi.Settings.Settings.Models
|
|||
public string ApiKey { get; set; }
|
||||
public bool DoNotSendNotificationsForAutoApprove { get; set; }
|
||||
public bool HideRequestsUsers { get; set; }
|
||||
public bool AnonimizeRequests { get; set; }
|
||||
public bool DisableHealthChecks { get; set; }
|
||||
public string DefaultLanguageCode
|
||||
{
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace Ombi.Store.Repository.Requests
|
|||
Task Update(MovieRequests request);
|
||||
Task Save();
|
||||
Task MarkAsAvailable(int id);
|
||||
IQueryable<MovieRequests> GetWithUser();
|
||||
IQueryable<MovieRequests> GetWithUser(bool anonimize = false);
|
||||
IQueryable<MovieRequests> GetWithUser(string userId);
|
||||
IQueryable<MovieRequests> GetAll(string userId);
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace Ombi.Store.Repository.Requests
|
|||
TvRequests GetRequest(int theMovieDbId);
|
||||
Task Update(TvRequests request);
|
||||
Task UpdateChild(ChildRequests request);
|
||||
IQueryable<ChildRequests> GetChild();
|
||||
IQueryable<ChildRequests> GetChild(bool anonimize = false);
|
||||
IQueryable<ChildRequests> GetChild(string userId);
|
||||
Task MarkEpisodeAsAvailable(int id);
|
||||
Task MarkChildAsAvailable(int id);
|
||||
|
|
|
@ -35,8 +35,8 @@ namespace Ombi.Store.Repository.Requests
|
|||
}
|
||||
|
||||
public IQueryable<MovieRequests> GetAll(string userId)
|
||||
{
|
||||
return GetWithUser().Where(x => x.RequestedUserId == userId);
|
||||
{
|
||||
return GetWithUser(false).Where(x => x.RequestedUserId == userId);
|
||||
}
|
||||
|
||||
public MovieRequests GetRequest(int theMovieDbId)
|
||||
|
@ -46,12 +46,18 @@ namespace Ombi.Store.Repository.Requests
|
|||
.FirstOrDefault();
|
||||
}
|
||||
|
||||
public IQueryable<MovieRequests> GetWithUser()
|
||||
public IQueryable<MovieRequests> GetWithUser(bool anonimize = false)
|
||||
{
|
||||
return Db.MovieRequests
|
||||
.Include(x => x.RequestedUser)
|
||||
.ThenInclude(x => x.NotificationUserIds)
|
||||
.AsQueryable();
|
||||
if (!anonimize)
|
||||
{
|
||||
return Db.MovieRequests
|
||||
.Include(x => x.RequestedUser)
|
||||
.ThenInclude(x => x.NotificationUserIds)
|
||||
.AsQueryable();
|
||||
} else
|
||||
{
|
||||
return Db.MovieRequests.AsNoTracking().AsQueryable();
|
||||
}
|
||||
}
|
||||
|
||||
public async Task MarkAsAvailable(int id)
|
||||
|
|
|
@ -80,14 +80,25 @@ namespace Ombi.Store.Repository.Requests
|
|||
.AsQueryable();
|
||||
}
|
||||
|
||||
public IQueryable<ChildRequests> GetChild()
|
||||
public IQueryable<ChildRequests> GetChild(bool anonimize = false)
|
||||
{
|
||||
return Db.ChildRequests
|
||||
.Include(x => x.RequestedUser)
|
||||
.Include(x => x.ParentRequest)
|
||||
.Include(x => x.SeasonRequests)
|
||||
.ThenInclude(x => x.Episodes)
|
||||
.AsQueryable();
|
||||
if (!anonimize) {
|
||||
return Db.ChildRequests
|
||||
.Include(x => x.RequestedUser)
|
||||
.Include(x => x.ParentRequest)
|
||||
.Include(x => x.SeasonRequests)
|
||||
.ThenInclude(x => x.Episodes)
|
||||
.AsQueryable();
|
||||
}
|
||||
else
|
||||
{
|
||||
return Db.ChildRequests
|
||||
.AsNoTracking()
|
||||
.Include(x => x.ParentRequest)
|
||||
.Include(x => x.SeasonRequests)
|
||||
.ThenInclude(x => x.Episodes)
|
||||
.AsQueryable();
|
||||
}
|
||||
}
|
||||
|
||||
public IQueryable<ChildRequests> GetChild(string userId)
|
||||
|
|
|
@ -15,6 +15,7 @@ export interface IOmbiSettings extends ISettings {
|
|||
apiKey: string;
|
||||
doNotSendNotificationsForAutoApprove: boolean;
|
||||
hideRequestsUsers: boolean;
|
||||
anonimizeRequests: boolean;
|
||||
defaultLanguageCode: string;
|
||||
disableHealthChecks: boolean;
|
||||
autoDeleteAvailableRequests: boolean;
|
||||
|
|
|
@ -92,4 +92,4 @@
|
|||
<mat-menu #aboveMenu="matMenu" yPosition="above">
|
||||
<button id="deleteFabButton" mat-menu-item (click)="bulkDelete()">{{'Requests.RequestPanel.Delete' | translate}}</button>
|
||||
<button id="approveFabButton" mat-menu-item (click)="bulkApprove()">{{'Requests.RequestPanel.Approve' | translate}}</button>
|
||||
</mat-menu>
|
||||
</mat-menu>
|
||||
|
|
|
@ -32,6 +32,7 @@ export class MoviesGridComponent implements OnInit, AfterViewInit {
|
|||
public currentFilter: RequestFilterType = RequestFilterType.All;
|
||||
public selection = new SelectionModel<IMovieRequests>(true, []);
|
||||
public userName: string;
|
||||
public anonimized: boolean = true;
|
||||
|
||||
public RequestFilter = RequestFilterType;
|
||||
|
||||
|
@ -55,11 +56,11 @@ export class MoviesGridComponent implements OnInit, AfterViewInit {
|
|||
}
|
||||
|
||||
public ngOnInit() {
|
||||
this.isAdmin = this.auth.hasRole("admin") || this.auth.hasRole("poweruser");
|
||||
this.isAdmin = this.auth.hasRole("admin") || this.auth.hasRole("poweruser");
|
||||
this.manageOwnRequests = this.auth.hasRole("ManageOwnRequests")
|
||||
if (this.isAdmin) {
|
||||
this.displayedColumns.unshift('select');
|
||||
}
|
||||
}
|
||||
const defaultCount = this.storageService.get(this.storageKeyGridCount);
|
||||
const defaultSort = this.storageService.get(this.storageKey);
|
||||
const defaultOrder = this.storageService.get(this.storageKeyOrder);
|
||||
|
@ -102,7 +103,18 @@ export class MoviesGridComponent implements OnInit, AfterViewInit {
|
|||
// Flip flag to show that loading has finished.
|
||||
this.isLoadingResults = false;
|
||||
this.resultsLength = data.total;
|
||||
|
||||
if (data.collection.filter(x => x.requestedUserId != null).length > 0 &&
|
||||
data.collection.filter(x => x.requestedUser != null).length > 0) {
|
||||
this.anonimized = false;
|
||||
}
|
||||
if (this.anonimized) {
|
||||
this.displayedColumns.forEach((element, index) => {
|
||||
if (element === 'requestedUser.requestedBy')
|
||||
{
|
||||
this.displayedColumns.splice(index, 1);
|
||||
}
|
||||
});
|
||||
}
|
||||
return data.collection;
|
||||
}),
|
||||
catchError((err) => {
|
||||
|
@ -199,4 +211,4 @@ export class MoviesGridComponent implements OnInit, AfterViewInit {
|
|||
this.ngAfterViewInit();
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ export class TvGridComponent implements OnInit, AfterViewInit {
|
|||
public defaultSort: string = "requestedDate";
|
||||
public defaultOrder: string = "desc";
|
||||
public currentFilter: RequestFilterType = RequestFilterType.All;
|
||||
public anonimized: boolean = true;
|
||||
|
||||
public RequestFilter = RequestFilterType;
|
||||
public manageOwnRequests: boolean;
|
||||
|
@ -90,6 +91,16 @@ export class TvGridComponent implements OnInit, AfterViewInit {
|
|||
this.isLoadingResults = false;
|
||||
this.resultsLength = data.total;
|
||||
|
||||
if (data.collection.filter(x => x.requestedUser != null).length > 0) {
|
||||
this.anonimized = false;
|
||||
}
|
||||
|
||||
if (this.anonimized) {
|
||||
this.displayedColumns.forEach((element, index) => {
|
||||
if (element == 'requestedBy') this.displayedColumns.splice(index, 1);
|
||||
});
|
||||
}
|
||||
|
||||
return data.collection;
|
||||
}),
|
||||
catchError((err) => {
|
||||
|
|
|
@ -1,85 +1,91 @@
|
|||
<settings-menu></settings-menu>
|
||||
<settings-menu></settings-menu>
|
||||
<div class="small-middle-container">
|
||||
<wiki></wiki>
|
||||
<fieldset *ngIf="form">
|
||||
<wiki></wiki>
|
||||
<fieldset *ngIf="form">
|
||||
<legend>Ombi Configuration</legend>
|
||||
<form novalidate [formGroup]="form" (ngSubmit)="onSubmit(form)">
|
||||
<div class="col-md-12 col-12 col-sm-12">
|
||||
<div class="md-form-field">
|
||||
<mat-form-field appearance="outline" >
|
||||
<mat-label>Base URL</mat-label>
|
||||
<input matInput formControlName="baseUrl">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="md-form-field">
|
||||
<mat-form-field appearance="outline">
|
||||
<mat-label>Api Key</mat-label>
|
||||
<input matInput id="ApiKey" name="ApiKey" formControlName="apiKey" readonly="readonly">
|
||||
<button type="button" matSuffix (click)="refreshApiKey()" style="display:inline-block;">
|
||||
<i class="fas fa-sync-alt fa-lg"></i>
|
||||
</button>
|
||||
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Branch" formControlName="branch" matTooltip="This will not update your current version, but only control the update checks on the About page">
|
||||
<mat-option [value]="Branch.Stable">
|
||||
Stable
|
||||
</mat-option>
|
||||
<mat-option [value]="Branch.Develop">
|
||||
Develop
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-slide-toggle formControlName="doNotSendNotificationsForAutoApprove">
|
||||
Do not send Notifications if a User has the Auto Approve permission</mat-slide-toggle>
|
||||
</div>
|
||||
<div>
|
||||
<mat-slide-toggle formControlName="hideRequestsUsers">
|
||||
Hide requests from other users
|
||||
</mat-slide-toggle>
|
||||
</div>
|
||||
<div>
|
||||
<mat-slide-toggle formControlName="autoDeleteAvailableRequests">
|
||||
Auto Delete Available Requests
|
||||
</mat-slide-toggle>
|
||||
</div>
|
||||
<div *ngIf="form.get('autoDeleteAvailableRequests').value">
|
||||
<mat-form-field appearance="outline" >
|
||||
<mat-label>Delete After Days of Availbility</mat-label>
|
||||
<input matInput formControlName="autoDeleteAfterDays">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-slide-toggle formControlName="collectAnalyticData" matTooltip="This will allow us to have a better understanding of the userbase so we know what we should be supporting (Uses Google Analytics)">
|
||||
Allow us to collect anonymous analytical data e.g. browser used
|
||||
</mat-slide-toggle>
|
||||
</div>
|
||||
<!-- <div>
|
||||
<mat-slide-toggle formControlName="disableHealthChecks">
|
||||
Disable the health checks page
|
||||
<a href="/healthchecks-ui" target="_blank">/healthchecks-ui</a>
|
||||
</mat-slide-toggle>
|
||||
</div> -->
|
||||
<div>
|
||||
<mat-form-field *ngIf="langauges">
|
||||
<mat-select matTooltip="This is the default site language for search results, the user can override this in their preferences page" placeholder="Language" formControlName="defaultLanguageCode">
|
||||
<mat-option>--</mat-option>
|
||||
<mat-option *ngFor="let lang of langauges" [value]="lang.code">
|
||||
{{lang.nativeName}}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button mat-raised-button [disabled]="form.invalid" type="submit" id="save" class="mat-stroked-button accent mat-accent">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 col-12 col-sm-12">
|
||||
<div class="md-form-field">
|
||||
<mat-form-field appearance="outline">
|
||||
<mat-label>Base URL</mat-label>
|
||||
<input matInput formControlName="baseUrl">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="md-form-field">
|
||||
<mat-form-field appearance="outline">
|
||||
<mat-label>Api Key</mat-label>
|
||||
<input matInput id="ApiKey" name="ApiKey" formControlName="apiKey" readonly="readonly">
|
||||
<button type="button" matSuffix (click)="refreshApiKey()" style="display:inline-block;">
|
||||
<i class="fas fa-sync-alt fa-lg"></i>
|
||||
</button>
|
||||
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Branch" formControlName="branch" matTooltip="This will not update your current version, but only control the update checks on the About page">
|
||||
<mat-option [value]="Branch.Stable">
|
||||
Stable
|
||||
</mat-option>
|
||||
<mat-option [value]="Branch.Develop">
|
||||
Develop
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-slide-toggle formControlName="doNotSendNotificationsForAutoApprove">
|
||||
Do not send Notifications if a User has the Auto Approve permission
|
||||
</mat-slide-toggle>
|
||||
</div>
|
||||
<div>
|
||||
<mat-slide-toggle formControlName="hideRequestsUsers">
|
||||
Hide requests from other users
|
||||
</mat-slide-toggle>
|
||||
</div>
|
||||
<div>
|
||||
<mat-slide-toggle formControlName="anonimizeRequests">
|
||||
Anonimize requests for other users
|
||||
</mat-slide-toggle>
|
||||
</div>
|
||||
<div>
|
||||
<mat-slide-toggle formControlName="autoDeleteAvailableRequests">
|
||||
Auto Delete Available Requests
|
||||
</mat-slide-toggle>
|
||||
</div>
|
||||
<div *ngIf="form.get('autoDeleteAvailableRequests').value">
|
||||
<mat-form-field appearance="outline">
|
||||
<mat-label>Delete After Days of Availbility</mat-label>
|
||||
<input matInput formControlName="autoDeleteAfterDays">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-slide-toggle formControlName="collectAnalyticData" matTooltip="This will allow us to have a better understanding of the userbase so we know what we should be supporting (Uses Google Analytics)">
|
||||
Allow us to collect anonymous analytical data e.g. browser used
|
||||
</mat-slide-toggle>
|
||||
</div>
|
||||
<!-- <div>
|
||||
<mat-slide-toggle formControlName="disableHealthChecks">
|
||||
Disable the health checks page
|
||||
<a href="/healthchecks-ui" target="_blank">/healthchecks-ui</a>
|
||||
</mat-slide-toggle>
|
||||
</div> -->
|
||||
<div>
|
||||
<mat-form-field *ngIf="langauges">
|
||||
<mat-select matTooltip="This is the default site language for search results, the user can override this in their preferences page" placeholder="Language" formControlName="defaultLanguageCode">
|
||||
<mat-option>--</mat-option>
|
||||
<mat-option *ngFor="let lang of langauges" [value]="lang.code">
|
||||
{{lang.nativeName}}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div>
|
||||
<button mat-raised-button [disabled]="form.invalid" type="submit" id="save" class="mat-stroked-button accent mat-accent">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</fieldset>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Component, OnInit } from "@angular/core";
|
||||
import { Component, OnInit } from "@angular/core";
|
||||
import { FormBuilder, FormGroup } from "@angular/forms";
|
||||
|
||||
import { Branch, ILanguageRefine, IOmbiSettings } from "../../interfaces";
|
||||
|
@ -29,6 +29,7 @@ export class OmbiComponent implements OnInit {
|
|||
baseUrl: [x.baseUrl],
|
||||
doNotSendNotificationsForAutoApprove: [x.doNotSendNotificationsForAutoApprove],
|
||||
hideRequestsUsers: [x.hideRequestsUsers],
|
||||
anonimizeRequests: [x.anonimizeRequests],
|
||||
defaultLanguageCode: [x.defaultLanguageCode],
|
||||
disableHealthChecks: [x.disableHealthChecks],
|
||||
autoDeleteAvailableRequests: [x.autoDeleteAvailableRequests],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue