OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
openproject/frontend/app/components/wp-fast-table/handlers/state/columns-transformer.ts

32 lines
970 B

import {debugLog} from '../../../../helpers/debug_output';
import {injectorBridge} from '../../../angular/angular-injector-bridge.functions';
import {States} from '../../../states.service';
import {WorkPackageTable} from '../../wp-fast-table';
export class ColumnsTransformer {
public states:States;
constructor(public table: WorkPackageTable) {
injectorBridge(this);
// observeOnScope
// observeUntil
this.states.table.columns.values$()
.takeUntil(this.states.table.stopAllSubscriptions).subscribe(() => {
if (table.rows.length > 0) {
var t0 = performance.now();
// Redraw all visible rows without reloading the table
table.rows.forEach((wpId) => {
let row = table.rowIndex[wpId];
table.refreshRow(row);
});
var t1 = performance.now();
debugLog("column redraw took " + (t1 - t0) + " milliseconds.");
}
});
}
}
ColumnsTransformer.$inject = ['states'];