create.field.php 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. namespace zin;
  3. global $lang, $config, $app;
  4. $fields = defineFieldList('testcase.create');
  5. $productID = data('productID');
  6. $moduleID = data('currentModuleID');
  7. $branch = data('branch');
  8. $storyID = data('case.story') ? data('case.story') : '';
  9. unset($lang->testcase->typeList['unit']);
  10. $fields->field('product')
  11. ->hidden(data('product.shadow'))
  12. ->control('inputGroup')
  13. ->items(false)
  14. ->itemBegin('product')->control('picker')->items(data('products'))->required(true)->value(data('productID'))->itemEnd()
  15. ->item(data('product.type') == 'normal' ? null : field('branch')->control('picker', array('required' => true))->width('100px')->items(data('branches'))->value((int)data('branch')));
  16. $fields->field('module')
  17. ->controlBegin('modulePicker')
  18. ->type('modulePicker')
  19. ->items(data('moduleOptionMenu'))
  20. ->value(data('currentModuleID'))
  21. ->manageLink(createLink('tree', 'browse', 'rootID=' . data('productID') . '&view=case&currentModuleID=0&branch=' . data('branch')))
  22. ->required(true)
  23. ->controlEnd()
  24. ->wrapAfter(true);
  25. $fields->field('story')
  26. ->label($lang->testcase->lblStory)
  27. ->control('inputGroup')
  28. ->items(false)
  29. ->itemBegin('story')->control(array('control' => 'remotepicker', 'params' => "productID=$productID&moduleID=$moduleID&branch=$branch&storyID=$storyID", 'type' => 'casestories'))->id('story')->value($storyID)->itemEnd()
  30. ->itemBegin()->control('btn', array('url' => helper::createLink('story', 'view', 'storyID=' . $storyID), 'data-toggle' => 'modal', 'data-size' => 'lg'))->className('hidden', empty($storyID))->icon('eye text-primary')->hint($lang->preview)->id('preview')->itemEnd();
  31. $fields->field('scene')
  32. ->control(array('control' => 'picker', 'required' => true))
  33. ->items(data('sceneOptionMenu'))
  34. ->value(data('currentSceneID'));
  35. $fields->field('type')
  36. ->checkbox(helper::hasFeature('automated') ? array('id' => 'auto', 'name' => 'auto', 'text' => $lang->testcase->automated, 'checked' => data('case.auto') == 'auto' || data('onlyAutoCase')) : null)
  37. ->items($lang->testcase->typeList)
  38. ->value(data('case.type'));
  39. $fields->field('stage')
  40. ->items($lang->testcase->stageList)
  41. ->value(data('case.stage'))
  42. ->multiple();
  43. $fields->field('scriptFile')
  44. ->multiple(false)
  45. ->width('full')
  46. ->label($lang->testcase->autoScript)
  47. ->className('autoScript')
  48. ->hidden(data('case.auto') != 'auto' && !data('onlyAutoCase'))
  49. ->control('fileSelector', array('accept' => $config->testcase->scriptAcceptFileTypes, 'multiple' => false, 'maxFileCount' => 1, 'onAdd' => jsRaw('window.readScriptContent'), 'onRemove' => jsRaw('window.showUploadScriptBtn')));
  50. $fields->field('script')
  51. ->control('hidden')
  52. ->value(data('case.script'));
  53. $fields->field('title')
  54. ->width('5/6')
  55. ->value(data('case.title'))
  56. ->control('colorInput', array('colorValue' => data('case.color')))
  57. ->checkbox(data('needReview') ? array('name' => 'needReview', 'text' => $lang->testcase->forceReview, 'checked' => true) : null);
  58. $fields->field('pri')
  59. ->width('1/6')
  60. ->control(array('control' => 'priPicker', 'required' => true))
  61. ->items(array_filter($lang->testcase->priList))
  62. ->value(data('case.pri'));
  63. $fields->field('precondition')
  64. ->control('textarea', array('rows' => 2))
  65. ->width('full')
  66. ->value(data('case.precondition'));
  67. $fields->field('steps')
  68. ->width('full')
  69. ->control('stepsEditor', array('data' => data('case.steps')));
  70. $fields->field('keywords')
  71. ->width('full')
  72. ->value(data('case.keywords'));
  73. $files = data('case.files');
  74. $fields->field('files')
  75. ->width('full')
  76. ->control('fileSelector', array('defaultFiles' => ($files ? array_values($files) : array())));
  77. $fields->field('fileList')->control('hidden')->value(data('case.files'));