Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion localization/TranscriberAdmin-en-1.2.xliff
Original file line number Diff line number Diff line change
Expand Up @@ -9147,8 +9147,15 @@
<context context-type="sourcefile">Access.tsx</context>
</context-group>
</trans-unit>
<trans-unit id="shared.TooBusy">
<source>Unable to start new save while already saving.</source>
<target/>
<context-group>
<context context-type="sourcefile">Access.tsx</context>
</context-group>
</trans-unit>
<trans-unit id="shared.NoSaveWoMedia">
<source>No media has been saved to the cloud. Please check your internet connection and try again.</source>
<source>Save Failed. Please check your internet connection and try again.</source>
<target/>
<context-group>
<context context-type="sourcefile">Access.tsx</context>
Expand Down
8 changes: 7 additions & 1 deletion localization/TranscriberAdmin-en.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -7840,9 +7840,15 @@
<target/>
</segment>
</unit>
<unit id="shared.TooBusy">
<segment>
<source>Unable to start new save while already saving.</source>
<target/>
</segment>
</unit>
<unit id="shared.NoSaveWoMedia">
<segment>
<source>No media has been saved to the cloud. Please check your internet connection and try again.</source>
<source>Save Failed. Please check your internet connection and try again.</source>
<target/>
</segment>
</unit>
Expand Down
1 change: 0 additions & 1 deletion src/renderer/public/localization/strings54ed2272.json

This file was deleted.

1 change: 1 addition & 0 deletions src/renderer/public/localization/strings7c4590f5.json

Large diffs are not rendered by default.

134 changes: 84 additions & 50 deletions src/renderer/src/components/Sheet/ScriptureTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,21 @@ export function ScriptureTable(props: IProps) {

const setUpdate = (value: boolean) => (updateRef.current = value);

const runWhenSheetIdle = (label: string, fn: () => void) => {
if (savingRef.current || updateRef.current) {
waitForIt(
label,
() => !savingRef.current && !updateRef.current,
() => false,
50
)
.then(fn)
.catch(() => showMessage(t.saving));
return;
}
fn();
};

const sheetHasUnsavedChanges = useMemo(
() => isChanged(toolId),
[isChanged, toolId]
Expand Down Expand Up @@ -817,6 +832,7 @@ export function ScriptureTable(props: IProps) {
reference: '',
published: [] as PublishDestinationEnum[],
book: scripture ? firstBook : '',
sectionUpdated: currentDateTime(),
} as ISheet;
return newRow;
};
Expand All @@ -825,45 +841,40 @@ export function ScriptureTable(props: IProps) {
ix?: number,
ptype?: PassageTypeEnum
) => {
if (savingRef.current) {
showMessage(t.saving);
return;
}
if (updateRef.current) return;
setUpdate(true);
const i = getUndelIndex(sheetRef.current, ix);
let newRow = newSection(level, sheetRef.current, i);
if (ptype === PassageTypeEnum.MOVEMENT) {
newRow = { ...newRow, reference: publishingTitle(ptype) };
}
let newData = insertAt(sheetRef.current, newRow, i);
//if added in the middle...resequence
if (i !== undefined) newData = shtResequence(newData);
if (ptype === PassageTypeEnum.MOVEMENT) {
setSheet(newData);
} else {
setSheet(addPassageTo(level, newData, ptype, i));
}
setUpdate(false);
setChanged(true);
runWhenSheetIdle('finish save or update before add section', () => {
setUpdate(true);
const i = getUndelIndex(sheetRef.current, ix);
let newRow = newSection(level, sheetRef.current, i);
if (ptype === PassageTypeEnum.MOVEMENT) {
newRow = { ...newRow, reference: publishingTitle(ptype) };
}
let newData = insertAt(sheetRef.current, newRow, i);
//if added in the middle...resequence
if (i !== undefined) newData = shtResequence(newData);
if (ptype === PassageTypeEnum.MOVEMENT) {
setSheet(newData);
} else {
setSheet(addPassageTo(level, newData, ptype, i));
}
setUpdate(false);
setChanged(true);
});
};

const addPassage = (
ptype?: PassageTypeEnum,
ix?: number,
before?: boolean
) => {
if (savingRef.current || updateRef.current) {
showMessage(t.saving);
return;
}
setUpdate(true);
const i = getUndelIndex(sheetRef.current, ix);
setSheet(
addPassageTo(SheetLevel.Passage, sheetRef.current, ptype, i, before)
);
setUpdate(false);
setChanged(true);
runWhenSheetIdle('finish save or update before add passage', () => {
setUpdate(true);
const i = getUndelIndex(sheetRef.current, ix);
setSheet(
addPassageTo(SheetLevel.Passage, sheetRef.current, ptype, i, before)
);
setUpdate(false);
setChanged(true);
});
};
const movePassage = (ix: number, before: boolean, nextSection: boolean) => {
if (savingRef.current || updateRef.current) {
Expand Down Expand Up @@ -1546,31 +1557,54 @@ export function ScriptureTable(props: IProps) {
setBusy(false);
};
const setSaving = (value: boolean) => (savingRef.current = value);
const doneSaving = () => {
const doneSavingSuccess = () => {
setSaving(false);
setLastSaved(currentDateTime()); //force refresh the sheet
setChanged(false);
setLastSaved(currentDateTime()); // force refresh the sheet from saved data
saveCompleted(toolId);
setComplete(100);
setUpdate(false);
};
const doneSavingFailure = (saveErr: string) => {
setSaving(false);
setUpdate(false);
setBusy(false);
saveCompleted(toolId, saveErr);
setComplete(100);
showMessage(saveErr);
};
const finishAfterSave = () => {
if (doForceDataChanges.current) {
doForceDataChanges.current = false;
waitForRemoteQueue(t.publishingWarning)
.then(() => forceDataChanges())
.catch(() => {})
.finally(() => doneSavingSuccess());
} else {
doneSavingSuccess();
}
};
const save = () => {
if (!savingRef.current && !updateRef.current) {
setSaving(true);
setUpdate(true);
setChanged(false);
prevSave = lastSaved || '';
showMessage(t.saving);
handleSave().then(() => {
if (doForceDataChanges.current) {
waitForRemoteQueue(t.publishingWarning).then(() => {
forceDataChanges().then(() => doneSaving());
});
doForceDataChanges.current = false;
} else {
doneSaving();
}
});
if (savingRef.current || updateRef.current) {
waitForIt(
'finish save or update',
() => !savingRef.current && !updateRef.current,
() => false,
50
)
.then(() => save())
.catch(() => {
doneSavingFailure(ts.TooBusy);
});
return;
}
setSaving(true);
setUpdate(true);
prevSave = lastSaved || '';
showMessage(t.saving);
handleSave()
.then(finishAfterSave)
.catch(() => doneSavingFailure(ts.NoSaveWoMedia));
Comment thread
sarahentzel marked this conversation as resolved.
};
myChangedRef.current = isChanged(toolId);
if (saveRequested(toolId)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{ "stringsName": "strings54ed2272.json" }
{ "stringsName": "strings7c4590f5.json" }
1 change: 1 addition & 0 deletions src/renderer/src/store/localization/model.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1536,6 +1536,7 @@ export interface ISharedStrings extends Localize.LocalizedStringsMethods {
"noiseRemoval": string;
"noiseRemovalFailed": string;
"NoSaveOffline": string;
"TooBusy": string;
"NoSaveWoMedia": string;
"notSupported": string;
"observer": string;
Expand Down
3 changes: 2 additions & 1 deletion src/renderer/src/store/localization/reducers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1618,7 +1618,8 @@ const initialState = {
"noiseRemoval": "Reduce Noise",
"noiseRemovalFailed": "Noise Removal Failed",
"NoSaveOffline": "Unable to save while offline.",
"NoSaveWoMedia": "No media has been saved to the cloud. Please check your internet connection and try again.",
"TooBusy": "Unable to start new save while already saving.",
"NoSaveWoMedia": "Save Failed. Please check your internet connection and try again.",
"notSupported": "This feature is not supported yet.",
"observer": "Observer",
"paratextchapterSpan": "Passage {0}.{1} {2}: Passage must not span chapters.",
Expand Down
Loading