exporttemplate.html.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. /**
  3. * The export view file of transfer module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  5. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  6. * @author Wang Yidong <yidong@easycorp.ltd>
  7. * @package transfer
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $this->app->loadLang('file');
  12. set::title($lang->transfer->exportTemplate);
  13. form
  14. (
  15. set::target('_self'),
  16. on::submit('setDownloading'),
  17. formGroup
  18. (
  19. on::click('removeNumTip'),
  20. set::label($lang->transfer->num),
  21. set::name('num'),
  22. set::type('number'),
  23. set::value(10)
  24. ),
  25. !empty($isProjectStory) ? formGroup
  26. (
  27. set::label($lang->story->type),
  28. set::name('storyType'),
  29. set::required(true),
  30. set::control('picker'),
  31. set::value('story'),
  32. set::items($typeList)
  33. ) : null,
  34. formGroup
  35. (
  36. set::label($lang->file->extension),
  37. set::name('fileType'),
  38. set::required(true),
  39. set::value('xlsx'),
  40. set::control('picker'),
  41. set::items(array('xlsx' => 'xlsx'))
  42. ),
  43. set::actions(array('submit'))
  44. );
  45. $numError = sprintf($this->lang->error->int[0], $this->lang->transfer->numAB);
  46. h::js
  47. (
  48. <<<JAVASCRIPT
  49. window.setDownloading = function(e)
  50. {
  51. const \$num = \$(this).find('[name=num]');
  52. removeNumTip();
  53. if(isNaN(\$num.val()) || \$num.val().trim() == '')
  54. {
  55. \$num.after('<div class="form-tip ajax-form-tip text-danger pre-line" id="numTip">{$numError}</div>');
  56. \$num.addClass('has-error');
  57. e.preventDefault();
  58. return false;
  59. }
  60. if(navigator.userAgent.toLowerCase().indexOf("opera") > -1) return true; // Opera don't support, omit it.
  61. \$.cookie.set('downloading', 0, {expires:config.cookieLife, path:config.webRoot});
  62. time = setInterval(function()
  63. {
  64. if(\$.cookie.get('downloading') == 1)
  65. {
  66. \$('.modal-dialog .modal-actions .close').trigger('click');
  67. \$.cookie.set('downloading', null, {expires:config.cookieLife, path:config.webRoot});
  68. clearInterval(time);
  69. }
  70. }, 300);
  71. return true;
  72. }
  73. window.removeNumTip = function()
  74. {
  75. const \$num = \$(this).find('[name=num]');
  76. \$num.parent().find('.form-tip').remove();
  77. \$num.removeClass('has-error');
  78. }
  79. JAVASCRIPT
  80. );