application/js/meta_view/user_admin.js in spontaneous-0.2.0.beta5 vs application/js/meta_view/user_admin.js in spontaneous-0.2.0.beta6
- old
+ new
@@ -25,14 +25,14 @@
};
Level.defaultLevel = function() {
var levels = this.levels;
var nonePosition = function() {
for (var i = 0, ii = levels.length; i < ii; i++) {
- if (levels[i].levelName() === "none") {
+ if (levels[i].levelName() === 'none') {
return i;
}
- };
+ }
}();
return levels[nonePosition + 1];
};
var LevelSelect = new JS.Class({
@@ -41,21 +41,21 @@
this.user = user;
},
element: function(cancelCallback) {
var self = this;
var levels = Level.levels;
- var currentLevel = Level.get(this.user.get("level")) || Level.defaultLevel();
- var outer = dom.div(".level-select");
- var input = dom.input({type: "hidden", name: Input.inputName(this.name), value: currentLevel.levelName()});
- var select = dom.div(".select").hide();
- var value = dom.div(".level-value").text(currentLevel.title());
+ var currentLevel = Level.get(this.user.get('level')) || Level.defaultLevel();
+ var outer = dom.div('.level-select');
+ var input = dom.input({type: 'hidden', name: Input.inputName(this.name), value: currentLevel.levelName()});
+ var select = dom.div('.select').hide();
+ var value = dom.div('.level-value').text(currentLevel.title());
levels.forEach(function(level) {
- var row = dom.div(".level").addClass("level-" + level.levelName());
- row.append(dom.span(".level-name").text(level.title()));
- row.append(dom.span(".level-publish").text("Publish").addClass(""+level.canPublish()));
- row.append(dom.span(".level-admin").text("Admin").addClass(""+level.isAdmin()));
- row.data("level", level);
+ var row = dom.div('.level').addClass('level-' + level.levelName());
+ row.append(dom.span('.level-name').text(level.title()));
+ row.append(dom.span('.level-publish').text('Publish').addClass(''+level.canPublish()));
+ row.append(dom.span('.level-admin').text('Admin').addClass(''+level.isAdmin()));
+ row.data('level', level);
row.click(function() {
self.choose(level);
return false;
});
select.append(row);
@@ -73,25 +73,25 @@
},
open: function() {
var pulldown = this.pulldown;
pulldown.fadeIn(100);
var level = this.currentLevel();
- var options = pulldown.find(".level");
+ var options = pulldown.find('.level');
var levelDiv = options.filter(function(div) {
- return $(this).data("level").levelName() == level.levelName();
+ return $(this).data('level').levelName() == level.levelName();
})[0];
var pos = $(levelDiv).position();
- pulldown.css("top", dom.px(-pos.top));
+ pulldown.css('top', dom.px(-pos.top));
},
choose: function(level) {
this.input.val(level.levelName());
this.value.text(level.title());
this.close();
},
- close: function( ) {
+ close: function() {
this.pulldown.fadeOut(100);
},
activate: function() {
this.select();
},
@@ -111,122 +111,122 @@
initialize: function(name, value) {
this.name = name;
this.value = value;
},
element: function(cancelCallback) {
- var type = (this.name === "email" ? "email" : "text");
+ var type = (this.name === 'email' ? 'email' : 'text');
var input = dom.input({
name: this.inputName(),
value: this.value,
type: type
}).focus(function() {
- $(this).parents("p").addClass("focus");
+ $(this).parents('p').addClass('focus');
}).blur(function() {
- $(this).parents("p").removeClass("focus");
+ $(this).parents('p').removeClass('focus');
}).keydown(function(event) {
if (event.keyCode === 27) { cancelCallback(); }
});
// TODO: catch RETURN and ESCAPE
return input;
- }.cache("input"),
+ }.cache('input'),
inputName: function() { return Input.inputName(this.name); },
isModified: function() {
// TODO: compare current value of input against original value
},
activate: function() {},
showError: function(errors) {
var error = errors[0]
, element = this.element()
- , errorWrap = dom.div(".error").append(dom.span().text(error)).hide();
+ , errorWrap = dom.div('.error').append(dom.span().text(error)).hide();
element.after(errorWrap);
errorWrap.fadeIn(300);
},
hideError: function() {
- var error = this.element().next(".error");
+ var error = this.element().next('.error');
error.fadeOut(100, function() {
error.remove();
});
}
});
Input.inputName = function(name) {
- return "user[" + name + "]";
+ return 'user[' + name + ']';
};
var responseCallback = function(complete, successCallback, failCallback) {
- var isFunction = function(f) { return (typeof f === "function"); }
+ var isFunction = function(f) { return (typeof f === 'function'); };
return function(result, status) {
- if (status === "success") {
+ if (status === 'success') {
if (isFunction(complete)) { complete(result); }
if (isFunction(successCallback)) { successCallback(result); }
} else {
if (isFunction(failCallback)) { failCallback(result); }
}
- }
+ };
};
var UserController = {
- save: function(user, params, successCallback, failCallback) {
- var url = ["/users", user.get("id")].join("/");
+ save: function(user, params, successCallback, failCallback) {
+ var url = ['/users', user.get('id')].join('/');
ajax.put(url, params, responseCallback(function(result) {
user.update(result);
}, successCallback, failCallback));
},
create: function(user, params, successCallback, failCallback) {
- var url = "/users";
+ var url = '/users';
ajax.post(url, params, responseCallback(function(result) {
user.update(result);
}, successCallback, failCallback));
},
delete: function(user, successCallback, failCallback) {
- var url = ["/users", user.get("id")].join("/");
+ var url = ['/users', user.get('id')].join('/');
ajax.del(url, {}, responseCallback(function(result) {
}, successCallback, failCallback));
},
enable: function(user, enabled, successCallback, failCallback) {
- var action = (enabled ? "enable" : "disable")
- , url = ["/users", action, user.get("id")].join("/");
+ var action = (enabled ? 'enable' : 'disable')
+ , url = ['/users', action, user.get('id')].join('/');
ajax.put(url, {}, responseCallback(function(result) {
- user.set("disabled", !enabled);
+ user.set('disabled', !enabled);
}, successCallback, failCallback));
},
logout: function(user, successCallback, failCallback) {
- var url = ["/users", "keys", user.get("id")].join("/");
+ var url = ['/users', 'keys', user.get('id')].join('/');
ajax.del(url, {}, responseCallback(function(result) {
},successCallback, failCallback));
- },
+ }
};
var EditUserView = new JS.Class({
initialize: function(parent, user) {
this.parent = parent;
- this.user = user;
+ this.user = user;
},
titleText: function() {
- return "Editing User “" + this.user.get("name") + "”";
+ return 'Editing User “' + this.user.get('name') + '”';
},
view: function() {
var self = this;
var user = this.user;
var wrap = dom.div();
- var form = dom.form({method: "post", action: ajax.request_url("/users/"+ user.get("id"))})
+ var form = dom.form({method: 'post', action: ajax.request_url('/users/'+ user.get('id'))});
var inputs = {};
var p, label, input, value;
- var titleBar = dom.div(".title").append(dom.span().text(this.titleText()));
+ var titleBar = dom.div('.title').append(dom.span().text(this.titleText()));
form.append(self.aboveUserAttributes());
var cancel = function() {
self.parent.closeUser();
};
self.editableAttributes().forEach(function(name) {
- p = dom.p()
+ p = dom.p();
label = dom.label().text(name);
input = self.inputForAttribute(name);
- value = dom.div(".value").append(input.element(cancel));
+ value = dom.div('.value').append(input.element(cancel));
p.append(label, value);
form.append(p);
inputs[name] = input;
});
p = dom.div('.save');
@@ -239,63 +239,63 @@
var performSave = function() {
self.beforeSave();
self.save(form, saveComplete, saveFail);
return false;
};
- var cancelBtn = dom.a(".button.cancel").text("Cancel").click(cancel);
- var saveBtn = dom.button(".button", {type: "submit"}).text(self.saveButtonText()).click(performSave);
- p.append(cancelBtn, dom.div(".gap"), saveBtn);
+ var cancelBtn = dom.a('.button.cancel').text('Cancel').click(cancel);
+ var saveBtn = dom.button('.button', {type: 'submit'}).text(self.saveButtonText()).click(performSave);
+ p.append(cancelBtn, dom.div('.gap'), saveBtn);
form.append(p);
form.submit(performSave);
this.inputs = inputs;
form.find('input[type="text"]:first').focus().select();
- wrap.append(titleBar, form)
+ wrap.append(titleBar, form);
return wrap;
},
verificationErrors: function(errors) {
var self = this;
$.each(errors, function(name, error) {
self.inputs[name].showError(error);
});
},
saveButtonText: function() {
- return "Save";
+ return 'Save';
},
inputForAttribute: function(name) {
- if (name === "level") {
+ if (name === 'level') {
return new LevelSelect(name, this.user);
}
return new Input(name, this.user.get(name));
},
editableAttributes: function() {
- return ["login", "name", "email", "level"];
+ return ['login', 'name', 'email', 'level'];
},
aboveUserAttributes: function() {
var self = this;
- var user = this.user
- var admin = dom.div(".admin");
- p = dom.p(".enabled");
- label = dom.label().text("Enabled");
- var checkbox = dom.input({type:"checkbox", checked: (!user.get("disabled"))}).click(function() {
- var enabled = $(this).attr("checked") === "checked";
+ var user = this.user;
+ var admin = dom.div('.admin');
+ p = dom.p('.enabled');
+ label = dom.label().text('Enabled');
+ var checkbox = dom.input({type:'checkbox', checked: (!user.get('disabled'))}).click(function() {
+ var enabled = $(this).attr('checked') === 'checked';
UserController.enable(user, enabled);
return false;
});
- user.watch("disabled", function(disabled) {
- checkbox.attr("checked", !disabled);
+ user.watch('disabled', function(disabled) {
+ checkbox.attr('checked', !disabled);
});
label.append(checkbox);
p.append(label);
admin.append(p);
- admin.append(dom.p(".gap"));
- p = dom.p(".log-off");
- var btn = dom.a(".button.log-out").text("Log "+user.get("login")+" Out").click(function() {
+ admin.append(dom.p('.gap'));
+ p = dom.p('.log-off');
+ var btn = dom.a('.button.log-out').text('Log '+user.get('login')+' Out').click(function() {
var $this = $(this);
- $this.addClass("pending");
+ $this.addClass('pending');
UserController.logout(user, function() {
- $this.removeClass("pending").addClass("complete").text("Logged Out");
+ $this.removeClass('pending').addClass('complete').text('Logged Out');
});
});
p.append(btn);
admin.append(p);
return admin;
@@ -322,36 +322,36 @@
self.inputs[name].hideError();
});
},
save: function(form, successCallback, failCallback) {
var self = this
- , params = self.serialiseForm(form)
+, params = self.serialiseForm(form);
UserController.save(self.user, params, successCallback, failCallback);
}
});
var CreateUserView = new JS.Class(EditUserView, {
titleText: function() {
- return "Create User";
+ return 'Create User';
},
aboveUserAttributes: function() {
- return "";
+ return '';
},
belowUserAttributes: function() {
- return "";
+ return '';
},
editableAttributes: function() {
- return ["login", "name", "email", "password", "level"];
+ return ['login', 'name', 'email', 'password', 'level'];
},
saveButtonText: function() {
- return "Create";
+ return 'Create';
},
save: function(form, successCallback, failCallback) {
var self = this
- , params = self.serialiseForm(form)
+, params = self.serialiseForm(form)
, callback = function(params) {
- if (typeof successCallback === "function") {
+ if (typeof successCallback === 'function') {
successCallback(params);
}
self.parent.addUser(self.user);
};
@@ -369,11 +369,11 @@
update: function(attributes) {
var self = this;
$.each(attributes, function(key, val) {
self.set(key, val);
});
- },
+ }
});
var UserAdmin = new JS.Class({
initialize: function() {
},
@@ -383,31 +383,31 @@
if (this.outer) {
container.append(this.outer);
return;
}
var self = this;
- var outer = dom.div("#user-admin-container");
- var title = dom.div(".title.main").append(dom.span().text("CMS Users"));
- var contents = dom.div(".contents");
- var edit = dom.div(".edit").hide();
- var done = dom.a(".button.done").text("Done").click(function() {
+ var outer = dom.div('#user-admin-container');
+ var title = dom.div('.title.main').append(dom.span().text('CMS Users'));
+ var contents = dom.div('.contents');
+ var edit = dom.div('.edit').hide();
+ var done = dom.a('.button.done').text('Done').click(function() {
self.close();
});
- var addWrapper = dom.div(".add-user")
- var addButton = dom.a(".button.add").text("Create User").click(function() {
+ var addWrapper = dom.div('.add-user');
+ var addButton = dom.a('.button.add').text('Create User').click(function() {
self.createUser();
});
addWrapper.append(addButton);
title.append(done);
outer.append(title, contents, addWrapper, edit);
this.outer = outer;
this.titleContainer = title;
this.contentsContainer = contents;
this.editContainer = edit;
- container.append(outer)
- ajax.get("/users", this.ready.bind(this));
+ container.append(outer);
+ ajax.get('/users', this.ready.bind(this));
},
createUser: function() {
var user = new User(this, {});
this.openView(new CreateUserView(this, user));
},
@@ -432,37 +432,37 @@
detach: function() {
this.outer = this.outer.detach();
},
listEntry: function(user) {
var self = this;
- var row = dom.div(".user");
- row.attr("id", "user-admin-" + user.get("id"));
- var cells = ["name", "level"].map(function(attr) {
+ var row = dom.div('.user');
+ row.attr('id', 'user-admin-' + user.get('id'));
+ var cells = ['name', 'level'].map(function(attr) {
var div = dom.div().addClass(attr).text(user.get(attr)).click(function() {
- self.editUser(user)
+ self.editUser(user);
return false;
});
user.watch(attr, function(newValue) {
div.text(newValue);
});
return div;
});
var disabledState = function(disabled) {
if (disabled) {
- row.addClass("disabled");
+ row.addClass('disabled');
} else {
- row.removeClass("disabled");
+ row.removeClass('disabled');
}
};
- user.watch("disabled", disabledState);
- disabledState(user.get("disabled"));
- var del = dom.div(".delete").click(function() {
+ user.watch('disabled', disabledState);
+ disabledState(user.get('disabled'));
+ var del = dom.div('.delete').click(function() {
self.confirmDeleteUser(user);
return false;
});
cells.push(del);
- row.append.apply(row, cells)
+ row.append.apply(row, cells);
return row;
},
animationDuration: 300,
editUser: function(user) {
this.openView(new EditUserView(this, user));
@@ -470,33 +470,33 @@
openView: function(viewInstance) {
var self = this;
var animationDuration = self.animationDuration;
var edit = this.editContainer.empty();
var list = this.contentsContainer;
- var back = dom.div(".back");
+ var back = dom.div('.back');
edit.append(back, viewInstance.view());
- edit.css({ left: "100%", opacity: 0 }).show();
- list.animate({ opacity: 0.2 }, animationDuration);
- edit.animate({ left: "48px", opacity: 1 }, animationDuration, "swing")
+ edit.css({ left: '100%', opacity: 0 }).show();
+ list.velocity({ opacity: 0.2 }, animationDuration);
+ edit.velocity({ left: '48px', opacity: 1 }, animationDuration, 'swing');
viewInstance.activate();
},
closeUser: function() {
var animationDuration = this.animationDuration;
var edit = this.editContainer.empty();
var list = this.contentsContainer;
- list.animate({ opacity: 1 }, animationDuration);
- edit.animate({ left: "100%", opacity: 0 }, animationDuration, function() {
+ list.velocity({ opacity: 1 }, animationDuration);
+ edit.velocity({ left: '100%', opacity: 0 }, animationDuration, function() {
edit.empty().hide();
});
},
confirmDeleteUser: function(user) {
var dialogue = Spontaneous.Popover.open(event, new ConfirmDeletePopup(this, user));
},
deleteUser: function(user) {
- var url = ["/users", user.get("id")].join("/");
+ var url = ['/users', user.get('id')].join('/');
ajax.del(url, {}, function(result, status) {
- if (status === "success") {
+ if (status === 'success') {
user.listEntry.disappear();
}
});
},
close: function() {
@@ -511,11 +511,11 @@
},
// width: function() {
// return 208;
// },
title: function() {
- return "Delete user “" + (this.user.get("login")) + "”";
+ return 'Delete user “' + (this.user.get('login')) + '”';
},
position_from_event: function(target) {
var pos = this.position_from_element(target);
pos.left += 40;
return pos;
@@ -525,16 +525,16 @@
var w = dom.div('#popover-delete').click(function() {
self.close();
return false;
});
- var ok = dom.a('.ok').text("Delete").click(function() {
+ var ok = dom.a('.ok').text('Delete').click(function() {
self.close();
__entry.deleteUser(self.user);
return false;
});
- var cancel = dom.a('.cancel').text("Cancel");
- w.append(cancel, ok)
+ var cancel = dom.a('.cancel').text('Cancel');
+ w.append(cancel, ok);
return w;
}
});
return UserAdmin;