mirror of
https://github.com/Kareadita/Kavita.git
synced 2025-06-23 15:30:34 -04:00
* From previous fix, added the other locking conditions on the update series metadata. * Fixed a bug where custom series, collection tag, and reading list covers weren't being removed on cleanup. * Ensure reading list detail has a margin to align to the standard * Refactored some event stuff to use dedicated consts. Introduced a new event when users read something, which can update progress bars on cards. * Added recomended and library tags to the library detail page. This will eventually offer more custom analytics * Cleanup some code onc arousel * Adjusted scale to height/width css to better fit * Small css tweaks to better center images in the manga reader in both axis. This takes care of double page rendering as well. * When a special has a Title set in the metadata, on series detail page, show that on the card rather than filename. * Fixed a bug where when paging in manga reader, the scroll to top wasn't working due to changing where scrolling is done * More css goodness for rendering images in manga reader * Fixed a bug where clearing a typeahead externally wouldn't clear the x button * Fixed a bug where filering then using keyboard would select wrong option * Added a new sorting field for Last Chapter Added (new field) to get a similar on deck feel. * Tweaked recently updated to hit the NFR of 500ms (300ms fresh start) and still give a much better experience. * Refactored On deck to now go to all series and also sort by last updated. Recently Added Series now loads all series with sort by created. * Some tweaks on css for cover image chooser * Fixed a bug in pagination control where multiple pagination events could trigger on load and thus multiple requests for data on parent controller. * Updated edit series modal to show when the last chapter was added and when user last read it. * Implemented a highlight on the fitler button when a filter is active. * Refactored metadata filter screens to perserve the filters in the url and thus when navigating back and forth, it will retain. users should click side nav to reset the state. * Hide middle section on companion bar on phones * Cleaned up some prefilters and console.logs * Don't open drawer by default when a filter is active
60 lines
1.8 KiB
TypeScript
60 lines
1.8 KiB
TypeScript
import { Component, Input, OnInit } from '@angular/core';
|
|
import { FormGroup, FormControl, Validators } from '@angular/forms';
|
|
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
|
|
import { Library } from 'src/app/_models/library';
|
|
import { Member } from 'src/app/_models/member';
|
|
import { AccountService } from 'src/app/_services/account.service';
|
|
|
|
// TODO: Rename this to EditUserModal
|
|
@Component({
|
|
selector: 'app-edit-user',
|
|
templateUrl: './edit-user.component.html',
|
|
styleUrls: ['./edit-user.component.scss']
|
|
})
|
|
export class EditUserComponent implements OnInit {
|
|
|
|
@Input() member!: Member;
|
|
|
|
selectedRoles: Array<string> = [];
|
|
selectedLibraries: Array<number> = [];
|
|
isSaving: boolean = false;
|
|
|
|
userForm: FormGroup = new FormGroup({});
|
|
|
|
public get email() { return this.userForm.get('email'); }
|
|
public get username() { return this.userForm.get('username'); }
|
|
public get password() { return this.userForm.get('password'); }
|
|
|
|
constructor(public modal: NgbActiveModal, private accountService: AccountService) { }
|
|
|
|
ngOnInit(): void {
|
|
this.userForm.addControl('email', new FormControl(this.member.email, [Validators.required, Validators.email]));
|
|
this.userForm.addControl('username', new FormControl(this.member.username, [Validators.required]));
|
|
|
|
this.userForm.get('email')?.disable();
|
|
}
|
|
|
|
updateRoleSelection(roles: Array<string>) {
|
|
this.selectedRoles = roles;
|
|
}
|
|
|
|
updateLibrarySelection(libraries: Array<Library>) {
|
|
this.selectedLibraries = libraries.map(l => l.id);
|
|
}
|
|
|
|
close() {
|
|
this.modal.close(false);
|
|
}
|
|
|
|
save() {
|
|
const model = this.userForm.getRawValue();
|
|
model.userId = this.member.id;
|
|
model.roles = this.selectedRoles;
|
|
model.libraries = this.selectedLibraries;
|
|
this.accountService.update(model).subscribe(() => {
|
|
this.modal.close(true);
|
|
});
|
|
}
|
|
|
|
}
|