Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
UI: Fix circulation policies editor rero#363
Browse files Browse the repository at this point in the history
* 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>
3 people committed Sep 16, 2019
1 parent 7abb658 commit 85730ba
Showing 5 changed files with 348 additions and 230 deletions.
14 changes: 13 additions & 1 deletion ui/src/app/core/organisation/organisation.service.ts
Original file line number Diff line number Diff line change
@@ -19,16 +19,28 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.

import { Injectable } from '@angular/core';
import { ApiService } from '../api/api.service';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import {map} from 'rxjs/operators';

const httpOptions = {
headers: new HttpHeaders({
'Accept': 'application/json',
'Content-Type': 'application/json'
})
};

@Injectable()
export class OrganisationService {

constructor(
private apiService: ApiService
private apiService: ApiService,
private http: HttpClient
) { }

getApiEntryPointRecord(pid: string) {
return this.apiService
.getApiEntryPointByType('organisations', true) + pid;
}
}


Original file line number Diff line number Diff line change
@@ -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)
@@ -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: [],
@@ -90,16 +93,15 @@ 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)
@@ -108,10 +110,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');
@@ -133,6 +151,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;
Original file line number Diff line number Diff line change
@@ -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> = [];
@@ -54,10 +55,11 @@ 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 = {
$ref: null
$ref: null,
};
this.libraries = [];
this.settings = [];
Loading

0 comments on commit 85730ba

Please sign in to comment.