Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
2fa4e37
primera versión extractor y filtros
178Pelado Feb 4, 2025
3a5a062
creo y modifico filtros. separo componente botones acceso rápido. mod…
178Pelado Feb 11, 2025
566dbec
cambio iconos filtros y agrego extracción "Tomo" en números romanos
178Pelado Feb 18, 2025
a387484
comento el evento que resetea el submission al hacer click en otra se…
178Pelado May 1, 2025
9cf86c1
soluciono el error que hacía que algunos campos tarden más que el res…
178Pelado May 1, 2025
203dad7
refactoring general
178Pelado May 1, 2025
9cfa9a7
limpieza código estilos
178Pelado May 2, 2025
5814fa1
saco el header fixed si estoy en submission, así aprovecho la pantall…
178Pelado Jul 10, 2025
d1207d8
el móludo solo se activa si estoy con un Administrator o un SeDiCIAdmin
178Pelado Jul 10, 2025
8222bcc
el texto seleccionado se centra verticalmente y los botones aparecen …
178Pelado Jul 10, 2025
5606b65
cambio el firltro toCapitalize para que acepte acentos y ñ
178Pelado Jul 24, 2025
dd2700e
cambio la lógica de recuperación de campos disponibles, ahora se pued…
178Pelado Jul 24, 2025
03fcf13
elimino el resto de accesos rápidos, dejo solo uno que sirve para tod…
178Pelado Jul 28, 2025
7376c31
agrego métodos para ver si es una o varias personas y otro para una l…
178Pelado Jul 28, 2025
c470676
agregos casos a la obtención de info de revistas y fechas
178Pelado Jul 28, 2025
68d0e44
preparo mejor la obtención de palabras claves
178Pelado Jul 28, 2025
a32fe98
agrego/mejoro textos explicativos
178Pelado Jul 28, 2025
3e7ac63
Agrego un modo automático que aplica directamente el filtro (según el…
178Pelado Jul 31, 2025
d66dc61
Se agrega la posibilidad de concatenar texto en el previsualizador, a…
178Pelado Jul 31, 2025
824cd33
Saco el menú de agregar/reemplazar/concatenar.
178Pelado Jul 31, 2025
8c10963
Cambio la vista a 5 (formulario) y 7 (PDF) columnas en lugar de 6 y 6.
178Pelado Jul 31, 2025
43dc271
cambio la forma de generación y eliminación de los botones de aplicac…
178Pelado Aug 2, 2025
83ad62a
Primera versión acomodada de los filtros. Asociados a inpust y asocia…
178Pelado Aug 4, 2025
8101bd5
cambio tamaños y cantidades. Principalmente pensado para la vista en …
178Pelado Aug 5, 2025
4b82f50
parcheo la generación de botones para aplicar filtros a los campos de…
178Pelado Aug 5, 2025
bdbd0c7
Agrego nuevo caso de uso al campo de fechas
178Pelado Aug 5, 2025
146bf73
agrego nuevo separador al split
178Pelado Aug 8, 2025
d300fe4
mejoro la eliminación de botones duplicados. mejoro la lógica del apl…
178Pelado Aug 8, 2025
382db72
Nueva lógica para el reordenamiento de nombres de personas.
178Pelado Aug 10, 2025
62646a6
mejoro la apariencia de los filtros aplicados al formulario
178Pelado Aug 10, 2025
79a2c12
agrego el viejo norm.php de sedici5
178Pelado Aug 12, 2025
fb89d90
no aplico el norm sobre palabras claves porque rompe los delimitadores
178Pelado Aug 25, 2025
dd18e02
Creo una primera versión del código para acomodar acentos mál puestos…
178Pelado Sep 12, 2025
a7d2958
hago que no se normalicen los autores a nivel símbolos, porque falla …
178Pelado Sep 12, 2025
3ef81e4
Agrego más casos a la recuperación de volúmen y número de artículos
178Pelado Oct 20, 2025
8205a20
Agrego más casos a la recuperación de volúmen y número de artículos
178Pelado Oct 22, 2025
9df0b95
Migración del código a la rama de sedici-9.2
178Pelado Mar 30, 2026
13cde2a
actualización general de la sintaxis de angular (extrartor PDf + comp…
178Pelado Mar 30, 2026
39c1df0
vuelvo a permitir que los autores aparezcan con su filiación al momen…
178Pelado Mar 31, 2026
aeb81a0
Acomodo los botones y sus estilos, para la nueva versión de DSpace.
178Pelado Mar 31, 2026
9d582ff
Elimino un console.log innecesario
178Pelado Apr 13, 2026
05a8180
Renombro un método que había quedado con nombre genérico de prueba
178Pelado Apr 13, 2026
09b6430
Merge remote-tracking branch 'origin/sedici-9.3' into pps_feli_v9
178Pelado Jun 10, 2026
3869593
Agrego el label como nombre en el selector dinámico de campos
178Pelado Jun 10, 2026
58f7914
Agrego la limpieza de saltos de línea al método que hace la limpieza …
178Pelado Jun 10, 2026
d5fceab
Saco el fixed del header en el submission (código que se modificó per…
178Pelado Jun 11, 2026
a8bd189
Elimino estilos inline y los paso a clases
178Pelado Jun 12, 2026
97834e4
Cambio la lógica para no usar "!important" en un estilo
178Pelado Jun 12, 2026
460242f
Elimino método que no se usaba y un comentario innecesario
178Pelado Jun 12, 2026
cb2b852
Elimino .html que era una página de prueba
178Pelado Jun 12, 2026
1c28e15
Soluciono memory leaks y race conditions en la creación de botonesde …
178Pelado Jun 18, 2026
49b9616
Solamente se observa el ds-submission-form y no el body completo
178Pelado Jun 18, 2026
8efa87e
Almacenar la suscripción y desvincularla explícitamente al remover el…
178Pelado Jun 18, 2026
576d245
Chequeo de metadataYear, metadataMonth y metadataDay por si son null
178Pelado Jun 18, 2026
cddb942
Elimino estilos inline del .ts, los convierto en clases y los paso al…
178Pelado Jun 19, 2026
524f272
Soluciono memory leaks en la escucha de la selección de texto
178Pelado Jun 19, 2026
2897cf8
Saco la referencia a una dependencia deprecada, que se usaba para la …
178Pelado Jun 19, 2026
1234e34
Soluciono memory leaks en el manejo de botones
178Pelado Jun 23, 2026
5c55a90
Saco el focus del campo de metadatos, una vez cargado su contenido
178Pelado Jun 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
306 changes: 159 additions & 147 deletions src/app/item-page/sedici-item-certificate/sedici-item-certificate.html

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
import {
AsyncPipe,
NgIf,
NgFor,

NgClass,
} from '@angular/common';
import { AsyncPipe, NgClass } from '@angular/common';
import {
ChangeDetectionStrategy,
Component,
Expand Down Expand Up @@ -43,27 +37,20 @@ import { QRCodeComponent } from 'angularx-qrcode';
styleUrls: ['./sedici-item-certificate.scss'],
standalone: true,
imports: [
NgIf,
NgFor,

NgClass,
DsoEditMenuComponent,
GenericItemPageFieldComponent,
ItemPageUriFieldComponent,

AsyncPipe,
TranslateModule,

BadgeMetadataValuesComponent,

SediciContextBadgeComponent,
SediciTruncatableGenericItemPageFieldComponent,
SediciContextComponent,
NgbModule,

CommonModule,
QRCodeComponent,
], // Solo los necesarios si el HTML nuevo necesita alguno en particular
QRCodeComponent
], // Solo los necesarios si el HTML nuevo necesita alguno en particular
})
export class SediciCertificate extends UntypedItemComponent implements OnInit {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
<div class="container" *ngVar="(itemRD$ | async) as itemRD">
<div class="item-page" *ngIf="itemRD?.hasSucceeded" @fadeInOut>
<div *ngIf="itemRD?.payload as item">
<ds-sedici-certificate *ngIf="!item.isWithdrawn || (isAdmin$|async)" [object]="item" [viewMode]="viewMode"></ds-sedici-certificate>
<!--<ds-listable-object-component-loader *ngIf="!item.isWithdrawn || (isAdmin$|async)" [object]="item" [viewMode]="viewMode"></ds-listable-object-component-loader>-->
<ds-item-versions class="mt-2" [item]="item" [displayActions]="false"></ds-item-versions>
@if (itemRD?.hasSucceeded) {
<div class="item-page" @fadeInOut>
@if (itemRD?.payload; as item) {
<div>
@if (!item.isWithdrawn || (isAdmin$|async)) {
<ds-sedici-certificate [object]="item" [viewMode]="viewMode"></ds-sedici-certificate>
}
<!--<ds-listable-object-component-loader *ngIf="!item.isWithdrawn || (isAdmin$|async)" [object]="item" [viewMode]="viewMode"></ds-listable-object-component-loader>-->

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment?

<ds-item-versions class="mt-2" [item]="item" [displayActions]="false"></ds-item-versions>
</div>
}
</div>
</div>
<ds-error *ngIf="itemRD?.hasFailed" message="{{'error.item' | translate}}"></ds-error>
<ds-loading *ngIf="itemRD?.isLoading" message="{{'loading.item' | translate}}"></ds-loading>
}
@if (itemRD?.hasFailed) {
<ds-error message="{{'error.item' | translate}}"></ds-error>
}
@if (itemRD?.isLoading) {
<ds-loading message="{{'loading.item' | translate}}"></ds-loading>
}
</div>
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
import {
AsyncPipe,
isPlatformServer,
NgIf,

} from '@angular/common';
import { AsyncPipe, isPlatformServer } from '@angular/common';
import {
ChangeDetectionStrategy,
Component,
Expand Down Expand Up @@ -75,18 +70,13 @@ import { SediciCertificate } from '../sedici-item-certificate/sedici-item-certif
standalone: true,
imports: [
VarDirective,


ItemVersionsComponent,
ErrorComponent,
ThemedLoadingComponent,
TranslateModule,
AsyncPipe,
NgIf,


SediciCertificate,
],
SediciCertificate
],
})
export class PrintableCertificate implements OnInit, OnDestroy {

Expand Down
12 changes: 10 additions & 2 deletions src/app/root/root.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ export class RootComponent implements OnInit {
maxMobileWidth = WidthCategory.SM;

public isHomePage$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
public isSubmissionPage$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
private routerSubscription: Subscription;

/**
Expand Down Expand Up @@ -146,15 +147,18 @@ export class RootComponent implements OnInit {

const currentUrl = this.router.url;
this.isHomePage$.next(this.isHomeUrl(currentUrl));
this.isSubmissionPage$.next(this.isSubmissionUrl(currentUrl));

this.routerSubscription = this.router.events.pipe(
filter(event => event instanceof NavigationEnd),
map((event: NavigationEnd) => {
const isHome = this.isHomeUrl(event.urlAfterRedirects);
return isHome;
const isSubmission = this.isSubmissionUrl(event.urlAfterRedirects);
return { isHome, isSubmission };
})
).subscribe(isHome => {
).subscribe(({ isHome, isSubmission }) => {
this.isHomePage$.next(isHome);
this.isSubmissionPage$.next(isSubmission);
});
}

Expand All @@ -171,6 +175,10 @@ export class RootComponent implements OnInit {
url.startsWith('/home?');
}

private isSubmissionUrl(url: string): boolean {
return url.startsWith('/workspaceitems') && url.endsWith('/edit');
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En general los cambios son los mismos del header.component.ts


skipToMainContent() {
const mainContent = document.getElementById('main-content');
if (mainContent) {
Expand Down
20 changes: 11 additions & 9 deletions src/app/shared/edit-item-menu/edit-item-menu.component.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
<div *ngIf="(isAuthenticated | async) && contextMenuObject" ngbDropdown #itemOptions="ngbDropdown" placement="bottom-right" class="d-inline-block float-end">
<button class="btn btn-outline-primary" id="itemOptions" ngbDropdownToggle><i class="fas fa-ellipsis-v" aria-hidden="true"></i></button>
<div id="itemOptionsDropdownMenu" aria-labelledby="itemOptions" ngbDropdownMenu>
<h6 class="dropdown-header">{{'context-menu.actions.label' | translate}}</h6>
<button ngbDropdownItem
[routerLink]="['/edit-items', contextMenuObject.id,'form']">
Editar como submission
</button>
@if ((isAuthenticated | async) && contextMenuObject) {
<div ngbDropdown #itemOptions="ngbDropdown" placement="bottom-right" class="d-inline-block float-end">
<button class="btn btn-outline-primary" id="itemOptions" ngbDropdownToggle><i class="fas fa-ellipsis-v" aria-hidden="true"></i></button>
<div id="itemOptionsDropdownMenu" aria-labelledby="itemOptions" ngbDropdownMenu>
<h6 class="dropdown-header">{{'context-menu.actions.label' | translate}}</h6>
<button ngbDropdownItem
[routerLink]="['/edit-items', contextMenuObject.id,'form']">
Editar como submission
</button>
</div>
</div>
</div>
}
8 changes: 2 additions & 6 deletions src/app/shared/edit-item-menu/edit-item-menu.component.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
import { Component, Inject, OnDestroy, OnInit, Input } from '@angular/core';
import {
AsyncPipe,

NgIf,
} from '@angular/common';
import { AsyncPipe } from '@angular/common';
import {
Router,
RouterModule,
Expand Down Expand Up @@ -40,7 +36,7 @@ import { AuthService } from 'src/app/core/auth/auth.service';
styleUrls: ['./edit-item-menu.component.scss'],
templateUrl: './edit-item-menu.component.html',
standalone: true,
imports: [NgIf, TranslateModule, RouterModule, AsyncPipe, NgbDropdownModule],
imports: [TranslateModule, RouterModule, AsyncPipe, NgbDropdownModule],
})
export class EditItemMenuComponent implements OnInit, OnDestroy {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@

</div>
@if (model.languageCodes && model.languageCodes.length > 0) {
<div class="col-2" >
<div class="col-2 languageCodesSelector">
<select
#language="ngModel"
[disabled]="model.readOnly"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,8 @@
label {
margin-bottom: 0.25rem;
}

.languageCodesSelector {
width: auto;
padding: 0;
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<ng-template #noInfo let-entry="entry">
<ul class="list-unstyled mb-0">
<li class="list-item text-truncate text-primary fw-bold">{{entry.value}}</li>
<li class="list-item text-truncate text-primary fw-bold">{{entry.display}}</li>
</ul>
</ng-template>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,6 @@ export class DsDynamicScrollableDropdownComponent extends DsDynamicVocabularyCom
*/
setCurrentValue(value: any, init = false): void {
let result: Observable<string>;
console.log('Current value', value);

if (init && !this.useFindAllService) {
result = this.getInitValueFromModel().pipe(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
<button type="button"
[className]="'btn btn-success'"
ngbTooltip="{{'submission.workflow.tasks.claimed.approve_help' | translate}}"
[disabled]="processing$ | async"
(click)="submitTask()">
<span *ngIf="processing$ | async"><i class='fas fa-circle-notch fa-spin'></i> {{'submission.workflow.tasks.generic.processing' | translate}}</span>
<span *ngIf="(processing$ | async) !== true"><i class="fa fa-thumbs-up"></i> {{'submission.workflow.tasks.claimed.approve_not_select' | translate}}</span>
[className]="'btn btn-success'"
ngbTooltip="{{'submission.workflow.tasks.claimed.approve_help' | translate}}"
[disabled]="processing$ | async"
(click)="submitTask()">
@if (processing$ | async) {
<span><i class='fas fa-circle-notch fa-spin'></i> {{'submission.workflow.tasks.generic.processing' | translate}}</span>
}
@if ((processing$ | async) !== true) {
<span><i class="fa fa-thumbs-up"></i> {{'submission.workflow.tasks.claimed.approve_not_select' | translate}}</span>
}
</button>
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import {
AsyncPipe,
NgIf,
} from '@angular/common';
import { AsyncPipe } from '@angular/common';
import {
Component,
Injector,
Expand Down Expand Up @@ -33,7 +30,7 @@ export const WORKFLOW_TASK_OPTION_APPROVE_NOT_SELECT = 'submit_approve_not_selec
styleUrls: ['./claimed-task-actions-approve_not_select.component.scss'],
templateUrl: './claimed-task-actions-approve_not_select.component.html',
standalone: true,
imports: [NgbTooltipModule, NgIf, AsyncPipe, TranslateModule],
imports: [NgbTooltipModule, AsyncPipe, TranslateModule],
})
/**
* Component for displaying and processing the approve action on a workflow task item
Expand Down
17 changes: 17 additions & 0 deletions src/app/submission/form/dynamic-button-dropdown.component.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<div class="dropdown-container">
<button class="btn btn-secondary" title="Opciones" aria-label="Opciones" (click)="toggleDropdown($event)">
<span><i class="fa-solid fa-wand-magic-sparkles"></i></span>
</button>

<div #dropdown class="dropdown-menu">
@for (option of options; track option) {
<div (click)="applyFilter(option.id)" class="dropdown-item" [title]="option.description">
@if (option.icon) {
<i [class]="option.icon"></i>
} @else {
<span>{{ option.label }}</span>
}
</div>
}
</div>
</div>
37 changes: 37 additions & 0 deletions src/app/submission/form/dynamic-button-dropdown.component.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
:host {
display: inline-block;
width: auto;
padding: 0;
flex: 0 0 auto;
}

.dropdown-container {
position: relative;
display: inline-block;

.btn {
display: flex;
align-items: center;
justify-content: center;
}

.dropdown-menu {
padding: 8px;
gap: 10px;
right: 0;

.dropdown-item {
cursor: pointer;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
background-color: #e9e9e9;

&:hover {
background-color: #e0e0e0;
}
}
}
}
Loading
Loading