| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /**
- * @param {SlackChan} chan
- * @return {Element}
- **/
- function createChanListItem(chan) {
- var dom = document.createElement("li");
- dom.id = chan.id;
- dom.className = R.klass.chatList.entry;
- dom.textContent = chan.name;
- return dom;
- }
- function onContextUpdated() {
- var chanListFram = document.createDocumentFragment();
- for (var chanId in SLACK.context.self.channels) {
- var chan = SLACK.context.channels[chanId]
- ,chanListItem = createChanListItem(chan);
- if (chanListItem) {
- chanListFram.appendChild(chanListItem);
- }
- }
- document.getElementById(R.id.chanList).textContent = "";
- document.getElementById(R.id.chanList).appendChild(chanListFram);
- }
- function onRoomSelected() {
- var name = SELECTED_ROOM.name;
- if (!name) {
- var members = [];
- for (var i in SELECTED_ROOM.members) {
- members.push(SELECTED_ROOM.members[i].name);
- }
- name = members.join(", ");
- }
- document.getElementById(R.id.currentRoom.title).textContent = name;
- }
- function onChanClick(e) {
- while (e.target !== e.currentTarget && e.target) {
- if (e.target.classList.contains(R.klass.chatList.entry)) {
- var room = (SLACK.context.channels[e.target.id] ||
- SLACK.context.ims[e.target.id] ||
- SLACK.context.groups[e.target.id]);
- if (room && room !== SELECTED_ROOM) {
- selectRoom(room);
- }
- return;
- }
- e.target = e.target.parentElement;
- }
- }
- document.addEventListener('DOMContentLoaded', function() {
- document.getElementById(R.id.chatList).addEventListener("click", onChanClick);
- startPolling();
- });
|