| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 | import { AttachmentStorage } from '/models/attachments';import { CardSearchPagedComponent } from '/client/lib/cardSearch';import SessionData from '/models/usersessiondata';BlazeComponent.extendComponent({  subscription: null,  showFilesReport: new ReactiveVar(false),  showBrokenCardsReport: new ReactiveVar(false),  showOrphanedFilesReport: new ReactiveVar(false),  showRulesReport: new ReactiveVar(false),  onCreated() {    this.error = new ReactiveVar('');    this.loading = new ReactiveVar(false);  },  events() {    return [      {        'click a.js-report-broken': this.switchMenu,        'click a.js-report-files': this.switchMenu,        'click a.js-report-orphaned-files': this.switchMenu,        'click a.js-report-rules': this.switchMenu,      },    ];  },  switchMenu(event) {    const target = $(event.target);    if (!target.hasClass('active')) {      this.loading.set(true);      this.showFilesReport.set(false);      this.showBrokenCardsReport.set(false);      this.showOrphanedFilesReport.set(false);      if (this.subscription) {        this.subscription.stop();      }      $('.side-menu li.active').removeClass('active');      target.parent().addClass('active');      const targetID = target.data('id');      if ('report-broken' === targetID) {        this.showBrokenCardsReport.set(true);        this.subscription = Meteor.subscribe(          'brokenCards',          SessionData.getSessionId(),          () => {            this.loading.set(false);          },        );      } else if ('report-files' === targetID) {        this.showFilesReport.set(true);        this.subscription = Meteor.subscribe('attachmentsList', () => {          this.loading.set(false);        });      } else if ('report-orphaned-files' === targetID) {        this.showOrphanedFilesReport.set(true);        this.subscription = Meteor.subscribe('orphanedAttachments', () => {          this.loading.set(false);        });      } else if ('report-rules' === targetID) {        this.subscription = Meteor.subscribe('rulesReport', () => {          this.showRulesReport.set(true);          this.loading.set(false);        });      }    }  },}).register('adminReports');Template.filesReport.helpers({  attachmentFiles() {    // 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;  },  resultsCount() {    return AttachmentStorage.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();  },  resultsCount() {    return AttachmentStorage.find().count();  },  fileSize(size) {    return Math.round(size / 1024);  },});Template.rulesReport.helpers({  rows() {    const rules = [];    Rules.find().forEach(rule => {      rules.push({        _id: rule._id,        title: rule.title,        boardId: rule.boardId,        boardTitle: rule.board().title,        action: rule.action(),        trigger: rule.trigger(),      });    });    console.log('rows:', rules);    return rules;  },  resultsCount() {    return Rules.find().count();  },});class BrokenCardsComponent extends CardSearchPagedComponent {  onCreated() {    super.onCreated();  }}BrokenCardsComponent.register('brokenCardsReport');
 |