PHP Classes
elePHPant
Icontem

File: src/Ajax/Plugins/Datatables/Renderer.php

Recommend this page to a friend!
  Classes of Thierry Feuzeu  >  Polr Admin Dashboard  >  src/Ajax/Plugins/Datatables/Renderer.php  >  Download  
File: src/Ajax/Plugins/Datatables/Renderer.php
Role: Class source
Content type: text/plain
Description: Class source
Class: Polr Admin Dashboard
Another admin dashboard for the Polr URL shortener
Author: By
Last change:
Date: 1 month ago
Size: 4,416 bytes
 

Contents

Class file image Download
<?php

/**
 * Renderer.php - Renderer for the Datatables plugin.
 */

namespace Lagdo\Polr\Admin\Ext\Datatables;

use
App\Helpers\UserHelper;

class
Renderer
{
   
/**
     * Settings received in the response from Polr
     */
   
public $settings = null;

   
/* Cell rendering functions */

   
public function renderLongUrlCell($link)
    {
        return
'<a target="_blank" title="' . e($link->long_url) . '" href="'.
           
$link->long_url .'">' . str_limit($link->long_url, 50) . '</a>
            <a class="btn btn-primary btn-xs edit-long-link-btn"><i class="fa fa-edit edit-link-icon"></i></a>'
;
    }

    public function
renderClicksCell($link)
    {
        if((
$this->settings) && ($this->settings->analytics))
        {
            return
$link->clicks . ' <a class="stats-icon show-link-stats" href="javascript:void(0)">' .
               
'<i class="fa fa-area-chart" aria-hidden="true"></i></a>';
        }
        else
        {
            return
$link->clicks;
        }
    }

    public function
renderDeleteUserCell($user)
    {
       
// Add "Delete" action button
        /*$btn_class = '';
        if (($this->settings) && $this->settings->username === $user->username)
        {
            $btn_class = 'disabled';
        }
        else
        {
            $btn_class = 'btn-delete-user';
        }*/
        // This feature is disabled
       
$btn_class = 'disabled';
        return
'<a class="btn btn-sm btn-danger ' . $btn_class . '">Delete</a>';
    }

    public function
renderDeleteLinkCell($link)
    {
       
// Add "Delete" action button
       
return '<a class="btn btn-sm btn-warning btn-delete-link delete-link">Delete</a>';
    }

    public function
renderAdminApiActionCell($user)
    {
       
// Add "API Info" action button
       
if (($this->settings) && $this->settings->username === $user->username)
        {
           
$btn_class = 'disabled';
        }
        else
        {
           
$btn_class = 'btn-show-api-info';
        }
        return
'<a class="' . $btn_class . ' btn btn-sm btn-info">API info</a>';
    }

    public function
renderToggleUserActiveCell($user)
    {
       
// Add user account active state toggle buttons
       
if (($this->settings) && $this->settings->username === $user->username)
        {
           
$btn_class = ' disabled';
        }
        else
        {
           
$btn_class = ($user->active) ? ' btn-disable-user' : ' btn-enable-user';
        }

        if (
$user->active)
        {
           
$active_text = 'Active';
           
$btn_color_class = ' btn-success';
        }
        else
        {
           
$active_text = 'Inactive';
           
$btn_color_class = ' btn-danger';
        }

        return
'<a class="btn btn-sm status-display' . $btn_color_class .
           
$btn_class . '">' . $active_text . '</a>';
    }

    public function
renderChangeUserRoleCell($user)
    {
       
// Add "change role" select box
        // <select> field does not use Angular bindings
        // because of an issue affecting fields with duplicate names.

       
if (($this->settings) && $this->settings->username === $user->username)
        {
           
// Do not allow user to change own role
           
$select_role = '<select class="form-control" disabled>';
        }
        else
        {
           
$select_role = '<select class="form-control change-user-role">';
        }

       
$userRoles = ($this->settings) ? $this->settings->roles : [];
        foreach (
$userRoles as $role_text => $role_val)
        {
           
// Iterate over each available role and output option
           
$select_role .= '<option value="' . e(($role_val) ?: 'default') . '"';

            if (
$user->role === $role_val)
            {
               
$select_role .= ' selected';
            }

           
$select_role .= '>' . e($role_text) . '</option>';
        }

       
$select_role .= '</select>';
        return
$select_role;
    }

    public function
renderToggleLinkActiveCell($link)
    {
       
// Add "Disable/Enable" action buttons
       
if($link->is_disabled)
        {
           
$btn_class = 'btn-enable-link btn-danger';
           
$btn_text = 'Enable';
        }
        else
        {
           
$btn_class = 'btn-disable-link btn-success';
           
$btn_text = 'Disable';
        }

        return
'<a class="btn btn-sm ' . $btn_class . '">' . $btn_text . '</a>';
    }
}