Merge "Readonly screen for limits"
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx
index aa1321c..8473c1a 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx
@@ -245,6 +245,7 @@
 				<Tab disabled={isTabsDisabled} tabId={tabIds.SP_LIMITS} data-test-id='sp-limits-tab' title={i18n('SP Limits')}>
 					{selectedTab === tabIds.SP_LIMITS && 
 						<EntitlementPoolsLimits 
+							isReadOnlyMode={isReadOnlyMode}
 							limitType={limitType.SERVICE_PROVIDER} 
 							limitsList={limitsList.filter(item => item.type === limitType.SERVICE_PROVIDER)}
 							selectedLimit={this.state.selectedLimit}
@@ -254,19 +255,33 @@
 				<Tab disabled={isTabsDisabled} tabId={tabIds.VENDOR_LIMITS} data-test-id='vendor-limits-tab' title={i18n('Vendor Limits')}>
 					{selectedTab === tabIds.VENDOR_LIMITS && 
 						<EntitlementPoolsLimits 
+							isReadOnlyMode={isReadOnlyMode}
 							limitType={limitType.VENDOR} 
 							limitsList={limitsList.filter(item => item.type === limitType.VENDOR)}
 							selectedLimit={this.state.selectedLimit}
 							onCloseLimitEditor={() => this.onCloseLimitEditor()}
 							onSelectLimit={limit => this.onSelectLimit(limit)}/>}
 				</Tab>
-				{selectedTab !== tabIds.GENERAL ? 
-					<Button disabled={this.state.selectedLimit} className='add-limit-button' tabId={tabIds.ADD_LIMIT_BUTTON} btnType='link' iconName='plus'>{i18n('Add Limit')}</Button> : 
+				{
+					selectedTab !== tabIds.GENERAL ?
+						<Button
+							disabled={this.state.selectedLimit || isReadOnlyMode}
+							className='add-limit-button'
+							tabId={tabIds.ADD_LIMIT_BUTTON}
+							btnType='link'
+							iconName='plus'>
+							{i18n('Add Limit')}
+						</Button>
+					:
 					<div></div> // Render empty div to not break tabs
 				}
 			</Tabs>
 			<GridSection className='license-model-modal-buttons entitlement-pools-editor-buttons'>
-			{!this.state.selectedLimit && <Button btnType='default' disabled={!this.props.isFormValid} onClick={() => this.submit()} type='reset'>{i18n('Save')}</Button>}
+				{!this.state.selectedLimit &&
+					<Button btnType='default' disabled={!this.props.isFormValid || isReadOnlyMode} onClick={() => this.submit()} type='reset'>
+						{i18n('Save')}
+					</Button>
+				}
 			<Button btnType={this.state.selectedLimit ? 'default' : 'outline'} onClick={() => this.props.onCancel()} type='reset'>
 				{i18n('Cancel')}
 			</Button>
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorView.jsx
index 647e205..70fb43e 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorView.jsx
@@ -269,7 +269,8 @@
 								limitsList={limitsList.filter(item => item.type === limitType.SERVICE_PROVIDER)}
 								selectedLimit={this.state.selectedLimit}
 								onCloseLimitEditor={() => this.onCloseLimitEditor()}
-								onSelectLimit={limit => this.onSelectLimit(limit)}/>}
+								onSelectLimit={limit => this.onSelectLimit(limit)}
+								isReadOnlyMode={isReadOnlyMode} />}
 					</Tab>
 					<Tab tabId={tabIds.VENDOR_LIMITS} disabled={isTabsDisabled} data-test-id='general-tab' title={i18n('Vendor Limits')}>
 						{selectedTab === tabIds.VENDOR_LIMITS && 
@@ -278,16 +279,29 @@
 								limitsList={limitsList.filter(item => item.type === limitType.VENDOR)}
 								selectedLimit={this.state.selectedLimit}
 								onCloseLimitEditor={() => this.onCloseLimitEditor()}
-								onSelectLimit={limit => this.onSelectLimit(limit)}/>}
+								onSelectLimit={limit => this.onSelectLimit(limit)}
+								isReadOnlyMode={isReadOnlyMode} />}
 					</Tab>
 					{selectedTab !== tabIds.GENERAL ? 
-						<Button disabled={this.state.selectedLimit} className='add-limit-button' tabId={tabIds.ADD_LIMIT_BUTTON} btnType='link' iconName='plus'>{i18n('Add Limit')}</Button> : 
+							<Button
+								className='add-limit-button'
+								tabId={tabIds.ADD_LIMIT_BUTTON}
+								btnType='link'
+								iconName='plus'
+								disabled={this.state.selectedLimit || isReadOnlyMode}>
+								{i18n('Add Limit')}
+							</Button>
+						:
 						<div></div> // Render empty div to not break tabs
 					}
 				</Tabs>
 				
 				<GridSection className='license-model-modal-buttons license-key-group-editor-buttons'>
-					{!this.state.selectedLimit && <Button btnType='default' disabled={!this.props.isFormValid} onClick={() => this.submit()} type='reset'>{i18n('Save')}</Button>}
+					{!this.state.selectedLimit &&
+						<Button btnType='default' disabled={!this.props.isFormValid || isReadOnlyMode} onClick={() => this.submit()} type='reset'>
+							{i18n('Save')}
+						</Button>
+					}
 					<Button btnType={this.state.selectedLimit ? 'default' : 'outline'} onClick={() => this.props.onCancel()} type='reset'>
 						{i18n('Cancel')}
 					</Button>
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditor.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditor.jsx
index d4b7e5c..110e513 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditor.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditor.jsx
@@ -179,7 +179,7 @@
 						</GridItem>
 					</GridSection>
 					<GridSection className='limit-editor-buttons'>
-						<Button btnType='outline'  disabled={!isFormValid} onClick={() => this.submit()} type='reset'>{i18n('Save')}</Button>
+						<Button btnType='outline' disabled={!isFormValid || isReadOnlyMode} onClick={() => this.submit()} type='reset'>{i18n('Save')}</Button>
 						<Button btnType='outline' color='gray' onClick={onCancel} type='reset'>{i18n('Cancel')}</Button>
 					</GridSection>
 				</Form>
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/Limits.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/Limits.jsx
index b144f63..4841d03 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/Limits.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/Limits.jsx
@@ -61,10 +61,9 @@
 		}
 		return (
 			<div className='license-model-limits-view'>
-				<ListEditorView
-					isReadOnlyMode={isReadOnlyMode}>
+				<ListEditorView isReadOnlyMode={isReadOnlyMode}>
 					{this.props.selectedLimit === NEW_LIMIT_TEMP_ID && limitEditor.data &&
-						<LimitEditor limitsNames={limitsNames} onCancel={onCloseLimitEditor} onSubmit={ () => this.submit()}/>
+						<LimitEditor limitsNames={limitsNames} onCancel={onCloseLimitEditor} onSubmit={ () => this.submit()} isReadOnlyMode={isReadOnlyMode}/>
 					}
 					{limitsList.length === 0 && !limitEditor.data && <div className='no-limits-text'>{i18n('There are no limits')}</div>}
 					{limitsList.map(limit =>
@@ -75,7 +74,13 @@
 							clickable={!selectedLimit}
 							isReadOnlyMode={isReadOnlyMode}
 							limit={limit}/>
-						{limit.id === selectedLimit &&  limitEditor.data && <LimitEditor limitsNames={limitsNames} onCancel={onCloseLimitEditor} onSubmit={ () => this.submit()}/>}
+						{limit.id === selectedLimit &&  limitEditor.data &&
+							<LimitEditor
+								limitsNames={limitsNames}
+								onCancel={onCloseLimitEditor}
+								onSubmit={ () => this.submit()}
+								isReadOnlyMode={isReadOnlyMode} />
+						}
 					</div> )}
 				</ListEditorView>