Exemplo n.º 1
0
 public function indexAjax()
 {
     $input = Input::requireParams('username');
     $username = $input->username;
     $id = (int) $this->getUser('id');
     $validator = Validator::create(array('username' => "required|unique:\\User,username,{$id},id", 'first_name' => 'max:80', 'last_name' => 'max:160', 'password' => 'min:5|max:32', 'password2' => 'identical:password', 'timezone' => 'required|max:80'));
     if ($validator->failed()) {
         return BootstrapUI::formResponse()->failedOn($validator);
     }
     $input = $validator->getParamsObj();
     $user = User::fetchOne($this->getUser('id'));
     $userSessionData = Session::get('user');
     $refresh = $user->timezone != $input->timezone;
     $user->username = $input->username;
     $user->first_name = $input->first_name;
     $user->last_name = $input->last_name;
     $user->timezone = $input->timezone;
     if ($input->password !== null && strlen($input->password) >= 5) {
         $user->pass = md5($input->password);
     }
     $user->save();
     foreach ($user->getData() as $key => $value) {
         $userSessionData[$key] = $value;
     }
     Session::set('user', $userSessionData);
     if ($refresh) {
         return BootstrapUI::formResponse()->refresh();
     } else {
         return BootstrapUI::formResponse();
     }
 }
 public function goFilterAjax()
 {
     $validator = Validator::create(array('package' => 'min:3|max:1024', 'package_version' => 'min:3|max:255', 'brand' => 'min:3|max:255', 'os_version' => 'min:1|max:255', 'phone_model' => 'min:3|max:255', 'product' => 'min:3|max:255'));
     if ($validator->failed()) {
         return BootstrapUI::formResponse()->failedOn($validator);
     }
     $data = $validator->getParamsObj();
     $params = array();
     if ($data->package !== null) {
         $params['package'] = $data->package;
     }
     if ($data->package_version !== null) {
         $params['package_version'] = $data->package_version;
     }
     if ($data->brand !== null) {
         $params['brand'] = $data->brand;
     }
     if ($data->os_version !== null) {
         $params['os_version'] = $data->os_version;
     }
     if ($data->phone_model !== null) {
         $params['phone_model'] = $data->phone_model;
     }
     if ($data->product !== null) {
         $params['product'] = $data->product;
     }
     // the country is array
     if (Input::hasPost('country')) {
         $params['country'] = implode(',', array_values(Input::post('country')));
     }
     if (sizeof($params) == 0) {
         return BootstrapUI::formResponse()->failed('You must define at least one criteria!');
     }
     return BootstrapUI::formResponse()->redirect(Url::href('live-feed', 'filter', $params));
 }
Exemplo n.º 3
0
 public function searchAjax()
 {
     $validator = Validator::create(array('package_id' => 'required|integer', 'package_version_id' => 'required|integer', 'brand_id' => 'required|integer', 'os_version_id' => 'required|integer', 'product_id' => 'required|integer', 'model_id' => 'required|integer', 'country_id' => 'required|integer', 'provider_id' => 'required|integer', 'date_from' => null, 'date_to' => null, 'stack_trace_id' => 'required|integer'));
     if ($validator->failed()) {
         Application::throwError(400, 'Bad request');
     } else {
         $params = $validator->getParamsObj();
         $prms = array();
         $query = new ResultSet();
         $count = new Select();
         $count->from('crash_archive', 'a')->field('COUNT(*)', 'total');
         $query->from('crash_archive', 'a')->field('a.id')->field('a.created_at')->leftJoin('package p', 'p.id', '=', 'a.package_id')->field('p.name', 'package_name')->leftJoin('package_version pv', 'pv.id', '=', 'a.package_version_id')->field('pv.value', 'package_version')->leftJoin('brand b', 'b.id', '=', 'a.brand_id')->field('b.name', 'brand_name')->leftJoin('stack_trace st', 'st.id', '=', 'a.stack_trace_id')->field('st.summary', 'stack_trace')->leftJoin('version v', 'v.id', '=', 'a.os_version_id')->field('v.os', 'os_name')->field('v.name', 'os_version_name')->leftJoin('country c', 'c.id', '=', 'a.country_id')->field('c.country', 'country_name')->field('c.tld', 'tld');
         if ($params->date_from !== null) {
             $dateFrom = new DateTime($params->date_from);
             $query->where('a.created_at', '>=', Misc::utcFromUser('Y-m-d H:i:s', $dateFrom));
             $count->where('a.created_at', '>=', Misc::utcFromUser('Y-m-d H:i:s', $dateFrom));
             $prms['date_from'] = $params->date_from;
         }
         if ($params->date_to !== null) {
             $dateTo = new DateTime($params->date_to);
             $query->where('a.created_at', '<', Misc::utcFromUser('Y-m-d H:i:s', $dateTo));
             $count->where('a.created_at', '<', Misc::utcFromUser('Y-m-d H:i:s', $dateTo));
             $prms['date_to'] = $params->date_to;
         }
         if ($params->package_id > 0) {
             $query->where('a.package_id', $params->package_id);
             $count->where('a.package_id', $params->package_id);
             $prms['package_id'] = $params->package_id;
         }
         if ($params->package_version_id > 0) {
             $query->where('a.package_version_id', $params->package_version_id);
             $count->where('a.package_version_id', $params->package_version_id);
             $prms['package_version_id'] = $params->package_version_id;
         }
         if ($params->brand_id > 0) {
             $query->where('a.brand_id', $params->brand_id);
             $count->where('a.brand_id', $params->brand_id);
             $prms['brand_id'] = $params->brand_id;
         }
         if ($params->os_version_id > 0) {
             $query->where('a.os_version_id', $params->os_version_id);
             $count->where('a.os_version_id', $params->os_version_id);
             $prms['os_version_id'] = $params->os_version_id;
         }
         if ($params->product_id > 0) {
             $query->where('a.product_id', $params->product_id);
             $count->where('a.product_id', $params->product_id);
             $prms['product_id'] = $params->product_id;
         }
         if ($params->model_id > 0) {
             $query->where('a.model_id', $params->model_id);
             $count->where('a.model_id', $params->model_id);
             $prms['model_id'] = $params->model_id;
         }
         if ($params->country_id > 0) {
             $query->where('a.country_id', $params->country_id);
             $count->where('a.country_id', $params->country_id);
             $prms['country_id'] = $params->country_id;
         }
         if ($params->provider_id > 0) {
             $query->where('a.provider_id', $params->provider_id);
             $count->where('a.provider_id', $params->provider_id);
             $prms['provider_id'] = $params->provider_id;
         }
         if ($params->stack_trace_id > 0) {
             $query->where('a.stack_trace_id', $params->stack_trace_id);
             $count->where('a.stack_trace_id', $params->stack_trace_id);
             $prms['stack_trace_id'] = $params->stack_trace_id;
         }
         if (sizeof($prms) == 1) {
             // speed up count(*) ... because we have that precalculated
             if (isset($prms['stack_trace_id'])) {
                 $count = new Select();
                 $count->from('stack_trace')->field('total')->where('id', $prms['stack_trace_id']);
             } else {
                 if (isset($prms['brand_id'])) {
                     $count = new Select();
                     $count->from('brand')->field('total')->where('id', $prms['brand_id']);
                 } else {
                     if (isset($prms['package_id'])) {
                         $count = new Select();
                         $count->from('package')->field('total')->where('id', $prms['package_id']);
                     } else {
                         if (isset($prms['package_version_id'])) {
                             $count = new Select();
                             $count->from('package_version')->field('total')->where('id', $prms['package_version_id']);
                         } else {
                             if (isset($prms['os_version_id'])) {
                                 $count = new Select();
                                 $count->from('version')->field('total')->where('id', $prms['os_version_id']);
                             } else {
                                 if (isset($prms['country_id'])) {
                                     $count = new Select();
                                     $count->from('country')->field('total')->where('id', $prms['country_id']);
                                 } else {
                                     if (isset($prms['provider_id'])) {
                                         $count = new Select();
                                         $count->from('provider')->field('total')->where('id', $prms['provider_id']);
                                     } else {
                                         if (isset($prms['model_id'])) {
                                             $count = new Select();
                                             $count->from('phone_model')->field('total')->where('id', $prms['model_id']);
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
         $query->setCountQuery($count);
         return BootstrapUI::tableRemoteResponse()->column('country_name', function ($value, $row) {
             if ($row['tld'] !== null) {
                 $country = \Koldy\Html::quotes($row['country_name']);
                 return '<img src="' . \Koldy\Url::link("img/flag/{$row['tld']}.png") . '" title="' . $country . '" />';
             } else {
                 return '';
             }
         })->column('created_at', function ($value, $row) {
             $user = \Koldy\Session::get('user');
             return \Koldy\Timezone::date($user['timezone'], 'd.m.Y', strtotime($value)) . '<br/>' . \Koldy\Timezone::date($user['timezone'], 'H:i:s', strtotime($value));
         })->column('package_name', function ($value, $row) {
             $html = $value;
             $html .= "<details><summary>View stack trace summary</summary><pre class=\"text-danger\">{$row['stack_trace']}</pre></details>";
             return $html;
         })->column('package_version')->column('brand_name')->column('os_version_name', function ($value, $row) {
             return "{$row['os_name']} {$row['os_version_name']}";
         })->column('country')->column('action', function ($value, $row) {
             return \Bootstrap::anchor(\Bootstrap::icon('eye-open'), \Koldy\Url::href('report', $row['id']))->title('View report')->size('xs');
         })->resultSet($query)->handle();
     }
 }
Exemplo n.º 4
0
 /**
  * Actually add new user into database
  */
 public function addUserAjax()
 {
     $validator = Validator::create(array('id' => 'is:0', 'username' => "required|min:2|max:32|unique:\\User,username", 'first_name' => 'max:255', 'last_name' => 'max:255', 'pass' => 'required|min:5|max:255', 'pass2' => 'identical:pass', 'account_type' => 'required', 'timezone' => 'required'));
     if ($validator->failed()) {
         return BootstrapUI::formResponse()->failedOn($validator);
     }
     $data = $validator->getParams();
     unset($data['id'], $data['pass2']);
     $data['pass'] = md5($data['pass']);
     $user = User::create($data);
     if ($user === false) {
         Log::error('Can not create new user');
         return BootstrapUI::formResponse()->failed('Something went wrong');
     }
     return BootstrapUI::formResponse()->redirect(Url::href('system', 'users'));
 }