| /*! |
| * Copyright © 2016-2018 European Support Limited |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express |
| * or implied. See the License for the specific language governing |
| * permissions and limitations under the License. |
| */ |
| |
| import { connect } from 'react-redux'; |
| import VersionsPageActionHelper from './VersionsPageActionHelper.js'; |
| import VersionsPageCreationActionHelper from './creation/VersionsPageCreationActionHelper.js'; |
| import PermissionsActionHelper from '../permissions/PermissionsActionHelper.js'; |
| import { onboardingMethod as onboardingMethodType } from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js'; |
| import VersionsPageView from './VersionsPage.jsx'; |
| |
| export const mapStateToProps = ({ |
| users: { userInfo }, |
| versionsPage: { permissions, versionsList }, |
| currentScreen: { |
| itemPermission: { isCollaborator, isArchived }, |
| props: { itemId } |
| }, |
| softwareProductList = [] |
| }) => { |
| let { versions = [], selectedVersion } = versionsList; |
| let { owner, contributors, viewers } = permissions; |
| |
| versions.sort((a, b) => Number(a.name) - Number(b.name)); |
| const curentSoftwareProduct = softwareProductList.find( |
| item => item.id === itemId |
| ); |
| return { |
| versions, |
| contributors, |
| viewers, |
| owner, |
| currentUser: userInfo, |
| selectedVersion, |
| isCollaborator, |
| isManual: |
| curentSoftwareProduct && |
| curentSoftwareProduct.onboardingMethod === |
| onboardingMethodType.MANUAL, |
| isArchived |
| }; |
| }; |
| |
| export const mapActionsToProps = ( |
| dispatch, |
| { itemType, itemId, additionalProps } |
| ) => { |
| return { |
| onNavigateToVersion({ version }) { |
| VersionsPageActionHelper.onNavigateToVersion(dispatch, { |
| version, |
| itemId, |
| itemType, |
| additionalProps |
| }); |
| }, |
| |
| onSelectVersion({ version }) { |
| VersionsPageActionHelper.selectVersion(dispatch, { version }); |
| }, |
| |
| onCreateVersion({ version }) { |
| VersionsPageCreationActionHelper.open(dispatch, { |
| baseVersion: version, |
| itemId, |
| itemType, |
| additionalProps |
| }); |
| }, |
| |
| onManagePermissions() { |
| PermissionsActionHelper.openPermissonsManager(dispatch, { |
| itemId, |
| askForRights: false |
| }); |
| }, |
| |
| onTreeFullScreen(treeProps) { |
| VersionsPageActionHelper.openTree(dispatch, treeProps); |
| }, |
| |
| onModalNodeClick({ version }) { |
| VersionsPageActionHelper.selectVersionFromModal(dispatch, { |
| version |
| }); |
| }, |
| onArchive: () => VersionsPageActionHelper.archiveItem(dispatch, itemId), |
| onRestore: () => |
| VersionsPageActionHelper.restoreItemFromArchive(dispatch, itemId), |
| onDelete: () => |
| VersionsPageActionHelper.deleteItemFromArchive(dispatch, itemId) |
| }; |
| }; |
| |
| export default connect(mapStateToProps, mapActionsToProps)(VersionsPageView); |