<?php

use yii\helpers\Html;
use yii\helpers\Url;
use frontend\assets\AppAsset;
use yii\widgets\Breadcrumbs;
use kartik\form\ActiveForm;
use kartik\select2\Select2;
use yii\helpers\ArrayHelper;
use yii2mod\alert\Alert;

use app\models\TblUserType;
use app\models\TblAcademicYear;
use app\models\Common;

AppAsset::register($this);
\bedezign\yii2\audit\web\JSLoggingAsset::register($this);

$asset_path = Yii::$app->assetManager->getPublishedUrl('@app/themes/srms_theme/layouts');

$isLoggedIn = Yii::$app->UrlManager->createUrl('site/login');

if (Yii::$app->user->isGuest) {
    echo ("<script>location.href='" . $isLoggedIn . "'</script>");
} else {
    $user_type = TblUserType::findOne(Yii::$app->user->identity->user_type_id);
    $current_user = Yii::$app->user->identity;
    date_default_timezone_set("Africa/Nairobi");
?>
    <?php $this->beginPage() ?>
    <!DOCTYPE html>
    <html lang="<?= Yii::$app->language ?>">

    <head>
        <meta charset="<?= Yii::$app->charset ?>">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="icon" type="image/x-icon" href="<?= $asset_path ?>/favicon.ico" />
        <?= Html::csrfMetaTags() ?>

        <title>MNUAT SRMS | <?= Html::encode($this->title) ?></title>

        <?php $this->head() ?>
        <?php
        $js = <<<SCRIPT
            $(function () { 
                $("[data-toggle='tooltip']").tooltip(); 
            });
        SCRIPT;
        $this->registerJs($js);
        ?>
        
        <style>
            /* Custom styles for logout modal */
            .logout-modal .modal-header {
                background: linear-gradient(135deg, #34791f 0%, #1b5e20 100%);
                color: white;
                border-radius: 5px 5px 0 0;
            }
            
            .logout-modal .modal-header .close {
                color: white;
                opacity: 0.8;
            }
            
            .logout-modal .modal-header .close:hover {
                opacity: 1;
            }
            
            .logout-icon-wrapper {
                width: 80px;
                height: 80px;
                margin: 0 auto 20px;
                background: linear-gradient(135deg, #34791f 0%, #1b5e20 100%);
                border-radius: 50%;
                display: flex;
                align-items: center;
                justify-content: center;
                animation: pulse 2s infinite;
            }
            
            @keyframes pulse {
                0% {
                    box-shadow: 0 0 0 0 rgba(52, 121, 31, 0.4);
                }
                70% {
                    box-shadow: 0 0 0 20px rgba(52, 121, 31, 0);
                }
                100% {
                    box-shadow: 0 0 0 0 rgba(52, 121, 31, 0);
                }
            }
            
            .logout-icon-wrapper i {
                font-size: 2.5rem;
                color: white;
            }
            
            .btn-logout-confirm {
                background: linear-gradient(135deg, #34791f 0%, #1b5e20 100%);
                color: white;
                border: none;
                font-weight: 600;
                padding: 8px 30px;
            }
            
            .btn-logout-confirm:hover {
                background: linear-gradient(135deg, #1b5e20 0%, #0d3b0f 100%);
                color: white;
            }
            
            .logout-link {
                cursor: pointer;
                color: #fff;
                text-decoration: none;
            }
            
            .logout-link:hover {
                color: #f3ab25;
                text-decoration: none;
            }
        </style>
    </head>

    <body class="">
        <?php $this->beginBody() ?>

        <div id="wrapper">
            <!-- Sidebar -->
            <nav class="navbar-default navbar-static-side" role="navigation" style="background-color: #34791f !important;">
                <div class="sidebar-collapse">
                    <div class="nav-header">
                        <div class="dropdown profile-element text-center">
                            <?php if ($current_user->photo != NULL && $current_user->photo != ''): ?>
                                <img src="<?= Common::showPhoto($current_user->photo) ?>" class="img-circle" alt="photo" style="width:60px">
                            <?php else: ?>
                                <img src="<?= Common::showPhoto('uploads/photos/user.jpg') ?>" class="img-circle" alt="photo" style="width:60px">
                            <?php endif; ?>
                            <a data-toggle="dropdown" class="dropdown-toggle" href="#">
                                <span class="clear"> 
                                    <span class="block m-t-xs">
                                        <span><?= $current_user->username ?></span>
                                    </span>
                                    <span class="text-xs block"><?= ucwords($user_type->name); ?></span>
                                </span>
                            </a>
                        </div>
                        <div class="logo-element" style="background-color: #1b5e20;">SRMS</div>
                    </div>

                    <?= frontend\components\NavWidget::widget([
                        'encodeLabels' => false,
                        'options' => ['class' => 'nav metismenu', 'id' => 'side-menu'],
                        'labelTemplate' => '<a href="#">{icon} {label}</a>',
                        'linkTemplate' => '<a href="{url}">{icon} {label}</a>',
                        'submenuTemplate' => "<ul class='nav nav-second-level collapse'>{items}</ul>",
                        'activateParents' => false,
                        'items' => app\models\MenuPanel::getMenu()
                    ]) ?>
                </div>
            </nav>
            <!-- End Sidebar -->

            <div id="page-wrapper" class="gray-bg">
                <!-- Top Navbar -->
                <div class="row border-bottom">
                    <nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
                        <div class="navbar-header">
                            <a class="navbar-minimalize minimalize-styl-2 btn btn-primary" href="#"><i class="fa fa-bars"></i> </a>
                        </div>
                        <ul class="nav navbar-top-links navbar-right">
                            <li><span class="m-r-sm">Welcome to MNUAT SRMS.</span></li>
                            <li>
                                <!-- Modified logout link to trigger modal -->
                                <a href="javascript:void(0);" class="logout-link" id="logoutLink">
                                    <i class='fas fa-power-off'></i> Log out
                                </a>
                            </li>
                        </ul>
                    </nav>
                </div>

                <!-- Breadcrumb & Header -->
                <div class="row wrapper white-bg page-heading" style="padding-top: 10px;color: #000;">
                    <div class="col-md-4">
                        <h4 class="pull-left">Logged in as:&nbsp;<strong style="color: #34791f;"><?= ucwords($current_user->first_name . " " . $current_user->middle_name . " " . $current_user->last_name); ?></strong></h4>
                    </div>
                    <div class="col-md-4">
                        <?php if ($user_type->id != 11 && $user_type->id != 33): ?>
                            <?php $form = ActiveForm::begin([
                                'type' => ActiveForm::TYPE_INLINE,
                                'action' => Url::toRoute(['change_academic_year/change']),
                            ]); ?>
                                <div class="row">
                                    <div class="col-md-9" style="padding: 0;">
                                        <?= Select2::widget([
                                            'name' => 'id',
                                            'data' => ArrayHelper::map(TblAcademicYear::find()->where(['status' => 1])->all(), 'id', 'name'),
                                            'size' => Select2::SMALL,
                                            'value' => Yii::$app->session->get('academic_year')->id ?? null,
                                            'options' => ['placeholder' => 'Please Select academic year'],
                                        ]); ?>
                                    </div>
                                    <div class="col-md-2" style="padding-left: 5px;">
                                        <?= Html::submitButton('Change', ['class' => 'btn btn-primary btn-sm']) ?>
                                    </div>
                                </div>
                            <?php ActiveForm::end(); ?>
                        <?php else: ?>
                            <?php if (Yii::$app->session->get('academic_year') != NULL): ?>
                                <h4 class="text-center">Academic Year:&nbsp;
                                    <strong style="color: #0066cc;">
                                        <?= Yii::$app->session->get('academic_year')->name; ?>
                                    </strong>
                                </h4>
                            <?php endif; ?>
                        <?php endif; ?>
                    </div>
                    <div class="col-md-4">
                        <h4 class="pull-right"><?= date('l'); ?>&nbsp;<?= date('d'); ?><sup><?= date('S') ?></sup>&nbsp;of&nbsp;<?= date('F'); ?>,&nbsp;<?= date('Y'); ?></h4>
                    </div>
                </div>

                <div class="row wrapper border-bottom white-bg page-heading" style="color: #000;">
                    <div class="col-md-12">
                        <?= Breadcrumbs::widget([
                            'links' => $this->params['breadcrumbs'] ?? [],
                        ]) ?>
                    </div>
                </div>

                <!-- Flash messages -->
                <div class="wrapper wrapper-content">
                    <?= Alert::widget([
                        'useSessionFlash' => true,
                        'options' => [
                            'timer' => 3000,
                            'showConfirmButton' => false,
                        ],
                    ]) ?>

                    <?= $content; ?>
                </div>

                <!-- Footer -->
                <div class="footer" style="color: #fff;">
                    <div class="pull-left">
                        Copyright&nbsp;&copy;&nbsp;<?= date('Y') ?>&nbsp;Student Record Management System (Version No. 1.0)
                    </div>
                    <div class="pull-right">
                        <strong>Designed and Developed By.&nbsp;</strong><a href="https://www.mnuat.ac.tz/" target="_blank" style="color: #f3ab25;">Mwalimu Nyerere University of Agriculture & Technology (MNUAT)</a>
                    </div>
                </div>
            </div>
        </div>

        <!-- Logout Confirmation Modal -->
        <div class="modal fade logout-modal" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="logoutModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
            <div class="modal-dialog modal-dialog-centered" role="document">
                <div class="modal-content">
                    <div class="modal-header">
                        <h5 class="modal-title" id="logoutModalLabel">
                            <i class="fas fa-sign-out-alt"></i> Confirm Logout
                        </h5>
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                        </button>
                    </div>
                    <div class="modal-body text-center">
                        <div class="logout-icon-wrapper">
                            <i class="fas fa-power-off"></i>
                        </div>
                        <h4>Ready to Leave?</h4>
                        <p class="text-muted">
                            Are you sure you want to logout from MNUAT SRMS?<br>
                            You will need to sign in again to access your account.
                        </p>
                        
                        <?php if ($user_type->id != 11 && $user_type->id != 33): ?>
                            <div class="alert alert-info" style="margin-top: 20px;">
                                <i class="fa fa-info-circle"></i> 
                                Your current academic year session will be preserved for your next login.
                            </div>
                        <?php endif; ?>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-dismiss="modal">
                            <i class="fa fa-times"></i> Cancel
                        </button>
                        <?= Html::beginForm(['site/logout'], 'post', ['id' => 'logout-form', 'style' => 'display: inline;']) ?>
                            <button type="submit" class="btn btn-logout-confirm">
                                <i class="fas fa-sign-out-alt"></i> Yes, Logout
                            </button>
                        <?= Html::endForm() ?>
                    </div>
                </div>
            </div>
        </div>

        <!-- Loading spinner overlay (optional) -->
        <div id="logout-spinner" style="display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 9999;">
            <div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center;">
                <div class="spinner-border text-light" style="width: 3rem; height: 3rem;" role="status">
                    <span class="sr-only">Logging out...</span>
                </div>
                <h5 style="color: white; margin-top: 10px;">Logging out...</h5>
            </div>
        </div>

        <?php 
        // Register JavaScript for logout process
        $logoutJs = <<<JS
            // Prevent any default actions and show modal
            $(document).on('click', '#logoutLink', function(e) {
                e.preventDefault();
                e.stopPropagation();
                $('#logoutModal').modal('show');
                return false;
            });
            
            // Alternative method if above doesn't work
            $('#logoutLink').off('click').on('click', function(e) {
                e.preventDefault();
                e.stopPropagation();
                $('#logoutModal').modal('show');
                return false;
            });
            
            // Show loading spinner on logout form submit
            $(document).on('submit', '#logoutModal form', function(e) {
                // Don't prevent default - let the form submit
                $('#logoutModal').modal('hide');
                $('#logout-spinner').show();
            });
            
            // Keyboard shortcut for logout (Ctrl+Shift+L)
            $(document).on('keydown', function(e) {
                if (e.ctrlKey && e.shiftKey && e.key === 'L') {
                    e.preventDefault();
                    $('#logoutModal').modal('show');
                }
            });
            
            // Auto-focus on cancel button when modal opens
            $('#logoutModal').on('shown.bs.modal', function() {
                $(this).find('.btn-secondary').focus();
            });
            
            // Debug: Check if modal is properly initialized
            $(document).ready(function() {
                // Initialize modal if not already initialized
                if ($('#logoutModal').length > 0) {
                    console.log('Logout modal found and ready');
                    
                    // Make sure Bootstrap modal is loaded
                    if (typeof $.fn.modal === 'undefined') {
                        console.error('Bootstrap modal plugin not loaded!');
                    }
                }
            });
        JS;
        
        $this->registerJs($logoutJs, \yii\web\View::POS_READY);
        ?>

        <?php $this->endBody() ?>
    </body>

    </html>
    <?php $this->endPage() ?>
<?php
}
?>



*******************************  2  **********************************
<?php

use yii\helpers\Html;
use yii\helpers\Url;
use frontend\assets\AppAsset;
use yii\widgets\Breadcrumbs;
use kartik\form\ActiveForm;
use kartik\select2\Select2;
use yii\helpers\ArrayHelper;
use yii2mod\alert\Alert;

use app\models\TblUserType;
use app\models\TblAcademicYear;
use app\models\Common;

AppAsset::register($this);
\bedezign\yii2\audit\web\JSLoggingAsset::register($this);

$asset_path = Yii::$app->assetManager->getPublishedUrl('@app/themes/srms_theme/layouts');

$isLoggedIn = Yii::$app->UrlManager->createUrl('site/login');

if (Yii::$app->user->isGuest) {
    echo ("<script>location.href='" . $isLoggedIn . "'</script>");
} else {
    $user_type = TblUserType::findOne(Yii::$app->user->identity->user_type_id);
    $current_user = Yii::$app->user->identity;
    date_default_timezone_set("Africa/Nairobi");
?>
    <?php $this->beginPage() ?>
    <!DOCTYPE html>
    <html lang="<?= Yii::$app->language ?>">

    <head>
        <meta charset="<?= Yii::$app->charset ?>">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="icon" type="image/x-icon" href="<?= $asset_path ?>/favicon.ico" />
        <?= Html::csrfMetaTags() ?>

        <title>MNUAT SRMS | <?= Html::encode($this->title) ?></title>

        <?php $this->head() ?>
        <?php
        $js = <<<SCRIPT
            $(function () { 
                $("[data-toggle='tooltip']").tooltip(); 
            });
        SCRIPT;
        $this->registerJs($js);
        ?>
    </head>

    <body class="">
        <?php $this->beginBody() ?>

        <div id="wrapper">
            <!-- Sidebar -->
            <nav class="navbar-default navbar-static-side" role="navigation" style="background-color: #34791f !important;">
                <div class="sidebar-collapse">
                    <div class="nav-header">
                        <div class="dropdown profile-element text-center">
                            <?php if ($current_user->photo != NULL && $current_user->photo != ''): ?>
                                <img src="<?= Common::showPhoto($current_user->photo) ?>" class="img-circle" alt="photo" style="width:60px">
                            <?php else: ?>
                                <img src="<?= Common::showPhoto('uploads/photos/user.jpg') ?>" class="img-circle" alt="photo" style="width:60px">
                            <?php endif; ?>
                            <a data-toggle="dropdown" class="dropdown-toggle" href="#">
                                <span class="clear"> 
                                    <span class="block m-t-xs">
                                        <span><?= $current_user->username ?></span>
                                    </span>
                                    <span class="text-xs block"><?= ucwords($user_type->name); ?></span>
                                </span>
                            </a>
                        </div>
                        <div class="logo-element" style="background-color: #1b5e20;">SRMS</div>
                    </div>

                    <?= frontend\components\NavWidget::widget([
                        'encodeLabels' => false,
                        'options' => ['class' => 'nav metismenu', 'id' => 'side-menu'],
                        'labelTemplate' => '<a href="#">{icon} {label}</a>',
                        'linkTemplate' => '<a href="{url}">{icon} {label}</a>',
                        'submenuTemplate' => "<ul class='nav nav-second-level collapse'>{items}</ul>",
                        'activateParents' => false,
                        'items' => app\models\MenuPanel::getMenu()
                    ]) ?>
                </div>
            </nav>
            <!-- End Sidebar -->

            <div id="page-wrapper" class="gray-bg">
                <!-- Top Navbar -->
                <div class="row border-bottom">
                    <nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
                        <div class="navbar-header">
                            <a class="navbar-minimalize minimalize-styl-2 btn btn-primary" href="#"><i class="fa fa-bars"></i> </a>
                        </div>
                        <ul class="nav navbar-top-links navbar-right">
                            <li><span class="m-r-sm">Welcome to MNUAT SRMS.</span></li>
                            <li>
                                <?= Html::a("<i class='fas fa-power-off'></i> Log out", ['site/logout'], [
                                    'data' => ['method' => 'post'],
                                    'style' => 'color: #fff;'
                                ]); ?>
                            </li>
                        </ul>
                    </nav>
                </div>

                <!-- Breadcrumb & Header -->
                <div class="row wrapper white-bg page-heading" style="padding-top: 10px;color: #000;">
                    <div class="col-md-4">
                        <h4 class="pull-left">Logged in as:&nbsp;<strong style="color: #34791f;"><?= ucwords($current_user->first_name . " " . $current_user->middle_name . " " . $current_user->last_name); ?></strong></h4>
                    </div>
                    <div class="col-md-4">
                        <?php if ($user_type->id != 11 && $user_type->id != 33): ?>
                            <?php $form = ActiveForm::begin([
                                'type' => ActiveForm::TYPE_INLINE,
                                'action' => Url::toRoute(['change_academic_year/change']),
                            ]); ?>
                                <div class="row">
                                    <div class="col-md-9" style="padding: 0;">
                                        <?= Select2::widget([
                                            'name' => 'id',
                                            'data' => ArrayHelper::map(TblAcademicYear::find()->where(['status' => 1])->all(), 'id', 'name'),
                                            'size' => Select2::SMALL,
                                            'value' => Yii::$app->session->get('academic_year')->id ?? null,
                                            'options' => ['placeholder' => 'Please Select academic year'],
                                        ]); ?>
                                    </div>
                                    <div class="col-md-2" style="padding-left: 5px;">
                                        <?= Html::submitButton('Change', ['class' => 'btn btn-primary btn-sm']) ?>
                                    </div>
                                </div>
                            <?php ActiveForm::end(); ?>
                        <?php else: ?>
                            <?php if (Yii::$app->session->get('academic_year') != NULL): ?>
                                <h4 class="text-center">Academic Year:&nbsp;
                                    <strong style="color: #0066cc;">
                                        <?= Yii::$app->session->get('academic_year')->name; ?>
                                    </strong>
                                </h4>
                            <?php endif; ?>
                        <?php endif; ?>
                    </div>
                    <div class="col-md-4">
                        <h4 class="pull-right"><?= date('l'); ?>&nbsp;<?= date('d'); ?><sup><?= date('S') ?></sup>&nbsp;of&nbsp;<?= date('F'); ?>,&nbsp;<?= date('Y'); ?></h4>
                    </div>
                </div>

                <div class="row wrapper border-bottom white-bg page-heading" style="color: #000;">
                    <div class="col-md-12">
                        <?= Breadcrumbs::widget([
                            'links' => $this->params['breadcrumbs'] ?? [],
                        ]) ?>
                    </div>
                </div>

                <!-- Flash messages -->
                <div class="wrapper wrapper-content">
                    <?= Alert::widget([
                        'useSessionFlash' => true,
                        'options' => [
                            'timer' => 3000,
                            'showConfirmButton' => false,
                        ],
                    ]) ?>

                    <?= $content; ?>
                </div>

                <!-- Footer -->
                <div class="footer" style="color: #fff;">
                    <div class="pull-left">
                        Copyright&nbsp;&copy;&nbsp;<?= date('Y') ?>&nbsp;Student Record Management System (Version No. 1.0)
                    </div>
                    <div class="pull-right">
                        <strong>Designed and Developed By.&nbsp;</strong><a href="https://www.mnuat.ac.tz/" target="_blank" style="color: #f3ab25;">Mwalimu Nyerere University of Agriculture & Technology (MNUAT)</a>
                    </div>
                </div>
            </div>
        </div>

        <?php $this->endBody() ?>
    </body>

    </html>
    <?php $this->endPage() ?>
<?php
}
?>
