* Merge code.
This commit is contained in:
@@ -171,6 +171,7 @@ define('TABLE_USERTPL', '`' . $config->db->prefix . 'usertpl`');
|
||||
|
||||
define('TABLE_PRODUCT', '`' . $config->db->prefix . 'product`');
|
||||
define('TABLE_BRANCH', '`' . $config->db->prefix . 'branch`');
|
||||
define('TABLE_STAKEHOLDER', '`' . $config->db->prefix . 'stakeholder`');
|
||||
define('TABLE_STORY', '`' . $config->db->prefix . 'story`');
|
||||
define('TABLE_STORYSPEC', '`' . $config->db->prefix . 'storyspec`');
|
||||
define('TABLE_STORYSTAGE', '`' . $config->db->prefix . 'storystage`');
|
||||
|
||||
@@ -41,6 +41,7 @@ ALTER TABLE `zt_userview` ADD `programs` mediumtext NOT NULL AFTER `account`, AD
|
||||
|
||||
ALTER TABLE `zt_user` ADD `type` char(30) NOT NULL default 'inside' AFTER `account`;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_stage`;
|
||||
CREATE TABLE `zt_stage` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL,
|
||||
@@ -54,6 +55,22 @@ CREATE TABLE `zt_stage` (
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- DROP TABLE IF EXISTS `zt_stakeholder`;
|
||||
CREATE TABLE `zt_stakeholder` (
|
||||
`id` mediumint(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`objectID` mediumint(8) NOT NULL,
|
||||
`objectType` char(30) NOT NULL,
|
||||
`user` char(30) NOT NULL,
|
||||
`type` char(30) NOT NULL,
|
||||
`key` enum('0','1') NOT NULL,
|
||||
`from` char(30) NOT NULL,
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` date NOT NULL,
|
||||
`editedBy` char(30) NOT NULL,
|
||||
`editedDate` date NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `zt_stage` (`name`,`percent`,`type`,`createdBy`,`createdDate`,`editedBy`,`editedDate`,`deleted`) VALUES
|
||||
('需求','10','request','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'),
|
||||
('设计','10','design','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'),
|
||||
|
||||
@@ -872,6 +872,21 @@ CREATE TABLE `zt_risk` (
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_stakeholder`;
|
||||
CREATE TABLE `zt_stakeholder` (
|
||||
`id` mediumint(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`objectID` mediumint(8) NOT NULL,
|
||||
`objectType` char(30) NOT NULL,
|
||||
`user` char(30) NOT NULL,
|
||||
`type` char(30) NOT NULL,
|
||||
`key` enum('0','1') NOT NULL,
|
||||
`from` char(30) NOT NULL,
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` date NOT NULL,
|
||||
`editedBy` char(30) NOT NULL,
|
||||
`editedDate` date NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
-- DROP TABLE IF EXISTS `zt_story`;
|
||||
CREATE TABLE IF NOT EXISTS `zt_story` (
|
||||
`id` mediumint(8) unsigned NOT NULL auto_increment,
|
||||
|
||||
@@ -138,11 +138,11 @@ $lang->program->menu->index = '主页|program|pgmindex|';
|
||||
$lang->program->menu->browse = array('link' => '项目集|program|pgmbrowse|', 'alias' => 'pgmcreate,pgmedit,pgmgroup,pgmmanagepriv,pgmmanageview,pgmmanagemembers');
|
||||
|
||||
$lang->program->viewMenu = new stdclass();
|
||||
$lang->program->viewMenu->view = '概况|program|pgmview|program=%s';
|
||||
$lang->program->viewMenu->view = array('link' => '概况|program|pgmview|program=%s');
|
||||
$lang->program->viewMenu->product = array('link' => '产品|program|pgmproduct|program=%s');
|
||||
$lang->program->viewMenu->project = array('link' => "项目|program|pgmproject|program=%s");
|
||||
$lang->program->viewMenu->personnel = array('link' => "人员|personnel|accessible|program=%s");
|
||||
$lang->program->viewMenu->stakeholder = array('link' => "干系人|program|pgmproject|program=%s");
|
||||
$lang->program->viewMenu->stakeholder = array('link' => "干系人|program|pgmstakeholder|program=%s", 'alias' => 'createstakeholder');
|
||||
|
||||
$lang->personnel = new stdClass();
|
||||
$lang->personnel->menu = new stdClass();
|
||||
|
||||
@@ -318,7 +318,7 @@ class program extends control
|
||||
if($childrenCount) die(js::alert($this->lang->program->hasChildren));
|
||||
|
||||
$program = $this->dao->select('*')->from(TABLE_PROGRAM)->where('id')->eq($programID)->fetch();
|
||||
if($confirm == 'no') die(js::confirm(sprintf($this->lang->program->confirmDelete, $program->name), $this->createLink('program', 'delete', "programID=$programID&confirm=yes")));
|
||||
if($confirm == 'no') die(js::confirm($this->lang->program->confirmDelete, $this->createLink('program', 'delete', "programID=$programID&confirm=yes")));
|
||||
|
||||
$this->dao->update(TABLE_PROGRAM)->set('deleted')->eq(1)->where('id')->eq($programID)->exec();
|
||||
$this->loadModel('action')->create('program', $programID, 'deleted', '', $extra = ACTIONMODEL::CAN_UNDELETED);
|
||||
@@ -372,7 +372,7 @@ class program extends control
|
||||
}
|
||||
|
||||
/**
|
||||
* Export program.
|
||||
* Program project list.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param string $browseType
|
||||
@@ -401,8 +401,8 @@ class program extends control
|
||||
$sortField = zget($this->config->program->sortFields, $order[0], 'id') . '_' . $order[1];
|
||||
$projectStats = $this->program->getPRJStats($programID, $browseType, 0, $sortField, $pager, $programTitle);
|
||||
|
||||
$this->view->title = $this->lang->program->PRJBrowse;
|
||||
$this->view->position[] = $this->lang->program->PRJBrowse;
|
||||
$this->view->title = $this->lang->program->PGMProject;
|
||||
$this->view->position[] = $this->lang->program->PGMProject;
|
||||
|
||||
$this->view->projectStats = $projectStats;
|
||||
$this->view->pager = $pager;
|
||||
@@ -415,6 +415,100 @@ class program extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Program stakeholder list.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param string $orderBy
|
||||
* @param int $recTotal
|
||||
* @param int $recPerPage
|
||||
* @param int $pageID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMStakeholder($programID = 0, $orderBy = 't1.id_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
|
||||
{
|
||||
$this->loadModel('user');
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->lang->program->switcherMenu = $this->program->getPGMCommonAction() . $this->program->getPGMSwitcher($programID);
|
||||
$this->program->setPGMViewMenu($programID);
|
||||
|
||||
/* Load pager and get tasks. */
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
|
||||
$this->view->title = $this->lang->program->PGMStakeholder;
|
||||
$this->view->position[] = $this->lang->program->PGMStakeholder;
|
||||
|
||||
$this->view->stakeholders = $this->program->getStakeholders($programID, $orderBy, $pager);
|
||||
$this->view->pager = $pager;
|
||||
$this->view->programID = $programID;
|
||||
$this->view->program = $this->program->getPRJByID($programID);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|pofirst|nodeleted');
|
||||
$this->view->orderBy = $orderBy;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create program stakeholder.
|
||||
*
|
||||
* @param int $programID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function createStakeholder($programID = 0, $dept = '')
|
||||
{
|
||||
if($_POST)
|
||||
{
|
||||
$this->program->createStakeholder($programID);
|
||||
die(js::locate($this->createLink('program', 'PGMStakeholder', "programID=$programID"), 'parent'));
|
||||
}
|
||||
|
||||
$this->loadModel('user');
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->lang->program->switcherMenu = $this->program->getPGMCommonAction() . $this->program->getPGMSwitcher($programID);
|
||||
$this->program->setPGMViewMenu($programID);
|
||||
|
||||
$this->loadModel('dept');
|
||||
$deptUsers = $dept === '' ? array() : $this->dept->getDeptUserPairs($dept);
|
||||
|
||||
$this->view->title = $this->lang->program->createStakeholder;
|
||||
$this->view->position[] = $this->lang->program->createStakeholder;
|
||||
|
||||
$this->view->programID = $programID;
|
||||
$this->view->program = $this->program->getPRJByID($programID);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('nodeleted');
|
||||
$this->view->deptUsers = $deptUsers;
|
||||
$this->view->dept = $dept;
|
||||
$this->view->depts = array('' => '') + $this->dept->getOptionMenu();
|
||||
$this->view->stakeholders = $this->program->getStakeholders($programID, 't1.id_desc');
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Unlink program stakeholder.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param string $confirm
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function unlinkStakeholder($stakeholderID, $confirm = 'no')
|
||||
{
|
||||
if($confirm == 'no')
|
||||
{
|
||||
die(js::confirm($this->lang->program->confirmDelete, $this->inlink('unlinkStakeholder', "stakeholderID=$stakeholderID&confirm=yes")));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->dao->delete()->from(TABLE_STAKEHOLDER)->where('id')->eq($stakeholderID)->exec();
|
||||
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Export program.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
function setDeptUsers(obj)
|
||||
{
|
||||
dept = $(obj).val();//Get dept ID.
|
||||
link = createLink('program', 'createstakeholder', 'programID=' + programID + '&dept=' + dept);
|
||||
location.href=link;
|
||||
}
|
||||
|
||||
function addItem(obj)
|
||||
{
|
||||
var item = $('#addItem').html();
|
||||
$(obj).closest('tr').after('<tr class="addedItem">' + item + '</tr>');
|
||||
var $accounts = $(obj).closest('tr').next().find('select[name*=accounts]');
|
||||
$accounts.chosen();
|
||||
}
|
||||
|
||||
function deleteItem(obj)
|
||||
{
|
||||
$(obj).closest('tr').remove();
|
||||
}
|
||||
@@ -121,7 +121,7 @@ $lang->program->waterfall = '瀑布';
|
||||
$lang->program->waterfallTitle = '瀑布式项目管理';
|
||||
$lang->program->cannotCreateChild = '该项目已经有实际的内容,无法直接添加子项目。您可以为当前项目创建一个父项目,然后在新的父项目下面添加子项目。';
|
||||
$lang->program->hasChildren = '该项目有子项目存在,不能删除。';
|
||||
$lang->program->confirmDelete = "您确定删除项目[%s]吗?";
|
||||
$lang->program->confirmDelete = "您确定要删除吗?";
|
||||
$lang->program->emptyPM = '暂无';
|
||||
$lang->program->cannotChangeToCat = "该项目已经有实际的内容,无法修改为父项目";
|
||||
$lang->program->cannotCancelCat = "该项目下已经有子项目,无法取消父项目标记";
|
||||
@@ -181,6 +181,8 @@ $lang->program->PGMManagePriv = '维护权限';
|
||||
$lang->program->PGMManageMembers = '项目集团队';
|
||||
$lang->program->PGMExport = '导出';
|
||||
$lang->program->PGMManageGroupMember = '维护分组用户';
|
||||
$lang->program->PGMStakeholder = '干系人列表';
|
||||
$lang->program->createStakeholder = '添加干系人';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->PGMName = '项目集名称';
|
||||
|
||||
@@ -218,7 +218,7 @@ class programModel extends model
|
||||
{
|
||||
foreach($this->lang->program->viewMenu as $label => $menu)
|
||||
{
|
||||
$this->lang->program->viewMenu->$label = is_array($menu) ? sprintf($menu['link'], $programID) : sprintf($menu, $programID);
|
||||
$this->lang->program->viewMenu->{$label}['link'] = is_array($menu) ? sprintf($menu['link'], $programID) : sprintf($menu, $programID);
|
||||
}
|
||||
|
||||
foreach($this->lang->personnel->menu as $label => $menu)
|
||||
@@ -497,7 +497,7 @@ class programModel extends model
|
||||
* Get children by program id.
|
||||
*
|
||||
* @param int $programID
|
||||
* @access private
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getChildren($programID = 0)
|
||||
@@ -505,6 +505,62 @@ class programModel extends model
|
||||
return $this->dao->select('count(*) as count')->from(TABLE_PROGRAM)->where('parent')->eq($programID)->fetch('count');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get stakeholders by program id.
|
||||
*
|
||||
* @param int $programID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getStakeholders($programID = 0, $orderBy, $pager = null)
|
||||
{
|
||||
return $this->dao->select('t2.*, t1.id')->from(TABLE_STAKEHOLDER)->alias('t1')
|
||||
->leftJoin(TABLE_USER)->alias('t2')->on('t1.user=t2.account')
|
||||
->where('t1.objectID')->eq($programID)
|
||||
->andWhere('t1.objectType')->eq('program')
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create stakeholder for a program.
|
||||
*
|
||||
* @param int $programID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function createStakeholder($programID = 0)
|
||||
{
|
||||
$data = (array)fixer::input('post')->get();
|
||||
|
||||
$accounts = array_unique($data['accounts']);
|
||||
$oldJoin = $this->dao->select('`user`, createdDate')->from(TABLE_STAKEHOLDER)->where('objectID')->eq((int)$programID)->andWhere('objectType')->eq('program')->fetchPairs();
|
||||
$this->dao->delete()->from(TABLE_STAKEHOLDER)->where('objectID')->eq((int)$programID)->andWhere('objectType')->eq('program')->exec();
|
||||
|
||||
foreach($accounts as $key => $account)
|
||||
{
|
||||
if(empty($account)) continue;
|
||||
|
||||
$stakeholder = new stdclass();
|
||||
$stakeholder->objectID = $programID;
|
||||
$stakeholder->objectType = 'program';
|
||||
$stakeholder->user = $account;
|
||||
$stakeholder->createdBy = $this->app->user->account;
|
||||
$stakeholder->createdDate = isset($oldJoin[$account]) ? $oldJoin[$account] : helper::today();
|
||||
|
||||
$this->dao->insert(TABLE_STAKEHOLDER)->data($stakeholder)->exec();
|
||||
}
|
||||
|
||||
/* Only changed account update userview. */
|
||||
$oldAccounts = array_keys($oldJoin);
|
||||
$changedAccounts = array_diff($accounts, $oldAccounts);
|
||||
$changedAccounts = array_merge($changedAccounts, array_diff($oldAccounts, $accounts));
|
||||
$changedAccounts = array_unique($changedAccounts);
|
||||
|
||||
$this->loadModel('user')->updateUserView($programID, 'program', $changedAccounts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show accessDenied response.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
/**
|
||||
* The create stakeholder view of program module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package product
|
||||
* @version $Id: browse.html.php 5096 2013-07-11 07:02:43Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('programID', $programID);?>
|
||||
<div id='mainMenu' class='clearfix'>
|
||||
<div class='btn-toolbar pull-left'>
|
||||
<span class='btn btn-link btn-active-text'>
|
||||
<?php echo html::a($this->createLink('program', 'craetestakeholder', "programID={$programID}"), "<span class='text'> {$lang->program->createStakeholder}</span>");?>
|
||||
</span>
|
||||
<div class='input-group space w-200px'>
|
||||
<span class='input-group-addon'><?php echo $lang->project->selectDept?></span>
|
||||
<?php echo html::select('dept', $depts, $dept, "class='form-control chosen' onchange='setDeptUsers(this)' data-placeholder='{$lang->project->selectDeptTitle}'");?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<form class='main-form' method='post' id='teamForm' target='hiddenwin'>
|
||||
<table class='table table-form'>
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<th><?php echo $lang->team->account;?></th>
|
||||
<th class="w-90px"> <?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($stakeholders as $stakeholder):?>
|
||||
<?php if(!isset($users[$stakeholder->account])) continue;?>
|
||||
<?php unset($users[$stakeholder->account]);?>
|
||||
<tr>
|
||||
<td>
|
||||
<input type='text' name='realnames[]' value='<?php echo $stakeholder->realname;?>' readonly class='form-control' />
|
||||
<input type='hidden' name='accounts[]' value='<?php echo $stakeholder->account;?>' />
|
||||
</td>
|
||||
<td class='c-actions text-center'>
|
||||
<a href='javascript:;' onclick='addItem(this)' class='btn btn-link'><i class='icon-plus'></i></a>
|
||||
<a href='javascript:;' onclick='deleteItem(this)' class='btn btn-link'><i class='icon icon-close'></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
|
||||
<?php foreach($deptUsers as $deptAccount => $userName):?>
|
||||
<?php if(!isset($users[$deptAccount])) continue;?>
|
||||
<tr class='addedItem'>
|
||||
<td><?php echo html::select("accounts[]", $users, $deptAccount, "class='form-control chosen'");?></td>
|
||||
<td class='c-actions text-center'>
|
||||
<a href='javascript:;' onclick='addItem(this)' class='btn btn-link'><i class='icon-plus'></i></a>
|
||||
<a href='javascript:;' onclick='deleteItem(this)' class='btn btn-link'><i class='icon icon-close'></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php unset($users[$deptAccount]);?>
|
||||
<?php endforeach;?>
|
||||
|
||||
<?php for($j = 0; $j < 5; $j ++):?>
|
||||
<tr class='addedItem'>
|
||||
<td><?php echo html::select("accounts[]", $users, '', "class='form-control chosen'");?></td>
|
||||
<td class='c-actions text-center'>
|
||||
<a href='javascript:;' onclick='addItem(this)' class='btn btn-link'><i class='icon-plus'></i></a>
|
||||
<a href='javascript:;' onclick='deleteItem(this)' class='btn btn-link'><i class='icon icon-close'></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endfor;?>
|
||||
</tbody>
|
||||
<tfoot><tr><td colspan='6' class='text-center form-actions'><?php echo html::submitButton() . ' ' . html::backButton(); ?></td></tr></tfoot>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<div>
|
||||
<table class='hidden'>
|
||||
<tr id='addItem' class='hidden'>
|
||||
<td><?php echo html::select("accounts[]", $users, '', "class='form-control'");?></td>
|
||||
<td class='c-actions text-center'>
|
||||
<a href='javascript:;' onclick='addItem(this)' class='btn btn-link'><i class='icon-plus'></i></a>
|
||||
<a href='javascript:;' onclick='deleteItem(this)' class='btn btn-link'><i class='icon icon-close'></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
/**
|
||||
* The stakeholder view of program module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package product
|
||||
* @version $Id: browse.html.php 5096 2013-07-11 07:02:43Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('confirmDelete', $lang->program->confirmDelete);?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php echo html::a($this->createLink('program', 'pgmstakeholder', "programID=$programID"), '<span class="text">' . $lang->program->PGMStakeholder . '</span>', '', 'class="btn btn-link btn-active-text"');?>
|
||||
</div>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<?php common::printLink('program', 'createstakeholder', "programID=$programID", "<i class='icon icon-plus'></i>" . $lang->program->createStakeholder, '', "class='btn btn-primary'");?>
|
||||
</div>
|
||||
</div>
|
||||
<div id='mainContent' class='main-row fade'>
|
||||
<div class='main-col'>
|
||||
<?php if(!empty($stakeholders)):?>
|
||||
<form class='main-table table-user' data-ride='table' action='' method='post' id='userListForm'>
|
||||
<table class='table has-sort-head' id='userList'>
|
||||
<thead>
|
||||
<tr>
|
||||
<?php $vars = "programID=$programID&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}";?>
|
||||
<th class='c-id'>
|
||||
<?php echo $lang->idAB;?>
|
||||
</th>
|
||||
<th><?php echo $lang->user->realname;?></th>
|
||||
<th class="w-120px"><?php echo $lang->user->role;?></th>
|
||||
<th class="w-120px"><?php echo $lang->user->phone;?></th>
|
||||
<th class="w-120px"><?php echo $lang->user->qq;?></th>
|
||||
<th class="w-120px"><?php echo $lang->user->weixin;?></th>
|
||||
<th class="w-200px"><?php echo $lang->user->email;?></th>
|
||||
<th class='c-actions w-100px'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($stakeholders as $stakeholder):?>
|
||||
<tr>
|
||||
<td class='c-id'>
|
||||
<?php printf('%03d', $stakeholder->id);?>
|
||||
</td>
|
||||
<td><?php echo $stakeholder->realname;?></td>
|
||||
<td><?php echo zget($lang->user->roleList, $stakeholder->role);?></td>
|
||||
<td title="<?php echo $stakeholder->phone;?>"><?php echo $stakeholder->phone;?></td>
|
||||
<td title="<?php echo $stakeholder->qq;?>"><?php echo $stakeholder->qq;?></td>
|
||||
<td title="<?php echo $stakeholder->weixin;?>"><?php echo $stakeholder->weixin;?></td>
|
||||
<td title="<?php echo $stakeholder->email;?>"><?php echo $stakeholder->email;?></td>
|
||||
<td class='c-actions'>
|
||||
<?php
|
||||
$deleteClass = common::hasPriv('stakeholder', 'delete') ? 'btn' : 'btn disabled';
|
||||
echo html::a($this->createLink('program', 'unlinkStakeholder', "id=$stakeholder->id"), '<i class="icon-unlink"></i>', 'hiddenwin', "title='{$lang->delete}' class='{$deleteClass}'");
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php if($stakeholders):?>
|
||||
<div class='table-footer'>
|
||||
<?php $pager->show('right', 'pagerjs');?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</form>
|
||||
<?php else:?>
|
||||
<div class='table-empty-tip'><?php echo $lang->noData;?></div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -4,7 +4,7 @@
|
||||
<div id='mainMenu' class='clearfix'>
|
||||
<div class='btn-toolbar pull-left'>
|
||||
<span class='btn btn-link btn-active-text'>
|
||||
<?php echo html::a($this->createLink('project', 'managemembers', "projectID={$project->id}"), "<span class='text'> {$lang->project->manageMembers}</span>");?>
|
||||
<?php echo html::a($this->createLink('program', 'prjmanagemembers', "projectID={$project->id}"), "<span class='text'> {$lang->project->manageMembers}</span>");?>
|
||||
</span>
|
||||
<div class='input-group space w-200px'>
|
||||
<span class='input-group-addon'><?php echo $lang->project->selectDept?></span>
|
||||
|
||||
Reference in New Issue
Block a user