mirror of
https://github.com/hargata/lubelog.git
synced 2025-12-10 00:46:08 -06:00
Compare commits
2 Commits
2f95e0445c
...
3f5e3a4b97
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f5e3a4b97 | ||
|
|
ab967f1f52 |
@ -297,7 +297,17 @@ namespace CarCareTracker.Controllers
|
||||
{
|
||||
households = households.OrderBy(x => x.UserName).ToList();
|
||||
}
|
||||
return PartialView("_UserHouseholdModal", households);
|
||||
var userhouseholds = _userLogic.GetHouseholdForChildUserId(GetUserID());
|
||||
if (userhouseholds.Any())
|
||||
{
|
||||
userhouseholds = userhouseholds.OrderBy(x => x.UserName).ToList();
|
||||
}
|
||||
var viewModel = new UserHouseholdUserViewModel()
|
||||
{
|
||||
Households = households,
|
||||
UserHouseholds = userhouseholds
|
||||
};
|
||||
return PartialView("_UserHouseholdModal", viewModel);
|
||||
}
|
||||
[HttpPost]
|
||||
public IActionResult RemoveUserFromHousehold(int userId)
|
||||
@ -306,6 +316,12 @@ namespace CarCareTracker.Controllers
|
||||
return Json(result);
|
||||
}
|
||||
[HttpPost]
|
||||
public IActionResult LeaveHousehold(int userId)
|
||||
{
|
||||
var result = _userLogic.DeleteUserFromHousehold(userId, GetUserID());
|
||||
return Json(result);
|
||||
}
|
||||
[HttpPost]
|
||||
public IActionResult ModifyUserHouseholdPermissions(int userId, List<HouseholdPermission> permissions)
|
||||
{
|
||||
var result = _userLogic.UpdateUserHousehold(GetUserID(), userId, permissions);
|
||||
|
||||
@ -16,6 +16,7 @@ namespace CarCareTracker.Logic
|
||||
bool DeleteAllAccessToVehicle(int vehicleId);
|
||||
bool DeleteAllAccessToUser(int userId);
|
||||
List<UserHouseholdViewModel> GetHouseholdForParentUserId(int parentUserId);
|
||||
List<UserHouseholdViewModel> GetHouseholdForChildUserId(int childUserId);
|
||||
OperationResponse AddUserToHousehold(int parentUserId, string childUsername);
|
||||
bool UpdateUserHousehold(int parentUserId, int childUserId, List<HouseholdPermission> permissions);
|
||||
bool DeleteUserFromHousehold(int parentUserId, int childUserId);
|
||||
@ -194,7 +195,7 @@ namespace CarCareTracker.Logic
|
||||
{
|
||||
var result = _userHouseholdData.GetUserHouseholdByParentUserId(parentUserId);
|
||||
var convertedResult = new List<UserHouseholdViewModel>();
|
||||
//convert useraccess to usercollaborator
|
||||
//convert userhousehold to viewmodel
|
||||
foreach (UserHousehold userHouseholdAccess in result)
|
||||
{
|
||||
var userCollaborator = new UserHouseholdViewModel
|
||||
@ -206,6 +207,22 @@ namespace CarCareTracker.Logic
|
||||
}
|
||||
return convertedResult;
|
||||
}
|
||||
public List<UserHouseholdViewModel> GetHouseholdForChildUserId(int childUserId)
|
||||
{
|
||||
var result = _userHouseholdData.GetUserHouseholdByChildUserId(childUserId);
|
||||
var convertedResult = new List<UserHouseholdViewModel>();
|
||||
//convert userhousehold to viewmodel
|
||||
foreach (UserHousehold userHouseholdAccess in result)
|
||||
{
|
||||
var userCollaborator = new UserHouseholdViewModel
|
||||
{
|
||||
UserName = _userData.GetUserRecordById(userHouseholdAccess.Id.ParentUserId).UserName,
|
||||
UserHousehold = userHouseholdAccess
|
||||
};
|
||||
convertedResult.Add(userCollaborator);
|
||||
}
|
||||
return convertedResult;
|
||||
}
|
||||
public OperationResponse AddUserToHousehold(int parentUserId, string childUsername)
|
||||
{
|
||||
//attempting to add to root user
|
||||
|
||||
14
Models/User/UserHouseholdUserViewModel.cs
Normal file
14
Models/User/UserHouseholdUserViewModel.cs
Normal file
@ -0,0 +1,14 @@
|
||||
namespace CarCareTracker.Models
|
||||
{
|
||||
public class UserHouseholdUserViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// users that belongs in this user's household
|
||||
/// </summary>
|
||||
public List<UserHouseholdViewModel> Households { get; set; }
|
||||
/// <summary>
|
||||
/// households that this user belongs to
|
||||
/// </summary>
|
||||
public List<UserHouseholdViewModel> UserHouseholds { get; set; }
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
@using CarCareTracker.Helper
|
||||
@inject IConfigHelper config
|
||||
@inject ITranslationHelper translator
|
||||
@model List<UserHouseholdViewModel>
|
||||
@model UserHouseholdUserViewModel
|
||||
@{
|
||||
var userConfig = config.GetUserConfig(User);
|
||||
var userLanguage = userConfig.UserLanguage;
|
||||
@ -18,31 +18,62 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<table class="table table-hover">
|
||||
<thead class="sticky-top">
|
||||
<tr class="d-flex">
|
||||
<th scope="col" class="col-6">@translator.Translate(userLanguage, "Username")</th>
|
||||
<th scope="col" class="col-4">@translator.Translate(userLanguage, "Role")</th>
|
||||
<th scope="col" class="col-2">@translator.Translate(userLanguage, "Remove")</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tokenTable">
|
||||
@foreach(UserHouseholdViewModel viewModel in Model)
|
||||
{
|
||||
<tr class="d-flex">
|
||||
<td class="col-6">@viewModel.UserName</td>
|
||||
<td class="col-4">
|
||||
<select class="form-select" onchange="modifyUserHousehold(@viewModel.UserHousehold.Id.ChildUserId, this)">
|
||||
<!option @(!viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && !viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="viewer">@translator.Translate(userLanguage, "Viewer")</!option>
|
||||
<!option @(viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && !viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="editor">@translator.Translate(userLanguage, "Editor")</!option>
|
||||
<!option @(viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="manager">@translator.Translate(userLanguage, "Manager")</!option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="col-2">
|
||||
<button type="button" class="btn btn-danger" onclick="removeUserFromHousehold(@viewModel.UserHousehold.Id.ChildUserId, this)"><i class="bi bi-trash"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
@if (Model.Households.Any())
|
||||
{
|
||||
<div style="max-height:30vh; overflow-y:auto;">
|
||||
<span class="lead">@translator.Translate(userLanguage, "These users are in your household")</span>
|
||||
<table class="table table-hover">
|
||||
<thead class="sticky-top">
|
||||
<tr class="d-flex">
|
||||
<th scope="col" class="col-6">@translator.Translate(userLanguage, "Username")</th>
|
||||
<th scope="col" class="col-4">@translator.Translate(userLanguage, "Role")</th>
|
||||
<th scope="col" class="col-2">@translator.Translate(userLanguage, "Remove")</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tokenTable">
|
||||
@foreach (UserHouseholdViewModel viewModel in Model.Households)
|
||||
{
|
||||
<tr class="d-flex">
|
||||
<td class="col-6">@viewModel.UserName</td>
|
||||
<td class="col-4">
|
||||
<select class="form-select" onchange="modifyUserHousehold(@viewModel.UserHousehold.Id.ChildUserId, this)">
|
||||
<!option @(!viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && !viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="viewer">@translator.Translate(userLanguage, "Viewer")</!option>
|
||||
<!option @(viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && !viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="editor">@translator.Translate(userLanguage, "Editor")</!option>
|
||||
<!option @(viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="manager">@translator.Translate(userLanguage, "Manager")</!option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="col-2">
|
||||
<button type="button" class="btn btn-danger" onclick="removeUserFromHousehold(@viewModel.UserHousehold.Id.ChildUserId, this)"><i class="bi bi-trash"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
@if (Model.UserHouseholds.Any())
|
||||
{
|
||||
<div style="max-height:30vh; overflow-y:auto;">
|
||||
<span class="lead">@translator.Translate(userLanguage, "You are a member of these households")</span>
|
||||
<table class="table table-hover">
|
||||
<thead class="sticky-top">
|
||||
<tr class="d-flex">
|
||||
<th scope="col" class="col-10">@translator.Translate(userLanguage, "Username")</th>
|
||||
<th scope="col" class="col-2">@translator.Translate(userLanguage, "Leave")</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tokenTable">
|
||||
@foreach (UserHouseholdViewModel viewModel in Model.UserHouseholds)
|
||||
{
|
||||
<tr class="d-flex">
|
||||
<td class="col-10">@viewModel.UserName</td>
|
||||
<td class="col-2">
|
||||
<button type="button" class="btn btn-outline-danger" onclick="leaveHousehold(@viewModel.UserHousehold.Id.ParentUserId, this)"><i class="bi bi-person-walking"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
File diff suppressed because one or more lines are too long
@ -601,6 +601,16 @@ function removeUserFromHousehold(userId) {
|
||||
}
|
||||
})
|
||||
}
|
||||
function leaveHousehold(userId) {
|
||||
$.post('/Home/LeaveHousehold', { userId: userId }, function (data) {
|
||||
if (data) {
|
||||
successToast('Household Exited');
|
||||
showHouseholdModal();
|
||||
} else {
|
||||
errorToast(genericErrorMessage())
|
||||
}
|
||||
});
|
||||
}
|
||||
function modifyUserHousehold(userId, e) {
|
||||
let selectedRole = $(e).val();
|
||||
let permissions = [];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user