ui.html.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. <?php
  2. /**
  3. * The ui view file of workflow module of ZDOO.
  4. *
  5. * @copyright Copyright 2009-2020 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
  6. * @license 商业软件,非开源软件
  7. * @author Hao Sun <sunhao@cnezsoft.com>
  8. * @package workflow
  9. * @version $Id$
  10. * @link http://www.zdoo.com
  11. */
  12. ?>
  13. <?php include 'header.html.php';?>
  14. <?php include '../../common/view/picker.html.php';?>
  15. <?php
  16. switch($currentAction->action)
  17. {
  18. case 'browse':
  19. $uiMode = 'browse';
  20. break;
  21. case 'batchassign':
  22. case 'batchcreate':
  23. case 'batchedit':
  24. $uiMode = 'batchForm';
  25. break;
  26. case 'view':
  27. $uiMode = 'view';
  28. break;
  29. default:
  30. $uiMode = 'form';
  31. break;
  32. }
  33. ?>
  34. <div id='editorPages' class='toolbox cell'>
  35. <?php
  36. $btnHtmlList = array();
  37. $createBtnHtml = '';
  38. $editBtnHtml = '';
  39. $browseBtnHtml = '';
  40. foreach ($actions as $action)
  41. {
  42. $btnClass = $action->action == $currentAction->action ? 'btn-secondary' : 'btn-gray';
  43. $btnHtml = baseHTML::a(inlink('ui', "module={$flow->module}&action={$action->action}&groupID={$groupID}"), $action->name, "class='btn $btnClass'");
  44. if($action->action === 'create') $createBtnHtml = $btnHtml;
  45. elseif($action->action === 'edit') $editBtnHtml = $btnHtml;
  46. elseif($action->action === 'browse') $browseBtnHtml = $btnHtml;
  47. else $btnHtmlList[] = $btnHtml;
  48. }
  49. array_unshift($btnHtmlList, $createBtnHtml, $editBtnHtml, $browseBtnHtml);
  50. echo implode('', $btnHtmlList);
  51. ?>
  52. </div>
  53. <div class='main-row auto-height columns auto-fade-in fade' id='editor' data-offset='60' data-mode='<?php echo $uiMode; ?>'>
  54. <div class='side-col column w-200px'>
  55. <div class='cell'>
  56. <div class='cell-header'>
  57. <span><?php echo $lang->workfloweditor->selectField; ?></span>
  58. </div>
  59. <div class='cell-body' id='editorControls'>
  60. <ul id='editorControlsNav'>
  61. <li class='active'><a class='btn' data-tab href='#editorControlsList'><?php echo $lang->workfloweditor->uiControls; ?></a></li>
  62. <li><a class='btn' data-tab href='#editorShowedFields'><?php echo $lang->workfloweditor->showedFields; ?></a></li>
  63. </ul>
  64. <div class='tab-content'>
  65. <div class='tab-pane active' id='editorControlsList'>
  66. <?php unset($lang->workflowfield->controlTypeList['label']);?>
  67. <?php foreach ($lang->workflowfield->controlTypeList as $key => $name): ?>
  68. <button type='button' class='btn btn-field-control' data-type='<?php echo $key; ?>'><?php echo $name; ?></button>
  69. <?php endforeach; ?>
  70. </div>
  71. <div class='tab-pane' id='editorShowedFields'>
  72. <?php foreach ($fields as $field): ?>
  73. <?php if($field->show != '0') continue; ?>
  74. <button type='button' class='btn btn-field-control' data-field='<?php echo $field->field; ?>'><?php echo $field->name; ?></button>
  75. <?php endforeach; ?>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. <div class='main-col column'>
  82. <div class='cell'>
  83. <div class='cell-header'>
  84. <span><?php echo $lang->workfloweditor->uiPreview; ?></span>
  85. </div>
  86. <div class='cell-body' id='editorPreview'>
  87. <?php if($uiMode == 'form'): ?>
  88. <div id='uiPreviewWrapper'>
  89. <div id='uiPreview' data-drop-tip='<?php echo $lang->workfloweditor->dragDropTip; ?>'></div>
  90. <div id='uiPreviewBottom'>
  91. </div>
  92. </div>
  93. <?php elseif($uiMode == 'view'): ?>
  94. <div id='uiViewWrapper'>
  95. <div class="row">
  96. <div class="col col-xs-7">
  97. <div class='panel panel-block view-panel view-panel-info'>
  98. <div class='panel-heading'><strong><?php echo $lang->workflowlayout->positionList['view']['info'];?></strong></div>
  99. <div class='panel-body view-dropbox' data-position='info' id='uiInfoViewPreview' data-drop-tip='<?php echo $lang->workfloweditor->dragDropTip; ?>'>
  100. </div>
  101. </div>
  102. <div class='panel panel-block histories'>
  103. <div class='panel-heading'>
  104. <strong class='title'><?php echo $lang->history?></strong>
  105. <button type='button' class='btn btn-mini only-icon btn-reverse' title='<?php echo $lang->reverse;?>'><i class='icon icon-arrow-up'></i></button>
  106. <button type='button' class='btn btn-mini only-icon btn-expand-all' title='<?php echo $lang->switchDisplay;?>'><i class='icon icon-plus'></i></button>
  107. </div>
  108. <div class='panel-body'>
  109. <ol class='histories-list'>
  110. <li><?php echo str_replace(array('$date', '$actor'), array(date(DT_DATETIME1), $this->app->user->realname), $lang->action->desc->created);?></li>
  111. </ol>
  112. </div>
  113. </div>
  114. </div>
  115. <div class="col col-xs-5">
  116. <div class='panel panel-block view-panel view-panel-basic'>
  117. <div class='panel-heading'><strong><?php echo $lang->workflowlayout->positionList['view']['basic'];?></strong></div>
  118. <div class='panel-body view-dropbox' data-position='basic' id='uiBasicViewPreview' data-drop-tip='<?php echo $lang->workfloweditor->dragDropTip; ?>'>
  119. </div>
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. <?php else: ?>
  125. <div id='uiListPreview'>
  126. <?php if($uiMode != 'batchForm'): ?>
  127. <header>
  128. <ul class='nav nav-default'>
  129. <li class='active'><a><?php echo $lang->workfloweditor->labelAll; ?></a></li>
  130. </ul>
  131. <div class='actions'>
  132. <button type='button' class='btn btn-primary'><i class='icon icon-plus'></i> <?php echo $lang->create; ?></button>
  133. </div>
  134. </header>
  135. <?php endif; ?>
  136. <div id='uiListTable' data-drop-tip='<?php echo $lang->workfloweditor->dragDropTip; ?>'>
  137. <div id='uiListHeader'>
  138. </div>
  139. <div id='uiListBody'>
  140. <div id='uiListPreviewItems' class='clearfix'></div>
  141. </div>
  142. <?php if($uiMode != 'batchForm'): ?>
  143. <div id='uiListFooter'>
  144. <div class="checkbox-primary check-all"><label><?php echo $lang->selectAll; ?></label></div>
  145. <div class='actions'>
  146. <button type='button' class='btn'><?php echo $lang->edit; ?></button>
  147. </div>
  148. <ul class='pager' data-ride='pager' data-page='1' data-rec-total='99' data-elements='total_text,page_size_text,page_of_total_text,first,prev,next,last'></ul>
  149. </div>
  150. <?php endif; ?>
  151. </div>
  152. </div>
  153. <?php endif; ?>
  154. </div>
  155. </div>
  156. </div>
  157. <div class='side-col column w-260px'>
  158. <div class='cell'>
  159. <div class='cell-header'>
  160. <span><?php echo $lang->workfloweditor->fieldProperties; ?></span>
  161. </div>
  162. <div class='cell-body'>
  163. <div id='filedEditForm'>
  164. <div class='form-group required show-for-file' id='fieldEditName'>
  165. <label for='fieldName'><?php echo $lang->workflowfield->name; ?></label>
  166. <input type='text' id='fieldName' name='name' class='form-control'>
  167. <div class='help-block' id='fieldNameMessage'></div>
  168. </div>
  169. <div class='form-group required hide-in-buildin show-for-file' id='fieldEditField'>
  170. <label for='fieldField'><?php echo $lang->workflowfield->field; ?></label>
  171. <input type='text' id='fieldField' name='field' class='form-control' placeholder='<?php echo $lang->workflowfield->placeholder->code; ?>'>
  172. <div class='help-block' id='fieldFieldMessage'></div>
  173. </div>
  174. <div class='form-group hide-in-buildin show-for-file' id='fieldEditControl'>
  175. <label for='fieldControl'><?php echo $lang->workflowfield->control; ?></label>
  176. <select id='fieldControl' name='control' class='form-control'>
  177. <?php foreach($lang->workflowfield->controlTypeList as $control => $name):?>
  178. <option value='<?php echo $control; ?>'><?php echo $name; ?></option>
  179. <?php endforeach;?>
  180. </select>
  181. </div>
  182. <div class='form-group required hide-in-buildin' id='fieldEditType'>
  183. <label for='fieldType'><?php echo $lang->workflowfield->type; ?></label>
  184. <div class='input-group'>
  185. <select id='fieldType' name='type' class='form-control'>
  186. <?php
  187. foreach($config->workflowfield->typeList as $type => $typeList)
  188. {
  189. foreach($typeList as $key => $value)
  190. {
  191. $selected = $key == 'varchar' ? "selected='selected'" : '';
  192. echo "<option class='{$type}' value='{$key}' {$selected}>{$value}</option>";
  193. }
  194. }
  195. ?>
  196. </select>
  197. <span class='input-group-addon'><?php echo $lang->workflowfield->length;?></span>
  198. <input type='number' id='fieldLength' min='1' name='length' class='form-control w-70px'>
  199. </div>
  200. <div id='decimalDigitsGroup'>
  201. <div class='input-group'>
  202. <span class='input-group-addon digits'><?php echo $lang->workflowfield->integerDigits;?></span>
  203. <?php echo html::number('integerDigits', 10, "max='{$config->workflowfield->max->integerDigits}' min='{$config->workflowfield->min->integerDigits}' step='1' class='form-control digits' placeholder='{$lang->workflowfield->placeholder->integerDigits}' title='{$lang->workflowfield->placeholder->integerDigits}'");?>
  204. <span class='input-group-addon digits'><?php echo $lang->workflowfield->decimalDigits;?></span>
  205. <?php echo html::number('decimalDigits', 2, "max='{$config->workflowfield->max->decimalDigits}' min='{$config->workflowfield->min->decimalDigits}' step='1' class='form-control digits' placeholder='{$lang->workflowfield->placeholder->decimalDigits}' title='{$lang->workflowfield->placeholder->decimalDigits}'");?>
  206. </div>
  207. </div>
  208. <div id='fieldTypeTip' class='help-block text-warning hidden'></div>
  209. <div class='help-block text-danger' id='fieldLengthMessage'></div>
  210. </div>
  211. <?php if($uiMode == 'browse' || $uiMode == 'batchForm'): ?>
  212. <div class='form-group' id='widthEditControl'>
  213. <label for='fieldWidth'><?php echo $lang->workflowlayout->width; ?></label>
  214. <input type='text' id='fieldWidth' name='width' class='form-control' placeholder=''>
  215. <div class='help-block text-danger' id='fieldWidthMessage'></div>
  216. </div>
  217. <?php endif; ?>
  218. <?php if($uiMode == 'browse' || $uiMode == 'batchForm' || $uiMode == 'view' || $uiMode == 'edit'): ?>
  219. <div class='form-group' id='positionEditControl'>
  220. <label for='fieldPosition'><?php echo $lang->workflowlayout->position; ?></label>
  221. <select id='fieldPosition' name='position' class='form-control'>
  222. <?php foreach($lang->workflowlayout->positionList[$uiMode == 'batchForm' ? 'browse' : $uiMode] as $position => $positionName):?>
  223. <option value='<?php echo $position; ?>'><?php echo $positionName; ?></option>
  224. <?php endforeach;?>
  225. </select>
  226. </div>
  227. <?php endif; ?>
  228. <div class='form-group hide-in-buildin' id='fieldEditOptionType'>
  229. <label for='fieldOptionType'><?php echo $lang->workflowfield->datasource; ?></label>
  230. <select id='fieldOptionType' name='optionType' class='form-control'>
  231. <?php foreach($datasources as $sourceType => $name):?>
  232. <option value='<?php echo $sourceType; ?>'><?php echo $name; ?></option>
  233. <?php endforeach;?>
  234. </select>
  235. <div id='fieldEditOptions'>
  236. <div id='fieldEditOptionsList'></div>
  237. <button id='addFieldOptionBtn' type='button' class='btn btn-link btn-sm hidden'><i class='icon icon-plus'></i> <?php echo $lang->workfloweditor->addFieldOption; ?></button>
  238. <div class='help-block text-danger' id='fieldOptionsMessage'></div>
  239. </div>
  240. </div>
  241. <div class='form-group' id='fieldEditSql'>
  242. <label for='fieldSql'><?php echo $lang->workflowfield->sql;?></label>
  243. <textarea name='sql' id='fieldSql' cols='30' rows='3' class='form-control' placeholder='<?php echo $lang->workflowfield->placeholder->sql; ?>'></textarea>
  244. </div>
  245. <div class='form-group hide-in-buildin' id='fieldEditDefaultValue'>
  246. <label for='fieldDefaultValue'><?php echo $lang->workflowfield->defaultValue; ?></label>
  247. <input type='text' id='fieldDefaultValue' name='defaultValue' class='form-control' placeholder='<?php echo $lang->workflowfield->placeholder->defaultValue; ?>'>
  248. <div class='help-block text-danger' id='fieldDefaultValueMessage'></div>
  249. </div>
  250. <div class='form-group hide-in-buildin show-for-file' id='fieldEditRules'>
  251. <label for='fieldRules'><?php echo $lang->workflowfield->rules; ?></label>
  252. <select id='fieldRules' name='layoutRules' class='form-control chosen' multiple data-drop_direction='top'>
  253. <?php foreach($rules as $rule => $name):?>
  254. <option value='<?php echo $rule; ?>'><?php echo $name; ?></option>
  255. <?php endforeach;?>
  256. </select>
  257. </div>
  258. </div>
  259. <div id='filedEditTip' class='text-muted'><?php echo $lang->workfloweditor->selectFieldToEditTip; ?></div>
  260. </div>
  261. </div>
  262. </div>
  263. </div>
  264. <?php js::set('currentDate', date('Y-m-d'));?>
  265. <?php js::set('currentTime', date('Y-m-d H:i:s'));?>
  266. <?php js::set('currentTimeLang', $lang->workflow->currentTime);?>
  267. <?php js::set('fieldDefault', $config->workflowfield->default);?>
  268. <?php js::set('fieldMax', $config->workflowfield->max);?>
  269. <?php js::set('fieldMin', $config->workflowfield->min);?>
  270. <?php js::set('tips', $lang->workflowfield->tips);?>
  271. <?php js::set('fields', array_values($fields)); ?>
  272. <?php js::set('defaultFields', $lang->workflowfield->default->fields); ?>
  273. <?php js::set('keyValueList', $lang->workflowfield->keyValueList); ?>
  274. <?php js::set('custom', $lang->workflow->custom); ?>
  275. <?php js::set('controlTypeList', $lang->workflowfield->controlTypeList); ?>
  276. <?php js::set('flowModule', $flow->module); ?>
  277. <?php js::set('flowBelong', $flow->belong); ?>
  278. <?php js::set('uiMode', $uiMode); ?>
  279. <?php js::set('action', $currentAction->action); ?>
  280. <?php js::set('langOptionCode', $lang->workflowfield->placeholder->optionCode); ?>
  281. <?php js::set('validateMessages', $lang->workfloweditor->validateMessages); ?>
  282. <?php js::set('leavePageTip', $lang->workfloweditor->leavePageTip); ?>
  283. <?php js::set('notEmptyRule', $notEmptyRule->id);?>
  284. <?php js::set('langAddFile', $lang->workfloweditor->addFile);?>
  285. <?php js::set('multiDefaultPlaceholder', $lang->workflowfield->placeholder->defaultValue);?>
  286. <?php js::set('groupID', $groupID);?>
  287. <?php include $app->getModuleRoot() . 'common/view/footer.html.php';?>