This commit is contained in:
2022-05-16 15:01:01 +01:00
parent 4cc1185c3c
commit d17cce340e
18 changed files with 318 additions and 203 deletions
@@ -20,170 +20,169 @@
@* Article dialog and form *@
<div id="dlgArticle" class="sax-dialog" title="">
<div class="spacer2"></div>
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmArticle", @class = "sax-form", @onSubmit = "return false;" }))
{
@Html.HiddenFor(model => model.ArticleId, new { @id = "ifArticleId", @class = "ArticleId" })
@Html.HiddenFor(model => model.ArticleExists, new { @id = "ifArticleExists", @class = "ArticleExists" })
@Html.HiddenFor(model => model.ArticleOrganisationId, new { @id = "ifArticleOrganisationId", @class = "ArticleOrganisationId" })
<div class="sax-article ArticleHeader-xxx">
<div class="sax-article">
<div class="sax-article-panel sax-article-header">
<div class="sax-article-panel sax-article-header">
<div class="spacer2"></div>
@* Organisation *@
<div class="sax-form-control ArticleOrganisation">
<div class="row">
<div class="col-sm-3">
<div class="sax-label pt4 pr8">
<label for="ifArticleOrganisation"><span>@Localiser["label.organisation"]</span></label>
</div>
@* Organisation *@
<div class="sax-form-control ArticleOrganisation">
<div class="row">
<div class="col-sm-3">
<div class="sax-label pt4 pr8">
<label for="ifArticleOrganisation"><span>@Localiser["label.organisation"]</span></label>
</div>
<div class="col-sm">
<div class="sax-control">
<input type="text" id="ifArticleOrganisation" class="ArticleOrganisation sax-input" readonly="readonly" />
</div>
</div>
<div class="col-sm">
<div class="sax-control">
<input type="text" id="ifArticleOrganisation" class="ArticleOrganisation sax-input" readonly="readonly" />
</div>
</div>
</div>
@* Article headline *@
<div class="sax-form-control ArticleHeadline">
<div class="row">
<div class="col">
<div class="sax-label"><label for="ifArticleHeadline"><span>@Localiser["label.headline"]</span><span class="required">&nbsp;*</span></label></div>
</div>
<div class="fixed right"><div class="sax-info"></div></div>
</div>
<div class="sax-control">
@Html.TextBoxFor(model => model.ArticleHeadline, new { @id = "ifArticleHeadline", @class = "ArticleHeadline sax-input", @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.Article_Headline) })
</div>
<div class="sax-message"></div>
</div>
@* Article summary *@
<div class="sax-form-control ArticleSummary">
<div class="row">
<div class="col">
<div class="sax-label"><label for="ifArticleSummary"><span>@Localiser["label.summary"]</span><span class="required">&nbsp;*</span></label></div>
</div>
<div class="fixed right"><div class="sax-info"></div></div>
</div>
<div class="sax-control">
@Html.TextAreaFor(model => model.ArticleSummary, new { @id = "ifArticleSummary", @class = "ArticleSummary sax-textarea", @rows = 6, @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.Article_Summary) })
</div>
<div class="sax-message"></div>
</div>
@* Sport *@
<div class="sax-form-control ArticleSportId">
<div class="row">
<div class="col-sm-3">
<div class="sax-label">
<label for="ifArticleSportId"><span>@Localiser["label.sport"]</span><span class="required">&nbsp;*</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control row">
@Html.HiddenFor(model => model.ArticleSportId, new { @id = "ifArticleSportId", @class = "ArticleSportId" })
<div class="col">@Html.TextBoxFor(model => model.ArticleSportCaption, new { @id = "ifArticleSportCaption", @class = "ArticleSportCaption sax-input", @readonly = "readonly", @onDblClick = "sax.selectSport()" }) </div>
<div class="fixed"><button class="SelectSport sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px">@Localiser["label.select"]</button></div>
</div>
<div class="sax-message"></div>
</div>
</div>
</div>
@* Region *@
<div class="sax-form-control ArticleRegionId">
<div class="row">
<div class="col-sm-3">
<div class="sax-label">
<label for="ifArticleRegionId"><span>@Localiser["label.region"]</span><span class="required">&nbsp;*</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control row">
@Html.HiddenFor(model => model.ArticleRegionId, new { @id = "ifArticleRegionId", @class = "ArticleRegionId" })
<div class="col">@Html.TextBoxFor(model => model.ArticleRegionCaption, new { @id = "ifArticleRegionCaption", @class = "ArticleRegionCaption sax-input", @readonly = "readonly", @onDblClick = "sax.selectRegion()" }) </div>
<div class="fixed"><button class="SelectRegion sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px">@Localiser["label.select"]</button></div>
</div>
<div class="sax-message"></div>
</div>
</div>
</div>
@* Publication *@
<div class="sax-form-control ArticlePublication">
<div class="row">
<div class="col-sm-3">
<div class="sax-label">
<label for="ifArticleRegionId"><span>@Localiser["label.publication"]</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control">
<div class="row ArticlePublish">
@Html.HiddenFor(model => model.ArticlePublished, new { @id = "ifArticlePublished" })
<div class="fixed"><div class="pl16 pt4 pr8">@Html.CheckBoxFor(model => model.ArticlePublish, new { @id = "chkArticlePublish", @class = "ArticlePublish" })&nbsp;<span class="" onclick="$('#chkArticlePublish').click()">@Localiser["label.publish"]</span></div></div>
<div class="col">@Html.TextBoxFor(model => model.ArticlePublishOn, new { @id = "ifArticlePublishOn", @class = "sax-input sax-calendar ArticlePublishOn", @readonly = "readonly" })</div>
</div>
<div class="ArticlePublished">
<div class=""><div class="">@Localiser["label.published"]: <span class="ArticlePublishedOn"></span></div></div>
<div class=""><div class="">@Localiser["label.feedback"]: <span class="ArticleFeedback"></span></div></div>
</div>
</div>
<div class="sax-message"></div>
</div>
</div>
</div>
</div>
<div class="sax-article-panel sax-article-content">
<div class="sax-article-segment-list">
@* Article headline *@
<div class="sax-form-control ArticleHeadline">
<div class="row">
<div class="col">
<div class="sax-label"><label for="ifArticleHeadline"><span>@Localiser["label.headline"]</span><span class="required">&nbsp;*</span></label></div>
</div>
<div class="fixed right"><div class="sax-info"></div></div>
</div>
<div class="sax-control">
@Html.TextBoxFor(model => model.ArticleHeadline, new { @id = "ifArticleHeadline", @class = "ArticleHeadline sax-input", @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.Article_Headline) })
</div>
<div class="sax-message"></div>
</div>
<div class="sax-panel-item-template">
<div class="sax-panel-item ArticleSegment">
@* Inputs with same name for every segment to ensure they are uploaded as a list. *@
<input type="hidden" name="ArticleContentSegmentBodies" class="ArticleContentSegmentBody" value="" />
<input type="hidden" name="ArticleContentSegmentItemImageIds" class="ArticleContentSegmentItemImageId" value="" />
<input type="hidden" name="ArticleContentSegmentImageIdxs" class="ArticleContentSegmentImageIdx" value="" />
@* Image drop panel *@
<div class="sax-panel-file-drop row">
<div class="col">Drop image here</div>
<div class="fixed">
<img class="ContactImageUploadProgress" src="~/img/animated/progress-basketball-32.gif" style="display:none;margin:8px 4px;" />
@* Article summary *@
<div class="sax-form-control ArticleSummary">
<div class="row">
<div class="col">
<div class="sax-label"><label for="ifArticleSummary"><span>@Localiser["label.summary"]</span><span class="required">&nbsp;*</span></label></div>
</div>
<div class="fixed right"><div class="sax-info"></div></div>
</div>
<div class="sax-control">
@Html.TextAreaFor(model => model.ArticleSummary, new { @id = "ifArticleSummary", @class = "ArticleSummary sax-textarea", @rows = 6, @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.Article_Summary) })
</div>
<div class="sax-message"></div>
</div>
@* Sport *@
<div class="sax-form-control ArticleSportId">
<div class="row">
<div class="col-sm-3">
<div class="sax-label">
<label for="ifArticleSportId"><span>@Localiser["label.sport"]</span><span class="required">&nbsp;*</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control row">
@Html.HiddenFor(model => model.ArticleSportId, new { @id = "ifArticleSportId", @class = "ArticleSportId" })
<div class="col">@Html.TextBoxFor(model => model.ArticleSportCaption, new { @id = "ifArticleSportCaption", @class = "ArticleSportCaption sax-input", @readonly = "readonly", @onDblClick = "sax.selectSport()" }) </div>
<div class="fixed"><button class="SelectSport sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px">@Localiser["label.select"]</button></div>
</div>
<div class="sax-message"></div>
</div>
</div>
</div>
@* Region *@
<div class="sax-form-control ArticleRegionId">
<div class="row">
<div class="col-sm-3">
<div class="sax-label">
<label for="ifArticleRegionId"><span>@Localiser["label.region"]</span><span class="required">&nbsp;*</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control row">
@Html.HiddenFor(model => model.ArticleRegionId, new { @id = "ifArticleRegionId", @class = "ArticleRegionId" })
<div class="col">@Html.TextBoxFor(model => model.ArticleRegionCaption, new { @id = "ifArticleRegionCaption", @class = "ArticleRegionCaption sax-input", @readonly = "readonly", @onDblClick = "sax.selectRegion()" }) </div>
<div class="fixed"><button class="SelectRegion sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px">@Localiser["label.select"]</button></div>
</div>
<div class="sax-message"></div>
</div>
</div>
</div>
@* Publication *@
<div class="sax-form-control ArticlePublication">
<div class="row">
<div class="col-sm-3">
<div class="sax-label">
<label for="ifArticleRegionId"><span>@Localiser["label.publication"]</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control">
<div class="row ArticlePublish">
@Html.HiddenFor(model => model.ArticlePublished, new { @id = "ifArticlePublished" })
<div class="fixed"><div class="pl16 pt4 pr8">@Html.CheckBoxFor(model => model.ArticlePublish, new { @id = "chkArticlePublish", @class = "ArticlePublish" })&nbsp;<span class="" onclick="$('#chkArticlePublish').click()">@Localiser["label.publish"]</span></div></div>
<div class="col">@Html.TextBoxFor(model => model.ArticlePublishOn, new { @id = "ifArticlePublishOn", @class = "sax-input sax-calendar ArticlePublishOn", @readonly = "readonly" })</div>
</div>
<div class="ArticlePublished">
<div class=""><div class="">@Localiser["label.published"]: <span class="ArticlePublishedOn"></span></div></div>
<div class=""><div class="">@Localiser["label.feedback"]: <span class="ArticleFeedback"></span></div></div>
</div>
</div>
@* Segment details *@
<div class="row">
@* Segment body *@
<div class="col">
<div class="sax-article-segment-body"></div>
<div class="sax-article-segment-image hidden"><img src="" alt="" title="" /></div>
</div>
<div class="fixed sax-actions">
@* Segment actions *@
<div class="sax-action sax-add"><img src="~/img/action/add24.png" alt="" title="" /></div>
<div class="sax-action sax-add-image"><img src="~/img/action/image-add-24.png" alt="" title="" /></div>
<div class="sax-action sax-up"><img src="~/img/action/upload24.png" alt="" title="" /></div>
<div class="sax-action sax-down"><img src="~/img/action/download24.png" alt="" title="" /></div>
<div class="sax-action sax-delete"><img src="~/img/action/delete24.png" alt="" title="" /></div>
</div>
<div class="sax-message"></div>
</div>
</div>
</div>
<div class="spacer2"></div>
</div>
<div class="sax-article-panel sax-article-content">
<div class="sax-article-segment-list">
</div>
<div class="sax-panel-item-template">
<div class="sax-panel-item ArticleSegment">
@* Inputs with same name for every segment to ensure they are uploaded as a list. *@
<input type="hidden" name="ArticleContentSegmentBodies" class="ArticleContentSegmentBody" value="" />
<input type="hidden" name="ArticleContentSegmentItemImageIds" class="ArticleContentSegmentItemImageId" value="" />
<input type="hidden" name="ArticleContentSegmentImageIdxs" class="ArticleContentSegmentImageIdx" value="" />
@* Image drop panel *@
<div class="sax-panel-file-drop row">
<div class="col">Drop image here</div>
<div class="fixed">
<img class="ContactImageUploadProgress" src="~/img/animated/progress-basketball-32.gif" style="display:none;margin:8px 4px;" />
</div>
</div>
@* Segment details *@
<div class="row">
@* Segment body *@
<div class="col">
<div class="sax-article-segment-body"></div>
<div class="sax-article-segment-image hidden"><img src="" alt="" title="" /></div>
</div>
<div class="fixed sax-actions">
@* Segment actions *@
<div class="sax-action sax-add"><img src="~/img/action/add24.png" alt="" title="" /></div>
<div class="sax-action sax-add-image"><img src="~/img/action/image-add-24.png" alt="" title="" /></div>
<div class="sax-action sax-up"><img src="~/img/action/upload24.png" alt="" title="" /></div>
<div class="sax-action sax-down"><img src="~/img/action/download24.png" alt="" title="" /></div>
<div class="sax-action sax-delete"><img src="~/img/action/delete24.png" alt="" title="" /></div>
</div>
</div>
</div>
</div>
</div>
}
<div class="spacer2"></div>
</div>
}
</div>
@* Article Image upload dialog and form *@