Adding support for network calls that can be used in the extended views
without relying on the reducers of main app. Also adding functinality to
remove the view from the hanburger menu which will be useful for apps
that want to have a route but not an entry in main menu.
Issue-ID: AAI-1564
Change-Id: Ie4776d030d8458d3ce8d77782d5dfda11e01b878
Signed-off-by: Arul.Nambi <arul.nambi@amdocs.com>
-]
\ No newline at end of file
import GlobalInlineMessageBar from 'app/globalInlineMessageBar/GlobalInlineMessageBar.jsx';
import {getClearGlobalMessageEvent} from 'app/globalInlineMessageBar/GlobalInlineMessageBarActions.js';
import {externalUrlRequest, externalMessageRequest, getSubscriptionPayload} from 'app/contextHandler/ContextHandlerActions.js';
import GlobalInlineMessageBar from 'app/globalInlineMessageBar/GlobalInlineMessageBar.jsx';
import {getClearGlobalMessageEvent} from 'app/globalInlineMessageBar/GlobalInlineMessageBarActions.js';
import {externalUrlRequest, externalMessageRequest, getSubscriptionPayload} from 'app/contextHandler/ContextHandlerActions.js';
import {
filterBarActionTypes
} from 'utils/GlobalConstants.js';
import {
filterBarActionTypes
} from 'utils/GlobalConstants.js';
// add all custom view menu options
for (let view in extensibleViews) {
// add all custom view menu options
for (let view in extensibleViews) {
- menuOptions.push(
- <MenuItem key={extensibleViews[view]['viewName'] + 'Menu'} to={'/' + extensibleViews[view]['viewName']}
- label={extensibleViews[view]['displayName']}
- iconClass={'button-icon ' + extensibleViews[view]['iconClass']}/>
- );
+ let shouldDisplayIcon = false;
+ if(extensibleViews[view]['onlyRoute'] === undefined){
+ shouldDisplayIcon = true;
+ } else if(extensibleViews[view]['onlyRoute'] === false){
+ shouldDisplayIcon = true;
+ }
+ if(shouldDisplayIcon === true){
+ menuOptions.push(
+ <MenuItem key={extensibleViews[view]['viewName'] + 'Menu'} to={'/' + extensibleViews[view]['viewName']}
+ label={extensibleViews[view]['displayName']}
+ iconClass={'button-icon ' + extensibleViews[view]['iconClass']}/>
+ );
+ }
}
let secondaryTitleClass = 'secondary-header';
}
let secondaryTitleClass = 'secondary-header';
import MainScreenHeader from './MainScreenHeader.jsx';
import {decryptParamsForView, changeUrlAddress} from 'utils/Routes.js';
import {isEmpty} from 'lodash';
import MainScreenHeader from './MainScreenHeader.jsx';
import {decryptParamsForView, changeUrlAddress} from 'utils/Routes.js';
import {isEmpty} from 'lodash';
+import {genericRequest} from 'app/networking/NetworkCalls.js';
import {
Route,
HashRouter as Router,
import {
Route,
HashRouter as Router,
let customViewList = [];
extensibleViews.forEach(function(view,key) {
let customViewList = [];
extensibleViews.forEach(function(view,key) {
- let path;
- if(isEmpty(extensibleViews[key]['routePath'])){
+ let path = ''
+ , extKey = ''
+ ;
+ if(isEmpty(extensibleViews[key]['viewParams'])){
path = '/' + view.viewName + '/:extensibleViewParams?';
path = '/' + view.viewName + '/:extensibleViewParams?';
+ extKey = view.viewName + 'Route';
- path = '/' + view.viewName + view.routePath + '/:extensibleViewParams?';
+ path = '/' + view.viewName + view.viewParams;
+ extKey = view.viewName + view.viewParams + 'Route'
var renderComponent = (props) => {
let viewParams = {};
var renderComponent = (props) => {
let viewParams = {};
- if(props.match.params.extensibleViewParams !== undefined) {
+ if(isEmpty(extensibleViews[key]['viewParams']) && props.match.params.extensibleViewParams !== undefined) {
viewParams = decryptParamsForView(props.match.params.extensibleViewParams);
}
viewParams = decryptParamsForView(props.match.params.extensibleViewParams);
}
changeRouteCallback = {(routeParam, historyObj) => {
changeUrlAddress(routeParam, historyObj);
}}
changeRouteCallback = {(routeParam, historyObj) => {
changeUrlAddress(routeParam, historyObj);
}}
+ networkingCallbackPromise = {(url, relativeURL, httpMethodType) => {
+ return genericRequest(url, relativeURL, httpMethodType);
+ }}
viewName={view.displayName}
viewData={extensibleViewNetworkCallbackData}
viewParams={viewParams}/>
);
}
};
viewName={view.displayName}
viewData={extensibleViewNetworkCallbackData}
viewParams={viewParams}/>
);
}
};
-
- customViewList.push(
- <Route key={extensibleViews[key]['viewName'] + 'Route'} path={path}
- render={renderComponent}/>
+ if(isEmpty(extensibleViews[key]['isExact']) && !extensibleViews[key]['isExact']){
+ customViewList.push(
+ <Route key={extKey} path={path} render={renderComponent}/>
+ } else {
+ customViewList.push(
+ <Route key={extKey} exact path={path} render={renderComponent}/>
+ );
+ }
+
// Import section (used as anchor to add extension imports)
let components = {};
// Import section (used as anchor to add extension imports)
let components = {};
// Components section (used as an anchor to add extension components)
export default components;
// Components section (used as an anchor to add extension components)
export default components;
* limitations under the License.
* ============LICENSE_END=========================================================
*/
* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
+import {BASE_URL} from 'app/networking/NetworkConstants.js';
+
function fetchRequest(URL, POST, POST_HEADER, BODY) {
return fetch(URL, {
credentials: 'same-origin',
function fetchRequest(URL, POST, POST_HEADER, BODY) {
return fetch(URL, {
credentials: 'same-origin',
return fetch(URL, {
credentials: 'same-origin',
method: GET
return fetch(URL, {
credentials: 'same-origin',
method: GET
+ }).then(
+ (response) => response.json()
+ );
+const genericRequest = (url, relativeURL, httpMethodType) => {
+ let URL;
+ if(relativeURL){
+ URL = BASE_URL.concat(url);
+ } else {
+ URL = url;
+ }
+ switch(httpMethodType){
+ case 'GET':
+ return fetch(URL, {
+ credentials: 'same-origin',
+ method: 'GET'
+ }).then(
+ (response) => response.json()
+ );
+ }
+};
+
module.exports = {
fetchRequest: fetchRequest,
fetchRequestObj: fetchRequestObj,
module.exports = {
fetchRequest: fetchRequest,
fetchRequestObj: fetchRequestObj,
+ getRequest: getRequest,
+ genericRequest: genericRequest