*/
import {aaiActionTypes} from './MainScreenWrapperConstants.js';
+import {
+ POST,
+ POST_HEADER,
+ BASE_URL,
+ ERROR_RETRIEVING_DATA
+} from 'app/networking/NetworkConstants.js';
+import {
+ MESSAGE_LEVEL_DANGER
+} from 'utils/GlobalConstants.js';
+import {fetchRequestObj} from 'app/networking/NetworkCalls.js';
+
+import {
+ getSetGlobalMessageEvent,
+ getClearGlobalMessageEvent
+} from 'app/globalInlineMessageBar/GlobalInlineMessageBarActions.js';
function createWindowSizeChangeEvent() {
return {
dispatch(createShowMenuEvent(show));
};
}
+
+function createViewDataFoundEvent(viewData, paramName, curViewData) {
+ var obj = {};
+ obj['data'] = {};
+ obj['data']['paramName'] = paramName;
+ obj['data']['viewData'] = viewData;
+ obj['data']['curViewData'] = curViewData;
+ obj['type'] = aaiActionTypes.EXTENSIBLE_VIEW_NETWORK_CALLBACK_RESPONSE_RECEIVED;
+
+ return obj;
+}
+
+function extensibleViewData(dataFetchRequest, paramName, curViewData) {
+ return dispatch => {
+ return dataFetchRequest().then(
+ (response) => {
+ return response.json();
+ }
+ ).then(
+ (responseJson) => {
+ dispatch(createViewDataFoundEvent(responseJson, paramName, curViewData));
+ }).catch(
+ () => {
+ dispatch(getSetGlobalMessageEvent(ERROR_RETRIEVING_DATA, MESSAGE_LEVEL_DANGER));
+ dispatch(createViewDataFoundEvent({}, paramName, curViewData));
+ //To-do: If need to send a flag later on to the view, add a function to have the flag
+ });
+ };
+}
+
+export function extensibleViewNetworkCallback(urlApi, postBody, paramName, curViewData) {
+
+ let dataFetchRequest =
+ () => fetchRequestObj(BASE_URL + urlApi, POST,
+ POST_HEADER, postBody);
+
+
+ return dispatch => {
+ dispatch(extensibleViewData(dataFetchRequest, paramName, curViewData));
+ };
+}
+
+export function extensibleViewMessageCallback(msgText, msgSeverity) {
+ if (msgText.length > 0) {
+ return dispatch => {
+ dispatch(
+ getSetGlobalMessageEvent(msgText, msgSeverity));
+ };
+ } else {
+ return dispatch => {
+ dispatch(getClearGlobalMessageEvent());
+ };
+ }
+}
+
+export function clearExtensibleViewData() {
+ return {
+ type: aaiActionTypes.EXTENSIBLE_VIEW_NETWORK_CALLBACK_CLEAR_DATA,
+ data: {}
+ };
+}
+
+export function setSecondaryTitle(title) {
+ return {
+ type: aaiActionTypes.SET_SECONDARY_TITLE,
+ data: title
+ };
+}