Skip to content

Commit

Permalink
UI: Fix circulation policies editor #363
Browse files Browse the repository at this point in the history
* Closes #363
* structure editor with section.
* add overdue amount and currency in circ policies editor.
* add an allow renewals button calculated dynamically.

Co-Authored-by: Laurent Dubois <laurent.dubois@itld-solutions.be>
Co-Authored-by: Renaud Michotte <renaud.michotte@gmail.com>
  • Loading branch information
3 people authored and iGor milhit committed Sep 23, 2019
1 parent 5942950 commit 894b724
Show file tree
Hide file tree
Showing 9 changed files with 410 additions and 276 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ export class CirculationPolicyFormService {
allow_requests: circulation.allow_requests,
number_renewals: circulation.number_renewals,
renewal_duration: circulation.renewal_duration,
overdue_amount: circulation.overdue_amount,
policy_library_level: circulation.policy_library_level,
is_default: circulation.is_default,
settings: this.unserializeSettings(circulation.settings)
Expand Down Expand Up @@ -76,8 +77,10 @@ export class CirculationPolicyFormService {
checkout_duration: [7],
number_of_days_after_due_date: [5],
number_of_days_before_due_date: [5],
allow_renewals: [true],
number_renewals: [0],
renewal_duration: [null],
overdue_amount: [0],
policy_library_level: [false],
is_default: [],
libraries: [],
Expand All @@ -90,16 +93,13 @@ export class CirculationPolicyFormService {
const numberRenewalsControl = this.getControlByFieldName('number_renewals');
const daysAfterControl = this.getControlByFieldName('number_of_days_after_due_date');
const daysBeforeControl = this.getControlByFieldName('number_of_days_before_due_date');
const overdueAmountControl = this.getControlByFieldName('overdue_amount');
this.form.get('allow_checkout').valueChanges.subscribe(checkout => {
if (checkout) {
checkoutDurationControl.setValidators([
Validators.required,
Validators.min(1)
]);
numberRenewalsControl.setValidators([
Validators.required,
Validators.min(0)
]);
daysAfterControl.setValidators([
Validators.required,
Validators.min(1)
Expand All @@ -108,10 +108,26 @@ export class CirculationPolicyFormService {
Validators.required,
Validators.min(1)
]);
overdueAmountControl.setValidators([
Validators.required,
Validators.min(0)
]);
} else {
checkoutDurationControl.clearValidators();
numberRenewalsControl.clearValidators();
daysAfterControl.clearValidators();
daysBeforeControl.clearValidators();
overdueAmountControl.clearValidators();
}
});
this.form.get('allow_renewals').valueChanges.subscribe(renewals => {
if (renewals) {
numberRenewalsControl.setValidators([
Validators.required,
Validators.min(0)
]);
} else {
numberRenewalsControl.clearValidators();
}
});
const renewalDuration = this.getControlByFieldName('renewal_duration');
Expand All @@ -133,6 +149,8 @@ export class CirculationPolicyFormService {

getValues() {
const formValues = this.form.value;
// delete calculate field before returns values of form
formValues.allow_renewals = null;
formValues.libraries = this.serializeLibraries(formValues.libraries);
formValues.settings = this.serializeSettings(formValues.settings);
return formValues;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export class CirculationPolicy {
number_of_days_before_due_date: number = null;
number_renewals: number = null;
renewal_duration: number = null;
overdue_amount: number = null;
policy_library_level: boolean = null;
is_default: boolean = null;
libraries: Array<any> = [];
Expand All @@ -54,6 +55,7 @@ export class CirculationPolicy {
this.number_of_days_after_due_date = 5;
this.number_of_days_before_due_date = 5;
this.number_renewals = 0;
this.overdue_amount = 0;
this.policy_library_level = false;
this.is_default = false;
this.organisation = {
Expand Down
Loading

0 comments on commit 894b724

Please sign in to comment.