vendor view issues fix
Issue-ID: SDC-1850
Change-Id: I13f39b82ea152399ccd43914c893856bc6063cb1
Signed-off-by: svishnev <shlomo-stanisla.vishnevetskiy@amdocs.com>
diff --git a/openecomp-ui/src/nfvo-components/tree/Tree.jsx b/openecomp-ui/src/nfvo-components/tree/Tree.jsx
index 39434fc..1a1ebaf 100644
--- a/openecomp-ui/src/nfvo-components/tree/Tree.jsx
+++ b/openecomp-ui/src/nfvo-components/tree/Tree.jsx
@@ -115,7 +115,6 @@
this.props.nodes.length !== prevProps.nodes.length ||
this.props.selectedNodeId !== prevProps.selectedNodeId
) {
- console.log('update');
this.renderTree();
}
}
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js b/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js
index ea70f9c..34f9b88 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js
@@ -23,6 +23,7 @@
import sortByStringProperty from 'nfvo-utils/sortByStringProperty.js';
import { tabsMapping } from './onboardingCatalog/OnboardingCatalogConstants.js';
import { itemStatus } from 'sdc-app/common/helpers/ItemsHelperConstants.js';
+import { catalogItemStatuses } from './onboardingCatalog/OnboardingCatalogConstants.js';
export const mapStateToProps = ({
onboard: { onboardingCatalog, activeTab, searchValue, filter },
@@ -95,6 +96,7 @@
}
return {
+ isArchived: filter.itemStatus === catalogItemStatuses.ARCHIVED,
finalizedLicenseModelList,
finalizedSoftwareProductList,
licenseModelList,
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx
index 86c437d..ec3d455 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx
@@ -44,44 +44,22 @@
selectedVendor,
searchValue,
onMigrate,
- filteredItems
+ filteredItems,
+ isArchived
} = this.props;
const { vlmList, vspList } = filteredItems;
switch (activeTab) {
case tabsMapping.ARCHIVE:
- return (
- <DetailsCatalogView
- VLMList={vlmList}
- VSPList={vspList}
- users={users}
- onSelectVLM={(item, users) =>
- onSelectLicenseModel(
- item,
- users,
- WCTabsMapping.CATALOG
- )
- }
- onSelectVSP={(item, users) =>
- onSelectSoftwareProduct(
- item,
- users,
- WCTabsMapping.CATALOG
- )
- }
- filter={searchValue}
- onMigrate={onMigrate}
- />
- );
case tabsMapping.ACTIVE:
return (
<DetailsCatalogView
VLMList={vlmList}
VSPList={vspList}
users={users}
- onAddVLM={onAddLicenseModelClick}
- onAddVSP={onAddSoftwareProductClick}
+ onAddVLM={!isArchived && onAddLicenseModelClick}
+ onAddVSP={!isArchived && onAddSoftwareProductClick}
onSelectVLM={(item, users) =>
onSelectLicenseModel(
item,
@@ -100,10 +78,12 @@
onMigrate={onMigrate}
/>
);
+
case tabsMapping.BY_VENDOR:
default:
return (
<VendorCatalogView
+ isArchived={isArchived}
licenseModelList={vlmList}
users={users}
onAddVSP={onAddSoftwareProductClick}
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VSPOverlay.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VSPOverlay.jsx
index c2eb825..fa71f67 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VSPOverlay.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VSPOverlay.jsx
@@ -18,46 +18,63 @@
import i18n from 'nfvo-utils/i18n/i18n.js';
import { migrationStatusMapper } from './OnboardingCatalogConstants.js';
-const VSPOverlay = ({ VSPList, onSelectVSP, onSeeMore, onMigrate }) => (
- <div
- className="vsp-overlay-wrapper"
- onClick={e => {
- e.stopPropagation();
- e.preventDefault();
- }}>
- <div className="vsp-overlay-arrow" />
- <div className="vsp-overlay">
- <div className="vsp-overlay-title">{i18n('Recently Edited')}</div>
- <div className="vsp-overlay-list">
- {VSPList.slice(0, 5).map(vsp => (
- <div
- key={vsp.id}
- className="vsp-overlay-detail"
- onClick={() => {
- if (
- vsp.isOldVersion &&
- vsp.isOldVersion ===
- migrationStatusMapper.OLD_VERSION
- ) {
- onMigrate({
- softwareProduct: vsp
- });
- } else {
- onSelectVSP(vsp);
- }
- }}>
- {i18n(vsp.name)}
- </div>
- ))}
- </div>
- {VSPList.length > 5 && (
- <div className="vsp-overlay-see-more" onClick={onSeeMore}>
- {i18n('See More')}
- </div>
- )}
+const VspOverlayItem = ({ vsp, onClick }) => {
+ const handleClick = () => onClick(vsp);
+ return (
+ <div key={vsp.id} className="vsp-overlay-detail" onClick={handleClick}>
+ {i18n(vsp.name)}
</div>
- </div>
-);
+ );
+};
+
+VspOverlayItem.propTypes = {
+ vsp: PropTypes.object,
+ onClick: PropTypes.func
+};
+
+const VSPOverlay = ({ VSPList, onSelectVSP, onSeeMore, onMigrate }) => {
+ const handleSelect = vsp => {
+ if (
+ vsp.isOldVersion &&
+ vsp.isOldVersion === migrationStatusMapper.OLD_VERSION
+ ) {
+ onMigrate({
+ softwareProduct: vsp
+ });
+ } else {
+ onSelectVSP(vsp);
+ }
+ };
+ return (
+ <div
+ className="vsp-overlay-wrapper"
+ onClick={e => {
+ e.stopPropagation();
+ e.preventDefault();
+ }}>
+ <div className="vsp-overlay-arrow" />
+ <div className="vsp-overlay">
+ <div className="vsp-overlay-title">
+ {i18n('Recently Edited')}
+ </div>
+ <div className="vsp-overlay-list">
+ {VSPList.slice(0, 5).map(vsp => (
+ <VspOverlayItem
+ key={vsp.id}
+ onClick={handleSelect}
+ vsp={vsp}
+ />
+ ))}
+ </div>
+ {VSPList.length > 5 && (
+ <div className="vsp-overlay-see-more" onClick={onSeeMore}>
+ {i18n('See More')}
+ </div>
+ )}
+ </div>
+ </div>
+ );
+};
VSPOverlay.PropTypes = {
VSPList: PropTypes.array,
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorCatalogView.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorCatalogView.jsx
index 02f8d50..ec45258 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorCatalogView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorCatalogView.jsx
@@ -1,17 +1,17 @@
-/*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+/*
+ * 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
- *
+ *
+ * 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.
+ * 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 React from 'react';
import VendorItem from './VendorItem.jsx';
@@ -30,24 +30,27 @@
onVendorSelect,
filter,
onMigrate,
- users
+ users,
+ isArchived
}) => {
+ const showAddButtons = !isArchived;
+ const handeleSelectVSP = vsp => onSelectVSP(vsp, users);
+ const handleOnVspButtonClick = (hasVSP, vlm) =>
+ onVspOverlayChange(vlm.id === currentOverlay || !hasVSP ? null : vlm);
+
return (
- <CatalogList onAddVLM={onAddVLM} onAddVSP={onAddVSP}>
+ <CatalogList
+ onAddVLM={showAddButtons ? onAddVLM : false}
+ onAddVSP={showAddButtons ? onAddVSP : false}>
{filterCatalogItemsByType({ items: licenseModelList, filter }).map(
vlm => (
<VendorItem
key={vlm.id}
+ vlm={vlm}
onAddVSP={onAddVSP}
- onSelectVSP={vsp => onSelectVSP(vsp, users)}
+ onSelectVSP={handeleSelectVSP}
shouldShowOverlay={currentOverlay === vlm.id}
- onVSPButtonClick={hasVSP =>
- onVspOverlayChange(
- vlm.id === currentOverlay || !hasVSP
- ? null
- : vlm
- )
- }
+ onVSPButtonClick={handleOnVspButtonClick}
onVendorSelect={onVendorSelect}
onMigrate={onMigrate}
vendor={vlm}
@@ -66,21 +69,24 @@
onSelectVLM,
filter,
onMigrate,
- users
+ users,
+ isArchived
}) => {
+ const handleAddVsp = !isArchived
+ ? () => onAddVSP(selectedVendor.id)
+ : false;
+ const handleOnSelect = () => onSelectVLM(selectedVendor, users);
return (
<div>
<CatalogList
- onAddVSP={() => {
- onAddVSP(selectedVendor.id);
- }}
+ onAddVSP={handleAddVsp}
vendorPageOptions={{
selectedVendor,
onBack: () => onVendorSelect(false)
}}>
<CatalogItemDetails
key={selectedVendor.id}
- onSelect={() => onSelectVLM(selectedVendor, users)}
+ onSelect={handleOnSelect}
catalogItemTypeClass={catalogItemTypes.LICENSE_MODEL}
onMigrate={onMigrate}
catalogItemData={selectedVendor}
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx
index fda47ef..d3e0eb4 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx
@@ -41,18 +41,15 @@
onAddVSP: PropTypes.func,
onVSPButtonClick: PropTypes.func
};
-
+ handleSeeMore = () => {
+ const { onVendorSelect, vendor } = this.props;
+ onVendorSelect(vendor);
+ };
render() {
- let {
- vendor,
- onSelectVSP,
- shouldShowOverlay,
- onVendorSelect,
- onMigrate
- } = this.props;
+ let { vendor, onSelectVSP, shouldShowOverlay, onMigrate } = this.props;
let { softwareProductList = [], name } = vendor;
return (
- <Tile iconName="vendor" onClick={() => onVendorSelect(vendor)}>
+ <Tile iconName="vendor" onClick={this.handleSeeMore}>
<TileInfo align="center">
<TileInfoLine type="title">
<TooltipWrapper
@@ -65,7 +62,7 @@
<Button
btnType="secondary"
className="venodor-tile-btn"
- onClick={e => this.handleVspCountClick(e)}
+ onClick={this.handleVspCountClick}
data-test-id="catalog-vsp-count"
disabled={!softwareProductList.length}>
{`${softwareProductList.length.toString()} ${i18n(
@@ -80,7 +77,7 @@
onMigrate={onMigrate}
VSPList={softwareProductList}
onSelectVSP={onSelectVSP}
- onSeeMore={() => onVendorSelect(vendor)}
+ onSeeMore={this.handleSeeMore}
/>
</ClickOutsideWrapper>
)}
@@ -92,7 +89,7 @@
btnType="link"
color="primary"
iconName="plusThin"
- onClick={e => this.onCreateVspClick(e)}>
+ onClick={this.onCreateVspClick}>
{i18n('Create new VSP')}
</Button>
</TileFooterCell>
@@ -101,26 +98,28 @@
);
}
- onCreateVspClick(e) {
+ onCreateVspClick = e => {
e.stopPropagation();
e.preventDefault();
const { onAddVSP, vendor: { id } } = this.props;
onAddVSP(id);
- }
+ };
handleClickOutside = () => {
- this.props.onVSPButtonClick(false);
+ const { onVSPButtonClick, vlm } = this.props;
+ onVSPButtonClick(false, vlm);
};
- handleVspCountClick(e) {
+ handleVspCountClick = e => {
e.stopPropagation();
e.preventDefault();
const {
onVSPButtonClick,
- vendor: { softwareProductList }
+ vendor: { softwareProductList },
+ vlm
} = this.props;
const hasVSP = Boolean(softwareProductList.length);
- onVSPButtonClick(hasVSP);
- }
+ onVSPButtonClick(hasVSP, vlm);
+ };
}
export default VendorItem;
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx
index bef88df..8cc396f 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx
@@ -17,7 +17,6 @@
import DetailsCatalogView from '../DetailsCatalogView.jsx';
import i18n from 'nfvo-utils/i18n/i18n.js';
import { tabsMapping } from 'sdc-app/onboarding/onboard/OnboardConstants.js';
-import { tabsMapping as catalogTabsMappping } from '../onboardingCatalog/OnboardingCatalogConstants.js';
const WorkspaceView = props => {
let {
@@ -28,10 +27,13 @@
onSelectSoftwareProduct,
searchValue,
onMigrate,
- catalogActiveTab,
- filteredItems: { vspList, vlmList }
+ filteredItems: { vspList, vlmList },
+ isArchived
} = props;
-
+ const handleSelectVSP = (item, users) =>
+ onSelectSoftwareProduct(item, users, tabsMapping.WORKSPACE);
+ const handleSelectVLM = (item, users) =>
+ onSelectLicenseModel(item, users, tabsMapping.WORKSPACE);
return (
<div className="catalog-wrapper workspace-view">
<div className="catalog-header workspace-header">
@@ -41,22 +43,10 @@
VLMList={vlmList}
VSPList={vspList}
users={users}
- onAddVLM={
- catalogActiveTab === catalogTabsMappping.ACTIVE
- ? onAddLicenseModelClick
- : undefined
- }
- onAddVSP={
- catalogActiveTab === catalogTabsMappping.ACTIVE
- ? onAddSoftwareProductClick
- : undefined
- }
- onSelectVLM={(item, users) =>
- onSelectLicenseModel(item, users, tabsMapping.WORKSPACE)
- }
- onSelectVSP={(item, users) =>
- onSelectSoftwareProduct(item, users, tabsMapping.WORKSPACE)
- }
+ onAddVLM={!isArchived ? onAddLicenseModelClick : undefined}
+ onAddVSP={!isArchived ? onAddSoftwareProductClick : undefined}
+ onSelectVLM={handleSelectVLM}
+ onSelectVSP={handleSelectVSP}
onMigrate={onMigrate}
filter={searchValue}
/>