mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-11 07:46:05 -07:00
Fixed where a user could see the delete button on the issues page
This commit is contained in:
parent
419bf0270e
commit
52fd1c7844
8 changed files with 27 additions and 22 deletions
5
PlexRequests.UI/Content/issues.js
vendored
5
PlexRequests.UI/Content/issues.js
vendored
|
@ -264,8 +264,9 @@ function buildIssueContext(result) {
|
||||||
requestId: result.requestId,
|
requestId: result.requestId,
|
||||||
type: result.type,
|
type: result.type,
|
||||||
title: result.title,
|
title: result.title,
|
||||||
issues: result.issues
|
issues: result.issues,
|
||||||
};
|
admin: result.admin
|
||||||
|
};
|
||||||
|
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,7 @@ namespace PlexRequests.UI.Models
|
||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
public string Issues { get; set; }
|
public string Issues { get; set; }
|
||||||
public string Type { get; set; }
|
public string Type { get; set; }
|
||||||
|
public bool Admin { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -262,11 +262,11 @@ namespace PlexRequests.UI.Modules
|
||||||
}
|
}
|
||||||
if (!model.CollectAnalyticData)
|
if (!model.CollectAnalyticData)
|
||||||
{
|
{
|
||||||
await Analytics.TrackEventAsync(Category.Admin, Action.Save, "CollectAnalyticData turned off", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Admin, Action.Save, "CollectAnalyticData turned off", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
}
|
}
|
||||||
var result = PrService.SaveSettings(model);
|
var result = PrService.SaveSettings(model);
|
||||||
|
|
||||||
await Analytics.TrackEventAsync(Category.Admin, Action.Save, "PlexRequestSettings", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Admin, Action.Save, "PlexRequestSettings", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
return Response.AsJson(result
|
return Response.AsJson(result
|
||||||
? new JsonResponseModel { Result = true }
|
? new JsonResponseModel { Result = true }
|
||||||
: new JsonResponseModel { Result = false, Message = "We could not save to the database, please try again" });
|
: new JsonResponseModel { Result = false, Message = "We could not save to the database, please try again" });
|
||||||
|
|
|
@ -71,7 +71,7 @@ namespace PlexRequests.UI.Modules
|
||||||
var response = Context.GetRedirect(returnUrl);
|
var response = Context.GetRedirect(returnUrl);
|
||||||
|
|
||||||
response.WithCookie(CultureCookieName, cookie ?? culture, DateTime.Now.AddYears(1));
|
response.WithCookie(CultureCookieName, cookie ?? culture, DateTime.Now.AddYears(1));
|
||||||
await Analytics.TrackEventAsync(Category.Navbar, PlexRequests.Helpers.Analytics.Action.Language, culture, Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Navbar, PlexRequests.Helpers.Analytics.Action.Language, culture, Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ namespace PlexRequests.UI.Modules
|
||||||
|
|
||||||
foreach (var i in issuesModels)
|
foreach (var i in issuesModels)
|
||||||
{
|
{
|
||||||
var model = new IssuesViewModel { Id = i.Id, RequestId = i.RequestId, Title = i.Title, Type = i.Type.ToString().ToCamelCaseWords(), };
|
var model = new IssuesViewModel { Id = i.Id, RequestId = i.RequestId, Title = i.Title, Type = i.Type.ToString().ToCamelCaseWords(), Admin = IsAdmin };
|
||||||
|
|
||||||
// Create a string with all of the current issue states with a "," delimiter in e.g. Wrong Content, Playback Issues
|
// Create a string with all of the current issue states with a "," delimiter in e.g. Wrong Content, Playback Issues
|
||||||
var state = i.Issues.Select(x => x.Issue).ToArray();
|
var state = i.Issues.Select(x => x.Issue).ToArray();
|
||||||
|
|
|
@ -158,19 +158,19 @@ namespace PlexRequests.UI.Modules
|
||||||
|
|
||||||
private async Task<Response> UpcomingMovies()
|
private async Task<Response> UpcomingMovies()
|
||||||
{
|
{
|
||||||
await Analytics.TrackEventAsync(Category.Search, Action.Movie, "Upcoming", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Search, Action.Movie, "Upcoming", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
return await ProcessMovies(MovieSearchType.Upcoming, string.Empty);
|
return await ProcessMovies(MovieSearchType.Upcoming, string.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<Response> CurrentlyPlayingMovies()
|
private async Task<Response> CurrentlyPlayingMovies()
|
||||||
{
|
{
|
||||||
await Analytics.TrackEventAsync(Category.Search, Action.Movie, "CurrentlyPlaying", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Search, Action.Movie, "CurrentlyPlaying", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
return await ProcessMovies(MovieSearchType.CurrentlyPlaying, string.Empty);
|
return await ProcessMovies(MovieSearchType.CurrentlyPlaying, string.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<Response> SearchMovie(string searchTerm)
|
private async Task<Response> SearchMovie(string searchTerm)
|
||||||
{
|
{
|
||||||
await Analytics.TrackEventAsync(Category.Search, Action.Movie, searchTerm, Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Search, Action.Movie, searchTerm, Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
return await ProcessMovies(MovieSearchType.Search, searchTerm);
|
return await ProcessMovies(MovieSearchType.Search, searchTerm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,7 +285,7 @@ namespace PlexRequests.UI.Modules
|
||||||
|
|
||||||
private async Task<Response> SearchTvShow(string searchTerm)
|
private async Task<Response> SearchTvShow(string searchTerm)
|
||||||
{
|
{
|
||||||
await Analytics.TrackEventAsync(Category.Search, Action.TvShow, searchTerm, Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Search, Action.TvShow, searchTerm, Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
var plexSettings = await PlexService.GetSettingsAsync();
|
var plexSettings = await PlexService.GetSettingsAsync();
|
||||||
Log.Trace("Searching for TV Show {0}", searchTerm);
|
Log.Trace("Searching for TV Show {0}", searchTerm);
|
||||||
|
|
||||||
|
@ -373,7 +373,7 @@ namespace PlexRequests.UI.Modules
|
||||||
|
|
||||||
private async Task<Response> SearchMusic(string searchTerm)
|
private async Task<Response> SearchMusic(string searchTerm)
|
||||||
{
|
{
|
||||||
await Analytics.TrackEventAsync(Category.Search, Action.Album, searchTerm, Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Search, Action.Album, searchTerm, Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
var apiAlbums = new List<Release>();
|
var apiAlbums = new List<Release>();
|
||||||
await Task.Run(() => MusicBrainzApi.SearchAlbum(searchTerm)).ContinueWith((t) =>
|
await Task.Run(() => MusicBrainzApi.SearchAlbum(searchTerm)).ContinueWith((t) =>
|
||||||
{
|
{
|
||||||
|
@ -431,7 +431,7 @@ namespace PlexRequests.UI.Modules
|
||||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "You have reached your weekly request limit for Movies! Please contact your admin." });
|
return Response.AsJson(new JsonResponseModel { Result = false, Message = "You have reached your weekly request limit for Movies! Please contact your admin." });
|
||||||
}
|
}
|
||||||
|
|
||||||
await Analytics.TrackEventAsync(Category.Search, Action.Request, "Movie", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Search, Action.Request, "Movie", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
var movieInfo = MovieApi.GetMovieInformation(movieId).Result;
|
var movieInfo = MovieApi.GetMovieInformation(movieId).Result;
|
||||||
var fullMovieName = $"{movieInfo.Title}{(movieInfo.ReleaseDate.HasValue ? $" ({movieInfo.ReleaseDate.Value.Year})" : string.Empty)}";
|
var fullMovieName = $"{movieInfo.Title}{(movieInfo.ReleaseDate.HasValue ? $" ({movieInfo.ReleaseDate.Value.Year})" : string.Empty)}";
|
||||||
Log.Trace("Getting movie info from TheMovieDb");
|
Log.Trace("Getting movie info from TheMovieDb");
|
||||||
|
@ -536,7 +536,7 @@ namespace PlexRequests.UI.Modules
|
||||||
{
|
{
|
||||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "You have reached your weekly request limit for TV Shows! Please contact your admin." });
|
return Response.AsJson(new JsonResponseModel { Result = false, Message = "You have reached your weekly request limit for TV Shows! Please contact your admin." });
|
||||||
}
|
}
|
||||||
await Analytics.TrackEventAsync(Category.Search, Action.Request, "TvShow", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Search, Action.Request, "TvShow", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
var tvApi = new TvMazeApi();
|
var tvApi = new TvMazeApi();
|
||||||
|
|
||||||
var showInfo = tvApi.ShowLookupByTheTvDbId(showId);
|
var showInfo = tvApi.ShowLookupByTheTvDbId(showId);
|
||||||
|
@ -689,7 +689,7 @@ namespace PlexRequests.UI.Modules
|
||||||
{
|
{
|
||||||
return Response.AsJson(new JsonResponseModel { Result = false, Message = "You have reached your weekly request limit for Albums! Please contact your admin." });
|
return Response.AsJson(new JsonResponseModel { Result = false, Message = "You have reached your weekly request limit for Albums! Please contact your admin." });
|
||||||
}
|
}
|
||||||
await Analytics.TrackEventAsync(Category.Search, Action.Request, "Album", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
Analytics.TrackEventAsync(Category.Search, Action.Request, "Album", Username, CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
var existingRequest = await RequestService.CheckRequestAsync(releaseId);
|
var existingRequest = await RequestService.CheckRequestAsync(releaseId);
|
||||||
Log.Debug("Checking for an existing request");
|
Log.Debug("Checking for an existing request");
|
||||||
|
|
||||||
|
@ -808,7 +808,7 @@ namespace PlexRequests.UI.Modules
|
||||||
|
|
||||||
private async Task<Response> NotifyUser(bool notify)
|
private async Task<Response> NotifyUser(bool notify)
|
||||||
{
|
{
|
||||||
await Analytics.TrackEventAsync(Category.Search, Action.Save, "NotifyUser", Username, CookieHelper.GetAnalyticClientId(Cookies), notify ? 1 : 0);
|
Analytics.TrackEventAsync(Category.Search, Action.Save, "NotifyUser", Username, CookieHelper.GetAnalyticClientId(Cookies), notify ? 1 : 0);
|
||||||
var authSettings = await Auth.GetSettingsAsync();
|
var authSettings = await Auth.GetSettingsAsync();
|
||||||
var auth = authSettings.UserAuthentication;
|
var auth = authSettings.UserAuthentication;
|
||||||
var emailSettings = await EmailNotificationSettings.GetSettingsAsync();
|
var emailSettings = await EmailNotificationSettings.GetSettingsAsync();
|
||||||
|
|
|
@ -80,13 +80,14 @@ namespace PlexRequests.UI.Modules
|
||||||
|
|
||||||
if (landingSettings.BeforeLogin)
|
if (landingSettings.BeforeLogin)
|
||||||
{
|
{
|
||||||
await
|
#pragma warning disable 4014
|
||||||
Analytics.TrackEventAsync(
|
Analytics.TrackEventAsync(
|
||||||
Category.LandingPage,
|
#pragma warning restore 4014
|
||||||
Action.View,
|
Category.LandingPage,
|
||||||
"Going To LandingPage before login",
|
Action.View,
|
||||||
Username,
|
"Going To LandingPage before login",
|
||||||
CookieHelper.GetAnalyticClientId(Cookies));
|
Username,
|
||||||
|
CookieHelper.GetAnalyticClientId(Cookies));
|
||||||
|
|
||||||
var model = new LandingPageViewModel
|
var model = new LandingPageViewModel
|
||||||
{
|
{
|
||||||
|
|
|
@ -83,10 +83,12 @@
|
||||||
<div class="col-sm-1">
|
<div class="col-sm-1">
|
||||||
<a href="" id="{{id}}link" class="btn btn-sm btn-info-outline approve"><i class="fa fa-info"></i> Details</a>
|
<a href="" id="{{id}}link" class="btn btn-sm btn-info-outline approve"><i class="fa fa-info"></i> Details</a>
|
||||||
<br />
|
<br />
|
||||||
|
{{#if admin}}
|
||||||
<form action="@formAction/issues/remove" method="post" id="delete{{id}}">
|
<form action="@formAction/issues/remove" method="post" id="delete{{id}}">
|
||||||
<input id="issueId" name="issueId" value="{{id}}" hidden="hidden" />
|
<input id="issueId" name="issueId" value="{{id}}" hidden="hidden" />
|
||||||
<button type="submit" id="{{id}}" class="btn btn-sm btn-danger-outline dropdown-toggle delete">Remove</button>
|
<button type="submit" id="{{id}}" class="btn btn-sm btn-danger-outline dropdown-toggle delete">Remove</button>
|
||||||
</form>
|
</form>
|
||||||
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue