-
Notifications
You must be signed in to change notification settings - Fork 17
/
TODO
141 lines (141 loc) · 7.14 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
. Import as much as possible of the 2011 hunt database (esp including
chat logs) in order to stress test meteor scaling.
- step 1 is probably to import into an arbitrary JSON format, then
- step 2 is to read the JSON to populate the meteor db
. Better design for main blackboard page
x fix layout of "last update", "last chat"
x fix the bootstrap "affix" component, which isn't properly tracking
main page scroll position
x fix tag layout; compress per-puzzle tags a lot
- make table cells have consistent widths from round to round
(use spanX or fixed width blocks instead of tables?)
- continue to make blackboard more compact, so we can see more of the hunt
at once
x add 'mute' and 'admin' buttons to top header. (admin should enable
editing functionality, as well as the ensureNick template)
x also display current nick (if any) in top header, allow logout/switching
x add 'edit' links or buttons or somesuch to add new round/puzzle/tag
(only visible when in 'admin mode')
- separate "zoomed out" view where puzzles are a big color-coded grid,
and you can easily see which puzzles are not solved?
x option to reverse-sort the rounds so that recently-added stuff appears
at the top.
x display rXpY info for each puzzle in a subtle manner (tooltip?)
. Design puzzle information page
- chat log at top, google drive at bottom, links to full-screen these
x display rXpY info (subtly) just in case things go pear-shaped
. Design round information page
- like puzzle info page?
x display rXmeta info (subtly) just in case things go pear-shaped
x Implement full-window chat screen (port InstaChat), link from blackboard
x Implement paginated chat log archive page
x and truncate full-window log at the same time
x Implement paginated database operation log page, link from blackboard
- Implement 'nick' page, edit real name, set tags, set picture?
x Improve the 'ensureNick' modal, do nick completion and allow display
and (optional) setting full name associated with nick; this will help
disambiguate if you accidentally choose the same nick as someone else.
. Finish implementing functionality of spec.txt in lib/model.coffee
x carefully implement puzzle/round reordering functions, use
MongoDB findAndModify() operation to avoid race conditions when
rewriting reordered array
(http://docs.mongodb.org/manual/tutorial/isolate-sequence-of-operations/)
x add unique indexes to ensure nicks/rounds/etc are unique
(http://docs.mongodb.org/manual/core/indexes/#index-type-unique
x add logging operation so that we can show the "last N operations"
. Hook up google drive to newPuzzle/renamePuzzle/delPuzzle in the model
- google drive operations should happen on server only, not in client
stuff (test Meteor.isServer()) -- and be careful, since 'drive' field
will probably not be set immediately in client. Make sure we cleanly
handle that case.
x Hook up Instachat code
x use puzzle/round ids as room names, so we don't have to rename them?
x Add schema for database operation logging
x tweak schema to allow condensing N "added puzzle X" messages into
single update line
. use puzzle/round name instead of id in url
- automatically do a Router.navigate() if name changes
x Smooth relative scrolling when clicking on sidebar links, perhaps using
jquery's $.localScroll()
x Play audio on the local machine when a puzzle is solved or a new puzzle
is added. (Any other events? We don't want to make it too spammy, but
getting an answer correct is a time everyone in the room will be cheering
out loud anyway.)
x add mute button to front page (use instachat's button/cookie?)
don't know exactly where it goes in the UI
- chat improvements:
x /me commands (probably needs an 'action' boolean added to the schema)
- /play {trombone, rimshot, crickets}, maybe using the below:
x URL parsing (ie, links to images display them, links to sounds play them)
(i think hubot-scripts uses some functionality like this)
- file upload via the google drive folder attached to the puzzle/round
- nick completion (@foo?)
x show who's in the room
x add "last updates" notification bar?
- link nicks in log to popover of nick info, including picture?
x chatbot (based on hubot?) [talk to cjb]
- IRC or Jabber gateway
x fix round/puzzle ordering bug in blackboard
x fix smooth scrolling leak
x add rXpY numbering
x appropriately link puzzle/round names appearing in the update log.
x add general 'link' helper which takes a type/id and generates the
proper URL (type='nicks', type='puzzles', type='rounds', etc)
(use all-names to get link text and type from id?)
x add 'all-names' subscription which merges names from puzzles/rounds/groups
x fix chat room title breakage introduced w/ recent pub/sub refactor.
- always subscribe to all-rounds, all-groups?
(pro: slightly faster blackboard loading, con: greater bw, harder debugging)
x add 'foreground uuid' field to presence, and only set foreground=false
if current app's uuid matched foreground uuid. this prevents bouncing
if user has one tab in foreground and one in background
(if foreground=true in update, unilaterally set foreground uuid as well)
x strip unnecessary fields from presence publication to limit updates
(ie, timestamp, foreground uuid, etc)
x make nick modal universal
x make navbar universal.
- suppress group chat iff we're on group chat page
x switch to button bar for edit/protect. clicking on username (always a
button) brings up nick modal and allows editing full name, etc.
x refactor some subscriptions to being done in template create/destroy
ie, nick modal should subscribe to Nicks for completion, etc;
oplog header should subscribe to recent oplogs,
chat header should take care of its own subscription to recent-messages, etc.
x fix chat presence breakage on main page (maybe related to pub/sub refactor)
x combine multiple consecutive chat bubbles from same sender
- combine multiple consecutive system messages
- newline support in chat
- shift-return or paste in the new message box should turn it into a
text box
x when displaying messages, replace \n with <br>
x private messages?
x 'pm' field in messages collection; only people whose nicks match
the pm field get those messages
x /msg support?
- codexbot's help should be a pm
x completion of nicks in the message compose box
- mouseover images should also scroll up if necessary
- DDP unset support (if unset leaves an empty object, remove the object)
- when deleting round/round groups, add the contained rounds/puzzles to a new
'unnamed' group/round?
x move puzzles up/down
x chat archive page
x oplog archive page
--------------------
- Add browser-policy package
x Add autoupdate package
x Add facts package
---
move followup field to object or CSS
x move last read marker to a session variable, then use Session.equals
to insert it at the right spot?
- use model query to ensure timestamp exactly matches a message?
---
. Experiment with mobile app support.
x Upgrade googleapis package to 1.0.
. Write test suite.
x Merge Jeff's twitter linkification patch.
---
- Update google drive to v3 API.
- icon links to chat/spreadsheet from blackboard
- turn off certain panes in paned view?