fixing new entries addition

master
Malar Kannan 2017-07-31 19:34:55 +05:30
parent 7de1735300
commit fcdc0841b0
3 changed files with 12 additions and 5 deletions

View File

@ -30,10 +30,15 @@ function simpleAttrAccessor(attrPred: any) {
let lexItem = _.cloneDeep(li);
let allProps = _.get<any>(lexItem, lens, []);
if (allProps.length > 0) {
let prop = _.filter<any>(allProps, (m) => {
return pred(m);
let keepProps = _.filter<any>(allProps, (m) => {
return !pred(m);
});
_.set(prop, '[0]._', value);
_.set(lexItem, lens, _.concat(keepProps, [def(value)]));
// if (prop.length > 0) {
// _.set(prop, '[0]._', value);
// } else {
//
// }
} else {
_.set(lexItem, lens, [def(value)]);
}

View File

@ -82,8 +82,9 @@ function LexMatches(params: any) {
</Container>
);
} else {
let fm = props.fieldMetaMap;
let editEntries = props.matchedEntries.map((mObj: any) => {
let uniqueKey = mObj.guid[0] + '#' + mObj.$.id;
let uniqueKey = fm.guid.get(mObj) + '#' + fm.lang.get(mObj);
return (
<LexEdit
{...props}

View File

@ -25,7 +25,8 @@ function updateXMLState(state: any = {}, action: any) {
let lang = action.lexSelector.lang.get(action.lexItem);
let entries = _.get<any>(newState, 'document.lexicon[0].item');
let entGuid = _.find(entries, (o) => _.isEqual(_.get<any>(o, '$.guid'), guid));
let entLang = _.get<any>(entGuid, 'entry');
let entLang = _.get<any>(entGuid, 'entry', []);
// TODO handle new entries
let entlang = _.find(entLang, (o) => _.isEqual(_.get<any>(o, 'lang[0].$.id'), lang));
_.set(entlang, 'lang[0]', action.lexItem);
return newState;