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();
|
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]
|
[HttpPost]
|
||||||
public IActionResult RemoveUserFromHousehold(int userId)
|
public IActionResult RemoveUserFromHousehold(int userId)
|
||||||
@ -306,6 +316,12 @@ namespace CarCareTracker.Controllers
|
|||||||
return Json(result);
|
return Json(result);
|
||||||
}
|
}
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
|
public IActionResult LeaveHousehold(int userId)
|
||||||
|
{
|
||||||
|
var result = _userLogic.DeleteUserFromHousehold(userId, GetUserID());
|
||||||
|
return Json(result);
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
public IActionResult ModifyUserHouseholdPermissions(int userId, List<HouseholdPermission> permissions)
|
public IActionResult ModifyUserHouseholdPermissions(int userId, List<HouseholdPermission> permissions)
|
||||||
{
|
{
|
||||||
var result = _userLogic.UpdateUserHousehold(GetUserID(), userId, permissions);
|
var result = _userLogic.UpdateUserHousehold(GetUserID(), userId, permissions);
|
||||||
|
|||||||
@ -16,6 +16,7 @@ namespace CarCareTracker.Logic
|
|||||||
bool DeleteAllAccessToVehicle(int vehicleId);
|
bool DeleteAllAccessToVehicle(int vehicleId);
|
||||||
bool DeleteAllAccessToUser(int userId);
|
bool DeleteAllAccessToUser(int userId);
|
||||||
List<UserHouseholdViewModel> GetHouseholdForParentUserId(int parentUserId);
|
List<UserHouseholdViewModel> GetHouseholdForParentUserId(int parentUserId);
|
||||||
|
List<UserHouseholdViewModel> GetHouseholdForChildUserId(int childUserId);
|
||||||
OperationResponse AddUserToHousehold(int parentUserId, string childUsername);
|
OperationResponse AddUserToHousehold(int parentUserId, string childUsername);
|
||||||
bool UpdateUserHousehold(int parentUserId, int childUserId, List<HouseholdPermission> permissions);
|
bool UpdateUserHousehold(int parentUserId, int childUserId, List<HouseholdPermission> permissions);
|
||||||
bool DeleteUserFromHousehold(int parentUserId, int childUserId);
|
bool DeleteUserFromHousehold(int parentUserId, int childUserId);
|
||||||
@ -194,7 +195,7 @@ namespace CarCareTracker.Logic
|
|||||||
{
|
{
|
||||||
var result = _userHouseholdData.GetUserHouseholdByParentUserId(parentUserId);
|
var result = _userHouseholdData.GetUserHouseholdByParentUserId(parentUserId);
|
||||||
var convertedResult = new List<UserHouseholdViewModel>();
|
var convertedResult = new List<UserHouseholdViewModel>();
|
||||||
//convert useraccess to usercollaborator
|
//convert userhousehold to viewmodel
|
||||||
foreach (UserHousehold userHouseholdAccess in result)
|
foreach (UserHousehold userHouseholdAccess in result)
|
||||||
{
|
{
|
||||||
var userCollaborator = new UserHouseholdViewModel
|
var userCollaborator = new UserHouseholdViewModel
|
||||||
@ -206,6 +207,22 @@ namespace CarCareTracker.Logic
|
|||||||
}
|
}
|
||||||
return convertedResult;
|
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)
|
public OperationResponse AddUserToHousehold(int parentUserId, string childUsername)
|
||||||
{
|
{
|
||||||
//attempting to add to root user
|
//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
|
@using CarCareTracker.Helper
|
||||||
@inject IConfigHelper config
|
@inject IConfigHelper config
|
||||||
@inject ITranslationHelper translator
|
@inject ITranslationHelper translator
|
||||||
@model List<UserHouseholdViewModel>
|
@model UserHouseholdUserViewModel
|
||||||
@{
|
@{
|
||||||
var userConfig = config.GetUserConfig(User);
|
var userConfig = config.GetUserConfig(User);
|
||||||
var userLanguage = userConfig.UserLanguage;
|
var userLanguage = userConfig.UserLanguage;
|
||||||
@ -18,31 +18,62 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<table class="table table-hover">
|
@if (Model.Households.Any())
|
||||||
<thead class="sticky-top">
|
{
|
||||||
<tr class="d-flex">
|
<div style="max-height:30vh; overflow-y:auto;">
|
||||||
<th scope="col" class="col-6">@translator.Translate(userLanguage, "Username")</th>
|
<span class="lead">@translator.Translate(userLanguage, "These users are in your household")</span>
|
||||||
<th scope="col" class="col-4">@translator.Translate(userLanguage, "Role")</th>
|
<table class="table table-hover">
|
||||||
<th scope="col" class="col-2">@translator.Translate(userLanguage, "Remove")</th>
|
<thead class="sticky-top">
|
||||||
</tr>
|
<tr class="d-flex">
|
||||||
</thead>
|
<th scope="col" class="col-6">@translator.Translate(userLanguage, "Username")</th>
|
||||||
<tbody id="tokenTable">
|
<th scope="col" class="col-4">@translator.Translate(userLanguage, "Role")</th>
|
||||||
@foreach(UserHouseholdViewModel viewModel in Model)
|
<th scope="col" class="col-2">@translator.Translate(userLanguage, "Remove")</th>
|
||||||
{
|
</tr>
|
||||||
<tr class="d-flex">
|
</thead>
|
||||||
<td class="col-6">@viewModel.UserName</td>
|
<tbody id="tokenTable">
|
||||||
<td class="col-4">
|
@foreach (UserHouseholdViewModel viewModel in Model.Households)
|
||||||
<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>
|
<tr class="d-flex">
|
||||||
<!option @(viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && !viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="editor">@translator.Translate(userLanguage, "Editor")</!option>
|
<td class="col-6">@viewModel.UserName</td>
|
||||||
<!option @(viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="manager">@translator.Translate(userLanguage, "Manager")</!option>
|
<td class="col-4">
|
||||||
</select>
|
<select class="form-select" onchange="modifyUserHousehold(@viewModel.UserHousehold.Id.ChildUserId, this)">
|
||||||
</td>
|
<!option @(!viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && !viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="viewer">@translator.Translate(userLanguage, "Viewer")</!option>
|
||||||
<td class="col-2">
|
<!option @(viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && !viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="editor">@translator.Translate(userLanguage, "Editor")</!option>
|
||||||
<button type="button" class="btn btn-danger" onclick="removeUserFromHousehold(@viewModel.UserHousehold.Id.ChildUserId, this)"><i class="bi bi-trash"></i></button>
|
<!option @(viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Edit) && viewModel.UserHousehold.Permissions.Contains(HouseholdPermission.Delete) ? "selected" : "") value="manager">@translator.Translate(userLanguage, "Manager")</!option>
|
||||||
</td>
|
</select>
|
||||||
</tr>
|
</td>
|
||||||
}
|
<td class="col-2">
|
||||||
</tbody>
|
<button type="button" class="btn btn-danger" onclick="removeUserFromHousehold(@viewModel.UserHousehold.Id.ChildUserId, this)"><i class="bi bi-trash"></i></button>
|
||||||
</table>
|
</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>
|
</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) {
|
function modifyUserHousehold(userId, e) {
|
||||||
let selectedRole = $(e).val();
|
let selectedRole = $(e).val();
|
||||||
let permissions = [];
|
let permissions = [];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user