]> git.gir.st - VimFx.git/blob - extension/packages/help.coffee
Closes #17. Alt-Shift V is now used to enable/disable VimFx, plus some other minor...
[VimFx.git] / extension / packages / help.coffee
1 utils = require 'utils'
2
3 CONTAINER_ID = 'VimFxHelpDialogContainer'
4
5 showHelp = (document, commandsHelp) ->
6 if body = document.body
7 if div = document.getElementById CONTAINER_ID
8 div.parentNode.removeChild div
9 div = document.createElement 'div'
10 div.id = CONTAINER_ID
11 div.className = 'VimFxReset'
12
13 div.innerHTML = helpDialogHtml(commandsHelp)
14
15 body.appendChild div
16
17 if button = document.getElementById('VimFxClose')
18 clickHandler = (event) ->
19 event.stopPropagation()
20 event.preventDefault()
21 hideHelp(document)
22 button.addEventListener 'click', clickHandler, false
23
24 hideHelp = (document) ->
25 if div = document.getElementById CONTAINER_ID
26 div.parentNode.removeChild div
27
28 td = (text, klass='') ->
29 """<td class="VimFxReset #{ klass }">#{ text }</td>"""
30
31 tr = (key, text) ->
32 key = """#{ key } <span class="VimFxReset VimFxDot">&#8729;"""
33 """<tr class="VimFxReset">#{ td(key, 'VimFxSequence') }#{ td(text) }</tr>"""
34
35 table = (commands) ->
36 """
37 <table class="VimFxReset">
38 #{ (tr(cmd, text) for cmd, text of commands).join('') }
39 </table>
40 """
41
42 section = (title, commands) ->
43 """
44 <div class="VimFxReset VimFxSectionTitle">#{ title }</div>
45 #{ table(commands) }
46 """
47
48 helpDialogHtml = (help) ->
49
50
51 html = null
52 if html == null
53 html = """
54
55 <div id="VimFxHelpDialog" class="VimFxReset">
56 <div class="VimFxReset VimFxHeader">
57 <div class="VimFxReset VimFxTitle">
58 <span class="VimFxReset VimFxTitleVim">Vim</span><span class="VimFxReset VimFxTitleFx">Fx</span>
59 <span class="VimFxReset">Help</span>
60 </div>
61 <a class="VimFxReset VimFxClose" id="VimFxClose" href="#">&#10006;</a>
62 <div class="VimFxReset VimFxClearFix"></div>
63 </div>
64
65 <div class="VimFxReset VimFxBody">
66 <div class="VimFxReset VimFxColumn">
67 #{ section('Dealing with URLs', help['urls']) }
68 #{ section('Navigating the page', help['nav']) }
69 </div>
70 <div class="VimFxReset VimFxColumn">
71 #{ section('Working with Tabs', help['tabs']) }
72 #{ section('Browsing', help['browse']) }
73 #{ section('Misc', help['misc']) }
74 </div>
75 <div class="VimFxReset VimFxClearFix"></div>
76 </div>
77
78 <div class="VimFxReset VimFxFooter">
79 <div class="VimFxReset VimFxSocial">
80 <p class="VimFxReset">
81 Found a bug?
82 <a class="VimFxReset" target="_blank" href="https://github.com/akhodakivskiy/VimFx/issues">
83 Report it Here!
84 </a>
85 </p>
86 <p class="VimFxReset">
87 Enjoying VimFx?
88 <a class="VimFxReset" target="_blank" href="https://github.com/akhodakivskiy/VimFx">
89 Leave us Feedback!
90 </a>
91 </p>
92 </div>
93 <span class="VimFxReset VimFxVersion">Version #{ utils.getVersion() }</span>
94 </div>
95 </div>
96
97 """
98 return html
99
100 exports.showHelp = showHelp
101 exports.hideHelp = hideHelp
Imprint / Impressum