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.

pull/1/head
父節點
當前提交
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;


Loading…
取消
儲存