mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-19 21:03:17 -07:00
Adding wrappers and classes for LC and toggling active style for UI elements.
This commit is contained in:
parent
8a94f967a3
commit
b82c43356f
6 changed files with 150 additions and 108 deletions
|
@ -14,32 +14,32 @@
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
|
<ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
|
||||||
<li>
|
<li>
|
||||||
<a (click)="setOrder('requestedDate')">{{ 'Requests.SortRequestDate' | translate }}
|
<a class="active" (click)="setOrder('requestedDate', $event)">{{ 'Requests.SortRequestDate' | translate }}
|
||||||
<span *ngIf="order === 'requestedDate'">
|
<span *ngIf="order === 'requestedDate'">
|
||||||
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
|
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
|
||||||
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
|
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<a (click)="setOrder('title')">{{ 'Requests.SortTitle' | translate}}
|
<a (click)="setOrder('title', $event)">{{ 'Requests.SortTitle' | translate}}
|
||||||
<span *ngIf="order === 'title'">
|
<span *ngIf="order === 'title'">
|
||||||
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
|
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
|
||||||
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
|
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<a (click)="setOrder('releaseDate')">{{ 'Requests.TheatricalReleaseSort' | translate }}
|
<a (click)="setOrder('releaseDate', $event)">{{ 'Requests.TheatricalReleaseSort' | translate }}
|
||||||
<span *ngIf="order === 'releaseDate'">
|
<span *ngIf="order === 'releaseDate'">
|
||||||
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
|
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
|
||||||
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
|
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<a (click)="setOrder('requestedUser.userAlias')">{{ 'Requests.SortRequestedBy' | translate }}
|
<a (click)="setOrder('requestedUser.userAlias', $event)">{{ 'Requests.SortRequestedBy' | translate }}
|
||||||
<span *ngIf="order === 'requestedUser.userAlias'">
|
<span *ngIf="order === 'requestedUser.userAlias'">
|
||||||
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
|
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
|
||||||
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
|
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a (click)="setOrder('status')">{{ 'Requests.SortStatus' | translate }}
|
<a (click)="setOrder('status', $event)">{{ 'Requests.SortStatus' | translate }}
|
||||||
<span *ngIf="order === 'status'">
|
<span *ngIf="order === 'status'">
|
||||||
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
|
<span [hidden]="reverse"><small><i class="fa fa-arrow-down" aria-hidden="true"></i></small></span>
|
||||||
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
|
<span [hidden]="!reverse"><small><i class="fa fa-arrow-up" aria-hidden="true"></i></small></span>
|
||||||
|
@ -78,18 +78,19 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div class="request-info">
|
||||||
|
<div class="request-by">
|
||||||
<span>{{ 'Requests.RequestedBy' | translate }} </span>
|
<span>{{ 'Requests.RequestedBy' | translate }} </span>
|
||||||
<span *ngIf="!isAdmin">{{request.requestedUser.userName}}</span>
|
<span *ngIf="!isAdmin">{{request.requestedUser.userName}}</span>
|
||||||
<span *ngIf="isAdmin && request.requestedUser.alias">{{request.requestedUser.alias}}</span>
|
<span *ngIf="isAdmin && request.requestedUser.alias">{{request.requestedUser.alias}}</span>
|
||||||
<span *ngIf="isAdmin && !request.requestedUser.alias">{{request.requestedUser.userName}}</span>
|
<span *ngIf="isAdmin && !request.requestedUser.alias">{{request.requestedUser.userName}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div class="request-status">
|
||||||
<span>{{ 'Requests.Status' | translate }} </span>
|
<span>{{ 'Requests.Status' | translate }} </span>
|
||||||
<span class="label label-success" id="requestedStatusLabel">{{request.status}}</span>
|
<span class="label label-success" id="requestedStatusLabel">{{request.status}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div class="requested-status">
|
||||||
<span>{{ 'Requests.RequestStatus' | translate }} </span>
|
<span>{{ 'Requests.RequestStatus' | translate }} </span>
|
||||||
<span *ngIf="request.available" class="label label-success" id="availableLabel" [translate]="'Common.Available'"></span>
|
<span *ngIf="request.available" class="label label-success" id="availableLabel" [translate]="'Common.Available'"></span>
|
||||||
<span *ngIf="request.approved && !request.available" id="processingRequestLabel" class="label label-info" [translate]="'Common.ProcessingRequest'"></span>
|
<span *ngIf="request.approved && !request.available" id="processingRequestLabel" class="label label-info" [translate]="'Common.ProcessingRequest'"></span>
|
||||||
|
@ -112,6 +113,7 @@
|
||||||
<div *ngIf="request.digitalReleaseDate" id="digitalReleaseDate">{{ 'Requests.DigitalRelease' | translate: {date: request.digitalReleaseDate | date: 'mediumDate'} }}</div>
|
<div *ngIf="request.digitalReleaseDate" id="digitalReleaseDate">{{ 'Requests.DigitalRelease' | translate: {date: request.digitalReleaseDate | date: 'mediumDate'} }}</div>
|
||||||
<div id="requestedDate">{{ 'Requests.RequestDate' | translate }} {{request.requestedDate | date}}</div>
|
<div id="requestedDate">{{ 'Requests.RequestDate' | translate }} {{request.requestedDate | date}}</div>
|
||||||
<br />
|
<br />
|
||||||
|
</div>
|
||||||
<div *ngIf="isAdmin">
|
<div *ngIf="isAdmin">
|
||||||
<div *ngIf="request.qualityOverrideTitle">{{ 'Requests.QualityOverride' | translate }}
|
<div *ngIf="request.qualityOverrideTitle">{{ 'Requests.QualityOverride' | translate }}
|
||||||
<span>{{request.qualityOverrideTitle}} </span>
|
<span>{{request.qualityOverrideTitle}} </span>
|
||||||
|
@ -127,13 +129,15 @@
|
||||||
<div *ngIf="!request.approved" id="approveBtn">
|
<div *ngIf="!request.approved" id="approveBtn">
|
||||||
<form>
|
<form>
|
||||||
<button (click)="approve(request)" style="text-align: right" class="btn btn-sm btn-success-outline approve" type="submit">
|
<button (click)="approve(request)" style="text-align: right" class="btn btn-sm btn-success-outline approve" type="submit">
|
||||||
<i class="fa fa-plus"></i> {{ 'Common.Approve' | translate }}</button>
|
<i class="fa fa-plus"></i> {{ 'Common.Approve' | translate }}
|
||||||
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<!--Radarr Root Folder-->
|
<!--Radarr Root Folder-->
|
||||||
<div *ngIf="radarrRootFolders" class="btn-group btn-split" id="rootFolderBtn">
|
<div *ngIf="radarrRootFolders" class="btn-group btn-split" id="rootFolderBtn">
|
||||||
<button type="button" class="btn btn-sm btn-warning-outline">
|
<button type="button" class="btn btn-sm btn-warning-outline">
|
||||||
<i class="fa fa-plus"></i> {{ 'Requests.ChangeRootFolder' | translate }}</button>
|
<i class="fa fa-plus"></i> {{ 'Requests.ChangeRootFolder' | translate }}
|
||||||
|
</button>
|
||||||
<button type="button" class="btn btn-warning-outline dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<button type="button" class="btn btn-warning-outline dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="caret"></span>
|
<span class="caret"></span>
|
||||||
<span class="sr-only">Toggle Dropdown</span>
|
<span class="sr-only">Toggle Dropdown</span>
|
||||||
|
@ -148,7 +152,8 @@
|
||||||
<!--Radarr Quality Profiles -->
|
<!--Radarr Quality Profiles -->
|
||||||
<div *ngIf="radarrProfiles" class="btn-group btn-split" id="changeQualityBtn">
|
<div *ngIf="radarrProfiles" class="btn-group btn-split" id="changeQualityBtn">
|
||||||
<button type="button" class="btn btn-sm btn-warning-outline">
|
<button type="button" class="btn btn-sm btn-warning-outline">
|
||||||
<i class="fa fa-plus"></i> {{ 'Requests.ChangeQualityProfile' | translate }}</button>
|
<i class="fa fa-plus"></i> {{ 'Requests.ChangeQualityProfile' | translate }}
|
||||||
|
</button>
|
||||||
<button type="button" class="btn btn-warning-outline dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
<button type="button" class="btn btn-warning-outline dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="caret"></span>
|
<span class="caret"></span>
|
||||||
<span class="sr-only">Toggle Dropdown</span>
|
<span class="sr-only">Toggle Dropdown</span>
|
||||||
|
@ -162,19 +167,23 @@
|
||||||
|
|
||||||
<div *ngIf="!request.denied" id="denyBtn">
|
<div *ngIf="!request.denied" id="denyBtn">
|
||||||
<button type="button" (click)="deny(request)" class="btn btn-sm btn-danger-outline deny">
|
<button type="button" (click)="deny(request)" class="btn btn-sm btn-danger-outline deny">
|
||||||
<i class="fa fa-times"></i> {{ 'Requests.Deny' | translate }}</button>
|
<i class="fa fa-times"></i> {{ 'Requests.Deny' | translate }}
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form id="removeBtn">
|
<form id="removeBtn">
|
||||||
<button (click)="removeRequest(request)" style="text-align: right" class="btn btn-sm btn-danger-outline delete">
|
<button (click)="removeRequest(request)" style="text-align: right" class="btn btn-sm btn-danger-outline delete">
|
||||||
<i class="fa fa-minus"></i> {{ 'Requests.Remove' | translate }}</button>
|
<i class="fa fa-minus"></i> {{ 'Requests.Remove' | translate }}
|
||||||
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<form id="markBtnGroup">
|
<form id="markBtnGroup">
|
||||||
<button id="unavailableBtn" *ngIf="request.available" (click)="changeAvailability(request, false)" style="text-align: right" value="false" class="btn btn-sm btn-info-outline change">
|
<button id="unavailableBtn" *ngIf="request.available" (click)="changeAvailability(request, false)" style="text-align: right" value="false" class="btn btn-sm btn-info-outline change">
|
||||||
<i class="fa fa-minus"></i> {{ 'Requests.MarkUnavailable' | translate }}</button>
|
<i class="fa fa-minus"></i> {{ 'Requests.MarkUnavailable' | translate }}
|
||||||
|
</button>
|
||||||
<button id="availableBtn" *ngIf="!request.available" (click)="changeAvailability(request, true)" style="text-align: right" value="true" class="btn btn-sm btn-success-outline change">
|
<button id="availableBtn" *ngIf="!request.available" (click)="changeAvailability(request, true)" style="text-align: right" value="true" class="btn btn-sm btn-success-outline change">
|
||||||
<i class="fa fa-plus"></i> {{ 'Requests.MarkAvailable' | translate }}</button>
|
<i class="fa fa-plus"></i> {{ 'Requests.MarkAvailable' | translate }}
|
||||||
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -175,11 +175,18 @@ export class MovieRequestsComponent implements OnInit {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public setOrder(value: string) {
|
public setOrder(value: string, el: any) {
|
||||||
|
el = el.toElement || el.relatedTarget || el.target || el.srcElement;
|
||||||
|
|
||||||
|
let parent = el.parentElement;
|
||||||
|
let previousFilter = parent.querySelector(".active");
|
||||||
|
|
||||||
if (this.order === value) {
|
if (this.order === value) {
|
||||||
this.reverse = !this.reverse;
|
this.reverse = !this.reverse;
|
||||||
|
} else {
|
||||||
|
previousFilter.className = "";
|
||||||
|
el.className = "active";
|
||||||
}
|
}
|
||||||
|
|
||||||
this.order = value;
|
this.order = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,19 @@ export class TvRequestsComponent implements OnInit {
|
||||||
|
|
||||||
public openClosestTab(el: any) {
|
public openClosestTab(el: any) {
|
||||||
const rowclass = "undefined ng-star-inserted";
|
const rowclass = "undefined ng-star-inserted";
|
||||||
el = el.toElement || el.relatedTarget || el.target;
|
el = el.toElement || el.relatedTarget || el.target || el.srcElement;
|
||||||
|
|
||||||
|
if (el.nodeName === "BUTTON") {
|
||||||
|
|
||||||
|
let isButtonAlreadyActive = el.parentElement.querySelector(".active");
|
||||||
|
// if a Button already has Class: .active
|
||||||
|
if (isButtonAlreadyActive) {
|
||||||
|
isButtonAlreadyActive.classList.remove("active");
|
||||||
|
} else {
|
||||||
|
el.className += " active";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while (el.className !== rowclass) {
|
while (el.className !== rowclass) {
|
||||||
// Increment the loop to the parent node until we find the row we need
|
// Increment the loop to the parent node until we find the row we need
|
||||||
el = el.parentNode;
|
el = el.parentNode;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<div *ngIf="user">
|
<div *ngIf="user">
|
||||||
|
<div class="user-details">
|
||||||
<h3>User: {{user.userName}}</h3>
|
<h3>User: {{user.userName}}</h3>
|
||||||
<button type="button" class="btn btn-primary-outline" style="float:right;" [routerLink]="['/usermanagement/']">Back</button>
|
<button type="button" class="btn btn-primary-outline" style="float:right;" [routerLink]="['/usermanagement/']">Back</button>
|
||||||
|
|
||||||
|
@ -66,3 +67,4 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
|
@ -16,7 +16,7 @@
|
||||||
</td>
|
</td>
|
||||||
</a>
|
</a>
|
||||||
</th>
|
</th>
|
||||||
<th (click)="setOrder('userName')">
|
<th class="active" (click)="setOrder('userName', $event)">
|
||||||
<a>
|
<a>
|
||||||
Username
|
Username
|
||||||
</a>
|
</a>
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
|
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
|
||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
<th (click)="setOrder('alias')">
|
<th (click)="setOrder('alias', $event)">
|
||||||
<a>
|
<a>
|
||||||
Alias
|
Alias
|
||||||
</a>
|
</a>
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
|
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
|
||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
<th (click)="setOrder('emailAddress')">
|
<th (click)="setOrder('emailAddress', $event)">
|
||||||
<a>
|
<a>
|
||||||
Email
|
Email
|
||||||
</a>
|
</a>
|
||||||
|
@ -44,13 +44,13 @@
|
||||||
<th>
|
<th>
|
||||||
Roles
|
Roles
|
||||||
</th>
|
</th>
|
||||||
<th (click)="setOrder('lastLoggedIn')">
|
<th (click)="setOrder('lastLoggedIn', $event)">
|
||||||
<a> Last Logged In</a>
|
<a> Last Logged In</a>
|
||||||
<span *ngIf="order === 'lastLoggedIn'">
|
<span *ngIf="order === 'lastLoggedIn'">
|
||||||
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
|
<span [hidden]="reverse"><i class="fa fa-arrow-down" aria-hidden="true"></i></span><span [hidden]="!reverse"><i class="fa fa-arrow-up" aria-hidden="true"></i></span>
|
||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
<th (click)="setOrder('userType')">
|
<th (click)="setOrder('userType', $event)">
|
||||||
<a>
|
<a>
|
||||||
User Type
|
User Type
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -93,9 +93,21 @@ export class UserManagementComponent implements OnInit {
|
||||||
this.bulkEpisodeLimit = undefined;
|
this.bulkEpisodeLimit = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
public setOrder(value: string) {
|
public setOrder(value: string, el: any) {
|
||||||
|
el = el.toElement || el.relatedTarget || el.target || el.srcElement;
|
||||||
|
|
||||||
|
if (el.nodeName === "A") {
|
||||||
|
el = el.parentElement;
|
||||||
|
}
|
||||||
|
|
||||||
|
let parent = el.parentElement;
|
||||||
|
let previousFilter = parent.querySelector(".active");
|
||||||
|
|
||||||
if (this.order === value) {
|
if (this.order === value) {
|
||||||
this.reverse = !this.reverse;
|
this.reverse = !this.reverse;
|
||||||
|
} else {
|
||||||
|
previousFilter.className = "";
|
||||||
|
el.className = "active";
|
||||||
}
|
}
|
||||||
|
|
||||||
this.order = value;
|
this.order = value;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue