Esempio n. 1
0
 /**
  * Get edit box
  */
 private function _getEditbox()
 {
     if ($this->editbutton === null || $this->editbutton == true || isset($this->options['data-widget-editbutton']) && $this->options['data-widget-editbutton'] == 'true') {
         Html::addCssClass($this->editBoxOptions, 'jarviswidget-editbox');
         echo Html::tag('div', $this->editBox, $this->editBoxOptions);
     }
 }
Esempio n. 2
0
 /**
  * Datalist input
  * @param array $items
  * @param array $options
  * @return \sersid\smartadmin\ActiveField
  */
 public function datalist($items, $options = [])
 {
     $options = array_merge($this->inputOptions, $options);
     $this->_setWrapperOptions($options);
     $this->_setIconOptions($options);
     $this->_setTooltipOptions($options);
     $this->adjustLabelFor($options);
     if (!array_key_exists('id', $options)) {
         $id = Html::getInputId($this->model, $this->attribute);
     }
     $listId = $id . '-list';
     $options['list'] = $listId;
     $datalistOptions = ArrayHelper::remove($options, 'datalistOptions', []);
     $datalistOptions['id'] = array_key_exists('id', $datalistOptions) ? $datalistOptions['id'] . ' ' . $listId : $listId;
     $this->parts['{input}'] = Html::activeTextInput($this->model, $this->attribute, $options) . Html::tag('datalist', Html::renderSelectOptions(null, $items, $datalistOptions), $datalistOptions);
     return $this;
 }
Esempio n. 3
0
 /**
  * See [[checkbox()]] for details
  */
 public static function checkboxSmart($name, $checked = false, $options = [])
 {
     $options['checked'] = (bool) $checked;
     $value = array_key_exists('value', $options) ? $options['value'] : '1';
     if (isset($options['uncheck'])) {
         // add a hidden field so that if the checkbox is not selected, it still submits a value
         $hidden = static::hiddenInput($name, $options['uncheck']);
         unset($options['uncheck']);
     } else {
         $hidden = '';
     }
     if (isset($options['label'])) {
         $label = $options['label'];
         $labelOptions = isset($options['labelOptions']) ? $options['labelOptions'] : [];
         unset($options['label'], $options['labelOptions']);
         $iconOptions = ArrayHelper::remove($options, 'iconOptions', []);
         $iconTag = ArrayHelper::remove($iconOptions, 'tag', 'i');
         $content = static::label(static::input('checkbox', $name, $value, $options) . Html::tag($iconTag, null, $iconOptions) . $label, null, $labelOptions);
         return $hidden . $content;
     } else {
         return $hidden . static::input('checkbox', $name, $value, $options);
     }
 }
Esempio n. 4
0
 public function renderSubItems($items)
 {
     $lines = [];
     foreach ($items as $i => $item) {
         if (isset($item['visible']) && !$item['visible']) {
             unset($items[$i]);
             continue;
         }
         if (is_string($item)) {
             $lines[] = $item;
             continue;
         }
         if (!isset($item['label'])) {
             throw new InvalidConfigException("The 'label' option is required.");
         }
         $encodeLabel = isset($item['encode']) ? $item['encode'] : $this->encodeLabels;
         $label = $encodeLabel ? Html::encode($item['label']) : $item['label'];
         $label = isset($item['icon']) ? $item['icon'] . ' ' . $label : $label;
         $label = isset($item['badge']) ? $label . ' ' . $item['badge'] : $label;
         $options = ArrayHelper::getValue($item, 'options', []);
         $linkOptions = ArrayHelper::getValue($item, 'linkOptions', []);
         $content = Html::a($label, ArrayHelper::getValue($item, 'url', '#'), $linkOptions);
         if (!empty($item['items'])) {
             $content .= $this->renderSubItems($item['items']);
         }
         $lines[] = Html::tag('li', $content, $options);
     }
     return Html::tag('ul', implode("\n", $lines));
 }