Esempio n. 1
0
 public function action_load()
 {
     $id = $this->request->param('id');
     $items = Enums::get_values($id);
     header('Content-type: application/json');
     die(json_encode(array('multi' => Enums::is_multi($id) ? true : false, 'items' => array_values($items))));
 }
Esempio n. 2
0
 private static function init()
 {
     self::$enums = DB::select()->from('enumerations')->execute()->as_array('id');
     $result = DB::select()->from('enumeration_values')->order_by('value', 'asc')->execute()->as_array();
     self::$values = array();
     foreach ($result as $value) {
         self::$values[$value['enum_id']][$value['value']] = $value['value'];
     }
 }
Esempio n. 3
0
 public function action_index()
 {
     define('JOB_STATUS_COLUMN', 'data.44');
     if (!rand(0, 1000)) {
         Database_Mongo::collection('search')->remove(array('expires' => array('$lt' => time())));
     }
     if ($_POST) {
         $data = array('request' => $_POST, 'expires' => time() + 3600);
         Database_Mongo::collection('search')->insert($data);
         $search_id = strval($data['_id']);
         Session::instance()->set('search-settings', $search_id);
         header('Content-type: application/json');
         die(json_encode(array('success' => true, 'id' => $search_id)));
     } elseif (!$_GET && Session::instance()->get('search-settings')) {
         $params = Session::instance()->get('search-settings');
         if (!is_array($params)) {
             $params = json_decode($params);
         }
         if ($params !== NULL) {
             $data = array('request' => $params, 'expires' => time() + 3600);
             Database_Mongo::collection('search')->insert($data);
             $search_id = strval($data['_id']);
             Session::instance()->set('search-settings', $search_id);
         } else {
             $search_id = Session::instance()->get('search-settings');
         }
         if ($search_id) {
             $this->redirect('search?id=' . $search_id);
         }
     } elseif (isset($_GET['clear'])) {
         Session::instance()->delete('search-settings');
         $_GET = array();
     } elseif (isset($_GET['id'])) {
         $data = Database_Mongo::collection('search')->findOne(array('_id' => new MongoId($_GET['id'])));
         if ($data) {
             Session::instance()->set('search-settings', $_GET['id']);
             $_GET = $data['request'];
         } else {
             Session::instance()->delete('search-settings');
         }
     }
     $actions = array('contain', 'does not contain', '=', '<', '<=', '>', '>=', '<>', 'empty', 'not empty');
     $actions_mongo = array('=' => '$eq', '<' => '$lt', '<=' => '$lte', '>' => '$gt', '>=' => '$gte', '<>' => '$ne');
     $columns = Columns::get_visible();
     $reports = Columns::get_static();
     $regs = DB::select('region_id')->from('user_regions')->where('user_id', '=', User::current('id'))->execute()->as_array('region_id', 'region_id');
     $regions = DB::select('id', 'name')->from('regions');
     if ($regs) {
         $regions->where('id', 'IN', $regs);
     }
     $regions = $regions->execute()->as_array('id', 'name');
     $query = array();
     $list_query = array();
     if (Arr::get($_GET, 'submissions')) {
         $result = Database_Mongo::collection('submissions')->aggregate(array(array('$match' => array('active' => 1)), array('$group' => array('_id' => '$job_key'))));
         $result = array_column($result['result'], '_id');
         $query['_id'] = array('$in' => $result);
     }
     if (Group::current('show_all_jobs')) {
         if (Arr::get($_GET, 'company')) {
             $companies = explode(',', $_GET['company']);
             if (count($companies) > 1) {
                 $companies = array('$in' => array_map("intval", $companies));
             } else {
                 $companies = intval($_GET['company']);
             }
             if (Arr::get($_GET, 'ex')) {
                 $list_query['$or'] = $query['$or'] = array(array('companies' => $companies), array('ex' => $companies));
             } else {
                 $list_query['companies'] = $query['companies'] = $companies;
             }
         }
     } else {
         if (Arr::get($_GET, 'status', -1) == 0) {
             $list_query['ex'] = $query['ex'] = intval(User::current('company_id'));
         } else {
             $list_query['companies'] = $query['companies'] = intval(User::current('company_id'));
         }
     }
     if (Group::current('allow_assign')) {
         foreach (Columns::$settings as $key => $value) {
             if (isset($_GET['settings'][$key])) {
                 if ($_GET['settings'][$key]) {
                     $query[$key] = array('$exists' => 1);
                 } else {
                     $query[$key] = array('$exists' => 0);
                 }
             }
         }
     }
     if (Arr::get($_GET, 'ticket')) {
         $tickets = explode(',', $_GET['ticket']);
         $q = array();
         foreach ($tickets as $ticket) {
             $ticket = preg_replace('/[^a-z0-9]/i', '', strval($ticket));
             if (!$ticket) {
                 continue;
             }
             if (preg_match('/^T1W[0-9]{12}$/', $ticket)) {
                 $q[] = $ticket;
             } else {
                 $q[] = new MongoRegex('/.*' . $ticket . '.*/i');
             }
         }
         if (count($q) > 1) {
             $query['_id'] = array('$in' => $q);
         } elseif ($q) {
             $query['_id'] = $q[0];
         }
     }
     if (Arr::get($_GET, 'start')) {
         $query['last_update']['$gt'] = Columns::parse($_GET['start'], 'date');
     }
     if (Arr::get($_GET, 'end')) {
         $query['last_update']['$lt'] = Columns::parse($_GET['end'], 'date');
     }
     if (Arr::get($_GET, 'submit-start')) {
         $query['last_submit']['$gt'] = Columns::parse($_GET['submit-start'], 'date');
     }
     if (Arr::get($_GET, 'submit-end')) {
         $query['last_submit']['$lt'] = Columns::parse($_GET['submit-end'], 'date');
     }
     $status = Arr::get($_GET, 'status', Group::current('allow_assign') ? -1 : Enums::STATUS_ALLOC);
     $_GET['status'] = intval($status);
     if ($status != -1 && (Group::current('show_all_jobs') || $status)) {
         $query['status'] = intval($status) ?: array('$exists' => 0);
     }
     if (!isset($_GET['region'])) {
         $_GET['region'] = User::current('default_region');
     }
     if (Arr::get($_GET, 'region') && (!$regs || isset($regs[$_GET['region']]))) {
         $list_query['region'] = $query['region'] = strval($_GET['region']);
     } elseif ($regs) {
         $list_query['region'] = $query['region'] = array('$in' => array_values($regs));
     }
     if (Arr::get($_GET, 'type')) {
         $query['assigned.' . $_GET['type']] = array('$exists' => 1);
     }
     foreach (Arr::get($_GET, 'columns', array()) as $id => $column) {
         if ($column) {
             $op = Arr::get($actions, Arr::path($_GET, 'actions.' . $id), 0);
             $value = Arr::path($_GET, 'values.' . $id, '');
             $value = Columns::parse($value, Columns::get_type($column));
             if (substr(Columns::get_type($column), 0, 4) == 'enum' && Enums::is_multi(substr(Columns::get_type($column), 5)) && $op == '=' && $value) {
                 $op = 'contain';
             }
             if (Columns::get_type($column) == 'date') {
                 if ($op === 'contain') {
                     $op = '=';
                 } elseif ($op === 'does not contain') {
                     $op = '<>';
                 } elseif ($op == '<=') {
                     $value += 86399;
                 }
                 if ($op == '=' && date('His', $value) === '000000') {
                     $query['data.' . $column]['$lte'] = $value + 86399;
                     $op = '>=';
                 }
             }
             if ($op === 'contain') {
                 $op = '$eq';
                 $value = new MongoRegex('/.*' . preg_replace('/[^a-z0-9,.+:;!? -]/i', '', $value) . '.*/i');
             } elseif ($op === 'does not contain') {
                 $op = '$not';
                 $value = new MongoRegex('/.*' . preg_replace('/[^a-z0-9,.+:;!? -]/i', '', $value) . '.*/i');
             } elseif ($op === 'empty') {
                 $op = '$in';
                 $value = array(NULL, '', 0);
             } elseif ($op === 'not empty') {
                 $op = '$nin';
                 $value = array(NULL, '', 0);
             } else {
                 $op = Arr::get($actions_mongo, $op, '$eq');
             }
             if ($op == '$eq' && !$value) {
                 $value = NULL;
             }
             if (isset($query['data.' . $column]) && $op == '$eq') {
                 if (isset($query['data.' . $column]['$in'])) {
                     $query['data.' . $column]['$in'][] = $value;
                 } elseif (isset($query['data.' . $column]['$eq'])) {
                     $query['data.' . $column] = array('$in' => array($query['data.' . $column]['$eq'], $value));
                 } else {
                     $query['data.' . $column]['$in'] = array($value);
                 }
             } else {
                 $query['data.' . $column][$op] = $value;
             }
         }
     }
     foreach ($query as $key => $ops) {
         if (substr($key, 0, 5) == 'data.' && count($ops) == 1 && key($ops) == '$eq') {
             $query[$key] = array_shift($ops);
         }
     }
     $jobs = Database_Mongo::collection('jobs');
     $list_values = array();
     foreach (Columns::get_search() as $key => $value) {
         if ($value == 2) {
             $list_values[$key] = $jobs->distinct('data.' . $key, $query ?: NULL) ?: array();
             if (substr(Columns::get_type($key), 0, 4) == 'enum') {
                 $list = array();
                 foreach ($list_values[$key] as $values) {
                     if ($values) {
                         $values = explode(', ', $values);
                         foreach ($values as $value) {
                             $list[$value] = 1;
                         }
                     } else {
                         $list[''] = 1;
                     }
                 }
                 $list_values[$key] = array_keys($list);
             }
             if ($list_values[$key]) {
                 sort($list_values[$key]);
             }
         }
     }
     Pager::$count = $jobs->count($query);
     $show = array('region' => 1, 'status' => 1, 'created' => 1, 'last_update' => 1, 'last_submit' => 1, 'assigned' => 1, 'companies' => 1, 'ex' => 1);
     foreach (Columns::$settings as $key => $value) {
         $show[$key] = 1;
     }
     foreach (Columns::get_search() as $column => $type) {
         $show['data.' . $column] = 1;
     }
     $result = $jobs->find($query, $show);
     $sort = Arr::get($_GET, 'sort');
     if (is_array($sort)) {
         $save = implode('|', $sort);
         DB::update('users')->set(array('default_sort' => $save))->where('id', '=', User::current('id'))->execute();
     } else {
         $sort = explode('|', User::current('default_sort') ?: '-update');
         $_GET['sort'] = $sort;
     }
     $sorting = array();
     foreach ($sort as $order) {
         $dir = substr($order, 0, 1) == '-' ? -1 : 1;
         $order = substr($order, 1);
         switch ($order) {
             case 'id':
                 $order = '_id';
                 break;
             case 'update':
                 $order = 'last_update';
                 break;
             case 'submit':
                 $order = 'last_submit';
                 break;
             case 'status':
                 $order = 'status';
                 break;
             case 'data-8':
                 $sorting['address'] = $dir;
                 $order = false;
                 break;
             default:
                 if (substr($order, 0, 5) == 'data-') {
                     $order = 'data.' . intval(substr($order, 5));
                 } else {
                     $order = false;
                 }
         }
         if ($order) {
             $sorting[$order] = $dir;
         }
     }
     $result->sort($sorting)->limit(Pager::limit())->skip(Pager::offset());
     $tickets = array();
     while ($row = $result->next()) {
         $tickets[] = $row;
     }
     $ids = array_column($tickets, '_id');
     $types = DB::select('id', 'name')->from('job_types')->execute()->as_array('id', 'name');
     $companies = DB::select('id', 'name')->from('companies')->execute()->as_array('id', 'name');
     if ($ids) {
         $attachments = DB::select('job_id', DB::expr('COUNT(*) as cnt'))->from('attachments')->where('job_id', 'IN', $ids)->and_where('uploaded', '>', 0)->and_where('folder', '<>', 'Signatures')->group_by('job_id')->execute()->as_array('job_id', 'cnt');
     } else {
         $attachments = array();
     }
     if (Group::current('allow_assign')) {
         $result = Database_Mongo::collection('submissions')->aggregate(array(array('$match' => array('job_key' => array('$in' => $ids), 'active' => 1)), array('$group' => array('_id' => '$job_key', 'count' => array('$sum' => 1)))));
         $submissions = array();
         foreach (Arr::get($result, 'result', array()) as $value) {
             $submissions[$value['_id']] = $value['count'];
         }
     }
     $result = Database_Mongo::collection('forms')->find(array(), array('_id' => 1, 'type' => 1, 'name' => 1));
     $forms = array();
     foreach ($result as $form) {
         $forms[$form['type']][strval($form['_id'])] = $form['name'];
     }
     $view = View::factory('Jobs/Search')->bind('reports', $reports)->bind('regions', $regions)->bind('columns', $columns)->bind('actions', $actions)->bind('tickets', $tickets)->bind('submissions', $submissions)->bind('attachments', $attachments)->bind('list_values', $list_values)->bind('types', $types)->bind('sort', $sort)->bind('companies', $companies)->bind('forms', $forms)->bind('query', $query);
     $this->response->body($view);
 }
Esempio n. 4
0
 public function action_index()
 {
     if (!Group::current('allow_assign')) {
         throw new HTTP_Exception_403('Forbidden');
     }
     header('Content-type: application/json');
     $action = $this->request->param('id');
     $result = array();
     $columns = DB::select('id')->from('job_columns')->where('editable', '=', 1)->execute()->as_array('id', 'id');
     switch ($action) {
         case 'get':
             $data = array();
             $result['columns'] = array();
             foreach ($columns as $column) {
                 $value = array('id' => intval($column), 'name' => Columns::get_name($column));
                 $type = Columns::get_type($column);
                 if (substr($type, 0, 4) == 'enum') {
                     $id = substr($type, 5);
                     $type = Enums::is_multi($id) ? 'multi' : 'list';
                     $value['values'] = array_values(Enums::get_values($id));
                 }
                 $value['type'] = $type ?: 'string';
                 $result['columns'][] = $value;
                 $data[] = 'data.' . $column;
             }
             $ids = explode(',', strval(Arr::get($_GET, 'id', '')));
             $values = array();
             if ($ids) {
                 $query = array('_id' => array('$in' => $ids));
                 if (!Group::current('show_all_jobs')) {
                     $query['companies'] = intval(User::current('company_id'));
                 }
                 $jobs = Database_Mongo::collection('jobs')->find($query, $data);
                 foreach ($jobs as $job) {
                     foreach ($job['data'] as $key => $value) {
                         $job['data'][$key] = Columns::output($value, Columns::get_type($key), true);
                     }
                     $job['id'] = $job['_id'];
                     unset($job['_id']);
                     $values[] = $job;
                 }
             }
             $result['jobs'] = $values;
             break;
         case 'set':
             if (User::current('login') !== Arr::get($_POST, 'username')) {
                 die('Wrong username! Please, check it and submit data again.');
             }
             $data = Arr::get($_POST, 'jobs');
             $values = array();
             foreach ($data as $job) {
                 $id = strval(Arr::get($job, 'id', ''));
                 foreach (Arr::get($job, 'data') as $key => $value) {
                     if (isset($columns[$key])) {
                         $values[$id][$key] = strval($value);
                     }
                 }
             }
             $query = array('_id' => array('$in' => array_keys($values)));
             if (!Group::current('show_all_jobs')) {
                 $query['companies'] = intval(User::current('company_id'));
             }
             $data = array();
             foreach ($columns as $column) {
                 $data['data.' . $column] = 1;
             }
             $count = 0;
             $jobs = Database_Mongo::collection('jobs')->find($query, $data);
             foreach ($jobs as $job) {
                 if (isset($values[$job['_id']])) {
                     $id = $job['_id'];
                     $new = array();
                     $archive = array();
                     foreach ($values[$id] as $key => $value) {
                         $value = $value ? Columns::parse($value, Columns::get_type($key)) : '';
                         $old = Arr::path($job, 'data.' . $key);
                         if (($value || $old) && $value != $old) {
                             if ($value) {
                                 $new['$set']['data.' . $key] = $value;
                             } else {
                                 $new['$unset']['data.' . $key] = 1;
                             }
                             $archive['data'][$key] = array('old_value' => $old, 'new_value' => $value);
                         }
                     }
                     if ($new) {
                         $new['$set']['last_update'] = time();
                         Database_Mongo::collection('jobs')->update(array('_id' => $id), $new);
                         $archive['fields'] = array_keys($archive['data']);
                         $archive['job_key'] = $id;
                         $archive['user_id'] = User::current('id');
                         $archive['update_time'] = time();
                         $archive['update_type'] = 2;
                         $archive['filename'] = 'MANUAL';
                         Database_Mongo::collection('archive')->insert($archive);
                         $count++;
                     }
                 }
             }
             $result = array('success' => true, 'count' => $count);
             break;
     }
     die(json_encode($result));
 }
Esempio n. 5
0
 public static function input($name, $id, $type, $value, $title = '', $required = false)
 {
     if (strpos($type, 'enum') !== false) {
         $enum = substr($type, 5);
         if (Enums::is_multi($enum)) {
             $class = array('class' => 'form-control multiselect', 'multiple' => 'multiple');
             if ($required) {
                 $class['data-validation'] = 'required';
             }
             return Form::select($name . ($id ? '[' . $id . '][]' : '[]'), Enums::get_values($enum), explode(', ', $value), $class);
             //                $values = explode(', ', $value);
             //                $result = '';
             //                foreach (Enums::get_values($enum) as $value)
             //                    $result .= Form::label(NULL, Form::checkbox($name . ($id ? '[' . $id . ']' : '') . '[]', $value, in_array($value, $values, true)) . $value, array('class' => 'control-label')) . '<br/>';
             //                return $result;
         } else {
             return Form::select($name . ($id ? '[' . $id . ']' : ''), array('' => '') + Enums::get_values($enum, $value), $value, array('class' => 'form-control'));
         }
     } else {
         switch ($type) {
             case 'bool':
                 return '<input type="hidden" value="0" name="' . $name . ($id ? '[' . $id . ']' : '') . '" /><label class="control-label"><input type="checkbox" name="' . $name . ($id ? '[' . $id . ']' : '') . '" id="' . $name . '-' . $id . '" ' . ($value ? 'checked' : '') . '/>' . $title . '</label>';
             case 'text':
                 return '<textarea rows="10" id="' . $name . ($id ? '-' . $id : '') . '" class="form-control" name="' . $name . ($id ? '[' . $id . ']' : '') . '">' . HTML::chars($value) . '</textarea>';
                 break;
             case 'date':
                 return '<input type="text" id="' . $name . ($id ? '-' . $id : '') . '" class="form-control datepicker" name="' . $name . ($id ? '[' . $id . ']' : '') . '" value="' . ($value ? date('d-m-Y', $value) : '') . '" />';
                 break;
             case 'datetime':
                 return '<input type="text" id="' . $name . ($id ? '-' . $id : '') . '" class="form-control datetimepicker" name="' . $name . ($id ? '[' . $id . ']' : '') . '" value="' . ($value ? date('d-m-Y H:i', $value) : '') . '" />';
                 break;
             case 'float':
                 return '<input class="form-control input-float" id="' . $name . ($id ? '-' . $id : '') . '" name="' . $name . ($id ? '[' . $id . ']' : '') . '" type="text" value="' . HTML::chars($value) . '" />';
                 break;
             case 'int':
                 return '<input class="form-control input-int" id="' . $name . ($id ? '-' . $id : '') . '" name="' . $name . ($id ? '[' . $id . ']' : '') . '" type="text" value="' . HTML::chars($value) . '" />';
                 break;
             default:
                 return '<input class="form-control" id="' . $name . ($id ? '-' . $id : '') . '" name="' . $name . ($id ? '[' . $id . ']' : '') . '" type="text" value="' . HTML::chars($value) . '" />';
         }
     }
 }
Esempio n. 6
0
 public function action_columns()
 {
     $list = array(array('id' => 0, 'name' => 'Ticket ID'));
     foreach (Columns::get_all() as $key => $value) {
         $column = array('id' => $key, 'name' => $value);
         $type = Columns::get_type($key);
         if (substr($type, 0, 4) == 'enum') {
             $id = substr($type, 5);
             $column['type'] = Enums::is_multi($id) ? 'multi' : 'enum';
             $column['values'] = Enums::get_values($id);
         } else {
             $column['type'] = $type ?: 'string';
         }
         $list[] = $column;
     }
     die(json_encode($list));
 }
Esempio n. 7
0
                    elseif ($id > 161 && $id < 182 && $value != (isset($values['data' . ($id + 28)]) ? $values['data' . ($id+28)]: Arr::path($job, 'data.' . ($id+28), '')))
                        $class = 'bg-warning';
                    elseif ($id > 189 && $id < 210 && $value != (isset($values['data' . ($id - 28)]) ? $values['data' . ($id-28)]: Arr::path($job, 'data.' . ($id-28), '')))
                        $class = 'bg-warning';
                    else $class = '';
                ?>

                <td  class="<?=$class?>" <?= $id > 161 && $id < 182 ? "data-has-actual-relation='$relation_id'" : ''?> <?= $id > 189 && $id < 210 ? "data-has-variation-relation='$relation_id'" : ''?><?= $id > 242 && $id < 255 ? "data-has-additional-relation='$relation_id'" : ''?>>
                        <label  class="left-label"><?=HTML::chars($name)?><?=isset($values['data' . $id]) ? '*' : ''?>: </label>
                        <div class="">
                            <?php $type = Columns::get_type($id); if (Columns::allowed($id) == Columns::COLUMN_WRITE && !Columns::get_readonly($id)):?>
                                <?php echo Columns::input('data', $id, $type, $value); if (isset($submissions['data.' . $id])):?>
                                    <ul class="list-unstyled radio-container">
                                        <li><label><input type="radio" class="submission-select" data-id="data-<?=$id?>" name="submission-data[<?=$id?>]" value="0" />Keep current</label></li>

                                        <?php $multi = substr($type, 0, 4) == 'enum' && Enums::is_multi(substr($type, 5));
                                        if (Group::current('allow_assign')) foreach ($submissions['data.' . $id] as $submission): $user = User::get($submission['user_id']);?>
                                            <li><label>
                                                    <input type="radio" class="submission-select" data-id="data-<?=$id?>" name="submission-data[<?=$id?>]" value="<?=$submission['id']?>" />
                                                    <?=$type == 'date' ? date('Y-m-d H:i:s', $submission['value']) :HTML::chars($submission['value']) ? : '<span class="glyphicon glyphicon-remove"></span>'?>
                                                    (<?=date('d-m-Y H:i', $submission['time']) . ' - ' . Arr::get($user, 'login', 'Unknown user') . ' / ' . Arr::get($companies, Arr::get($user, 'company_id'), 'Unknown company')?>)
                                                </label></li>
                                        <?php endforeach;?>
                                    </ul>
                                <?php endif; else:?>
                                <p class="form-control-static">
                                    <?=Columns::output($value, $type)?>
                                </p>
                            <?php endif;?>
                        </div>
Esempio n. 8
0
 public function action_index()
 {
     $token = Arr::get($_REQUEST, 'token');
     if (!API::check($token)) {
         die(json_encode(array('success' => false, 'error' => 'forbidden')));
     }
     $regs = DB::select('region_id')->from('user_regions')->where('user_id', '=', User::current('id'))->execute()->as_array(NULL, 'region_id');
     $query = array('companies' => intval(User::current('company_id')));
     if ($regs) {
         $query['region'] = array('$in' => $regs);
     }
     $result = Database_Mongo::collection('jobs')->find($query, array('created' => '1', 'last_update' => 1));
     $jobs = array();
     Form::$static_title[] = 245;
     $columns = array_flip(array_merge(array_keys(Columns::get_static()), Form::$static_title));
     $columns[8] = 1;
     $columns[12] = 1;
     $columns[13] = 1;
     $columns[14] = 1;
     foreach (Form::$columns as $type => $list) {
         foreach ($list as $keys => $name) {
             foreach (explode(',', $keys) as $key) {
                 if (is_numeric($key)) {
                     $columns[$key] = 1;
                 }
             }
         }
     }
     foreach ($result as $job) {
         $jobs[$job['_id']] = Arr::get($job, 'last_update') ?: Arr::get($job, 'created');
     }
     $list = array();
     foreach ($columns as $column => $value) {
         $value = array('n' => Columns::get_name($column));
         $type = Columns::get_type($column);
         if ($type) {
             if (substr($type, 0, 4) == 'enum') {
                 $value['t'] = 'enum';
                 $value['m'] = Enums::is_multi(substr($type, 5));
                 $value['v'] = array_values(Enums::get_values(substr($type, 5)));
             } else {
                 $value['t'] = Columns::get_type($column);
             }
         }
         $list[$column] = $value;
     }
     $columns = $list;
     ksort($columns);
     $form = array();
     foreach (Form::$columns as $id => $list) {
         foreach ($list as $key => $value) {
             $form[$id][] = array('k' => $key, 'v' => $value);
         }
     }
     if (isset($_GET['gzip'])) {
         die(gzcompress(json_encode(array('success' => true, 'columns' => $columns, 'static' => Form::$static_title, 'form' => $form, 'jobs' => $jobs)), 9));
     } else {
         header('Content-type: application/json');
         die(json_encode(array('success' => true, 'columns' => $columns, 'static' => Form::$static_title, 'form' => $form, 'jobs' => $jobs)));
     }
 }
Esempio n. 9
0
                 case 'int':
                     echo 'Number';
                     break;
                 case 'float':
                     echo 'Floating-point';
                     break;
                 case 'date':
                     echo 'Date';
                     break;
                 case 'datetime':
                     echo 'Date and Time';
                     break;
                 default:
                     if (strpos($column['type'], 'enum') === 0) {
                             $id = substr($column['type'], 5);
                         echo '<span title="' . (Enums::is_multi($id) ? 'MULTIPLE VALUES:' : 'SINGLE VALUE:') . "\n\n" . implode("\n", Enums::get_values($id)) . '">Enum (' . Arr::get($enums, $id, 'Unknown') . ')</span>';
                     } else echo 'Default (string)';
                 endswitch;
             ?>
         </td>
         <td class="column-financial"><?=$column['financial'] ? : ''?></td>
         <td class="column-export" data-val="<?=$column['csv'] ? 'checked' : ''?>"><?=Utils::bool_icon($column['csv'])?></td>
         <td class="column-report" data-val="<?=$column['show_reports'] ? 'checked' : ''?>"><?=Utils::bool_icon($column['show_reports'])?></td>
         <td class="column-direct" data-val="<?=$column['direct'] ? 'checked' : ''?>"><?=Utils::bool_icon($column['direct'])?></td>
         <td class="column-track" data-val="<?=$column['track'] ? 'checked' : ''?>"><?=Utils::bool_icon($column['track'])?></td>
         <td class="column-persistent" data-val="<?=$column['persistent'] ? 'checked' : ''?>"><?=Utils::bool_icon($column['persistent'])?></td>
         <td class="column-editable" data-val="<?=$column['editable'] ? 'checked' : ''?>"><?=Utils::bool_icon($column['editable'])?></td>
         <td class="column-readonly" data-val="<?=$column['read_only'] ? 'checked' : ''?>"><?=Utils::bool_icon($column['read_only'])?></td>
     </tr>
     <?php endforeach;?>
 </table>