Merge pull request #5940 from CatoTH/bugfix/dont-show-diff-view-with-no-crs-on-slides
Don't show diff view on slides if no change recos exist
This commit is contained in:
commit
92afd07b62
@ -1186,4 +1186,40 @@ export class MotionRepositoryService extends BaseIsAgendaItemAndListOfSpeakersCo
|
|||||||
}).length > 0
|
}).length > 0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tries to determine the realistic CR-Mode from a given CR mode
|
||||||
|
*/
|
||||||
|
public determineCrMode(
|
||||||
|
mode: ChangeRecoMode,
|
||||||
|
hasChangingObjects: boolean,
|
||||||
|
isModifiedFinalVersion: boolean,
|
||||||
|
isParagraphBasedAmendment: boolean,
|
||||||
|
hasChangeRecommendations: boolean
|
||||||
|
): ChangeRecoMode {
|
||||||
|
if (mode === ChangeRecoMode.Final) {
|
||||||
|
if (isModifiedFinalVersion) {
|
||||||
|
return ChangeRecoMode.ModifiedFinal;
|
||||||
|
/**
|
||||||
|
* Because without change recos you cannot escape the final version anymore
|
||||||
|
*/
|
||||||
|
} else if (!hasChangingObjects) {
|
||||||
|
return ChangeRecoMode.Original;
|
||||||
|
}
|
||||||
|
} else if (mode === ChangeRecoMode.Changed && !hasChangingObjects) {
|
||||||
|
/**
|
||||||
|
* Because without change recos you cannot escape the changed version view
|
||||||
|
* You will not be able to automatically change to the Changed view after creating
|
||||||
|
* a change reco. The autoupdate has to come "after" this routine
|
||||||
|
*/
|
||||||
|
return ChangeRecoMode.Original;
|
||||||
|
} else if (mode === ChangeRecoMode.Diff && !hasChangeRecommendations && isParagraphBasedAmendment) {
|
||||||
|
/**
|
||||||
|
* The Diff view for paragraph-based amendments is only relevant for change recommendations;
|
||||||
|
* the regular amendment changes are shown in the "original" view.
|
||||||
|
*/
|
||||||
|
return ChangeRecoMode.Original;
|
||||||
|
}
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -643,7 +643,13 @@ export class MotionDetailComponent extends BaseViewComponentDirective implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
private resetCrMode(): void {
|
private resetCrMode(): void {
|
||||||
this.crMode = this.determineCrMode(this.defaultCrMode);
|
this.crMode = this.repo.determineCrMode(
|
||||||
|
this.defaultCrMode,
|
||||||
|
this.hasChangingObjects(),
|
||||||
|
!!this.motion?.modified_final_version,
|
||||||
|
this.motion?.isParagraphBasedAmendment(),
|
||||||
|
this.changeRecommendations?.length > 0
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -720,7 +726,13 @@ export class MotionDetailComponent extends BaseViewComponentDirective implements
|
|||||||
// first in this case (in the config-listener) and perform the actual check if "diff" is possible now.
|
// first in this case (in the config-listener) and perform the actual check if "diff" is possible now.
|
||||||
// Test: "diff" as default view. Open a motion, create an amendment. "Original" should be set automatically.
|
// Test: "diff" as default view. Open a motion, create an amendment. "Original" should be set automatically.
|
||||||
if (this.crMode) {
|
if (this.crMode) {
|
||||||
this.crMode = this.determineCrMode(this.crMode);
|
this.crMode = this.repo.determineCrMode(
|
||||||
|
this.crMode,
|
||||||
|
this.hasChangingObjects(),
|
||||||
|
!!this.motion?.modified_final_version,
|
||||||
|
this.motion?.isParagraphBasedAmendment(),
|
||||||
|
this.changeRecommendations?.length > 0
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.cd.markForCheck();
|
this.cd.markForCheck();
|
||||||
@ -1624,40 +1636,6 @@ export class MotionDetailComponent extends BaseViewComponentDirective implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Tries to determine the realistic CR-Mode from a given CR mode
|
|
||||||
*/
|
|
||||||
private determineCrMode(mode: ChangeRecoMode): ChangeRecoMode {
|
|
||||||
if (mode === ChangeRecoMode.Final) {
|
|
||||||
if (this.motion?.modified_final_version) {
|
|
||||||
return ChangeRecoMode.ModifiedFinal;
|
|
||||||
/**
|
|
||||||
* Because without change recos you cannot escape the final version anymore
|
|
||||||
*/
|
|
||||||
} else if (!this.hasChangingObjects()) {
|
|
||||||
return ChangeRecoMode.Original;
|
|
||||||
}
|
|
||||||
} else if (mode === ChangeRecoMode.Changed && !this.hasChangingObjects()) {
|
|
||||||
/**
|
|
||||||
* Because without change recos you cannot escape the changed version view
|
|
||||||
* You will not be able to automatically change to the Changed view after creating
|
|
||||||
* a change reco. The autoupdate has to come "after" this routine
|
|
||||||
*/
|
|
||||||
return ChangeRecoMode.Original;
|
|
||||||
} else if (
|
|
||||||
mode === ChangeRecoMode.Diff &&
|
|
||||||
!this.changeRecommendations?.length &&
|
|
||||||
this.motion?.isParagraphBasedAmendment()
|
|
||||||
) {
|
|
||||||
/**
|
|
||||||
* The Diff view for paragraph-based amendments is only relevant for change recommendations;
|
|
||||||
* the regular amendment changes are shown in the "original" view.
|
|
||||||
*/
|
|
||||||
return ChangeRecoMode.Original;
|
|
||||||
}
|
|
||||||
return mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to listen to notifications if the user edits this motion.
|
* Function to listen to notifications if the user edits this motion.
|
||||||
* Handles the notification messages.
|
* Handles the notification messages.
|
||||||
|
@ -69,7 +69,6 @@ export class MotionSlideComponent
|
|||||||
this.lnMode = value.data.line_numbering_mode;
|
this.lnMode = value.data.line_numbering_mode;
|
||||||
this.lineLength = value.data.line_length;
|
this.lineLength = value.data.line_length;
|
||||||
this.preamble = value.data.preamble;
|
this.preamble = value.data.preamble;
|
||||||
this.crMode = value.element.mode || 'original';
|
|
||||||
|
|
||||||
this.textDivStyles.width = value.data.show_meta_box ? 'calc(100% - 250px)' : '100%';
|
this.textDivStyles.width = value.data.show_meta_box ? 'calc(100% - 250px)' : '100%';
|
||||||
|
|
||||||
@ -80,6 +79,14 @@ export class MotionSlideComponent
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.recalcUnifiedChanges();
|
this.recalcUnifiedChanges();
|
||||||
|
|
||||||
|
this.crMode = this.motionRepo.determineCrMode(
|
||||||
|
value.element.mode || 'original',
|
||||||
|
this.allChangingObjects.length > 0,
|
||||||
|
!!this.data.data.modified_final_version,
|
||||||
|
this.isParagraphBasedAmendment(),
|
||||||
|
this.data.data.change_recommendations.length > 0
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public get data(): SlideData<MotionSlideData> {
|
public get data(): SlideData<MotionSlideData> {
|
||||||
|
Loading…
Reference in New Issue
Block a user