Ejemplo n.º 1
0
 protected function createApplication($handler = null, array $request = [])
 {
     $application = new \Mesour\UI\Application('mesourApp');
     if ($handler) {
         list($componentName, $handlerName) = explode('-', $handler);
         $newRequest = [];
         foreach ($request as $key => $value) {
             $newRequest['m_mesourApp-' . $componentName . '-' . $key] = $value;
         }
         $request = $newRequest;
         $request['m_do'] = 'mesourApp-' . $handler;
     }
     $application->setRequest($request);
     $application->run();
     return $application;
 }
Ejemplo n.º 2
0
//create relations
$groups = [['id' => '2', 'name' => 'Group 2', 'type' => 'first'], ['id' => '1', 'name' => 'Group 1', 'type' => 'second'], ['id' => '3', 'name' => 'Group 3', 'type' => 'first']];
// create source
$source = new \Mesour\DataGrid\Sources\ArrayGridSource('users', 'id', $data, ['group' => $groups]);
$groupStructure = $source->addTableToStructure('group', 'id');
$groupStructure->addNumber('id');
$groupStructure->addText('name');
$groupStructure->addEnum('type')->addValue('first')->addValue('second');
$dataStrucutre = $source->getDataStructure();
$source->joinField('group', 'group_id', 'name', 'group_name');
$dataStrucutre->addDate('last_login');
$dataStrucutre->addDate('timestamp');
$dataStrucutre->addManyToOne('group', 'group', 'group_id', '{name} ({type})');
$currentUserRole = 'registered';
// create application
$application = new \Mesour\UI\Application('mesourapp');
$application->setRequest($_REQUEST);
$application->setUserRole($currentUserRole);
$application->run();
// authorizator settings
$auth = $application->getAuthorizator();
$auth->addRole('guest');
$auth->addRole('registered', 'guest');
$auth->addResource('menu');
$auth->allow('guest', 'menu', ['first', 'second']);
$auth->allow('registered', 'menu');
$auth->deny('registered', 'menu', 'second');
$grid = new \Mesour\UI\DataGrid('basicDataGrid', $application);
$wrapper = $grid->getWrapperPrototype();
$wrapper->class('my-class');
// TRUE = append
Ejemplo n.º 3
0
function createForUser(\Mesour\Editable\Structures\IDataStructure $structure, $userId)
{
    $structure->addText('name', 'Name', $userId)->setTextarea()->setEditPermission('user-editable', 'name-edit');
    $structure->addText('surname', 'Surname', $userId)->setEditPermission('user-editable', 'surname-edit');
    $structure->addText('email', 'Email', $userId)->setEditPermission('user-editable', 'email-edit');
    $structure->addNumber('amount', 'Amount', $userId)->setUnit('EUR')->setDecimalPoint(',')->setThousandSeparator('.')->setDecimals(2)->setEditPermission('user-editable', 'amount-edit');
    $structure->addDate('last_login', 'Last login', $userId)->setFormat('Y-m-d H:i:s')->setEditPermission('user-editable', 'last_login-edit');
    $structure->addEnum('role', 'Role', $userId)->addValue('admin', 'Admin')->addValue('moderator', 'Moderator')->setEditPermission('user-editable', 'role-edit');
    $structure->addBool('has_pro', 'Has PRO', $userId)->setDescription('Has PRO')->setEditPermission('user-editable', 'has_pro-edit');
    $structure->addOneToOne('wallet', 'Wallet', $userId)->enableRemoveRow()->enableCreateNewRow()->setEditPermission('user-editable', 'wallet-edit');
    $structure->addManyToOne('group', 'Group', $userId)->enableEditCurrentRow()->enableEditCurrentRow()->enableCreateNewRow()->setEditPermission('user-editable', 'group-edit')->setRemovePermission('user-editable', 'group-remove')->setCreatePermission('user-editable', 'group-create');
    $structure->addOneToMany('addresses', 'Addresses', $userId)->enableCreateNewRow()->enableRemoveRow()->setEditPermission('user-editable', 'addresses-edit')->setRemovePermission('user-editable', 'addresses-remove')->setCreatePermission('user-editable', 'addresses-create');
    $structure->addManyToMany('companies', 'Companies', $userId)->enableCreateNewRow()->enableRemoveRow()->enableAttachRow()->setEditPermission('user-editable', 'companies-edit')->setRemovePermission('user-editable', 'companies-remove')->setAttachPermission('user-editable', 'companies-attach')->setCreatePermission('user-editable', 'companies-create');
}
// APPLICATION
$application = new \Mesour\UI\Application('mesourApp');
$application->setRequest($_REQUEST);
$application->setUserRole('admin');
$auth = $application->getAuthorizator();
$auth->addRole('guest');
$auth->addRole('registered', 'guest');
$auth->addRole('admin', 'registered');
$auth->addResource('user-editable');
$auth->allow('admin', 'user-editable');
$auth->deny('registered', 'user-editable', 'companies-edit');
$auth->deny('registered', 'user-editable', 'companies-create');
$auth->deny('registered', 'user-editable', 'companies-remove');
$auth->deny('registered', 'user-editable', 'companies-attach');
$application->run();
// EDITABLE
$editable = new \Mesour\UI\Editable('editableTest', $application);
Ejemplo n.º 4
0
<hr>

<div class="container">
	<h2>Basic functionality</h2>

	<hr>

	<?php 
// CONNECTION & NDBT
$connection = new \Nette\Database\Connection('mysql:host=127.0.0.1;dbname=sources_test', 'root', 'root');
$cacheMemoryStorage = new \Nette\Caching\Storages\MemoryStorage();
$structure = new \Nette\Database\Structure($connection, $cacheMemoryStorage);
$conventions = new \Nette\Database\Conventions\DiscoveredConventions($structure);
$context = new \Nette\Database\Context($connection, $structure, $conventions, $cacheMemoryStorage);
// APPLICATION
$application = new Mesour\UI\Application();
$application->setRequest($_REQUEST);
$application->run();
// SELECTION
$selection = $context->table('users');
$selection->select('users.*')->select('group.name group_name')->select('group.type group_type')->select('group.date group_date');
// SOURCE
$source = new \Mesour\Filter\Sources\NetteDbFilterSource('users', 'id', $selection, $context, ['group_name' => 'group.name', 'group_type' => 'group.type', 'group_date' => 'group.date']);
// FILTER
$filter = new \Mesour\UI\Filter('test', $application);
$filter->setSource($source);
$filter->addTextFilter('action', 'Status', [0 => 'Inactive', 1 => 'Active'])->setMainFilter(false);
$filter->setCustomReference('action', [0 => 'Inactive', 1 => 'Active']);
$filter->addTextFilter('name', 'Name');
$filter->addNumberFilter('amount', 'Amount');
$filter->addDateFilter('last_login', 'Last login');
Ejemplo n.º 5
0
\Tracy\Debugger::enable(\Tracy\Debugger::DEVELOPMENT, __DIR__ . '/log');
require_once SRC_DIR . 'Mesour/Pager/Paginator.php';
require_once SRC_DIR . 'Mesour/Pager/IPager.php';
require_once SRC_DIR . 'Mesour/UI/AdvancedPager.php';
require_once SRC_DIR . 'Mesour/UI/Pager.php';
?>

<hr>

<div class="container">
	<h2>Basic functionality</h2>

	<hr>

	<?php 
$application = new \Mesour\UI\Application();
$application->setRequest($_REQUEST);
$application->run();
// pager
$pager = new \Mesour\UI\Pager('pager');
$application->addComponent($pager);
$pager->getPaginator()->setItemsPerPage(10);
$pager->setCount(55);
$pagerHtml = $pager->create();
// advanced
$advanced = new \Mesour\UI\AdvancedPager('advanced_pager');
$application->addComponent($advanced);
$advanced->getPaginator()->setItemsPerPage(5);
$advanced->setCount(105);
$advancedHtml = $advanced->create();
// rendering