diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-05-14 18:54:32 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-05-14 18:54:32 +0200 |
| commit | 985c7f54fa1dc854cfed09f404c79dd83bdf2636 (patch) | |
| tree | 13e806bcc711e73f2d435f277b2a454de87ab046 /public/assets/js/lib/views | |
| parent | e79bdedb819415792eea49de7483885046d2a368 (diff) | |
new views and such
Diffstat (limited to 'public/assets/js/lib/views')
| -rw-r--r-- | public/assets/js/lib/views/admin/adminz.js | 39 | ||||
| -rw-r--r-- | public/assets/js/lib/views/admin/password.js | 53 |
2 files changed, 92 insertions, 0 deletions
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( + "<a href='/mail'>" + + "You have " + + data.mail.count + + " new message" + + courtesy_s(data.mail.count) + + "!</a>") + 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']) + }, + +}) |
