@model CRS.EasyCreator.Models.StoryListModel
@using Microsoft.AspNetCore.Mvc.Rendering

@{
    Layout = "_AdminLayout";
    ViewBag.Title = T("Plugins.CRS.EasyCreator.Story.ListTitle").Value;

    string TypeName(CRS.EasyCreator.Domain.StoryType t) => T("Plugins.CRS.EasyCreator.Enums.StoryType." + t).Value;
}

<div class="section-header">
    <div class="title">
        <i class="fa fa-th-large"></i>
        @T("Plugins.CRS.EasyCreator.Story.ListTitle")
    </div>
    <div class="options">
        <a asp-action="Create" class="btn btn-primary">
            <i class="fa fa-plus"></i>
            <span>@T("Common.AddNew")</span>
        </a>
    </div>
</div>

<div class="card mb-2">
    <div class="card-body">
        <form asp-action="List" method="get" class="d-flex flex-wrap align-items-end" style="gap: 10px;">
            <div class="form-group mb-0" style="min-width: 220px;">
                <input type="text" name="q" value="@Model.Q" class="form-control form-control-sm"
                       placeholder="@T("Plugins.CRS.EasyCreator.Story.Title") / @T("Plugins.CRS.EasyCreator.Story.SystemName")" />
            </div>
            <div class="form-group mb-0">
                <select name="type" class="form-control form-control-sm" style="min-width: 220px;">
                    <option value="">@T("Plugins.CRS.EasyCreator.Story.StoryType")</option>
                    @foreach (var t in Enum.GetValues<CRS.EasyCreator.Domain.StoryType>())
                    {
                        if (t == CRS.EasyCreator.Domain.StoryType.Blog) { continue; }
                        <option value="@t" selected="@(string.Equals(Model.Type, t.ToString(), StringComparison.OrdinalIgnoreCase))">@TypeName(t)</option>
                    }
                </select>
            </div>
            <div class="form-group mb-0">
                <select name="published" class="form-control form-control-sm" style="min-width: 180px;">
                    <option value="">@T("Plugins.CRS.EasyCreator.Story.IsPublished")</option>
                    <option value="1" selected="@(Model.Published == "1")">@T("Common.Yes")</option>
                    <option value="0" selected="@(Model.Published == "0")">@T("Common.No")</option>
                </select>
            </div>
            <div class="form-group mb-0">
                <select name="zone" class="form-control form-control-sm" style="min-width: 220px;">
                    <option value="">@T("Plugins.CRS.EasyCreator.Story.WidgetZones")</option>
                    @foreach (var z in Model.AllZones)
                    {
                        <option value="@z" selected="@(string.Equals(Model.Zone, z, StringComparison.OrdinalIgnoreCase))">@z</option>
                    }
                </select>
            </div>
            <div class="form-group mb-0">
                <button type="submit" class="btn btn-secondary btn-sm">
                    <i class="fa fa-search"></i> @T("Admin.Common.Search")
                </button>
                <a asp-action="List" class="btn btn-outline-secondary btn-sm">@T("Common.Reset")</a>
            </div>
        </form>
    </div>
</div>

<div class="card">
    <div class="card-body">
        <table class="table table-hover">
            <thead>
                <tr>
                    <th>@T("Plugins.CRS.EasyCreator.Story.SystemName")</th>
                    <th>@T("Plugins.CRS.EasyCreator.Story.Title")</th>
                    <th>@T("Plugins.CRS.EasyCreator.Story.StoryType")</th>
                    <th>@T("Plugins.CRS.EasyCreator.Story.WidgetZones")</th>
                    <th>@T("Plugins.CRS.EasyCreator.Story.IsPublished")</th>
                    <th>@T("Plugins.CRS.EasyCreator.Story.Priority")</th>
                    <th></th>
                </tr>
            </thead>
            <tbody>
                @foreach (var s in Model.Items)
                {
                    <tr>
                        <td><code>@s.SystemName</code></td>
                        <td>@s.Title</td>
                        <td><span class="badge bg-light text-dark">@TypeName(s.StoryType)</span></td>
                        <td><small class="text-muted">@s.WidgetZones</small></td>
                        <td>
                            @if (s.IsPublished)
                            {
                                <span class="badge bg-success">@T("Common.Yes")</span>
                            }
                            else
                            {
                                <span class="badge bg-secondary">@T("Common.No")</span>
                            }
                        </td>
                        <td>@s.Priority</td>
                        <td class="text-end">
                            <a asp-action="Editor" asp-route-id="@s.Id" class="btn btn-sm btn-primary">
                                <i class="fa fa-edit"></i> @T("Plugins.CRS.EasyCreator.Story.OpenEditor")
                            </a>
                            <a asp-action="Edit" asp-route-id="@s.Id" class="btn btn-sm btn-secondary">
                                <i class="fa fa-cog"></i>
                            </a>
                            <form asp-action="Delete" asp-route-id="@s.Id" method="post" class="d-inline">
                                <button type="submit" class="btn btn-sm btn-danger"
                                    onclick="return confirm('@T("Admin.Common.AreYouSure")')">
                                    <i class="fa fa-trash"></i>
                                </button>
                            </form>
                        </td>
                    </tr>
                }
            </tbody>
        </table>

        @if (Model.TotalCount == 0)
        {
            <div class="alert alert-info">
                @T("Plugins.CRS.EasyCreator.Story.NoStoriesYet")
            </div>
        }
        else
        {
            <div class="d-flex align-items-center justify-content-between">
                <small class="text-muted">@Model.TotalCount</small>
                @if (Model.TotalPages > 1)
                {
                    <nav>
                        <ul class="pagination pagination-sm mb-0">
                            <li class="page-item @(Model.Page <= 1 ? "disabled" : null)">
                                <a class="page-link" asp-action="List" asp-route-q="@Model.Q" asp-route-type="@Model.Type" asp-route-published="@Model.Published" asp-route-zone="@Model.Zone" asp-route-page="@(Model.Page - 1)">&laquo;</a>
                            </li>
                            @for (var p = 1; p <= Model.TotalPages; p++)
                            {
                                <li class="page-item @(p == Model.Page ? "active" : null)">
                                    <a class="page-link" asp-action="List" asp-route-q="@Model.Q" asp-route-type="@Model.Type" asp-route-published="@Model.Published" asp-route-zone="@Model.Zone" asp-route-page="@p">@p</a>
                                </li>
                            }
                            <li class="page-item @(Model.Page >= Model.TotalPages ? "disabled" : null)">
                                <a class="page-link" asp-action="List" asp-route-q="@Model.Q" asp-route-type="@Model.Type" asp-route-published="@Model.Published" asp-route-zone="@Model.Zone" asp-route-page="@(Model.Page + 1)">&raquo;</a>
                            </li>
                        </ul>
                    </nav>
                }
            </div>
        }
    </div>
</div>
