Merge branch 'sprint/175_sgm_fixbug'

This commit is contained in:
liyuchun
2021-12-02 12:03:39 +08:00
21 changed files with 277 additions and 91 deletions
+1 -1
View File
@@ -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();
}
+4
View File
@@ -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();
-6
View File
@@ -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';
+28
View File
@@ -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.
*
+17 -2
View File
@@ -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;
}
}
+3 -2
View File
@@ -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'>
-4
View File
@@ -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';?>
+28
View File
@@ -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.
*
+1
View File
@@ -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 : ';
+1
View File
@@ -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>';
+1
View File
@@ -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 : ';
+1
View File
@@ -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ề : ';
+2 -1
View File
@@ -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
View File
@@ -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);
}
}
}
+2 -1
View File
@@ -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");
-4
View File
@@ -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'>
-4
View File
@@ -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'>
+39
View File
@@ -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';?>
+3 -3
View File
@@ -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>