
# Added - Added: Added the ability to bookmark certain pages within the manga (image) reader and later download them from the series context menu. # Fixed - Fixed: Fixed an issue where after adding a new folder to an existing library, a scan wouldn't be kicked off - Fixed: In some cases, after clicking the background of a modal, the modal would close, but state wouldn't be handled as if cancel was pushed # Changed - Changed: Admin contextual actions on cards will now be separated by a line to help differentiate. - Changed: Performance enhancement on an API used before reading # Dev - Bumped dependencies to latest versions ============================================= * Bumped versions of dependencies and refactored bookmark to progress. * Refactored method names in UI from bookmark to progress to prepare for new bookmark entity * Basic code is done, user can now bookmark a page (currently image reader only). * Comments and pipes * Some accessibility for new bookmark button * Fixed up the APIs to work correctly, added a new modal to quickly explore bookmarks (not implemented, not final). * Cleanup on the UI side to get the modal to look decent * Added dismissed handlers for modals where appropriate * Refactored UI to only show number of bookmarks across files to simplify delivery. Admin actionables are now separated by hr vs non-admin actions. * Basic API implemented, now to implement the ability to actually extract files. * Implemented the ability to download bookmarks. * Fixed a bug where adding a new folder to an existing library would not trigger a scan library task. * Fixed an issue that could cause bookmarked pages to get copied out of order. * Added handler from series-card component
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
|
|
import { Action, ActionItem } from 'src/app/_services/action-factory.service';
|
|
|
|
@Component({
|
|
selector: 'app-card-actionables',
|
|
templateUrl: './card-actionables.component.html',
|
|
styleUrls: ['./card-actionables.component.scss']
|
|
})
|
|
export class CardActionablesComponent implements OnInit {
|
|
|
|
@Input() iconClass = 'fa-ellipsis-v';
|
|
@Input() btnClass = '';
|
|
@Input() actions: ActionItem<any>[] = [];
|
|
@Input() labelBy = 'card';
|
|
@Input() disabled: boolean = false;
|
|
@Output() actionHandler = new EventEmitter<ActionItem<any>>();
|
|
|
|
adminActions: ActionItem<any>[] = [];
|
|
nonAdminActions: ActionItem<any>[] = [];
|
|
|
|
|
|
constructor() { }
|
|
|
|
ngOnInit(): void {
|
|
this.nonAdminActions = this.actions.filter(item => !item.requiresAdmin);
|
|
this.adminActions = this.actions.filter(item => item.requiresAdmin);
|
|
}
|
|
|
|
preventClick(event: any) {
|
|
event.stopPropagation();
|
|
event.preventDefault();
|
|
}
|
|
|
|
performAction(event: any, action: ActionItem<any>) {
|
|
this.preventClick(event);
|
|
|
|
if (typeof action.callback === 'function') {
|
|
this.actionHandler.emit(action);
|
|
}
|
|
}
|
|
|
|
// TODO: Insert hr to separate admin actions
|
|
|
|
|
|
}
|