aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/DocServer.ts2
-rw-r--r--src/client/views/collections/CollectionDockingView.tsx1
-rw-r--r--src/server/GarbageCollector.ts13
3 files changed, 14 insertions, 2 deletions
diff --git a/src/client/DocServer.ts b/src/client/DocServer.ts
index 443f70bb1..97147f5e4 100644
--- a/src/client/DocServer.ts
+++ b/src/client/DocServer.ts
@@ -32,6 +32,8 @@ export namespace DocServer {
// _cache = {};
}
+ export function isReadOnly() { return _isReadOnly; }
+
export function prepend(extension: string): string {
return window.location.origin + extension;
}
diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx
index d477f96f0..57964442d 100644
--- a/src/client/views/collections/CollectionDockingView.tsx
+++ b/src/client/views/collections/CollectionDockingView.tsx
@@ -426,6 +426,7 @@ export class CollectionDockingView extends React.Component<SubCollectionViewProp
stackCreated = (stack: any) => {
//stack.header.controlsContainer.find('.lm_popout').hide();
+ stack.header.element[0].style.backgroundColor = DocServer.isReadOnly() ? "#228540" : undefined;
stack.header.controlsContainer.find('.lm_close') //get the close icon
.off('click') //unbind the current click handler
.click(action(function () {
diff --git a/src/server/GarbageCollector.ts b/src/server/GarbageCollector.ts
index 268239481..59682e51e 100644
--- a/src/server/GarbageCollector.ts
+++ b/src/server/GarbageCollector.ts
@@ -94,8 +94,17 @@ async function GarbageCollect() {
const toDeleteCursor = await Database.Instance.query({ _id: { $nin: Array.from(visited) } }, { _id: 1 });
const toDelete: string[] = (await toDeleteCursor.toArray()).map(doc => doc._id);
toDeleteCursor.close();
- const result = await Database.Instance.delete({ _id: { $in: toDelete } }, "newDocuments");
- console.log(`${result.deletedCount} documents deleted`);
+ let i = 0;
+ let deleted = 0;
+ while (i < toDelete.length) {
+ const count = Math.min(toDelete.length, 5000);
+ const toDeleteDocs = toDelete.slice(i, i + count);
+ i += count;
+ const result = await Database.Instance.delete({ _id: { $in: toDeleteDocs } }, "newDocuments");
+ deleted += result.deletedCount || 0;
+ }
+ // const result = await Database.Instance.delete({ _id: { $in: toDelete } }, "newDocuments");
+ console.log(`${deleted} documents deleted`);
await Search.Instance.deleteDocuments(toDelete);
console.log("Cleared search documents");