core/modules/admin/template/view.phtml

Summary

Maintainability
Test Coverage
<?php
/* @var $this Ajde_Template_Parser_Phtml_Helper */

if ($OOChartsApiKey = SettingModel::byName('oocharts_api_key')) {
    $this->requireJsPublic('core/oocharts.min.js');
}
?>

<div class="row-fluid">
    <div class="span2">
    </div><!--/span-->
    <div class="span8">
        <div class="hero-unit">
            <h1><?php echo esc(config("app.title")); ?> back-end</h1>
            <p>Welcome back, <?php echo esc(UserModel::getLoggedIn()->getFullname()); ?>!</p>
            <p>
                <a href="admin/node:view" class="btn btn-primary btn-large">node overview &raquo;</a>
                <a href="admin/node:view?new" class="btn btn-primary btn-large">add node &raquo;</a>
            </p>
        </div>
        <div class="row-fluid text-center">
            <div class="span4">
                <h2>Media</h2>
                <p>Files and embedded media such as video and audio</p>
                <p><a class="btn" href="admin/media:view">media manager &raquo;</a></p>
            </div>
            <div class="span4">
                <h2>Menus</h2>
                <p>Manage what nodes users can access from the menus</p>
                <p><a class="btn" href="admin/menu:view">menu editor &raquo;</a></p>
            </div>
            <div class="span4">
                <h2>Settings</h2>
                <p>Change various other options of your site</p>
                <p><a class="btn" href="admin/cms:settings">change settings &raquo;</a></p>
            </div>
        </div>
        <div class="row-fluid">
            <div class="span12">
                <hr/>
            </div>
        </div>
        <div class="row-fluid">
            <div class="span12">

                <h2>Recently changed nodes</h2>
                <?php
                $options = NodeController::getNodeOptions();
                $options
                    ->selectList()
                        ->selectButtons()
                            ->setDelete(false)
                            ->setEdit(true)
                            ->setSelect(false)
                            ->setNew(false)
                            ->resetItemButtons()
                            ->up()
                        ->setShowFooter(false)
                        ->setShowToolbar(false)
                        ->setSingleClickEdits(true)
                        ->selectView()
                            ->setMainFilter(false)
                            ->setOrderBy('updated')
                            ->setOrderDir('DESC')
                            ->setPageSize(10)
                    ->finished();

                $crud = $this->ACCrudList('node', $options);
                $crud->setEditAction('admin/node:view');
                $crud->setSessionName('nodes.dashboard');
                echo $crud->output();
                ?>

                <a class="btn" href="admin/node:view">all nodes &raquo;</a>

                <hr/>

            </div>
        </div>
        <div class="row-fluid">
            <div class="span12">

                <h2>Latest shop transactions</h2>
                <?php
                $options = AdminShopController::getTransactionOptions();
                $options
                    ->selectList()
                        ->selectButtons()
                            ->setDelete(false)
                            ->setEdit(false)
                            ->setSelect(false)
                            ->setNew(false)
                            ->resetItemButtons()
                            ->up()
                        ->setShowFooter(false)
                        ->setShowToolbar(false)
                        ->setSingleClickEdits(true)
                        ->selectView()
                            ->setOrderBy('added')
                            ->setOrderDir('DESC')
                            ->setPageSize(10)
                    ->finished();

                $crud = $this->ACCrudList('transaction', $options);
                $crud->setEditAction('admin/shop:transactions');
                $crud->setSessionName('transactions.dashboard');
                echo $crud->output();
                ?>

                <a class="btn" href="admin/shop:transactions">all transactions &raquo;</a>

            </div>
        </div>
        <div class="row-fluid">
            <div class="span12">

                <?php

                if ($OOChartsApiKey) {

                    $OOChartsAnalyticsProfile = SettingModel::byName('oocharts_analytics_profile')

                    ?>

                    <script>
                    window.onload = function(){
                        oo.setAPIKey("<?php echo $OOChartsApiKey; ?>");
                        oo.load(function() {

                            var periods = ["7d", "60d"];

                            for (var i in periods) {

                                var period = periods[i];

                                var chart = new oo.Timeline("<?php echo $OOChartsAnalyticsProfile; ?>", period);
                                chart.addMetric("ga:visits", "Visits");
                                chart.addMetric("ga:newVisits", "New Visits");
                                chart.draw('chart_' + period, (function(periode) {
                                    return function() {
                                        $('#chart_' + periode).addClass('ready');
                                    };
                                }(period)));

                                var query = new oo.Query("<?php echo $OOChartsAnalyticsProfile; ?>", period);
                                query.addMetric('ga:visits');
                                query.addMetric('ga:newVisits');
                                query.addMetric('ga:timeOnSite');
                                query.addDimension('ga:source');
                                query.setSort('-ga:visits');
                                query.execute((function(periode) {
                                    return function(data) {
                                        var rows = data['rows'];
                                        var tbody = $('#metric_' + periode + ' tbody');
                                        for(var i in rows) {
                                            var time = parseInt(rows[i][3], 10) / parseInt(rows[i][1], 10);
                                            var mins = Math.floor( time / 60 );
                                            var secs = time - mins * 60;
                                            var hrs= Math.floor( time / 3600 );
                                            time = (hrs>9?hrs:"0"+hrs) + ":" + (mins>9?mins:"0"+mins) + ":" + (secs>9?parseInt(secs):"0"+parseInt(secs));

                                            var row = $('<tr/>').html('<td>' + rows[i][0] + '</td><td>' + rows[i][1] + '</td><td>' + rows[i][2] + '</td><td>' + time + '</td>');
                                            tbody.append(row);
                                        }
                                        $('#metric_' + periode).addClass('ready');
                                    }
                                }(period)));
                            }

                        });
                    };
                    </script>

                    <div class="row-fluid">
                        <div class="span6">
                            <h2>Visits <u>last week</u></h2>
                            <div id='chart_7d' class='analytics'></div>

                            <h3>Referrers</h3>
                            <div id='metric_7d' class='analytics'>
                                <table class="table">
                                    <thead>
                                    <tr>
                                        <th>Referrer</th>
                                        <th>Visits</th>
                                        <th>New visits</th>
                                        <th>Average visit time</th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                        <div class="span6">
                            <h2>Visits <u>last 2 months</u></h2>
                            <div id='chart_60d' class='analytics'></div>

                            <h3>Referrers</h3>
                            <div id='metric_60d' class='analytics'>
                                <table class="table">
                                    <thead>
                                    <tr>
                                        <th>Referrer</th>
                                        <th>Visits</th>
                                        <th>New visits</th>
                                        <th>Average visit time</th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>

                <?php } ?>

            </div>
        </div>
    </div>
</div>