@using NzbDrone.Core.Repository;
@using NzbDrone.Web.Models;
@model IEnumerable<NzbDrone.Core.Repository.Series>

@section TitleContent{
    Series
}

@section ActionMenu{
    @{Html.RenderPartial("SubMenu");}
}

@section MainContent{
    @{Html.Telerik().Grid<SeriesModel>().Name("Grid")
            .TableHtmlAttributes(new { @class = "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")
                                 .ClientTemplate("<a href=# onclick=\"openSeasonEditor(<#= SeriesId #>, \'<#= Title #>\'); return false;\"><#= SeasonsCount #></a>");
                             columns.Bound(o => o.QualityProfileName).Title("Quality");
                             columns.Bound(o => o.Status);
                             columns.Bound(o => o.AirsDayOfWeek);
                             columns.Bound(o => o.Path);
                             columns.Command(commands =>
                                                 {
                                                     commands.Edit().ButtonType(GridButtonType.Image);
                                                     commands.Delete().ButtonType(GridButtonType.Image);
                                                 }).Title("Actions").Width(80);

                         })
            .Editable(editor => editor.Mode(GridEditMode.PopUp))
            .Sortable(sort => sort.OrderBy(order => order.Add(o => o.Title).Ascending()).Enabled(true))
            .DetailView(detailView => detailView.ClientTemplate("<div style=\"width:95%\"><#= Overview #></div>"))
            .ClientEvents(clientEvents => clientEvents.OnEdit("grid_edit"))
            .Render();}
}

<script type="text/javascript">
    var windowElement;

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

    function openSeasonEditor(seriesId, seriesName) {
        windowElement = null;
        windowElement = $.telerik.window.create({
            title: "<b>Season Editor: " + seriesName + "</b>",
            contentUrl: '@Url.Action("SeasonEditor", "Series")' + '/?seriesId=' + seriesId,
            width: 360,
            height: 400,
            modal: true,
            resizable: false,
            draggable: true,
            scrollable: true
        });

        windowElement.data('tWindow').center();
    }

    function closeSeasonEditor() {
        $('#form').remove();
        var window = windowElement.data("tWindow");
        window.close();
    }
</script>