mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
selected row highlight (#1448)
* showing selected row Support for showing selected row for the components: - DataTable - DocumentList - Activiti TaskList - Activiti ProcessList fixes #170 * unit test fixes
This commit is contained in:
parent
01ab948666
commit
0fa87bb17d
@ -191,8 +191,13 @@ export class ActivitiProcessInstanceListComponent implements OnInit, OnChanges {
|
|||||||
*/
|
*/
|
||||||
selectFirst() {
|
selectFirst() {
|
||||||
if (!this.isListEmpty()) {
|
if (!this.isListEmpty()) {
|
||||||
this.currentInstanceId = this.data.getRows()[0].getValue('id');
|
let row = this.data.getRows()[0];
|
||||||
|
this.data.selectedRow = row;
|
||||||
|
this.currentInstanceId = row.getValue('id');
|
||||||
} else {
|
} else {
|
||||||
|
if (this.data) {
|
||||||
|
this.data.selectedRow = null;
|
||||||
|
}
|
||||||
this.currentInstanceId = null;
|
this.currentInstanceId = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -189,20 +189,20 @@ export class ActivitiTaskList implements OnInit, OnChanges {
|
|||||||
*/
|
*/
|
||||||
selectTask(taskIdToSelect: string) {
|
selectTask(taskIdToSelect: string) {
|
||||||
if (!this.isListEmpty()) {
|
if (!this.isListEmpty()) {
|
||||||
let dataRow = this.data.getRows().find(row => row.getValue('id') === taskIdToSelect);
|
let rows = this.data.getRows();
|
||||||
this.currentInstanceId = dataRow ? dataRow.getValue('id') : this.selectFirst();
|
if (rows.length > 0) {
|
||||||
|
let dataRow = rows.find(row => row.getValue('id') === taskIdToSelect) || rows[0];
|
||||||
|
this.data.selectedRow = dataRow;
|
||||||
|
this.currentInstanceId = dataRow.getValue('id');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (this.data) {
|
||||||
|
this.data.selectedRow = null;
|
||||||
|
}
|
||||||
this.currentInstanceId = null;
|
this.currentInstanceId = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Select the first instance of a list if present
|
|
||||||
*/
|
|
||||||
selectFirst() {
|
|
||||||
return this.data.getRows()[0].getValue('id');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the current id
|
* Return the current id
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
|
@ -114,3 +114,8 @@
|
|||||||
border-collapse: unset;
|
border-collapse: unset;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.alfresco-datatable__row--selected {
|
||||||
|
color: rgb(68,138,255);
|
||||||
|
}
|
||||||
|
@ -31,7 +31,8 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
<tr *ngFor="let row of data.getRows(); let idx = index" tabindex="0">
|
<tr *ngFor="let row of data.getRows(); let idx = index" tabindex="0"
|
||||||
|
[class.alfresco-datatable__row--selected]="selectedRow === row">
|
||||||
<td *ngIf="multiselect">
|
<td *ngIf="multiselect">
|
||||||
<label
|
<label
|
||||||
class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect mdl-data-table__select"
|
class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect mdl-data-table__select"
|
||||||
|
@ -53,10 +53,6 @@ export class DataTableComponent implements OnInit {
|
|||||||
@Output()
|
@Output()
|
||||||
rowDblClick: EventEmitter<DataRowEvent> = new EventEmitter<DataRowEvent>();
|
rowDblClick: EventEmitter<DataRowEvent> = new EventEmitter<DataRowEvent>();
|
||||||
|
|
||||||
noContentTemplate: TemplateRef<any>;
|
|
||||||
|
|
||||||
isSelectAllChecked: boolean = false;
|
|
||||||
|
|
||||||
@Output()
|
@Output()
|
||||||
showRowContextMenu: EventEmitter<any> = new EventEmitter();
|
showRowContextMenu: EventEmitter<any> = new EventEmitter();
|
||||||
|
|
||||||
@ -66,6 +62,13 @@ export class DataTableComponent implements OnInit {
|
|||||||
@Output()
|
@Output()
|
||||||
executeRowAction: EventEmitter<any> = new EventEmitter();
|
executeRowAction: EventEmitter<any> = new EventEmitter();
|
||||||
|
|
||||||
|
noContentTemplate: TemplateRef<any>;
|
||||||
|
isSelectAllChecked: boolean = false;
|
||||||
|
|
||||||
|
get selectedRow(): DataRow {
|
||||||
|
return this.data.selectedRow;
|
||||||
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
if (!this.data) {
|
if (!this.data) {
|
||||||
this.data = new ObjectDataTableAdapter([], []);
|
this.data = new ObjectDataTableAdapter([], []);
|
||||||
@ -82,6 +85,10 @@ export class DataTableComponent implements OnInit {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.data) {
|
||||||
|
this.data.selectedRow = row;
|
||||||
|
}
|
||||||
|
|
||||||
this.rowClick.emit({
|
this.rowClick.emit({
|
||||||
value: row,
|
value: row,
|
||||||
event: e
|
event: e
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export interface DataTableAdapter {
|
export interface DataTableAdapter {
|
||||||
|
selectedRow: DataRow;
|
||||||
getRows(): Array<DataRow>;
|
getRows(): Array<DataRow>;
|
||||||
setRows(rows: Array<DataRow>): void;
|
setRows(rows: Array<DataRow>): void;
|
||||||
getColumns(): Array<DataColumn>;
|
getColumns(): Array<DataColumn>;
|
||||||
|
@ -26,6 +26,8 @@ export class ObjectDataTableAdapter implements DataTableAdapter {
|
|||||||
private _rows: DataRow[];
|
private _rows: DataRow[];
|
||||||
private _columns: DataColumn[];
|
private _columns: DataColumn[];
|
||||||
|
|
||||||
|
selectedRow: DataRow;
|
||||||
|
|
||||||
static generateSchema(data: any[]) {
|
static generateSchema(data: any[]) {
|
||||||
let schema = [];
|
let schema = [];
|
||||||
|
|
||||||
|
@ -48,6 +48,7 @@ export class ShareDataTableAdapter implements DataTableAdapter, PaginationProvid
|
|||||||
|
|
||||||
thumbnails: boolean = false;
|
thumbnails: boolean = false;
|
||||||
dataLoaded: DataLoadedEventEmitter;
|
dataLoaded: DataLoadedEventEmitter;
|
||||||
|
selectedRow: DataRow;
|
||||||
|
|
||||||
constructor(private documentListService: DocumentListService,
|
constructor(private documentListService: DocumentListService,
|
||||||
private basePath: string,
|
private basePath: string,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user