/** * Cria cria um campo hidden, um campo para id, um para descrição e um botão para a busca no seeker. * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function fileCustom($id, $value = null, array $attribs = array()) { $params = $attribs['jQueryParams']; unset($attribs['jQueryParams']); if (!isset($attribs['name'])) { $attribs['name'] = $attribs['id']; } $attribs['style'] .= 'width:180px;'; $attribs['readonly'] = 'true'; $name = $attribs['name']; $xhtml = '<input type="text"' . ' name="' . $this->view->escape($name) . '_name"' . ' id="' . $this->view->escape($id) . '_name"' . ' value="' . $this->view->escape($value) . '"' . $this->_htmlAttribs($attribs) . $this->getClosingBracket(); $xhtml = ' <input id="' . $id . '" name="' . $attribs['name'] . '" type="hidden" /> <input id="' . $id . '_type" name="' . $attribs['name'] . '_type" type="hidden" /> ' . $xhtml . ' <button id="buttonUpload_' . $id . '" onClick="jQuery(\'#' . $id . '\').TFile(\'uploadFile\');" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only" nofocus="true" style="width:35px;height:20px;" type="button" role="button" aria-disabled="false" title="Subir arquivo"> <span class="ui-button-icon-primary ui-icon ui-icon-arrowthickstop-1-n"></span> <span class="ui-button-text"> </span> </button> <button id="buttonDownload_' . $id . '" onClick="jQuery(\'#' . $id . '\').TFile(\'downloadFile\');" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only" nofocus="true" style="width:35px;height:20px;" type="button" role="button" aria-disabled="false" title="Baixar arquivo"> <span class="ui-button-icon-primary ui-icon ui-icon-arrowthickstop-1-s"></span> <span class="ui-button-text"> </span> </button> <button id="buttonDelete_' . $id . '" onClick="jQuery(\'#' . $id . '\').TFile(\'deleteFile\');" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only" nofocus="true" style="width:35px;height:20px;" type="button" role="button" aria-disabled="false" title="Limpar arquivo"> <span class="ui-button-icon-primary ui-icon ui-icon-trash"></span> <span class="ui-button-text"> </span> </button> '; $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TFile.js?date=' . date('dmy')); $this->jquery->addOnLoad('jQuery("#' . $id . '").TFile(' . $params . ');'); return $xhtml; }
/** * Cria o script JS para a execução dos tabs * * @return string */ public function createJS() { //$this->addHeadScriptFile('https://www.tanet.com.br/sistemas/printer/js/deployJava.js'); $this->addHeadScriptFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TPrinter.js?date=' . date('dmy')); $js = "jQuery('#" . $this->getId() . "').TPrinter({filter:'" . $this->_filter . "'});"; return $js; }
/** * Cria um campo texto para numeros, com incremento, verificação, valor maximo e outro (ler arquivo TNumeric.js) * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function numeric($id, $value = null, array $attribs = array()) { $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TNumeric.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/autoNumeric.js'); $params = ZendX_JQuery::encodeJson($attribs['jQueryParams']); unset($attribs['jQueryParams']); $this->jquery->addOnLoad('jQuery("#' . $id . '").TNumeric(' . $params . ');'); /*$styles = explode(';', $attribs['style']); if ($styles) { foreach ($styles as $style) { list($styleName,$styleValue) = explode(':',$style); if ($styleName == 'width'){ $old = $style; $width = (str_replace('px', '', trim($styleValue)) * 1); $styleValue = $width - 25; $new = 'width:'.$styleValue.'px'; } } $attribs['style'] = str_replace($old,$new,$attribs['style']); } if (!$width){ $width = 100; $attribs['style'].= 'width:75px;'; }*/ $attribs['class'] .= ' item ui-input-num icon'; $btns = ' <span class="item numeric"> ' . ' <div class="ui-button ui-state-default up" nofocus="1" parent="' . $id . '" onClick="if(!$(this).attr(\'disabled\')){jQuery(\'#\' + $(this).attr(\'parent\')).Tdata(\'TNumeric\').incNumber();}" type="button"> ' . ' <span class="ui-icon ui-icon-triangle-1-n"/> ' . ' </div> ' . ' <div class="ui-button ui-state-default down" nofocus="1" parent="' . $id . '" onClick="if(!$(this).attr(\'disabled\')){jQuery(\'#\' + $(this).attr(\'parent\')).Tdata(\'TNumeric\').decNumber();}" type="button"> ' . ' <span class="ui-icon ui-icon-spinner-down"/> ' . ' </div> ' . ' </span> '; $xhtml = '<div class="ui-form-group"> ' . ' ' . $this->view->formText($id, $value, $attribs) . $btns . '</div>'; return $xhtml; }
/** * Cria um campo de ComboCustom * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function color($id, $value = null, array $params = array(), array $attribs = array()) { $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/color/simple-color.js'); $js = "jQuery('#" . $id . "').simpleColor({\n boxWidth: '95px',\n cellMargin: 0,\n displayColorCode: true,\n livePreview: true,\n onSelect: function(hex, element) {\n jQuery('#" . $id . "').trigger('change');\n }\n });"; $this->jquery->addOnLoad($js); return $this->view->formText($id, $value, $params); }
/** * Cria um campo de ComboCustom * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function comboCustom($id, $value = null, array $params = array(), array $attribs = array()) { $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TComboCustom.js')->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TOpenDownBox.js'); $params = ZendX_JQuery::encodeJson($params); $js = sprintf('%s("#%s").TComboCustom(%s);', ZendX_JQuery_View_Helper_JQuery::getJQueryHandler(), $attribs['id'], $params); $this->jquery->addOnLoad($js); return $this->view->formText($id, $value, $attribs); }
/** * Cria um campo texto com validador de data e datepicker * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function dateMonthYear($id, $value = null, array $attribs = array()) { $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/jquery.maskedinput-1.4.1.min.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TDateMonthYear.js'); $params = ZendX_JQuery::encodeJson($attribs['jQueryParams']); unset($attribs['jQueryParams']); $this->jquery->addOnLoad('jQuery("#' . $id . '").TDateMonthYear(' . $params . ');'); return $this->view->formText($id, $value, $attribs); }
/** * Cria um campo texto para numeros, com incremento, verificação, valor maximo e outro (ler arquivo TNumericMulti.js) * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function numericMulti($id, $value = null, array $attribs = array()) { $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TNumericMulti.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/autoNumeric.js'); $params = ZendX_JQuery::encodeJson($attribs['jQueryParams']); unset($attribs['jQueryParams']); $this->jquery->addOnLoad('jQuery("#' . $id . '").TNumericMulti(' . $params . ');'); return $this->view->formText($id, $value, $attribs); }
/** * Cria um campo texto com validador de data e datepicker * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function dateMulti($id, $value = null, array $attribs = array()) { $data = date('dmy'); #$this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TCursor.js?'.$data); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TDateMulti.js?' . $data); $this->jquery->addOnLoad('jQuery("#' . $id . '").TDateMulti();'); #$button = new ZendT_View_Button('bt-calend-'.$id,''); #$button->setIcon('ui-icon-calculator'); $attribs['style'] .= ';float:left;'; $_toolbar = new ZendT_View_Toolbar('calend-toolbar-' . $id); $_toolbar->addStyle('width', '390px'); $_toolbar->addStyle('height', '34px'); $_toolbar->addStyle('display', 'none'); $_toolbar->setAttr('align', 'center'); $padrao = explode(' ', $value); $hoje = new ZendT_Type_Date('SYSDATE', 'Date'); $ultimoMes[0] = clone $hoje; $ultimoMes[0]->addMonth(-1)->firstDayMonth(); $ultimoMes[1] = clone $hoje; $ultimoMes[1]->addMonth(-1)->lastDayMonth(); $mesCorrente[0] = clone $hoje; $mesCorrente[0]->firstDayMonth(); $mesCorrente[1] = clone $hoje; $mesCorrente[1]->lastDayMonth(); $ultimaSemana[0] = clone $hoje; $ultimaSemana[0]->addWeek(-1)->firstDayWeek(); $ultimaSemana[1] = clone $hoje; $ultimaSemana[1]->addWeek(-1)->lastDayWeek(); $semanaCorrente[0] = clone $hoje; $semanaCorrente[0]->firstDayWeek(); $semanaCorrente[1] = clone $hoje; $semanaCorrente[1]->lastDayWeek(); $options = "var option = jQuery('#calend_select_" . $id . "').val();\n\n if(option != ''){\n var data1 = '', data2 = '';\n if(option == '0'){\n data1 = '" . $padrao[0] . "';\n data2 = '" . $padrao[1] . "';\n }\n else if(option == '1'){\n data1 = '" . $hoje . "';\n data2 = '" . $hoje . "';\n } else if(option == 2){\n data1 = '" . $ultimoMes[0] . "';\n data2 = '" . $ultimoMes[1] . "';\n } else if(option == 3){\n data1 = '" . $mesCorrente[0] . "';\n data2 = '" . $mesCorrente[1] . "';\n } else if(option == 4){\n data1 = '" . $ultimaSemana[0] . "';\n data2 = '" . $ultimaSemana[1] . "';\n } else if(option == 5){\n data1 = '" . $semanaCorrente[0] . "';\n data2 = '" . $semanaCorrente[1] . "';\n }\n jQuery('#calend-" . $id . "-1').datepicker('setDate', data1);\n jQuery('#calend-" . $id . "-2').datepicker('setDate', data2);\n\n jQuery('#" . $id . "').val(\n jQuery('#calend-" . $id . "-1').datepicker({ dateFormat: 'yy-mm-dd' }).val() + ' ' +\n jQuery('#calend-" . $id . "-2').datepicker({ dateFormat: 'yy-mm-dd' }).val()\n );\n }\n "; $close = " jQuery('#calend-" . $id . "-1').hide('fast');\n jQuery('#calend-" . $id . "-2').hide('fast');\n jQuery('#calend-toolbar-" . $id . "').hide('fast');"; $element = new ZendT_Form_Element_Select("calend_select_" . $id); #$element->setLabel('Seleção'); $element->addMultiOption('', ''); $element->addMultiOption('1', 'Hoje'); $element->addMultiOption('2', 'Último Mês'); $element->addMultiOption('3', 'Mês corrente'); $element->addMultiOption('4', 'Última Semana'); $element->addMultiOption('5', 'Semana corrente'); $element->addAttr('breakline', 'none'); $element->setAttrib('onClick', $options); $element->addStyle('float', 'left'); $element->addStyle('height', '25px'); $element->addStyle('margin', '3px'); $_toolbar->add($element); $_button = new ZendT_View_Button('bt_ok' . $id, 'OK', $close); $_button->setIcon('ui-icon-check'); $_button->addStyle('float', 'right'); $_button->addStyle('height', '25px'); $_button->addStyle('margin', '3px'); $_toolbar->addButton($_button); return $this->view->formText($id, $value, $attribs) . '<span id="bt-calend-' . $id . '" style="margem:0px; float:left; height: 18px; width: 20px;" class="ui-button ui-state-default ui-corner-right ui-button-icon-only"><span id="icon-bt-calend-' . $id . '" class="ui-button-icon-primary ui-icon ui-icon-calculator"></span></span>' . '<br style="clear:both;" /><table><tr><td><div id="calend-' . $id . '-1" style="display:none"></div></td><td><div id="calend-' . $id . '-2" style="display:none"></div></td></tr></table>' . $_toolbar->render() . '<label class="error" for="dt_emissao_ctrc" generated="true" style="display:none"></label>' . '<div id="hour-' . $id . '" style="display:none"></div>'; }
/** * Cria um campo texto com validador de data e datepicker * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function date($id, $value = null, array $attribs = array()) { $data = date('dmy'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/layout/jquery/widget/TDate.js?' . $data); $params = ZendX_JQuery::encodeJson($attribs['jQueryParams']); unset($attribs['jQueryParams']); $attribs['class'] .= ' ui-input-date'; $xhtml .= '<div class="ui-form-group">' . $this->view->formText($id, $value, $attribs) . '</div>'; $this->jquery->addOnLoad('jQuery("#' . $id . '").TDate(' . $params . ');'); return $xhtml; }
/** * Cria um campo texto com validador de data e datepicker * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function dateDynamic($id, $value = null, array $attribs = array()) { $params = $attribs['jQueryParams']; unset($attribs['jQueryParams']); $params['helper_script'] = 'TDateDynamic'; $data = date('dmy'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/layout/jquery/widget/TDateDynamic.js?' . $data); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/layout/jquery/widget/TButtonsDynamic.js?' . $data); $this->jquery->addOnLoad('jQuery("#' . $id . '").TButtonsDynamic(' . ZendT_JS_Json::encode($params) . ');'); $attribs['style'] .= 'float:left;'; $attribs['class'] .= ' ui-input-date item'; return '<div class="ui-form-group">' . $this->view->formText($id, $value, $attribs) . '</div>'; }
/** * Cria um campo texto com autocomplete customizado * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function autocomplete($id, $value = null, array $attribs = array()) { $params = $attribs['jQueryParams']; unset($attribs['jQueryParams']); if (!isset($params['source'])) { if (isset($params['url'])) { $params['source'] = $params['url']; unset($params['url']); } else { if (isset($params['data'])) { $params['source'] = $params['data']; unset($params['data']); } else { require_once "ZendX/JQuery/Exception.php"; throw new ZendX_JQuery_Exception("O parametro Source é obrigatório"); } } } if ($params['showButtonSearch']) { $xhtml = '<button id="search-' . $id . '" type="button" class="ui-button ui-state-default item" nofocus="true"><span class="ui-icon ui-icon-carat-1-s"></span></button>'; } else { $xhtml = ''; } $xscript = ''; if ($params['multiple']) { $onResult = 'function(event, row, formatted){ jQuery("#' . $id . '").Tdata("TAutocomplete").addElement("' . $id . '", row[0]); }'; $params['onResult'] = new ZendT_JS_Command($onResult); $xhtml .= '<div id="sel-elements-' . $id . '" class="" style="text-wrap: normal;"> <input id="' . $id . '-multiple" name="' . $id . '-multiple" type="hidden" value=""> </div>'; $xscript .= 'jQuery("#sel-elements-' . $id . '").width(jQuery("#' . $id . '").width());'; } $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/jquery.autocomplete.js'); $this->view->headLink()->appendStylesheet(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/jquery.autocomplete.css'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TAutocomplete.js'); $params = ZendT_JS_Json::encode($params); $params = str_replace('{id}', $id, $params); $this->jquery->addOnLoad('jQuery("#' . $id . '").TAutocomplete(' . $params . ');' . $xscript); $attribs['class'] .= ' item'; return '<div class="ui-form-group"> ' . $this->view->formText($id, $value, $attribs) . $xhtml . '</div>'; }
public function spreadSheet($id, $value = null, array $attribs = array()) { #var_dump($attribs);die; $params = $attribs['jQueryParams']; #var_dump($params);die; unset($attribs['jQueryParams']); $xhtml = "<div id='{$id}'"; if ($attribs['divParams']) { foreach ($attribs['divParams'] as $key => $val) { $xhtml .= " {$key}='{$val}'"; } } $xhtml .= "><input type=\"hidden\" TSpreadSheet=\"1\" id=\"{$id}_json\" name=\"{$id}\" /></div>"; $params['elements']['id'] = $id; $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/handsontable-master/dist/handsontable.full.js?'); $this->view->headLink()->appendStylesheet(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/handsontable-master/dist/handsontable.full.css'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . "/scripts/jquery/widget/TSpreadSheet.js?date=" . strtotime("now")); $this->jquery->addOnLoad('jQuery("#' . $id . '").TSpreadSheet(' . ZendT_JS_Json::encode($params) . ');'); return $xhtml; }
/** * Cria um campo texto * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function text($id, $value = null, array $attribs = array()) { unset($attribs['required']); $mask = $attribs['jQueryParams']['mask']; $charMask = $attribs['jQueryParams']['charMask']; unset($attribs['jQueryParams']); if ($mask) { if (!is_array($mask)) { $mask = array($mask); } $params = array('masks' => $mask, 'charMask' => $charMask); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TMask.js'); $this->jquery->addOnLoad('jQuery("#' . $id . '").TMask(' . json_encode($params) . ').val(\'' . $value . '\');'); } $xhtml = $this->view->formText($id, $value, $attribs); if (!isset($attribs['noLabelError'])) { $xhtml .= '<label class="error" for="' . $id . '" generated="true" style="display:none"></label>'; } return $xhtml; }
/** * Cria um campo texto para numeros, com incremento, verificação, valor maximo e outro (ler arquivo TDateTime.js) * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function dateTime($id, $value = null, array $attribs = array()) { $date = $attribs['propDate']; $time = $attribs['propTime']; $params = $attribs['jQueryParams']; unset($attribs['propDate']); unset($attribs['propTime']); unset($attribs['jQueryParams']); $data = date('dmy'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/jquery.autocomplete.js?' . $data); $this->view->headLink()->appendStylesheet(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/jquery.autocomplete.css?' . $data); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/layout/jquery/widget/TTime.js?' . $data); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/layout/jquery/widget/TDate.js?' . $data); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TDateTime.js?' . $data); $params = ZendX_JQuery::encodeJson($params); $this->jquery->addOnLoad('jQuery("#' . $id . '").TDateTime(' . $params . ');'); $xDate = '<div class="ui-form-group">' . $date->addClass('ui-input-date')->setAttrib('button', 'btn_' . $date->getId())->setAttrib('noLabelError', 1)->render() . '<label class="popover fade bottom in error" for="' . $date->getId() . '" generated="true" style="display:none"></label>' . '</div>'; $xTime = '<div class="ui-form-group">' . $time->addClass('ui-input-time')->setAttrib('button', 'btn_' . $time->getId())->setAttrib('noLabelError', 1)->render() . '<label class="popover fade bottom in error" for="' . $time->getId() . '" generated="true" style="display:none"></label>' . '</div>'; return $this->view->formHidden($id, $value, $attribs) . $xDate . $xTime; }
public function query($id, $value = null, array $attribs = array()) { $_mapperView = $attribs['mapperView']; if (!$_mapperView instanceof ZendT_Db_View) { $_mapperView = new $_mapperView(); } $columns = $_mapperView->getColumns()->toQuery(); $_parse = new ZendT_Db_Adapter_ParseSQL(); $command = $_parse->toArray($value); $param = array(); $param['jsonElement'] = $command; $param['columns'] = $columns; $param['mapper'] = get_class($_mapperView); $param['urlQuote'] = ZendT_Url::getUri(true) . '/quote'; $urlPublic = ZendT_Url::getBaseDiretoryPublic(); $this->view->headScript()->appendFile($urlPublic . '/scripts/jquery/widget/TQueryBuilder.js'); $this->view->headLink()->appendStylesheet($urlPublic . '/scripts/jquery/widget/TQueryBuilder/TQueryBuilder.css'); $js = "jQuery('#{$id}').TQueryBuilder(" . ZendT_JS_Json::encode($param) . ");"; $this->jquery->addOnLoad($js); return $this->view->formHidden($id, $value, $attribs); }
/** * Cria um campo horas, com validador de horarios e opção de selecionar uma hora via Autcomplete * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string * * @example $this->contextMenu('contentMenu','#columnSelected',array('delete'=>'Delete','add'=>'Add'),"function(action, el, pos){alert(action)}") */ public function contextMenu($id, $selector = null, array $itens = array(), $eventFunc = null) { $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/context-menu/jquery.contextMenu.js'); $this->view->headLink()->appendStylesheet(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/context-menu/jquery.contextMenu.css'); $handle = ZendX_JQuery_View_Helper_JQuery::getJQueryHandler(); if ($eventFunc == null) { $eventFunc = "\n function(action, el, pos){\n var cmd = action + '(el, pos);';\n eval(cmd);\n }\n "; } $js = " \n {$handle}('{$selector}').contextMenu(\n { menu: '{$id}' },\n {$eventFunc}\n );\n "; $this->jquery->addOnLoad($js); $xhtml = '<ul id="' . $id . '" class="contextMenu">' . "\n"; foreach ($itens as $key => $param) { if (is_array($param)) { $xhtml .= ' <li class="' . $param['class'] . '"><a href="#' . $param['value'] . '">' . $param['label'] . '</a></li>' . "\n"; } else { $xhtml .= ' <li class="separator"><a href="#' . $key . '">' . $param . '</a></li>' . "\n"; } } $xhtml .= '</ul>' . "\n"; return $xhtml; }
/** * Retorna a função javascript * * @return string */ public function createJS() { $onClick = $this->getOnClick(); $param = array(); if ($onClick instanceof ZendT_JS_Command) { $param['onClick'] = $onClick; } $js = " jQuery('#{$this->getId()}').TButton(" . ZendT_JS_Json::encode($param) . "); "; $this->addOnLoad($this->getId(), $js); $this->addHeadScriptFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TButton.js'); return $js; }
/** * Adiciona um arquivo de CSS * * @param string $filename * @return \ZendT_View */ public function appendStyleFile($filename, $putUrlPublic = false) { if ($putUrlPublic) { $filename = str_replace(ZendT_Url::getBaseDiretoryPublic(), '', $filename); $filename = ZendT_Url::getBaseDiretoryPublic() . $filename; } $this->_headerStyle .= '<link rel="stylesheet" href="' . $filename . '" type="text/css">' . "\n"; return $this; }
public function textarea($id, $value = null, array $attribs = array()) { $urlPublic = ZendT_Url::getBaseDiretoryPublic(); $editor = ''; if (isset($attribs['editor'])) { $editor = $attribs['editor']; unset($attribs['editor']); } if ($editor) { $this->view->headScript()->appendFile($urlPublic . '/scripts/tinymce/jscripts/tiny_mce/tiny_mce.js'); $listBox = $editor['listBox']; $buttonsInline = $editor['buttons']; $width = $editor['width']; $height = $editor['height']; if (!$width) { $width = 730; } if (!$height) { $height = 268; } $instanceButtons = ''; $htmlListOptions = ''; if (count($listBox) > 0) { foreach ($listBox as $name => $itens) { $cmdItens = ''; foreach ($itens as $item) { $cmdItens .= 'mlb.add("' . $item . '", "' . $item . '");'; } $instanceButtons .= ',' . $name; $htmlListOptions .= ' case "' . $name . '": var mlb = cm.createListBox("' . $name . '", { title : "' . $name . '", onselect : function(v) { cm.editor.execCommand("mceInsertContent", false, v); } }); ' . $cmdItens . ' return mlb;'; } } $htmlButtonsInline = ''; if (count($buttonsInline) > 0) { foreach ($buttonsInline as $name => $button) { $instanceButtons .= ',' . $name; $htmlButtonsInline .= ' editor.addButton("' . $name . '", { title : "' . $button['label'] . '", image : "' . $urlPublic . '/scripts/extends/tinymce/img/' . $button['icon'] . '", onclick : function() { ' . $button['command'] . ' } });'; } } $htmlButtonsInline .= ' editor.addButton(\'uiImage\', { title : \'Imagem\', image : "' . $urlPublic . '/scripts/extends/tinymce/img/image.gif", onclick : function() { mceUploadImage(editor); } });'; $buttons = 'theme_advanced_buttons1: "forecolor,backcolor,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,uiImage", theme_advanced_buttons2: "bullist,numlist,|,outdent,indent,blockquote,sub,sup,|,formatselect,fontselect,fontsizeselect,fontSize|", theme_advanced_buttons3: "undo,redo,|,cut,copy,paste,pastetext,pasteword,cleanup,|,search,replace,|,link,unlink,|,tablecontrols,newdocument,preview,code,fullscreen",'; if ($attribs['editor-html'] == 'basic') { $buttons = 'theme_advanced_buttons1: "forecolor,backcolor,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull",'; $height = 50; } if ($attribs['editor-html'] == 'comment') { $buttons = 'theme_advanced_buttons1: "emotions,|,bold,italic,underline,strikethrough",'; $height = 50; } $js = ' tinymce.create("tinymce.plugins.' . $id . 'ListBoxPlugin", { createControl: function(n, cm) { switch (n) { ' . $htmlListOptions . ' } return null; } }); tinymce.create("tinymce.plugins.uiImage", { createControl: function(n, cm) { return null; } }); tinymce.PluginManager.add("' . $id . 'ListBoxPlugin", tinymce.plugins.' . $id . 'ListBoxPlugin); tinymce.PluginManager.add("uiImage", tinymce.plugins.uiImage); tinyMCE.init ({ selector: "#' . $id . '", theme: "advanced", plugins: "' . $id . 'ListBoxPlugin,autolink,lists,pagebreak,style,layer,table,save,advhr,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups,autoresize", language: "pt", ' . $buttons . ' theme_advanced_buttons4: "' . substr($instanceButtons, 1) . '", theme_advanced_toolbar_location: "top", theme_advanced_toolbar_align: "left", theme_advanced_statusbar_location: "bottom", theme_advanced_resizing: true, content_css : "' . $urlPublic . '/layout/editor.css", paste_text_sticky: true, width : "100%", height : "' . $height . '", autoresize_min_height: "' . $height . '", autoresize_max_height: "' . ($height + 100) . '", setup : function(editor) { ' . $htmlButtonsInline . ' } });'; $this->jquery->addOnLoad($js); } $labelCount = ''; if (isset($attribs['maxlength'])) { $this->view->headScript()->appendFile($urlPublic . '/scripts/jquery/widget/TTextarea.js'); $js = "jQuery('#{$id}').TTextarea({maxLength:" . $attribs['maxlength'] . "});"; $labelCount = '<br /><label id="count_' . $id . '"/>'; $this->jquery->addOnLoad($js); } return $this->view->formTextarea($id, $value, $attribs) . $labelCount; }
/** * Pega o objeto grid pré-configurado para * manipulação. * * @return ZendT_Grid */ public function configGrid() { $module = $this->getRequest()->getModuleName(); $controller = $this->getRequest()->getControllerName(); $params = $this->getRequest()->getParams(); $profileKey = ''; if (isset($params['profile_key'])) { $profileKey = $params['profile_key']; } $urlFilter = '?q=1'; if (isset($params['filter_json'])) { $urlFilter .= '&filter_json=' . $params['filter_json']; } if (isset($params['mapper_view'])) { $urlFilter .= '&mapper_view=' . $params['mapper_view']; } if ($this->_mapper instanceof ZendT_Db_View) { $where = $this->getMapper()->getColumns()->getWhere($params); if ($where) { $params['postData'] = $where->toJsonPostData($params['postData']); } } if ($params['postData'] != '') { $autoFilter = true; } else { $autoFilter = false; } $type = 'G'; #Grid $mapperName = get_class($this->_mapper); $profile = ZendT_Profile::get($mapperName, $type); $profileId = ''; if (isset($profile['id'])) { $profileId = $profile['id']; } $profiles = ZendT_Profile::listProfile($mapperName, $type); $this->getGrid()->setUrl(ZendT_Url::getBaseUrl() . '/' . $module . '/' . $controller . '/grid-data/profile/' . $profileId . $urlFilter)->setDataType('json')->setMType('POST')->setRowNum(30)->setRowList(array(30, 60, 90))->setPager("#pager-" . $this->getGrid()->getID())->setViewRecords('true')->setToolbar(array('true', 'top'))->setMType('POST')->setWidth(960)->setAutoFilter($autoFilter)->setShrinkToFit(false)->setPostData(urldecode($params['postData']))->setBeforeRequest("function(){ gridResize('" . $this->getGrid()->getID() . "'); }")->setGridComplete(" function(){ jQuery.gridAtivaNavKey({ idGrid:'" . $this->getGrid()->getID() . "' }); }"); /** * Analisa Parâmetros */ $newPostData = array(); foreach ($params as $name => $value) { $param = $this->getMapper()->paramName($name); if ($param) { $newPostData[$param] = $value; } } if (count($newPostData) > 0) { $this->getGrid()->setPostData($newPostData); } if ($this->getRequest()->getParam('seekerAjax')) { $objectRetrieve = 'TSeeker'; if ($this->getRequest()->getParam('objectRetrive')) { $objectRetrieve = $this->getRequest()->getParam('objectRetrive'); } $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/' . $objectRetrieve . '.js'); $seekerName = $this->getRequest()->getParam('seekerName'); $seekerAccess = 'window.opener.jQuery'; $seekerClose = 'window.close();'; if ($params['typeModal'] == 'AJAX') { $seekerAccess = 'jQuery'; $seekerClose = 'seeker.TSeeker(\'divClose\');'; $functionResize = "function(){\n var grid = jQuery('#" . $this->getGrid()->getID() . "');\n var seeker = " . $seekerAccess . "('#" . $seekerName . "');\n var div = seeker.TSeeker('option','elements').div;\n grid.setGridHeight(250);\n grid.setGridWidth(700);\n }"; } else { $functionResize = "function(){\n \$.gridResize({\n idGrid: '" . $this->getGrid()->getID() . "'\n });\n \$(window).resize(function(){\n \$.gridResize({\n idGrid: '" . $this->getGrid()->getID() . "'\n });\n });\n }"; } $functionRetorno = "function(){\n var grid = jQuery('#" . $this->getGrid()->getID() . "');\n if( grid.jqGrid('getGridParam','multiselect') ){\n var id = grid.jqGrid('getGridParam','selarrrow');\n }else{\n var id = grid.jqGrid('getGridParam','selrow');\n }\n var seeker = " . $seekerAccess . "('#" . $seekerName . "');\n try{\n seeker.{$objectRetrieve}('retrieve',{value: id});\n {$seekerClose}\n }catch(err){\n {$seekerClose}\n }\n }"; $this->getGrid()->setOndblClickRow($functionRetorno)->setBeforeRequest($functionResize)->setGridComplete("function(){\n \$.gridAtivaNavKey({\n idGrid: '" . $this->getGrid()->getID() . "',\n functionEnter: " . $functionRetorno . "\n });\n }"); } if ($params['callback']) { $functionCallback = base64_decode($params['callback']); $this->getGrid()->setOndblClickRow($functionCallback)->setGridComplete("function(){\n \$.gridAtivaNavKey({\n idGrid: '" . $this->getGrid()->getID() . "',\n functionEnter: " . $functionCallback . "\n });\n }"); } if ($params['multiple']) { $this->getGrid()->setMultiSelect(true); $idbt = 'selectGrid' . $this->getGrid()->getID(); $multiSelect = new ZendT_Grid_Button($idbt); $multiSelect->setIdGrid($this->getGrid()->getID())->setButtonIcon("ui-icon-check")->setTitle("Selecionar")->setCaption("Selecionar")->setOnClick($functionRetorno); $this->view->hotkeys()->add('btMultiSelect', 'ctrl+s', '$("#' . $idbt . '").click();'); $this->getGrid()->addToolbarButton("multiSel", $multiSelect); } $idbt = 'refreshGrid' . $this->getGrid()->getID(); $refresh = new ZendT_Grid_Button_Refresh($idbt); $refresh->setIdGrid($this->getGrid()->getID())->setButtonIcon("ui-icon-refresh")->setTitle("Atualizar"); $this->view->hotkeys()->add('btRefresh', 'ctrl+r', '$("#' . $idbt . '").click();'); $this->getGrid()->addToolbarButton("refresh", $refresh, 'grid'); /* $clearFiltro = new ZendT_Grid_Button(); $clearFiltro->setIdGrid($this->getGrid()->getID()) ->setButtonIcon('ui-icon ui-icon-arrowreturnthick-1-s') ->setOnClick('function(){$(\'#' . $this->getGrid()->getID() . '\')[0].clearToolbar();}') ->setTitle('Limpar Filtro'); $this->getGrid()->addToolbarButton('clearFilter', $clearFiltro, 'grid'); */ $autoFiltro = new ZendT_Grid_Button(); $autoFiltro->setIdGrid($this->getGrid()->getID())->setButtonIcon('ui-icon ui-icon-pin-s')->setOnClick('function(){$(\'#' . $this->getGrid()->getID() . '\')[0].toggleToolbar();}')->setTitle('Filtro'); $this->getGrid()->addToolbarButton('autofiltro', $autoFiltro, 'grid'); $_profile = new ZendT_View_Profile('selProfile', $profile['id'], $profiles, $type, $mapperName); $screenName = $this->view->screenName; $this->view->profileMenu = $_profile->render($screenName); $this->view->screenName = $screenName; $this->view->placeholder('title')->set($screenName); $navigator = ''; if ($navigator) { $this->getGrid()->getNavigator()->addCommand('navigatorGrid', $navigator); } /** * Botão de adição de registro e * suas configurações vitais */ if ($this instanceof ZendT_Controller_ActionCrud && ZendT_Acl::getInstance()->isAllowed('insert', $this->_resourceBase)) { $filterJson = $this->getRequest()->getParam('filter_json'); $idbt = 'addGrid' . $this->getGrid()->getID(); $add = new ZendT_Grid_Button_Add($idbt); $add->setIdGrid($this->getGrid()->getID())->setButtonIcon('ui-icon-plus')->setUrl(ZendT_Url::getBaseUrl() . '/' . $module . '/' . $controller . '/form?filter_json=' . $filterJson . '&profile_key=' . $profileKey)->setWindowWidth(860)->setWindowHeight(520)->setTitle('Adicionar'); $this->view->hotkeys()->add('btInsert', 'ctrl+a', '$("#' . $idbt . '").click();'); $this->getGrid()->addToolbarButton('add', $add, 'edit'); } /** * Botão de edição de linha e * suas configurações vitais */ if ($this instanceof ZendT_Controller_ActionCrud && ZendT_Acl::getInstance()->isAllowed('update', $this->_resourceBase)) { $idbt = 'editGrid' . $this->getGrid()->getID(); $edit = new ZendT_Grid_Button_Edit($idbt); $edit->setIdGrid($this->getGrid()->getID())->setButtonIcon('ui-icon-pencil')->setUrl(ZendT_Url::getBaseUrl() . '/' . $module . '/' . $controller . '/form' . '?profile_key=' . $profileKey)->setUrlRetrieve(ZendT_Url::getBaseUrl() . '/' . $module . '/' . $controller . '/retrive')->setWindowWidth(860)->setWindowHeight(520)->setTitle('Editar'); $this->view->hotkeys()->add('btEdit', 'ctrl+e', '$("#' . $idbt . '").click();'); $this->getGrid()->addToolbarButton('edit', $edit, 'edit'); if (!$this->getRequest()->getParam('seekerAjax')) { $this->getGrid()->setOndblClickRow("function(){jQuery('#" . $idbt . "').click();}"); } } #Button - Delete if ($this instanceof ZendT_Controller_ActionCrud && ZendT_Acl::getInstance()->isAllowed('delete', $this->_resourceBase)) { $idbt = 'delGrid' . $this->getGrid()->getID(); $del = new ZendT_Grid_Button_Delete($idbt); $del->setIdGrid($this->getGrid()->getID())->setButtonIcon('ui-icon-trash')->setUrl(ZendT_Url::getBaseUrl() . '/' . $module . '/' . $controller . '/delete')->setWindowWidth(800)->setWindowHeight(520)->setTitle('Excluir'); $this->view->hotkeys()->add('btDelete', 'ctrl+d', '$("#' . $idbt . '").click();'); $this->getGrid()->addToolbarButton('del', $del, 'edit'); } if ($this instanceof ZendT_Controller_ActionCrud && ZendT_Acl::getInstance()->isAllowed('log', $this->_resourceBase) && method_exists($this->_mapper, 'isLogger') && $this->_mapper->isLogger()) { $log = new ZendT_Grid_Button_Window(); $log->setIdGrid($this->getGrid()->getID())->setButtonIcon('ui-icon-info')->setUrl(ZendT_Url::getBaseUrl() . '/' . $module . '/' . $controller . '/log')->setWindowWidth(650)->setWindowHeight(450)->setTitle('Log'); $this->getGrid()->addToolbarButton('Log', $log, 'edit'); } $this->view->typeModal = $params['typeModal']; if ($params['typeModal'] == 'AJAX') { Zend_Layout::getMvcInstance()->setLayout('ajax'); } else { if ($params['typeModal'] == 'WINDOW') { $this->view->onLoad = stripslashes(urldecode($params['afterLoad'])); $this->view->onClose = stripslashes(urldecode($params['onClose'])); Zend_Layout::getMvcInstance()->setLayout('window'); } } }
/** * Cria o comando JavaScript * @return method */ public function createJS() { $this->addHeadScriptFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/plugin/ButtonAjaxT.js'); $clickFunction = parent::createJS() . ' function ' . $this->_getFunctionName() . '(){ jQuery.ButtonAjaxT({ url: "' . $this->getUrl() . '", method: "' . $this->getMethod() . '", param: "' . $this->getParam() . '", onConfirm: ' . $this->getOnConfirm() . ', onAfterLoad: ' . $this->getOnAfterLoad() . ' }); } '; $this->addHeadScript($this->getId(), $clickFunction); return $clickFunction; }
/** * Cria o comando JavaScript * @return method */ public function createJS() { $this->addHeadScriptFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/plugin/ButtonWindowT.js'); $clickFunction = parent::createJS() . ' function ' . $this->_getFunctionName() . '(){ if($(\'iframe[name="downloadFile"]\').attr(\'name\') == undefined){ $(\'html\').append(\'<iframe name="downloadFile"></iframe>\'); } $(\'iframe[name="downloadFile"]\') .attr(\'src\',\'' . $this->getUrl() . '?' . $this->getParam() . '\'); } '; $this->addHeadScript($this->getId(), $clickFunction); return $clickFunction; }
/** * * @param ZendT_Grid $grid * @return string */ public function gridTree(ZendT_Grid $grid) { $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TGridTree.js?date=180113'); $firstColumn = ''; /** * Linha de Título */ $rowTitle = '<tr>'; $numCols = 0; foreach ($grid->getColModel()->getColumns() as $column) { $style = ''; if ($column->getHidden()) { $style = 'display:none;'; } elseif ($firstColumn == '') { $firstColumn = $column->getName(); $numCols++; } else { $numCols++; } $style .= 'text-align:' . $column->getAlign() . ';'; $class = 't-ui-border-trb'; if ($firstColumn == $column->getName()) { $class = 't-ui-border-trbl'; } $rowTitle .= '<th class="ui-state-default ' . $class . '" style="' . $style . '">'; $rowTitle .= $column->getHeaderTitle(); $rowTitle .= '</th>'; } $rowTitle .= '</tr>'; /** * Linhas do Detalhe */ $rows = ''; $stylesRow = $grid->getStyles(); foreach ($grid->getRows() as $index => $row) { $class = ''; $style = ''; if ($grid->getTreeGrid() == 'true') { if (trim($row['tree_parent']) != '') { $class .= 'parent-' . $this->_normalizeId($row['tree_parent']); $style .= 'display:none'; } } $rowId = $this->_normalizeId($row['id']); $rows .= '<tr id="' . $rowId . '" class="' . $class . '" style="' . $style . '">'; foreach ($grid->getColModel()->getColumns() as $column) { $options = $column->getOptions(); $key = $column->getName(); if (in_array($key, array('tree_child', 'tree_level'))) { continue; } $style = ''; $attr = ''; if ($key == $firstColumn) { $attr = 'level="' . $row['tree_level'] . '" child="' . $row['tree_child'] . '" '; } if ($column->getHidden()) { $style = 'display:none;'; } $style .= 'text-align:' . $column->getAlign() . ';'; $style .= 'min-width:' . $column->getWidth() . 'px;'; if (isset($stylesRow[$index][$key])) { foreach ($stylesRow[$index][$key] as $styleName => $styleValue) { $style .= $styleName . ':' . $styleValue . ';'; } } $class = 't-ui-border-rb'; if ($firstColumn == $column->getName()) { $class = 't-ui-border-rbl'; } $rows .= '<td ' . $attr . 'class="ui-widget-content ' . $key . ' ' . $class . '" style="' . $style . '">'; $rows .= $row[$key]; $rows .= '</td>'; } $rows .= '</tr>'; } /** * Botões de Navegação */ $buttonsToolbar = $grid->getObjToolbar()->getButtons(); if ($buttonsToolbar) { $toolbar = ''; foreach ($buttonsToolbar as $button) { if ($button) { foreach ($button as $oneButton) { $toolbar .= $oneButton->renderHtml(); } } } $toolbar = '<tr> <th colspan="' . $numCols . '" class="ui-state-default" style="border-bottom:0px;text-align:left;"> ' . $toolbar . ' </th> </tr>'; } /** * Parâmetros do jQuery para criar a árvore */ $params = array('columns' => array('group' => $firstColumn, 'parent' => 'tree_parent', 'level' => 'tree_level')); $params = ZendT_JS_Json::encode($params); $this->jquery->addOnLoad('jQuery("#' . $grid->getID() . '").TGridTree(' . $params . ');'); return '<table width="100%" class="ui-jqgrid-htable" cellspacing="0" cellpadding="3" border="0" id="' . $grid->getID() . '"> ' . $toolbar . ' ' . $rowTitle . ' ' . $rows . ' </table>'; }
/** * * @param string $content * @return string */ public function seeker($id, $value = null, array $attribs = array()) { if ($value == '!') { $value = ''; } if ($value && (is_numeric($value) || $value instanceof ZendT_Type) && isset($attribs['mapperView']) && !$value instanceof ZendT_Db_Recordset) { $mapper = new $attribs['mapperView'](); $value = $mapper->setId($value)->retrieveRow(); } if ($value instanceof ZendT_Db_Recordset) { $data = array(); while ($row = $value->getRow()) { $item = array(); foreach ($row as $itemKey => $itemValue) { $item[$itemKey] = $itemValue->get(); } $data[] = $item; } $value = $data; if (!$attribs['multiple']) { $value = $value[0]; } } /* $post = Zend_Controller_Front::getInstance()->getRequest()->getParams(); var_dump($post); var_dump($value); */ $params = array(); $params['elements'] = array(); /** * @todo implementar o value */ $search = $attribs['propSearch']; $suffix = $attribs['suffix']; $prefix = $attribs['prefix']; $this->_arrayName = $attribs['arrayName']; if (!$suffix && !$prefix) { $suffix = $id; } if ($attribs['required']) { $search->setRequired(); } $xhtmlElements = ''; $labels = array(); /** * Cria o elemento de Search */ $field = $attribs['propSearch']->getAttrib('field'); $attribs['propSearch']->setAttrib('noLabelError', true); $params['fields'][] = $field; if (isset($attribs['belongsTo'])) { $attribs['propSearch']->setBelongsTo($attribs['belongsTo']); } if (isset($attribs['style'])) { $attribs['propSearch']->setAttrib('style', $attribs['style']); } if (isset($attribs['readonly'])) { $attribs['propSearch']->setAttrib('readonly', $attribs['readonly']); } $xhtmlElements .= $this->_renderElement($attribs['propSearch'], $value, $suffix, $prefix); unset($attribs['fields'][$field]); $searchId = $attribs['propSearch']->getId(); $labels[] = $attribs['propSearch']->getAttrib('label'); if (isset($attribs['propDisplay'])) { $labels[] = $attribs['propDisplay']->getAttrib('label'); } /** * */ $renderKeys = array('propId', 'propDisplay'); foreach ($renderKeys as $key) { if (isset($attribs[$key])) { $field = $attribs[$key]->getAttrib('field'); $params['fields'][] = $field; if (isset($attribs['belongsTo'])) { $attribs[$key]->setBelongsTo($attribs['belongsTo']); } $xhtmlElements .= $this->_renderElement($attribs[$key], $value, $suffix, $prefix, $searchId); if ($key == 'propId') { $nameId = $attribs['propId']->getId(); } unset($attribs['fields'][$field]); } } $params['elements']['others'] = array(); foreach ($attribs['fields'] as $field) { $key = 'prop' . ucfirst($field); $labels[] = $attribs[$key]->getAttrib('label'); if (isset($attribs['belongsTo'])) { $attribs[$key]->setBelongsTo($attribs['belongsTo']); } $xhtmlElements .= $this->_renderElement($attribs[$key], $value, $suffix, $prefix, $searchId); $params['fields'][] = $field; $params['elements']['others'][] = $attribs[$key]->getId(); unset($attribs[$key]); } if (isset($attribs['btn_add'])) { $attribs['btn_add']->addClass('ui-button item ui-state-default'); if ($suffix) { $nameButton = $attribs['btn_add']->getName(); $nameButton .= '_' . $suffix; $attribs['btn_add']->setName($nameButton); } if ($prefix) { $nameButton = $prefix . '_' . $attribs['btn_add']->getName(); $attribs['btn_add']->setName($nameButton); } $attribs['btn_add']->setAttrib('searchId', $searchId); $xhtmlElements .= $attribs['btn_add']->render(); $params['elements']['btn_add'] = $attribs['btn_add']->getId(); } if (isset($attribs['btn_edit'])) { $attribs['btn_edit']->addClass('ui-button item ui-state-default'); if ($suffix) { $nameButton = $attribs['btn_edit']->getName(); $nameButton .= '_' . $suffix; $attribs['btn_edit']->setName($nameButton); } if ($prefix) { $nameButton = $prefix . '_' . $attribs['btn_edit']->getName(); $attribs['btn_edit']->setName($nameButton); } $attribs['btn_edit']->setAttrib('searchId', $searchId); $xhtmlElements .= $attribs['btn_edit']->render(); $params['elements']['btn_edit'] = $attribs['btn_edit']->getId(); } $attribs['button']->addClass('ui-button item ui-state-default last'); if ($suffix) { $nameButton = $attribs['button']->getName(); $nameButton .= '_' . $suffix; $attribs['button']->setName($nameButton); } if ($prefix) { $nameButton = $prefix . '_' . $attribs['button']->getName(); $attribs['button']->setName($nameButton); } $attribs['button']->setAttrib('searchId', $searchId); $xhtmlElements .= $attribs['button']->render(); $params['elements']['div'] = str_replace('btSearch_', 'div_grid_', $nameButton); $xhtmlElements .= '<div id="' . $params['elements']['div'] . '" style="display:none" class="div-grid-seeker" searchId="' . $searchId . '"></div>'; $xhtmlElements .= '<label class="error" for="' . $searchId . '" generated="true" style="display:none"></label>'; if ($attribs['multiple']) { $xhtmlElements .= '<input type="hidden" name="' . $nameId . '-multiple" id="' . $nameId . '-multiple" />'; $tableTitles = '<tr id="table-title-' . $attribs['id'] . '-multiple" class="ui-corner-all ui-state-default" style="display:none;">'; foreach ($labels as $label) { $tableTitles .= '<th>'; $tableTitles .= $label; $tableTitles .= '</th>'; } $tableTitles .= '</tr>'; $xhtmlElements .= '<div id="div-' . $attribs['id'] . '-multiple" style="float:left;clear:both;"> <table id="table-' . $attribs['id'] . '-multiple" boder="0" cellspacing="0" cellpadding="2"> ' . $tableTitles . ' </table> </div>'; } /** * Inicio da montagem de parâmetros do TSeeker */ $params['name'] = $searchId; if (isset($attribs['onFilter'])) { //$attribs['onFilter'] = str_replace("'", "\'", $attribs['onFilter']); $params['onFilter'] = new ZendT_JS_Command($attribs['onFilter']); } if (isset($attribs['onSearchValid'])) { $params['onSearchValid'] = new ZendT_JS_Command($attribs['onSearchValid']); } if (isset($attribs['onChange'])) { $params['onChange'] = new ZendT_JS_Command($attribs['onChange']); } if (isset($attribs['autoComplete']['onResult'])) { $params['autoComplete']['onResult'] = new ZendT_JS_Command($attribs['autoComplete']['onResult']); } if (isset($attribs['autoComplete']['onFormat'])) { $params['autoComplete']['onFormat'] = new ZendT_JS_Command($attribs['autoComplete']['onFormat']); } if (isset($attribs['autoComplete']['extraParams'])) { $params['autoComplete']['extraParams'] = $attribs['autoComplete']['extraParams']; } if (isset($attribs['onNotFound'])) { $params['onNotFound'] = new ZendT_JS_Command($attribs['onNotFound']); } if (isset($attribs['multiple'])) { $params['multiple'] = $attribs['multiple']; } if (isset($attribs['filterRefer'])) { $params['filterRefer'] = $attribs['filterRefer']; } $params['elements']['id'] = $attribs['propId']->getId(); $params['elements']['search'] = $searchId; $params['elements']['button'] = $attribs['button']->getId(); if (isset($attribs['propDisplay'])) { $params['elements']['display'] = $attribs['propDisplay']->getId(); } else { $params['elements']['display'] = ''; } $params['modal'] = $attribs['jQueryParams']['modal']; $params['modal']['type'] = strtoupper($params['modal']['type']); if (!in_array($params['modal']['type'], array('DIV', 'WINDOW'))) { $params['modal']['type'] = 'WINDOW'; } $params['url'] = $attribs['jQueryParams']['url']; if ($attribs['multiple']) { $params['data'] = $value; } /** * Cria os parâmetros para renderizar o seeker no jQuery */ $this->view->headLink()->appendStylesheet(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/jquery.autocomplete.css'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/extra/jquery.autocomplete.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TAutocomplete.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TSeeker.js'); $params = ZendT_JS_Json::encode($params); $params = str_replace('{id}', $searchId, $params); $js = 'jQuery("#' . $searchId . '").TSeeker(' . $params . ');'; $this->jquery->addOnLoad($js); /** * Limpa a memória */ unset($attribs['button']); unset($attribs['propId']); unset($attribs['propSearch']); unset($attribs['propDisplay']); unset($attribs['onFilter']); unset($attribs['onChange']); unset($attribs['onNotFound']); unset($attribs['onResult']); unset($attribs['onSearchValid']); unset($attribs['filterRefer']); unset($attribs['where']); return '<div class="ui-form-group">' . $xhtmlElements . '</div>'; }
/** * Cria o comando JavaScript * @return method */ public function createJS() { $this->addHeadScriptFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/plugin/ButtonWindowT.js'); $clickFunction = parent::createJS() . ' function ' . $this->_getFunctionName() . '(){ jQuery.ButtonWindowT({ url: "' . $this->getUrl() . '", method: "' . $this->getMethod() . '", param: "' . $this->getParam() . '", windowHeight: ' . $this->getWindowHeight() . ', windowWidth: ' . $this->getWindowWidth() . ', type: "' . $this->getType() . '", fullscreen: "' . $this->getFullScreen() . '" }); } '; $this->addHeadScript($this->getId(), $clickFunction); return $clickFunction; }
/** * Cria cria um campo hidden, um campo para id, um para descrição e um botão para a busca no seeker. * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function fileUpload($id, $value = null, array $attribs = array()) { /* echo '<pre>'; print_r($attribs); echo '</pre>'; exit; */ if ($value instanceof ZendT_Type_FileSystem) { $_file = $value->getFile(); if ($_file) { $attribs['jQueryParams']['data']['name'] = $_file->getName(); $attribs['jQueryParams']['data']['type'] = $_file->getType(); $attribs['jQueryParams']['data']['id'] = $_file->getId(); $attribs['jQueryParams']['data']['filename'] = $_file->toFilenameCrypt(); $value = $_file->getName(); } else { $value = ""; } } $params = $attribs['jQueryParams']; unset($attribs['jQueryParams']); if (!isset($attribs['name'])) { $attribs['name'] = $attribs['id']; } $params['url']['base'] = ZendT_Url::getBaseUrl(); $params['url']['public'] = ZendT_Url::getBaseDiretoryPublic(); $id = $this->view->escape($id); $name = $this->view->escape($attribs['name']); $list = '<ul id="' . $id . '_menu" class="dropdown-menu position" role="' . $id . '" style="width: 270px;">'; $list .= ' <li class="ui-no-hover dropdown-menu-group footer">'; $list .= ' <ul class="facescroll" style="width: 260px; height: 130px;" id="files-selected-' . $id . '">'; $list .= ' </ul>'; $list .= ' <button type="button" id="clear-files-' . $id . '" class="ui-button ok ui-state-default">'; $list .= ' <span class="ui-icon ui-icon-close"></span>'; $list .= ' <span class="ui-text">Limpar</span>'; $list .= ' </button>'; $list .= ' '; $list .= ' </li>'; $list .= '</ul>'; $inputAuto = "ui-input-auto"; $xhtml = '<input style="width: 270px;" type="text" id="' . $id . '" name="' . $name . '_display" class="item ' . $inputAuto . '" placeholder="' . $value . '" />'; if ($params['load_id']) { $xhtml .= '<input type="hidden" name="' . $name . '[id]" id="' . $id . '_id" /> <input type="hidden" name="' . $name . '[file]" id="' . $id . '_file" /> <input type="hidden" name="' . $name . '[type]" id="' . $id . '_type" /> <input type="hidden" name="' . $name . '[name]" id="' . $id . '_name" />'; } else { $nameType = $this->_prepareName($name, 'type'); $nameName = $this->_prepareName($name, 'name'); $nameId = $this->_prepareName($name, 'id'); $xhtml .= '<input type="hidden" name="' . $name . '" id="' . $id . '_file" /> <input type="hidden" name="' . $nameType . '" id="' . $id . '_type" /> <input type="hidden" name="' . $nameName . '" id="' . $id . '_name" /> <input type="hidden" name="' . $nameId . '" id="' . $id . '_id" />'; } /* if ($params['multiple']) { $xhtml.= $list; $xhtml.= '<button type="button" id="dropdown-files-' . $id . '" class="ui-button item ui-state-default"><span class="ui-icon ui-icon ui-icon-triangle-1-s"></button>'; } else { $xhtml.= '<button type="button" id="download-files-' . $id . '" class="ui-button item ui-state-default"><span class="ui-icon ui-icon-arrowthickstop-1-s"></button>'; $xhtml.= '<button type="button" id="clear-files-' . $id . '" class="ui-button item ui-state-default"><span class="ui-icon ui-icon-close"></button>'; } */ $xhtml .= $list; //$xhtml.= '<button type="button" id="dropdown-files-' . $id . '" class="ui-button item ui-state-default"><span class="ui-icon ui-icon ui-icon-triangle-1-s"></button>'; $xhtml .= '<button type="button" id="select-files-' . $id . '" class="ui-button item ui-state-default"><span class="ui-icon ui-icon-folder-open"></button>'; $xhtml .= '<div style="clear:both">'; $xhtml .= ' <label class="error" id="error-' . $id . '"></label>'; $xhtml .= '</div>'; $params['elements']['container'] = 'group-' . $id; $params['elements']['files-selected'] = 'files-selected-' . $id; $params['elements']['selectFiles'] = 'select-files-' . $id; $params['elements']['clearFiles'] = 'clear-files-' . $id; $params['elements']['startUpload'] = 'start-upload-' . $id; $params['elements']['id'] = $id; $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/plupload/plupload.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/plupload/plupload.gears.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/plupload/plupload.silverlight.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/plupload/plupload.flash.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/plupload/plupload.html4.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/plupload/plupload.html5.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/layout/jquery/widget/TJQuery.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/layout/jquery/widget/TFileUpload.js'); $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/layout/jquery/widget/TDropdown.js'); $this->jquery->addOnLoad('jQuery("#' . $id . '").TFileUpload(' . ZendT_JS_Json::encode($params) . ');'); //if ($params['multiple']) { $this->jquery->addOnLoad('jQuery("#' . $id . '_menu").TDropdown({configsHideShow:{events:[\'focus\']}});'); //} return '<div class="ui-form-group">' . $xhtml . '</div>'; }
/** * Cria um campo texto com autocomplete customizado * * @param string $id * @param string $value * @param array $params jQuery Widget Parameters * @param array $attribs HTML Element Attributes * @return string */ public function autoselect($id, $value = null, array $attribs = array()) { $params = $attribs['jQueryParams']; $attribs['class'] .= ' ui-input-auto'; unset($attribs['jQueryParams']); unset($attribs['autocomplete']); unset($attribs['options']); unset($attribs['button']); //unset($attribs['fields']); unset($attribs['propId']); unset($attribs['propSearch']); unset($attribs['autoComplete']); unset($attribs['belongsTo']); /*echo '<pre>'; print_r($attribs); echo '</pre>';*/ $this->view->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/layout/jquery/widget/TAutoSelect.js'); $params = array(); $fields = array(); foreach ($attribs['fields'] as $field) { array_push($fields, $field); } if ($attribs['mapperView']) { $_mapper = new $attribs['mapperView'](); $_where = new ZendT_Db_Where(); if ($attribs['where']) { if (substr($attribs['where'], 0, 11) == 'expression:') { $_where->addFilter(' ', substr($attribs['where'], 11), 'EXPRESSION'); } else { $_where->addFilter('id', $attribs['where']); } } if ($attribs['fieldLevel']) { $fields[] = $attribs['fieldLevel']; } if ($attribs['fieldOrder']) { $order = $attribs['fieldOrder']; } else { $order = $fields[1]; } Zend_Controller_Front::getInstance()->getRequest()->setParam('autoselectFilter', true); $_mapper->findAll($_where, $fields, $order); Zend_Controller_Front::getInstance()->getRequest()->setParam('autoselectFilter', false); $sourceData = array(); while ($_mapper->fetch()) { $data = $_mapper->getData(); $row = array(); $row['value'] = $data[$fields[0]]->get(); $row['desc'] = $data[$fields[1]]->get(); if ($attribs['fieldLevel']) { $row['level'] = $data[$fields[2]]->toPhp(); } else { $row['level'] = 0; } $sourceData[] = $row; if ($value == $row['value']) { $params['loadValue'] = $row['desc']; } } } if (isset($attribs['sourceData'])) { $sourceData = $attribs['sourceData']; unset($attribs['sourceData']); } /*if (count($sourceData) == 0 || !is_array($sourceData)){ throw new ZendT_Exception('Propriedade "sourceData" não definida!'); }*/ if ($attribs['suffix']) { $nameId = 'id_' . $attribs['suffix']; } if ($attribs['prefix']) { $nameId = $attribs['prefix'] . '_id'; } /** * @todo encontrar a melhor maneira de implementação */ $required = $attribs['required']; $attribs['class'] = str_replace('required', '', $attribs['class']); unset($attribs['fields']); unset($attribs['mapperView']); unset($attribs['suffix']); unset($attribs['prefix']); unset($attribs['caption']); unset($attribs['required']); unset($attribs['where']); unset($attribs['fieldLevel']); unset($attribs['fieldOrder']); $params['sourceData'] = $sourceData; $params['fieldValue'] = $nameId; $attribs['TAutoSelect'] = '1'; $attribs['role'] = ''; //var_dump($params); $params = ZendT_JS_Json::encode($params); $this->jquery->addOnLoad('jQuery("#' . $id . '").TAutoSelect(' . $params . ');'); return $this->view->formText($id, '', $attribs) . $this->view->formHidden($nameId, '', array('required' => $required, 'TAutoSelect' => '1', 'role' => $id)); }
/** * Renderiza * * @return string */ public function render() { $this->addHeadScriptFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/amcharts/amcharts.js'); $this->addHeadScript($this->getId(), $this->__toString()); return $this->createHtml(); }
/** * Construtor da classe * * @return void */ public function __construct($options = false) { $this->_decorators = array(new ZendT_Form_Decorator()); if ($options['orientation'] == 'P') { $_widthTitle = 195; } else { $_widthTitle = 285; } //Parametros idênticos ao padrão css para facilitar o uso. //$options pode ser um array de opções ou o titulo do relatório $default = array('empresa' => 'TA', 'orientation' => 'P', 'title' => array('print' => 1, 'fontSize' => 10, 'bold' => true, 'width' => $_widthTitle, 'align' => 'center', 'value' => 'Título do Relatório'), 'unit' => 'mm', 'size' => 'A4', 'outputName' => 'relatorio', 'lineIndex' => 0, 'maxPerLine' => 5); if (is_array($options)) { $options = array_merge($default, $options); } else { $options = $default; } foreach ($options as $key => $value) { $this->{'_' . $key} = $value; } if ($this->_orientation == 'L') { $this->_pageWidth = 1625; } else { $this->_pageWidth = 1120; } $this->_options = $options; $this->_title = $default['title']; #$this->_driver->setTitulo($this->_title); #$this->_driver->setEmpresa($this->_empresa); #$this->_driver->setOrientation($this->_orientation); switch ($this->_empresa) { case 'TA': $logo = ZendT_Url::getBaseDiretoryPublic() . "/images/logo_ta.jpg"; break; case 'WIN': case 'TAA': case 'TAE': $logo = ZendT_Url::getBaseDiretoryPublic() . "/images/logo_tae.jpg"; break; case 'TAL': case 'TLG': $logo = ZendT_Url::getBaseDiretoryPublic() . "/images/logo_tal.jpg"; break; default: $logo = ZendT_Url::getBaseDiretoryPublic() . "/images/logo_ta.jpg"; break; } $cell = new ZendT_Report_Cell(); $cell->setFontSize($default['title']['fontSize'])->setFontBold($default['title']['bold'])->setWidth($default['title']['width'])->setTextAlign($default['title']['align'])->setValue($default['title']['value']); $this->_output = '<table width="100%" class="htmlReport" border="0" cellpadding="0" cellspacing="0">'; if ($this->_options['title']['print'] !== '0') { $this->_output .= '<tr>'; $this->_output .= ' <td class="lf logo"><img src="' . $logo . '" /></td>'; $this->_output .= $this->_writeCell($cell); $this->_output .= '</tr>'; } }
/** * * @param Zend_View_Interface $view * @return type */ public function render(Zend_View_Interface $view = null) { $element = new ZendT_Form_Element('clear_both'); $element->setDecorators(array(new ZendT_Form_Decorator_ClearBoth())); $this->addElement($element); if ($this->_enablejQueryValidate) { $onLoad = $this->getView()->placeholder('onLoad')->getValue(); $onLoad['jQueryFormValidate'] = "jQuery('#" . $this->getId() . "').validate({ignore:[]});"; $this->getView()->placeholder('onLoad')->set($onLoad); } if (count($this->_url) > 1) { $this->getView()->headScript()->appendFile(ZendT_Url::getBaseDiretoryPublic() . '/scripts/jquery/widget/TForm.js?' . $data); $baseUrl = ZendT_Url::getBaseUrl(); $url = array(); foreach ($this->_url as $key => $value) { $url['url'][$key] = $baseUrl . $value; } $jsonParam = ZendT_JS_Json::encode($url); $onLoad = $this->getView()->placeholder('onLoad')->getValue(); $onLoad['jQueryForm'] = "jQuery('#" . $this->getId() . "').TForm(" . $jsonParam . ");"; $this->getView()->placeholder('onLoad')->set($onLoad); } if ($this->_enableFocusFirstElement) { $onLoad = $this->getView()->placeholder('onLoad')->getValue(); $onLoad['jQueryFormFocus'] = "focusFirstElement('#" . $this->getId() . " input, #" . $this->getId() . " textare, #" . $this->getId() . " select');"; $this->getView()->placeholder('onLoad')->set($onLoad); } $enableTinyMCE = false; $elements = $this->getElements(); $tinyMCE = ''; foreach ($elements as $element) { if ($element instanceof ZendT_Form_Element_Textarea) { if ($element->isEditorHtml()) { $tinyMCE .= "tinyMCE.get('" . $element->getId() . "').save();"; $enableTinyMCE = true; } } } if ($enableTinyMCE) { $onLoad = $this->getView()->placeholder('onLoad')->getValue(); $onLoad['tinyMCE'] = "jQuery('#" . $this->getId() . "').submit(function(){" . $tinyMCE . "});"; $this->getView()->placeholder('onLoad')->set($onLoad); } return parent::render($view); }