summaryrefslogtreecommitdiff
path: root/public/assets/js/lib/views
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-05-14 18:54:32 +0200
committerJules Laplace <julescarbon@gmail.com>2018-05-14 18:54:32 +0200
commit985c7f54fa1dc854cfed09f404c79dd83bdf2636 (patch)
tree13e806bcc711e73f2d435f277b2a454de87ab046 /public/assets/js/lib/views
parente79bdedb819415792eea49de7483885046d2a368 (diff)
new views and such
Diffstat (limited to 'public/assets/js/lib/views')
-rw-r--r--public/assets/js/lib/views/admin/adminz.js39
-rw-r--r--public/assets/js/lib/views/admin/password.js53
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'])
+ },
+
+})