Пример #1
0
 public function handleAjaxRequest(Request $request)
 {
     $var = $this->getVar();
     $column_list = $this->getChildren('column');
     $object_list = $this->getValue();
     /**
      * Retrieve QuerySet
      */
     if ($object_list instanceof QuerySet) {
         $length = $request->get('length');
         if ($length > 0) {
             $object_list->limit($request->get('start'), $length);
         }
     }
     /**
      * Handle search.
      */
     foreach ($request->get('columns') as $number => $column) {
         if ($column['searchable'] == 'true' && !empty($column['search']['value'])) {
             $filter = $column['name'];
             //$regex = $column['search']['regex'];
             $value = $column['search']['value'];
             $object_list->filter($filter, 'like', $value . '%');
         }
     }
     /**
      * Generate columns content.
      */
     $data = array();
     foreach ($object_list as $v) {
         $this->setContext($var, $v);
         $item = array();
         foreach ($column_list as $column) {
             $item[] = $column->render();
         }
         $data[] = $item;
     }
     /**
      * Generate dataTable output.
      */
     if ($object_list instanceof QuerySet) {
         $recordsTotal = $object_list->getTotalCount();
         $recordsFiltered = $recordsTotal;
     } else {
         $recordsTotal = count($data);
         $recordsFiltered = $recordsTotal;
     }
     $results = array('draw' => (int) $request->get('draw'), 'recordsTotal' => $recordsTotal, 'recordsFiltered' => $recordsFiltered, 'data' => $data);
     echo json_encode($results);
     return TRUE;
 }
Пример #2
0
 public function handleAjaxRequest(Request $request)
 {
     $name = $this->getName();
     $value_name = $this->getAttribute('value');
     $variables = $this->fetchVariables($value_name);
     $variable = reset($variables);
     $raw = explode('.', $variable);
     $last = array_pop($raw);
     $variable = join('.', $raw);
     $object = $this->fetchValue('#{' . $variable . '}');
     if (!$object instanceof \Biome\Core\ORM\Models) {
         throw new \Exception('Unable to fetch the object from the variable: ' . $variable);
     }
     $object->{$last} = $request->get($name);
     $results = array();
     if ($object->save()) {
         $results['success'] = 'Success!';
         $results['value'] = $object->{$last};
     } else {
         $results['errors'] = $object->getErrors();
     }
     echo json_encode($results);
     return TRUE;
 }
Пример #3
0
 protected function saveValue(Request $request)
 {
     $last = NULL;
     $object = $this->getObject($last);
     $name = $this->getName();
     if ($object->{$last} instanceof \Biome\Core\ORM\Models) {
         $model = $last;
         $last .= '_id';
     } else {
         $model = substr($last, 0, -3);
     }
     if ($request->get($name, NULL) === NULL) {
         throw new \Exception('Parameter ' . $name . ' not sent!');
     }
     $new_value = $request->get($name);
     if (!empty($new_value)) {
         $object->{$last} = $new_value;
     } else {
         $object->{$last} = NULL;
     }
     $results = array();
     if ($object->save()) {
         $new_value = $object->{$last};
         $results['success'] = 'Success!';
         $results['value'] = $new_value;
         if ($object->hasField($model)) {
             $results['content'] = (string) $object->{$model};
         }
     } else {
         $results['errors'] = $object->getErrors();
     }
     return $results;
 }
Пример #4
0
 protected static function declareServices()
 {
     /* Registering default services. */
     /**
      * Autoload
      */
     Autoload::register();
     /**
      * Biome default logger service.
      */
     if (!Biome::hasService('logger')) {
         Biome::registerService('logger', function () {
             return new \Psr\Log\NullLogger();
         });
     }
     /**
      * Biome default request.
      */
     if (!Biome::hasService('request')) {
         Biome::registerService('request', function () {
             return Request::createFromGlobals();
         });
     }
     /**
      * Biome default lang service.
      */
     if (!Biome::hasService('lang')) {
         Biome::registerService('lang', function () {
             $languages = Biome::getService('request')->getLanguages();
             $lang = new \Biome\Core\Lang\XMLLang($languages);
             return $lang;
         });
     }
     /**
      * Biome default view service.
      */
     if (!Biome::hasService('view')) {
         Biome::registerService('view', function () {
             $view = new \Biome\Core\View();
             $app_name = Biome::getService('lang')->get('app_name');
             $view->setTitle($app_name);
             return $view;
         });
     }
     /**
      * Biome default rights service.
      */
     if (!Biome::hasService('rights')) {
         Biome::registerService('rights', function () {
             $auth = \Biome\Core\Collection::get('auth');
             if ($auth->isAuthenticated()) {
                 $admin_id = 1;
                 // Default value of the Admin role id.
                 if (Biome::hasService('config')) {
                     $admin_id = Biome::getService('config')->get('ADMIN_ROLE_ID', 1);
                 }
                 $roles = $auth->user->roles;
                 foreach ($roles as $role) {
                     /* If Admin. */
                     if ($role->role_id == $admin_id) {
                         return new \Biome\Core\Rights\FreeRights();
                     }
                     $rights = AccessRights::loadFromJSON($role->role_rights);
                 }
                 return $rights;
             }
             $rights = AccessRights::loadFromArray(array());
             $rights->setAttribute('User', 'firstname', TRUE, TRUE)->setAttribute('User', 'lastname', TRUE, TRUE)->setAttribute('User', 'mail', TRUE, TRUE)->setAttribute('User', 'password', TRUE, TRUE)->setRoute('GET', 'index', 'index')->setRoute('GET', 'auth', 'login')->setRoute('POST', 'auth', 'signin')->setRoute('POST', 'auth', 'signup');
             return $rights;
         });
     }
     /**
      * Biome default route service.
      */
     if (!Biome::hasService('router')) {
         Biome::registerService('router', function () {
             $router = new Route();
             $router->autoroute();
             return $router;
         });
     }
     /**
      * Biome default dispatch service.
      */
     if (!Biome::hasService('dispatcher')) {
         Biome::registerService('dispatcher', function () {
             return Biome::getService('router')->getDispatcher();
         });
     }
     Logger::info('Services registered!');
 }