mirror of
https://github.com/bitwarden/server.git
synced 2026-01-31 14:13:18 +08:00
* [AC-1637] Added HtmlEncodingStringConverter to encode/decode special chars on JSON serialization/deserialization
* [AC-1637] Added unit tests for HtmlEncodingStringConverter
* [AC-1637] Moved expected values on unit tests to the arrange phase
* [AC-1637] Added HtmlEncodingStringConverter to properties that are for input/output of Org Name and Business name
* [AC-1637] Modified views in Admin project to decode values to display
* [AC-1637] Replaced Html.Raw with HttpUtility.HtmlDecode
* [AC-1637] Added JsonConverter to Provider DTOs
* [AC-1637] Modified HandlebarsMailService to decode organization name before sending emails
* Revert "[AC-1637] Added JsonConverter to Provider DTOs"
This reverts commit 94d507cf93.
* [AC-1637] Fixed Admin panel organization search
* [AC-1637] Sanitizing Organization name and business name on creation in Admin panel
* [AC-1637] Sanitizing organization name and business name on creation by a provider
* [AC-1637] Sanitizing provider name on creation and on viewing in admin panel
* [AC-1637] Added sanitization to more places where Org name is used
* [AC-1637] Swapped using HttpUtility for WebUtility since the later is part of the dotnet framework
* [AC-1637] Updated error messages
* [AC-1637] Decoding on Admin panel add existing organization
* [AC-1637] Fix HTML decoding issues
* [AC-1637] Refactor HTML decoding in View and Model classes on Admin panel
* [AC-1637] Refactor provider name and business name usages to use methods that output decoded values
* [AC-1637] Fixed typo
* [AC-1637] Renamed Provider methods to retrieve Decoded Name and BusinessName
* [AC-1637] Renamed Organization methods to retrieve Decoded Name and BusinessName
* [AC-1637] Update the display name method in the `ProviderOrganizationOrganizationDetails` class to `DisplayName()`
97 lines
4.0 KiB
Plaintext
97 lines
4.0 KiB
Plaintext
@using Bit.SharedWeb.Utilities
|
|
@model OrganizationUnassignedToProviderSearchViewModel
|
|
|
|
@{
|
|
ViewData["Title"] = "Add Existing Organization";
|
|
var providerId = ViewContext.RouteData.Values["id"];
|
|
}
|
|
|
|
<h1>Add Existing Organization</h1>
|
|
<div class="row mb-2">
|
|
<div class="col">
|
|
<form class="form-inline mb-2" method="get" asp-route-id="@providerId">
|
|
<label class="sr-only" asp-for="OrganizationName"></label>
|
|
<input type="text" class="form-control mb-2 mr-2 flex-fill" placeholder="@Html.DisplayNameFor(m => m.OrganizationName)" asp-for="OrganizationName" name="name">
|
|
<label class="sr-only" asp-for="OrganizationOwnerEmail"></label>
|
|
<input type="email" class="form-control mb-2 mr-2 flex-fill" placeholder="@Html.DisplayNameFor(m => m.OrganizationOwnerEmail)" asp-for="OrganizationOwnerEmail" name="ownerEmail">
|
|
<button type="submit" class="btn btn-primary mb-2" title="Search" formmethod="get"><i class="fa fa-search"></i> Search</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<form method="post" id="select-form" asp-route-id="@providerId">
|
|
<div class="table-responsive">
|
|
<table class="table table-striped table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th style="width: 20px;">All</th>
|
|
<th>Name</th>
|
|
<th style="width: 190px;">Plan</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@if (!Model.Items.Any())
|
|
{
|
|
<tr>
|
|
<td colspan="5">No results to list.</td>
|
|
</tr>
|
|
}
|
|
else
|
|
{
|
|
@for (var i = 0; i < Model.Items.Count; i++)
|
|
{
|
|
<tr>
|
|
<td class="text-center">
|
|
@Html.HiddenFor(m => Model.Items[i].Id, new { @readonly = "readonly", autocomplete = "off" })
|
|
@Html.CheckBoxFor(m => Model.Items[i].Selected)
|
|
</td>
|
|
<td>@Html.ActionLink(Model.Items[i].DisplayName(), "Edit", "Organizations", new { id = Model.Items[i].Id }, new { target = "_blank" })</td>
|
|
<td>@(Model.Items[i].PlanType.GetDisplayAttribute()?.Name ?? Model.Items[i].PlanType.ToString())</td>
|
|
</tr>
|
|
}
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</form>
|
|
|
|
<div class="row">
|
|
<div class="col">
|
|
<nav>
|
|
<ul class="pagination">
|
|
@if (Model.PreviousPage.HasValue)
|
|
{
|
|
<li class="page-item">
|
|
<a class="page-link" asp-action="AddExistingOrganization" asp-route-id="@providerId" asp-route-page="@Model.PreviousPage.Value"
|
|
asp-route-count="@Model.Count" asp-route-ownerEmail="@Model.OrganizationOwnerEmail"
|
|
asp-route-name="@Model.OrganizationName">Previous</a>
|
|
</li>
|
|
}
|
|
else
|
|
{
|
|
<li class="page-item disabled">
|
|
<a class="page-link" href="#" tabindex="-1">Previous</a>
|
|
</li>
|
|
}
|
|
@if (Model.NextPage.HasValue)
|
|
{
|
|
<li class="page-item">
|
|
<a class="page-link" asp-action="AddExistingOrganization" asp-route-id="@providerId" asp-route-page="@Model.NextPage.Value"
|
|
asp-route-count="@Model.Count" asp-route-ownerEmail="@Model.OrganizationOwnerEmail"
|
|
asp-route-name="@Model.OrganizationName">Next</a>
|
|
</li>
|
|
}
|
|
else
|
|
{
|
|
<li class="page-item disabled">
|
|
<a class="page-link" href="#" tabindex="-1">Next</a>
|
|
</li>
|
|
}
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
<div class="col-auto">
|
|
<button type="submit" class="btn btn-primary" form="select-form">Add to Reseller</button>
|
|
</div>
|
|
</div>
|