* @package tree * @link https://www.zentao.net */ namespace zin; $manageTitle = $lang->tree->manageChild; if(strpos($viewType, 'doc') !== false) { $manageTitle = $lang->doc->manageType; } elseif(strpos($viewType, 'trainskill') === false and strpos($viewType, 'trainpost') === false) { $manageChild = 'manage' . ucfirst($viewType) . 'Child'; $manageTitle = $lang->tree->$manageChild; } $maxOrder = 0; /* Generate module rows. */ $moduleRows = array(); foreach($sons as $son) { if($son->order > $maxOrder) $maxOrder = $son->order; $moduleRows[] = formRow ( formGroup ( inputGroup ( setClass('row-module'), input ( setClass('col-module'), set::name("modules[id$son->id]"), set::type('input'), set::value($son->name), set::placeholder($placeholder), ), input ( setClass('col-short'), set::name("shorts[id$son->id]"), set::type('input'), set::value($son->short), set::placeholder($lang->tree->short), ), input ( setClass('hidden'), set::name("order[id$son->id]"), set::value($son->order), set::control('hidden'), ), ), ), ); } for($i = 0; $i < \tree::NEW_CHILD_COUNT; $i ++) { $moduleRows[] = formRow ( formGroup ( inputGroup ( setClass('row-module'), input ( setClass('col-module'), set::name("modules[$i]"), set::type('input'), set::value(''), set::placeholder($placeholder), ), input ( setClass('col-short'), set::name("shorts[$i]"), set::type('input'), set::value(''), set::placeholder($lang->tree->short), ), input ( setClass('hidden'), set::name("branch[$i]"), set::value(0), set::control('hidden'), ), ), batchActions(), ), ); } $parentPath = array(); $parentPath[] = span ( a ( setClass('tree-link'), set('href', helper::createLink('tree', 'browse', "rootID=$root->id&view={$viewType}&productID=$productID")), $root->name, ), h::i ( setClass('icon icon-angle-right muted align-middle'), setStyle('color', '#313C52'), ) ); foreach($parentModules as $module) { $parentPath[] = span ( a ( setClass('tree-link'), set('href', helper::createLink('tree', 'browse', "rootID=$root->id&view={$viewType}¤tModuleID=$module->id&productID=$productID")), $module->name, ), h::i ( setClass('icon icon-angle-right muted align-middle'), setStyle('color', '#313C52'), ) ); } div ( setClass('flex gap-x-4 mb-3'), backBtn ( set::icon('back'), set::type('secondary'), $lang->goback, ), div ( setClass('entity-label flex items-center gap-x-2 article-h1'), $lang->tree->common . $lang->colon . $root->name, ) ); div ( setClass('flex gap-x-4'), div ( setClass('sidebar sidebar-left basis-2/6'), panel ( set::title($title), ($app->tab == 'product' and $viewType == 'story') ? to::headingActions ( btn ( set ( array ( 'class' => 'btn primary size-sm', 'url' => createLink('tree', 'viewHistory', "productID=$rootID"), 'data-toggle' => 'modal', ) ), $lang->history ), ) : null, tree ( set('type', $viewType), set('items', $tree), set('canEdit', common::hasPriv('tree', 'edit') && $canBeChanged), set('canDelete', common::hasPriv('tree', 'delete') && $canBeChanged), ), ) ), div ( setClass('basis-4/6'), panel ( set::title($manageTitle), div ( setClass('flex'), div ( setClass('p-1 tree-item-content'), $parentPath, ), form ( setClass('flex-1 form-grid'), set::url(helper::createLink('tree', 'manageChild', "root=$root->id&viewType=$viewType")), $moduleRows, set::actions(array('submit', 'cancel')), set::back('execution-task'), set::actionsClass('justify-start'), formGroup ( setClass('hidden'), set::name('parentModuleID'), set::value($currentModuleID), set::control('hidden'), ), formGroup ( setClass('hidden'), set::name('maxOrder'), set::value($maxOrder), set::control('hidden'), ), ), ), ) ) ); render();