<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <link rel='icon' href='/favicon.ico' type='image/x-icon'/>
    <title> <%= settings["WebsiteName"].Value %> || <%= title %></title>

    <!-- Font Awesome Icons -->
    <link rel="stylesheet" href="/plugins/fontawesome-free/css/all.min.css">
    <!-- Theme style -->
    <link rel="stylesheet" href="/dist/css/adminlte.min.css">
    <!-- Google Font: Source Sans Pro -->
    <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" rel="stylesheet">
    <link rel="stylesheet" href="/plugins/datatables-bs4/css/dataTables.bootstrap4.css">
    <link rel="stylesheet" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.dataTables.min.css">
    <link rel="stylesheet" href="https://cdn.datatables.net/colreorder/1.5.2/css/colReorder.dataTables.min.css">
    <link rel="stylesheet" href="https://cdn.datatables.net/fixedheader/3.1.6/css/fixedHeader.dataTables.min.css">
<!-- Google Tag Manager -->

<!-- End Google Tag Manager -->
    <style>
        h6 {
            font-size: 16px !important;
            font-weight: bold !important;
        }

        textarea {
            width: 100%;
            height: fit-content;
            min-height: 120px;
        }
    </style>
    <!-- Custom CSS Block -->
    <%- block('css').toString() %>

</head>
<body class="hold-transition sidebar-mini">
<!-- Google Tag Manager (noscript) -->
<!-- End Google Tag Manager (noscript) -->
<div class="wrapper">

    <!-- Navbar -->
    <% include ../partials/navbar.ejs %>
    <!-- /.navbar -->

    <!-- Sidebar -->
    <% include ../partials/sidebar.ejs %>
    <!-- /.sidebar -->

    <!-- Content Wrapper. Contains page content -->
    <div class="content-wrapper">
        <!-- Content Header (Page header) -->
        <div class="content-header">
            <div class="container-fluid">
                <div class="row mb-2">
                    <div class="col-sm-6">
                        <h1 class="m-0 text-dark"><%= title %></h1>
                    </div><!-- /.col -->
                    <div class="col-sm-6">
                        <ol class="breadcrumb float-sm-right">
                            <li class="breadcrumb-item"><a href="#">Home</a></li>

                            <li class="breadcrumb-item active"><%= title %></li>

                        </ol>
                    </div><!-- /.col -->
                </div><!-- /.row -->
            </div><!-- /.container-fluid -->
        </div>
        <!-- /.content-header -->

        <!-- Main content -->
        <div class="content">
            <div class="container-fluid">

                <div class="card card-primary">
                    <div class="card-header">
                        <h3 class="card-title"><%= title %></h3>
                        <!-- /.card-tools -->
                        <div class="float-right">
                            <button type="button" class="btn btn-block btn-success" data-toggle="modal"
                                    data-target="#NewTeamModal">Add Team</button>
                        </div>
                    </div>
                    <!-- /.card-header -->
                    <div class="card-body ">
                        <table id="ind" class="table table-bordered table-hover wrap" role="grid"
                               aria-describedby="Teams">
                            <thead>
                            <tr role="row">
                                <th>#</th>
                                <th>Name</th>
                                <th>Display Name</th>
                                <th>Directorate</th>
                                <th>Actions</th>
                            </thead>
                            <tbody>
                            <% teams.forEach(team =>  { %>
                                <tr role="row" id="row-<% team.id %>">
                                    <td><%= team.id %></td>
                                    <td><%= team.Name %></td>
                                    <td><%= team.DisplayName %></td>
                                    <td><%= team.Directorate.Name %></td>
                                    <td><span data-toggle="tooltip" data-placement="top" title="Actions"><button
                                                    type="button" class="btn btn-secondary EditButton"
                                                    data-toggle="modal"
                                                    data-target="#dire" data-id="<%= team.id %>">
                                            <i class="fa fa-cog"></i>
                                        </button></span><form method="post" action="team/delete" class="Delete">
                                            <input type="hidden" name="id" value="<%= team.id %>">
                                            <button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i></button>
                                        </form>


                                    </td>
                                </tr>
                            <% }); %>

                            </tbody>
                        </table>
                    </div>
                    <!-- /.card-body -->
                </div>


                <!-- /.row -->
            </div><!-- /.container-fluid -->
        </div>
        <!-- /.content -->
    </div>
    <div class="modal fade" id="NewTeamModal" style="display: none;" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h4 class="modal-title">Add a New Team</h4>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">Ã—</span>
                    </button>
                </div>
                <form method="post" action="/admin/teams/add" id="NewTeam">
                <div class="modal-body">
                    <div class="form-group">
                        <label for="directorate">Directorate</label>
                        <select class="custom-select form-control" name="directorate" id="directorate"
                                required>
                            <option class="hidden" selected disabled value="">Select The Directorate</option>
                            <% directorates.forEach(directorate =>{ %>
                                <option value="<%=directorate.id%>"><%=directorate.Name%></option>
                            <%}) %>
                        </select>
                    </div>
                    <div class="form-group">
                        <label for="name">Name</label>
                        <input type="text" id="name" class="form-control" name="name" required>
                    </div>
                    <div class="form-group">
                        <label for="dname">Display Name</label>
                        <input type="text" id="dname" class="form-control" name="dname" required>
                    </div>
                    <div class="form-group">
                        <label for="description">Description</label>
                        <textarea class="custom-control-input" type="checkbox" name="description" id="description"></textarea>
                    </div>
                </div>

                <div class="modal-footer justify-content-between">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    <button type="submit" class="btn btn-primary">Add</button>
                </div>
                </form>
            </div>
            <!-- /.modal-content -->
        </div>
        <!-- /.modal-dialog -->
    </div>
    <div class="modal fade" id="dire" tabindex="-1" role="dialog"
         aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content" id="DirEditModalContent">

            </div>
        </div>
    </div>
    <!-- /.content-wrapper -->
    <!--    Footer-->
    <% include ../partials/footer.ejs %>

    <!-- Toasts -->
    <% include ../partials/toasts.ejs %>
    <!-- Custom JS Block -->
    <%- block('js').toString() %>
    <!-- AJAXSubmit -->
    <script type="text/javascript" src="/vendor/jquery.ajaxSubmit.min.js"></script>
    <script src="/plugins/datatables/jquery.dataTables.js"></script>
    <script src="/plugins/datatables-bs4/js/dataTables.bootstrap4.js"></script>
    <script src="https://cdn.datatables.net/fixedheader/3.1.6/js/dataTables.fixedHeader.min.js"></script>
    <script src="https://cdn.datatables.net/colreorder/1.5.2/js/dataTables.colReorder.min.js"></script>
    <script src="https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.min.js"></script>
    <script src="https://cdn.datatables.net/plug-ins/1.10.7/pagination/select.js"></script>
    <script type="text/javascript">
        let FormSubmit = ()=> {$('.Delete').ajaxSubmit({
            success: (res) =>{
                $(`#row-${res.id}`).remove();
                toastr.success(res.msg);
            },
            error: (res)=>{
                toastr.error(res.msg);
            }

        });}
        FormSubmit();
        $(document).on('submit','.Delete',function(){
            let DeleteConfirm=confirm("Are you sure you want to delete?");
            if (DeleteConfirm)
                FormSubmit();
            return false;
        });
        let TeamsTable = $("#ind").DataTable()
        $(function () {
            TeamsTable({
                stateSave: true,
                responsive: true,
                columnDefs: [
                    {responsivePriority: 1, targets: 0},
                    {responsivePriority: 2, targets: -1},
                    {responsivePriority: 3, targets: 1}
                ],
                fixedHeader: {
                    header: true,
                    footer: true
                },
                "autoWidth": false
            });


        })

        $(document).on('submit', '#NewTeam', function () {
            $.ajax({
                url: "/admin/teams/add",
                type: 'POST',
                data: $(this).serialize(),
                tryCount: 0,
                retryLimit: 5,
                success: function (res) {
                    console.log(res.id + " " + res.State);
                    this.tryCount = 0;
                    toastr.success(res.msg);
                    let Button = `<span data-toggle="tooltip" data-placement="top" title="Actions"><button
                                                    type="button" class="btn btn-secondary EditButton"
                                                    data-toggle="modal"
                                                    data-target="#dire" data-id="${res.id}">
                                            <i class="fa fa-cog"></i></span></button>
                                           <form method="post" action="team/delete" class="Delete">
                                            <input type="hidden" name="id" value="${res.id}">
                                            <button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i></button>
                                        </form>`

                    TeamsTable.row.add([res.id, res.Name, res.DisplayName, res.directorate, Button])
                    TeamsTable.draw()
                    $('#NewTeamModal').modal('hide')
                },
                error: function (xhr, textStatus, errorThrown) {
                    if (textStatus === 'timeout') {
                        this.tryCount++;
                        toastr.error("Error! " + xhr.status + " " + textStatus + ", Retrying");
                        if (this.tryCount <= this.retryLimit) {
                            //try again
                            $.ajax(this);
                            return;
                        }
                        return;
                    }
                    if (xhr.status === 500) {
                        toastr.error("Error! " + xhr.status + " " + textStatus);
                    } else {
                        toastr.error("Error! " + xhr.status + " " + textStatus);
                    }
                }
            });
            return false;
        });
        $(document).on('submit', '.editTeam', function () {
            $.ajax({
                type: 'POST',
                url: '/admin/team/edit',
                data: $(this).serialize(),
                tryCount: 0,
                retryLimit: 5,
                success: function (res) {
                    console.log(res.id + " " + res.State);
                    this.tryCount = 0;
                    toastr.success(res.msg);
                    $('#qedit').modal('hide')
                },
                error: function (xhr, textStatus, errorThrown) {
                    if (textStatus === 'timeout') {
                        this.tryCount++;
                        toastr.error("Error! " + xhr.status + " " + textStatus + ", Retrying");
                        if (this.tryCount <= this.retryLimit) {
                            //try again
                            $.ajax(this);
                            return;
                        }
                        return;
                    }
                    if (xhr.status === 500) {
                        toastr.error("Error! " + xhr.status + " " + textStatus);
                    } else {
                        toastr.error("Error! " + xhr.status + " " + textStatus);
                    }
                }
            });
            return false;
        });
        $(document).on('click', '.EditButton', function () {
            let DirId = $(this).data("id");
            $("#DirEditModalContent").load(`/admin/team/edit?id=${DirId}`);
        });
    </script>
</body>
</html>

