/** * Class constructor * Creates the page */ function __construct() { parent::__construct(); // create the form $this->form = new TForm(); $this->form->class = 'tform'; // creates the form field container $table = new TTable(); $table->width = '100%'; $this->form->add($table); // title row $table->addRowSet(new TLabel('Automatic selections'), '')->class = 'tformtitle'; // create the form fields // parameters (name, database, model, key, value) $radio = new TDBRadioGroup('radio', 'samples', 'Category', 'id', 'name'); $check = new TDBCheckGroup('check', 'samples', 'Category', 'id', 'name'); $combo = new TDBCombo('combo', 'samples', 'Category', 'id', 'name'); $select = new TDBSelect('select', 'samples', 'Category', 'id', 'name'); $search = new TDBMultiSearch('search', 'samples', 'Category', 'id', 'name'); $autocomp = new TDBEntry('autocomplete', 'samples', 'Category', 'name'); $search->setMinLength(3); $search->setOperator('like'); //default data: $radio->setValue(2); $check->setValue(array(1, 3)); $combo->setValue(2); $select->setValue(array(1, 3)); $search->setValue(array(99 => 'Predefined')); $radio->setLayout('horizontal'); $check->setLayout('horizontal'); $combo->setSize(160); $select->setSize(200, 70); $search->setSize(300, 70); // add the fields to the table $table->addRowSet(new TLabel('TDBRadioGroup:'), $radio); $table->addRowSet(new TLabel('TDBCheckGroup:'), $check); $table->addRowSet(new TLabel('TDBCombo:'), $combo); $table->addRowSet(new TLabel('TDBSelect:'), $select); $table->addRowSet(new TLabel('TDBMultiSearch:'), $search); $table->addRowSet(new TLabel('TDBEntry:'), $autocomp); // creates the action button $button1 = new TButton('action1'); // define the button action $button1->setAction(new TAction(array($this, 'onSave')), 'Save'); $button1->setImage('ico_save.png'); $table->addRowSet($button1, '')->class = 'tformaction'; // define wich are the form fields $this->form->setFields(array($radio, $check, $combo, $select, $search, $autocomp, $button1)); // wrap the page content using vertical box $vbox = new TVBox(); $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__)); $vbox->add($this->form); parent::add($vbox); }
/** * Class constructor * Creates the page, the form and the listing */ public function __construct() { parent::__construct(); $this->string = new StringsUtil(); // creates the form $this->form = new TForm('form_search_Atividade'); $this->form->class = 'tform'; // CSS class // creates a table $table = new TTable(); $table->width = '100%'; $this->form->add($table); // add a row for the form title $row = $table->addRow(); $row->class = 'tformtitle'; // CSS class $row->addCell(new TLabel('Atividade'))->colspan = 2; // create the form fields $id = new THidden('id'); $data_atividade_inicial = new TDate('data_atividade_inicial'); $data_atividade_inicial->setMask('dd/mm/yyyy'); $data_atividade_final = new TDate('data_atividade_final'); $data_atividade_final->setMask('dd/mm/yyyy'); $criteria = new TCriteria(); $criteria->add(new TFilter("origem", "=", 1)); $criteria->add(new TFilter("codigo_cadastro_origem", "=", 100)); $criteria->add(new TFilter("ativo", "=", 1)); $criteria->add(new TFilter("usuario", "is not ")); $colaborador_id = new TDBCombo('colaborador_id', 'atividade', 'Pessoa', 'pessoa_codigo', 'pessoa_nome', 'pessoa_nome', $criteria); $tipo_atividade_id = new TDBCombo('tipo_atividade_id', 'atividade', 'TipoAtividade', 'id', 'nome', 'nome'); $ticket_id = new TDBMultiSearch('ticket_id', 'atividade', 'Ticket', 'id', 'titulo', 'titulo'); $pesquisa_master = new TEntry('pesquisa_master'); $criteria = new TCriteria(); $criteria->add(new TFilter("ativo", "=", 1)); $newparam['order'] = 'pessoa_nome'; $newparam['direction'] = 'asc'; $criteria->setProperties($newparam); // order, offset $solicitante_id = new TDBSeekButton('solicitante_id', 'atividade', 'form_search_Ticket', 'Pessoa', 'pessoa_nome', 'solicitante_id', 'solicitante_nome', $criteria); $solicitante_nome = new TEntry('solicitante_nome'); $solicitante_nome->setEditable(FALSE); $total_atividades = new TEntry('total_atividades'); $total_atividades->setEditable(FALSE); // define the sizes $id->setSize(50); $data_atividade_inicial->setSize(100); $data_atividade_final->setSize(100); $colaborador_id->setSize(300); $tipo_atividade_id->setSize(300); $ticket_id->setMinLength(0); $ticket_id->setMaxSize(1); $ticket_id->setSize(300); $ticket_id->setOperator('ilike'); $solicitante_id->setSize(40); $solicitante_nome->setSize(235); $total_atividades->setSize(100); $pesquisa_master->setSize(300); // add one row for each form field $table->addRowSet(new TLabel('Solicitante:'), array($solicitante_id, $solicitante_nome)); $table->addRowSet(new TLabel('Colaborador:'), $colaborador_id); $table->addRowSet(new TLabel('Dt. Atividades inicio:'), array($data_atividade_inicial, $label_data_fim = new TLabel('Fim:'), $data_atividade_final)); $label_data_fim->setSize(48); $table->addRowSet(new TLabel('Atividade:'), $tipo_atividade_id); $table->addRowSet(new TLabel('Ticket:'), $ticket_id); $table->addRowSet(new TLabel('Pesquisa por palavra:'), $pesquisa_master); $table->addRowSet(new TLabel('Total horas atividades:'), $total_atividades); $table->addRowSet(new TLabel(''), $id); $this->form->setFields(array($id, $data_atividade_inicial, $data_atividade_final, $colaborador_id, $tipo_atividade_id, $ticket_id, $solicitante_id, $solicitante_nome, $pesquisa_master, $total_atividades)); $change_data = new TAction(array($this, 'onChangeData')); $data_atividade_inicial->setExitAction($change_data); $data_atividade_final->setExitAction($change_data); // keep the form filled during navigation with session data $this->form->setData(TSession::getValue('Atividade_filter_data')); // create two action buttons to the form $find_button = TButton::create('find', array($this, 'onSearch'), _t('Find'), 'ico_find.png'); $new_button = TButton::create('new', array('AtividadeForm', 'onEdit'), _t('New'), 'fa:plus-square green'); $clean_button = TButton::create('clean', array($this, 'onClean'), 'Limpar', 'ico_close.png'); $this->form->addField($find_button); $this->form->addField($new_button); $this->form->addField($clean_button); $buttons_box = new THBox(); $buttons_box->add($find_button); $buttons_box->add($new_button); $buttons_box->add($clean_button); // add a row for the form action $row = $table->addRow(); $row->class = 'tformaction'; // CSS class $row->addCell($buttons_box)->colspan = 2; // creates a Datagrid $this->datagrid = new TDataGrid(); $this->datagrid->setHeight(320); // creates the datagrid columns $data_atividade = new TDataGridColumn('data_atividade', 'Data', 'right', 40); $hora_inicio = new TDataGridColumn('hora_inicio', 'Inicio', 'right', 20); $hora_fim = new TDataGridColumn('hora_fim', 'Fim', 'right', 20); $hora_qte = new TDataGridColumn('hora_qte', 'Qtde', 'right', 20); $colaborador_id = new TDataGridColumn('pessoa->pessoa_nome', 'Colaborador', 'left', 50); $tipo_atividade_id = new TDataGridColumn('tipo_atividade->nome', 'Atividade', 'left', 100); //get_tipo_atividade()->nome $sistema_id = new TDataGridColumn('sistema->nome', 'Sistema', 'left', 100); $ticket_id = new TDataGridColumn('ticket->titulo', 'Ticket', 'left', 200); // get_ticket()->titulo // transformers $colaborador_id->setTransformer(array($this, 'retornaPessoa')); $hora_qte->setTransformer(array($this, 'calculaDiferenca')); $data_atividade->setTransformer(array('StringsUtil', 'formatDateBR')); $hora_inicio->setTransformer(array('StringsUtil', 'retira_segundos')); $hora_fim->setTransformer(array('StringsUtil', 'retira_segundos')); // add the columns to the DataGrid $this->datagrid->addColumn($data_atividade); $this->datagrid->addColumn($hora_inicio); $this->datagrid->addColumn($hora_fim); $this->datagrid->addColumn($hora_qte); $this->datagrid->addColumn($colaborador_id); $this->datagrid->addColumn($tipo_atividade_id); $this->datagrid->addColumn($sistema_id); $this->datagrid->addColumn($ticket_id); // creates the datagrid column actions $order_data_atividade = new TAction(array($this, 'onReload')); $order_data_atividade->setParameter('order', 'data_atividade'); $data_atividade->setAction($order_data_atividade); $order_colaborador_id = new TAction(array($this, 'onReload')); $order_colaborador_id->setParameter('order', 'pessoa->pessoa_nome'); $colaborador_id->setAction($order_colaborador_id); $order_tipo_atividade_id = new TAction(array($this, 'onReload')); $order_tipo_atividade_id->setParameter('order', 'tipo_atividade->nome'); $tipo_atividade_id->setAction($order_tipo_atividade_id); $order_sistema_id = new TAction(array($this, 'onReload')); $order_sistema_id->setParameter('order', 'sistema->nome'); $sistema_id->setAction($order_sistema_id); $order_ticket_id = new TAction(array($this, 'onReload')); $order_ticket_id->setParameter('order', 'ticket->titulo'); $ticket_id->setAction($order_ticket_id); // creates two datagrid actions $action1 = new TDataGridAction(array('AtividadeForm', 'onEdit')); $action1->setLabel(_t('Edit')); $action1->setImage('fa:pencil-square-o blue fa-lg'); $action1->setField('id'); // add the actions to the datagrid $this->datagrid->addAction($action1); // create the datagrid model $this->datagrid->createModel(); // creates the page navigation $this->pageNavigation = new TPageNavigation(); $this->pageNavigation->setAction(new TAction(array($this, 'onReload'))); $this->pageNavigation->setWidth($this->datagrid->getWidth()); // create the page container $container = TVBox::pack($this->form, $this->datagrid, $this->pageNavigation); $container->style = 'width: 100%;max-width: 1200px;'; $this->datagrid->style = ' width: 100%; max-width: 1200px;'; parent::add($container); }