
* Implemented the ability to perform multi-selections on cards. Basic selection code is done, CSS needed and exposing actions. * Implemented a bulk selection bar. Added logic to the card on when to force show checkboxes. * Fixed some bad parsing groups and cases for Comic Chapters. * Hooked up some bulk actions on series detail page. Not hooked up to backend yet. * Fixes #593. URI Enocde library names as sometimes they can have & in them. * Implemented the ability to mark volume/chapters as read/unread. * Hooked up mark as unread with specials as well. * Add to reading list hooked up for Series Detail * Implemented ability to add multiple series to a reading list. * Implemented bulk selection for series cards * Added comments to the new code in ReaderService.cs * Implemented proper styling on bulk operation bar and integrated for collections. * Fixed an issue with shift clicking * Cleaned up css of bulk operations bar * Code cleanup
42 lines
1.1 KiB
TypeScript
42 lines
1.1 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);
|
|
}
|
|
}
|
|
|
|
}
|