PATH:
home
/
letacommog
/
letaweb
/
protected
/
extensions
/
yiibooster
/
widgets
<?php /** *## TbJsonPickerColumn class * * @author: antonio ramirez <antonio@clevertech.biz> * @copyright Copyright © Clevertech 2012- * @license http://www.opensource.org/licenses/bsd-license.php New BSD License */ /** *## Class TbJsonPickerColumn * * The TbJsonPickerColumn works with TbJsonGridView and allows you to create a column that will display a picker element * The picker is a special plugin that renders a dropdown on click, which contents can be dynamically updated. * * @package booster.widgets.grids.columns.json */ class TbJsonPickerColumn extends TbJsonDataColumn { /** * @var string $class the class name to use to display picker */ public $class = 'picker'; /** * @var array $pickerOptions the javascript options for the picker bootstrap plugin. The picker bootstrap plugin * extends from the tooltip plugin. * * Note that picker has also a 'width' just in case we display AJAX'ed content. * * @see http://twitter.github.com/bootstrap/javascript.html#tooltips */ public $pickerOptions = array(); /** * Initialization function */ public function init() { if (!$this->class) { $this->class = 'picker'; } $this->registerClientScript(); } /** * Renders a data cell content, wrapping the value with the link that will activate the picker * * @param int $row * @param mixed $data * * @return string|void */ public function renderDataCellContent($row, $data) { if ($this->value !== null) { $value = $this->evaluateExpression($this->value, array('data' => $data, 'row' => $row)); } else if ($this->name !== null) { $value = CHtml::value($data, $this->name); } $class = preg_replace('/\s+/', '.', $this->class); $value = !isset($value) ? $this->grid->nullDisplay : $this->grid->getFormatter()->format($value, $this->type); $value = CHtml::link($value, '#', array('class' => $class)); if ($this->grid->json) { return $value; } echo $value; return; } /** * Registers client script data */ public function registerClientScript() { /** @var $cs CClientScript */ $cs = Yii::app()->getClientScript(); $cs->registerPackage('picker'); $pickerOptions = CJavaScript::encode($this->pickerOptions); $gridId = $this->grid->id; $class = preg_replace('/\s+/', '.', $this->class); // Registering script to properly open *only* the picker for which corresponding toggler was clicked, // and close all other pickers. $cs->registerScript( __CLASS__ . '#' . $this->id, <<<ENDL $(document).on('click','#{$gridId} a.{$class}', function() { if ($(this).hasClass('pickeron')) { $(this).removeClass('pickeron').picker('toggle'); return; } $('#{$gridId} a.pickeron') .removeClass('pickeron') .each(function (i, elem) { $(elem).picker('toggle'); }); $(this) .picker({$pickerOptions}) .picker('toggle').addClass('pickeron'); return false; }); ENDL ); } }
[+]
..
[-] TbTabView.php
[edit]
[-] TbNavbar.php
[edit]
[-] TbHighCharts.php
[edit]
[-] TbPager.php
[edit]
[-] TbLabel.php
[edit]
[-] TbActiveForm.php
[edit]
[-] TbPanel.php
[edit]
[-] TbJsonButtonColumn.php
[edit]
[-] TbModalManager.php
[edit]
[-] TbToggleColumn.php
[edit]
[-] TbUiLayout.php
[edit]
[-] TbBaseMenu.php
[edit]
[-] widgets.md
[edit]
[-] TbEditableDetailView.php
[edit]
[-] TbButtonGroup.php
[edit]
[-] TbEditable.php
[edit]
[-] TbFileUpload.php
[edit]
[-] TbEditableField.php
[edit]
[-] TbTags.php
[edit]
[-] TbFormButtonElement.php
[edit]
[-] TbFormInputElement.php
[edit]
[-] TbJsonPager.php
[edit]
[-] TbCollapse.php
[edit]
[-] TbBulkActions.php
[edit]
[-] TbRelationalColumn.php
[edit]
[-] TbTabs.php
[edit]
[-] TbModal.php
[edit]
[-] TbExtendedGridView.php
[edit]
[-] TbJumbotron.php
[edit]
[-] TbImageGallery.php
[edit]
[-] TbWidget.php
[edit]
[-] TbMenu.php
[edit]
[-] TbProgress.php
[edit]
[-] TbButtonColumn.php
[edit]
[-] TbJsonToggleColumn.php
[edit]
[-] TbJsonPickerColumn.php
[edit]
[-] TbColorPicker.php
[edit]
[-] TbButtonGroupColumn.php
[edit]
[-] TbSwitch.php
[edit]
[-] TbHeroUnit.php
[edit]
[-] TbDatePicker.php
[edit]
[-] TbJsonCheckBoxColumn.php
[edit]
[-] TbButton.php
[edit]
[-] TbTypeahead.php
[edit]
[-] TbForm.php
[edit]
[-] TbPassfield.php
[edit]
[-] TbEditableColumn.php
[edit]
[-] TbMarkdownEditorJs.php
[edit]
[-] TbPopoverColumn.php
[edit]
[-] TbMarkdownEditor.php
[edit]
[-] TbAlert.php
[edit]
[-] TbGroupGridView.php
[edit]
[-] TbBaseInputWidget.php
[edit]
[-] TbWizard.php
[edit]
[-] TbGroupButtonColumn.php
[edit]
[-] TbExtendedFilter.php
[edit]
[-] TbGoogleVisualizationChart.php
[edit]
[-] TbHtml5Editor.php
[edit]
[-] TbGridView.php
[edit]
[-] TbListView.php
[edit]
[-] TbTimePicker.php
[edit]
[-] TbJsonGridView.php
[edit]
[-] TbCKEditor.php
[edit]
[-] TbTotalSumColumn.php
[edit]
[-] TbDateRangePicker.php
[edit]
[-] TbBadge.php
[edit]
[-] TbDropdown.php
[edit]
[-] TbBreadcrumbs.php
[edit]
[-] TbJsonGridColumn.php
[edit]
[-] TbDateTimePicker.php
[edit]
[-] TbDataColumn.php
[edit]
[-] TbCarousel.php
[edit]
[-] TbJsonDataColumn.php
[edit]
[-] TbRedactorJs.php
[edit]
[-] TbThumbnails.php
[edit]
[-] TbScrollSpy.php
[edit]
[-] TbDetailView.php
[edit]
[+]
input
[-] TbSelect2.php
[edit]
[-] TbImageColumn.php
[edit]