Merge branch 'master' of https://github.com/metersphere/metersphere
This commit is contained in:
commit
7ddb5f51a3
|
@ -112,6 +112,7 @@ public class MailService {
|
|||
emails.add(u.getEmail());
|
||||
});
|
||||
users = emails.toArray(new String[0]);
|
||||
LogUtil.info("收件人地址"+users);
|
||||
helper.setText(getContent(Template, context), true);
|
||||
helper.setTo(users);
|
||||
try {
|
||||
|
@ -195,7 +196,8 @@ public class MailService {
|
|||
|
||||
public void sendTestPlanStartNotice(MessageDetail messageDetail, List<String> userIds, AddTestPlanRequest testPlan, String eventType) {
|
||||
Map<String, String> context = getTestPlanContext(testPlan);
|
||||
context.put("creator", testPlan.getCreator());
|
||||
User user = userMapper.selectByPrimaryKey(testPlan.getCreator());
|
||||
context.put("creator", user.getName());
|
||||
try {
|
||||
String endTemplate = IOUtils.toString(this.getClass().getResource("/mail/TestPlanStart.html"), StandardCharsets.UTF_8);
|
||||
sendTestPlanNotice(addresseeIdList(messageDetail, userIds, eventType), context, endTemplate);
|
||||
|
@ -205,8 +207,9 @@ public class MailService {
|
|||
}
|
||||
|
||||
public void sendTestPlanEndNotice(MessageDetail messageDetail, List<String> userIds, AddTestPlanRequest testPlan, String eventType) {
|
||||
User user = userMapper.selectByPrimaryKey(testPlan.getCreator());
|
||||
Map<String, String> context = getTestPlanContext(testPlan);
|
||||
context.put("creator", userIds.toString());
|
||||
context.put("creator", user.getName());
|
||||
try {
|
||||
String endTemplate = IOUtils.toString(this.getClass().getResource("/mail/TestPlanEnd.html"), StandardCharsets.UTF_8);
|
||||
sendTestPlanNotice(addresseeIdList(messageDetail, userIds, eventType), context, endTemplate);
|
||||
|
@ -216,8 +219,9 @@ public class MailService {
|
|||
}
|
||||
|
||||
public void sendTestPlanDeleteNotice(MessageDetail messageDetail, List<String> userIds, AddTestPlanRequest testPlan, String eventType) {
|
||||
User user = userMapper.selectByPrimaryKey(testPlan.getCreator());
|
||||
Map<String, String> context = getTestPlanContext(testPlan);
|
||||
context.put("creator", userIds.toString());
|
||||
context.put("creator", user.getName());
|
||||
try {
|
||||
String endTemplate = IOUtils.toString(this.getClass().getResource("/mail/TestPlanDelete.html"), StandardCharsets.UTF_8);
|
||||
sendTestPlanNotice(addresseeIdList(messageDetail, userIds, eventType), context, endTemplate);
|
||||
|
|
|
@ -7,6 +7,7 @@ import io.metersphere.base.mapper.ext.ExtSystemParameterMapper;
|
|||
import io.metersphere.commons.constants.ParamConstants;
|
||||
import io.metersphere.commons.exception.MSException;
|
||||
import io.metersphere.commons.utils.EncryptUtils;
|
||||
import io.metersphere.commons.utils.LogUtil;
|
||||
import io.metersphere.dto.BaseSystemConfigDTO;
|
||||
import io.metersphere.i18n.Translator;
|
||||
import io.metersphere.ldap.domain.LdapInfo;
|
||||
|
@ -99,6 +100,7 @@ public class SystemParameterService {
|
|||
try {
|
||||
javaMailSender.testConnection();
|
||||
} catch (MessagingException e) {
|
||||
LogUtil.error(e);
|
||||
MSException.throwException(Translator.get("connection_failed"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -318,6 +318,17 @@ public class UserService {
|
|||
}
|
||||
|
||||
public void updateUser(User user) {
|
||||
// todo 提取重复代码
|
||||
if (StringUtils.isNotBlank(user.getEmail())) {
|
||||
UserExample example = new UserExample();
|
||||
UserExample.Criteria criteria = example.createCriteria();
|
||||
criteria.andEmailEqualTo(user.getEmail());
|
||||
criteria.andIdNotEqualTo(user.getId());
|
||||
if (userMapper.countByExample(example) > 0) {
|
||||
MSException.throwException(Translator.get("user_email_already_exists"));
|
||||
}
|
||||
}
|
||||
|
||||
user.setUpdateTime(System.currentTimeMillis());
|
||||
userMapper.updateByPrimaryKeySelective(user);
|
||||
// 禁用用户之后,剔除在线用户
|
||||
|
|
|
@ -141,7 +141,7 @@ public class TestPlanService {
|
|||
}
|
||||
}
|
||||
|
||||
public List<TestPlan> getTestPlanByName(String name) {
|
||||
public synchronized List<TestPlan> getTestPlanByName(String name) {
|
||||
TestPlanExample example = new TestPlanExample();
|
||||
example.createCriteria().andWorkspaceIdEqualTo(SessionUtils.getCurrentWorkspaceId())
|
||||
.andNameEqualTo(name);
|
||||
|
|
|
@ -145,26 +145,26 @@ export default {
|
|||
data.isReadOnly = true;
|
||||
if (data.type === 'EMAIL') {
|
||||
data.isReadOnly = !data.isReadOnly
|
||||
data.webhook = ""
|
||||
data.webhook = ''
|
||||
}
|
||||
},
|
||||
handleEditTask(index,data) {
|
||||
data.isSet = true
|
||||
if (data.type === 'EMAIL') {
|
||||
data.isReadOnly = false
|
||||
data.webhook = ""
|
||||
data.isReadOnly = false;
|
||||
data.webhook = ''
|
||||
} else {
|
||||
data.isReadOnly = true
|
||||
data.isReadOnly = true;
|
||||
}
|
||||
},
|
||||
handleAddTaskModel(type) {
|
||||
let Task = {};
|
||||
Task.event = [];
|
||||
Task.userIds = [];
|
||||
Task.type = "";
|
||||
Task.webhook = "";
|
||||
Task.type = '';
|
||||
Task.webhook = '';
|
||||
Task.isSet = true;
|
||||
Task.identification = "";
|
||||
Task.identification = '';
|
||||
if (type === 'jenkinsTask') {
|
||||
Task.taskType = 'JENKINS_TASK'
|
||||
this.form.jenkinsTask.push(Task)
|
||||
|
|
|
@ -146,18 +146,18 @@ export default {
|
|||
handleEdit(index, data) {
|
||||
data.isReadOnly = true;
|
||||
if (data.type === 'EMAIL') {
|
||||
data.isReadOnly = !data.isReadOnly
|
||||
data.webhook = ""
|
||||
data.isReadOnly = !data.isReadOnly;
|
||||
data.webhook = '';
|
||||
}
|
||||
},
|
||||
handleAddTaskModel(type) {
|
||||
let Task = {};
|
||||
Task.event = [];
|
||||
Task.userIds = [];
|
||||
Task.type = "";
|
||||
Task.webhook = "";
|
||||
Task.type = '';
|
||||
Task.webhook = '';
|
||||
Task.isSet = true;
|
||||
Task.identification = "";
|
||||
Task.identification = '';
|
||||
if (type === 'jenkinsTask') {
|
||||
Task.taskType = 'JENKINS_TASK'
|
||||
this.form.jenkinsTask.push(Task)
|
||||
|
@ -194,21 +194,21 @@ export default {
|
|||
handleEditTask(index,data) {
|
||||
data.isSet = true
|
||||
if (data.type === 'EMAIL') {
|
||||
data.isReadOnly = false
|
||||
data.webhook = ""
|
||||
data.isReadOnly = false;
|
||||
data.webhook = ''
|
||||
} else {
|
||||
data.isReadOnly = true
|
||||
data.isReadOnly = true;
|
||||
}
|
||||
|
||||
},
|
||||
addTask(data) {
|
||||
let list = []
|
||||
data.isSet = false
|
||||
list.push(data)
|
||||
let list = [];
|
||||
data.isSet = false;
|
||||
list.push(data);
|
||||
let param = {};
|
||||
param.messageDetail = list
|
||||
param.messageDetail = list;
|
||||
this.result = this.$post("/notice/save/message/task", param, () => {
|
||||
this.initForm()
|
||||
this.initForm();
|
||||
this.$success(this.$t('commons.save_success'));
|
||||
})
|
||||
},
|
||||
|
@ -216,7 +216,7 @@ export default {
|
|||
if (!data[index].identification) {
|
||||
data.splice(index, 1)
|
||||
} else {
|
||||
data[index].isSet = false
|
||||
data[index].isSet = false;
|
||||
}
|
||||
|
||||
},
|
||||
|
|
|
@ -147,8 +147,8 @@ export default {
|
|||
handleEdit(index, data) {
|
||||
data.isReadOnly = true;
|
||||
if (data.type === 'EMAIL') {
|
||||
data.isReadOnly = !data.isReadOnly
|
||||
data.webhook = ""
|
||||
data.isReadOnly = !data.isReadOnly;
|
||||
data.webhook = ''
|
||||
}
|
||||
},
|
||||
handleAddTaskModel(type) {
|
||||
|
@ -166,13 +166,13 @@ export default {
|
|||
}
|
||||
},
|
||||
handleEditTask(index,data) {
|
||||
data.isSet = true
|
||||
data.testId = this.testId
|
||||
data.isSet = true;
|
||||
data.testId = this.testId;
|
||||
if (data.type === 'EMAIL') {
|
||||
data.isReadOnly = false
|
||||
data.webhook = ""
|
||||
data.isReadOnly = false;
|
||||
data.webhook = ''
|
||||
} else {
|
||||
data.isReadOnly = true
|
||||
data.isReadOnly = true;
|
||||
}
|
||||
},
|
||||
handleAddTask(index, data) {
|
||||
|
@ -192,9 +192,9 @@ export default {
|
|||
}
|
||||
},
|
||||
addTask(data) {
|
||||
let list = []
|
||||
data.isSet = false
|
||||
list.push(data)
|
||||
let list = [];
|
||||
data.isSet = false;
|
||||
list.push(data);
|
||||
let param = {};
|
||||
param.messageDetail = list
|
||||
this.result = this.$post("/notice/save/message/task", param, () => {
|
||||
|
|
|
@ -151,26 +151,26 @@ export default {
|
|||
data.isReadOnly = true;
|
||||
if (data.type === 'EMAIL') {
|
||||
data.isReadOnly = !data.isReadOnly
|
||||
data.webhook = ""
|
||||
data.webhook = '';
|
||||
}
|
||||
},
|
||||
handleEditTask(index,data) {
|
||||
data.isSet = true
|
||||
if (data.type === 'EMAIL') {
|
||||
data.isReadOnly = false
|
||||
data.webhook = ""
|
||||
data.isReadOnly = false;
|
||||
data.webhook = '';
|
||||
} else {
|
||||
data.isReadOnly = true
|
||||
data.isReadOnly = true;
|
||||
}
|
||||
},
|
||||
handleAddTaskModel(type) {
|
||||
let Task = {};
|
||||
Task.event = [];
|
||||
Task.userIds = [];
|
||||
Task.type = "";
|
||||
Task.webhook = "";
|
||||
Task.type = '';
|
||||
Task.webhook = '';
|
||||
Task.isSet = true;
|
||||
Task.identification = "";
|
||||
Task.identification = '';
|
||||
if (type === 'jenkinsTask') {
|
||||
Task.taskType = 'JENKINS_TASK'
|
||||
this.form.jenkinsTask.push(Task)
|
||||
|
|
|
@ -151,27 +151,27 @@ export default {
|
|||
handleEdit(index, data) {
|
||||
data.isReadOnly = true;
|
||||
if (data.type === 'EMAIL') {
|
||||
data.isReadOnly = !data.isReadOnly
|
||||
data.webhook = ""
|
||||
data.isReadOnly = !data.isReadOnly;
|
||||
data.webhook = '';
|
||||
}
|
||||
},
|
||||
handleEditTask(index,data) {
|
||||
data.isSet = true
|
||||
data.isSet = true;
|
||||
if (data.type === 'EMAIL') {
|
||||
data.isReadOnly = false
|
||||
data.webhook = ""
|
||||
data.isReadOnly = false;
|
||||
data.webhook = '';
|
||||
} else {
|
||||
data.isReadOnly = true
|
||||
data.isReadOnly = true;
|
||||
}
|
||||
},
|
||||
handleAddTaskModel(type) {
|
||||
let Task = {};
|
||||
Task.event = [];
|
||||
Task.userIds = [];
|
||||
Task.type = "";
|
||||
Task.webhook = "";
|
||||
Task.type = '';
|
||||
Task.webhook = '';
|
||||
Task.isSet = true;
|
||||
Task.identification = "";
|
||||
Task.identification = '';
|
||||
if (type === 'jenkinsTask') {
|
||||
Task.taskType = 'JENKINS_TASK'
|
||||
this.form.jenkinsTask.push(Task)
|
||||
|
@ -207,13 +207,13 @@ export default {
|
|||
}
|
||||
},
|
||||
addTask(data) {
|
||||
let list = []
|
||||
data.isSet = false
|
||||
list.push(data)
|
||||
let list = [];
|
||||
data.isSet = false;
|
||||
list.push(data);
|
||||
let param = {};
|
||||
param.messageDetail = list
|
||||
param.messageDetail = list;
|
||||
this.result = this.$post("/notice/save/message/task", param, () => {
|
||||
this.initForm()
|
||||
this.initForm();
|
||||
this.$success(this.$t('commons.save_success'));
|
||||
})
|
||||
},
|
||||
|
|
|
@ -58,11 +58,8 @@
|
|||
<el-form-item :label="$t('test_track.plan.plan_stage')" :label-width="formLabelWidth" prop="stage">
|
||||
<el-select v-model="form.stage" clearable :placeholder="$t('test_track.plan.input_plan_stage')">
|
||||
<el-option :label="$t('test_track.plan.smoke_test')" value="smoke"></el-option>
|
||||
<!--<el-option :label="$t('test_track.plan.functional_test')" value="functional"></el-option>-->
|
||||
<!--<el-option :label="$t('test_track.plan.integration_testing')" value="integration"></el-option>-->
|
||||
<el-option :label="$t('test_track.plan.system_test')" value="system"></el-option>
|
||||
<el-option :label="$t('test_track.plan.regression_test')" value="regression"></el-option>
|
||||
<!--<el-option :label="$t('test_track.plan.version_validation')" value="version"></el-option>-->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
|
@ -208,11 +208,9 @@ export default {
|
|||
methods: {
|
||||
initTableData() {
|
||||
if (this.planId) {
|
||||
// param.planId = this.planId;
|
||||
this.condition.planId = this.planId;
|
||||
}
|
||||
if (this.selectNodeIds && this.selectNodeIds.length > 0) {
|
||||
// param.nodeIds = this.selectNodeIds;
|
||||
this.condition.nodeIds = this.selectNodeIds;
|
||||
}
|
||||
this.result = this.$post(this.buildPagePath(this.queryPath), this.condition, response => {
|
||||
|
|
|
@ -293,6 +293,8 @@
|
|||
this.projectId = data[0].id;
|
||||
this.projectName = data[0].name;
|
||||
this.search();
|
||||
// 获取项目时刷新该项目模块
|
||||
this.getProjectNode(this.projectId)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -129,6 +129,10 @@ export default {
|
|||
|
||||
pre {
|
||||
margin: 0 0;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
width: 100%;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.comment-delete {
|
||||
|
|
|
@ -231,7 +231,6 @@
|
|||
this.selectIds.add(item.id);
|
||||
});
|
||||
} else {
|
||||
// this.selectIds.clear();
|
||||
this.testReviews.forEach(item => {
|
||||
if (this.selectIds.has(item.id)) {
|
||||
this.selectIds.delete(item.id);
|
||||
|
|
|
@ -389,7 +389,7 @@ export default {
|
|||
this.saveReport(reportId);
|
||||
},
|
||||
saveReport(reportId) {
|
||||
// this.$post('/test/plan/case/edit', {id: this.testCase.id, reportId: reportId});
|
||||
|
||||
},
|
||||
getComments(testCase) {
|
||||
let id = '';
|
||||
|
|
|
@ -301,7 +301,6 @@ export default {
|
|||
return path + "/" + this.currentPage + "/" + this.pageSize;
|
||||
},
|
||||
handleEdit(testCase, index) {
|
||||
// console.log(testCase)
|
||||
this.isReadOnly = false;
|
||||
if (!checkoutTestManagerOrTestUser()) {
|
||||
this.isReadOnly = true;
|
||||
|
|
Loading…
Reference in New Issue