setvarvalues.html.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. /**
  3. * The setVarValues view file of report module of ZenTaoPMS.
  4. *
  5. * @copyright Copyright 2009-2014 QingDao Nature Easy Soft Network Technology Co,LTD (www.cnezsoft.com)
  6. * @license LGPL (http://www.gnu.org/licenses/lgpl.html)
  7. * @author Yidong Wang <yidong@cnezsoft.com>
  8. * @package report
  9. * @version $Id$
  10. * @link http://www.zentao.net
  11. */
  12. ?>
  13. <?php include $app->getModuleRoot() . 'common/view/datepicker.html.php';?>
  14. <?php foreach($sqlVars['varName'] as $i => $varName):?>
  15. <div class='col-md-3 col-sm-6' style='width:220px;'>
  16. <div class='input-group'>
  17. <?php $sqlVarName = isset($sqlVars['showName'][$i]) ? $sqlVars['showName'][$i] : $varName;?>
  18. <span class='input-group-addon text-ellipsis' style='max-width: 140px' title='<?php echo $sqlVarName;?>'><?php echo $sqlVarName;?></span>
  19. <?php
  20. $default = isset($sqlVars['default'][$i]) ? $sqlVars['default'][$i] : '';
  21. if($sqlVars['requestType'][$i] == 'select') $sqlVars['requestType'][$i] = $sqlVars['selectList'][$i];
  22. if($sqlVars['requestType'][$i] == 'date')
  23. {
  24. echo html::input("sqlVars[$varName]", zget($sqlVarValues, $varName, $default), "class='form-control report-date'");
  25. }
  26. elseif($sqlVars['requestType'][$i] == 'datetime')
  27. {
  28. echo html::input("sqlVars[$varName]", zget($sqlVarValues, $varName, $default), "class='form-control report-datetime'");
  29. }
  30. elseif($sqlVars['requestType'][$i] == 'product')
  31. {
  32. $shadow = (isset($submenu) and $submenu != 'test') ? 0 : 'all';
  33. if(!isset($products)) $products = array('' => '') + $this->loadModel('product')->getPairs('nocode', 0, '', $shadow);
  34. echo html::select("sqlVars[$varName]", $products, zget($sqlVarValues, $varName, $default), "class='form-control chosen'");
  35. }
  36. elseif($sqlVars['requestType'][$i] == 'project')
  37. {
  38. if(!isset($projects)) $projects = array('' => $this->lang->crystal->allProject) + $this->loadModel('project')->getPairsByProgram();
  39. echo html::select("sqlVars[$varName]", $projects, zget($sqlVarValues, $varName, $default), "class='form-control chosen'");
  40. }
  41. elseif($sqlVars['requestType'][$i] == 'execution')
  42. {
  43. if(!isset($executions)) $executions = array('' => $this->lang->crystal->allExecution) + $this->loadModel('execution')->getPairs(0, 'all', 'multiple');
  44. echo html::select("sqlVars[$varName]", $executions, zget($sqlVarValues, $varName, $default), "class='form-control chosen'");
  45. }
  46. elseif($sqlVars['requestType'][$i] == 'dept')
  47. {
  48. if(!isset($depts)) $depts = $this->loadModel('dept')->getOptionMenu();
  49. echo html::select("sqlVars[$varName]", $depts, zget($sqlVarValues, $varName, $default), "class='form-control chosen'");
  50. }
  51. elseif($sqlVars['requestType'][$i] == 'user')
  52. {
  53. if(!isset($users)) $users = $this->loadModel('user')->getPairs('noletter');
  54. echo html::select("sqlVars[$varName]", $users, zget($sqlVarValues, $varName, $default), "class='form-control chosen'");
  55. }
  56. elseif(strpos($sqlVars['requestType'][$i], '.') !== false)
  57. {
  58. list($moduleName, $varListName) = explode('.', $sqlVars['requestType'][$i]);
  59. $this->app->loadLang($moduleName);
  60. $varListName .= 'List';
  61. $varList = $lang->$moduleName->$varListName;
  62. unset($varList[0]);
  63. unset($varList['']);
  64. $varList = array('' => '') + $varList;
  65. echo html::select("sqlVars[$varName]", $varList, zget($sqlVarValues, $varName, $default), "class='form-control chosen'");
  66. }
  67. else
  68. {
  69. echo html::input("sqlVars[$varName]", zget($sqlVarValues, $varName, $default), "class='form-control'");
  70. }
  71. ?>
  72. </div>
  73. </div>
  74. <?php endforeach;?>
  75. <script>
  76. var dtOptions =
  77. {
  78. language: '<?php echo $this->app->getClientLang();?>',
  79. weekStart: 1,
  80. todayBtn: 1,
  81. autoclose: 1,
  82. todayHighlight: 1,
  83. startView: 2,
  84. minView: 2,
  85. forceParse: 0,
  86. format: 'yyyy-mm-dd'
  87. };
  88. $(function()
  89. {
  90. $('.report-date').each(function()
  91. {
  92. time = $(this).val();
  93. if(!isNaN(time) && time != ''){
  94. var Y = time.substring(0, 4);
  95. var m = time.substring(4, 6);
  96. var d = time.substring(6, 8);
  97. time = Y + '-' + m + '-' + d;
  98. $('.report-date').val(time);
  99. }
  100. });
  101. setDateField('.report-date');
  102. setDateField('.report-datetime');
  103. });
  104. function setDateField(query)
  105. {
  106. var $period = $('#selectPeriod');
  107. if(!$period.length)
  108. {
  109. $period = $("<ul id='selectPeriod' class='dropdown-menu'><li><a href='#MONDAY'><?php echo $lang->datepicker->dpText->TEXT_WEEK_MONDAY;?></a></li><li><a href='#SUNDAY'><?php echo $lang->datepicker->dpText->TEXT_WEEK_SUNDAY;?></a></li><li><a href='#MONTHBEGIN'><?php echo $lang->datepicker->dpText->TEXT_MONTH_BEGIN;?></a></li><li><a href='#MONTHEND'><?php echo $lang->datepicker->dpText->TEXT_MONTH_END;?></a></li></ul>").appendTo('body');
  110. $period.find('li > a').click(function(event)
  111. {
  112. var target = $(query).parents('form').find('[id="' + $period.attr('data-target') + '"]');
  113. if(target.length)
  114. {
  115. target.val($(this).attr('href').replace('#', '$'));
  116. $period.hide();
  117. }
  118. event.stopPropagation();
  119. return false;
  120. });
  121. }
  122. dtOptions.format = query == '.report-date' ? 'yyyy-mm-dd' : 'yyyy-mm-dd hh:mm';
  123. dtOptions.minView = query == '.report-date' ? '2' : '0';
  124. $(query).datetimepicker('remove').datetimepicker(dtOptions).on('show', function(e)
  125. {
  126. var $e = $(e.target);
  127. var ePos = $e.offset();
  128. $period.css({'left': ePos.left + 210, 'top': ePos.top + 29, 'min-height': $('.datetimepicker').outerHeight()}).show().attr('data-target', $e.attr('id')).find('li.active').removeClass('active');
  129. $period.find("li > a[href='" + $e.val().replace('$', '#') + "']").closest('li').addClass('active');
  130. }).on('changeDate', function()
  131. {
  132. $period.hide();
  133. }).on('hide', function(){setTimeout(function(){$period.hide();}, 200);});
  134. }
  135. </script>