Merge branch 'sprint/175_sgm_fixbug'
This commit is contained in:
@@ -1452,7 +1452,7 @@ class execution extends control
|
||||
$this->view->users = $this->loadModel('user')->getPairs('nodeleted|noclosed');
|
||||
$this->view->copyExecution = isset($copyExecution) ? $copyExecution : '';
|
||||
$this->view->from = $this->app->tab;
|
||||
$this->view->isStage = $isStage;
|
||||
$this->view->isStage = (isset($project->model) and $project->model == 'waterfall') ? true : false;
|
||||
$this->display();
|
||||
}
|
||||
|
||||
|
||||
@@ -360,6 +360,7 @@ if($config->systemMode == 'new')
|
||||
$lang->resource->projectrelease->unlinkBug = 'unlinkBug';
|
||||
$lang->resource->projectrelease->batchUnlinkBug = 'batchUnlinkBug';
|
||||
$lang->resource->projectrelease->changeStatus = 'changeStatus';
|
||||
$lang->resource->projectrelease->notify = 'notify';
|
||||
|
||||
$lang->projectrelease->methodOrder[5] = 'browse';
|
||||
$lang->projectrelease->methodOrder[10] = 'create';
|
||||
@@ -374,6 +375,7 @@ if($config->systemMode == 'new')
|
||||
$lang->projectrelease->methodOrder[60] = 'unlinkBug';
|
||||
$lang->projectrelease->methodOrder[65] = 'batchUnlinkBug';
|
||||
$lang->projectrelease->methodOrder[70] = 'changeStatus';
|
||||
$lang->projectrelease->methodOrder[75] = 'notify';
|
||||
|
||||
/* Stage. */
|
||||
$lang->resource->stage = new stdclass();
|
||||
@@ -599,6 +601,7 @@ $lang->resource->release->linkBug = 'linkBug';
|
||||
$lang->resource->release->unlinkBug = 'unlinkBug';
|
||||
$lang->resource->release->batchUnlinkBug = 'batchUnlinkBug';
|
||||
$lang->resource->release->changeStatus = 'changeStatus';
|
||||
$lang->resource->release->notify = 'notify';
|
||||
|
||||
$lang->release->methodOrder[5] = 'browse';
|
||||
$lang->release->methodOrder[10] = 'create';
|
||||
@@ -613,6 +616,7 @@ $lang->release->methodOrder[55] = 'linkBug';
|
||||
$lang->release->methodOrder[60] = 'unlinkBug';
|
||||
$lang->release->methodOrder[65] = 'batchUnlinkBug';
|
||||
$lang->release->methodOrder[70] = 'changeStatus';
|
||||
$lang->release->methodOrder[75] = 'notify';
|
||||
|
||||
/* Kanban */
|
||||
$lang->resource->kanban = new stdclass();
|
||||
|
||||
@@ -10,8 +10,6 @@ $config->message->objectTypes['case'] = array('opened', 'edited', 'commen
|
||||
$config->message->objectTypes['testtask'] = array('opened', 'edited', 'started', 'blocked', 'closed', 'activated');
|
||||
$config->message->objectTypes['todo'] = array('opened', 'edited');
|
||||
$config->message->objectTypes['doc'] = array('created', 'edited');
|
||||
$config->message->objectTypes['release'] = array('opened', 'edited');
|
||||
$config->message->objectTypes['mr'] = array('compilepass', 'compilefail');
|
||||
|
||||
$config->message->available = array();
|
||||
$config->message->available['mail']['story'] = $config->message->objectTypes['story'];
|
||||
@@ -19,8 +17,6 @@ $config->message->available['mail']['task'] = $config->message->objectTypes[
|
||||
$config->message->available['mail']['bug'] = $config->message->objectTypes['bug'];
|
||||
$config->message->available['mail']['testtask'] = array('opened', 'edited', 'closed');
|
||||
$config->message->available['mail']['doc'] = $config->message->objectTypes['doc'];
|
||||
$config->message->available['mail']['release'] = $config->message->objectTypes['release'];
|
||||
$config->message->available['mail']['mr'] = $config->message->objectTypes['mr'];
|
||||
|
||||
$config->message->available['webhook'] = $config->message->objectTypes;
|
||||
|
||||
@@ -30,8 +26,6 @@ $config->message->available['message']['task'] = $config->message->objectTyp
|
||||
$config->message->available['message']['testtask'] = $config->message->objectTypes['testtask'];
|
||||
$config->message->available['message']['todo'] = $config->message->objectTypes['todo'];
|
||||
$config->message->available['message']['doc'] = $config->message->objectTypes['doc'];
|
||||
$config->message->available['message']['release'] = $config->message->objectTypes['release'];
|
||||
$config->message->available['message']['mr'] = $config->message->objectTypes['mr'];
|
||||
|
||||
$config->message->typeLink = array();
|
||||
$config->message->typeLink['mail'] = 'mail|index';
|
||||
|
||||
@@ -277,6 +277,34 @@ class projectrelease extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify for release.
|
||||
*
|
||||
* @param int $releaseID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function notify($releaseID)
|
||||
{
|
||||
if($_POST)
|
||||
{
|
||||
if(isset($_POST['notify']))
|
||||
{
|
||||
$notify = implode(',', $this->post->notify);
|
||||
$this->dao->update(TABLE_RELEASE)->set('notify')->eq($notify)->where('id')->eq($releaseID)->exec();
|
||||
|
||||
$this->release->sendmail($releaseID);
|
||||
}
|
||||
|
||||
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'parent'));
|
||||
}
|
||||
|
||||
$this->view->release = $this->release->getById($releaseID);
|
||||
$this->view->actions = $this->loadModel('action')->getList('release', $releaseID);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a release.
|
||||
*
|
||||
|
||||
@@ -130,7 +130,6 @@ class projectreleaseModel extends model
|
||||
->join('stories', ',')
|
||||
->join('bugs', ',')
|
||||
->join('mailto', ',')
|
||||
->join('notify', ',')
|
||||
->setIF($this->post->build == false, 'build', $buildID)
|
||||
->setIF($productID, 'product', $productID)
|
||||
->setIF($branch, 'branch', $branch)
|
||||
@@ -226,7 +225,6 @@ class projectreleaseModel extends model
|
||||
$release = fixer::input('post')->stripTags($this->config->release->editor->edit['id'], $this->config->allowedTags)
|
||||
->add('branch', (int)$branch)
|
||||
->join('mailto', ',')
|
||||
->join('notify', ',')
|
||||
->setIF(!$this->post->marker, 'marker', 0)
|
||||
->cleanInt('product')
|
||||
->remove('files,labels,allchecker,uid')
|
||||
@@ -324,4 +322,21 @@ class projectreleaseModel extends model
|
||||
$this->loadModel('action');
|
||||
foreach($this->post->bugs as $bugID) $this->action->create('bug', $bugID, 'linked2release', '', $releaseID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Judge btn is clickable or not.
|
||||
*
|
||||
* @param int $release
|
||||
* @param string $action
|
||||
* @static
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public static function isClickable($release, $action)
|
||||
{
|
||||
$action = strtolower($action);
|
||||
|
||||
if($action == 'notify') return $release->bugs or $release->stories;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
$extendFields = $this->projectrelease->getFlowExtendFields();
|
||||
foreach($extendFields as $extendField) echo "<th>{$extendField->name}</th>";
|
||||
?>
|
||||
<th class='c-actions-5 text-center w-150px'><?php echo $lang->actions;?></th>
|
||||
<th class='c-actions-6 text-center'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -84,7 +84,8 @@
|
||||
$changedStatus = $release->status == 'normal' ? 'terminate' : 'normal';
|
||||
echo html::a($this->createLink('projectrelease', 'changeStatus', "releaseID=$release->id&status=$changedStatus"), '<i class="icon-' . ($release->status == 'normal' ? 'pause' : 'play') . '"></i> ', 'hiddenwin', "class='btn' title='{$lang->release->changeStatusList[$changedStatus]}'");
|
||||
}
|
||||
common::printIcon('projectrelease', 'edit', "release=$release->id", $release, 'list');
|
||||
common::printIcon('projectrelease', 'edit', "release=$release->id", $release, 'list');
|
||||
common::printIcon('projectrelease', 'notify', "release=$release->id", $release, 'list', 'bullhorn', '', 'iframe', true);
|
||||
if(common::hasPriv('projectrelease', 'delete', $release))
|
||||
{
|
||||
$deleteURL = $this->createLink('projectrelease', 'delete', "releaseID=$release->id&confirm=yes");
|
||||
|
||||
@@ -59,10 +59,6 @@
|
||||
<th><?php echo $lang->release->desc;?></th>
|
||||
<td colspan='2'><?php echo html::textarea('desc', '', "rows='10' class='form-control kindeditor' hidefocus='true'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->notify;?></th>
|
||||
<td colspan='2'><?php echo html::checkbox('notify', $lang->release->notifyList);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->mailto;?></th>
|
||||
<td colspan='2'>
|
||||
|
||||
@@ -52,10 +52,6 @@
|
||||
<th><?php echo $lang->release->desc;?></th>
|
||||
<td colspan='2'><?php echo html::textarea('desc', htmlSpecialString($release->desc), "rows=10 class='form-control kindeditor' hidefocus='true'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->notify;?></th>
|
||||
<td colspan='2'><?php echo html::checkbox('notify', $lang->release->notifyList, $release->notify);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->mailto;?></th>
|
||||
<td colspan='2'>
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
* The notify file of release module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2021 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Guangming Sun<sunguangming@cnezsoft.com>
|
||||
* @package bug
|
||||
* @version $Id: notify.html.php 4129 2021-12-01 01:58:14Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<style>.checkbox-primary {display: inline-block; margin-left: 10px;}</style>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<div class='main-header'>
|
||||
<h2>
|
||||
<span class='label label-id'><?php echo $release->id;?></span>
|
||||
<?php echo $release->name . ' - ' . $lang->release->notify;?>
|
||||
</h2>
|
||||
</div>
|
||||
<form method='post' enctype='multipart/form-data' class='form-ajax'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->notifyUsers;?></th>
|
||||
<td><?php echo html::checkbox('notify', $lang->release->notifyList, 'FB');?></td>
|
||||
</tr>
|
||||
<?php echo html::hidden('releaseID', $release->id);?>
|
||||
<tr>
|
||||
<td class='form-actions text-center' colspan='2'><?php echo html::submitButton($lang->release->notify);?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<hr class='small' />
|
||||
<div class='main'><?php include '../../common/view/action.html.php';?></div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -221,6 +221,34 @@ class release extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify for release.
|
||||
*
|
||||
* @param int $releaseID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function notify($releaseID)
|
||||
{
|
||||
if($_POST)
|
||||
{
|
||||
if(isset($_POST['notify']))
|
||||
{
|
||||
$notify = implode(',', $this->post->notify);
|
||||
$this->dao->update(TABLE_RELEASE)->set('notify')->eq($notify)->where('id')->eq($releaseID)->exec();
|
||||
|
||||
$this->release->sendmail($releaseID);
|
||||
}
|
||||
|
||||
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'parent'));
|
||||
}
|
||||
|
||||
$this->view->release = $this->release->getById($releaseID);
|
||||
$this->view->actions = $this->loadModel('action')->getList('release', $releaseID);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed');
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a release.
|
||||
*
|
||||
|
||||
@@ -57,6 +57,7 @@ $lang->release->export = 'Export as HTML';
|
||||
$lang->release->yesterday = 'Gestern veröffentlicht';
|
||||
$lang->release->all = 'All';
|
||||
$lang->release->notify = 'Notify';
|
||||
$lang->release->notifyUsers = 'Notify Users';
|
||||
$lang->release->mailto = 'Mailto';
|
||||
|
||||
$lang->release->filePath = 'Download : ';
|
||||
|
||||
@@ -57,6 +57,7 @@ $lang->release->export = 'Export as HTML';
|
||||
$lang->release->yesterday = 'Released Yesterday';
|
||||
$lang->release->all = 'All';
|
||||
$lang->release->notify = 'Notify';
|
||||
$lang->release->notifyUsers = 'Notify Users';
|
||||
$lang->release->mailto = 'Mailto';
|
||||
$lang->release->mailContent = '<p>Dear users,</p><p style="margin-left: 30px;">The following requirements and bugs you feedback have been released in the %s. Please contact your account manager to check the latest version.</p>';
|
||||
$lang->release->storyList = '<p style="margin-left: 30px;">Story List:%s。</p>';
|
||||
|
||||
@@ -57,6 +57,7 @@ $lang->release->export = 'Export HTML';
|
||||
$lang->release->yesterday = 'Versionné Hier';
|
||||
$lang->release->all = 'Tout';
|
||||
$lang->release->notify = 'Notify';
|
||||
$lang->release->notifyUsers = 'Notify Users';
|
||||
$lang->release->mailto = 'Mailto';
|
||||
|
||||
$lang->release->filePath = 'Télecharger : ';
|
||||
|
||||
@@ -57,6 +57,7 @@ $lang->release->export = 'Xuất ra HTML';
|
||||
$lang->release->yesterday = 'Phát hành hôm qua';
|
||||
$lang->release->all = 'Tất cả';
|
||||
$lang->release->notify = 'Notify';
|
||||
$lang->release->notifyUsers = 'Notify Users';
|
||||
$lang->release->mailto = 'Mailto';
|
||||
|
||||
$lang->release->filePath = 'Tải về : ';
|
||||
|
||||
@@ -56,7 +56,8 @@ $lang->release->createdBugs = '本次共遗留 %s 个Bug';
|
||||
$lang->release->export = '导出HTML';
|
||||
$lang->release->yesterday = '昨日发布';
|
||||
$lang->release->all = '所有';
|
||||
$lang->release->notify = '通知人员';
|
||||
$lang->release->notify = '通知';
|
||||
$lang->release->notifyUsers = '通知人员';
|
||||
$lang->release->mailto = '抄送给';
|
||||
$lang->release->mailContent = '<p>尊敬的用户,您好!</p><p style="margin-left: 30px;">您反馈的如下需求和Bug已经在 %s版本中发布,请联系客户经理查看最新版本。</p>';
|
||||
$lang->release->storyList = '<p style="margin-left: 30px;">需求列表:%s。</p>';
|
||||
|
||||
+107
-59
@@ -129,7 +129,6 @@ class releaseModel extends model
|
||||
->join('stories', ',')
|
||||
->join('bugs', ',')
|
||||
->join('mailto', ',')
|
||||
->join('notify', ',')
|
||||
->setIF($this->post->build == false, 'build', $buildID)
|
||||
->stripTags($this->config->release->editor->create['id'], $this->config->allowedTags)
|
||||
->remove('allchecker,files,labels,uid')
|
||||
@@ -228,9 +227,7 @@ class releaseModel extends model
|
||||
$release = fixer::input('post')->stripTags($this->config->release->editor->edit['id'], $this->config->allowedTags)
|
||||
->add('branch', (int)$branch)
|
||||
->join('mailto', ',')
|
||||
->join('notify', ',')
|
||||
->setIF(!$this->post->marker, 'marker', 0)
|
||||
->setIF(!$this->post->notify, 'notify', '')
|
||||
->cleanInt('product')
|
||||
->remove('files,labels,allchecker,uid')
|
||||
->get();
|
||||
@@ -478,6 +475,70 @@ class releaseModel extends model
|
||||
return !dao::isError();
|
||||
}
|
||||
|
||||
/**
|
||||
* Judge btn is clickable or not.
|
||||
*
|
||||
* @param int $release
|
||||
* @param string $action
|
||||
* @static
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public static function isClickable($release, $action)
|
||||
{
|
||||
$action = strtolower($action);
|
||||
|
||||
if($action == 'notify') return $release->bugs or $release->stories;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send mail to release related users.
|
||||
*
|
||||
* @param int $releaseID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function sendmail($releaseID)
|
||||
{
|
||||
if(empty($releaseID)) return;
|
||||
$this->app->loadConfig('mail');
|
||||
|
||||
/* Load module and get vars. */
|
||||
$users = $this->loadModel('user')->getPairs('noletter');
|
||||
$release = $this->getByID($releaseID);
|
||||
$suffix = empty($release->product) ? '' : ' - ' . $this->loadModel('product')->getById($release->product)->name;
|
||||
$subject = 'Release #' . $release->id . ' ' . $release->name . $suffix;
|
||||
|
||||
/* Get mail content. */
|
||||
$modulePath = $this->app->getModulePath($appName = '', 'release');
|
||||
$oldcwd = getcwd();
|
||||
$viewFile = $modulePath . 'view/sendmail.html.php';
|
||||
chdir($modulePath . 'view');
|
||||
if(file_exists($modulePath . 'ext/view/sendmail.html.php'))
|
||||
{
|
||||
$viewFile = $modulePath . 'ext/view/sendmail.html.php';
|
||||
chdir($modulePath . 'ext/view');
|
||||
}
|
||||
ob_start();
|
||||
include $viewFile;
|
||||
foreach(glob($modulePath . 'ext/view/sendmail.*.html.hook.php') as $hookFile) include $hookFile;
|
||||
$mailContent = ob_get_contents();
|
||||
ob_end_clean();
|
||||
chdir($oldcwd);
|
||||
|
||||
if(strpos(",{$release->notify},", ',FB,') !== false) $this->sendMail2Feedback($release, $subject);
|
||||
|
||||
/* Get the sender. */
|
||||
$sendUsers = $this->getToAndCcList($release);
|
||||
if(!$sendUsers) return;
|
||||
|
||||
list($toList, $ccList) = $sendUsers;
|
||||
|
||||
/* Send it. */
|
||||
$this->loadModel('mail')->send($toList, $subject, $mailContent, $ccList);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get toList and ccList.
|
||||
*
|
||||
@@ -531,71 +592,58 @@ class releaseModel extends model
|
||||
*/
|
||||
public function sendMail2Feedback($release, $subject)
|
||||
{
|
||||
$stories = $bugs = array();
|
||||
if(!$release->stories && !$release->bugs) return;
|
||||
|
||||
$buildObjects = $this->dao->select('stories,bugs')->from(TABLE_BUILD)->where('id')->eq($release->build)->fetch();
|
||||
$releaseObjects = $this->dao->select('stories,bugs')->from(TABLE_RELEASE)->where('id')->eq($release->id)->fetch();
|
||||
$stories = explode(',', trim($release->stories, ','));
|
||||
$bugs = explode(',', trim($release->bugs, ','));
|
||||
|
||||
$stories = explode(',', trim($buildObjects->stories, ',')) + explode(',', trim($releaseObjects->stories, ','));
|
||||
$bugs = explode(',', trim($buildObjects->bugs, ',')) + explode(',', trim($releaseObjects->bugs, ','));
|
||||
$storyNotifyList = $this->dao->select('id,title,notifyEmail')->from(TABLE_STORY)
|
||||
->where('id')->in($stories)
|
||||
->andWhere('notifyEmail')->ne('')
|
||||
->fetchGroup('notifyEmail', 'id');
|
||||
|
||||
if(!empty($stories))
|
||||
$bugNotifyList = $this->dao->select('id,title,notifyEmail')->from(TABLE_BUG)
|
||||
->where('id')->in($bugs)
|
||||
->andWhere('notifyEmail')->ne('')
|
||||
->fetchGroup('notifyEmail', 'id');
|
||||
|
||||
$toList = array();
|
||||
$emails = array();
|
||||
$storyNames = array();
|
||||
$bugNames = array();
|
||||
foreach($storyNotifyList as $notifyEmail => $storyList)
|
||||
{
|
||||
$storyNotifyList = $this->dao->select('id,title,notifyEmail')->from(TABLE_STORY)
|
||||
->where('id')->in($stories)
|
||||
->andWhere('notifyEmail')->ne('')
|
||||
->fetchGroup('notifyEmail', 'id');
|
||||
$email = new stdClass();
|
||||
$email->account = $notifyEmail;
|
||||
$email->email = $notifyEmail;
|
||||
$email->realname = '';
|
||||
|
||||
$bugNotifyList = $this->dao->select('id,title,notifyEmail')->from(TABLE_BUG)
|
||||
->where('id')->in($bugs)
|
||||
->andWhere('notifyEmail')->ne('')
|
||||
->fetchGroup('notifyEmail', 'id');
|
||||
$emails[$notifyEmail] = $email;
|
||||
$toList[$notifyEmail] = $notifyEmail;
|
||||
|
||||
$toList = array();
|
||||
$emails = array();
|
||||
$storyNames = array();
|
||||
$bugNames = array();
|
||||
foreach($storyNotifyList as $storyList)
|
||||
{
|
||||
$email = new stdClass();
|
||||
foreach($storyList as $story)
|
||||
{
|
||||
$storyNames[] = $story->title;
|
||||
foreach($storyList as $story) $storyNames[] = $story->title;
|
||||
}
|
||||
foreach($bugNotifyList as $notifyEmail => $bugList)
|
||||
{
|
||||
$email = new stdClass();
|
||||
$email->account = $notifyEmail;
|
||||
$email->email = $notifyEmail;
|
||||
$email->realname = '';
|
||||
|
||||
if(isset($email->account)) continue;
|
||||
$email->account = $story->notifyEmail;
|
||||
$email->email = $story->notifyEmail;
|
||||
$email->realname = '';
|
||||
$emails[$story->notifyEmail] = $email;
|
||||
$toList[$story->notifyEmail] = $story->notifyEmail;
|
||||
}
|
||||
}
|
||||
foreach($bugNotifyList as $bugList)
|
||||
{
|
||||
$email = new stdClass();
|
||||
foreach($bugList as $bug)
|
||||
{
|
||||
$bugNames[] = $bug->title;
|
||||
$emails[$notifyEmail] = $email;
|
||||
$toList[$notifyEmail] = $notifyEmail;
|
||||
|
||||
if(isset($email->account)) continue;
|
||||
$email->account = $bug->notifyEmail;
|
||||
$email->email = $bug->notifyEmail;
|
||||
$email->realname = '';
|
||||
$emails[$bug->notifyEmail] = $email;
|
||||
$toList[$bug->notifyEmail] = $bug->notifyEmail;
|
||||
}
|
||||
}
|
||||
|
||||
if(!empty($toList))
|
||||
{
|
||||
$storyNames = implode(',', $storyNames);
|
||||
$bugNames = implode(',', $bugNames);
|
||||
$mailContent = sprintf($this->lang->release->mailContent, $release->name);
|
||||
if($storyNames) $mailContent .= sprintf($this->lang->release->storyList, $storyNames);
|
||||
if($bugNames) $mailContent .= sprintf($this->lang->release->bugList, $bugNames);
|
||||
$this->loadModel('mail')->send(implode(',', $toList), $subject, $mailContent, '', false, $emails);
|
||||
}
|
||||
foreach($bugList as $bug) $bugNames[] = $bug->title;
|
||||
}
|
||||
|
||||
if(!empty($toList))
|
||||
{
|
||||
$storyNames = implode(',', $storyNames);
|
||||
$bugNames = implode(',', $bugNames);
|
||||
$mailContent = sprintf($this->lang->release->mailContent, $release->name);
|
||||
if($storyNames) $mailContent .= sprintf($this->lang->release->storyList, $storyNames);
|
||||
if($bugNames) $mailContent .= sprintf($this->lang->release->bugList, $bugNames);
|
||||
$this->loadModel('mail')->send(implode(',', $toList), $subject, $mailContent, '', false, $emails);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
$extendFields = $this->release->getFlowExtendFields();
|
||||
foreach($extendFields as $extendField) echo "<th>{$extendField->name}</th>";
|
||||
?>
|
||||
<th class='c-actions-5 text-center'><?php echo $lang->actions;?></th>
|
||||
<th class='c-actions-6 text-center'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -91,6 +91,7 @@
|
||||
echo html::a($this->createLink('release', 'changeStatus', "releaseID=$release->id&status=$changedStatus"), '<i class="icon-' . ($release->status == 'normal' ? 'pause' : 'play') . '"></i> ', 'hiddenwin', "class='btn' title='{$lang->release->changeStatusList[$changedStatus]}'");
|
||||
}
|
||||
common::printIcon('release', 'edit', "release=$release->id", $release, 'list');
|
||||
common::printIcon('release', 'notify', "release=$release->id", $release, 'list', 'bullhorn', '', 'iframe', true);
|
||||
if(common::hasPriv('release', 'delete', $release))
|
||||
{
|
||||
$deleteURL = $this->createLink('release', 'delete', "releaseID=$release->id&confirm=yes");
|
||||
|
||||
@@ -49,10 +49,6 @@
|
||||
<th><?php echo $lang->release->desc;?></th>
|
||||
<td colspan='2'><?php echo html::textarea('desc', '', "rows='10' class='form-control kindeditor' hidefocus='true'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->notify;?></th>
|
||||
<td colspan='2'><?php echo html::checkbox('notify', $lang->release->notifyList, 'FB');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->mailto;?></th>
|
||||
<td colspan='2'>
|
||||
|
||||
@@ -52,10 +52,6 @@
|
||||
<th><?php echo $lang->release->desc;?></th>
|
||||
<td colspan='2'><?php echo html::textarea('desc', htmlSpecialString($release->desc), "rows=10 class='form-control kindeditor' hidefocus='true'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->notify;?></th>
|
||||
<td colspan='2'><?php echo html::checkbox('notify', $lang->release->notifyList, $release->notify);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->mailto;?></th>
|
||||
<td colspan='2'>
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
* The notify file of release module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2021 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Guangming Sun<sunguangming@cnezsoft.com>
|
||||
* @package bug
|
||||
* @version $Id: notify.html.php 4129 2021-12-01 01:58:14Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<style>.checkbox-primary {display: inline-block; margin-left: 10px;}</style>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<div class='main-header'>
|
||||
<h2>
|
||||
<span class='label label-id'><?php echo $release->id;?></span>
|
||||
<?php echo $release->name . ' - ' . $lang->release->notify;?>
|
||||
</h2>
|
||||
</div>
|
||||
<form method='post' enctype='multipart/form-data' class='form-ajax'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th><?php echo $lang->release->notifyUsers;?></th>
|
||||
<td><?php echo html::checkbox('notify', $lang->release->notifyList, 'FB');?></td>
|
||||
</tr>
|
||||
<?php echo html::hidden('releaseID', $release->id);?>
|
||||
<tr>
|
||||
<td class='form-actions text-center' colspan='2'><?php echo html::submitButton($lang->release->notify);?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<hr class='small' />
|
||||
<div class='main'><?php include '../../common/view/action.html.php';?></div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -10,7 +10,7 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php $mailTitle = 'RELEASE #' . $object->id . ' ' . $object->name;?>
|
||||
<?php $mailTitle = 'RELEASE #' . $release->id . ' ' . $release->name;?>
|
||||
<?php $module = $this->app->tab == 'product' ? 'release' : 'projectrelease';?>
|
||||
<?php include $this->app->getModuleRoot() . 'common/view/mail.header.html.php';?>
|
||||
<tr>
|
||||
@@ -18,7 +18,7 @@
|
||||
<table cellpadding='0' cellspacing='0' width='600' style='border: none; border-collapse: collapse;'>
|
||||
<tr>
|
||||
<td style='padding: 10px; background-color: #F8FAFE; border: none; font-size: 14px; font-weight: 500; border-bottom: 1px solid #e5e5e5;'>
|
||||
<?php echo html::a(zget($this->config->mail, 'domain', common::getSysURL()) . helper::createLink($module, 'view', "releaseID=$object->id", 'html'), $mailTitle, '', "text-decoration: underline;'");?>
|
||||
<?php echo html::a(zget($this->config->mail, 'domain', common::getSysURL()) . helper::createLink($module, 'view', "releaseID=$release->id", 'html'), $mailTitle, '', "text-decoration: underline;'");?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -28,7 +28,7 @@
|
||||
<td style='padding: 10px; border: none;'>
|
||||
<fieldset style='border: 1px solid #e5e5e5'>
|
||||
<legend style='color: #114f8e'><?php echo $this->lang->release->desc;?></legend>
|
||||
<div style='padding:5px;'><?php echo $object->desc;?></div>
|
||||
<div style='padding:5px;'><?php echo $release->desc;?></div>
|
||||
</fieldset>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
Reference in New Issue
Block a user