preview.html.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. <?php include '../../common/view/header.lite.html.php';?>
  2. <?php include '../../common/view/chart.html.php';?>
  3. <?php
  4. $height = 7;
  5. $width = 6.4;
  6. $pagerH = '30.5';
  7. $bottom = '40';
  8. $agent = $_SERVER["HTTP_USER_AGENT"];
  9. if(strpos($agent, "MSIE"))
  10. {
  11. $width = 6.6;
  12. $height = 7.3;
  13. $pagerH = '30.8';
  14. $bottom = '80';
  15. }
  16. elseif(strpos($agent, "Firefox"))
  17. {
  18. $height = 6.9;
  19. $pagerH = '29';
  20. $bottom = '60';
  21. }
  22. elseif(strpos($agent, "Opera"))
  23. {
  24. $height = 7;
  25. }
  26. $today = date('n/d');
  27. ?>
  28. <style type='text/css'>
  29. body {margin: 0pt}
  30. .pager {border:1px solid #000; margin-bottom: <?php echo $bottom?>px; border-collapse: collapse; border-spacing: 0; width: 21.6cm; height: <?php echo $pagerH?>cm;}
  31. .pager td{border:1px dotted #000;}
  32. .pager td{width: <?php echo $width?>cm; height: <?php echo $height?>cm;}
  33. .pager .stage {border:0; width: 100%; height: auto; margin: 0;}
  34. .pager .stage td {height: auto; border: 0; padding: 0; margin: 0;}
  35. .board {width: <?php echo $width - 0.2?>cm; height: <?php echo $height - 0.2?>cm; font-size: 12px; border: 1px solid #ccc; text-align: left;}
  36. #record {margin-bottom: 0; margin-top: 5px; border: 1px solid #000; width: 100%; border-collapse: collapse; border-spacing: 0;}
  37. #record td {width: 13%; height: 14px; border: 1px solid #000;}
  38. #burn {margin-top: 50px;}
  39. .board-header {overflow: hidden; padding: 1px 3px 1px 3px;}
  40. .board-id {overflow: hidden; padding: 1px 3px 1px 3px; width: 84%; border-bottom: 2px solid #000;}
  41. .board-pri {border: 1px solid #000; position: absolute; right: 0; top: 0; font-size: 20px; padding: 2px;}
  42. .board-middle {overflow: hidden}
  43. .board-title {overflow: hidden; padding: 1px 3px 1px 3px; width:95%; font-size:18px; font-weight: bold; line-height: 1.15;}
  44. .board-content {overflow: hidden; padding: 1px 3px 1px 3px; width:95%; font-size:14px; line-height: 1.2;letter-spacing: 1px;}
  45. .board-content p {margin-bottom: 0;}
  46. .board-footer {border-top: 1px dotted #000; padding-top: 5px; position: absolute; left: 0; width: 100%}
  47. .board-footer.story {bottom: 0;}
  48. .board-footer.task {bottom: 0;}
  49. .board-footer p{height: 14px; padding:0px 3px; margin-bottom:2px;}
  50. .checkbox-primary>label, .radio-primary>label {height:18px;}
  51. </style>
  52. <?php
  53. $i = 0;
  54. $dataType = '';
  55. ?>
  56. <?php foreach($datas as $col => $data):?>
  57. <?php foreach($data as $id => $content):?>
  58. <?php if($col != 'story') $dataType = strpos($id, 'bug') !== false ? 'bug' : 'task';?>
  59. <?php if($i % 12 == 0):?>
  60. <table class='pager'>
  61. <?php endif;?>
  62. <?php if($i % 3 == 0):?>
  63. <tr>
  64. <?php endif;?>
  65. <td valign='middle' align='center'>
  66. <div class="board" style='position:relative'>
  67. <div class="board-header">
  68. <div class="board-id">
  69. <?php
  70. if($col != 'story')
  71. {
  72. $story = $dataType == 'bug' ? $content->story : $content->storyID;
  73. echo $lang->story->common . "#<span style='font-size:20px'>" . (empty($story) ? '0' : $story) . '</span>';
  74. echo ' <i class="icon-angle-right"></i> ';
  75. }
  76. ?>
  77. <?php echo $col == 'story' ? $lang->story->common : ($dataType == 'task' ? $lang->task->common : $lang->bug->common)?>
  78. #<span style='font-size:20px;'><?php echo $content->id;?></span></div>
  79. <span class="board-pri">P<?php echo $content->pri ? $content->pri : '&nbsp;&nbsp;';?></span>
  80. </div>
  81. <div class='board-middle' style='height:<?php echo ($col == 'story' or $dataType == 'bug') ? '150px' : '100px'?>'>
  82. <div class='board-title <?php echo ($col == 'story' or $dataType == 'bug') ? 'h-40px' : 'h-100px'?>'>
  83. <?php
  84. $title = ($col == 'story' or strpos($id, 'bug') !== false) ? $content->title : $content->name;
  85. echo $col == 'story' ? mb_substr($title, 0, 22, 'utf8') : mb_substr($title, 0, 85, 'utf8')
  86. ?>
  87. </div>
  88. <?php if($col == 'story' or $dataType == 'bug'):?>
  89. <?php $desc = $col == 'story' ? $storySpecs[$content->id]->spec : $content->steps;?>
  90. <div class='board-content'><?php echo mb_substr(strip_tags($desc, "<p><br>"), 0, 90, 'utf8')?></div>
  91. <?php endif;?>
  92. </div>
  93. <div class="board-footer <?php echo $col == 'story' ? 'story' : 'task'?>">
  94. <?php if($col == 'story'):?>
  95. <table class='stage'>
  96. <tr>
  97. <td style='padding-left:15px;'>
  98. <table class='table-1'>
  99. <tr>
  100. <td><span><input type="checkbox" name="story<?php echo $content->id?>[]" value="developing" <?php echo $content->stage == 'developing' ? "checked" : ''?> id="story<?php echo $content->id;?>developing"><label for="story<?php echo $content->id;?>developing"> <?php echo $lang->story->stageList['developing']?></label></span></td>
  101. <td><span><input type="checkbox" name="story<?php echo $content->id?>[]" value="developed" <?php echo $content->stage == 'developed' ? "checked" : ''?> id="story<?php echo $content->id;?>developed"><label for="story<?php echo $content->id;?>developed"> <?php echo $lang->story->stageList['developed']?></label></span></td>
  102. <td><span><input type="checkbox" name="story<?php echo $content->id?>[]" value="testing" <?php echo $content->stage == 'testing' ? "checked" : ''?> id="story<?php echo $content->id;?>testing"><label for="story<?php echo $content->id;?>testing"> <?php echo $lang->story->stageList['testing']?></label></span><br /></td>
  103. </tr>
  104. <tr>
  105. <td><span><input type="checkbox" name="story<?php echo $content->id?>[]" value="tested" <?php echo $content->stage == 'tested' ? "checked" : ''?> id="story<?php echo $content->id;?>tested"><label for="story<?php echo $content->id;?>tested"> <?php echo $lang->story->stageList['tested']?></label></span></td>
  106. <td><span><input type="checkbox" name="story<?php echo $content->id?>[]" value="verified" <?php echo $content->stage == 'verified' ? "checked" : ''?> id="story<?php echo $content->id;?>verified"><label for="story<?php echo $content->id;?>verified"> <?php echo $lang->story->stageList['verified']?></label></span></td>
  107. <td></td>
  108. </tr>
  109. </table>
  110. </td>
  111. </tr>
  112. </table>
  113. <?php elseif($dataType == 'bug'):?>
  114. <?php unset($lang->bug->statusList['']);?>
  115. <div><?php echo $lang->bug->assignTo . ':'; echo empty($content->assignedTo) ? '' : $realnames[$content->assignedTo]->realname;?></div>
  116. <div><?php echo $lang->printKanban->taskStatus . ':' . html::checkbox("bug$content->id", $lang->bug->statusList, $content->status);?></div>
  117. <?php else:?>
  118. <?php unset($lang->task->statusList['']);?>
  119. <div><?php echo $lang->task->assign . ':'; echo empty($content->assignedTo) ? '' : $realnames[$content->assignedTo]->realname;?></div>
  120. <div><?php echo $lang->printKanban->taskStatus . ':' . html::checkbox("task$content->id", $lang->task->statusList, $content->status);?></div>
  121. <table class='table-1' id='record'>
  122. <tr>
  123. <td align='center'><?php echo $lang->task->date?></td>
  124. <td align='center'><?php echo $today?></td>
  125. <td></td>
  126. <td></td>
  127. <td></td>
  128. <td></td>
  129. <td></td>
  130. </tr>
  131. <tr>
  132. <td align='center'><?php echo $lang->task->leftThisTime?></td>
  133. <td align='center'><?php if($content->left) echo $content->left . $lang->execution->workHourUnit;?></td>
  134. <td></td>
  135. <td></td>
  136. <td></td>
  137. <td></td>
  138. <td></td>
  139. </tr>
  140. </table>
  141. <?php endif;?>
  142. </div>
  143. </div>
  144. </td>
  145. <?php $i ++;?>
  146. <?php if($i % 3 == 0):?>
  147. </tr>
  148. <?php endif;?>
  149. <?php if($i % 12 == 0):?>
  150. </table>
  151. <p style='page-break-before:always'></p>
  152. <?php endif;?>
  153. <?php endforeach;?>
  154. <?php endforeach;?>
  155. <?php while($i % 12 != 0):?>
  156. <td valign='middle' align='center'>
  157. <div class="board" style='position:relative'>
  158. <div class="board-header">
  159. <div class="board-id"><?php echo $col == 'story' ? $lang->story->common : ($dataType == 'task' ? $lang->task->common : $lang->bug->common)?>#</div>
  160. <span class="board-pri">P &nbsp; </span>
  161. </div>
  162. <div class='board-middle <?php echo $col == 'story' ? 'h-150px' : 'h-100px'?>'>
  163. <div class='board-title <?php echo $col == 'story' ? 'h-40px' : 'h-100px'?>'>
  164. </div>
  165. <?php if($col == 'story'):?>
  166. <?php endif;?>
  167. </div>
  168. <div class="board-footer <?php echo $col == 'story' ? 'story' : 'task'?>">
  169. <?php if($col == 'story'):?>
  170. <table class='stage'>
  171. <tr>
  172. <td style='padding-left:15px;'>
  173. <table class='table-1'>
  174. <tr>
  175. <td><span><input type="checkbox" name="story<?php echo $i?>[]" value="developing" id="story<?php echo $content->id;?>developing"><label for="story<?php echo $content->id;?>developing"> <?php echo $lang->story->stageList['developing']?></label></span></td>
  176. <td><span><input type="checkbox" name="story<?php echo $i?>[]" value="developed" id="story<?php echo $content->id;?>developed"><label for="story<?php echo $content->id;?>developed"> <?php echo $lang->story->stageList['developed']?></label></span></td>
  177. <td><span><input type="checkbox" name="story<?php echo $i?>[]" value="testing" id="story<?php echo $content->id;?>testing"><label for="story<?php echo $content->id;?>testing"> <?php echo $lang->story->stageList['testing']?></label></span><br /></td>
  178. </tr>
  179. <tr>
  180. <td><span><input type="checkbox" name="story<?php echo $i?>[]" value="tested" id="story<?php echo $content->id;?>tested"><label for="story<?php echo $content->id;?>tested"> <?php echo $lang->story->stageList['tested']?></label></span></td>
  181. <td><span><input type="checkbox" name="story<?php echo $i?>[]" value="verified" id="story<?php echo $content->id;?>verified"><label for="story<?php echo $content->id;?>verified"> <?php echo $lang->story->stageList['verified']?></label></span></td>
  182. <td></td>
  183. </tr>
  184. </table>
  185. </td>
  186. </tr>
  187. </table>
  188. <?php elseif($dataType == 'bug'):?>
  189. <div><?php echo $lang->bug->assignTo . ':';?></div>
  190. <div><?php echo $lang->printKanban->taskStatus . ':' . html::checkbox("bug$content->id", $lang->bug->statusList);?></div>
  191. <?php else:?>
  192. <div><?php echo $lang->task->assignedTo . ':';?></div>
  193. <div><?php echo $lang->printKanban->taskStatus . ':' . html::checkbox("task$content->id", $lang->task->statusList);?></div>
  194. <table class='table-1' id='record'>
  195. <tr>
  196. <td align='center'><?php echo $lang->task->date?></td>
  197. <td align='center'><?php echo $today?></td>
  198. <td></td>
  199. <td></td>
  200. <td></td>
  201. <td></td>
  202. <td></td>
  203. </tr>
  204. <tr>
  205. <td align='center'><?php echo $lang->task->leftThisTime?></td>
  206. <td></td>
  207. <td></td>
  208. <td></td>
  209. <td></td>
  210. <td></td>
  211. <td></td>
  212. </tr>
  213. </table>
  214. <?php endif;?>
  215. </div>
  216. </div>
  217. </td>
  218. <?php $i++;?>
  219. <?php if($i % 3 == 0):?>
  220. </tr>
  221. <?php endif;?>
  222. <?php if($i % 12 == 0):?>
  223. </table>
  224. <p style='page-break-before:always'></p>
  225. <?php endif;?>
  226. <?php endwhile;?>
  227. <div class='chart-canvas'>
  228. <img style="width: 790px; height: 400px;" id='chartImg'/>
  229. <canvas id='burnChart' data-bezier-curve='false' data-responsive='true'></canvas>
  230. </div>
  231. </body>
  232. <script>
  233. function initBurnChar()
  234. {
  235. <?php if(!empty($chartData)):?>
  236. var data =
  237. {
  238. labels: <?php echo json_encode($chartData['labels'])?>,
  239. datasets: [
  240. {
  241. label: "<?php echo $lang->execution->charts->burn->graph->reference;?>",
  242. color: "#CCC",
  243. fillColor: "rgba(0,0,0,0)",
  244. showTooltips: false,
  245. data: <?php echo isset($chartData['baseLine']) ? json_encode($chartData['baseLine']) : '';?>
  246. },
  247. {
  248. label: "<?php echo $lang->execution->charts->burn->graph->actuality;?>",
  249. color: "#0033CC",
  250. data: <?php echo isset($chartData['burnLine']) ? json_encode($chartData['burnLine']) : '';?>
  251. }]
  252. };
  253. var burnChart = $("#burnChart").lineChart(data, {animation: !($.zui.browser && $.zui.browser.ie === 8)});
  254. <?php endif;?>
  255. }
  256. $(function()
  257. {
  258. initBurnChar();
  259. setTimeout(function()
  260. {
  261. var chartImg = $('#burnChart').get(0).toDataURL("image/png");
  262. $('#chartImg').attr('src', chartImg);
  263. $('#burnChart').hide();
  264. <?php if(strpos($agent,'Chrome') !== false) echo "window.print();\n" ?>
  265. }, 200);
  266. $('#placeholder').prev('h1').width(700);
  267. $('#placeholder').css('margin', 0);
  268. $('#placeholder .tickLabels .xAxis .tickLabel').each(function()
  269. {
  270. var text = $(this).html();
  271. if(text.indexOf('-') >= 0) $(this).html(text.substr(text.indexOf('-') + 1))
  272. });
  273. })
  274. </script>
  275. </html>