IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an email to s dot adaszewski at gmail dot com. User accounts are meant only to report issues and/or generate pull requests. This is a purpose-specific Git hosting for ADARED projects. Thank you for your understanding!
소스 검색

Periodic refresh instead of every iteration in manifest worker.

master
부모
커밋
11be269b86
1개의 변경된 파일25개의 추가작업 그리고 6개의 파일을 삭제
  1. +25
    -6
      frontend/src/js/component/wb-collection-content.js

+ 25
- 6
frontend/src/js/component/wb-collection-content.js 파일 보기

@@ -23,6 +23,10 @@ function endsWith(what, endings) {
throw Error('Expected second argument to be either a string or an array');
}
function maskRows(rows) {
return rows.map(r => r.map(c => '-'));
}
class WBCollectionContent extends Component {
constructor(...args) {
super(...args);
@@ -74,16 +78,29 @@ class WBCollectionContent extends Component {
return manifestWorker.postMessage([ 'precreatePaths', paths ]);
});
let lastListingTimestamp = new Date(0);
for (let i = 0; i < streams.length; i++) {
prom_1 = prom_1.then(() => manifestWorker.postMessage([ 'parseStream', streams[i] ]));
prom_1 = prom_1.then(() => manifestWorker.postMessage([
'listDirectory', '.' + this.props.collectionPath, true
]));
prom_1 = prom_1.then(() => {
if (new Date() - lastListingTimestamp < 1000)
return;
lastListingTimestamp = new Date();
prom_1 = prom_1.then(e => {
this.prepareRows(e.data[1]);
this.setState({ 'parsedStreams': (i + 1) });
let prom_2 = new Promise(accept => accept());
prom_2 = prom_2.then(() => manifestWorker.postMessage([
'listDirectory', '.' + this.props.collectionPath, true
]));
prom_2 = prom_2.then(e => {
this.prepareRows(e.data[1]);
this.setState({ 'parsedStreams': (i + 1) });
});
return prom_2;
});
}
@@ -102,6 +119,8 @@ class WBCollectionContent extends Component {
componentWillReceiveProps(nextProps) {
this.props = nextProps;
this.setState({ rows: maskRows(this.state.rows) });
const { manifestWorker, mode } = this.state;
const { collectionPath } = this.props;


불러오는 중...
취소
저장