zentaopms/extension/max/user/ext/view/showimport.html.php
2023-05-16 10:50:42 +08:00

254 lines
12 KiB
PHP

<?php
/**
* The batch create view of user module of ZenTaoPMS.
*
* @copyright Copyright 2009-2022 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
* @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
* @author Gang Zeng
* @package user
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include $app->getModuleRoot() . 'common/view/header.html.php';?>
<?php if(empty($maxImport) and $allCount > $this->config->file->maxImport):?>
<div id="mainContent" class="main-content">
<div class="main-header">
<h2><?php echo $lang->user->batchImport;?></h2>
</div>
<p><?php echo sprintf($lang->file->importSummary, $allCount, html::input('maxImport', $config->file->maxImport, "style='width:50px'"), ceil($allCount / $config->file->maxImport));?></p>
<p><?php echo html::commonButton($lang->import, "id='import'", 'btn btn-primary');?></p>
</div>
<script>
$(function()
{
$('#maxImport').keyup(function()
{
if(parseInt($('#maxImport').val())) $('#times').html(Math.ceil(parseInt($('#allCount').html()) / parseInt($('#maxImport').val())));
});
$('#import').click(function(){location.href = createLink('user', 'showImport', "pageID=1&maxImport=" + $('#maxImport').val())})
});
</script>
<?php else:?>
<?php js::import($jsRoot . 'md5.js');?>
<?php js::set('roleGroup', $roleGroup);?>
<div id="mainContent" class="main-content">
<div class="main-header">
<h2><?php echo $lang->user->batchImport;?></h2>
<?php if($userAddWarning):?>
<div class="text-danger" style="float:left;line-height:35px;"><?php echo $userAddWarning;?></div>
<?php endif;?>
</div>
<?php
$visibleFields = array();
$requiredFields = array();
foreach(explode(',', $showFields) as $field)
{
if(strpos(",{$config->user->availableBatchCreateFields},", ",{$field},") === false) continue;
if($field) $visibleFields[$field] = '';
}
foreach(explode(',', $config->user->create->requiredFields) as $field)
{
if($field)
{
$requiredFields[$field] = '';
if(strpos(",{$config->user->availableBatchCreateFields},", ",{$field},") !== false) $visibleFields[$field] = '';
}
}
$minWidth = (count($visibleFields) > 3) ? 'w-150px' : '';
$showVisionList = count($visionList) > 1;
?>
<form method='post' class='load-indicator main-form' enctype='multipart/form-data' target='hiddenwin' id="batchCreateForm">
<div class="table-responsive">
<table class="table table-form">
<thead>
<tr class='text-center'>
<th class='c-id'><?php echo $lang->idAB;?></th>
<th class='c-dept<?php echo zget($visibleFields, 'dept', ' hidden') . zget($requiredFields, 'dept', '', ' required');?>'> <?php echo $lang->user->dept;?></th>
<th class='accountThWidth required'><?php echo $lang->user->account;?></th>
<th class='c-realname required'><?php echo $lang->user->realname;?></th>
<?php if($showVisionList):?>
<th class='c-visions required'><?php echo $lang->user->visions;?></th>
<?php endif;?>
<th class='c-role<?php echo zget($requiredFields, 'role', '', ' required')?>'><?php echo $lang->user->role;?></th>
<th class='c-type'><?php echo $lang->user->type;?></th>
<th class='c-group'><?php echo $lang->user->group;?></th>
<th class='<?php echo zget($visibleFields, 'email', "$minWidth hidden", $minWidth) . zget($requiredFields, 'email', '', ' required')?>'><?php echo $lang->user->email;?></th>
<th class='genderThWidth<?php echo zget($visibleFields, 'gender', ' hidden')?>'><?php echo $lang->user->gender;?></th>
<th class="<?php echo $minWidth;?> required"><?php echo $lang->user->password;?></th>
<th class='c-join'><?php echo $lang->user->join;?></th>
<th class='c-contact'><?php echo $lang->user->qq;?></th>
<th class='c-contact'><?php echo $lang->user->weixin;?></th>
<th class='c-contact'><?php echo $lang->user->mobile;?></th>
<th class='c-contact'><?php echo $lang->user->phone;?></th>
<th class='c-contact'><?php echo $lang->user->address;?></th>
</tr>
</thead>
<tbody>
<?php $insert = true;?>
<?php $depts = $depts + array('ditto' => $lang->user->ditto)?>
<?php $lang->user->roleList = $lang->user->roleList + array('ditto' => $lang->user->ditto)?>
<?php $groupList = $groupList + array('ditto' => $lang->user->ditto);?>
<?php $visionList = $visionList + array('ditto' => $lang->user->ditto);?>
<?php $i = 1;?>
<?php foreach($userData as $key => $user):?>
<?php
if(empty($user->dept)) $user->dept = 0;
if(empty($user->account)) $user->account = '';
if(empty($user->realname)) $user->realname = '';
if(empty($user->role)) $user->role = '';
if(empty($user->email)) $user->email = '';
if(empty($user->join)) $user->join = '';
if(empty($user->qq)) $user->qq = '';
if(empty($user->weixin)) $user->weixin = '';
if(empty($user->mobile)) $user->mobile = '';
if(empty($user->phone)) $user->phone = '';
if(empty($user->address)) $user->address = '';
?>
<tr class='text-center'>
<td><?php echo $i;?></td>
<td class='text-left' style='overflow:visible'><?php echo html::select("dept[$i]", $depts,($i > 1 and !$user->dept) ? 'ditto' : $user->dept, "class='form-control chosen'");?></td>
<td><?php echo html::input("account[$i]", $user->account, "class='form-control account_$i' onchange='changeEmail($i)'");?></td>
<td><?php echo html::input("realname[$i]", $user->realname, "class='form-control'");?></td>
<?php if($showVisionList):?>
<td class='text-left' style='overflow:visible'>
<?php echo html::select("visions[$i][]", $visionList, $i > 1 ? 'ditto' : (isset($visionList[$this->config->vision]) ? $this->config->vision : key($visionList)), "class='form-control chosen' multiple");?>
</td>
<?php else:?>
<?php echo html::hidden("visions[$i][]", $this->config->vision);?>
<?php endif;?>
<td><?php echo html::select("role[$i]", $lang->user->roleList, ($i > 1 and !$user->role) ? 'ditto' : $user->role, "class='form-control' onchange='changeGroup(this.value, $i)'");?></td>
<td><?php echo html::select("type[$i]", array('inside' => $lang->user->inside, 'outside' => $lang->user->outside), $user->type, "class='form-control'");?></td>
<td class='text-left' style='overflow:visible'><?php echo html::select("group[$i][]", $groupList, $i > 1 ? 'ditto' : '', "class='form-control chosen' multiple");?></td>
<td><?php echo html::input("email[$i]", $user->email, "class='form-control email_$i' onchange='setDefaultEmail($i)'");?></td>
<td><?php echo html::radio("gender[$i]", (array)$lang->user->genderList, !empty($user->gender) ? $user->gender : 'm');?></td>
<td align='left'>
<div class='input-group'>
<?php
echo html::input("password[$i]", '', "class='form-control' onkeyup='toggleCheck(this, $i)' oninput=\"this.value = this.value.replace(/[^\\x00-\\xff]/g, '');\"");
echo "<span class='input-group-addon passwordStrength'></span>";
if($i != 1) echo "<span class='input-group-addon passwordBox'><input type='checkbox' name='ditto[$i]' id='ditto$i' " . ($i > 1 ? "checked" : '') . " /> {$lang->user->ditto}</span>";
?>
</div>
</td>
<td><?php echo html::input("join[$i]", $user->join, "class='form-control form-date'");?></td>
<td><?php echo html::input("qq[$i]", $user->qq, "class='form-control'");?></td>
<td><?php echo html::input("weixin[$i]", $user->weixin, "class='form-control'");?></td>
<td><?php echo html::input("mobile[$i]", $user->mobile, "class='form-control'");?></td>
<td><?php echo html::input("phone[$i]", $user->phone, "class='form-control'");?></td>
<td><?php echo html::input("address[$i]", $user->address, "class='form-control'");?></td>
</tr>
<?php $i ++;?>
<?php endforeach;?>
<tr>
<th colspan='2'><?php echo $lang->user->verifyPassword?></th>
<td colspan='3'>
<div class="required required-wrapper"></div>
<input type='password' style="display:none"> <!-- for disable autocomplete all browser -->
<?php echo html::password('verifyPassword', '', "class='form-control disabled-ie-placeholder' placeholder='{$lang->user->placeholder->verify}'");?>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="<?php echo count($visibleFields)?>" class="text-center form-actions">
<?php
$submitText = $isEndPage ? $this->lang->save : $this->lang->file->saveAndNext;
$isStartPage = $pagerID == 1 ? true : false;
if(!$insert and $dataInsert === '')
{
echo "<button type='button' data-toggle='modal' data-target='#importNoticeModal' class='btn btn-primary btn-wide'>{$submitText}</button>";
}
else
{
echo html::submitButton($submitText);
if($dataInsert !== '') echo html::hidden('insert', $dataInsert);
}
echo html::hidden('isEndPage', $isEndPage ? 1 : 0);
echo html::hidden('pagerID', $pagerID);
?>
<?php echo html::linkButton($lang->goback, $this->createLink('company', 'browse'), 'self', '', 'btn btn-back btn-wide');?>
</td>
</tr>
</tfoot>
</table>
<?php if(!$insert and $dataInsert === '') include $app->getModuleRoot() . 'common/view/noticeimport.html.php';?>
</div>
</form>
</div>
<?php echo html::hidden('verifyRand', $rand);?>
<?php js::set('passwordStrengthList', $lang->user->passwordStrengthList)?>
<?php js::set('batchCreateCount', $config->user->batchCreate)?>
<?php endif;?>
<?php if(!empty($properties['user'])):?>
<?php
$userMaxCount = $properties['user']['value'];
$userCount = $this->dao->select("COUNT('*') as count")->from(TABLE_USER)
->where('deleted')->eq(0)
->beginIF($this->config->edition != 'open')->andWhere("visions")->ne('lite')->fi()
->fetch('count');
js::set('userCount', $userCount);
js::set('userMaxCount', $userMaxCount);
js::set('noticeUserCreate', str_replace('%maxcount%', $userMaxCount, $lang->user->noticeUserCreate));
if($this->config->edition != 'open')
{
$liteCount = $this->dao->select("COUNT('*') as count")->from(TABLE_USER)->where('deleted')->eq(0)->andWhere("visions")->eq('lite')->fetch('count');
$liteMaxCount = $properties['lite']['value'];
js::set('liteCount', $liteCount);
js::set('liteMaxCount', $liteMaxCount);
js::set('noticeFeedbackCreate', str_replace('%maxcount%', $liteMaxCount, $lang->user->noticeFeedbackCreate));
}
?>
<script>
$(function()
{
$('#submit').click(function()
{
var allUserCount = parseInt(userCount);
var allLiteCount = parseInt(liteCount);
var lastVision;
$('[id^="account"]').each(function()
{
if($(this).val())
{
var i = parseInt($(this).attr('id').replace(/[^0-9]/ig, ''));
var visions = $('select[id="visions' + i + '"]').val();
if($.inArray("ditto", visions) == '-1') lastVision = visions;
visions = lastVision;
var index = $.inArray('lite', visions);
if(index != '-1' && visions.length == '1')
{
allLiteCount += 1;
}
else
{
allUserCount += 1;
}
}
});
if(allUserCount > userMaxCount)
{
alert(noticeUserCreate.replace('%usercount%', allUserCount));
return false;
}
if(allLiteCount > liteMaxCount)
{
alert(noticeFeedbackCreate.replace('%usercount%', allLiteCount));
return false;
}
})
})
</script>
<?php endif;?>
<?php include $app->getModuleRoot() . 'common/view/footer.html.php';?>