edit.html.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace zin;
  3. $parentID = $program->parent;
  4. $currency = $parentID ? $parentProgram->budgetUnit : $config->project->defaultCurrency;
  5. $aclList = $parentID ? $lang->program->subAclList : $lang->program->aclList;
  6. $delta = $program->end == LONG_TIME ? 999 : (strtotime($program->end) - strtotime($program->begin)) / 3600 / 24 + 1;
  7. jsVar('page', 'edit');
  8. jsVar('longTime', $lang->project->longTime);
  9. jsVar('weekend', $config->execution->weekend);
  10. jsVar('parentBudget', $lang->program->parentBudget);
  11. jsVar('beginLessThanParent', $lang->program->beginLessThanParent);
  12. jsVar('endGreatThanParent', $lang->program->endGreatThanParent);
  13. jsVar('ignore', $lang->program->ignore);
  14. jsVar('currencySymbol', $lang->project->currencySymbol);
  15. jsVar('budgetOverrun', $lang->project->budgetOverrun);
  16. unset($lang->project->endList['999']);
  17. jsVar('endList', $lang->project->endList);
  18. $fields = useFields('program.edit');
  19. $autoLoad = array();
  20. $autoLoad['parent'] = 'future,budget,budgetUnit,acl,whitelist';
  21. $handleLongTimeChange = jsCallback()->do(<<<'JS'
  22. const endPicker = $element.find('[name=end]').zui('datePicker');
  23. const longTime = $element.find('[name=longTime]').prop('checked');
  24. endPicker.render({disabled: longTime});
  25. if(longTime) endPicker.$.setValue('');
  26. JS
  27. );
  28. formGridPanel
  29. (
  30. set::modeSwitcher(false),
  31. set::title($title),
  32. set::fields($fields),
  33. set::loadUrl($loadUrl),
  34. set::autoLoad($autoLoad),
  35. on::change('[name=budget]', 'budgetOverrunTips'),
  36. on::change('[name=future]', 'onFutureChange'),
  37. on::change('[name=acl]', 'onAclChange'),
  38. on::change('[name=longTime]', $handleLongTimeChange),
  39. on::change('[name=begin], [name=end]', 'onDateChange'),
  40. on::init()->do('setTimeout(() => $element.find("[name=longTime]").trigger("change"), 500)')
  41. );
  42. render();