adding login/logout

This commit is contained in:
Max Ogden
2011-07-13 20:27:04 -07:00
parent 274efc04ca
commit 5778874562
5 changed files with 104 additions and 10 deletions

View File

@@ -11,6 +11,7 @@
};
couch.request = function(opts) {
if (opts.data && typeof(opts.data === "object")) opts.data = JSON.stringify(opts.data);
var ajaxOpts = $.extend({}, defaults, opts);
return $.ajax(ajaxOpts).promise();
}
@@ -18,6 +19,22 @@
couch.get = function(url) {
return couch.request({url:url, type:'GET'});
};
couch.login = function(credentials) {
return couch.request({
url: "/_session",
type: 'POST',
data: {name: credentials.username, password: credentials.password}
})
}
couch.logout = function() {
return couch.request({url: "/_session", type: 'DELETE'});
}
couch.session = function() {
return couch.request({url: "/_session"});
}
couch.db = function(name, couchRoot) {
if(!couchRoot) couchRoot = "";

View File

@@ -131,12 +131,22 @@ var removalist = function() {
util.render('tableContainer', app.container, app.dbInfo);
util.render('title', 'project-title', app.dbInfo);
util.render( 'generating', 'project-controls' );
util.render( 'generating', 'project-actions' );
couch.session().then(function(session) {
if ( session.userCtx.name ) {
var text = "Sign out";
} else {
var text = "Sign in";
}
util.render('controls', 'project-controls', {text: text});
})
couch.request({url: app.baseURL + 'api/headers'}).then(function ( headers ) {
app.headers = headers;
app.csvUrl = app.baseURL + 'api/csv?headers=' + escape(JSON.stringify(headers));
util.render( 'actions', 'project-controls', $.extend({}, app.dbInfo, {url: app.csvUrl}) );
util.render( 'actions', 'project-actions', $.extend({}, app.dbInfo, {url: app.csvUrl}) );
fetchRows();
})
})

View File

@@ -15,9 +15,6 @@ app.handler = function(route) {
app.routes = {
home: function() {
removalist.bootstrap();
},
page: function(id) {
removalist.getPageSize();
}
}
@@ -53,7 +50,7 @@ app.after = {
});
doc[header] = cell.parents('.data-table-cell-editor').find('.data-table-cell-editor-editor').val();
util.notify("Updating row...", {persist: true, loader: true});
couch.request({type: "PUT", url: app.baseURL + "api/" + doc._id, data: JSON.stringify(doc)}).then(function(response) {
couch.request({type: "PUT", url: app.baseURL + "api/" + doc._id, data: doc}).then(function(response) {
util.notify("Row updated successfully");
removalist.fetchRows(false, app.offset);
})
@@ -69,8 +66,40 @@ app.after = {
util.render('exportActions', 'menu');
});
},
controls: function() {
$('#logged-in-status').click(function(e) {
if ($(e.target).text() === "Sign in") {
util.show('dialog');
util.render('signIn', 'dialog-content');
} else if ($(e.target).text() === "Sign out") {
util.notify("Signing you out...", {persist: true, loader: true});
couch.logout().then(function(response) {
util.notify("Signed out");
util.render('controls', 'project-controls', {text: "Sign in"});
})
}
});
},
exportActions: removalist.handleMenuClick,
columnActions: removalist.handleMenuClick,
signIn: function() {
$('.dialog-content .cancelButton').click(function(e) {
util.hide('dialog');
})
$('.dialog-content .okButton').click(function(e) {
util.hide('dialog');
util.notify("Signing you in...", {persist: true, loader: true});
var form = $(e.target).parents('.dialog-content').find('#sign-in-form');
var credentials = {
username: form.find('#username-input').val(),
password: form.find('#password-input').val()
}
couch.login(credentials).then(function(response) {
util.notify("Signed in");
util.render('controls', 'project-controls', {text: "Sign out"});
})
})
},
bulkEdit: function() {
$('.dialog-content .cancelButton').click(function(e) {
util.hide('dialog');