Please enable JavaScript to view this site.

Das Handbuch für den JobRouter Entwickler

Die Dashboard-API stellt unter dem Namespace \JobRouter\Api\Dashboard\v1 die Klasse Widget bereit, welche für eigene Widgets erweitert werden muss. Ein neues Widget muss den Namespace passend zur Ordnerhierarchie wählen.
Wenn ein Widgets beispielsweise in <Jobrouter>/dashboard/MyWidgets/ActiveUsers/ActiveUsers.php definiert ist, muss der Namespace dashboard\MyWidgets\ActiveUsers lauten und der Klassenname ActiveUsers, damit das Widget richtig eingebunden werden kann.

Hinweis: Verwenden Sie bei der Benennung Ihrer Widget-Klassen und Namespaces nur alphanumerische Zeichen.

Zusätzlich ist mindestens die Methode getTitle zu implementieren, welche den Namen zur Auflistung bestimmt.

<?php

namespace dashboard\MyWidgets\ActiveUsers;

 

use JobRouter\Api\Dashboard\v1\Widget;

 

class ActiveUsers extends Widget

{

    public function getTitle()

    {

        return CONST_MY_WIDGETS_ACTIVE_USERS;

    }

 

    public function getCategory()

    {

        return 'administration';

    }

 

    public function getDimensions()

    {

        return ([

            'minHeight' => 2,

            'minWidth' => 2,

            'maxHeight' => 4,

            'maxWidth' => 4,

        ]);

    }

 

    public function getData()

    {

        return [

            'items' => $this->getActiveUsers(),

            'noEntries' => CONST_NO_ENTRIES,

        ];

    }

 

    private function getActiveUsers()

    {

        $jobDB = $this->getJobDB();

        $sql = 'SELECT username as label, last_action as value FROM JRSESSIONS';

 

        $result = $jobDB->query($sql);

 

        if ($result === false) {

            return [];

        }

 

        return $jobDB->fetchAll($result);

    }

 

    public function isAuthorized()

    {

        return $this->getUser()->getUsername() == 'admin' || $this->getUser()->isInJobFunction('development');

    }

 

    public function isMandatory()

    {

        return false;

    }

}