showimport.html.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. <?php include $app->getModuleRoot() . 'common/view/header.html.php';?>
  2. <?php
  3. $requiredFields = $datas->requiredFields;
  4. $allCount = $datas->allCount;
  5. $allPager = $datas->allPager;
  6. $pagerID = $datas->pagerID;
  7. $isEndPage = $datas->isEndPage;
  8. $maxImport = $datas->maxImport;
  9. $dataInsert = $datas->dataInsert;
  10. $fields = $datas->fields;
  11. $suhosinInfo = $datas->suhosinInfo;
  12. $model = $datas->model;
  13. $datas = $datas->datas;
  14. ?>
  15. <style>
  16. form{overflow-x: scroll}
  17. thead > tr > th{width:150px;}
  18. .c-estimate {width:150px;}
  19. .c-story{width:150px;}
  20. .c-step{width:400px;}
  21. .c-pri,.c-stage{width:150px}
  22. .c-precondition{width:200px;}
  23. </style>
  24. <?php if(!empty($suhosinInfo)):?>
  25. <div class='alert alert-info'><?php echo $suhosinInfo?></div>
  26. <?php elseif(empty($maxImport) and $allCount > $this->config->file->maxImport):?>
  27. <div id="mainContent" class="main-content">
  28. <div class="main-header">
  29. <h2><?php echo $lang->transfer->import;?></h2>
  30. </div>
  31. <p><?php echo sprintf($lang->file->importSummary, $allCount, html::input('maxImport', $config->file->maxImport, "style='width:50px'"), ceil($allCount / $config->file->maxImport));?></p>
  32. <p><?php echo html::commonButton($lang->import, "id='import'", 'btn btn-primary');?></p>
  33. </div>
  34. <script>
  35. $(function()
  36. {
  37. $('#maxImport').keyup(function()
  38. {
  39. if(parseInt($('#maxImport').val())) $('#times').html(Math.ceil(parseInt($('#allCount').html()) / parseInt($('#maxImport').val())));
  40. });
  41. $('#import').click(function()
  42. {
  43. $.cookie('maxImport', $('#maxImport').val());
  44. location.href = createLink('caselib', 'showImport', "libID=<?php echo $libID;?>&pageID=1&maxImport=" + $('#maxImport').val())
  45. });
  46. });
  47. </script>
  48. <?php else:?>
  49. <?php js::set('requiredFields', $requiredFields);?>
  50. <div id="mainContent" class="main-content">
  51. <div class="main-header clearfix">
  52. <h2><?php echo $lang->transfer->import;?></h2>
  53. </div>
  54. <form class='main-form' target='hiddenwin' method='post'>
  55. <table class='table table-form' id='showData'>
  56. <thead>
  57. <tr>
  58. <th class='w-70px'> <?php echo $lang->transfer->id?></th>
  59. <?php foreach($fields as $key => $value):?>
  60. <?php if($key == 'stepDesc' or $key == 'stepExpect'):?>
  61. <?php if($key == 'stepExpect') continue;?>
  62. <th class='c-step'>
  63. <table class='w-p100 table-borderless'>
  64. <tr>
  65. <th class="no-padding"><?php echo $fields['stepDesc']['title']?></th>
  66. <th class="no-padding"><?php echo $fields['stepExpect']['title']?></th>
  67. </tr>
  68. </table>
  69. </th>
  70. <?php elseif($value['control'] != 'hidden'):?>
  71. <th class='c-<?php echo $key?>' id='<?php echo $key;?>'> <?php echo $value['title'];?></th>
  72. <?php endif;?>
  73. <?php endforeach;?>
  74. <?php
  75. if(!empty($appendFields))
  76. {
  77. foreach($appendFields as $field)
  78. {
  79. if(!$field->show) continue;
  80. $width = ($field->width && $field->width != 'auto' ? $field->width . 'px' : 'auto');
  81. $required = strpos(",$field->rules,", ",$notEmptyRule->id,") !== false ? 'required' : '';
  82. echo "<th class='$required' style='width: $width'>$field->name</th>";
  83. }
  84. }
  85. ?>
  86. </tr>
  87. </thead>
  88. <tbody>
  89. <?php
  90. $insert = true;
  91. $addID = 1;
  92. $hasMultiple = false;
  93. ?>
  94. <?php foreach($datas as $key => $object):?>
  95. <tr class='text-top'>
  96. <td>
  97. <?php
  98. if(!empty($object->id))
  99. {
  100. echo $object->id . html::hidden("id[$key]", $object->id);
  101. $insert = false;
  102. }
  103. else
  104. {
  105. $sub = (strpos($object->title, '>') === 0) ? " <sub style='vertical-align:sub;color:red'>{$lang->transfer->children}</sub>" : " <sub style='vertical-align:sub;color:gray'>{$lang->transfer->new}</sub>";
  106. echo $addID++ . $sub;
  107. }
  108. echo html::hidden("lib[$key]", $libID);
  109. ?>
  110. </td>
  111. <?php foreach($fields as $field => $value):?>
  112. <?php if($value['control'] == 'select'):?>
  113. <td><?php echo html::select("{$field}[$key]", $value['values'], !empty($object->$field) ? $object->$field : '', "class='form-control chosen'")?></td>
  114. <?php elseif($value['control'] == 'multiple'):?>
  115. <?php if(!isset($value['values'][''])) $value['values'][''] = '';?>
  116. <td><?php echo html::select("{$field}[$key][]", $value['values'], !empty($object->$field) ? $object->$field : '', "multiple class='form-control chosen'")?></td>
  117. <?php elseif($value['control'] == 'date'):?>
  118. <?php $dateMatch = $this->config->transfer->dateMatch;?>
  119. <?php if(!preg_match($dateMatch, $object->$field)) $object->$field = ''; ?>
  120. <td><?php echo html::input("{$field}[$key]", !empty($object->$field) ? $object->$field : '', "class='form-control form-date autocomplete='off'")?></td>
  121. <?php elseif($value['control'] == 'datetime'):?>
  122. <td><?php echo html::input("{$field}[$key]", !empty($object->$field) ? $object->$field : '', "class='form-control form-datetime autocomplete='off'")?></td>
  123. <?php elseif($value['control'] == 'hidden'):?>
  124. <?php echo html::hidden("{$field}[$key]", $object->$field)?>
  125. <?php elseif($value['control'] == 'textarea'):?>
  126. <td><?php echo html::textarea("{$field}[$key]", $object->$field, "class='form-control' cols='50' rows='1'")?></td>
  127. <?php elseif($field == 'stepDesc' or $field == 'stepExpect'):?>
  128. <?php if($field == 'stepExpect') continue;?>
  129. <td>
  130. <?php if(isset($stepData[$key]['desc'])):?>
  131. <table class='w-p100 bd-0'>
  132. <?php $hasStep = false;?>
  133. <?php foreach($stepData[$key]['desc'] as $id => $desc):?>
  134. <?php if(empty($desc['content'])) continue;?>
  135. <tr class='step'>
  136. <?php $hasStep = true;?>
  137. <td><?php echo $id . html::hidden("stepType[$key][$id]", $desc['type'])?></td>
  138. <td><?php echo html::textarea("desc[$key][$id]", htmlSpecialString($desc['content']), "class='form-control'")?></td>
  139. <td><?php if($desc['type'] != 'group') echo html::textarea("expect[$key][$id]", isset($stepData[$key]['expect'][$id]['content']) ? htmlSpecialString($stepData[$key]['expect'][$id]['content']) : '', "class='form-control'")?></td>
  140. </tr>
  141. <?php endforeach;?>
  142. <?php if(!$hasStep):?>
  143. <tr class='step'>
  144. <td><?php echo '1' . html::hidden("stepType[$key][1]", 'step')?></td>
  145. <td><?php echo html::textarea("desc[$key][1]", '', "class='form-control'")?></td>
  146. <td><?php echo html::textarea("expect[$key][1]", '', "class='form-control'")?></td>
  147. </tr>
  148. <?php endif;?>
  149. </table>
  150. <?php else:?>
  151. <table class='w-p100 bd-0'>
  152. <tr class='step'>
  153. <td><?php echo '1' . html::hidden("stepType[$key][1]", 'step')?></td>
  154. <td><?php echo html::textarea("desc[$key][1]", '', "class='form-control'")?></td>
  155. <td><?php echo html::textarea("expect[$key][1]", '', "class='form-control'")?></td>
  156. </tr>
  157. </table>
  158. <?php endif;?>
  159. </td>
  160. <?php else:?>
  161. <td><?php echo html::input("{$field}[$key]", !empty($object->$field) ? $object->$field : '', "class='form-control autocomplete='off'")?></td>
  162. <?php endif;?>
  163. <?php endforeach;?>
  164. <?php
  165. if(!empty($appendFields))
  166. {
  167. $this->loadModel('flow');
  168. foreach($appendFields as $field)
  169. {
  170. if(!$field->show) continue;
  171. $value = $field->defaultValue ? $field->defaultValue : zget($datas, $field->field, '');
  172. echo '<td>' . $this->flow->buildControl($field, $value, "$field->field[$key]", true) . '</td>';
  173. }
  174. }
  175. ?>
  176. </tr>
  177. <?php endforeach;?>
  178. </tbody>
  179. <tfoot>
  180. <tr>
  181. <td colspan='10' class='text-center form-actions'>
  182. <?php
  183. $submitText = $isEndPage ? $this->lang->save : $this->lang->file->saveAndNext;
  184. $isStartPage = $pagerID == 1 ? true : false;
  185. if(!$insert and $dataInsert === '')
  186. {
  187. echo "<button type='button' data-toggle='modal' data-target='#importNoticeModal' class='btn btn-primary btn-wide'>{$submitText}</button>";
  188. }
  189. else
  190. {
  191. echo html::submitButton($submitText);
  192. if($dataInsert !== '') echo html::hidden('insert', $dataInsert);
  193. }
  194. echo html::hidden('isEndPage', $isEndPage ? 1 : 0);
  195. echo html::hidden('pagerID', $pagerID);
  196. echo ' &nbsp; ' . html::a("javascript:history.back(-1)", $lang->goback, '', "class='btn btn-back btn-wide'");
  197. echo ' &nbsp; ' . sprintf($lang->file->importPager, $allCount, $pagerID, $allPager);
  198. ?>
  199. </td>
  200. </tr>
  201. </tfoot>
  202. </table>
  203. <?php if(!$insert and $dataInsert === '') include $app->getModuleRoot() . 'common/view/noticeimport.html.php';?>
  204. </form>
  205. </div>
  206. <?php endif;?>
  207. <script>
  208. $(function()
  209. {
  210. $.fixedTableHead('#showData');
  211. <?php if($hasMultiple):?>
  212. $('th.estimate').addClass('text-center w-250px');
  213. <?php endif;?>
  214. $("#showData th").each(function()
  215. {
  216. if(requiredFields.indexOf(this.id) !== -1) $("#" + this.id).addClass('required');
  217. });
  218. });
  219. </script>
  220. <?php include $app->getModuleRoot() . 'common/view/footer.html.php';?>