{"version":3,"sources":["webpack:///./app/containers/ObjectivesManager/constants.js","webpack:///./app/containers/ObjectivesManager/actions.js","webpack:///./app/containers/ObjectivesManager/sagas.js","webpack:///./app/containers/ObjectivesManager/reducer.js","webpack:///./app/containers/ObjectivesManager/CreateEditModal.js","webpack:///./app/containers/ObjectivesManager/index.js"],"names":["UPDATE_OBJECTIVE","CREATE_OBJECTIVE","DELETE_OBJECTIVE","RERANK_OBJECTIVE","OBJECTIVE_RANK","FIRST","LAST","UP","DOWN","createObjective","createAction","createObjectiveSuccess","createObjectiveError","updateObjective","updateObjectiveSuccess","updateObjectiveError","deleteObjective","deleteObjectiveSuccess","deleteObjectiveError","rerankObjective","rerankObjectiveSuccess","rerankObjectiveError","objectiveManagerSaga","action","objective","_","pick","payload","definedControlFrameworks","map","conf","client","getClient","mutate","mutation","gql","variables","data","CreateSonraiObjectives","items","Error","put","fetchObjectives","console","error","UpdateSonraiObjectives","srn","result","DeleteSonraiObjectives","get","ranking","RerankObjective","all","takeLatest","initialState","fromJS","creating","updating","objectiveManagerReducer","handleActions","state","set","SectionHeader","small","FormLabel","required","Icon","fa","name","mapStateToProps","createStructuredSelector","controlFrameworks","selectControlGroups","withConnect","connect","dispatch","bindActionCreators","compose","toggle","editingObjective","useState","setName","description","setDescription","frameworks","setFrameworks","addingCf","setAddingCf","isEditing","isEmpty","Modal","isOpen","size","ModalHeader","ModalBody","Input","value","onChange","e","target","MarkdownEditor","style","marginTop","Table","frameworkConf","index","framework","controlFrameworkSrn","BorderlessButton","color","disabled","onClick","fromIndex","orderArray","ele","splice","moveFrameworkUp","title","length","moveFrameworkDown","display","gridTemplateColumns","gridColumnGap","SelectBar","isClearable","selectedOption","options","filterNot","cf","find","startsWith","SONRAI_ORG_NAME","getIn","List","toList","toJS","label","Button","outline","push","controlFrameworkOrder","ModalFooter","TextLink","BarLoadingAnimation","ObjectivesManager","props","setState","createModalOpen","undefined","row","obj","objectiveSrn","rankAction","currentIndex","objectives","findIndex","objectiveSrnToMove","relativeObjectiveSrn","first","rerankType","last","deletingObjective","resourceId","createdBy","createdByUser","sonraiUsers","actions","styles","container","gridTemplateRows","gridTemplateAreas","gridRowGap","padding","height","overflow","titleContainer","gridArea","pageTitle","fontSize","objectivesContainer","tableData","this","getTableData","canCreate","userHasPermission","permissionName","openCreateModal","BorderedCard","objectivesLoading","loadedControlGroups","DataTable","autosize","expandCollapseColumn","customColumnConfig","minWidth","width","sortable","hide","valueGetter","params","cellRendererFramework","CreatedByBadge","table","canEdit","openEditModal","cloneObjective","marginLeft","showDeleteConfirm","rankObjective","marginRight","closeCreateModal","cancelDeleting","doDelete","React","Component","selectObjectives","selectObjectivesLoading","selectLoadedControlGroups","selectSonraiUsers","withReducer","injectReducer","key","reducer","withSaga","injectSaga","saga","sagas","permissionChecker"],"mappings":"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","file":"48.37dbed6d1d61517f349b.chunk.js","sourcesContent":["export const UPDATE_OBJECTIVE = 'app/ObjectiveManager/UPDATE_OBJECTIVE'\nexport const UPDATE_OBJECTIVE_SUCCESS =\n 'app/ObjectiveManager/UPDATE_OBJECTIVE_SUCCESS'\nexport const UPDATE_OBJECTIVE_ERROR =\n 'app/ObjectiveManager/UPDATE_OBJECTIVE_ERROR'\nexport const CREATE_OBJECTIVE = 'app/ObjectiveManager/CREATE_OBJECTIVE'\nexport const CREATE_OBJECTIVE_SUCCESS =\n 'app/ObjectiveManager/CREATE_OBJECTIVE_SUCCESS'\nexport const CREATE_OBJECTIVE_ERROR =\n 'app/ObjectiveManager/CREATE_OBJECTIVE_ERROR'\nexport const DELETE_OBJECTIVE = 'app/ObjectiveManager/DELETE_OBJECTIVE'\nexport const DELETE_OBJECTIVE_SUCCESS =\n 'app/ObjectiveManager/DELETE_OBJECTIVE_SUCCESS'\nexport const DELETE_OBJECTIVE_ERROR =\n 'app/ObjectiveManager/DELETE_OBJECTIVE_ERROR'\nexport const RERANK_OBJECTIVE = 'app/ObjectiveManager/RERANK_OBJECTIVE'\nexport const RERANK_OBJECTIVE_SUCCESS =\n 'app/ObjectiveManager/RERANK_OBJECTIVE_SUCCESS'\nexport const RERANK_OBJECTIVE_ERROR =\n 'app/ObjectiveManager/RERANK_OBJECTIVE_ERROR'\n\nexport const OBJECTIVE_RANK = {\n FIRST: 'FIRST',\n LAST: 'LAST',\n UP: 'UP',\n DOWN: 'DOWN',\n}\n","import {\n UPDATE_OBJECTIVE,\n UPDATE_OBJECTIVE_SUCCESS,\n UPDATE_OBJECTIVE_ERROR,\n CREATE_OBJECTIVE,\n CREATE_OBJECTIVE_SUCCESS,\n CREATE_OBJECTIVE_ERROR,\n DELETE_OBJECTIVE,\n DELETE_OBJECTIVE_ERROR,\n DELETE_OBJECTIVE_SUCCESS,\n RERANK_OBJECTIVE,\n RERANK_OBJECTIVE_ERROR,\n RERANK_OBJECTIVE_SUCCESS,\n} from './constants'\nimport { createAction } from 'redux-actions'\n\nexport const createObjective = createAction(CREATE_OBJECTIVE)\nexport const createObjectiveSuccess = createAction(CREATE_OBJECTIVE_SUCCESS)\nexport const createObjectiveError = createAction(CREATE_OBJECTIVE_ERROR)\nexport const updateObjective = createAction(UPDATE_OBJECTIVE)\nexport const updateObjectiveSuccess = createAction(UPDATE_OBJECTIVE_SUCCESS)\nexport const updateObjectiveError = createAction(UPDATE_OBJECTIVE_ERROR)\nexport const deleteObjective = createAction(DELETE_OBJECTIVE)\nexport const deleteObjectiveSuccess = createAction(DELETE_OBJECTIVE_SUCCESS)\nexport const deleteObjectiveError = createAction(DELETE_OBJECTIVE_ERROR)\nexport const rerankObjective = createAction(RERANK_OBJECTIVE)\nexport const rerankObjectiveSuccess = createAction(RERANK_OBJECTIVE_SUCCESS)\nexport const rerankObjectiveError = createAction(RERANK_OBJECTIVE_ERROR)\n","import { all, put, takeLatest } from 'redux-saga/effects'\nimport gql from 'graphql-tag'\nimport _ from 'lodash'\n\nimport { getClient } from 'apolloClient'\nimport { fetchObjectives } from 'containers/SonraiData/actions'\nimport {\n createObjectiveSuccess,\n createObjectiveError,\n updateObjectiveSuccess,\n updateObjectiveError,\n deleteObjectiveError,\n deleteObjectiveSuccess,\n rerankObjectiveError,\n rerankObjectiveSuccess,\n} from './actions'\nimport {\n CREATE_OBJECTIVE,\n UPDATE_OBJECTIVE,\n DELETE_OBJECTIVE,\n RERANK_OBJECTIVE,\n} from './constants'\n\nfunction* createObjective(action) {\n //Remove extra props from the input, only matters on a clone\n const objective = _.pick(action.payload, ['srn', 'name', 'description'])\n objective.definedControlFrameworks = (\n action.payload.definedControlFrameworks || []\n ).map(conf => _.pick(conf, ['controlFrameworkSrn', 'controlFrameworkOrder']))\n\n try {\n const client = getClient()\n const result = yield client.mutate({\n mutation: gql`\n mutation create_SonraiObjective(\n $objective: CreateSonraiObjectiveInput!\n ) {\n CreateSonraiObjectives(input: [$objective]) {\n items {\n srn\n name\n }\n }\n }\n `,\n variables: {\n objective: objective,\n },\n })\n\n if (result.data.CreateSonraiObjectives.items === null) {\n throw new Error('Received null response')\n }\n\n yield put(fetchObjectives())\n yield put(createObjectiveSuccess())\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('Error creating objective', e)\n yield put(createObjectiveError())\n }\n}\n\nfunction* updateObjective(action) {\n //Remove extra props from the input to the update\n const objective = _.pick(action.payload, ['srn', 'name', 'description'])\n objective.definedControlFrameworks = (\n action.payload.definedControlFrameworks || []\n ).map(conf => _.pick(conf, ['controlFrameworkSrn', 'controlFrameworkOrder']))\n\n try {\n const client = getClient()\n const result = yield client.mutate({\n mutation: gql`\n mutation update_SonraiObjective(\n $objective: UpdateSonraiObjectiveInput!\n ) {\n UpdateSonraiObjectives(input: [$objective]) {\n items {\n srn\n name\n }\n }\n }\n `,\n variables: {\n objective: objective,\n },\n })\n\n if (result.data.UpdateSonraiObjectives.items === null) {\n throw new Error('Received null response')\n }\n\n yield put(fetchObjectives())\n yield put(updateObjectiveSuccess())\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('Error updating objective', e)\n yield put(updateObjectiveError())\n }\n}\n\nfunction* deleteObjective(action) {\n const srn = action.payload\n\n try {\n const client = getClient()\n const result = yield client.mutate({\n mutation: gql`\n mutation delete_SonraiObjective($srn: String!) {\n DeleteSonraiObjectives(input: [{ srn: $srn }]) {\n items {\n srn\n deleted\n }\n }\n }\n `,\n variables: {\n srn: srn,\n },\n })\n\n if (\n result.data.DeleteSonraiObjectives.items === null ||\n !_.get(result, ['data', 'DeleteSonraiObjectives', 'items', 0, 'deleted'])\n ) {\n throw new Error('Received null response')\n }\n\n yield put(fetchObjectives())\n yield put(deleteObjectiveSuccess())\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('Error deleting objective', e)\n yield put(deleteObjectiveError())\n }\n}\n\nfunction* rerankObjective(action) {\n try {\n const client = getClient()\n const result = yield client.mutate({\n mutation: gql`\n mutation rank_SonraiObjective($ranking: RerankObjectiveInput!) {\n RerankObjective(input: $ranking) {\n srn\n objectiveRank\n }\n }\n `,\n variables: {\n ranking: action.payload,\n },\n })\n\n if (\n result.data.RerankObjective === null ||\n !_.get(result, ['data', 'RerankObjective', 'srn'])\n ) {\n throw new Error('Received null response')\n }\n\n yield put(fetchObjectives())\n yield put(rerankObjectiveSuccess())\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('Error ranking the objective', e)\n yield put(rerankObjectiveError())\n }\n}\n\nfunction* objectiveManagerSaga() {\n yield all([\n takeLatest(CREATE_OBJECTIVE, createObjective),\n takeLatest(UPDATE_OBJECTIVE, updateObjective),\n takeLatest(DELETE_OBJECTIVE, deleteObjective),\n takeLatest(RERANK_OBJECTIVE, rerankObjective),\n ])\n}\n\nexport default objectiveManagerSaga\n","import { fromJS } from 'immutable'\nimport { handleActions } from 'redux-actions'\n\nimport {\n UPDATE_OBJECTIVE,\n UPDATE_OBJECTIVE_SUCCESS,\n UPDATE_OBJECTIVE_ERROR,\n CREATE_OBJECTIVE,\n CREATE_OBJECTIVE_SUCCESS,\n CREATE_OBJECTIVE_ERROR,\n} from './constants'\n\nconst initialState = fromJS({\n creating: false,\n updating: null,\n})\n\nconst objectiveManagerReducer = handleActions(\n {\n [CREATE_OBJECTIVE]: state => state.set('creating', true),\n [CREATE_OBJECTIVE_SUCCESS]: state => state.set('creating', false),\n [CREATE_OBJECTIVE_ERROR]: state => state.set('creating', false),\n [UPDATE_OBJECTIVE]: (state, { payload }) =>\n state.set('updating', payload.srn),\n [UPDATE_OBJECTIVE_SUCCESS]: state => state.set('updating', null),\n [UPDATE_OBJECTIVE_ERROR]: state => state.set('updating', null),\n },\n initialState\n)\n\nexport default objectiveManagerReducer\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport ImmutablePropTypes from 'react-immutable-proptypes'\nimport { connect } from 'react-redux'\nimport { createStructuredSelector } from 'reselect'\nimport { compose, bindActionCreators } from 'redux'\nimport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n Input,\n Table,\n} from 'reactstrap'\nimport _ from 'lodash'\nimport { List } from 'immutable'\n\nimport SelectBar from 'components/SelectBar'\nimport BorderlessButton from 'components/BorderlessButton'\nimport Icon from 'components/Icon'\nimport SectionHeader from 'components/SectionHeader'\nimport Button from 'components/Button'\nimport TextLink from 'components/TextLink'\nimport MarkdownEditor from 'components/MarkdownEditor'\nimport FormLabel from 'components/FormLabel'\nimport { selectControlGroups } from 'containers/ControlFrameworkData/selectors'\nimport { SONRAI_ORG_NAME } from 'appConstants'\n\nimport { updateObjective, createObjective } from './actions'\n\nexport const CreateEditModal = ({\n toggle,\n editingObjective = {},\n createObjective,\n updateObjective,\n controlFrameworks,\n}) => {\n const [name, setName] = useState(editingObjective.name)\n const [description, setDescription] = useState(\n editingObjective.description || ''\n )\n const [frameworks, setFrameworks] = useState(\n _.get(editingObjective, ['definedControlFrameworks'], [])\n )\n const [addingCf, setAddingCf] = useState(null)\n\n const isEditing = !_.isEmpty(editingObjective)\n\n const saveObjective = () => {\n if (isEditing) {\n updateObjective({\n name,\n description,\n srn: editingObjective.srn,\n definedControlFrameworks: frameworks,\n })\n } else {\n createObjective({\n name,\n description,\n definedControlFrameworks: frameworks,\n })\n }\n\n toggle()\n }\n\n const moveFrameworkUp = fromIndex => {\n if (fromIndex === 0) {\n return\n }\n\n const orderArray = [...frameworks]\n const ele = orderArray[fromIndex]\n orderArray.splice(fromIndex, 1)\n orderArray.splice(fromIndex - 1, 0, ele)\n\n setFrameworks(orderArray)\n }\n\n const moveFrameworkDown = fromIndex => {\n if (fromIndex === frameworks.length - 1) {\n return\n }\n\n const orderArray = [...frameworks]\n const ele = orderArray[fromIndex]\n orderArray.splice(fromIndex, 1)\n orderArray.splice(fromIndex + 1, 0, ele)\n\n setFrameworks(orderArray)\n }\n\n const removeFramework = fromIndex => {\n const orderArray = [...frameworks]\n orderArray.splice(fromIndex, 1)\n\n setFrameworks(orderArray)\n }\n\n const addControlFramework = () => {\n const orderArray = [...frameworks]\n orderArray.push({\n controlFrameworkSrn: addingCf,\n controlFrameworkOrder: frameworks.length,\n })\n\n setFrameworks(orderArray)\n setAddingCf(null)\n }\n\n return (\n \n \n {isEditing ? 'Edit Objective' : 'Create Objective'}\n \n \n Details\n
\n Objective Name\n setName(e.target.value)} />\n
\n\n
\n Description\n setDescription(value)}\n />\n
\n\n \n Control Frameworks\n \n

\n * At least one Control Framework must be added to an Objective to make\n it visible in the Swimlane Checkup\n

\n \n \n \n \n \n \n \n {frameworks.map((frameworkConf, index) => {\n const framework = controlFrameworks.get(\n frameworkConf.controlFrameworkSrn\n )\n return (\n \n \n \n \n \n \n )\n })}\n \n
Title\n
{framework.get('title')}\n moveFrameworkUp(index)}\n title=\"Reorder Up\"\n >\n \n \n \n moveFrameworkDown(index)}\n title=\"Reorder Down\"\n >\n \n \n \n removeFramework(index)}\n title=\"Remove\"\n >\n \n \n
\n\n \n {\n if (selectedOption) {\n setAddingCf(selectedOption.value)\n } else {\n setAddingCf(null)\n }\n }}\n options={controlFrameworks\n .filterNot(\n cf =>\n frameworks.find(\n conf => conf.controlFrameworkSrn === cf.get('srn')\n ) ||\n (cf\n .get('resourceId', '')\n .startsWith(`/org/${SONRAI_ORG_NAME}`) &&\n !cf.getIn(['clonedBy', 'items'], List()).isEmpty())\n )\n .toList()\n .toJS()\n .map(cf => ({ label: cf.title, value: cf.srn }))}\n />\n \n Add Framework\n \n \n
\n \n \n Cancel\n \n \n \n
\n )\n}\n\nCreateEditModal.propTypes = {\n controlFrameworks: ImmutablePropTypes.map.isRequired,\n createObjective: PropTypes.func.isRequired,\n editingObjective: PropTypes.object,\n toggle: PropTypes.func,\n updateObjective: PropTypes.func.isRequired,\n}\n\nconst mapStateToProps = createStructuredSelector({\n controlFrameworks: selectControlGroups,\n})\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n updateObjective,\n createObjective,\n },\n dispatch\n )\n}\n\nconst withConnect = connect(mapStateToProps, mapDispatchToProps)\n\nexport default compose(withConnect)(CreateEditModal)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { createStructuredSelector } from 'reselect'\nimport { compose, bindActionCreators } from 'redux'\nimport ImmutablePropTypes from 'react-immutable-proptypes'\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap'\n\nimport injectReducer from 'utils/injectReducer'\nimport injectSaga from 'utils/injectSaga'\n\nimport CreatedByBadge from 'components/CreatedByBadge'\nimport BarLoadingAnimation from 'components/BarLoadingAnimation'\nimport TextLink from 'components/TextLink'\nimport DataTable from 'components/DataTable'\nimport BorderedCard from 'components/BorderedCard'\nimport Button from 'components/Button'\nimport Icon from 'components/Icon'\nimport {\n selectObjectives,\n selectObjectivesLoading,\n selectSonraiUsers,\n} from 'containers/SonraiData/selectors'\nimport { fetchObjectives } from 'containers/SonraiData/actions'\nimport BorderlessButton from 'components/BorderlessButton'\nimport { selectLoadedControlGroups } from 'containers/ControlFrameworkData/selectors'\nimport permissionChecker from 'containers/PermissionChecker'\n\nimport { OBJECTIVE_RANK } from './constants'\nimport sagas from './sagas'\nimport reducer from './reducer'\nimport CreateEditModal from './CreateEditModal'\nimport { createObjective, deleteObjective, rerankObjective } from './actions'\n\nclass ObjectivesManager extends React.Component {\n constructor(props) {\n super(props)\n\n props.fetchObjectives()\n\n this.state = {\n createModalOpen: false,\n editingObjective: undefined,\n deletingObjective: null,\n }\n\n this.styles = {\n container: {\n display: 'grid',\n gridTemplateColumns: '1fr',\n gridTemplateRows: '45px 1fr',\n gridTemplateAreas: '\"title\" \"objectives\"',\n gridColumnGap: '1em',\n gridRowGap: '0.5em',\n padding: '1em',\n height: '100%',\n overflow: 'auto',\n },\n titleContainer: {\n gridArea: 'title',\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n },\n pageTitle: {\n fontSize: '1.5em',\n },\n objectivesContainer: {\n gridArea: 'objectives',\n },\n }\n }\n\n closeCreateModal = () => {\n this.setState({ createModalOpen: false, editingObjective: undefined })\n }\n\n openCreateModal = () => {\n this.setState({ createModalOpen: true })\n }\n\n openEditModal = row => {\n this.setState({ createModalOpen: true, editingObjective: row.objective })\n }\n\n cloneObjective = obj => {\n this.props.createObjective({\n name: obj.name,\n description: obj.description,\n definedControlFrameworks: obj.definedControlFrameworks,\n })\n }\n\n rankObjective = (objectiveSrn, rankAction) => {\n const currentIndex = this.props.objectives.findIndex(\n obj => obj.get('srn') === objectiveSrn\n )\n\n switch (rankAction) {\n case OBJECTIVE_RANK.FIRST:\n this.props.rerankObjective({\n objectiveSrnToMove: objectiveSrn,\n relativeObjectiveSrn: this.props.objectives.first().get('srn'),\n rerankType: 'BEFORE_RELATIVE_OBJECTIVE',\n })\n return\n case OBJECTIVE_RANK.UP:\n if (currentIndex <= 0) {\n return\n }\n\n this.props.rerankObjective({\n objectiveSrnToMove: objectiveSrn,\n relativeObjectiveSrn: this.props.objectives\n .get(currentIndex - 1)\n .get('srn'),\n rerankType: 'BEFORE_RELATIVE_OBJECTIVE',\n })\n return\n case OBJECTIVE_RANK.DOWN:\n if (\n currentIndex < 0 ||\n currentIndex === this.props.objectives.size - 1\n ) {\n return\n }\n\n this.props.rerankObjective({\n objectiveSrnToMove: objectiveSrn,\n relativeObjectiveSrn: this.props.objectives\n .get(currentIndex + 1)\n .get('srn'),\n rerankType: 'AFTER_RELATIVE_OBJECTIVE',\n })\n return\n case OBJECTIVE_RANK.LAST:\n this.props.rerankObjective({\n objectiveSrnToMove: objectiveSrn,\n relativeObjectiveSrn: this.props.objectives.last().get('srn'),\n rerankType: 'AFTER_RELATIVE_OBJECTIVE',\n })\n return\n }\n }\n\n showDeleteConfirm = srn => {\n this.setState({\n deletingObjective: srn,\n })\n }\n\n cancelDeleting = () => {\n this.setState({\n deletingObjective: null,\n })\n }\n\n doDelete = () => {\n this.props.deleteObjective(this.state.deletingObjective)\n\n this.setState({\n deletingObjective: null,\n })\n }\n\n getTableData = () => {\n return this.props.objectives.toJS().map((obj, index) => {\n return {\n name: obj.name,\n srn: obj.srn,\n resourceId: obj.resourceId,\n controlFrameworks: obj.definedControlFrameworks.length,\n description: obj.description,\n objective: obj,\n createdBy: obj.createdBy,\n createdByUser: this.props.sonraiUsers.getIn(\n [obj.createdBy, 'name'],\n 'Sonrai'\n ),\n actions: obj,\n ranking: index,\n }\n })\n }\n\n render() {\n const tableData = this.getTableData()\n\n const canCreate = this.props.userHasPermission({\n permissionName: 'edit.objectives',\n })\n\n return (\n
\n
\n
Manage Objectives
\n
\n {canCreate && (\n \n )}\n
\n
\n \n {this.props.objectivesLoading || !this.props.loadedControlGroups ? (\n \n ) : (\n {\n if (!params.data) {\n return ''\n }\n\n return params.data.createdByUser\n },\n cellRendererFramework: ({ data }) => {\n if (!data) {\n return null\n }\n return \n },\n },\n createdByUser: {\n hide: true,\n sortable: false,\n },\n actions: {\n hide: !canCreate,\n sortable: false,\n cellRendererFramework: params => {\n if (!params.data) {\n return null\n }\n\n if (!canCreate) {\n return null\n }\n\n const canEdit = this.props.userHasPermission({\n permissionName: 'edit.objectives',\n resourceId: params.data.resourceId,\n })\n\n return (\n
\n this.openEditModal(params.data)}\n >\n \n \n \n this.cloneObjective(params.data.objective)\n }\n style={{ marginLeft: '0.5em' }}\n >\n \n \n \n this.showDeleteConfirm(params.data.srn)\n }\n >\n \n \n
\n )\n },\n },\n ranking: {\n sortable: false,\n cellRendererFramework: params => {\n if (!params.data) {\n return null\n }\n\n const canEdit = this.props.userHasPermission({\n permissionName: 'edit.objectives',\n })\n\n return (\n
\n \n this.rankObjective(\n params.data.srn,\n OBJECTIVE_RANK.FIRST\n )\n }\n style={{ marginRight: '0.5em' }}\n >\n \n \n \n this.rankObjective(\n params.data.srn,\n OBJECTIVE_RANK.UP\n )\n }\n style={{ marginRight: '0.5em' }}\n >\n \n \n \n this.rankObjective(\n params.data.srn,\n OBJECTIVE_RANK.DOWN\n )\n }\n style={{ marginRight: '0.5em' }}\n >\n \n \n \n this.rankObjective(\n params.data.srn,\n OBJECTIVE_RANK.LAST\n )\n }\n style={{ marginRight: '0.5em' }}\n >\n \n \n
\n )\n },\n },\n }}\n />\n )}\n
\n {this.state.createModalOpen && (\n \n )}\n {this.state.deletingObjective && (\n \n \n Confirm Delete\n \n \n Deleting the objective will leave all attached control frameworks\n intact. Continue deletion of this objective?\n \n \n Cancel\n \n \n \n )}\n
\n )\n }\n}\n\nObjectivesManager.propTypes = {\n createObjective: PropTypes.func.isRequired,\n deleteObjective: PropTypes.func.isRequired,\n fetchObjectives: PropTypes.func.isRequired,\n loadedControlGroups: PropTypes.bool,\n objectives: ImmutablePropTypes.list.isRequired,\n objectivesLoading: PropTypes.bool,\n rerankObjective: PropTypes.func.isRequired,\n sonraiUsers: ImmutablePropTypes.map.isRequired,\n userHasPermission: PropTypes.func.isRequired,\n}\n\nconst mapStateToProps = createStructuredSelector({\n objectives: selectObjectives,\n objectivesLoading: selectObjectivesLoading,\n loadedControlGroups: selectLoadedControlGroups,\n sonraiUsers: selectSonraiUsers,\n})\n\nfunction mapDispatchToProps(dispatch) {\n return bindActionCreators(\n {\n deleteObjective,\n fetchObjectives,\n createObjective,\n rerankObjective,\n },\n dispatch\n )\n}\n\nconst withConnect = connect(mapStateToProps, mapDispatchToProps)\n\nconst withReducer = injectReducer({ key: 'search', reducer })\nconst withSaga = injectSaga({ key: 'search', saga: sagas })\n\nexport default compose(\n withConnect,\n withReducer,\n withSaga,\n permissionChecker\n)(ObjectivesManager)\n"],"sourceRoot":""}