create.html.php 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <?php
  2. /**
  3. * The create view of story module of ZenTaoPMS.
  4. *
  5. * @copyright Copyright 2009-2015 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
  6. * @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  7. * @author Chunsheng Wang <chunsheng@cnezsoft.com>
  8. * @package story
  9. * @version $Id: create.html.php 4902 2013-06-26 05:25:58Z wyd621@gmail.com $
  10. * @link http://www.zentao.net
  11. */
  12. ?>
  13. <?php include $this->app->getModuleRoot() . 'common/view/header.html.php';?>
  14. <?php include $this->app->getModuleRoot() . 'common/view/kindeditor.html.php';?>
  15. <?php js::set('page', 'create');?>
  16. <?php js::set('holders', $lang->story->placeholder); ?>
  17. <?php js::set('blockID', $blockID); ?>
  18. <?php js::set('feedbackSource', $config->story->feedbackSource); ?>
  19. <?php js::set('storyType', $type);?>
  20. <?php if(common::checkNotCN()):?>
  21. <style> .sourceTd > .input-group > .input-group > .input-group-addon:first-child{padding: 5px 18px} </style>
  22. <?php endif;?>
  23. <div id="mainContent" class="main-content">
  24. <div class="center-block">
  25. <div class="main-header">
  26. <h2><?php echo $lang->story->create;?></h2>
  27. <?php if(!$this->story->checkForceReview()):?>
  28. <div class="needNotReviewBox">
  29. <div class='checkbox-primary'>
  30. <input id='needNotReview' name='needNotReview' value='1' type='checkbox' class='no-margin' <?php echo $needReview;?>/>
  31. <label for='needNotReview'><?php echo $lang->story->needNotReview;?></label>
  32. </div>
  33. </div>
  34. <?php endif;?>
  35. </div>
  36. <form class="load-indicator main-form form-ajax" method='post' enctype='multipart/form-data' id='dataform'>
  37. <table class="table table-form">
  38. <tbody>
  39. <tr>
  40. <th><?php echo $lang->story->module;?></th>
  41. <td colspan='2'>
  42. <div class='input-group' id='moduleIdBox'>
  43. <?php
  44. echo html::select('module', $moduleOptionMenu, $moduleID, "class='form-control chosen'");
  45. if(count($moduleOptionMenu) == 1)
  46. {
  47. echo "<div class='input-group-addon'>";
  48. echo html::a($this->createLink('tree', 'browse', "rootID=$productID&view=story&currentModuleID=0&branch=$branch", '', true), $lang->tree->manage, '', "class='text-primary' data-toggle='modal' data-type='iframe' data-width='90%'");
  49. echo '&nbsp; ';
  50. echo html::a("javascript:void(0)", $lang->refreshIcon, '', "class='refresh' title='refresh' onclick='loadProductModules($productID)'");
  51. echo '</div>';
  52. }
  53. ?>
  54. </div>
  55. </td>
  56. </tr>
  57. <tr>
  58. <th><?php echo $lang->story->reviewedBy;?></th>
  59. <td colspan='2' id='reviewerBox'>
  60. <div class="table-row">
  61. <?php $required = $this->story->checkForceReview() ? 'required' : '';?>
  62. <?php echo $this->story->checkForceReview() ? '' : html::hidden('needNotReview', 1);?>
  63. <div class="table-col">
  64. <?php echo html::select('reviewer[]', $reviewers, empty($needReview) ? $product->PO : '', "class='form-control picker-select' multiple $required");?>
  65. </div>
  66. </div>
  67. </td>
  68. </tr>
  69. <tr>
  70. <th><?php echo $lang->story->title;?></th>
  71. <td colspan="4">
  72. <div class='table-row'>
  73. <div class='table-col'>
  74. <div class="input-control has-icon-right">
  75. <?php echo html::input('title', $storyTitle, "class='form-control' required");?>
  76. <div class="colorpicker">
  77. <button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar"></span><i class="ic"></i></button>
  78. <ul class="dropdown-menu clearfix">
  79. <li class="heading"><?php echo $lang->story->colorTag;?><i class="icon icon-close"></i></li>
  80. </ul>
  81. <input type="hidden" class="colorpicker" id="color" name="color" value="" data-icon="color" data-wrapper="input-control-icon-right" data-update-color="#title" data-provide="colorpicker">
  82. </div>
  83. </div>
  84. </div>
  85. <div class='table-col w-120px'>
  86. <div class="input-group">
  87. <span class="input-group-addon fix-border br-0"><?php echo $lang->story->pri;?></span>
  88. <?php
  89. $hasCustomPri = false;
  90. foreach($lang->story->priList as $priKey => $priValue)
  91. {
  92. if(!empty($priKey) and (string)$priKey != (string)$priValue)
  93. {
  94. $hasCustomPri = true;
  95. break;
  96. }
  97. }
  98. $priList = $lang->story->priList;
  99. if(end($priList)) unset($priList[0]);
  100. if(!isset($priList[$pri]))
  101. {
  102. reset($priList);
  103. $pri = key($priList);
  104. }
  105. ?>
  106. <?php if($hasCustomPri):?>
  107. <?php echo html::select('pri', (array)$priList, $pri, "class='form-control'");?>
  108. <?php else:?>
  109. <div class="input-group-btn pri-selector" data-type="pri">
  110. <button type="button" class="btn dropdown-toggle br-0" data-toggle="dropdown">
  111. <span class="pri-text"><span class="label-pri label-pri-<?php echo empty($pri) ? '0' : $pri?>" title="<?php echo $pri?>"><?php echo $pri?></span></span> &nbsp;<span class="caret"></span>
  112. </button>
  113. <div class='dropdown-menu pull-right'>
  114. <?php echo html::select('pri', (array)$priList, $pri, "class='form-control' data-provide='labelSelector' data-label-class='label-pri'");?>
  115. </div>
  116. </div>
  117. <?php endif;?>
  118. </div>
  119. </div>
  120. <div class='table-col w-120px'>
  121. <div class="input-group">
  122. <span class="input-group-addon fix-border br-0"><?php echo $lang->story->estimateAB;?></span>
  123. <input type="text" name="estimate" id="estimate" value="<?php echo $estimate;?>" class="form-control" autocomplete="off" placeholder='<?php echo $lang->story->hour;?>' />
  124. </div>
  125. </div>
  126. </div>
  127. </td>
  128. </tr>
  129. <tr>
  130. <th><?php echo $lang->story->spec;?></th>
  131. <td colspan="4">
  132. <?php echo $this->fetch('user', 'ajaxPrintTemplates', 'type=story&link=spec');?>
  133. <?php echo html::textarea('spec', $spec, "rows='9' class='form-control kindeditor disabled-ie-placeholder' hidefocus='true' placeholder='" . htmlSpecialString($lang->noticePasteImg) . "'");?>
  134. </td>
  135. </tr>
  136. <?php $this->printExtendFields('', 'table', 'columns=4');?>
  137. <tr>
  138. <th><?php echo $lang->story->legendAttach;?></th>
  139. <td colspan='4'><?php echo $this->fetch('file', 'buildform');?></td>
  140. </tr>
  141. <tr>
  142. <th><?php echo $lang->story->mailto;?></th>
  143. <td colspan="4">
  144. <div class="input-group">
  145. <?php echo html::select('mailto[]', $users, str_replace(' ' , '', $mailto), "class='form-control picker-select' data-placeholder='{$lang->chooseUsersToMail}' multiple");?>
  146. <?php echo $this->fetch('my', 'buildContactLists');?>
  147. </div>
  148. </td>
  149. </tr>
  150. <tr>
  151. <th><?php echo $lang->story->keywords;?></th>
  152. <td colspan="4">
  153. <?php echo html::input('keywords', $keywords, 'class="form-control"');?>
  154. </td>
  155. </tr>
  156. </tbody>
  157. <tfoot>
  158. <tr>
  159. <td colspan="5" class="text-center form-actions">
  160. <?php echo html::hidden('type', $type);?>
  161. <?php echo html::hidden('product', $productID);?>
  162. <?php echo html::hidden('plan', $planID);?>
  163. <?php echo html::hidden('vision', 'lite');?>
  164. <?php echo html::commonButton($lang->save, "id='saveButton'", 'btn btn-primary btn-wide');?>
  165. <?php echo html::commonButton($lang->story->saveDraft, "id='saveDraftButton'", 'btn btn-secondary btn-wide');?>
  166. <?php echo html::backButton();?>
  167. </td>
  168. </tr>
  169. </tfoot>
  170. </table>
  171. </form>
  172. </div>
  173. </div>
  174. <?php js::set('executionID', $objectID);?>
  175. <?php js::set('storyModule', $lang->story->module);?>
  176. <?php js::set('storyType', $type);?>
  177. <script>
  178. $(function(){parent.$('body.hide-modal-close').removeClass('hide-modal-close');})
  179. function loadProductModules(productID)
  180. {
  181. var branch = 0;
  182. var currentModule = 0;
  183. var moduleLink = createLink('tree', 'ajaxGetOptionMenu', 'productID=' + productID + '&viewtype=story&branch=' + branch + '&rootModuleID=0&returnType=html&fieldID=&needManage=true&extra=&currentModuleID=' + currentModule);
  184. var $moduleIDBox = $('#moduleIdBox');
  185. $moduleIDBox.load(moduleLink, function()
  186. {
  187. $moduleIDBox.find('#module').chosen();
  188. });
  189. }
  190. </script>
  191. <?php include $this->app->getModuleRoot() . '/common/view/footer.html.php';?>