Add Cards report

This commit is contained in:
John R. Supplee 2021-04-17 10:27:16 +02:00
parent ef584e2826
commit 661e80084c
7 changed files with 124 additions and 55 deletions

View file

@ -1,6 +1,8 @@
import { AttachmentStorage } from '/models/attachments';
import { CardSearchPagedComponent } from '/client/lib/cardSearch';
import SessionData from '/models/usersessiondata';
import { QueryParams } from '/config/query-classes';
import { OPERATOR_LIMIT } from '/config/search-const';
BlazeComponent.extendComponent({
subscription: null,
@ -8,10 +10,13 @@ BlazeComponent.extendComponent({
showBrokenCardsReport: new ReactiveVar(false),
showOrphanedFilesReport: new ReactiveVar(false),
showRulesReport: new ReactiveVar(false),
showCardsReport: new ReactiveVar(false),
sessionId: null,
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
this.sessionId = SessionData.getSessionId();
},
events() {
@ -21,6 +26,7 @@ BlazeComponent.extendComponent({
'click a.js-report-files': this.switchMenu,
'click a.js-report-orphaned-files': this.switchMenu,
'click a.js-report-rules': this.switchMenu,
'click a.js-report-cards': this.switchMenu,
},
];
},
@ -64,68 +70,66 @@ BlazeComponent.extendComponent({
this.showRulesReport.set(true);
this.loading.set(false);
});
} else if ('report-cards' === targetID) {
const qp = new QueryParams();
qp.addPredicate(OPERATOR_LIMIT, 300);
this.subscription = Meteor.subscribe(
'globalSearch',
this.sessionId,
qp.getParams(),
qp.text,
() => {
this.showCardsReport.set(true);
this.loading.set(false);
},
);
}
}
},
}).register('adminReports');
Template.filesReport.helpers({
attachmentFiles() {
class AdminReport extends BlazeComponent {
collection;
results() {
// eslint-disable-next-line no-console
// console.log('attachments:', AttachmentStorage.find());
// console.log('attachments.count:', AttachmentStorage.find().count());
return AttachmentStorage.find();
},
rulesReport() {
const rules = [];
Rules.find().forEach(rule => {
rules.push({
_id: rule._id,
title: rule.title,
boardId: rule.boardId,
boardTitle: rule.board().title,
action: rule.action().fetch(),
trigger: rule.trigger().fetch(),
});
});
return rules;
},
return this.collection.find();
}
resultsCount() {
return AttachmentStorage.find().count();
},
return this.collection.find().count();
}
fileSize(size) {
return Math.round(size / 1024);
},
}
usageCount(key) {
return Attachments.find({ 'copies.attachments.key': key }).count();
},
});
}
Template.orphanedFilesReport.helpers({
attachmentFiles() {
// eslint-disable-next-line no-console
// console.log('attachments:', AttachmentStorage.find());
// console.log('attachments.count:', AttachmentStorage.find().count());
return AttachmentStorage.find();
},
abbreviate(text) {
if (text.length > 30) {
return `${text.substr(0, 29)}...`;
}
return text;
}
}
resultsCount() {
return AttachmentStorage.find().count();
},
(class extends AdminReport {
collection = AttachmentStorage;
}.register('filesReport'));
fileSize(size) {
return Math.round(size / 1024);
},
});
(class extends AdminReport {
collection = AttachmentStorage;
}.register('orphanedFilesReport'));
Template.rulesReport.helpers({
rows() {
(class extends AdminReport {
collection = Rules;
results() {
const rules = [];
Rules.find().forEach(rule => {
@ -139,14 +143,25 @@ Template.rulesReport.helpers({
});
});
// eslint-disable-next-line no-console
console.log('rows:', rules);
return rules;
},
}
}.register('rulesReport'));
resultsCount() {
return Rules.find().count();
},
});
(class extends AdminReport {
collection = Cards;
userNames(userIds) {
let text = '';
userIds.forEach(userId => {
const user = Users.findOne(userId);
text += text ? ', ' : '';
text += user.username;
});
return text;
}
}.register('cardsReport'));
class BrokenCardsComponent extends CardSearchPagedComponent {
onCreated() {