Example #1
0
 /**
  *
  */
 public function testCreateMusician()
 {
     $this->dispatchRouter('/pages/crud/', ['title' => 'splinter', 'alias' => 'test', 'content' => 'qqqqqqqqqqqq', 'keywords' => 'qqq', 'description' => 'test', 'created' => '2014-09-02', 'updated' => '2014-09-02', 'userId' => 1], Http\Request::METHOD_POST);
     // $this->assertOk();
     $count = Db::fetchOne('SELECT count(*) FROM pages WHERE title = ?', ['splinter']);
     $this->assertEquals($count, 1);
 }
Example #2
0
 /**
  * Process
  *
  * @param  array $settings
  * @return \Bluz\Grid\Data
  */
 public function process(array $settings = [])
 {
     // process filters
     if (!empty($settings['filters'])) {
         foreach ($settings['filters'] as $column => $filters) {
             foreach ($filters as $filter => $value) {
                 if ($filter == Grid\Grid::FILTER_LIKE) {
                     $value = '%' . $value . '%';
                 }
                 $this->source->andWhere($column . ' ' . $this->filters[$filter] . ' ?', $value);
             }
         }
     }
     // process orders
     if (!empty($settings['orders'])) {
         // Obtain a list of columns
         foreach ($settings['orders'] as $column => $order) {
             $this->source->addOrderBy($column, $order);
         }
     }
     // process pages
     $this->source->setLimit($settings['limit']);
     $this->source->setPage($settings['page']);
     // prepare query
     $connect = Proxy\Config::getData('db', 'connect');
     if (strtolower($connect['type']) == 'mysql') {
         // MySQL
         $select = $this->source->getQueryPart('select');
         $this->source->select('SQL_CALC_FOUND_ROWS ' . current($select));
         // run queries
         $data = $this->source->execute();
         $total = Proxy\Db::fetchOne('SELECT FOUND_ROWS()');
     } else {
         // other
         $totalSource = clone $this->source;
         $totalSource->select('COUNT(*)');
         // run queries
         $data = $this->source->execute();
         $total = $totalSource->execute();
     }
     $gridData = new Grid\Data($data);
     $gridData->setTotal($total);
     return $gridData;
 }
Example #3
0
 /**
  * {@inheritdoc}
  *
  * @param int $offset
  * @param int $limit
  * @param array $params
  * @return array|int|mixed
  */
 public function readSet($offset = 0, $limit = 10, $params = array())
 {
     $select = Db::select('*')->from('test', 't');
     if ($limit) {
         $selectPart = $select->getQueryPart('select');
         $selectPart = 'SQL_CALC_FOUND_ROWS ' . current($selectPart);
         $select->select($selectPart);
         $select->setLimit($limit);
         $select->setOffset($offset);
     }
     $result = $select->execute('\\Application\\Test\\Row');
     if ($limit) {
         $total = Db::fetchOne('SELECT FOUND_ROWS()');
     } else {
         $total = sizeof($result);
     }
     if (sizeof($result) < $total && Request::METHOD_GET == Request::getMethod()) {
         Response::setStatusCode(206);
         Response::setHeader('Content-Range', 'items ' . $offset . '-' . ($offset + sizeof($result)) . '/' . $total);
     }
     return $result;
 }
Example #4
0
 /**
  * Process
  *
  * @param  array $settings
  * @return \Bluz\Grid\Data
  */
 public function process(array $settings = [])
 {
     // process filters
     $where = [];
     if (!empty($settings['filters'])) {
         foreach ($settings['filters'] as $column => $filters) {
             foreach ($filters as $filter => $value) {
                 if ($filter == Grid\Grid::FILTER_LIKE) {
                     $value = '%' . $value . '%';
                 }
                 $where[] = $column . ' ' . $this->filters[$filter] . ' ' . Proxy\Db::quote($value);
             }
         }
     }
     // process orders
     $orders = [];
     if (!empty($settings['orders'])) {
         // Obtain a list of columns
         foreach ($settings['orders'] as $column => $order) {
             $column = Proxy\Db::quoteIdentifier($column);
             $orders[] = $column . ' ' . $order;
         }
     }
     // process pages
     $limit = ' LIMIT ' . ($settings['page'] - 1) * $settings['limit'] . ', ' . $settings['limit'];
     // prepare query
     $connect = Proxy\Config::getData('db', 'connect');
     if (strtolower($connect['type']) == 'mysql') {
         // MySQL
         $dataSql = preg_replace('/SELECT\\s(.*?)\\sFROM/is', 'SELECT SQL_CALC_FOUND_ROWS $1 FROM', $this->source, 1);
         $countSql = 'SELECT FOUND_ROWS()';
     } else {
         // other
         $dataSql = $this->source;
         $countSql = preg_replace('/SELECT\\s(.*?)\\sFROM/is', 'SELECT COUNT(*) FROM', $this->source, 1);
         if (sizeof($where)) {
             $countSql .= ' WHERE ' . join(' AND ', $where);
         }
     }
     if (sizeof($where)) {
         $dataSql .= ' WHERE ' . join(' AND ', $where);
     }
     if (sizeof($orders)) {
         $dataSql .= ' ORDER BY ' . join(', ', $orders);
     }
     $dataSql .= $limit;
     // run queries
     $data = Proxy\Db::fetchAll($dataSql);
     $total = Proxy\Db::fetchOne($countSql);
     $gridData = new Grid\Data($data);
     $gridData->setTotal($total);
     return $gridData;
 }
Example #5
0
 /**
  * Get set of records
  *
  * @param int $offset
  * @param int $limit
  * @param array $params
  * @param int $total
  * @return array|int|mixed
  * @throws ApplicationException
  */
 public function readSet($offset = 0, $limit = 10, $params = [], &$total = null)
 {
     $select = $this->getTable()->select();
     // switch statement for DB type
     $type = Proxy\Db::getOption('connect', 'type');
     switch ($type) {
         case 'mysql':
             $selectPart = $select->getQueryPart('select');
             $selectPart = 'SQL_CALC_FOUND_ROWS ' . current($selectPart);
             $select->select($selectPart);
             $totalSQL = 'SELECT FOUND_ROWS()';
             break;
         case 'pgsql':
         default:
             $selectTotal = clone $select;
             $selectTotal->select('COUNT(*)');
             $totalSQL = $selectTotal->getSql();
             break;
     }
     $select->setLimit($limit);
     $select->setOffset($offset);
     // run queries
     // use transaction to avoid errors
     Proxy\Db::transaction(function () use(&$result, &$total, $select, $totalSQL) {
         $result = $select->execute();
         if (!is_null($total)) {
             $total = Proxy\Db::fetchOne($totalSQL);
         }
     });
     return $result;
 }
Example #6
0
 /**
  * DELETE request with PRIMARY
  */
 public function testDelete()
 {
     $this->dispatchRouter('/test/rest/1', null, Http\Request::METHOD_DELETE);
     $this->assertResponseCode(204);
     $count = Db::fetchOne('SELECT count(*) FROM `test` WHERE `id` = ?', [1]);
     $this->assertEquals($count, 0);
 }
Example #7
0
 /**
  * DELETE request should remove record
  */
 public function testDelete()
 {
     $this->dispatchRouter('/test/crud/', ['id' => 3], Http\Request::METHOD_DELETE);
     $this->assertOk();
     $count = Db::fetchOne('SELECT count(*) FROM `test` WHERE `email` = ?', ['*****@*****.**']);
     $this->assertEquals($count, 0);
 }
Example #8
0
 /**
  * DELETE request with PRIMARY
  */
 public function testDelete()
 {
     Request::setMethod(Request::METHOD_DELETE);
     Request::setRawParams([1]);
     $result = $this->processRest();
     $this->assertFalse($result);
     $count = Db::fetchOne('SELECT count(*) FROM test WHERE id = ?', [1]);
     $this->assertEquals($count, 0);
 }
Example #9
0
 /**
  * get exist dish from table
  */
 private function getTestDish()
 {
     return Db::fetchOne('SELECT * FROM `dishes` WHERE `title` = ?', [$this->validData['title']]);
 }
Example #10
0
 /**
  * DELETE request should remove record
  */
 public function testDelete()
 {
     Request::setMethod(Request::METHOD_DELETE);
     Request::setParams(['id' => 3]);
     $result = $this->processCrud();
     $this->assertEquals(1, $result);
     $count = Db::fetchOne('SELECT count(*) FROM test WHERE id = ?', [3]);
     $this->assertEquals(0, $count);
 }
Example #11
0
 public function testUpdate()
 {
     Db::insert('musician')->setArray(['id' => 1, 'nickname' => 'testupdate', 'group' => 'test2', 'concertDate' => '2015-11-10', 'alias' => 'test2', 'image' => '560asdg9af3f39.jpg'])->execute();
     $this->dispatchRouter('/musician/crud/', ['id' => 1, 'nickname' => 'testupdate', 'group' => 'florida', 'concertDate' => '2015-09-02', 'alias' => 'florida', 'types' => 'jazz'], Http\Request::METHOD_PUT);
     $this->assertResponseCode(200);
     $count = Db::fetchOne('SELECT count(*) FROM musician WHERE alias = ?', ['florida']);
     $this->assertEquals($count, 1);
 }
Example #12
0
use Application\Users\Table;
use Bluz\Controller\Controller;
use Bluz\Proxy\Db;
use Bluz\Proxy\Router;
/**
 * @privilege Management
 *
 * @return void
 */
return function () {
    /**
     * @var Controller $this
     */
    $this->disableView();
    $total = Db::fetchOne('SELECT COUNT(*) FROM users');
    $active = Db::fetchOne('SELECT COUNT(*) FROM users WHERE status = ?', [Table::STATUS_ACTIVE]);
    $last = Db::fetchRow('SELECT id, login FROM users ORDER BY id DESC LIMIT 1');
    ?>
    <script>
        require(['bluz.widget']);
    </script>
    <div class="widget col-4" data-widget-key="users-stats">
        <div class="widget-title">
            <span class="iconholder-left"><i class="fa fa-signal"></i></span>
            <h4>Users</h4>
            <span class="iconholder-right widget-control" data-widget-control="collapse">
                <i class="fa fa-chevron-up"></i>
            </span>
        </div>
        <div class="widget-content">
            <ul class="widget-stats">