diff --git a/common/lib/xmodule/xmodule/html_module.py b/common/lib/xmodule/xmodule/html_module.py
index a6ec33e08c..216b63a12e 100644
--- a/common/lib/xmodule/xmodule/html_module.py
+++ b/common/lib/xmodule/xmodule/html_module.py
@@ -17,6 +17,9 @@ log = logging.getLogger("mitx.courseware")
class HtmlModule(XModule):
+ js = {'coffee': [resource_string(__name__, 'js/src/html/display.coffee')]}
+ js_module_name = "HTMLModule"
+
def get_html(self):
return self.html
diff --git a/common/lib/xmodule/xmodule/js/src/html/display.coffee b/common/lib/xmodule/xmodule/js/src/html/display.coffee
new file mode 100644
index 0000000000..05e2ddab28
--- /dev/null
+++ b/common/lib/xmodule/xmodule/js/src/html/display.coffee
@@ -0,0 +1,26 @@
+class @HTMLModule
+
+ constructor: (@element) ->
+ @el = $(@element)
+ @setCollapsibles()
+
+ $: (selector) ->
+ $(selector, @el)
+
+ setCollapsibles: =>
+ $('.longform').hide();
+ $('.shortform').append('See full output');
+ $('.collapsible section').hide();
+ $('.full').click @toggleFull
+ $('.collapsible header a').click @toggleHint
+
+ toggleFull: (event) =>
+ $(event.target).parent().siblings().slideToggle()
+ $(event.target).parent().parent().toggleClass('open')
+ text = $(event.target).text() == 'See full output' ? 'Hide output' : 'See full output'
+ $(this).text(text)
+
+ toggleHint: (event) =>
+ event.preventDefault()
+ $(event.target).parent().siblings().slideToggle()
+ $(event.target).parent().parent().toggleClass('open')
\ No newline at end of file