diff options
| author | mrmr1993 | 2016-02-03 15:23:02 +0000 | 
|---|---|---|
| committer | mrmr1993 | 2016-02-03 15:23:02 +0000 | 
| commit | acb0c7010d345a3e4918c4aa33eb1d2bf72cf8da (patch) | |
| tree | 5759919f94f3cbf4db943bc89798cfd4695cd9e7 /pages/help_dialog.coffee | |
| parent | 674990c07422a61a702f14bfdaa8b3d2f3117f1b (diff) | |
| download | vimium-acb0c7010d345a3e4918c4aa33eb1d2bf72cf8da.tar.bz2 | |
Move help dialog into an iframe
Diffstat (limited to 'pages/help_dialog.coffee')
| -rw-r--r-- | pages/help_dialog.coffee | 56 | 
1 files changed, 56 insertions, 0 deletions
diff --git a/pages/help_dialog.coffee b/pages/help_dialog.coffee new file mode 100644 index 00000000..5bff5e33 --- /dev/null +++ b/pages/help_dialog.coffee @@ -0,0 +1,56 @@ +HelpDialog = +  dialogElement: null + +  # This setting is pulled out of local storage. It's false by default. +  getShowAdvancedCommands: -> Settings.get("helpDialog_showAdvancedCommands") + +  init: -> +    return if @dialogElement? +    @dialogElement = document.getElementById "vimiumHelpDialog" + +    @dialogElement.getElementsByClassName("closeButton")[0].addEventListener("click", (clickEvent) => +        clickEvent.preventDefault() +        @hide() +      false) +    @dialogElement.getElementsByClassName("optionsPage")[0].addEventListener("click", (clickEvent) -> +        clickEvent.preventDefault() +        chrome.runtime.sendMessage({handler: "openOptionsPageInNewTab"}) +      false) +    @dialogElement.getElementsByClassName("toggleAdvancedCommands")[0].addEventListener("click", +      HelpDialog.toggleAdvancedCommands, false) + +  show: (html) -> +    for placeholder, htmlString of html +      @dialogElement.querySelector("#help-dialog-#{placeholder}").innerHTML = htmlString + +    @showAdvancedCommands(@getShowAdvancedCommands()) + +    # Simulating a click on the help dialog makes it the active element for scrolling. +    DomUtils.simulateClick document.getElementById "vimiumHelpDialog" + +  hide: -> UIComponentServer.postMessage "hide" + +  # +  # Advanced commands are hidden by default so they don't overwhelm new and casual users. +  # +  toggleAdvancedCommands: (event) -> +    event.preventDefault() +    showAdvanced = HelpDialog.getShowAdvancedCommands() +    HelpDialog.showAdvancedCommands(!showAdvanced) +    Settings.set("helpDialog_showAdvancedCommands", !showAdvanced) + +  showAdvancedCommands: (visible) -> +    HelpDialog.dialogElement.getElementsByClassName("toggleAdvancedCommands")[0].innerHTML = +      if visible then "Hide advanced commands" else "Show advanced commands" + +    # Add/remove the showAdvanced class to show/hide advanced commands. +    addOrRemove = if visible then "add" else "remove" +    HelpDialog.dialogElement.classList[addOrRemove] "showAdvanced" + +UIComponentServer.registerHandler (event) -> +  return if event.data == "hide" +  HelpDialog.init() +  HelpDialog.show event.data + +root = exports ? window +root.HelpDialog = HelpDialog  | 
