
[GIT] Evergreen ILS branch main updated. dc7df4a608dd502856a9d6b4c403dfca76ee8f87
by Git User 11 Jul '25
by Git User 11 Jul '25
11 Jul '25
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, main has been updated
via dc7df4a608dd502856a9d6b4c403dfca76ee8f87 (commit)
from ab2be5d91aa65d62b01f987db466affd7860c309 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit dc7df4a608dd502856a9d6b4c403dfca76ee8f87
Author: Dan Briem <dbriem(a)harrisonpl.org>
Date: Tue Jun 24 18:56:34 2025 +0000
LP#2115261 Expand Report Template Description Box
Replace description text inputs with textareas in the report
definition interface for better visibility.
Release-note: Makes report template description field more visible
and browser-friendly.
Signed-off-by: Dan Briem <dbriem(a)harrisonpl.org>
Signed-off-by: John Amundson <jamundson(a)cwmars.org>
Signed-off-by: Terran McCanna <tmccanna(a)georgialibraries.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/reporter/full/definition.component.html b/Open-ILS/src/eg2/src/app/staff/reporter/full/definition.component.html
index d7bc2ec3bd..e65619e462 100644
--- a/Open-ILS/src/eg2/src/app/staff/reporter/full/definition.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/reporter/full/definition.component.html
@@ -44,14 +44,19 @@
<label class="form-label" for="report-description" i18n>Report Description</label>
</div>
<div class="col-lg-3">
- <input [disabled]="isView" id="report-description" class="form-control" [(ngModel)]="description" (ngModelChange)="dirty()" />
+ <textarea id="report-description" class="form-control"
+ [(ngModel)]="description" (ngModelChange)="dirty()"
+ [disabled]="isView">
+ </textarea>
</div>
<div class="col-sm-2">
<label class="form-label" for="template-description" i18n>Template Description</label>
</div>
<div class="col-lg-3">
- <input *ngIf="templ" disabled id="template-description" class="form-control" [ngModel]="templ.description"/>
+ <textarea *ngIf="templ" id="template-description" class="form-control"
+ [ngModel]="templ.description" disabled>
+ </textarea>
</div>
</div>
-----------------------------------------------------------------------
Summary of changes:
.../eg2/src/app/staff/reporter/full/definition.component.html | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
hooks/post-receive
--
Evergreen ILS
1
0

[GIT] Evergreen ILS branch rel_3_14 updated. 3d8ff800b427af2e24c5f64aef7ac1939186659a
by Git User 11 Jul '25
by Git User 11 Jul '25
11 Jul '25
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_3_14 has been updated
via 3d8ff800b427af2e24c5f64aef7ac1939186659a (commit)
via f76ac7964b10aa2b1e23ef526aafb716a2cbdd5d (commit)
via 463ed20ac0c48d5bf13e88e06e0cbea9ccb483ec (commit)
via fab05bb98182751fabe5fca6897c9f34bedd696a (commit)
from 366ab14fa0684aa088706355d3734cbab573c767 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3d8ff800b427af2e24c5f64aef7ac1939186659a
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Tue Jul 8 18:38:01 2025 +0000
LP2083026 Follow-up 2: cleanup
Removes stray comments and vestigial HTML.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Sarah Cruz <scruz(a)georgialibraries.org>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
index 38855fb3e7..f7b615e103 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
@@ -412,8 +412,6 @@ implements OnInit, AfterViewInit, OnDestroy {
case 'ind1': this.field.ind1 = value; break;
case 'ind2': this.field.ind2 = value; break;
case 'ffld':
- // TODO: concatenate multi-character fields
-
// Track locally and propagate to the record.
this.ffValue = value;
this.record.setFixedField(this.fixedFieldCode, value);
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
index 24dc76fbd2..a817ce510c 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
@@ -197,7 +197,7 @@
<div class="col-md-2 col-sm-4">
<!-- Nature of Contents = BKS: 008 / 24-27 or 006 / 07-10 ; CNR: 008 / 25-27 or 006 / 08-10 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Cont" fieldLabel="Cont" chars="4"></eg-fixed-field>
+ fieldCode="Cont" fieldLabel="Cont"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
@@ -234,7 +234,7 @@
<div class="col-md-2 col-sm-4">
<!-- Illustrations = 008 / 18-21 or 006 / 01-04 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Ills" fieldLabel="Ills" chars="4"></eg-fixed-field>
+ fieldCode="Ills" fieldLabel="Ills"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
commit f76ac7964b10aa2b1e23ef526aafb716a2cbdd5d
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Mon Jul 7 20:40:53 2025 +0000
LP2083026 Follow-up: typo fix
Fixes a 1/L typo in some conditional checks.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/assets/js/marcrecord.js b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
index 75032ecf7d..c9c10268dd 100644
--- a/Open-ILS/src/eg2/src/assets/js/marcrecord.js
+++ b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
@@ -420,7 +420,7 @@ var MARC21 = {
/*
console.debug('008', MARC21.Record._ff_pos[field]._8);
console.debug('006', MARC21.Record._ff_pos[field]._6);
- console.debug('001', MARC21.Record._ff_pos[field]._1);
+ console.debug('001', MARC21.Record._ff_pos[field]._l);
/***/
var rtype = this.recordType();
@@ -431,7 +431,7 @@ var MARC21 = {
if (_6 && MARC21.Record._ff_pos[field]._6 && MARC21.Record._ff_pos[field]._6[rtype])
return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue || false;
- if (_l && MARC21.Record._ff_pos[field]._1 && MARC21.Record._ff_pos[field]._1[rtype])
+ if (_l && MARC21.Record._ff_pos[field]._l && MARC21.Record._ff_pos[field]._l[rtype])
return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue || false;
return false;
commit 463ed20ac0c48d5bf13e88e06e0cbea9ccb483ec
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Tue Jul 1 22:03:30 2025 +0000
LP2083026 Comboboxes for multivalue fixed fields
Enables combobox suggestions for fixed fields with multiple values
(Ills, Cont, AccM, etc.) in the MARC rich editor. Displays these fixed
fields as a fieldset group with a separate input for each character in
the multivalue field.
Release-note: Displays multivalue fixed fields (Ills, Cont, etc) as
separate single-character inputs with combobox suggestions.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css
index d92486799e..bae40eac33 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css
@@ -25,6 +25,12 @@ input.form-control.type-ffld {
width: 100%;
}
+#eg-marc-rich-editor input.form-control.type-ffld-char {
+ display: inline-block;
+ text-align: center;
+ width: clamp(1ch, 1.25rem, 1.5rem);
+}
+
input.form-control.type-tag {
display: block; /* Firefox is dumb */
font-weight: bold;
@@ -95,4 +101,4 @@ textarea.bigtext {
/* style for free text entry "choice" in combobox; will be highlighted w/blue background */
.unknown {
font-style: italic;
-}
\ No newline at end of file
+}
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html
index 3922b5abe8..7449b44d39 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html
@@ -35,7 +35,7 @@ Track their labels here.
<eg-combobox #MARCCombo *ngIf="suggest"
trigger="click"
[domId]="domId"
- [moreClasses]="'fw-bold form-control-sm type-'+fieldType"
+ [moreClasses]="moreClasses + ' fw-bold form-control-sm type-'+fieldType"
tabindex="{{tabindex}}"
[ariaLabel]="ariaLabel"
[maxLength]="maxLength"
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
index 8234b2d279..38855fb3e7 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
@@ -205,9 +205,9 @@ implements OnInit, AfterViewInit, OnDestroy {
case 'ffld': {
this.applyFFOptions();
- // these fixed fields can include multiple values (which doesn't work well with combobox) or free text
+ // these fixed fields contain free text
// TODO: remove check for AUT when authorities fixed field data is populated
- const complexFields = ['AccM','Cont','Date1','Date2','Ills','LTxt','Relf','SpFm','Time'];
+ const complexFields = ['Date1','Date2','Time'];
if (complexFields.includes(this.fixedFieldCode) || this.record.recordType() === 'AUT' ) {
this.suggest = false;
}
@@ -412,6 +412,8 @@ implements OnInit, AfterViewInit, OnDestroy {
case 'ind1': this.field.ind1 = value; break;
case 'ind2': this.field.ind2 = value; break;
case 'ffld':
+ // TODO: concatenate multi-character fields
+
// Track locally and propagate to the record.
this.ffValue = value;
this.record.setFixedField(this.fixedFieldCode, value);
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css
deleted file mode 100644
index cf7b271682..0000000000
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css
+++ /dev/null
@@ -1,21 +0,0 @@
-
-:host .popover {
- font-family: monospace;
- max-width: 550px;
-}
-
-:host .popover-body {
- max-height: 400px;
- overflow-y: auto;
- overflow-x: auto;
- padding: 0;
-}
-
-:host .popover-body .menu-entry {
- white-space: nowrap;
-}
-
-:host .popover-body .menu-entry:hover {
- background-color: var(--popover-menu-hover); /* bootstrap color */
-}
-
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html
index 5f96ba1702..58dbf8def7 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html
@@ -1,5 +1,6 @@
+<ng-container *ngIf="fieldMeta">
-<div class="ff-field row" *ngIf="fieldMeta">
+<div class="ff-field row" *ngIf="!isMultiValue()">
<label for="{{domId}}" class="col-sm-4 col-form-label form-label fw-bold" title="{{fieldMeta.description}}" i18n-title>
{{fieldLabel}}
</label>
@@ -8,4 +9,20 @@
[fixedFieldCode]="fieldCode" fieldType="ffld" moreClasses="form-control-sm">
</eg-marc-editable-content>
</div>
-</div>
\ No newline at end of file
+</div>
+
+<fieldset class="ff-field row" *ngIf="isMultiValue()">
+ <legend class="col-sm-4 col-form-label form-label fw-bold" title="{{fieldMeta.description}}" i18n-title>
+ {{fieldLabel}}
+ </legend>
+ <div class="ff-value col-sm-8 d-flex">
+ <ng-container *ngFor="let char of separateCharacters(); let i = index;">
+ <eg-marc-editable-content domId="{{domId}}-{{i}}" [context]="context"
+ [fixedFieldCode]="fieldCode + (i + 1)" ariaLabel="{{fieldLabel}} position {{i + 1}}" i18n-ariaLabel
+ fieldType="ffld" moreClasses="form-control-sm type-ffld-char">
+ </eg-marc-editable-content>
+ </ng-container>
+ </div>
+</fieldset>
+
+</ng-container>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts
index ec8798e4e6..8e856ab170 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts
@@ -1,9 +1,7 @@
-import {Component, Input, Output, OnInit, EventEmitter, OnDestroy} from '@angular/core';
+import {Component, Input, OnInit, OnDestroy} from '@angular/core';
import {IdlObject} from '@eg/core/idl.service';
import {MarcRecord} from './marcrecord';
import {MarcEditContext} from './editor-context';
-import {TagTableService} from './tagtable.service';
-import { EgEvent } from '@eg/core/event.service';
import {Subject, takeUntil} from 'rxjs';
/**
@@ -12,8 +10,7 @@ import {Subject, takeUntil} from 'rxjs';
@Component({
selector: 'eg-fixed-field',
- templateUrl: './fixed-field.component.html',
- styleUrls: ['fixed-field.component.css']
+ templateUrl: './fixed-field.component.html'
})
export class FixedFieldComponent implements OnInit, OnDestroy {
@@ -28,6 +25,7 @@ export class FixedFieldComponent implements OnInit, OnDestroy {
get record(): MarcRecord { return this.context.record; }
fieldMeta: IdlObject;
+ fieldContent: string;
private destroy$ = new Subject<void>();
constructor() {}
@@ -44,13 +42,28 @@ export class FixedFieldComponent implements OnInit, OnDestroy {
// If no field metadata is found for this fixed field code and
// record type combo, the field will be hidden in the UI.
return this.context.tagTable.getFfFieldMeta(this.fieldCode)
- .then(fieldMeta => this.fieldMeta = fieldMeta);
+ .then(fieldMeta => {
+ this.fieldMeta = fieldMeta;
+ this.fieldContent = this.record.extractFixedField(this.fieldCode);
+ });
}
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
+
+ separateCharacters() {
+ if (!this.isMultiValue()) {
+ return null;
+ }
+
+ return Array.from(this.fieldContent);
+ }
+
+ isMultiValue() {
+ return this.record.isFixedFieldMultivalue(this.fieldCode);
+ }
}
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
index a817ce510c..24dc76fbd2 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
@@ -197,7 +197,7 @@
<div class="col-md-2 col-sm-4">
<!-- Nature of Contents = BKS: 008 / 24-27 or 006 / 07-10 ; CNR: 008 / 25-27 or 006 / 08-10 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Cont" fieldLabel="Cont"></eg-fixed-field>
+ fieldCode="Cont" fieldLabel="Cont" chars="4"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
@@ -234,7 +234,7 @@
<div class="col-md-2 col-sm-4">
<!-- Illustrations = 008 / 18-21 or 006 / 01-04 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Ills" fieldLabel="Ills"></eg-fixed-field>
+ fieldCode="Ills" fieldLabel="Ills" chars="4"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
diff --git a/Open-ILS/src/eg2/src/assets/js/marcrecord.js b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
index 768e5969bc..75032ecf7d 100644
--- a/Open-ILS/src/eg2/src/assets/js/marcrecord.js
+++ b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
@@ -417,12 +417,24 @@ var MARC21 = {
var _l = this.leader;
var _8 = this.field('008').data;
var _6 = this.field('006').data;
+ /*
+ console.debug('008', MARC21.Record._ff_pos[field]._8);
+ console.debug('006', MARC21.Record._ff_pos[field]._6);
+ console.debug('001', MARC21.Record._ff_pos[field]._1);
+ /***/
var rtype = this.recordType();
- if (_8) return !!MARC21.Record._ff_pos[field]._8[rtype].multivalue;
- if (_6) return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue;
- if (_l) return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue;
+ if (_8 && MARC21.Record._ff_pos[field]._8 && MARC21.Record._ff_pos[field]._8[rtype])
+ return !!MARC21.Record._ff_pos[field]._8[rtype].multivalue || false;
+
+ if (_6 && MARC21.Record._ff_pos[field]._6 && MARC21.Record._ff_pos[field]._6[rtype])
+ return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue || false;
+
+ if (_l && MARC21.Record._ff_pos[field]._1 && MARC21.Record._ff_pos[field]._1[rtype])
+ return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue || false;
+
+ return false;
}
this.extractFixedField = function (field, dflt) {
commit fab05bb98182751fabe5fca6897c9f34bedd696a
Author: Mike Rylander <mrylander(a)gmail.com>
Date: Thu Jul 3 14:48:50 2025 -0400
LP2083026 Multivalue fixed field definitions
Adds a multivalue flag to MARC fixed field definitions and enumerates
each single-character value's position in the 008 and 006 fields.
Signed-off-by: Mike Rylander <mrylander(a)gmail.com>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts
index 2891d6f4b3..34686624ba 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts
@@ -98,6 +98,10 @@ export class MarcRecord {
return this.record.extractFixedField(fieldCode);
}
+ isFixedFieldMultivalue(fieldCode: string): boolean {
+ return this.record.isFixedFieldMultivalue(fieldCode);
+ }
+
setFixedField(fieldCode: string, fieldValue: string): string {
const response = this.record.setFixedField(fieldCode, fieldValue);
this.fixedFieldChange.emit(fieldCode);
diff --git a/Open-ILS/src/eg2/src/assets/js/marcrecord.js b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
index 9f8ac02623..768e5969bc 100644
--- a/Open-ILS/src/eg2/src/assets/js/marcrecord.js
+++ b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
@@ -411,6 +411,20 @@ var MARC21 = {
return 'BKS'; // default
}
+ this.isFixedFieldMultivalue = function (field) {
+ if (!MARC21.Record._ff_pos[field]) return false;
+
+ var _l = this.leader;
+ var _8 = this.field('008').data;
+ var _6 = this.field('006').data;
+
+ var rtype = this.recordType();
+
+ if (_8) return !!MARC21.Record._ff_pos[field]._8[rtype].multivalue;
+ if (_6) return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue;
+ if (_l) return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue;
+ }
+
this.extractFixedField = function (field, dflt) {
if (!MARC21.Record._ff_pos[field]) return null;
@@ -757,12 +771,73 @@ MARC21.Record._ff_lengths = {
MARC21.Record._ff_pos = {
AccM : {
_8 : {
- SCO : {start: 24, len : 6, def : ' ' },
- REC : {start: 24, len : 6, def : ' ' }
+ SCO : {start: 24, len : 6, def : ' ', multivalue : true },
+ REC : {start: 24, len : 6, def : ' ', multivalue : true }
+ },
+ _6 : {
+ SCO : {start: 7, len : 6, def : ' ', multivalue : true },
+ REC : {start: 7, len : 6, def : ' ', multivalue : true }
+ }
+ },
+ // break out all six AccM characters individually:
+ AccM1 : {
+ _8 : {
+ SCO : {start: 24, len : 1, def : ' ' },
+ REC : {start: 24, len : 1, def : ' ' }
},
_6 : {
- SCO : {start: 7, len : 6, def : ' ' },
- REC : {start: 7, len : 6, def : ' ' }
+ SCO : {start: 7, len : 1, def : ' ' },
+ REC : {start: 7, len : 1, def : ' ' }
+ }
+ },
+ AccM2 : {
+ _8 : {
+ SCO : {start: 25, len : 1, def : ' ' },
+ REC : {start: 25, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 8, len : 1, def : ' ' },
+ REC : {start: 8, len : 1, def : ' ' }
+ }
+ },
+ AccM3 : {
+ _8 : {
+ SCO : {start: 26, len : 1, def : ' ' },
+ REC : {start: 26, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 9, len : 1, def : ' ' },
+ REC : {start: 9, len : 1, def : ' ' }
+ }
+ },
+ AccM4 : {
+ _8 : {
+ SCO : {start: 27, len : 1, def : ' ' },
+ REC : {start: 27, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 10, len : 1, def : ' ' },
+ REC : {start: 10, len : 1, def : ' ' }
+ }
+ },
+ AccM5 : {
+ _8 : {
+ SCO : {start: 28, len : 1, def : ' ' },
+ REC : {start: 28, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 11, len : 1, def : ' ' },
+ REC : {start: 11, len : 1, def : ' ' }
+ }
+ },
+ AccM6 : {
+ _8 : {
+ SCO : {start: 29, len : 1, def : ' ' },
+ REC : {start: 29, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 12, len : 1, def : ' ' },
+ REC : {start: 12, len : 1, def : ' ' }
}
},
Alph : {
@@ -833,12 +908,53 @@ MARC21.Record._ff_pos = {
},
Cont : {
_8 : {
- BKS : {start : 24, len : 4, def : ' ' },
- SER : {start : 25, len : 3, def : ' ' }
+ BKS : {start : 24, len : 4, def : ' ', multivalue : true },
+ SER : {start : 25, len : 3, def : ' ', multivalue : true }
},
_6 : {
- BKS : {start : 7, len : 4, def : ' ' },
- SER : {start : 8, len : 3, def : ' ' }
+ BKS : {start : 7, len : 4, def : ' ', multivalue : true },
+ SER : {start : 8, len : 3, def : ' ', multivalue : true }
+ }
+ },
+ // break out all four Cont characters individually:
+ Cont1 : {
+ _8 : {
+ BKS : {start : 24, len : 1, def : ' ' },
+ SER : {start : 25, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 7, len : 1, def : ' ' },
+ SER : {start : 8, len : 1, def : ' ' }
+ }
+ },
+ Cont2 : {
+ _8 : {
+ BKS : {start : 25, len : 1, def : ' ' },
+ SER : {start : 26, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 8, len : 1, def : ' ' },
+ SER : {start : 9, len : 1, def : ' ' }
+ }
+ },
+ Cont3 : {
+ _8 : {
+ BKS : {start : 26, len : 1, def : ' ' },
+ SER : {start : 27, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 9, len : 1, def : ' ' },
+ SER : {start : 10, len : 1, def : ' ' }
+ }
+ },
+ Cont4 : {
+ _8 : {
+ BKS : {start : 27, len : 1, def : ' ' },
+ SER : {start : 28, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 10, len : 1, def : ' ' },
+ SER : {start : 11, len : 1, def : ' ' }
}
},
CrTp : {
@@ -1017,10 +1133,43 @@ MARC21.Record._ff_pos = {
},
Ills : {
_8 : {
- BKS : {start : 18, len : 4, def : ' ' }
+ BKS : {start : 18, len : 4, def : ' ', multivalue : true }
},
_6 : {
- BKS : {start : 1, len : 4, def : ' ' }
+ BKS : {start : 1, len : 4, def : ' ', multivalue : true }
+ }
+ },
+ // break out all four Ills characters individually:
+ Ills1 : {
+ _8 : {
+ BKS : {start : 18, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 1, len : 1, def : ' ' }
+ }
+ },
+ Ills2 : {
+ _8 : {
+ BKS : {start : 19, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 2, len : 1, def : ' ' }
+ }
+ },
+ Ills3 : {
+ _8 : {
+ BKS : {start : 20, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 3, len : 1, def : ' ' }
+ }
+ },
+ Ills4 : {
+ _8 : {
+ BKS : {start : 21, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 4, len : 1, def : ' ' }
}
},
Indx : {
@@ -1060,12 +1209,33 @@ MARC21.Record._ff_pos = {
},
LTxt : {
_8 : {
- SCO : {start : 30, len : 2, def : 'n'},
- REC : {start : 30, len : 2, def : ' '}
+ SCO : {start : 30, len : 2, def : 'n', multivalue : true },
+ REC : {start : 30, len : 2, def : ' ', multivalue : true }
+ },
+ _6 : {
+ SCO : {start : 13, len : 2, def : 'n', multivalue : true },
+ REC : {start : 13, len : 2, def : ' ', multivalue : true }
+ },
+ },
+ // break out the two LTxt characters individually:
+ LTxt1 : {
+ _8 : {
+ SCO : {start : 30, len : 1, def : 'n'},
+ REC : {start : 30, len : 1, def : ' '}
+ },
+ _6 : {
+ SCO : {start : 13, len : 1, def : 'n'},
+ REC : {start : 13, len : 1, def : ' '}
+ },
+ },
+ LTxt2 : {
+ _8 : {
+ SCO : {start : 31, len : 1, def : 'n'},
+ REC : {start : 31, len : 1, def : ' '}
},
_6 : {
- SCO : {start : 13, len : 2, def : 'n'},
- REC : {start : 13, len : 2, def : ' '}
+ SCO : {start : 14, len : 1, def : 'n'},
+ REC : {start : 14, len : 1, def : ' '}
},
},
MRec : {
@@ -1130,10 +1300,43 @@ MARC21.Record._ff_pos = {
},
Relf : {
_8 : {
- MAP : {start: 18, len : 4, def : ' '}
+ MAP : {start: 18, len : 4, def : ' ', multivalue : true }
},
_6 : {
- MAP : {start: 1, len : 4, def : ' '}
+ MAP : {start: 1, len : 4, def : ' ', multivalue : true }
+ }
+ },
+ // break out all four Relf characters individually:
+ Relf1 : {
+ _8 : {
+ MAP : {start: 18, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 1, len : 1, def : ' ' }
+ }
+ },
+ Relf2 : {
+ _8 : {
+ MAP : {start: 19, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 2, len : 1, def : ' ' }
+ }
+ },
+ Relf3 : {
+ _8 : {
+ MAP : {start: 20, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 3, len : 1, def : ' ' }
+ }
+ },
+ Relf4 : {
+ _8 : {
+ MAP : {start: 21, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 4, len : 1, def : ' ' }
}
},
'S/L' : {
@@ -1146,10 +1349,27 @@ MARC21.Record._ff_pos = {
},
SpFM : {
_8 : {
- MAP : {start: 33, len : 2, def : ' ' }
+ MAP : {start: 33, len : 2, def : ' ', multivalue : true }
+ },
+ _6 : {
+ MAP : {start: 16, len : 2, def : ' ', multivalue : true }
+ }
+ },
+ // break out the two SpFM characters individually:
+ SpFM1 : {
+ _8 : {
+ MAP : {start: 33, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 16, len : 1, def : ' ' }
+ }
+ },
+ SpFM2 : {
+ _8 : {
+ MAP : {start: 34, len : 1, def : ' ' }
},
_6 : {
- MAP : {start: 16, len : 2, def : ' '}
+ MAP : {start: 17, len : 1, def : ' ' }
}
},
Srce : {
-----------------------------------------------------------------------
Summary of changes:
.../share/marc-edit/editable-content.component.css | 8 +-
.../marc-edit/editable-content.component.html | 2 +-
.../share/marc-edit/editable-content.component.ts | 4 +-
.../share/marc-edit/fixed-field.component.css | 21 --
.../share/marc-edit/fixed-field.component.html | 21 +-
.../staff/share/marc-edit/fixed-field.component.ts | 25 +-
.../src/app/staff/share/marc-edit/marcrecord.ts | 4 +
Open-ILS/src/eg2/src/assets/js/marcrecord.js | 268 +++++++++++++++++++--
8 files changed, 302 insertions(+), 51 deletions(-)
delete mode 100644 Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css
hooks/post-receive
--
Evergreen ILS
1
0

[GIT] Evergreen ILS branch rel_3_14 updated. 366ab14fa0684aa088706355d3734cbab573c767
by Git User 11 Jul '25
by Git User 11 Jul '25
11 Jul '25
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_3_14 has been updated
via 366ab14fa0684aa088706355d3734cbab573c767 (commit)
from 2b610b8c154d47e9cf0703932396ec0c21192d01 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 366ab14fa0684aa088706355d3734cbab573c767
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Thu Apr 17 15:16:32 2025 +0000
LP2104204 OPAC history: Swap cover and checkbox columns
Moves the cover column back to its correct location after the checkbox
column in the patron's checkout history table.
Release-note: Corrects the order of the OPAC checkout history table's
cover and checkbox columns
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Susan Morrison <smorrison(a)georgialibraries.org>
Signed-off-by: Terran McCanna <tmccanna(a)georgialibraries.org>
diff --git a/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2 b/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2
index ed454ba3fe..8758ca8217 100755
--- a/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2
+++ b/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2
@@ -146,11 +146,11 @@
END;
row_rec_id = circ.circ.target_copy.call_number.record.id;
row_title = circ.ATTRS.title;
- PROCESS show_cover;
%]
<th role="rowheader" scope="row" class="checkbox_column">
<input type="checkbox" name="circ_id" value="[% circ.circ.id %]" [% html_text_attr('aria-label', l('Select [_1]', row_title)) %] />
</th>
+ [% PROCESS show_cover; %]
<td role="cell" mobile-title="[% l('Title') %]">
[% IF circ.circ.target_copy.call_number.id == -1 %]
[% circ.circ.target_copy.dummy_title | html %]
-----------------------------------------------------------------------
Summary of changes:
Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
hooks/post-receive
--
Evergreen ILS
1
0

[GIT] Evergreen ILS branch rel_3_15 updated. 3225979366ded0d76f1e1296cce59107fc81b8ae
by Git User 11 Jul '25
by Git User 11 Jul '25
11 Jul '25
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_3_15 has been updated
via 3225979366ded0d76f1e1296cce59107fc81b8ae (commit)
from 8c287014ba0539bdb08829ef02f2ef644c803ab5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3225979366ded0d76f1e1296cce59107fc81b8ae
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Thu Apr 17 15:16:32 2025 +0000
LP2104204 OPAC history: Swap cover and checkbox columns
Moves the cover column back to its correct location after the checkbox
column in the patron's checkout history table.
Release-note: Corrects the order of the OPAC checkout history table's
cover and checkbox columns
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Susan Morrison <smorrison(a)georgialibraries.org>
Signed-off-by: Terran McCanna <tmccanna(a)georgialibraries.org>
diff --git a/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2 b/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2
index ed454ba3fe..8758ca8217 100755
--- a/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2
+++ b/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2
@@ -146,11 +146,11 @@
END;
row_rec_id = circ.circ.target_copy.call_number.record.id;
row_title = circ.ATTRS.title;
- PROCESS show_cover;
%]
<th role="rowheader" scope="row" class="checkbox_column">
<input type="checkbox" name="circ_id" value="[% circ.circ.id %]" [% html_text_attr('aria-label', l('Select [_1]', row_title)) %] />
</th>
+ [% PROCESS show_cover; %]
<td role="cell" mobile-title="[% l('Title') %]">
[% IF circ.circ.target_copy.call_number.id == -1 %]
[% circ.circ.target_copy.dummy_title | html %]
-----------------------------------------------------------------------
Summary of changes:
Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
hooks/post-receive
--
Evergreen ILS
1
0

[GIT] Evergreen ILS branch main updated. ab2be5d91aa65d62b01f987db466affd7860c309
by Git User 11 Jul '25
by Git User 11 Jul '25
11 Jul '25
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, main has been updated
via ab2be5d91aa65d62b01f987db466affd7860c309 (commit)
from a64cf056ae189020ac0a530b86cf067a1884cfb1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ab2be5d91aa65d62b01f987db466affd7860c309
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Thu Apr 17 15:16:32 2025 +0000
LP2104204 OPAC history: Swap cover and checkbox columns
Moves the cover column back to its correct location after the checkbox
column in the patron's checkout history table.
Release-note: Corrects the order of the OPAC checkout history table's
cover and checkbox columns
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Susan Morrison <smorrison(a)georgialibraries.org>
Signed-off-by: Terran McCanna <tmccanna(a)georgialibraries.org>
diff --git a/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2 b/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2
index ed454ba3fe..8758ca8217 100755
--- a/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2
+++ b/Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2
@@ -146,11 +146,11 @@
END;
row_rec_id = circ.circ.target_copy.call_number.record.id;
row_title = circ.ATTRS.title;
- PROCESS show_cover;
%]
<th role="rowheader" scope="row" class="checkbox_column">
<input type="checkbox" name="circ_id" value="[% circ.circ.id %]" [% html_text_attr('aria-label', l('Select [_1]', row_title)) %] />
</th>
+ [% PROCESS show_cover; %]
<td role="cell" mobile-title="[% l('Title') %]">
[% IF circ.circ.target_copy.call_number.id == -1 %]
[% circ.circ.target_copy.dummy_title | html %]
-----------------------------------------------------------------------
Summary of changes:
Open-ILS/src/templates-bootstrap/opac/myopac/circ_history.tt2 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
hooks/post-receive
--
Evergreen ILS
1
0

[GIT] Evergreen ILS branch rel_3_15 updated. 8c287014ba0539bdb08829ef02f2ef644c803ab5
by Git User 11 Jul '25
by Git User 11 Jul '25
11 Jul '25
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_3_15 has been updated
via 8c287014ba0539bdb08829ef02f2ef644c803ab5 (commit)
via 952d2276c34ae3de1205f7a922402390e357e076 (commit)
via 8f7662043ad54299a6e5193e7f1099fb43aa0666 (commit)
via 20271fed463c6d225361b40709c83dffc631eabb (commit)
from 32496a58c0e9f290e57604b52927db41af7eae32 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8c287014ba0539bdb08829ef02f2ef644c803ab5
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Tue Jul 8 18:38:01 2025 +0000
LP2083026 Follow-up 2: cleanup
Removes stray comments and vestigial HTML.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Sarah Cruz <scruz(a)georgialibraries.org>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
index 38855fb3e7..f7b615e103 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
@@ -412,8 +412,6 @@ implements OnInit, AfterViewInit, OnDestroy {
case 'ind1': this.field.ind1 = value; break;
case 'ind2': this.field.ind2 = value; break;
case 'ffld':
- // TODO: concatenate multi-character fields
-
// Track locally and propagate to the record.
this.ffValue = value;
this.record.setFixedField(this.fixedFieldCode, value);
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
index 24dc76fbd2..a817ce510c 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
@@ -197,7 +197,7 @@
<div class="col-md-2 col-sm-4">
<!-- Nature of Contents = BKS: 008 / 24-27 or 006 / 07-10 ; CNR: 008 / 25-27 or 006 / 08-10 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Cont" fieldLabel="Cont" chars="4"></eg-fixed-field>
+ fieldCode="Cont" fieldLabel="Cont"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
@@ -234,7 +234,7 @@
<div class="col-md-2 col-sm-4">
<!-- Illustrations = 008 / 18-21 or 006 / 01-04 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Ills" fieldLabel="Ills" chars="4"></eg-fixed-field>
+ fieldCode="Ills" fieldLabel="Ills"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
commit 952d2276c34ae3de1205f7a922402390e357e076
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Mon Jul 7 20:40:53 2025 +0000
LP2083026 Follow-up: typo fix
Fixes a 1/L typo in some conditional checks.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/assets/js/marcrecord.js b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
index 75032ecf7d..c9c10268dd 100644
--- a/Open-ILS/src/eg2/src/assets/js/marcrecord.js
+++ b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
@@ -420,7 +420,7 @@ var MARC21 = {
/*
console.debug('008', MARC21.Record._ff_pos[field]._8);
console.debug('006', MARC21.Record._ff_pos[field]._6);
- console.debug('001', MARC21.Record._ff_pos[field]._1);
+ console.debug('001', MARC21.Record._ff_pos[field]._l);
/***/
var rtype = this.recordType();
@@ -431,7 +431,7 @@ var MARC21 = {
if (_6 && MARC21.Record._ff_pos[field]._6 && MARC21.Record._ff_pos[field]._6[rtype])
return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue || false;
- if (_l && MARC21.Record._ff_pos[field]._1 && MARC21.Record._ff_pos[field]._1[rtype])
+ if (_l && MARC21.Record._ff_pos[field]._l && MARC21.Record._ff_pos[field]._l[rtype])
return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue || false;
return false;
commit 8f7662043ad54299a6e5193e7f1099fb43aa0666
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Tue Jul 1 22:03:30 2025 +0000
LP2083026 Comboboxes for multivalue fixed fields
Enables combobox suggestions for fixed fields with multiple values
(Ills, Cont, AccM, etc.) in the MARC rich editor. Displays these fixed
fields as a fieldset group with a separate input for each character in
the multivalue field.
Release-note: Displays multivalue fixed fields (Ills, Cont, etc) as
separate single-character inputs with combobox suggestions.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css
index d92486799e..bae40eac33 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css
@@ -25,6 +25,12 @@ input.form-control.type-ffld {
width: 100%;
}
+#eg-marc-rich-editor input.form-control.type-ffld-char {
+ display: inline-block;
+ text-align: center;
+ width: clamp(1ch, 1.25rem, 1.5rem);
+}
+
input.form-control.type-tag {
display: block; /* Firefox is dumb */
font-weight: bold;
@@ -95,4 +101,4 @@ textarea.bigtext {
/* style for free text entry "choice" in combobox; will be highlighted w/blue background */
.unknown {
font-style: italic;
-}
\ No newline at end of file
+}
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html
index 3922b5abe8..7449b44d39 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html
@@ -35,7 +35,7 @@ Track their labels here.
<eg-combobox #MARCCombo *ngIf="suggest"
trigger="click"
[domId]="domId"
- [moreClasses]="'fw-bold form-control-sm type-'+fieldType"
+ [moreClasses]="moreClasses + ' fw-bold form-control-sm type-'+fieldType"
tabindex="{{tabindex}}"
[ariaLabel]="ariaLabel"
[maxLength]="maxLength"
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
index 8234b2d279..38855fb3e7 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
@@ -205,9 +205,9 @@ implements OnInit, AfterViewInit, OnDestroy {
case 'ffld': {
this.applyFFOptions();
- // these fixed fields can include multiple values (which doesn't work well with combobox) or free text
+ // these fixed fields contain free text
// TODO: remove check for AUT when authorities fixed field data is populated
- const complexFields = ['AccM','Cont','Date1','Date2','Ills','LTxt','Relf','SpFm','Time'];
+ const complexFields = ['Date1','Date2','Time'];
if (complexFields.includes(this.fixedFieldCode) || this.record.recordType() === 'AUT' ) {
this.suggest = false;
}
@@ -412,6 +412,8 @@ implements OnInit, AfterViewInit, OnDestroy {
case 'ind1': this.field.ind1 = value; break;
case 'ind2': this.field.ind2 = value; break;
case 'ffld':
+ // TODO: concatenate multi-character fields
+
// Track locally and propagate to the record.
this.ffValue = value;
this.record.setFixedField(this.fixedFieldCode, value);
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css
deleted file mode 100644
index cf7b271682..0000000000
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css
+++ /dev/null
@@ -1,21 +0,0 @@
-
-:host .popover {
- font-family: monospace;
- max-width: 550px;
-}
-
-:host .popover-body {
- max-height: 400px;
- overflow-y: auto;
- overflow-x: auto;
- padding: 0;
-}
-
-:host .popover-body .menu-entry {
- white-space: nowrap;
-}
-
-:host .popover-body .menu-entry:hover {
- background-color: var(--popover-menu-hover); /* bootstrap color */
-}
-
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html
index 5f96ba1702..58dbf8def7 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html
@@ -1,5 +1,6 @@
+<ng-container *ngIf="fieldMeta">
-<div class="ff-field row" *ngIf="fieldMeta">
+<div class="ff-field row" *ngIf="!isMultiValue()">
<label for="{{domId}}" class="col-sm-4 col-form-label form-label fw-bold" title="{{fieldMeta.description}}" i18n-title>
{{fieldLabel}}
</label>
@@ -8,4 +9,20 @@
[fixedFieldCode]="fieldCode" fieldType="ffld" moreClasses="form-control-sm">
</eg-marc-editable-content>
</div>
-</div>
\ No newline at end of file
+</div>
+
+<fieldset class="ff-field row" *ngIf="isMultiValue()">
+ <legend class="col-sm-4 col-form-label form-label fw-bold" title="{{fieldMeta.description}}" i18n-title>
+ {{fieldLabel}}
+ </legend>
+ <div class="ff-value col-sm-8 d-flex">
+ <ng-container *ngFor="let char of separateCharacters(); let i = index;">
+ <eg-marc-editable-content domId="{{domId}}-{{i}}" [context]="context"
+ [fixedFieldCode]="fieldCode + (i + 1)" ariaLabel="{{fieldLabel}} position {{i + 1}}" i18n-ariaLabel
+ fieldType="ffld" moreClasses="form-control-sm type-ffld-char">
+ </eg-marc-editable-content>
+ </ng-container>
+ </div>
+</fieldset>
+
+</ng-container>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts
index ec8798e4e6..8e856ab170 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts
@@ -1,9 +1,7 @@
-import {Component, Input, Output, OnInit, EventEmitter, OnDestroy} from '@angular/core';
+import {Component, Input, OnInit, OnDestroy} from '@angular/core';
import {IdlObject} from '@eg/core/idl.service';
import {MarcRecord} from './marcrecord';
import {MarcEditContext} from './editor-context';
-import {TagTableService} from './tagtable.service';
-import { EgEvent } from '@eg/core/event.service';
import {Subject, takeUntil} from 'rxjs';
/**
@@ -12,8 +10,7 @@ import {Subject, takeUntil} from 'rxjs';
@Component({
selector: 'eg-fixed-field',
- templateUrl: './fixed-field.component.html',
- styleUrls: ['fixed-field.component.css']
+ templateUrl: './fixed-field.component.html'
})
export class FixedFieldComponent implements OnInit, OnDestroy {
@@ -28,6 +25,7 @@ export class FixedFieldComponent implements OnInit, OnDestroy {
get record(): MarcRecord { return this.context.record; }
fieldMeta: IdlObject;
+ fieldContent: string;
private destroy$ = new Subject<void>();
constructor() {}
@@ -44,13 +42,28 @@ export class FixedFieldComponent implements OnInit, OnDestroy {
// If no field metadata is found for this fixed field code and
// record type combo, the field will be hidden in the UI.
return this.context.tagTable.getFfFieldMeta(this.fieldCode)
- .then(fieldMeta => this.fieldMeta = fieldMeta);
+ .then(fieldMeta => {
+ this.fieldMeta = fieldMeta;
+ this.fieldContent = this.record.extractFixedField(this.fieldCode);
+ });
}
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
+
+ separateCharacters() {
+ if (!this.isMultiValue()) {
+ return null;
+ }
+
+ return Array.from(this.fieldContent);
+ }
+
+ isMultiValue() {
+ return this.record.isFixedFieldMultivalue(this.fieldCode);
+ }
}
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
index a817ce510c..24dc76fbd2 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
@@ -197,7 +197,7 @@
<div class="col-md-2 col-sm-4">
<!-- Nature of Contents = BKS: 008 / 24-27 or 006 / 07-10 ; CNR: 008 / 25-27 or 006 / 08-10 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Cont" fieldLabel="Cont"></eg-fixed-field>
+ fieldCode="Cont" fieldLabel="Cont" chars="4"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
@@ -234,7 +234,7 @@
<div class="col-md-2 col-sm-4">
<!-- Illustrations = 008 / 18-21 or 006 / 01-04 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Ills" fieldLabel="Ills"></eg-fixed-field>
+ fieldCode="Ills" fieldLabel="Ills" chars="4"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
diff --git a/Open-ILS/src/eg2/src/assets/js/marcrecord.js b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
index 768e5969bc..75032ecf7d 100644
--- a/Open-ILS/src/eg2/src/assets/js/marcrecord.js
+++ b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
@@ -417,12 +417,24 @@ var MARC21 = {
var _l = this.leader;
var _8 = this.field('008').data;
var _6 = this.field('006').data;
+ /*
+ console.debug('008', MARC21.Record._ff_pos[field]._8);
+ console.debug('006', MARC21.Record._ff_pos[field]._6);
+ console.debug('001', MARC21.Record._ff_pos[field]._1);
+ /***/
var rtype = this.recordType();
- if (_8) return !!MARC21.Record._ff_pos[field]._8[rtype].multivalue;
- if (_6) return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue;
- if (_l) return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue;
+ if (_8 && MARC21.Record._ff_pos[field]._8 && MARC21.Record._ff_pos[field]._8[rtype])
+ return !!MARC21.Record._ff_pos[field]._8[rtype].multivalue || false;
+
+ if (_6 && MARC21.Record._ff_pos[field]._6 && MARC21.Record._ff_pos[field]._6[rtype])
+ return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue || false;
+
+ if (_l && MARC21.Record._ff_pos[field]._1 && MARC21.Record._ff_pos[field]._1[rtype])
+ return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue || false;
+
+ return false;
}
this.extractFixedField = function (field, dflt) {
commit 20271fed463c6d225361b40709c83dffc631eabb
Author: Mike Rylander <mrylander(a)gmail.com>
Date: Thu Jul 3 14:48:50 2025 -0400
LP2083026 Multivalue fixed field definitions
Adds a multivalue flag to MARC fixed field definitions and enumerates
each single-character value's position in the 008 and 006 fields.
Signed-off-by: Mike Rylander <mrylander(a)gmail.com>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts
index 2891d6f4b3..34686624ba 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts
@@ -98,6 +98,10 @@ export class MarcRecord {
return this.record.extractFixedField(fieldCode);
}
+ isFixedFieldMultivalue(fieldCode: string): boolean {
+ return this.record.isFixedFieldMultivalue(fieldCode);
+ }
+
setFixedField(fieldCode: string, fieldValue: string): string {
const response = this.record.setFixedField(fieldCode, fieldValue);
this.fixedFieldChange.emit(fieldCode);
diff --git a/Open-ILS/src/eg2/src/assets/js/marcrecord.js b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
index 9f8ac02623..768e5969bc 100644
--- a/Open-ILS/src/eg2/src/assets/js/marcrecord.js
+++ b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
@@ -411,6 +411,20 @@ var MARC21 = {
return 'BKS'; // default
}
+ this.isFixedFieldMultivalue = function (field) {
+ if (!MARC21.Record._ff_pos[field]) return false;
+
+ var _l = this.leader;
+ var _8 = this.field('008').data;
+ var _6 = this.field('006').data;
+
+ var rtype = this.recordType();
+
+ if (_8) return !!MARC21.Record._ff_pos[field]._8[rtype].multivalue;
+ if (_6) return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue;
+ if (_l) return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue;
+ }
+
this.extractFixedField = function (field, dflt) {
if (!MARC21.Record._ff_pos[field]) return null;
@@ -757,12 +771,73 @@ MARC21.Record._ff_lengths = {
MARC21.Record._ff_pos = {
AccM : {
_8 : {
- SCO : {start: 24, len : 6, def : ' ' },
- REC : {start: 24, len : 6, def : ' ' }
+ SCO : {start: 24, len : 6, def : ' ', multivalue : true },
+ REC : {start: 24, len : 6, def : ' ', multivalue : true }
+ },
+ _6 : {
+ SCO : {start: 7, len : 6, def : ' ', multivalue : true },
+ REC : {start: 7, len : 6, def : ' ', multivalue : true }
+ }
+ },
+ // break out all six AccM characters individually:
+ AccM1 : {
+ _8 : {
+ SCO : {start: 24, len : 1, def : ' ' },
+ REC : {start: 24, len : 1, def : ' ' }
},
_6 : {
- SCO : {start: 7, len : 6, def : ' ' },
- REC : {start: 7, len : 6, def : ' ' }
+ SCO : {start: 7, len : 1, def : ' ' },
+ REC : {start: 7, len : 1, def : ' ' }
+ }
+ },
+ AccM2 : {
+ _8 : {
+ SCO : {start: 25, len : 1, def : ' ' },
+ REC : {start: 25, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 8, len : 1, def : ' ' },
+ REC : {start: 8, len : 1, def : ' ' }
+ }
+ },
+ AccM3 : {
+ _8 : {
+ SCO : {start: 26, len : 1, def : ' ' },
+ REC : {start: 26, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 9, len : 1, def : ' ' },
+ REC : {start: 9, len : 1, def : ' ' }
+ }
+ },
+ AccM4 : {
+ _8 : {
+ SCO : {start: 27, len : 1, def : ' ' },
+ REC : {start: 27, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 10, len : 1, def : ' ' },
+ REC : {start: 10, len : 1, def : ' ' }
+ }
+ },
+ AccM5 : {
+ _8 : {
+ SCO : {start: 28, len : 1, def : ' ' },
+ REC : {start: 28, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 11, len : 1, def : ' ' },
+ REC : {start: 11, len : 1, def : ' ' }
+ }
+ },
+ AccM6 : {
+ _8 : {
+ SCO : {start: 29, len : 1, def : ' ' },
+ REC : {start: 29, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 12, len : 1, def : ' ' },
+ REC : {start: 12, len : 1, def : ' ' }
}
},
Alph : {
@@ -833,12 +908,53 @@ MARC21.Record._ff_pos = {
},
Cont : {
_8 : {
- BKS : {start : 24, len : 4, def : ' ' },
- SER : {start : 25, len : 3, def : ' ' }
+ BKS : {start : 24, len : 4, def : ' ', multivalue : true },
+ SER : {start : 25, len : 3, def : ' ', multivalue : true }
},
_6 : {
- BKS : {start : 7, len : 4, def : ' ' },
- SER : {start : 8, len : 3, def : ' ' }
+ BKS : {start : 7, len : 4, def : ' ', multivalue : true },
+ SER : {start : 8, len : 3, def : ' ', multivalue : true }
+ }
+ },
+ // break out all four Cont characters individually:
+ Cont1 : {
+ _8 : {
+ BKS : {start : 24, len : 1, def : ' ' },
+ SER : {start : 25, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 7, len : 1, def : ' ' },
+ SER : {start : 8, len : 1, def : ' ' }
+ }
+ },
+ Cont2 : {
+ _8 : {
+ BKS : {start : 25, len : 1, def : ' ' },
+ SER : {start : 26, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 8, len : 1, def : ' ' },
+ SER : {start : 9, len : 1, def : ' ' }
+ }
+ },
+ Cont3 : {
+ _8 : {
+ BKS : {start : 26, len : 1, def : ' ' },
+ SER : {start : 27, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 9, len : 1, def : ' ' },
+ SER : {start : 10, len : 1, def : ' ' }
+ }
+ },
+ Cont4 : {
+ _8 : {
+ BKS : {start : 27, len : 1, def : ' ' },
+ SER : {start : 28, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 10, len : 1, def : ' ' },
+ SER : {start : 11, len : 1, def : ' ' }
}
},
CrTp : {
@@ -1017,10 +1133,43 @@ MARC21.Record._ff_pos = {
},
Ills : {
_8 : {
- BKS : {start : 18, len : 4, def : ' ' }
+ BKS : {start : 18, len : 4, def : ' ', multivalue : true }
},
_6 : {
- BKS : {start : 1, len : 4, def : ' ' }
+ BKS : {start : 1, len : 4, def : ' ', multivalue : true }
+ }
+ },
+ // break out all four Ills characters individually:
+ Ills1 : {
+ _8 : {
+ BKS : {start : 18, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 1, len : 1, def : ' ' }
+ }
+ },
+ Ills2 : {
+ _8 : {
+ BKS : {start : 19, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 2, len : 1, def : ' ' }
+ }
+ },
+ Ills3 : {
+ _8 : {
+ BKS : {start : 20, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 3, len : 1, def : ' ' }
+ }
+ },
+ Ills4 : {
+ _8 : {
+ BKS : {start : 21, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 4, len : 1, def : ' ' }
}
},
Indx : {
@@ -1060,12 +1209,33 @@ MARC21.Record._ff_pos = {
},
LTxt : {
_8 : {
- SCO : {start : 30, len : 2, def : 'n'},
- REC : {start : 30, len : 2, def : ' '}
+ SCO : {start : 30, len : 2, def : 'n', multivalue : true },
+ REC : {start : 30, len : 2, def : ' ', multivalue : true }
+ },
+ _6 : {
+ SCO : {start : 13, len : 2, def : 'n', multivalue : true },
+ REC : {start : 13, len : 2, def : ' ', multivalue : true }
+ },
+ },
+ // break out the two LTxt characters individually:
+ LTxt1 : {
+ _8 : {
+ SCO : {start : 30, len : 1, def : 'n'},
+ REC : {start : 30, len : 1, def : ' '}
+ },
+ _6 : {
+ SCO : {start : 13, len : 1, def : 'n'},
+ REC : {start : 13, len : 1, def : ' '}
+ },
+ },
+ LTxt2 : {
+ _8 : {
+ SCO : {start : 31, len : 1, def : 'n'},
+ REC : {start : 31, len : 1, def : ' '}
},
_6 : {
- SCO : {start : 13, len : 2, def : 'n'},
- REC : {start : 13, len : 2, def : ' '}
+ SCO : {start : 14, len : 1, def : 'n'},
+ REC : {start : 14, len : 1, def : ' '}
},
},
MRec : {
@@ -1130,10 +1300,43 @@ MARC21.Record._ff_pos = {
},
Relf : {
_8 : {
- MAP : {start: 18, len : 4, def : ' '}
+ MAP : {start: 18, len : 4, def : ' ', multivalue : true }
},
_6 : {
- MAP : {start: 1, len : 4, def : ' '}
+ MAP : {start: 1, len : 4, def : ' ', multivalue : true }
+ }
+ },
+ // break out all four Relf characters individually:
+ Relf1 : {
+ _8 : {
+ MAP : {start: 18, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 1, len : 1, def : ' ' }
+ }
+ },
+ Relf2 : {
+ _8 : {
+ MAP : {start: 19, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 2, len : 1, def : ' ' }
+ }
+ },
+ Relf3 : {
+ _8 : {
+ MAP : {start: 20, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 3, len : 1, def : ' ' }
+ }
+ },
+ Relf4 : {
+ _8 : {
+ MAP : {start: 21, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 4, len : 1, def : ' ' }
}
},
'S/L' : {
@@ -1146,10 +1349,27 @@ MARC21.Record._ff_pos = {
},
SpFM : {
_8 : {
- MAP : {start: 33, len : 2, def : ' ' }
+ MAP : {start: 33, len : 2, def : ' ', multivalue : true }
+ },
+ _6 : {
+ MAP : {start: 16, len : 2, def : ' ', multivalue : true }
+ }
+ },
+ // break out the two SpFM characters individually:
+ SpFM1 : {
+ _8 : {
+ MAP : {start: 33, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 16, len : 1, def : ' ' }
+ }
+ },
+ SpFM2 : {
+ _8 : {
+ MAP : {start: 34, len : 1, def : ' ' }
},
_6 : {
- MAP : {start: 16, len : 2, def : ' '}
+ MAP : {start: 17, len : 1, def : ' ' }
}
},
Srce : {
-----------------------------------------------------------------------
Summary of changes:
.../share/marc-edit/editable-content.component.css | 8 +-
.../marc-edit/editable-content.component.html | 2 +-
.../share/marc-edit/editable-content.component.ts | 4 +-
.../share/marc-edit/fixed-field.component.css | 21 --
.../share/marc-edit/fixed-field.component.html | 21 +-
.../staff/share/marc-edit/fixed-field.component.ts | 25 +-
.../src/app/staff/share/marc-edit/marcrecord.ts | 4 +
Open-ILS/src/eg2/src/assets/js/marcrecord.js | 268 +++++++++++++++++++--
8 files changed, 302 insertions(+), 51 deletions(-)
delete mode 100644 Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css
hooks/post-receive
--
Evergreen ILS
1
0

[GIT] Evergreen ILS branch main updated. a64cf056ae189020ac0a530b86cf067a1884cfb1
by Git User 11 Jul '25
by Git User 11 Jul '25
11 Jul '25
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, main has been updated
via a64cf056ae189020ac0a530b86cf067a1884cfb1 (commit)
via c5aabc4f66493f1ed97e49847e3aabb8785a7316 (commit)
via c45bd30193155f5d589a7890616c4c36de545c29 (commit)
via 0aff648d7ac87236c01560d73e5a088841465d59 (commit)
from 7c09b3bdb5cc55d0ada3801a63ba7acac2891487 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a64cf056ae189020ac0a530b86cf067a1884cfb1
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Tue Jul 8 18:38:01 2025 +0000
LP2083026 Follow-up 2: cleanup
Removes stray comments and vestigial HTML.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Sarah Cruz <scruz(a)georgialibraries.org>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
index 409f99866a..dbd42d0def 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
@@ -411,8 +411,6 @@ implements OnInit, AfterViewInit, OnDestroy {
case 'ind1': this.field.ind1 = value; break;
case 'ind2': this.field.ind2 = value; break;
case 'ffld':
- // TODO: concatenate multi-character fields
-
// Track locally and propagate to the record.
this.ffValue = value;
this.record.setFixedField(this.fixedFieldCode, value);
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
index 24dc76fbd2..a817ce510c 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
@@ -197,7 +197,7 @@
<div class="col-md-2 col-sm-4">
<!-- Nature of Contents = BKS: 008 / 24-27 or 006 / 07-10 ; CNR: 008 / 25-27 or 006 / 08-10 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Cont" fieldLabel="Cont" chars="4"></eg-fixed-field>
+ fieldCode="Cont" fieldLabel="Cont"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
@@ -234,7 +234,7 @@
<div class="col-md-2 col-sm-4">
<!-- Illustrations = 008 / 18-21 or 006 / 01-04 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Ills" fieldLabel="Ills" chars="4"></eg-fixed-field>
+ fieldCode="Ills" fieldLabel="Ills"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
commit c5aabc4f66493f1ed97e49847e3aabb8785a7316
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Mon Jul 7 20:40:53 2025 +0000
LP2083026 Follow-up: typo fix
Fixes a 1/L typo in some conditional checks.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/assets/js/marcrecord.js b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
index 75032ecf7d..c9c10268dd 100644
--- a/Open-ILS/src/eg2/src/assets/js/marcrecord.js
+++ b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
@@ -420,7 +420,7 @@ var MARC21 = {
/*
console.debug('008', MARC21.Record._ff_pos[field]._8);
console.debug('006', MARC21.Record._ff_pos[field]._6);
- console.debug('001', MARC21.Record._ff_pos[field]._1);
+ console.debug('001', MARC21.Record._ff_pos[field]._l);
/***/
var rtype = this.recordType();
@@ -431,7 +431,7 @@ var MARC21 = {
if (_6 && MARC21.Record._ff_pos[field]._6 && MARC21.Record._ff_pos[field]._6[rtype])
return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue || false;
- if (_l && MARC21.Record._ff_pos[field]._1 && MARC21.Record._ff_pos[field]._1[rtype])
+ if (_l && MARC21.Record._ff_pos[field]._l && MARC21.Record._ff_pos[field]._l[rtype])
return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue || false;
return false;
commit c45bd30193155f5d589a7890616c4c36de545c29
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Tue Jul 1 22:03:30 2025 +0000
LP2083026 Comboboxes for multivalue fixed fields
Enables combobox suggestions for fixed fields with multiple values
(Ills, Cont, AccM, etc.) in the MARC rich editor. Displays these fixed
fields as a fieldset group with a separate input for each character in
the multivalue field.
Release-note: Displays multivalue fixed fields (Ills, Cont, etc) as
separate single-character inputs with combobox suggestions.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css
index d92486799e..bae40eac33 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.css
@@ -25,6 +25,12 @@ input.form-control.type-ffld {
width: 100%;
}
+#eg-marc-rich-editor input.form-control.type-ffld-char {
+ display: inline-block;
+ text-align: center;
+ width: clamp(1ch, 1.25rem, 1.5rem);
+}
+
input.form-control.type-tag {
display: block; /* Firefox is dumb */
font-weight: bold;
@@ -95,4 +101,4 @@ textarea.bigtext {
/* style for free text entry "choice" in combobox; will be highlighted w/blue background */
.unknown {
font-style: italic;
-}
\ No newline at end of file
+}
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html
index 3922b5abe8..7449b44d39 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.html
@@ -35,7 +35,7 @@ Track their labels here.
<eg-combobox #MARCCombo *ngIf="suggest"
trigger="click"
[domId]="domId"
- [moreClasses]="'fw-bold form-control-sm type-'+fieldType"
+ [moreClasses]="moreClasses + ' fw-bold form-control-sm type-'+fieldType"
tabindex="{{tabindex}}"
[ariaLabel]="ariaLabel"
[maxLength]="maxLength"
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
index c5cb355707..409f99866a 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editable-content.component.ts
@@ -204,9 +204,9 @@ implements OnInit, AfterViewInit, OnDestroy {
case 'ffld': {
this.applyFFOptions();
- // these fixed fields can include multiple values (which doesn't work well with combobox) or free text
+ // these fixed fields contain free text
// TODO: remove check for AUT when authorities fixed field data is populated
- const complexFields = ['AccM','Cont','Date1','Date2','Ills','LTxt','Relf','SpFm','Time'];
+ const complexFields = ['Date1','Date2','Time'];
if (complexFields.includes(this.fixedFieldCode) || this.record.recordType() === 'AUT' ) {
this.suggest = false;
}
@@ -411,6 +411,8 @@ implements OnInit, AfterViewInit, OnDestroy {
case 'ind1': this.field.ind1 = value; break;
case 'ind2': this.field.ind2 = value; break;
case 'ffld':
+ // TODO: concatenate multi-character fields
+
// Track locally and propagate to the record.
this.ffValue = value;
this.record.setFixedField(this.fixedFieldCode, value);
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css
deleted file mode 100644
index cf7b271682..0000000000
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css
+++ /dev/null
@@ -1,21 +0,0 @@
-
-:host .popover {
- font-family: monospace;
- max-width: 550px;
-}
-
-:host .popover-body {
- max-height: 400px;
- overflow-y: auto;
- overflow-x: auto;
- padding: 0;
-}
-
-:host .popover-body .menu-entry {
- white-space: nowrap;
-}
-
-:host .popover-body .menu-entry:hover {
- background-color: var(--popover-menu-hover); /* bootstrap color */
-}
-
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html
index 5f96ba1702..58dbf8def7 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.html
@@ -1,5 +1,6 @@
+<ng-container *ngIf="fieldMeta">
-<div class="ff-field row" *ngIf="fieldMeta">
+<div class="ff-field row" *ngIf="!isMultiValue()">
<label for="{{domId}}" class="col-sm-4 col-form-label form-label fw-bold" title="{{fieldMeta.description}}" i18n-title>
{{fieldLabel}}
</label>
@@ -8,4 +9,20 @@
[fixedFieldCode]="fieldCode" fieldType="ffld" moreClasses="form-control-sm">
</eg-marc-editable-content>
</div>
-</div>
\ No newline at end of file
+</div>
+
+<fieldset class="ff-field row" *ngIf="isMultiValue()">
+ <legend class="col-sm-4 col-form-label form-label fw-bold" title="{{fieldMeta.description}}" i18n-title>
+ {{fieldLabel}}
+ </legend>
+ <div class="ff-value col-sm-8 d-flex">
+ <ng-container *ngFor="let char of separateCharacters(); let i = index;">
+ <eg-marc-editable-content domId="{{domId}}-{{i}}" [context]="context"
+ [fixedFieldCode]="fieldCode + (i + 1)" ariaLabel="{{fieldLabel}} position {{i + 1}}" i18n-ariaLabel
+ fieldType="ffld" moreClasses="form-control-sm type-ffld-char">
+ </eg-marc-editable-content>
+ </ng-container>
+ </div>
+</fieldset>
+
+</ng-container>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts
index ec8798e4e6..8e856ab170 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts
@@ -1,9 +1,7 @@
-import {Component, Input, Output, OnInit, EventEmitter, OnDestroy} from '@angular/core';
+import {Component, Input, OnInit, OnDestroy} from '@angular/core';
import {IdlObject} from '@eg/core/idl.service';
import {MarcRecord} from './marcrecord';
import {MarcEditContext} from './editor-context';
-import {TagTableService} from './tagtable.service';
-import { EgEvent } from '@eg/core/event.service';
import {Subject, takeUntil} from 'rxjs';
/**
@@ -12,8 +10,7 @@ import {Subject, takeUntil} from 'rxjs';
@Component({
selector: 'eg-fixed-field',
- templateUrl: './fixed-field.component.html',
- styleUrls: ['fixed-field.component.css']
+ templateUrl: './fixed-field.component.html'
})
export class FixedFieldComponent implements OnInit, OnDestroy {
@@ -28,6 +25,7 @@ export class FixedFieldComponent implements OnInit, OnDestroy {
get record(): MarcRecord { return this.context.record; }
fieldMeta: IdlObject;
+ fieldContent: string;
private destroy$ = new Subject<void>();
constructor() {}
@@ -44,13 +42,28 @@ export class FixedFieldComponent implements OnInit, OnDestroy {
// If no field metadata is found for this fixed field code and
// record type combo, the field will be hidden in the UI.
return this.context.tagTable.getFfFieldMeta(this.fieldCode)
- .then(fieldMeta => this.fieldMeta = fieldMeta);
+ .then(fieldMeta => {
+ this.fieldMeta = fieldMeta;
+ this.fieldContent = this.record.extractFixedField(this.fieldCode);
+ });
}
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
+
+ separateCharacters() {
+ if (!this.isMultiValue()) {
+ return null;
+ }
+
+ return Array.from(this.fieldContent);
+ }
+
+ isMultiValue() {
+ return this.record.isFixedFieldMultivalue(this.fieldCode);
+ }
}
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
index a817ce510c..24dc76fbd2 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-fields-editor.component.html
@@ -197,7 +197,7 @@
<div class="col-md-2 col-sm-4">
<!-- Nature of Contents = BKS: 008 / 24-27 or 006 / 07-10 ; CNR: 008 / 25-27 or 006 / 08-10 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Cont" fieldLabel="Cont"></eg-fixed-field>
+ fieldCode="Cont" fieldLabel="Cont" chars="4"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
@@ -234,7 +234,7 @@
<div class="col-md-2 col-sm-4">
<!-- Illustrations = 008 / 18-21 or 006 / 01-04 -->
<eg-fixed-field i18n-fieldLabel [context]="context"
- fieldCode="Ills" fieldLabel="Ills"></eg-fixed-field>
+ fieldCode="Ills" fieldLabel="Ills" chars="4"></eg-fixed-field>
</div>
<div class="col-md-2 col-sm-4">
diff --git a/Open-ILS/src/eg2/src/assets/js/marcrecord.js b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
index 768e5969bc..75032ecf7d 100644
--- a/Open-ILS/src/eg2/src/assets/js/marcrecord.js
+++ b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
@@ -417,12 +417,24 @@ var MARC21 = {
var _l = this.leader;
var _8 = this.field('008').data;
var _6 = this.field('006').data;
+ /*
+ console.debug('008', MARC21.Record._ff_pos[field]._8);
+ console.debug('006', MARC21.Record._ff_pos[field]._6);
+ console.debug('001', MARC21.Record._ff_pos[field]._1);
+ /***/
var rtype = this.recordType();
- if (_8) return !!MARC21.Record._ff_pos[field]._8[rtype].multivalue;
- if (_6) return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue;
- if (_l) return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue;
+ if (_8 && MARC21.Record._ff_pos[field]._8 && MARC21.Record._ff_pos[field]._8[rtype])
+ return !!MARC21.Record._ff_pos[field]._8[rtype].multivalue || false;
+
+ if (_6 && MARC21.Record._ff_pos[field]._6 && MARC21.Record._ff_pos[field]._6[rtype])
+ return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue || false;
+
+ if (_l && MARC21.Record._ff_pos[field]._1 && MARC21.Record._ff_pos[field]._1[rtype])
+ return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue || false;
+
+ return false;
}
this.extractFixedField = function (field, dflt) {
commit 0aff648d7ac87236c01560d73e5a088841465d59
Author: Mike Rylander <mrylander(a)gmail.com>
Date: Thu Jul 3 14:48:50 2025 -0400
LP2083026 Multivalue fixed field definitions
Adds a multivalue flag to MARC fixed field definitions and enumerates
each single-character value's position in the 008 and 006 fields.
Signed-off-by: Mike Rylander <mrylander(a)gmail.com>
Signed-off-by: Michele Morgan <mmorgan(a)noblenet.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts
index 2891d6f4b3..34686624ba 100644
--- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts
+++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/marcrecord.ts
@@ -98,6 +98,10 @@ export class MarcRecord {
return this.record.extractFixedField(fieldCode);
}
+ isFixedFieldMultivalue(fieldCode: string): boolean {
+ return this.record.isFixedFieldMultivalue(fieldCode);
+ }
+
setFixedField(fieldCode: string, fieldValue: string): string {
const response = this.record.setFixedField(fieldCode, fieldValue);
this.fixedFieldChange.emit(fieldCode);
diff --git a/Open-ILS/src/eg2/src/assets/js/marcrecord.js b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
index 9f8ac02623..768e5969bc 100644
--- a/Open-ILS/src/eg2/src/assets/js/marcrecord.js
+++ b/Open-ILS/src/eg2/src/assets/js/marcrecord.js
@@ -411,6 +411,20 @@ var MARC21 = {
return 'BKS'; // default
}
+ this.isFixedFieldMultivalue = function (field) {
+ if (!MARC21.Record._ff_pos[field]) return false;
+
+ var _l = this.leader;
+ var _8 = this.field('008').data;
+ var _6 = this.field('006').data;
+
+ var rtype = this.recordType();
+
+ if (_8) return !!MARC21.Record._ff_pos[field]._8[rtype].multivalue;
+ if (_6) return !!MARC21.Record._ff_pos[field]._6[rtype].multivalue;
+ if (_l) return !!MARC21.Record._ff_pos[field]._l[rtype].multivalue;
+ }
+
this.extractFixedField = function (field, dflt) {
if (!MARC21.Record._ff_pos[field]) return null;
@@ -757,12 +771,73 @@ MARC21.Record._ff_lengths = {
MARC21.Record._ff_pos = {
AccM : {
_8 : {
- SCO : {start: 24, len : 6, def : ' ' },
- REC : {start: 24, len : 6, def : ' ' }
+ SCO : {start: 24, len : 6, def : ' ', multivalue : true },
+ REC : {start: 24, len : 6, def : ' ', multivalue : true }
+ },
+ _6 : {
+ SCO : {start: 7, len : 6, def : ' ', multivalue : true },
+ REC : {start: 7, len : 6, def : ' ', multivalue : true }
+ }
+ },
+ // break out all six AccM characters individually:
+ AccM1 : {
+ _8 : {
+ SCO : {start: 24, len : 1, def : ' ' },
+ REC : {start: 24, len : 1, def : ' ' }
},
_6 : {
- SCO : {start: 7, len : 6, def : ' ' },
- REC : {start: 7, len : 6, def : ' ' }
+ SCO : {start: 7, len : 1, def : ' ' },
+ REC : {start: 7, len : 1, def : ' ' }
+ }
+ },
+ AccM2 : {
+ _8 : {
+ SCO : {start: 25, len : 1, def : ' ' },
+ REC : {start: 25, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 8, len : 1, def : ' ' },
+ REC : {start: 8, len : 1, def : ' ' }
+ }
+ },
+ AccM3 : {
+ _8 : {
+ SCO : {start: 26, len : 1, def : ' ' },
+ REC : {start: 26, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 9, len : 1, def : ' ' },
+ REC : {start: 9, len : 1, def : ' ' }
+ }
+ },
+ AccM4 : {
+ _8 : {
+ SCO : {start: 27, len : 1, def : ' ' },
+ REC : {start: 27, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 10, len : 1, def : ' ' },
+ REC : {start: 10, len : 1, def : ' ' }
+ }
+ },
+ AccM5 : {
+ _8 : {
+ SCO : {start: 28, len : 1, def : ' ' },
+ REC : {start: 28, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 11, len : 1, def : ' ' },
+ REC : {start: 11, len : 1, def : ' ' }
+ }
+ },
+ AccM6 : {
+ _8 : {
+ SCO : {start: 29, len : 1, def : ' ' },
+ REC : {start: 29, len : 1, def : ' ' }
+ },
+ _6 : {
+ SCO : {start: 12, len : 1, def : ' ' },
+ REC : {start: 12, len : 1, def : ' ' }
}
},
Alph : {
@@ -833,12 +908,53 @@ MARC21.Record._ff_pos = {
},
Cont : {
_8 : {
- BKS : {start : 24, len : 4, def : ' ' },
- SER : {start : 25, len : 3, def : ' ' }
+ BKS : {start : 24, len : 4, def : ' ', multivalue : true },
+ SER : {start : 25, len : 3, def : ' ', multivalue : true }
},
_6 : {
- BKS : {start : 7, len : 4, def : ' ' },
- SER : {start : 8, len : 3, def : ' ' }
+ BKS : {start : 7, len : 4, def : ' ', multivalue : true },
+ SER : {start : 8, len : 3, def : ' ', multivalue : true }
+ }
+ },
+ // break out all four Cont characters individually:
+ Cont1 : {
+ _8 : {
+ BKS : {start : 24, len : 1, def : ' ' },
+ SER : {start : 25, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 7, len : 1, def : ' ' },
+ SER : {start : 8, len : 1, def : ' ' }
+ }
+ },
+ Cont2 : {
+ _8 : {
+ BKS : {start : 25, len : 1, def : ' ' },
+ SER : {start : 26, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 8, len : 1, def : ' ' },
+ SER : {start : 9, len : 1, def : ' ' }
+ }
+ },
+ Cont3 : {
+ _8 : {
+ BKS : {start : 26, len : 1, def : ' ' },
+ SER : {start : 27, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 9, len : 1, def : ' ' },
+ SER : {start : 10, len : 1, def : ' ' }
+ }
+ },
+ Cont4 : {
+ _8 : {
+ BKS : {start : 27, len : 1, def : ' ' },
+ SER : {start : 28, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 10, len : 1, def : ' ' },
+ SER : {start : 11, len : 1, def : ' ' }
}
},
CrTp : {
@@ -1017,10 +1133,43 @@ MARC21.Record._ff_pos = {
},
Ills : {
_8 : {
- BKS : {start : 18, len : 4, def : ' ' }
+ BKS : {start : 18, len : 4, def : ' ', multivalue : true }
},
_6 : {
- BKS : {start : 1, len : 4, def : ' ' }
+ BKS : {start : 1, len : 4, def : ' ', multivalue : true }
+ }
+ },
+ // break out all four Ills characters individually:
+ Ills1 : {
+ _8 : {
+ BKS : {start : 18, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 1, len : 1, def : ' ' }
+ }
+ },
+ Ills2 : {
+ _8 : {
+ BKS : {start : 19, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 2, len : 1, def : ' ' }
+ }
+ },
+ Ills3 : {
+ _8 : {
+ BKS : {start : 20, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 3, len : 1, def : ' ' }
+ }
+ },
+ Ills4 : {
+ _8 : {
+ BKS : {start : 21, len : 1, def : ' ' }
+ },
+ _6 : {
+ BKS : {start : 4, len : 1, def : ' ' }
}
},
Indx : {
@@ -1060,12 +1209,33 @@ MARC21.Record._ff_pos = {
},
LTxt : {
_8 : {
- SCO : {start : 30, len : 2, def : 'n'},
- REC : {start : 30, len : 2, def : ' '}
+ SCO : {start : 30, len : 2, def : 'n', multivalue : true },
+ REC : {start : 30, len : 2, def : ' ', multivalue : true }
+ },
+ _6 : {
+ SCO : {start : 13, len : 2, def : 'n', multivalue : true },
+ REC : {start : 13, len : 2, def : ' ', multivalue : true }
+ },
+ },
+ // break out the two LTxt characters individually:
+ LTxt1 : {
+ _8 : {
+ SCO : {start : 30, len : 1, def : 'n'},
+ REC : {start : 30, len : 1, def : ' '}
+ },
+ _6 : {
+ SCO : {start : 13, len : 1, def : 'n'},
+ REC : {start : 13, len : 1, def : ' '}
+ },
+ },
+ LTxt2 : {
+ _8 : {
+ SCO : {start : 31, len : 1, def : 'n'},
+ REC : {start : 31, len : 1, def : ' '}
},
_6 : {
- SCO : {start : 13, len : 2, def : 'n'},
- REC : {start : 13, len : 2, def : ' '}
+ SCO : {start : 14, len : 1, def : 'n'},
+ REC : {start : 14, len : 1, def : ' '}
},
},
MRec : {
@@ -1130,10 +1300,43 @@ MARC21.Record._ff_pos = {
},
Relf : {
_8 : {
- MAP : {start: 18, len : 4, def : ' '}
+ MAP : {start: 18, len : 4, def : ' ', multivalue : true }
},
_6 : {
- MAP : {start: 1, len : 4, def : ' '}
+ MAP : {start: 1, len : 4, def : ' ', multivalue : true }
+ }
+ },
+ // break out all four Relf characters individually:
+ Relf1 : {
+ _8 : {
+ MAP : {start: 18, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 1, len : 1, def : ' ' }
+ }
+ },
+ Relf2 : {
+ _8 : {
+ MAP : {start: 19, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 2, len : 1, def : ' ' }
+ }
+ },
+ Relf3 : {
+ _8 : {
+ MAP : {start: 20, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 3, len : 1, def : ' ' }
+ }
+ },
+ Relf4 : {
+ _8 : {
+ MAP : {start: 21, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 4, len : 1, def : ' ' }
}
},
'S/L' : {
@@ -1146,10 +1349,27 @@ MARC21.Record._ff_pos = {
},
SpFM : {
_8 : {
- MAP : {start: 33, len : 2, def : ' ' }
+ MAP : {start: 33, len : 2, def : ' ', multivalue : true }
+ },
+ _6 : {
+ MAP : {start: 16, len : 2, def : ' ', multivalue : true }
+ }
+ },
+ // break out the two SpFM characters individually:
+ SpFM1 : {
+ _8 : {
+ MAP : {start: 33, len : 1, def : ' ' }
+ },
+ _6 : {
+ MAP : {start: 16, len : 1, def : ' ' }
+ }
+ },
+ SpFM2 : {
+ _8 : {
+ MAP : {start: 34, len : 1, def : ' ' }
},
_6 : {
- MAP : {start: 16, len : 2, def : ' '}
+ MAP : {start: 17, len : 1, def : ' ' }
}
},
Srce : {
-----------------------------------------------------------------------
Summary of changes:
.../share/marc-edit/editable-content.component.css | 8 +-
.../marc-edit/editable-content.component.html | 2 +-
.../share/marc-edit/editable-content.component.ts | 4 +-
.../share/marc-edit/fixed-field.component.css | 21 --
.../share/marc-edit/fixed-field.component.html | 21 +-
.../staff/share/marc-edit/fixed-field.component.ts | 25 +-
.../src/app/staff/share/marc-edit/marcrecord.ts | 4 +
Open-ILS/src/eg2/src/assets/js/marcrecord.js | 268 +++++++++++++++++++--
8 files changed, 302 insertions(+), 51 deletions(-)
delete mode 100644 Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.css
hooks/post-receive
--
Evergreen ILS
1
0

[GIT] Evergreen ILS branch rel_3_13 updated. 99c85064a6707302554b87d231a4e680f1375504
by Git User 11 Jul '25
by Git User 11 Jul '25
11 Jul '25
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_3_13 has been updated
via 99c85064a6707302554b87d231a4e680f1375504 (commit)
from 9507322cd7fd2cc1a9c1625af26ca78d054f6cf3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 99c85064a6707302554b87d231a4e680f1375504
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Fri Apr 11 21:47:36 2025 +0000
LP2004026 Consistent menu actions for alerts, notes, tags
Changes "Add/Manage Item [Alerts/Notes/Tags]" menu options to remove
"Add/Manage" for consistency with other menus and reduce redundant
wording (as these are already in the Add group).
Release-note: Removes "Add/Manage" from item alerts, notes, and tags
contextual menu items for consistency with other menus.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Sarah Cruz <scruz(a)georgialibraries.org>
Signed-off-by: Terran McCanna <tmccanna(a)georgialibraries.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html b/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
index e4e5e745a6..4dba6ec44b 100644
--- a/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
@@ -115,17 +115,17 @@
</eg-grid-toolbar-action>
<eg-grid-toolbar-action
- i18n-group group="Add" i18n-label label="Add/Manage Item Alerts"
+ i18n-group group="Add" i18n-label label="Item Alerts"
(onClick)="openItemAlerts($event)">
</eg-grid-toolbar-action>
<eg-grid-toolbar-action
- i18n-group group="Add" i18n-label label="Add/Manage Item Tags"
+ i18n-group group="Add" i18n-label label="Item Tags"
(onClick)="openItemTags($event)">
</eg-grid-toolbar-action>
<eg-grid-toolbar-action
- i18n-group group="Add" i18n-label label="Add/Manage Item Notes"
+ i18n-group group="Add" i18n-label label="Item Notes"
(onClick)="openItemNotes($event)">
</eg-grid-toolbar-action>
-----------------------------------------------------------------------
Summary of changes:
.../src/eg2/src/app/staff/catalog/record/holdings.component.html | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
hooks/post-receive
--
Evergreen ILS
1
0

[GIT] Evergreen ILS branch rel_3_14 updated. 2b610b8c154d47e9cf0703932396ec0c21192d01
by Git User 11 Jul '25
by Git User 11 Jul '25
11 Jul '25
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_3_14 has been updated
via 2b610b8c154d47e9cf0703932396ec0c21192d01 (commit)
from f384ebe97ecf000e8892befc99f25cd94ea78827 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 2b610b8c154d47e9cf0703932396ec0c21192d01
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Fri Apr 11 21:47:36 2025 +0000
LP2004026 Consistent menu actions for alerts, notes, tags
Changes "Add/Manage Item [Alerts/Notes/Tags]" menu options to remove
"Add/Manage" for consistency with other menus and reduce redundant
wording (as these are already in the Add group).
Release-note: Removes "Add/Manage" from item alerts, notes, and tags
contextual menu items for consistency with other menus.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Sarah Cruz <scruz(a)georgialibraries.org>
Signed-off-by: Terran McCanna <tmccanna(a)georgialibraries.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html b/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
index e4e5e745a6..4dba6ec44b 100644
--- a/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
@@ -115,17 +115,17 @@
</eg-grid-toolbar-action>
<eg-grid-toolbar-action
- i18n-group group="Add" i18n-label label="Add/Manage Item Alerts"
+ i18n-group group="Add" i18n-label label="Item Alerts"
(onClick)="openItemAlerts($event)">
</eg-grid-toolbar-action>
<eg-grid-toolbar-action
- i18n-group group="Add" i18n-label label="Add/Manage Item Tags"
+ i18n-group group="Add" i18n-label label="Item Tags"
(onClick)="openItemTags($event)">
</eg-grid-toolbar-action>
<eg-grid-toolbar-action
- i18n-group group="Add" i18n-label label="Add/Manage Item Notes"
+ i18n-group group="Add" i18n-label label="Item Notes"
(onClick)="openItemNotes($event)">
</eg-grid-toolbar-action>
-----------------------------------------------------------------------
Summary of changes:
.../src/eg2/src/app/staff/catalog/record/holdings.component.html | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
hooks/post-receive
--
Evergreen ILS
1
0

[GIT] Evergreen ILS branch rel_3_15 updated. 32496a58c0e9f290e57604b52927db41af7eae32
by Git User 11 Jul '25
by Git User 11 Jul '25
11 Jul '25
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_3_15 has been updated
via 32496a58c0e9f290e57604b52927db41af7eae32 (commit)
from 0b90e3db982507911f21a735405744e4ae2dbe0d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 32496a58c0e9f290e57604b52927db41af7eae32
Author: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Date: Fri Apr 11 21:47:36 2025 +0000
LP2004026 Consistent menu actions for alerts, notes, tags
Changes "Add/Manage Item [Alerts/Notes/Tags]" menu options to remove
"Add/Manage" for consistency with other menus and reduce redundant
wording (as these are already in the Add group).
Release-note: Removes "Add/Manage" from item alerts, notes, and tags
contextual menu items for consistency with other menus.
Signed-off-by: Stephanie Leary <stephanie.leary(a)equinoxoli.org>
Signed-off-by: Sarah Cruz <scruz(a)georgialibraries.org>
Signed-off-by: Terran McCanna <tmccanna(a)georgialibraries.org>
diff --git a/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html b/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
index e4e5e745a6..4dba6ec44b 100644
--- a/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/catalog/record/holdings.component.html
@@ -115,17 +115,17 @@
</eg-grid-toolbar-action>
<eg-grid-toolbar-action
- i18n-group group="Add" i18n-label label="Add/Manage Item Alerts"
+ i18n-group group="Add" i18n-label label="Item Alerts"
(onClick)="openItemAlerts($event)">
</eg-grid-toolbar-action>
<eg-grid-toolbar-action
- i18n-group group="Add" i18n-label label="Add/Manage Item Tags"
+ i18n-group group="Add" i18n-label label="Item Tags"
(onClick)="openItemTags($event)">
</eg-grid-toolbar-action>
<eg-grid-toolbar-action
- i18n-group group="Add" i18n-label label="Add/Manage Item Notes"
+ i18n-group group="Add" i18n-label label="Item Notes"
(onClick)="openItemNotes($event)">
</eg-grid-toolbar-action>
-----------------------------------------------------------------------
Summary of changes:
.../src/eg2/src/app/staff/catalog/record/holdings.component.html | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
hooks/post-receive
--
Evergreen ILS
1
0