%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/ui/form/widgets/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/ui/form/widgets/FormTabs.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2021 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\ui\form\widgets;
use humhub\modules\ui\form\interfaces\TabbedFormModel;
use humhub\widgets\Tabs;
use yii\base\Model;
/**
* Class TabsForm
*
* @since 1.11.0
*/
class FormTabs extends Tabs
{
/**
* @var TabbedFormModel
*/
public $form;
/**
* @inheritdoc
*/
protected function beforeSortItems()
{
$this->initTabbedFormItems();
parent::beforeSortItems();
}
private function initTabbedFormItems()
{
if (!($this->form instanceof TabbedFormModel && $this->form instanceof Model)) {
return;
}
$items = $this->form->tabs;
if (empty($items)) {
return;
}
$this->items = $items;
if (!$this->form->hasErrors()) {
return;
}
// Find first error with field and activate that tab
$errorFields = array_keys($this->form->getErrors());
foreach ($this->items as $t => $tab) {
if (!empty(array_intersect($tab['fields'], $errorFields))) {
$this->items[$t]['active'] = true;
// Stop on first found error
return;
}
}
}
}