forked from MirrorHub/synapse
Use strings instead of opaque magic-number constants for presence states; rename AWAY to UNAVAILABLE
This commit is contained in:
parent
2a0f7541c7
commit
55944ccf72
7 changed files with 34 additions and 37 deletions
|
@ -37,7 +37,7 @@ class Feedback(object):
|
|||
|
||||
class PresenceState(object):
|
||||
"""Represents the presence state of a user."""
|
||||
OFFLINE = 0
|
||||
BUSY = 1
|
||||
ONLINE = 2
|
||||
FREE_FOR_CHAT = 3
|
||||
OFFLINE = u"offline"
|
||||
UNAVAILABLE = u"unavailable"
|
||||
ONLINE = u"online"
|
||||
FREE_FOR_CHAT = u"free_for_chat"
|
||||
|
|
|
@ -27,7 +27,7 @@ from synapse.handlers.presence import PresenceHandler, UserPresenceCache
|
|||
|
||||
|
||||
OFFLINE = PresenceState.OFFLINE
|
||||
BUSY = PresenceState.BUSY
|
||||
UNAVAILABLE = PresenceState.UNAVAILABLE
|
||||
ONLINE = PresenceState.ONLINE
|
||||
|
||||
|
||||
|
@ -149,12 +149,12 @@ class PresenceStateTestCase(unittest.TestCase):
|
|||
|
||||
yield self.handler.set_state(
|
||||
target_user=self.u_apple, auth_user=self.u_apple,
|
||||
state={"state": BUSY, "status_msg": "Away"})
|
||||
state={"state": UNAVAILABLE, "status_msg": "Away"})
|
||||
|
||||
mocked_set.assert_called_with("apple",
|
||||
{"state": 1, "status_msg": "Away"})
|
||||
{"state": UNAVAILABLE, "status_msg": "Away"})
|
||||
self.mock_start.assert_called_with(self.u_apple,
|
||||
state={"state": 1, "status_msg": "Away"})
|
||||
state={"state": UNAVAILABLE, "status_msg": "Away"})
|
||||
|
||||
yield self.handler.set_state(
|
||||
target_user=self.u_apple, auth_user=self.u_apple,
|
||||
|
@ -555,7 +555,7 @@ class PresencePushTestCase(unittest.TestCase):
|
|||
content={
|
||||
"push": [
|
||||
{"user_id": "@apple:test",
|
||||
"state": 2},
|
||||
"state": "online"},
|
||||
],
|
||||
}),
|
||||
call(
|
||||
|
@ -564,7 +564,7 @@ class PresencePushTestCase(unittest.TestCase):
|
|||
content={
|
||||
"push": [
|
||||
{"user_id": "@apple:test",
|
||||
"state": 2},
|
||||
"state": "online"},
|
||||
],
|
||||
})
|
||||
], any_order=True)
|
||||
|
@ -582,7 +582,7 @@ class PresencePushTestCase(unittest.TestCase):
|
|||
"remote", "m.presence", {
|
||||
"push": [
|
||||
{"user_id": "@potato:remote",
|
||||
"state": 2},
|
||||
"state": "online"},
|
||||
],
|
||||
}
|
||||
)
|
||||
|
@ -646,7 +646,7 @@ class PresencePushTestCase(unittest.TestCase):
|
|||
content={
|
||||
"push": [
|
||||
{"user_id": "@apple:test",
|
||||
"state": 2},
|
||||
"state": "online"},
|
||||
],
|
||||
}),
|
||||
call(
|
||||
|
@ -655,7 +655,7 @@ class PresencePushTestCase(unittest.TestCase):
|
|||
content={
|
||||
"push": [
|
||||
{"user_id": "@banana:test",
|
||||
"state": 0},
|
||||
"state": "offline"},
|
||||
],
|
||||
}),
|
||||
], any_order=True)
|
||||
|
@ -666,7 +666,7 @@ class PresencePushTestCase(unittest.TestCase):
|
|||
|
||||
self.handler._user_cachemap[self.u_clementine] = UserPresenceCache()
|
||||
self.handler._user_cachemap[self.u_clementine].update(
|
||||
{"state": PresenceState.ONLINE}, self.u_clementine)
|
||||
{"state": ONLINE}, self.u_clementine)
|
||||
self.room_members.append(self.u_potato)
|
||||
|
||||
yield self.distributor.fire("user_joined_room", self.u_clementine,
|
||||
|
@ -680,7 +680,7 @@ class PresencePushTestCase(unittest.TestCase):
|
|||
content={
|
||||
"push": [
|
||||
{"user_id": "@clementine:test",
|
||||
"state": 2},
|
||||
"state": "online"},
|
||||
],
|
||||
}),
|
||||
)
|
||||
|
@ -882,7 +882,7 @@ class PresencePollingTestCase(unittest.TestCase):
|
|||
content={
|
||||
"push": [
|
||||
{"user_id": "@banana:test",
|
||||
"state": 0,
|
||||
"state": "offline",
|
||||
"status_msg": None},
|
||||
],
|
||||
},
|
||||
|
|
|
@ -29,7 +29,7 @@ from synapse.handlers.profile import ProfileHandler
|
|||
|
||||
|
||||
OFFLINE = PresenceState.OFFLINE
|
||||
BUSY = PresenceState.BUSY
|
||||
UNAVAILABLE = PresenceState.UNAVAILABLE
|
||||
ONLINE = PresenceState.ONLINE
|
||||
|
||||
|
||||
|
@ -125,12 +125,12 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
|
|||
|
||||
yield self.handlers.presence_handler.set_state(
|
||||
target_user=self.u_apple, auth_user=self.u_apple,
|
||||
state={"state": BUSY, "status_msg": "Away"})
|
||||
state={"state": UNAVAILABLE, "status_msg": "Away"})
|
||||
|
||||
mocked_set.assert_called_with("apple",
|
||||
{"state": 1, "status_msg": "Away"})
|
||||
{"state": UNAVAILABLE, "status_msg": "Away"})
|
||||
self.mock_start.assert_called_with(self.u_apple,
|
||||
state={"state": 1, "status_msg": "Away",
|
||||
state={"state": UNAVAILABLE, "status_msg": "Away",
|
||||
"displayname": "Frank",
|
||||
"avatar_url": "http://foo"})
|
||||
|
||||
|
@ -220,7 +220,7 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
|
|||
content={
|
||||
"push": [
|
||||
{"user_id": "@apple:test",
|
||||
"state": 2,
|
||||
"state": "online",
|
||||
"displayname": "Frank",
|
||||
"avatar_url": "http://foo"},
|
||||
],
|
||||
|
@ -238,7 +238,7 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
|
|||
"remote", "m.presence", {
|
||||
"push": [
|
||||
{"user_id": "@potato:remote",
|
||||
"state": 2,
|
||||
"state": "online",
|
||||
"displayname": "Frank",
|
||||
"avatar_url": "http://foo"},
|
||||
],
|
||||
|
|
|
@ -31,7 +31,7 @@ logging.getLogger().addHandler(logging.NullHandler())
|
|||
|
||||
|
||||
OFFLINE = PresenceState.OFFLINE
|
||||
BUSY = PresenceState.BUSY
|
||||
UNAVAILABLE = PresenceState.UNAVAILABLE
|
||||
ONLINE = PresenceState.ONLINE
|
||||
|
||||
|
||||
|
@ -69,7 +69,7 @@ class PresenceStateTestCase(unittest.TestCase):
|
|||
def test_get_my_status(self):
|
||||
mocked_get = self.mock_handler.get_state
|
||||
mocked_get.return_value = defer.succeed(
|
||||
{"state": 2, "status_msg": "Available"})
|
||||
{"state": ONLINE, "status_msg": "Available"})
|
||||
|
||||
(code, response) = yield self.mock_server.trigger("GET",
|
||||
"/presence/%s/status" % (myid), None)
|
||||
|
@ -87,12 +87,12 @@ class PresenceStateTestCase(unittest.TestCase):
|
|||
|
||||
(code, response) = yield self.mock_server.trigger("PUT",
|
||||
"/presence/%s/status" % (myid),
|
||||
'{"state": 1, "status_msg": "Away"}')
|
||||
'{"state": "unavailable", "status_msg": "Away"}')
|
||||
|
||||
self.assertEquals(200, code)
|
||||
mocked_set.assert_called_with(target_user=self.u_apple,
|
||||
auth_user=self.u_apple,
|
||||
state={"state": 1, "status_msg": "Away"})
|
||||
state={"state": UNAVAILABLE, "status_msg": "Away"})
|
||||
|
||||
|
||||
class PresenceListTestCase(unittest.TestCase):
|
||||
|
@ -234,7 +234,7 @@ class PresenceEventStreamTestCase(unittest.TestCase):
|
|||
# I'll already get my own presence state change
|
||||
self.assertEquals({"start": "0", "end": "1", "chunk": [
|
||||
{"type": "m.presence",
|
||||
"content": {"user_id": "@apple:test", "state": 2}},
|
||||
"content": {"user_id": "@apple:test", "state": ONLINE}},
|
||||
]}, response)
|
||||
|
||||
self.mock_datastore.set_presence_state.return_value = defer.succeed(
|
||||
|
@ -251,5 +251,5 @@ class PresenceEventStreamTestCase(unittest.TestCase):
|
|||
self.assertEquals(200, code)
|
||||
self.assertEquals({"start": "1", "end": "2", "chunk": [
|
||||
{"type": "m.presence",
|
||||
"content": {"user_id": "@banana:test", "state": 2}},
|
||||
"content": {"user_id": "@banana:test", "state": ONLINE}},
|
||||
]}, response)
|
||||
|
|
|
@ -106,7 +106,7 @@ h1 {
|
|||
background-color: #38AF00;
|
||||
}
|
||||
|
||||
.away {
|
||||
.unavailable {
|
||||
background-color: #FFCC00;
|
||||
}
|
||||
|
||||
|
|
|
@ -123,17 +123,14 @@ angular.module('RoomController', [])
|
|||
var member = $scope.members[chunk.content.user_id];
|
||||
|
||||
if ("state" in chunk.content) {
|
||||
var ONLINE = 2;
|
||||
var AWAY = 1;
|
||||
var OFFLINE = 0;
|
||||
if (chunk.content.state === ONLINE) {
|
||||
if (chunk.content.state === "online") {
|
||||
member.presenceState = "online";
|
||||
}
|
||||
else if (chunk.content.state === OFFLINE) {
|
||||
else if (chunk.content.state === "offline") {
|
||||
member.presenceState = "offline";
|
||||
}
|
||||
else if (chunk.content.state === AWAY) {
|
||||
member.presenceState = "away";
|
||||
else if (chunk.content.state === "unavailable") {
|
||||
member.presenceState = "unavailable";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<img class="userAvatarGradient" src="img/gradient.png" width="80" height="24"/>
|
||||
<div class="userName">{{ info.displayname || name }}</div>
|
||||
</td>
|
||||
<td class="userPresence" ng-class="info.presenceState === 'online' ? 'online' : (info.presenceState === 'away' ? 'away' : '')" />
|
||||
<td class="userPresence" ng-class="info.presenceState === 'online' ? 'online' : (info.presenceState === 'unavailable' ? 'unavailable' : '')" />
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Reference in a new issue