PHPackages                             kalamu/dashboard-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. kalamu/dashboard-bundle

ActiveSymfony-bundle[Admin Panels](/categories/admin)

kalamu/dashboard-bundle
=======================

Configurable Bootstrap dashboard for Kalamu

v2.0.2(3y ago)32.0k22MITJavaScriptPHP ^7.0|^8.0CI failing

Since Aug 20Pushed 3y ago3 watchersCompare

[ Source](https://github.com/kalamu/dashboard-bundle)[ Packagist](https://packagist.org/packages/kalamu/dashboard-bundle)[ RSS](/packages/kalamu-dashboard-bundle/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (3)Versions (13)Used By (2)

Bundle kalamu/dashboard-bundle
==============================

[](#bundle-kalamudashboard-bundle)

[![Build Status](https://camo.githubusercontent.com/9beee470be4a2bffba87ebca377050b4bc035c1d84408c6f0f3b2e7ae6a5e758/68747470733a2f2f7472617669732d63692e6f72672f6b616c616d752f64617368626f6172642d62756e646c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/kalamu/dashboard-bundle)

This bundle provide a configurable interface for users to build modulable content. It's can be used to build responsive content, application dashbord and more.

Installation
------------

[](#installation)

Install the bundle:

```
composer require kalamu/dashboard-bundle:~1.0
```

Register the bundle and the dependency in `app/AppKernel.php`:

```
    public function registerBundles()
    {
        $bundles = array(
            // [...]
            new Bazinga\Bundle\JsTranslationBundle\BazingaJsTranslationBundle(),
            new Kalamu\DashboardBundle\KalamuDashboardBundle(),
        );
```

Register de routing in `app/config/routing.yml`:

```
_bazinga_jstranslation:
    resource: "@BazingaJsTranslationBundle/Resources/config/routing/routing.yml"

kalamu_dashboard_api:
    resource: "@KalamuDashboardBundle/Resources/config/routing.yml"
    prefix:   /
```

Publish assets:

```
./bin/console assets:install
```

How to use it ?
---------------

[](#how-to-use-it-)

To use this bundle there is 3 key concepts:

- The context in witch we work
- The elements that compose the content
- The dashboard that is the main container

### The context

[](#the-context)

The contexts are used to organize and filter the elements that are available. For exemple an application can use the dasboard for two purpuses: a dashboard with personnal activity report and a shared public dashboard with gobal stats.

This two purpuses will maybe have common elements like todo task list, but somes will have no sense in somes contexts. For exemple, an element for managing personnal activity sould not be added in public shared dashboard.

For this reason, you can create multiple contexts and define the elements that can be added in each context.

This defined in the `app/config/config.yml` :

```
kalamu_dashboard:
    contexts:
        personal_dashboard:
            types:
                cms_content:
                    standard:
                        - service.element.wysiwyg
                        - service.element.bare_text
                    media:
                        - service.element.image
                        - service.element.video
        global_dashboard:
            types:
                stats:
                    default:
                        - service.element.personnal_time
                        - service.element.number_due_tasks
                    project:
                        - service.element.project_calendar
                        - service.element.milestome
                        - ...
```

This configuration create 2 contexts `personal_dashboard` and `global_dashboard`. In `personal_dashboard` there is one type of element `cms_content` that provide 4 element organised in categories `standard` and `media`.

Each element of a dashboard is a Symfony service. To enable it, you must report the service name in the appropriate category.

### Create an Element

[](#create-an-element)

Like it's said, the elements are Symfony services. They must implements either the `Kalamu\DashboardBundle\Model\AbstractElement` for a simple element or `Kalamu\DashboardBundle\Model\AbstractConfigurableElement` if the element require some sort of configuration.

Example of an element that show the `n` last tasks of an user. This element will ask the user to define how many task must be reported on his dashboard.

```
use Kalamu\DashboardBundle\Model\AbstractConfigurableElement;
use Symfony\Bundle\TwigBundle\TwigEngine;
use Symfony\Component\Form\Form;

class UserDueTasks extends AbstractConfigurableElement
{

    public function getTitle()
    {
        return 'My lasts tasks';
    }

    public function getDescription()
    {
        return 'Display my last assigned tasks with they due time.';
    }

    public function getForm(Form $form)
    {
        $form->add("number", 'integer', [
            'label' => 'Number of task to show',
            'data'  => 10
        ]);
        return $form;
    }

    public function render(TwigEngine $templating){
        $number = $this->parameters['number'];

        $tasks = $this->theMagicOne($number); // Here you call your magic method that get the last '$number' tasks of the current user

        return $templating->render('AcmeAppBundle:Element:user_due_tasks.html.twig',
            ['tasks' => $tasks, 'number' => $number]);
    }

}
```

You must register this class as a service in Symfony, then add the service name on your config file (`app/config/config.yml`) in the appropriate context(s) and category.

The Form used to configure the element is rendered with default options. If you want a more specific template for this form, you can add the following method `renderConfigForm(TwigEngine $templating, Form $form)` that will be automaticaly called if present.

### Display the dashboard

[](#display-the-dashboard)

```
{% stylesheets '@KalamuDashboardBundle/Resources/public/css/dashboard.css' %}

{% endstylesheets %}

{% javascripts
    '@KalamuDashboardBundle/Resources/public/js/dashboard/widget.js'
    '@KalamuDashboardBundle/Resources/public/js/dashboard/col.js'
    '@KalamuDashboardBundle/Resources/public/js/dashboard/row.js'
    '@KalamuDashboardBundle/Resources/public/js/dashboard/section.js'
    '@KalamuDashboardBundle/Resources/public/js/dashboard/explorer.js'
    '@KalamuDashboardBundle/Resources/public/js/dashboard/generic-row.js'
    '@KalamuDashboardBundle/Resources/public/js/cms-dashboard.js'
%}

{% endjavascripts %}

Save

$(function(){
    Translator.locale = '{{app.request.getLocale()}}';

    // Explorer for widgets
    explorerWidget = $('').appendTo('body').kalamuElementExplorer({
        element_api: '{{path('api_element_base_url')}}',
        element_context: 'cms',
        type: 'cms.content',
        modalOptions: {backdrop: 'static'}
    });

    // Dashboard for element organisation
    $('#MyDashboard').kalamuDashboard({
        explorerWidget: explorerWidget,
        enable_widget: true
    });

    $('#saveMyDashboard').click(function(e){
        e.preventDefault();
        datas = $('#MyDashboard').kalamuDashboard('export');
        // Do whatever you want to save the datas.
        // They can be reinjected after with the 'import' method.
    });
});

```

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity75

Established project with proven stability

 Bus Factor1

Top contributor holds 93.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~200 days

Recently: every ~354 days

Total

12

Last Release

1403d ago

Major Versions

1.2.3 → v2.0.02020-03-27

PHP version history (3 changes)1.0.0PHP &gt;=5.4

1.1.1PHP ^7.0

v2.0.2PHP ^7.0|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/1b12ed423a03cfb7eb41e4a0b5c1182ab30271cfc4f3f3e5962bb73873aca37f?d=identicon)[nykopol](/maintainers/nykopol)

---

Top Contributors

[![nykopol](https://avatars.githubusercontent.com/u/2706685?v=4)](https://github.com/nykopol "nykopol (68 commits)")[![JoaoManoel](https://avatars.githubusercontent.com/u/6238111?v=4)](https://github.com/JoaoManoel "JoaoManoel (3 commits)")[![yowaiOtoko](https://avatars.githubusercontent.com/u/3836845?v=4)](https://github.com/yowaiOtoko "yowaiOtoko (1 commits)")[![yurimalheiros](https://avatars.githubusercontent.com/u/161663?v=4)](https://github.com/yurimalheiros "yurimalheiros (1 commits)")

---

Tags

dashboard-bundlesymfonysymfony-bundle

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kalamu-dashboard-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/kalamu-dashboard-bundle/health.svg)](https://phpackages.com/packages/kalamu-dashboard-bundle)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[shopware/administration

Administration frontend for the Shopware Core

414.3M116](/packages/shopware-administration)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k14](/packages/2lenet-crudit-bundle)[sylius/order-bundle

Sales order management for Symfony applications.

11439.5k12](/packages/sylius-order-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
