Files
andy 9f22b522df v1.3.0 Restructure Saxonite workspace and upgrade to .NET 10 (#1)
Move Saxonite’s projects into a dedicated `Workspace` folder and align the solution with .NET 10 and the current Common workspace. Update encryption integration, test project structure and coverage, and repository guidance and upgrade notes.

- Relocate application and library projects while retaining Git rename history.
- Split tests into Admin, Online, and Shared projects; add representative behavioral and serialization tests.
- Update Common integration, application version, and repository documentation.

Application version: 1.3.0

Reviewed-on: #1
Co-authored-by: andy <andy@sarand.com>
2026-10-16 18:24:16 +01:00

120 lines
3.6 KiB
Plaintext

@model SaxModel_Admin
@inject SaxLocaliser Localiser
@{
/* Organisations - Organisation Upload panel */
// Ensure view is only included once in page.
if (!Model.RegisterView(ViewContext)) return;
// Scripts.
Model.AdditionalFiles_JS.Add("js/sax-org-upl.js");
}
<style>
#dlgOrgUpload .sax-panel-drop.OrgDataFileDrop
{
min-height:240px;
padding: 4px 8px;
border: 1px solid #f0f0f0;
border-radius: 4px;
}
#dlgOrgUpload .sax-panel-drop.OrgDataFileDrop.sax-file-drag
{
background-color: #f0fffc;
border-color: darkgreen;
}
</style>
<script type="text/javascript">
sax.lbl.upload = '@(Localiser.GetJavascriptText("label.upload"))';
sax.lbl.download = '@(Localiser.GetJavascriptText("label.download"))';
sax.dlg.title.uploadOrganisation = '@Localiser.GetJavascriptText("caption.upload.organisations")';
</script>
<div id="dlgOrgUpload" class="sax-dialog" title="@(HttpUtility.HtmlAttributeEncode(Localiser.GetText("caption.upload.organisations")))">
<div class="spacer4"></div>
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmOrgUpload", @class = "sax-form", @enctype = "multipart/form-data", @onSubmit = "return false;" }))
{
<div class="sax-panel-drop OrgDataFileDrop">
<div class="spacer2"></div>
<div class="sax-note">@Localiser["msg.drop.organisation.data.file.here"]</div>
<div class="spacer4"></div>
@* Organisation data file *@
<div class="sax-form-control OrganisationDataFile">
<div class="row">
<div class="col-sm-3">
<div class="sax-label">
<label for="ifOrganisationName"><span>@Localiser["label.data.file"]</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control">
<input type="file" name="OrganisationDataFile" class="OrganisationDataFile fullwidth" style="" />
</div>
<div class="sax-message"></div>
</div>
</div>
</div>
@* Sheet name or number *@
<div class="sax-form-control SheetNameOrNumber">
<div class="row">
<div class="col-sm-3">
<div class="sax-label">
<label for="ifSheetNameOrNumber"><span>@Localiser["label.sheet.name.or.number"]</span>&nbsp;<span class="required">*</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control">
<input type="text" id="ifSheetNameOrNumber" name="SheetNameOrNumber" class="SheetNameOrNumber sax-input" value="1" maxlength="31" />
</div>
<div class="sax-message"></div>
</div>
</div>
</div>
@* Header row *@
<div class="sax-form-control HeaderRow">
<div class="row">
<div class="col-sm-3">
<div class="sax-label">
<label for="ifHeaderRow"><span>@Localiser["label.header.row"]</span>&nbsp;<span class="required">*</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control">
<input type="text" id="ifHeaderRow" name="HeaderRow" class="HeaderRow sax-input" value="1" maxlength="2" />
</div>
<div class="sax-message"></div>
</div>
</div>
</div>
@* First data row *@
<div class="sax-form-control FirstDataRow">
<div class="row">
<div class="col-sm-3">
<div class="sax-label">
<label for="ifFirstDataRow"><span>@Localiser["label.first.data.row"]</span>&nbsp;<span class="required">*</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control">
<input type="text" id="ifFirstDataRow" name="FirstDataRow" class="FirstDataRow sax-input" value="2" maxlength="2" />
</div>
<div class="sax-message"></div>
</div>
</div>
</div>
</div>
}
<div class="spacer4"></div>
</div>