handleDeleteGroup(key) { const updatedGroups = this.state.groups; delete updatedGroups[key]; this.setState({ groups: updatedGroups, newGroup: '' }); }
flow(function*(groupName, groupId) { const { value: name } = yield prompt('Rename group', undefined, { inputValue: groupName }); if (name) { const group = self.groups.find(g => g.id === groupId); group.setName(name); } })
ExtractAnswer(parseTree) { let multiLineAnswer = parseTree.qnaDefinition().qnaAnswerBody().multiLineAnswer().getText().trim(); // trim first and last line let answerRegexp = /^```(markdown)?\r*\n(?<answer>(.|\n|\r\n|\t| )*)\r?\n.*?```$/gim; let answer = answerRegexp.exec(multiLineAnswer); return answer.groups.answer !== undefined ? answer.groups.answer : ''; }
const exportStore = store => { return { settings: store.settings, projects: store.projects.map(project => pick(project, ['name', 'path', 'id', 'group', 'isWebBased', 'webUrl']) ), groups: store.groups.map(groups => pick(groups, ['name', 'id'])) }; }
ExtractSourceInfo(parseTree) { let srcAssignment = parseTree.qnaDefinition().qnaSourceInfo() if (srcAssignment) { let srcRegExp = /^[ ]*\>[ ]*!#[ ]*@qna.pair.source[ ]*=[ ]*(?<sourceInfo>.*?)$/gmi; let srcParsed = srcRegExp.exec(srcAssignment.getText().trim()); return srcParsed.groups.sourceInfo || QNA_GENERIC_SOURCE; } return QNA_GENERIC_SOURCE }
const parse = async data => { const groupsWithError = data.groups.filter(({ errorCode }) => failure(errorCode)) if (groupsWithError.length > 0) { throw createErrorFromCode(groupsWithError[0].errorCode) } return data }
handleSubmit(event) { event.preventDefault(); event.stopPropagation(); const id = this.props.adminId; const data = { groups: this.state.groups }; Actions.saveGroups(id, data); }
lab.test('it handles a HIDE_GROUPS_SAVE_SUCCESS action', (done) => { Store.dispatch({ type: Constants.HIDE_GROUPS_SAVE_SUCCESS }); const state = Store.getState().groups; Code.expect(state.showSaveSuccess).to.be.false(); done(); });
get currentGroup() { if (self.router.page === routes.group.id) { let group = self.groups.find(groups => groups.id === self.router.params.id); const projects = self.projects.filter(project => project.group && project.group.id === group.id); return { ...group, projects: projects || [] }; } }
get allProjects() { const projectsFromGroups = self.groups.reduce((accum, group) => { accum = [...accum, ...group.projects]; return accum; }, []); return [...projectsFromGroups, ...self.projects]; }
flow(function*() { const { value: name } = yield prompt('Group title'); if (name) { self.groups.push( Group.create({ name }) ); } })
constructor(props) { super(props); this.els = {}; this.state = { groups: props.groups, newGroup: '' }; }