diff --git a/server/zanata-frontend/src/app/editor/actions/header-action-types.js b/server/zanata-frontend/src/app/editor/actions/header-action-types.js index cb45a1481c..88db29d25d 100644 --- a/server/zanata-frontend/src/app/editor/actions/header-action-types.js +++ b/server/zanata-frontend/src/app/editor/actions/header-action-types.js @@ -8,4 +8,5 @@ export const CHANGE_UI_LOCALE = 'CHANGE_UI_LOCALE' export const DOCUMENT_SELECTED = 'DOCUMENT_SELECTED' export const LOCALE_SELECTED = 'LOCALE_SELECTED' export const STATS_FETCHED = 'STATS_FETCHED' +export const UPDATE_COUNTS = 'UPDATE_COUNTS' export const HEADER_DATA_FETCHED = 'HEADER_DATA_FETCHED' diff --git a/server/zanata-frontend/src/app/editor/actions/header-actions.js b/server/zanata-frontend/src/app/editor/actions/header-actions.js index 9d1b2f9dae..37609ba015 100644 --- a/server/zanata-frontend/src/app/editor/actions/header-actions.js +++ b/server/zanata-frontend/src/app/editor/actions/header-actions.js @@ -17,6 +17,7 @@ import { DOCUMENT_SELECTED, LOCALE_SELECTED, STATS_FETCHED, + UPDATE_COUNTS, HEADER_DATA_FETCHED } from './header-action-types' import { some, curry, isEmpty } from 'lodash' @@ -37,6 +38,8 @@ const unwrapResponse = (dispatch, errorMsg, response) => { return response.json() } +export const updateCounts = createAction(UPDATE_COUNTS) + export const uiLocaleFetched = createAction(UI_LOCALES_FETCHED) export function fetchUiLocales () { diff --git a/server/zanata-frontend/src/app/editor/reducers/header-data-reducer.js b/server/zanata-frontend/src/app/editor/reducers/header-data-reducer.js index 3cda4cb45a..9c53fe9981 100644 --- a/server/zanata-frontend/src/app/editor/reducers/header-data-reducer.js +++ b/server/zanata-frontend/src/app/editor/reducers/header-data-reducer.js @@ -5,7 +5,8 @@ import { DOCUMENT_SELECTED, HEADER_DATA_FETCHED, LOCALE_SELECTED, - STATS_FETCHED + STATS_FETCHED, + UPDATE_COUNTS } from '../actions/header-action-types' import update from 'immutability-helper' import {prepareLocales, prepareStats, prepareDocs} from '../utils/Util' @@ -80,7 +81,20 @@ const headerDataReducer = handleActions({ update(state, { context: { selectedLocale: {$set: payload} } }), [STATS_FETCHED]: (state, { payload }) => update(state, { - context: { selectedDoc: { counts: {$set: prepareStats(payload)} } } }) + context: { selectedDoc: { counts: {$set: prepareStats(payload)} } } }), + + [UPDATE_COUNTS]: (state, { payload: { + counts, statusBefore, statusAfter } }) => { + return update(state, { + context: { + selectedDoc: { counts: + { + statusBefore: { $set: counts[statusBefore] - 1 }, + statusAfter: { $set: counts[statusAfter] + 1 } + } + }} + }) + } }, defaultState) export default headerDataReducer