blob: bbf45338f5db35b5078d7ab4e3c67659045dfba3 [file] [log] [blame]
talig8e9c0652017-12-20 14:30:43 +02001/*!
svishnev091edfd2018-03-19 12:15:19 +02002 * Copyright © 2016-2018 European Support Limited
talig8e9c0652017-12-20 14:30:43 +02003 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13 * or implied. See the License for the specific language governing
14 * permissions and limitations under the License.
15 */
16
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020017import { connect } from 'react-redux';
talig8e9c0652017-12-20 14:30:43 +020018import VersionsPageActionHelper from './VersionsPageActionHelper.js';
19import VersionsPageCreationActionHelper from './creation/VersionsPageCreationActionHelper.js';
20import PermissionsActionHelper from '../permissions/PermissionsActionHelper.js';
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020021import { onboardingMethod as onboardingMethodType } from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
talig8e9c0652017-12-20 14:30:43 +020022import VersionsPageView from './VersionsPage.jsx';
23
24export const mapStateToProps = ({
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020025 users: { userInfo },
26 versionsPage: { permissions, versionsList },
27 currentScreen: {
28 itemPermission: { isCollaborator, isArchived },
29 props: { itemId }
30 },
31 softwareProductList = []
talig8e9c0652017-12-20 14:30:43 +020032}) => {
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020033 let { versions = [], selectedVersion } = versionsList;
34 let { owner, contributors, viewers } = permissions;
talig8e9c0652017-12-20 14:30:43 +020035
Tal Gitelman71b5dc02019-04-04 19:27:24 +030036 versions.sort((a, b) => Number(a.name) - Number(b.name));
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020037 const curentSoftwareProduct = softwareProductList.find(
38 item => item.id === itemId
39 );
40 return {
41 versions,
42 contributors,
43 viewers,
44 owner,
45 currentUser: userInfo,
46 selectedVersion,
47 isCollaborator,
48 isManual:
49 curentSoftwareProduct &&
50 curentSoftwareProduct.onboardingMethod ===
51 onboardingMethodType.MANUAL,
52 isArchived
53 };
talig8e9c0652017-12-20 14:30:43 +020054};
55
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020056export const mapActionsToProps = (
57 dispatch,
58 { itemType, itemId, additionalProps }
59) => {
60 return {
61 onNavigateToVersion({ version }) {
62 VersionsPageActionHelper.onNavigateToVersion(dispatch, {
63 version,
64 itemId,
65 itemType,
66 additionalProps
67 });
68 },
talig8e9c0652017-12-20 14:30:43 +020069
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020070 onSelectVersion({ version }) {
71 VersionsPageActionHelper.selectVersion(dispatch, { version });
72 },
talig8e9c0652017-12-20 14:30:43 +020073
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020074 onCreateVersion({ version }) {
75 VersionsPageCreationActionHelper.open(dispatch, {
76 baseVersion: version,
77 itemId,
78 itemType,
79 additionalProps
80 });
81 },
talig8e9c0652017-12-20 14:30:43 +020082
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020083 onManagePermissions() {
84 PermissionsActionHelper.openPermissonsManager(dispatch, {
85 itemId,
86 askForRights: false
87 });
88 },
talig8e9c0652017-12-20 14:30:43 +020089
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020090 onTreeFullScreen(treeProps) {
91 VersionsPageActionHelper.openTree(dispatch, treeProps);
92 },
talig8e9c0652017-12-20 14:30:43 +020093
Einav Weiss Keidar7fdf7332018-03-20 14:45:40 +020094 onModalNodeClick({ version }) {
95 VersionsPageActionHelper.selectVersionFromModal(dispatch, {
96 version
97 });
98 },
99 onArchive: () => VersionsPageActionHelper.archiveItem(dispatch, itemId),
100 onRestore: () =>
101 VersionsPageActionHelper.restoreItemFromArchive(dispatch, itemId)
102 };
talig8e9c0652017-12-20 14:30:43 +0200103};
104
105export default connect(mapStateToProps, mapActionsToProps)(VersionsPageView);