@using NzbDrone.Web.Helpers
@using NzbDrone.Web.Models;
@model IEnumerable<NzbDrone.Core.Repository.Series>
@{ViewBag.Title = "NzbDrone";}

@section HeaderContent
{
    @Html.IncludeCss("Settings.css")
}
<style>
    /* progress bar container */
    .progressbar
    {
        border: 1px solid #065EFE;
        width: 125px;
        height: 20px;
        position: relative;
        color: black;
    }
    
    
    /* color bar */
    .progressbar div.progress
    {
        position: absolute;
        width: 0;
        height: 100%;
        overflow: hidden;
        background-color: #065EFE;
    }
    /* text on bar */
    .progressbar div.progress .progressText
    {
        position: absolute;
        text-align: center;
        color: white;
    }
    /* text off bar */
    .progressbar div.progressText
    {
        position: absolute;
        width: 100%;
        height: 100%;
        text-align: center;
    }
    
    .t-grid .t-alt
    {
        background: #E5ECF9;
    }
</style>
@section ActionMenu{
    <ul class="sub-menu">
        <li>@Html.ActionLink("Add Series", "Index", "AddSeries")</li>
        <li>@Ajax.ActionLink("Start RSS Sync", "RssSync", "Command", null)</li>
    </ul>
}
@{Html.Telerik().Grid<SeriesModel>().Name("Grid")
               .DataKeys(keys => keys.Add(p => p.SeriesId))
                .DataBinding(data => data.Ajax()
                    .Select("_AjaxSeriesGrid", "Series")
                    .Update("_SaveAjaxSeriesEditing", "Series")
                    .Delete("_DeleteAjaxSeriesEditing", "Series"))
                .Columns(columns =>
                             {
                                 columns.Bound(o => o.Title)
                                     .ClientTemplate("<a href=" +
                                                     Url.Action("Details", "Series", new { seriesId = "<#= SeriesId #>" }) +
                                                     "><#= Title #></a>");
                                 columns.Bound(o => o.SeasonsCount).Title("Seasons");
                                 columns.Bound(o => o.QualityProfileName).Title("Quality");
                                 columns.Bound(o => o.Status);
                                 //columns.Bound(o => o.AirsDayOfWeek);
                                 columns.Bound(o => o.NextAiring);
                                 columns.Bound(o => o.Episodes).Title("Episodes").Width(125)
                                     .ClientTemplate("<div id=\"progressbar_<#= SeriesId #>\" class=\"progressbar\">" +
                                                            "<div class=\"progressText\"></div>" +
                                                            "<div class=\"progress\">" +
                                                                "<span class=\"progressText\" style=\"width: 125px;\"></span>" +
                                                            "</div>" +
                                                     "</div>");
                                 columns.Command(commands =>
                                 {
                                     commands.Edit().ButtonType(GridButtonType.Image);
                                     commands.Delete().ButtonType(GridButtonType.Image);
                                 }).Title("Actions").Width(90);

                             })
                .Editable(editor => editor.Mode(GridEditMode.PopUp))
                .DetailView(detailView => detailView.ClientTemplate(
                                                                        "<b>Airs Day of Week:</b> " + "<#= AirsDayOfWeek #>" +
                                                                        "<br />" +
                                                                        "<b>Overview:</b> " +
                                                                        "<#= Overview #>"
                                                                    ))
                .ClientEvents(clientEvents =>
                {
                    clientEvents.OnEdit("grid_edit");
                    clientEvents.OnSave("grid_save");
                    clientEvents.OnRowDataBound("grid_rowBound");
                })
                .Render();}
@section Scripts{
    <script type="text/javascript">
        var windowElement;

        function grid_edit(args) {
            $(args.form)
            .closest(".t-window")
            .data("tWindow")
            .center();
        }

        function grid_save(e) {
            $('#ajaxSaveWheel').show();
        }

        function grid_rowBound(e) {
            var dataItem = e.dataItem;
            var seriesId = dataItem.SeriesId;
            var episodeCount = dataItem.EpisodeCount;
            var episodeFileCount = dataItem.EpisodeFileCount;

            $("#progressbar_" + seriesId).episodeProgress(episodeFileCount, episodeCount);
        }

        (function ($) {
            $.fn.episodeProgress = function (episodes, totalEpisodes) {
                return this.each(
                function () {
                    var div = $(this);
                    var progressBar = div.find(".progress");

                    var width = Math.round(episodes / totalEpisodes * 100);

                    progressBar.css("width", width + "%");
                    div.find(".progressText").html(episodes + " / " + totalEpisodes);
                });
            };
        })(jQuery);
    </script>
}