edit.max.html.hook.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace zin;
  3. global $lang;
  4. $buildGroups = data('buildGroups');
  5. $productBuilds = data('productBuilds');
  6. $testtask = data('testtask');
  7. jsVar('+index', count($buildGroups) + 1);
  8. $relatedHtml = array();
  9. $relatedHtml[] = div(set::className('flex w-full mt-2'), div(set::className('text-center w-48'), $lang->testtask->product), div(set::className('text-center w-48 ml-4'), $lang->testtask->build));
  10. $index = 0;
  11. foreach($buildGroups as $productID => $builds)
  12. {
  13. $relatedHtml[] = div
  14. (
  15. set::className('relatedItem flex w-full mt-2'),
  16. div
  17. (
  18. set::className('flex items-center'),
  19. picker(set::name("products[$index]"), set::shareSelections('products'), set::width('196px'), set::items(data('productList')), set::value($productID), setData(array('on' => 'change', 'call' => 'changeProducts', 'params' => 'event')))
  20. ),
  21. div
  22. (
  23. set::className('flex items-center ml-4'),
  24. picker(set::name("builds[$index][]"), set::multiple(true), set::width('196px'), set::items(zget($productBuilds, $productID, array())), set::value($builds))
  25. ),
  26. div
  27. (
  28. set::className('flex ml-2'),
  29. btn(set::className('ghost addLine p-2'), icon('plus'), setData(array('on' => 'click', 'call' => 'addLine', 'params' => 'event'))),
  30. btn(set::className('ghost removeLine p-2'), icon('close'), setData(array('on' => 'click', 'call' => 'removeLine', 'params' => 'event')), count($buildGroups) === 0 ? setStyle(array('visibility' => 'hidden')) : null)
  31. )
  32. );
  33. $index ++;
  34. }
  35. $relatedHtml[] = div
  36. (
  37. set::className('relatedItem flex w-full mt-2'),
  38. div
  39. (
  40. set::className('flex items-center'),
  41. picker(set::name("products[$index]"), set::shareSelections('products'), set::width('196px'), set::items(data('productList')), setData(array('on' => 'change', 'call' => 'changeProducts', 'params' => 'event')))
  42. ),
  43. div
  44. (
  45. set::className('flex items-center ml-4'),
  46. picker(set::name("builds[$index][]"), set::multiple(true), set::width('196px'), set::items(array()))
  47. ),
  48. div
  49. (
  50. set::className('flex ml-2'),
  51. btn(set::className('ghost addLine p-2'), icon('plus'), setData(array('on' => 'click', 'call' => 'addLine', 'params' => 'event'))),
  52. btn(set::className('ghost removeLine p-2'), icon('close'), setData(array('on' => 'click', 'call' => 'removeLine', 'params' => 'event')))
  53. )
  54. );
  55. $jointBox[] = formGroup
  56. (
  57. set::width('1/2'),
  58. set::label($lang->testtask->related),
  59. set::required(true),
  60. set::name('relatedBox'),
  61. set::hidden($testtask->joint ? false : true),
  62. set::control(array('control' => 'input', 'className' => 'hidden')),
  63. $relatedHtml
  64. );
  65. $jointBox[] = formGroup
  66. (
  67. set::width('1/2'),
  68. set::label($lang->testtask->joint),
  69. set::name('joint'),
  70. set::control(array('control' => 'radioList', 'inline' => true, 'data-on' => 'change', 'data-call' => 'changeJoint', 'data-params' => 'event', 'disabled' => true)),
  71. set::items($lang->testtask->jointList),
  72. set::value($testtask->joint)
  73. );
  74. query('#typeBox')->closest('.form')->prepend($jointBox);
  75. if($testtask->joint)
  76. {
  77. query('#execution')->closest('.form-group')->addClass('hidden');
  78. query('#buildBox')->addClass('hidden');
  79. }