discourse/app/assets/javascripts/admin/controllers/admin-dashboard.js.es6

58 lines
1.6 KiB
JavaScript

import { setting } from 'discourse/lib/computed';
import AdminDashboard from 'admin/models/admin-dashboard';
// This controller supports the default interface when you enter the admin section.
export default Ember.Controller.extend({
loading: true,
versionCheck: null,
problemsCheckMinutes: 1,
showVersionChecks: setting('version_checks'),
foundProblems: function() {
return(Discourse.User.currentProp('admin') && this.get('problems') && this.get('problems').length > 0);
}.property('problems'),
thereWereProblems: function() {
if(!Discourse.User.currentProp('admin')) { return false; }
if( this.get('foundProblems') ) {
this.set('hadProblems', true);
return true;
} else {
return this.get('hadProblems') || false;
}
}.property('foundProblems'),
loadProblems: function() {
this.set('loadingProblems', true);
this.set('problemsFetchedAt', new Date());
var c = this;
AdminDashboard.fetchProblems().then(function(d) {
c.set('problems', d.problems);
c.set('loadingProblems', false);
if( d.problems && d.problems.length > 0 ) {
c.problemsCheckInterval = 1;
} else {
c.problemsCheckInterval = 10;
}
});
},
problemsTimestamp: function() {
return moment(this.get('problemsFetchedAt')).format('LLL');
}.property('problemsFetchedAt'),
updatedTimestamp: function() {
return moment(this.get('updated_at')).format('LLL');
}.property('updated_at'),
actions: {
refreshProblems: function() {
this.loadProblems();
},
showTrafficReport: function() {
this.set("showTrafficReport", true);
}
}
});