* @package design * @link https://www.zentao.net */ namespace zin; /* zin: Set variables to define picker options for form. */ jsVar('projectID', $project->id); jsVar('type', strtolower($design->type)); /* Cannot show product field in no-product project. */ $productRow = ''; if($project->hasProduct) { $productRow = formGroup( set::width('1/2'), set::name('product'), set::label($lang->design->product), set::value($design->product), set::items($products), set::required(true), on::change('loadStory') ); } formPanel ( set::title(''), set::back('GLOBAL'), set::backUrl(helper::createLink('design', 'browse', "projectID={$project->id}")), entityLabel ( set::entityID($design->id), set::level(1), set::text($design->name) ), $productRow, formGroup ( set::width('1/2'), set::name('story'), set::label($lang->design->story), set::value($design->story), set::items($stories) ), formGroup ( set::width('1/2'), set::name('type'), set::label($lang->design->type), set::value($design->type), set::items($lang->design->typeList) ), formGroup ( set::width('1/2'), set::name('name'), set::value($design->name), set::label($lang->design->name) ), formGroup ( set::label($lang->design->desc), editor ( set::name('desc'), html($design->desc), ) ), formGroup ( setID('files'), set::label($lang->design->file), fileSelector($design->files ? set::defaultFiles(array_values($design->files)) : null) ), formGroup ( set::label($lang->story->checkAffection), tabs ( setClass('w-full'), tabPane ( set::key('affectedTasks'), set::active(true), to::suffix ( $lang->design->affectedTasks, label ( setClass('danger rounded-full size-sm font-normal'), count($design->tasks) ) ), dtable ( set::cols($config->design->affect->tasks->fields), set::data(array_values($design->tasks)), set::userMap($users) ) ) ) ) ); /* ====== Render page ====== */ render();