view.html.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <?php
  2. /**
  3. * The detail view file of flow module of ZDOO.
  4. *
  5. * @copyright Copyright 2009-2016 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
  6. * @license 商业软件,非开源软件
  7. * @author Gang Liu <liugang@cnezsoft.com>
  8. * @package flow
  9. * @version $Id$
  10. * @link http://www.zdoo.com
  11. */
  12. ?>
  13. <?php
  14. include 'header.html.php';
  15. include $app->getModuleRoot() . 'common/view/kindeditor.html.php';
  16. $activeTab = $flow->module;
  17. if($currentType)
  18. {
  19. if(isset($linkedDatas[$currentType]))
  20. {
  21. $activeTab = $currentType;
  22. }
  23. else
  24. {
  25. if($currentMode == 'bysearch') $activeTab = 'common';
  26. }
  27. }
  28. $canLink = $this->flow->isClickable($flow->module, 'link', $data);
  29. $sessionName = $flow->module . 'List';
  30. $loadLink = $this->createLink($flow->module, 'link', "dataID=$data->id&linkType=LINKTYPE&mode=MODE");
  31. js::set('moduleName', $flow->module);
  32. js::set('dataID', $data->id);
  33. js::set('linkType', $currentType);
  34. js::set('viewMode', $currentMode);
  35. js::set('loadLink', $loadLink);
  36. ?>
  37. <div id='mainTitle' class='clearfix'>
  38. <div class='btn-toolbar pull-left'>
  39. <?php if(!isonlybody()):?>
  40. <?php echo $this->session->flowList ? baseHTML::a($this->session->flowList, $this->lang->goback, "class='btn btn-back'") : html::backButton();?>
  41. <div class="divider"></div>
  42. <?php endif;?>
  43. <div class="page-title">
  44. <span class="label label-id"><?php echo $data->id;?></span>
  45. <span class="text" title='<?php echo zget($dataPairs, $data->id);?>'><?php echo zget($dataPairs, $data->id);?></span>
  46. </div>
  47. </div>
  48. </div>
  49. <div class='tabs' id='tabsNav'>
  50. <ul class='nav nav-tabs'>
  51. <?php
  52. $attr = $activeTab == $flow->module ? "class='active'" : '';
  53. echo "<li $attr><a href='#{$flow->module}' data-toggle='tab'>{$flow->name}{$lang->flow->detail}</a></li>";
  54. foreach($linkedDatas as $linkType => $datas)
  55. {
  56. $attr = $activeTab == $linkType ? "class='active'" : '';
  57. echo "<li $attr><a href='#{$linkType}' data-toggle='tab'>" . zget($linkPairs, $linkType, '') . '</a></li>';
  58. }
  59. if($canLink)
  60. {
  61. $attr = $activeTab == 'common' ? "class='active'" : "class='hidden'";
  62. $tabTitle = $activeTab == 'common' ? zget($linkPairs, $currentType, '') : $lang->workflowaction->default->actions['link'];
  63. echo "<li $attr><a href='#common' data-toggle='tab'>{$tabTitle}</a></li>";
  64. }
  65. ?>
  66. </ul>
  67. <div class='tab-content'>
  68. <?php $active = $activeTab == $flow->module ? 'active' : '';?>
  69. <div id='<?php echo $flow->module;?>' class='tab-pane <?php echo $active;?> <?php if($canLink) echo 'with-link-button';?>'>
  70. <div class='actions'>
  71. <?php if($canLink) echo baseHTML::a('#linkTypeBox', $lang->workflowaction->default->actions['link'], "class='btn btn-primary' data-toggle='modal'");?>
  72. </div>
  73. <div class='main-row'>
  74. <div class='main-col col-9'>
  75. <div class='panel'>
  76. <div class='panel-body'>
  77. <?php
  78. $children = array();
  79. foreach($fields as $field)
  80. {
  81. if(!$field->show) continue;
  82. if($field->position != 'info') continue;
  83. if(isset($childFields[$field->field]))
  84. {
  85. $children[$field->field] = $field->name;
  86. continue;
  87. }
  88. if($field->control == 'file')
  89. {
  90. $filesName = "{$field->field}files";
  91. if(!empty($data->{$filesName}))
  92. {
  93. echo '<p><strong>' . $field->name . $lang->hyphen . '</strong>' . $this->fetch('file', 'printFiles', array('files' => $data->{$filesName}, 'fieldset' => 'false')) . '</p>';
  94. }
  95. }
  96. else
  97. {
  98. $attr = '';
  99. $relation = zget($relations, $field->field, '');
  100. if($relation && strpos(",$relation->actions,", ',many2one,') === false && strpos(",$relation->actions,", ',many2many,') === false)
  101. {
  102. $prevDataID = isset($data->{$field->field}) ? $data->{$field->field} : 0;
  103. if($prevDataID) $attr = "class='prevP' data-prev='{$relation->prev}' data-next='{$relation->next}' data-action='$flowAction->action' data-field='{$relation->field}' data-dataID='$prevDataID'";
  104. }
  105. echo "<p $attr>";
  106. echo "<strong>" . $field->name . "</strong>";
  107. $fieldValue = '';
  108. if(!empty($data->{$field->field}))
  109. {
  110. if(is_array($data->{$field->field}))
  111. {
  112. foreach($data->{$field->field} as $value) $fieldValue .= $this->flow->processFieldValue($field, $relation, $value) . ' ';
  113. }
  114. else
  115. {
  116. $fieldValue = $this->flow->processFieldValue($field, $relation, $data->{$field->field});
  117. }
  118. }
  119. else
  120. {
  121. if(isset($data->{$field->field}) && $data->{$field->field} === '0') $fieldValue = '0';
  122. }
  123. if($fieldValue !== '') echo ' ' . $lang->hyphen . ' ' . $fieldValue;
  124. echo '</p>';
  125. }
  126. }
  127. ?>
  128. </div>
  129. </div>
  130. <?php foreach($children as $child => $childName):?>
  131. <?php if(empty($childDatas[$child])) continue;?>
  132. <div class='panel panel-block'>
  133. <div class='panel-heading'><strong><?php echo $childName;?></strong></div>
  134. <div class='panel-body scroll'>
  135. <table class='table table-hover table-fixed'>
  136. <thead>
  137. <tr>
  138. <?php foreach($childFields[$child] as $childField):?>
  139. <?php if(!$childField->show) continue;?>
  140. <?php $childWidth = ($childField->width && $childField->width != 'auto' ? $childField->width . 'px' : 'auto');?>
  141. <th style='width: <?php echo $childWidth;?>'><?php echo $childField->name;?></th>
  142. <?php endforeach;?>
  143. </tr>
  144. </thead>
  145. <?php foreach($childDatas[$child] as $childData):?>
  146. <tr>
  147. <?php foreach($childFields[$child] as $childField):?>
  148. <?php if(!$childField->show) continue;?>
  149. <?php
  150. if(strpos(',date,datetime,', ",$childField->control,") !== false)
  151. {
  152. $childValue = formatTime($childData->{$childField->field});
  153. }
  154. else
  155. {
  156. if(is_array($childData->{$childField->field}))
  157. {
  158. $childValues = array();
  159. foreach($childData->{$childField->field} as $value)
  160. {
  161. if(!empty($value)) $childValues[] = zget($childField->options, $value);
  162. }
  163. $childValue = implode(',', $childValues);
  164. }
  165. else
  166. {
  167. $childValue = zget($childField->options, $childData->{$childField->field});
  168. }
  169. }
  170. ?>
  171. <td title='<?php echo $childValue;?>'><?php echo $childValue;?></td>
  172. <?php endforeach;?>
  173. </tr>
  174. <?php endforeach;?>
  175. </table>
  176. </div>
  177. </div>
  178. <?php endforeach;?>
  179. <?php $actions = $this->loadModel('action')->getList($flow->module, $data->id);?>
  180. <div class='cell'><?php include $app->getModuleRoot() . 'common/view/action.html.php';?></div>
  181. <?php echo $this->flow->buildOperateMenu($flow, $data, $type = 'view');?>
  182. </div>
  183. <div class='side-col col-3'>
  184. <?php foreach($processBlocks as $blockKey => $block):?>
  185. <div class='panel panel-block'>
  186. <?php if(empty($block->tabs)):?>
  187. <?php if($block->name):?> <div class='panel-heading'><strong><?php echo $block->name;?></strong></div> <?php endif;?>
  188. <?php else:?>
  189. <div class='panel-heading with-nav-tabs'>
  190. <ul class='nav nav-tabs'>
  191. <?php $index = 1;?>
  192. <?php foreach($block->tabs as $tabKey => $tab):?>
  193. <?php $class = $index == 1 ? "class='active'" : '';?>
  194. <li <?php echo $class;?>><a data-toggle="tab" href="#<?php echo $blockKey . '_' . $tabKey;?>Tab"><?php echo $tab->name;?></a></li>
  195. <?php $index ++;?>
  196. <?php endforeach;?>
  197. </ul>
  198. </div>
  199. <?php endif;?>
  200. <?php if(!empty($block->tabs)):?>
  201. <div class='tab-content'>
  202. <?php $index = 1;?>
  203. <?php foreach($block->tabs as $tabKey => $tab):?>
  204. <?php $blockFields = $tab->fields;?>
  205. <?php $class = $index == 1 ? 'active' : '';?>
  206. <div id="<?php echo $blockKey . '_' . $tabKey;?>Tab" class='<?php echo $class;?> tab-pane panel-body no-padding-top'>
  207. <?php include 'block.html.php';?>
  208. </div>
  209. <?php $index ++;?>
  210. <?php endforeach;?>
  211. </div>
  212. <?php else:?>
  213. <div class='panel-body'>
  214. <?php if(!empty($block->fields)):?>
  215. <?php $blockFields = $block->fields;?>
  216. <?php include 'block.html.php';?>
  217. <?php endif;?>
  218. </div>
  219. <?php endif;?>
  220. </div>
  221. <?php endforeach;?>
  222. </div>
  223. </div>
  224. </div>
  225. <?php include 'linked.html.php';?>
  226. <?php if($canLink):?>
  227. <?php include 'linktype.html.php';?>
  228. <?php $active = $activeTab == 'common' ? 'active' : '';?>
  229. <div id='common' class='tab-pane <?php echo $active;?>'>
  230. <div class='actions'>
  231. <?php echo baseHTML::a('#linkTypeBox', $lang->workflowaction->default->actions['link'], "class='btn btn-primary' data-toggle='modal'");?>
  232. </div>
  233. </div>
  234. <?php endif;?>
  235. </div>
  236. </div>
  237. <?php include 'footer.html.php';?>