Commit dbbaf90c authored by Jonne Haß's avatar Jonne Haß
Browse files

Merge pull request #6216 from svbergerem/admin-page-update-notifications

Add dashboard to admin page
parents 3d6ae08e 484e70a6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ With the port to Bootstrap 3, app/views/terms/default.haml has a new structure.
* Support color themes [#6033](https://github.com/diaspora/diaspora/pull/6033)
* Add mobile services and privacy settings pages [#6086](https://github.com/diaspora/diaspora/pull/6086)
* Optionally make your extended profile details public [#6162](https://github.com/diaspora/diaspora/pull/6162)
* Add admin dashboard showing latest diaspora\* version [#6216](https://github.com/diaspora/diaspora/pull/6216)

# 0.5.3.0

+75 −0
Original line number Diff line number Diff line
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later

app.pages.AdminDashboard = Backbone.View.extend({
  initialize: function() {
    this.updatePodStatus();
  },

  updatePodStatus: function() {
    var self = this,
        tagName = "";
    $.get("https://api.github.com/repos/diaspora/diaspora/releases/latest")
      .done(function(data) {
        // the response might be malformed
        try {
          /* jshint camelcase: false */
          tagName = data.tag_name;
          /* jshint camelcase: true */
          if(tagName.charAt(0) !== "v") {
            self.updatePodStatusFail();
            return;
          }
        } catch(e) {
          self.updatePodStatusFail();
          return;
        }

        // split version into components
        self.latestVersion = tagName.slice(1).split(".").map(Number);
        if(self.podUpToDate() === null) {
          self.updatePodStatusFail();
        } else {
          self.updatePodStatusSuccess();
        }
      })
      .fail(function() {
        self.updatePodStatusFail();
      });
  },

  updatePodStatusSuccess: function() {
    $("#pod-status .alert").removeClass("alert-info");
    var podStatusMessage = Diaspora.I18n.t("admins.dashboard.up_to_date");
    if(this.podUpToDate()) {
      $("#pod-status .alert").addClass("alert-success");
    } else {
      podStatusMessage = Diaspora.I18n.t("admins.dashboard.outdated");
      $("#pod-status .alert").addClass("alert-danger");
    }
    $("#pod-status .alert")
      .html("<strong>" + podStatusMessage + "</strong>")
      .append(" ")
      .append(Diaspora.I18n.t("admins.dashboard.compare_versions", {
        latestVersion: "v" + this.latestVersion.join("."),
        podVersion: "v" + gon.podVersion
      }));
  },

  updatePodStatusFail: function() {
    $("#pod-status .alert")
      .removeClass("alert-info")
      .addClass("alert-warning")
      .text(Diaspora.I18n.t("admins.dashboard.error"));
  },

  podUpToDate: function() {
    var podVersion = gon.podVersion.split(/\.|\-/).map(Number);
    if(this.latestVersion.length < 4 || podVersion.length < 4) { return null; }
    for(var i = 0; i < 4; i++) {
      if(this.latestVersion[i] < podVersion[i]) { return true; }
      if(this.latestVersion[i] > podVersion[i]) { return false; }
    }
    return true;
  }
});
// @license-end
+5 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ app.Router = Backbone.Router.extend({
    "user/edit": "settings",
    "users/sign_up": "registration",
    "profile/edit": "settings",
    "admins/dashboard": "adminDashboard",

    //new hotness
    "posts/:id": "singlePost",
@@ -47,6 +48,10 @@ app.Router = Backbone.Router.extend({
    app.help.render(section);
  },

  adminDashboard: function() {
    app.page = new app.pages.AdminDashboard();
  },

  contacts: function() {
    app.aspect = new app.models.Aspect(gon.preloads.aspect);
    app.contacts = new app.collections.Contacts(app.parsePreload("contacts"));
+0 −24
Original line number Diff line number Diff line
@import 'colors';

/** ADMIN STYlES **/

body > div.container {
  margin-top: 40px;
  padding-top: 1em;
}

#admin_nav {
  font-size: 1em;
  border-bottom: 2px solid #777;
  margin-bottom: 20px;

  ul {
    display: inline;
  }

  li {
    font-size: 0.8em;
    display: inline;
    margin-right: 0.5em;

    a { color: $blue; }
  }
}

/** user search **/

.users {
+1 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@
                <li><a href="/user/edit">{{t "header.settings"}}</a></li>
                <li><a href="/help">{{t "header.help"}}</a></li>
                {{#if current_user.admin}}
                  <li><a href="/admins/user_search">{{t "header.admin"}}</a></li>
                  <li><a href="/admins/dashboard">{{t "header.admin"}}</a></li>
                {{/if}}
                <li><a href="/users/sign_out" data-method="delete">{{t "header.log_out"}}</a></li>
              </ul>
Loading