From 985c7f54fa1dc854cfed09f404c79dd83bdf2636 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 14 May 2018 18:54:32 +0200 Subject: new views and such --- fortune/admin-name | 16 +++++++++ public/assets/js/lib/views/admin/adminz.js | 39 ++++++++++++++++++++ public/assets/js/lib/views/admin/password.js | 53 ++++++++++++++++++++++++++++ views/partials/admin_password.ejs | 40 +++++++++++++++++++++ views/partials/lastlog.ejs | 6 ++++ 5 files changed, 154 insertions(+) create mode 100644 fortune/admin-name create mode 100644 public/assets/js/lib/views/admin/adminz.js create mode 100644 public/assets/js/lib/views/admin/password.js create mode 100644 views/partials/admin_password.ejs create mode 100644 views/partials/lastlog.ejs diff --git a/fortune/admin-name b/fortune/admin-name new file mode 100644 index 0000000..89ee304 --- /dev/null +++ b/fortune/admin-name @@ -0,0 +1,16 @@ +bucky's +bucky's +bucky's +bucky's +bucky's +bucky's +bucky's +bucky's +bucky's +bucky's +bucky and the +bucky upon the +bucky brandishes +bucky twirls +bucky hails +bucky charges \ No newline at end of file diff --git a/public/assets/js/lib/views/admin/adminz.js b/public/assets/js/lib/views/admin/adminz.js new file mode 100644 index 0000000..caed86d --- /dev/null +++ b/public/assets/js/lib/views/admin/adminz.js @@ -0,0 +1,39 @@ +var AdminView = View.extend({ + + events: { + }, + + action: "/api/admin", + + initialize: function(opt){ + // this.hootbox = new HootBox ({ parent: this }) + this.password = new ChangePasswordForm ({ parent: this }) + this.lastlog = new LastLog ({ parent: this }) + }, + + load: function(){ + $("body").addClass("index").addClass("admin") + $.get(this.action, this.populate.bind(this)) + }, + + populate: function(data){ + $("body").removeClass('loading') + console.log(data) + this.password.load(data.usernames) + this.lastlog.load(data.lastlog) + if (data.mail.count) { + $(".alert").show().html( + "" + + "You have " + + data.mail.count + + " new message" + + courtesy_s(data.mail.count) + + "!") + if (is_mobile) { + $("#content").prepend( $(".alert") ) + } + } + $(".search_form input").focus() + }, + +}) diff --git a/public/assets/js/lib/views/admin/password.js b/public/assets/js/lib/views/admin/password.js new file mode 100644 index 0000000..41d6ed6 --- /dev/null +++ b/public/assets/js/lib/views/admin/password.js @@ -0,0 +1,53 @@ +var ChangePasswordForm = FormView.extend({ + + el: "#admin_changePassword", + + events: { + }, + + action: "/api/admin/password/", + method: "put", + + initialize: function(opt){ + this.__super__.initialize.call(this, opt) + this.$select = this.$("select") + }, + + load: function(usernames){ + usernames = usernames || [] + usernames.forEach(username => { + option = document.createElement("option") + option.value = username + option.innerHTML = sanitize(username) + this.$select.append(option) + }) + this.$select.show() + }, + + validate: function(){ + var errors = [] + var pw = $("[name=password]").val() + var pw1 = $("[name=newpassword]").val() + var pw2 = $("[name=newpassword2]").val() + if (! pw) { + errors.push("Please enter your password.") + } + if (! pw1 || ! pw2) { + errors.push("Please enter the new password for this user.") + } + if (pw1 && pw2 && pw1 !== pw2) { + errors.push("Passwords don't match.") + } + return errors.length ? errors : null + }, + + success: function(data){ + this.$("[name]").val('') + this.$("select").val('Select a user...') + // window.location.reload() + console.log(this) + console.log(this.parent) + this.showErrors(['password changed']) + }, + +}) diff --git a/views/partials/admin_password.ejs b/views/partials/admin_password.ejs new file mode 100644 index 0000000..26fd32f --- /dev/null +++ b/views/partials/admin_password.ejs @@ -0,0 +1,40 @@ +
+ reset password +
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ +   +
+
+ +
diff --git a/views/partials/lastlog.ejs b/views/partials/lastlog.ejs new file mode 100644 index 0000000..0a4d393 --- /dev/null +++ b/views/partials/lastlog.ejs @@ -0,0 +1,6 @@ + + + -- cgit v1.2.3-70-g09d2