Skip to content
This repository was archived by the owner on Jul 6, 2022. It is now read-only.

Commit 8f39f8e

Browse files
committed
fixing logout/leave flow.
1 parent 0343882 commit 8f39f8e

5 files changed

Lines changed: 48 additions & 23 deletions

File tree

app/js/EventList.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ var EventList = {
3838

3939
handleEvent: function (event) {
4040
if (event.type === 'memberjoined') {
41-
// foo
42-
41+
MemberList.sortAndRenderAll();
4342
} else if (event.type === 'memberleft') {
4443
MemberList.sortAndRenderAll();
4544
}

app/js/UIPanels.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ var UIPanels = {
6161
formitems: [
6262
{input: {label: 'Fleet Password', id: 'create-fleet-password', class: 'submit-key'}},
6363
{button: {class: 'submit-key', text: 'Create Fleet', onClick: 'createFleetButtonClick(this)'}},
64-
{submit: {class: 'submit-join', text: '<i class="fa fa-arrow-circle-left"></i> Go Back', onClick: 'UIPanels.showJoinPanel()'}}
64+
{submit: {class: 'submit-join', text: '<i class="fa fa-arrow-circle-left"></i> Go Back', onClick: 'UIPanels.showStartPanel()'}}
6565
],
6666
error: error
6767
};

app/styles/main.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1163,6 +1163,11 @@ border-top: 0.16rem solid #333;
11631163
color: #faa;
11641164
}
11651165

1166+
#link .error a,
1167+
#login .error a {
1168+
display: block;
1169+
}
1170+
11661171

11671172
.atlwdg-trigger {
11681173
z-index: 9001;

server/controllers/fleet.js

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -58,48 +58,58 @@ exports.leave = function(req, res, next){
5858

5959
Member.findOneQ({key: key})
6060
.then(function(member) {
61-
var event = Event.prepare('memberLeft', member.fleetKey, member.toObject())
62-
event.saveQ();
63-
member.removeQ();
64-
61+
if (member) {
62+
var event = Event.prepare('memberLeft', member.fleetKey, member.toObject());
63+
event.saveQ();
64+
member.removeQ();
65+
66+
}
67+
6568
return response.success(res);
6669
})
6770
.catch(function(error) {
6871
console.log(error)
69-
return response.error(res, 'state', 'Error joining fleet: ' + error);
72+
return response.error(res, 'state', 'Error leaving fleet: ' + error);
7073
})
7174
.done();
7275

7376
};
7477

7578
exports.status = function(req, res, next) {
79+
if (!req.session) return next();
80+
7681
if (!req.session.fleetKey || !req.session.memberKey) {
7782
var self = Member.prepare('none', header_parser(req))
7883
var event = Event.prepare('statusSelf', 'none', self.toObject())
7984

8085
return response.success(res, [ event ]);
8186
}
8287

88+
var events = [];
89+
8390
Member.findOneQ({key: req.session.memberKey})
8491
.then(function(member) {
85-
var events = [];
92+
if (!member) throw 'Invalid Member key.';
8693
events.push( Event.prepare('statusSelf', member.fleetKey, member.toObject()) );
8794

95+
return Fleet.findOne({key: member.fleetKey}).execQ();
96+
})
97+
.then(function(fleet) {
98+
if (!fleet) throw 'Invalid Fleet.';
99+
events.push( Event.prepare('statusFleet', fleet.key, fleet.toObject()) );
100+
88101
var tasks = [
89-
Fleet.findOne({key: member.fleetKey}).execQ().then(function(fleet) {
90-
return Event.prepare('statusFleet', member.fleetKey, fleet.toObject());
102+
Event.find({fleetKey: fleet.key}).execQ().then(function(events) {
103+
return Event.prepare('statusEvents', fleet.key, _.map(events, function(event) { return event.toObject(); }));
91104
}),
92-
Event.find({fleetKey: member.fleetKey}).execQ().then(function(events) {
93-
return Event.prepare('statusEvents', member.fleetKey, _.map(events, function(event) { return event.toObject(); }));
105+
Member.find({fleetKey: fleet.key}).execQ().then(function(members) {
106+
return Event.prepare('statusMembers', fleet.key, _.map(members, function(member) { return member.toObject(); }));
94107
}),
95-
Member.find({fleetKey: member.fleetKey}).execQ().then(function(members) {
96-
return Event.prepare('statusMembers', member.fleetKey, _.map(members, function(member) { return member.toObject(); }));
108+
Hostile.find({fleetKey: fleet.key}).execQ().then(function(hostiles) {
109+
return Event.prepare('statusHostiles', fleet.key, _.map(hostiles, function(hostile) { return hostile.toObject(); }));
97110
}),
98-
Hostile.find({fleetKey: member.fleetKey}).execQ().then(function(hostiles) {
99-
return Event.prepare('statusHostiles', member.fleetKey, _.map(hostiles, function(hostile) { return hostile.toObject(); }));
100-
}),
101-
Scan.find({fleetKey: member.fleetKey}).execQ().then(function(scans) {
102-
return Event.prepare('statusScans', member.fleetKey, _.map(scans, function(scan) { return scan.toObject(); }));
111+
Scan.find({fleetKey: fleet.key}).execQ().then(function(scans) {
112+
return Event.prepare('statusScans', fleet.key, _.map(scans, function(scan) { return scan.toObject(); }));
103113
})
104114
];
105115

@@ -110,13 +120,21 @@ exports.status = function(req, res, next) {
110120
})
111121
.catch(function(error) {
112122
console.log(error)
113-
return response.error(res, 'state', 'Error fetching fleet tasks.');
123+
req.sessionStore.destroy( req.session.id, function(err) {
124+
delete req.session;
125+
});
126+
127+
return response.error(res, 'status', 'Error fetching fleet tasks.');
114128
})
115129
.done();
116130
})
117131
.catch(function(error) {
118132
console.log(error)
119-
return response.error(res, 'state', 'Error fetching fleet status.');
133+
req.sessionStore.destroy( req.session.id, function(err) {
134+
delete req.session;
135+
});
136+
137+
return response.error(res, 'status', 'Error fetching fleet status.');
120138
})
121139
.done();
122140

server/views/login/index.jade

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,7 @@ block content
1515
button(type='submit', name='submit')
1616
i.fa.fa-arrow-right.fa-large
1717
if error != ''
18-
span.error=error
18+
span.error
19+
= error
20+
a(href='https://goonfleet.com/esa/') Password problems?
21+

0 commit comments

Comments
 (0)