mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-14 05:11:19 -04:00
53 lines
1.1 KiB
CoffeeScript
53 lines
1.1 KiB
CoffeeScript
###
|
|
All of Snowflake's DOM manipulation and inputs.
|
|
###
|
|
|
|
class UI
|
|
setStatus: (msg) ->
|
|
|
|
setActive: (connected) ->
|
|
|
|
log: (msg) ->
|
|
|
|
|
|
class BadgeUI extends UI
|
|
$badge: null
|
|
|
|
constructor: ->
|
|
@$badge = document.getElementById('badge')
|
|
|
|
setActive: (connected) =>
|
|
@$badge.className = if connected then 'active' else ''
|
|
|
|
|
|
class DebugUI extends UI
|
|
# DOM elements references.
|
|
$msglog: null
|
|
$status: null
|
|
|
|
constructor: ->
|
|
# Setup other DOM handlers if it's debug mode.
|
|
@$status = document.getElementById('status')
|
|
@$msglog = document.getElementById('msglog')
|
|
@$msglog.value = ''
|
|
|
|
# Status bar
|
|
setStatus: (msg) =>
|
|
@$status.innerHTML = 'Status: ' + msg
|
|
|
|
setActive: (connected) =>
|
|
@$msglog.className = if connected then 'active' else ''
|
|
|
|
log: (msg) =>
|
|
# Scroll to latest
|
|
@$msglog.value += msg + '\n'
|
|
@$msglog.scrollTop = @$msglog.scrollHeight
|
|
|
|
|
|
class WebExtUI extends UI
|
|
setActive: (connected) ->
|
|
chrome.browserAction.setIcon {
|
|
"path": {
|
|
"32": "icons/status-" + (if connected then "on" else "off") + ".png"
|
|
}
|
|
}
|