61 lines · 1.4 KB · JavaScript
RawDownload
//= require views/misc/notif app.views.Updates = class Updates extends app.views.Notif {  static className = "_notif _notif-news";   static defautOptions = { autoHide: 30000 };   init0() {    this.lastUpdateTime = this.getLastUpdateTime();    this.updatedDocs = this.getUpdatedDocs();    this.updatedDisabledDocs = this.getUpdatedDisabledDocs();    if (this.updatedDocs.length > 0 || this.updatedDisabledDocs.length > 0) {      this.show();    }    this.markAllAsRead();  }   render() {    this.html(      app.templates.notifUpdates(this.updatedDocs, this.updatedDisabledDocs),    );  }   getUpdatedDocs() {    if (!this.lastUpdateTime) {      return [];    }    return Array.from(app.docs.all()).filter(      (doc) => doc.mtime > this.lastUpdateTime,    );  }   getUpdatedDisabledDocs() {    if (!this.lastUpdateTime) {      return [];    }    const result = [];    for (var doc of Array.from(app.disabledDocs.all())) {      if (        doc.mtime > this.lastUpdateTime &&        app.docs.findBy("slug_without_version", doc.slug_without_version)      ) {        result.push(doc);      }    }    return result;  }   getLastUpdateTime() {    return app.settings.get("version");  }   markAllAsRead() {    app.settings.set(      "version",      app.config.env === "production"        ? app.config.version        : Math.floor(Date.now() / 1000),    );  }};