luca 0.9.89 → 0.9.91

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. data/CHANGELOG +11 -1
  2. data/Gemfile +5 -2
  3. data/Gemfile.lock +84 -56
  4. data/Rakefile +10 -2
  5. data/app/assets/javascripts/luca/components/application.coffee +82 -89
  6. data/app/assets/javascripts/luca/components/collection_view.coffee +9 -5
  7. data/app/assets/javascripts/luca/components/controller.coffee +72 -11
  8. data/app/assets/javascripts/luca/components/fields/base.coffee +61 -8
  9. data/app/assets/javascripts/luca/components/fields/button_field.coffee +53 -7
  10. data/app/assets/javascripts/luca/components/fields/checkbox_array.coffee +12 -7
  11. data/app/assets/javascripts/luca/components/fields/text_field.coffee +1 -1
  12. data/app/assets/javascripts/luca/components/form_view.coffee +2 -2
  13. data/app/assets/javascripts/luca/components/grid_layout_view.coffee +0 -1
  14. data/app/assets/javascripts/luca/components/page.coffee +1 -0
  15. data/app/assets/javascripts/luca/components/table_view.coffee +2 -2
  16. data/app/assets/javascripts/luca/concerns/dom_helpers.coffee +2 -2
  17. data/app/assets/javascripts/luca/containers/card_view.coffee +84 -54
  18. data/app/assets/javascripts/luca/containers/container.coffee +126 -46
  19. data/app/assets/javascripts/luca/containers/modal_view.coffee +9 -9
  20. data/app/assets/javascripts/luca/containers/page_controller.coffee +25 -0
  21. data/app/assets/javascripts/luca/containers/panel_toolbar.coffee +1 -1
  22. data/app/assets/javascripts/luca/containers/viewport.coffee +2 -5
  23. data/app/assets/javascripts/luca/core/collection.coffee +18 -4
  24. data/app/assets/javascripts/luca/core/model.coffee +1 -1
  25. data/app/assets/javascripts/luca/core/panel.coffee +1 -1
  26. data/app/assets/javascripts/luca/core/view.coffee +26 -7
  27. data/app/assets/javascripts/luca/development/code_sync_manager.coffee +51 -4
  28. data/app/assets/javascripts/luca/development/console.coffee +1 -1
  29. data/app/assets/javascripts/luca/framework.coffee +1 -1
  30. data/app/assets/javascripts/luca/index.coffee +1 -0
  31. data/app/assets/javascripts/luca/util/luca.coffee +2 -1
  32. data/app/assets/stylesheets/luca/components/viewport.scss +0 -4
  33. data/bin/luca +14 -0
  34. data/docs/framework.json +1 -1
  35. data/docs/luca-framework-documentation.js +1 -0
  36. data/lib/luca/cli/generate.rb +37 -0
  37. data/lib/luca/cli/server.rb +20 -0
  38. data/lib/luca/cli/sync.rb +40 -0
  39. data/lib/luca/cli/watch.rb +16 -0
  40. data/lib/luca/cli.rb +68 -0
  41. data/lib/luca/collection/endpoint.rb +1 -0
  42. data/lib/luca/component_definition.rb +23 -5
  43. data/lib/luca/luca_application.rb +18 -7
  44. data/lib/luca/rails/version.rb +1 -1
  45. data/lib/luca/server.rb +7 -0
  46. data/lib/luca/stylesheet.rb +2 -3
  47. data/lib/luca/version.rb +3 -0
  48. data/lib/luca/watcher.rb +72 -0
  49. data/lib/luca.rb +8 -1
  50. data/luca.gemspec +14 -7
  51. data/site/.bundle/config +2 -0
  52. data/site/.gitignore +5 -0
  53. data/site/.rvmrc +1 -0
  54. data/site/CHANGELOG.md +41 -0
  55. data/site/DOCS.md +41 -0
  56. data/site/Gemfile +8 -0
  57. data/site/Gemfile.lock +134 -0
  58. data/site/LICENSE.md +19 -0
  59. data/site/config.rb +84 -0
  60. data/site/helpers/site_helpers.rb +20 -0
  61. data/site/html5bp-docs/README.md +38 -0
  62. data/site/html5bp-docs/contribute.md +104 -0
  63. data/site/html5bp-docs/crossdomain.md +21 -0
  64. data/site/html5bp-docs/css.md +135 -0
  65. data/site/html5bp-docs/extend.md +507 -0
  66. data/site/html5bp-docs/faq.md +77 -0
  67. data/site/html5bp-docs/htaccess.md +323 -0
  68. data/site/html5bp-docs/html.md +170 -0
  69. data/site/html5bp-docs/js.md +31 -0
  70. data/site/html5bp-docs/misc.md +25 -0
  71. data/site/html5bp-docs/usage.md +109 -0
  72. data/site/readme.md +47 -0
  73. data/site/source/.htaccess +540 -0
  74. data/site/source/404.html +157 -0
  75. data/site/source/app/assets/javascripts/dependencies.js.coffee +6 -0
  76. data/site/source/app/assets/javascripts/docs/application.coffee +64 -0
  77. data/site/source/app/assets/javascripts/docs/collections/docs_documentation.coffee +17 -0
  78. data/site/source/app/assets/javascripts/docs/collections/github_repositories.coffee +7 -0
  79. data/site/source/app/assets/javascripts/docs/collections/index.coffee +1 -0
  80. data/site/source/app/assets/javascripts/docs/collections/luca_documentation.coffee +17 -0
  81. data/site/source/app/assets/javascripts/docs/collections/public_gists.coffee +4 -0
  82. data/site/source/app/assets/javascripts/docs/config.coffee +5 -0
  83. data/site/source/app/assets/javascripts/docs/index.coffee +12 -0
  84. data/site/source/app/assets/javascripts/docs/lib/router.coffee +3 -0
  85. data/site/source/app/assets/javascripts/docs/lib/util.coffee +0 -0
  86. data/site/source/app/assets/javascripts/docs/models/component.coffee +99 -0
  87. data/site/source/app/assets/javascripts/docs/models/github_repository.coffee +3 -0
  88. data/site/source/app/assets/javascripts/docs/models/index.coffee +1 -0
  89. data/site/source/app/assets/javascripts/docs/templates/component_documentation.jst.ejs +55 -0
  90. data/site/source/app/assets/javascripts/docs/templates/examples_browser/overview.jst.ejs +4 -0
  91. data/site/source/app/assets/javascripts/docs/templates/examples_browser/selector.jst.ejs +11 -0
  92. data/site/source/app/assets/javascripts/docs/templates/github_repository.jst.ejs +4 -0
  93. data/site/source/app/assets/javascripts/docs/templates/layouts/main.jst.ejs +4 -0
  94. data/site/source/app/assets/javascripts/docs/templates/left_navigation.jst.ejs +5 -0
  95. data/site/source/app/assets/javascripts/docs/templates/pages/getting_started.jst.ejs +78 -0
  96. data/site/source/app/assets/javascripts/docs/templates/pages/home.jst.ejs +57 -0
  97. data/site/source/app/assets/javascripts/docs/views/components/code_editor/index.coffee +0 -0
  98. data/site/source/app/assets/javascripts/docs/views/components/code_editor.coffee +45 -0
  99. data/site/source/app/assets/javascripts/docs/views/components/component_documentation.coffee +72 -0
  100. data/site/source/app/assets/javascripts/docs/views/index.coffee +3 -0
  101. data/site/source/app/assets/javascripts/docs/views/pages/browse_source/details.coffee +37 -0
  102. data/site/source/app/assets/javascripts/docs/views/pages/browse_source/list.coffee +31 -0
  103. data/site/source/app/assets/javascripts/docs/views/pages/browse_source.coffee +46 -0
  104. data/site/source/app/assets/javascripts/docs/views/pages/component_editor.coffee +10 -0
  105. data/site/source/app/assets/javascripts/docs/views/pages/examples_browser/docs.coffee +12 -0
  106. data/site/source/app/assets/javascripts/docs/views/pages/examples_browser/source.coffee +13 -0
  107. data/site/source/app/assets/javascripts/docs/views/pages/examples_browser.coffee +102 -0
  108. data/site/source/app/assets/javascripts/docs/views/pages/home.coffee +10 -0
  109. data/site/source/app/assets/javascripts/docs/views/views/api_browser/index.coffee +43 -0
  110. data/site/source/app/assets/javascripts/docs/views/views/collection_view_examples/grid_layout_view_example.coffee +14 -0
  111. data/site/source/app/assets/javascripts/docs/views/views/collection_view_examples/table_view_example.coffee +39 -0
  112. data/site/source/app/assets/javascripts/docs/views/views/form_view_examples/basic_example.coffee +38 -0
  113. data/site/source/app/assets/javascripts/docs/views/views/form_view_examples/complex_layout.coffee +110 -0
  114. data/site/source/app/assets/javascripts/docs/views/views/top_navigation.coffee +6 -0
  115. data/site/source/app/assets/javascripts/docs-docs.js +1 -0
  116. data/site/source/app/assets/javascripts/luca-docs.js +1 -0
  117. data/site/source/app/assets/javascripts/luca-framework-documentation.js +1 -0
  118. data/site/source/app/assets/javascripts/site.js.coffee +4 -0
  119. data/site/source/app/assets/javascripts/vendor/codemirror.js +4786 -0
  120. data/site/source/app/assets/javascripts/vendor/coffeescript.js +346 -0
  121. data/site/source/app/assets/javascripts/vendor/css.js +465 -0
  122. data/site/source/app/assets/javascripts/vendor/htmlmixed.js +84 -0
  123. data/site/source/app/assets/javascripts/vendor/javascript.js +422 -0
  124. data/site/source/app/assets/javascripts/vendor/js-beautify.js +1353 -0
  125. data/site/source/app/assets/javascripts/vendor/modernizr-2.6.1.min.js +4 -0
  126. data/site/source/app/assets/javascripts/vendor/vim.js +2511 -0
  127. data/site/source/app/assets/stylesheets/docs/api-browser.css.scss +5 -0
  128. data/site/source/app/assets/stylesheets/docs/application.css.scss +35 -0
  129. data/site/source/app/assets/stylesheets/docs/browse-source.css.scss +5 -0
  130. data/site/source/app/assets/stylesheets/docs/scrollable-table.css.scss +5 -0
  131. data/site/source/app/assets/stylesheets/site.css.scss +2 -0
  132. data/site/source/app/assets/stylesheets/vendor/codemirror.css +240 -0
  133. data/site/source/app/assets/stylesheets/vendor/prettify-tomorrow-night-bright.css +160 -0
  134. data/site/source/app/assets/stylesheets/vendor/twilight.css +26 -0
  135. data/site/source/crossdomain.xml +15 -0
  136. data/site/source/documentation.html.haml +1 -0
  137. data/site/source/favicon_base.png +0 -0
  138. data/site/source/humans.txt +15 -0
  139. data/site/source/images/background.png +0 -0
  140. data/site/source/images/middleman.png +0 -0
  141. data/site/source/index.html.haml +1 -0
  142. data/site/source/layouts/layout.haml +55 -0
  143. data/site/source/readme.md +63 -0
  144. data/site/source/robots.txt +3 -0
  145. data/spec/javascripts/components/collection_view_spec.coffee +1 -1
  146. data/spec/javascripts/containers/card_view_spec.coffee +58 -5
  147. data/spec/javascripts/core/collection_spec.coffee +1 -1
  148. data/spec/javascripts/core/view_spec.coffee +2 -2
  149. data/vendor/assets/javascripts/backbone-min.js +37 -33
  150. data/vendor/assets/javascripts/backbone-query.min.js +1 -1
  151. data/vendor/assets/javascripts/jquery.js +5 -4
  152. data/vendor/assets/javascripts/luca-dependencies.min.js +8 -6
  153. data/vendor/assets/javascripts/luca-development.min.js +1 -1
  154. data/vendor/assets/javascripts/luca.full.min.js +12 -10
  155. data/vendor/assets/javascripts/luca.min.js +5 -5
  156. data/vendor/assets/javascripts/underscore-min.js +1 -5
  157. data/vendor/assets/javascripts/underscore-string.min.js +1 -1
  158. data/vendor/assets/stylesheets/luca-components.css +0 -2
  159. data/vendor/assets/stylesheets/luca-development.css +1 -1
  160. metadata +215 -39
  161. data/app/assets/javascripts/luca/components/page_controller.coffee +0 -3
  162. data/app/assets/javascripts/luca/core/collection_view.coffee +0 -150
  163. data/site/assets/bootstrap.min.js +0 -7
  164. data/site/assets/dependencies.js +0 -94
  165. data/site/assets/glyphicons-halflings-white.png +0 -0
  166. data/site/assets/glyphicons-halflings.png +0 -0
  167. data/site/assets/luca-ui-bootstrap.css +0 -1331
  168. data/site/assets/luca-ui-bootstrap.js +0 -9
  169. data/site/assets/luca-ui-development-tools.css +0 -234
  170. data/site/assets/luca-ui-development-tools.js +0 -18561
  171. data/site/assets/luca-ui-development-tools.min.js +0 -15
  172. data/site/assets/luca-ui-full.min.js +0 -8
  173. data/site/assets/luca-ui.min.js +0 -4
  174. data/site/assets/sandbox.css +0 -62
  175. data/site/assets/sandbox.js +0 -469
  176. data/site/docs/application.html +0 -41
  177. data/site/docs/caching.html +0 -43
  178. data/site/docs/collection.html +0 -75
  179. data/site/docs/collection_manager.html +0 -71
  180. data/site/docs/containers.html +0 -118
  181. data/site/docs/events.html +0 -153
  182. data/site/docs/view.html +0 -128
  183. data/site/img/glyphicons-halflings-white.png +0 -0
  184. data/site/img/glyphicons-halflings.png +0 -0
  185. data/site/index.html +0 -20
  186. data/site/source-map.js +0 -1
@@ -0,0 +1 @@
1
+ window.Luca ||= {}; window.Luca.documentation = [{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/application.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/application.coffee","type":"component_definition","class_name":"Luca.Application","header_documentation":"<p>The <code>Luca.Application</code> is the main entry point into your Application.\nIt acts as a global state machine, page controller, and router, in addition\nto providing access to other singletons such as the CollectionManager, and SocketManager.</p>\n\n<p>The structure of a common <code>Luca.Application</code> is that it contains one or many <code>Pages</code> which\nthemselves are made up of the components of your application. One <code>Page</code> is visible at a time\nand which page is displayed is managed by an instance of the <code>Luca.components.Controller</code> class.</p>\n\n<h3>Example Configuration</h3>\n\n<pre><code>application = Luca.register &quot;App.Application&quot;\napplication.extends &quot;Luca.Application&quot;\napplication.defines\n name: &quot;MyApplication&quot;\n routes: \n &quot;&quot; : &quot;home&quot;\n &quot;standard/backbone/style/:route&quot; : &quot;name_of_page#name_of_method&quot;\n components:[\n name: &quot;home&quot;\n ,\n type: &quot;your_view&quot;\n name: &quot;name_of_page&quot;\n name_of_method: (routeParam)-&gt;\n @doSomethignToSetupYourPageWithThePassed(routeParam) \n ]\n</code></pre>\n\n<p>App.onReady ()-&gt;\n window.MyApp = new App.Application();\n window.MyApp.boot() </p>\n\n<h4>@routes and pages</h4>\n\n<p>In the above example, our application contains two pages, one with the name &#39;home&#39;\nand one with the name &#39;name<em>of</em>page&#39;. It also specifies a <code>@routes</code> property which\nis identical to the configuration you would see in a standard <code>Backbone.Router</code>.\nWhenever the route matches &#39;standard/backbone/style/route&#39; the <code>App.Application</code> instance\nwill send an instruction to the <code>Luca.components.Controller</code> to <code>activate</code> the page whose name\nis passed in the <code>@routes</code> config.</p>\n\n<p>If that page defines a method called <code>@routeHandler</code> it will be called with the parameters\nfrom the route. In the <code>@routes</code> config you can specify your own route handler method\nby using the rails style <code>page_name#action</code> and it will call the <code>@action</code> method instead\non the view named <code>page_name</code>.\nThe <code>App.Application</code> instance, also accessible by <code>window.MyApp</code>, or through the helper <code>App()</code>\nor <code>Luca.getApplication()</code> maintains the state of which page is active. You can access this\nin your code by calling <code>App().activePage()</code>.</p>\n\n<h4>Controllers</h4>\n\n<p>The <code>Luca.components.Controller</code> is a special type of component which contains \nother views, or <code>Pages</code> which only one will be visible at any given time. It expects\nthat each page will have its own unique <code>@name</code> property. A <code>Luca.components.Controller</code> can\ncontain other controllers, providing you with a way of structuring your application layout\nin an organized, hierarchal fashion. \nBy default, any <code>Luca.Application</code> will have one <code>Luca.components.Controller</code> automatically\ncreated named &#39;main_controller&#39; which is accessible by <code>MyApp.getMainController()</code>. Any\ncomponents you define on the <code>Luca.Application</code> instance will be wrapped by the main controller\nautomatically unless you specify <code>@useController = false</code> in your Application component definition.</p>\n","type_alias":"application","css_class_identifier":"luca-application","defines_methods":{"initialize":{"defined_on_line":170,"documentation":"<p>Don&#39;t create getters on this component\nfor the nested components</p>\n","arguments":[{"argument":"@options","value":"{}"}]},"activeView":{"defined_on_line":240,"documentation":"<p>@activeView() returns a reference to the instance of the view\nwhich is currently monopolizing the viewport. In an application\nwhich uses a controller hierarchy, it will be the last controller\nhas activated one of its pages.</p>\n","arguments":[]},"activeSection":{"defined_on_line":247,"documentation":"<p>Returns the name of the active component on the main controller</p>\n","arguments":[]},"activeSubSection":{"defined_on_line":253,"documentation":"<p>Returns the name of the active component on the nested controllers\non the main controller, if there is one. These get set on the\nstate machine in response to card switch events on the controller component</p>\n","arguments":[]},"activePages":{"defined_on_line":256,"documentation":"","arguments":[]},"boot":{"defined_on_line":267,"documentation":"<p>boot should trigger the ready event, which will call the initial call\nto render() your application, which will have a cascading effect on every\nsubcomponent in the view, recursively rendering everything which is set\nto automatically render (i.e. any non-deferrable components ).</p>\n\n<p>you should use boot to fire up any dependent collections, manager, any\nsort of data processing, whatever your application requires to run outside\nof the views</p>\n","arguments":[]},"collection":{"defined_on_line":274,"documentation":"<p>delegate to the collection manager&#39;s get or create function.\nuse App.collection() to create or access existing collections</p>\n","arguments":[]},"get":{"defined_on_line":277,"documentation":"","arguments":[{"argument":"attribute","value":null}]},"set":{"defined_on_line":280,"documentation":"","arguments":[{"argument":"attribute","value":null},{"argument":"value","value":null},{"argument":"options","value":null}]},"view":{"defined_on_line":283,"documentation":"","arguments":[{"argument":"name","value":null}]},"navigate_to":{"defined_on_line":289,"documentation":"<h3>Navigation Hooks</h3>\n\n<p>delegate to the main controller so that we can switch the active section</p>\n","arguments":[{"argument":"component_name","value":null},{"argument":"callback","value":null}]},"keyHandler":{"defined_on_line":293,"documentation":"","arguments":[{"argument":"e","value":null}]},"setupControllerBindings":{"defined_on_line":318,"documentation":"","arguments":[]},"setupMainController":{"defined_on_line":335,"documentation":"","arguments":[]},"setupCollectionManager":{"defined_on_line":354,"documentation":"","arguments":[]},"setupSocketManager":{"defined_on_line":388,"documentation":"","arguments":[]},"setupRouter":{"defined_on_line":394,"documentation":"","arguments":[]},"setupKeyHandler":{"defined_on_line":424,"documentation":"","arguments":[]},"pageHierarchy":{"defined_on_line":442,"documentation":"<p>Public: For purely informational purposes, describes the structure\nof the Application&#39;s controller views, and any of their nested controllers views.</p>\n","arguments":[]},"registerInstance":{"defined_on_line":461,"documentation":"<p>Private: registers the instance of the Luca.Appliction\nso that it is available via the Luca() helper, or through\na call to Luca.Application.get()</p>\n","arguments":[{"argument":"app","value":null}]},"checkForKeymaster":{"defined_on_line":471,"documentation":"<p>The following special keys can be used for shortcuts:\n<code>backspace</code>, <code>tab</code>, <code>clear</code>, <code>enter</code>, <code>return</code>, <code>esc</code>, <code>escape</code>, <code>space</code>,\n<code>up</code>, <code>down</code>, <code>left</code>, <code>right</code>, <code>home</code>, <code>end</code>, <code>pageup</code>, <code>pagedown</code>, <code>del</code>, <code>delete</code>\nand <code>f1</code> through <code>f19</code>.</p>\n","arguments":[]},"routeTo":{"defined_on_line":486,"documentation":"<p>Private: Recursively navigates down the controller page hierarchy\nto the page you specify by name. You can specify the\nmethod which is to be called at the end of the chain.</p>\n\n<p>This is used internally by the Application as it sets up\nthe @routes property and uses it to configure the Luca.Router\ninstance for your app.</p>\n","arguments":[{"argument":"pages...","value":null}]},"startHistory":{"defined_on_line":530,"documentation":"<p>Public: you can override Luca.Application.startHistory to\nmodify how Backbone.history.start is called. This will get called\nby the Application instance in response to the @autoStartHistory property.</p>\n","arguments":[]}},"defines_properties":{"name":{"defined_on_line":70,"documentation":"","default":""},"autoBoot":{"defined_on_line":81,"documentation":"<p>if autoBoot is set to true, the application will\nattempt to boot on document ready.</p>\n","default":""},"autoStartHistory":{"defined_on_line":87,"documentation":"<p>automatically starts the @router if it exists,\nonce the components for the application have\nbeen created. Pass the event name you want to\nlisten for on this component before you start history</p>\n","default":""},"useCollectionManager":{"defined_on_line":91,"documentation":"<p>we will create a collection manager singleton\nby default unless otherwise specified.</p>\n","default":""},"collectionManagerClass":{"defined_on_line":100,"documentation":"<p>by default we will use the standard collection manager which ships with\nLuca. If you would like to use your own extension of the collection manager\njust pass a reference to the class you would like to use.</p>\n","default":""},"plugin":{"defined_on_line":105,"documentation":"<p>Luca plugin apps are apps which mount onto existing\nluca apps, and will not have the behavior of a main\napp which acts as a singleton</p>\n","default":""},"useController":{"defined_on_line":111,"documentation":"<p>by default, the application will use a controller\ncomponent, which is a card view container which shows\none view at a time. this is useful for having an application\nwith several &#39;pages&#39; so to speak</p>\n","default":""},"mainControllerContainer":{"defined_on_line":117,"documentation":"<p>if you have special rendering requirements for\nthe application&#39;s components, you can assign the\nspecific element you want to render the container\nto inside of the #viewport</p>\n","default":""},"useKeyHandler":{"defined_on_line":125,"documentation":"<p>Key Handler</p>\n\n<p>One responsibility of the application, since it is a viewport which monopolizes the entire screen\nis to relay keypress events from the document, to whatever views are interested in responding to them.</p>\n\n<p>This functionality is disabled by default.</p>\n","default":""},"createRoleBasedGetters":{"defined_on_line":160,"documentation":"<p>create getter methods for the various\nroles in the application&#39;s components on the\napplication itself. false by default.</p>\n","default":""},"useSocketManager":{"defined_on_line":165,"documentation":"<p>create an instance of Luca.SocketManager\nwhich is a Backbone.Events style abstraction that\nsits on top of services like faye, or socket.io</p>\n","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/collection_loader_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/collection_loader_view.coffee","type":"component_definition","class_name":"Luca.components.CollectionLoaderView","header_documentation":"<p>Collection Loader View is a simple modal view\nYou can provide your own template for the collection loader modal\nif you want to. Default implementation uses twitter bootstrap modal and\nprogress bar (<a href=\"http://twitter.github.com/bootstrap/\">http://twitter.github.com/bootstrap/</a>). You template\nshould contain <code>progress</code>, <code>bar</code> and <code>message</code> classes</p>\n","type_alias":"collection_loader_view","css_class_identifier":"luca-collection-loader-view","defines_methods":{"initialize":{"defined_on_line":14,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"modalContainer":{"defined_on_line":22,"documentation":"","arguments":[]},"setupBindings":{"defined_on_line":25,"documentation":"","arguments":[]}},"defines_properties":{"className":{"defined_on_line":10,"documentation":"","default":""},"template":{"defined_on_line":12,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/collection_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/collection_view.coffee","type":"component_definition","class_name":"Luca.CollectionView","header_documentation":"<p>The <code>Luca.CollectionView</code> renders models from a <code>Luca.Collection</code> into multiple\nelements, and provides methods for filtering, paginating, sorting the underlying\ncollection and re-rendering the contents of its <code>@el</code> accordingly.</p>\n\n<h4>Basic Example</h4>\n\n<pre><code>collectionView = Luca.register &quot;App.views.Books&quot;\ncollectionView.extends &quot;Luca.CollectionView&quot;\ncollectionView.defines\n itemProperty: &quot;author&quot;\n collection: new Luca.Collection([\n author: &quot;George Orwell&quot;\n title: &quot;Animal Farm&quot;\n ,\n author: &quot;Noam Chomsky&quot;\n title: &quot;Manufacturing Consent&quot;\n ])\nview = new App.views.Books()\n</code></pre>\n\n<h4>Extending it to make it Filterable and Paginatable</h4>\n\n<pre><code>filterable = Luca.register &quot;App.views.FilterableBooks&quot;\nfilterable.extends &quot;App.views.Books&quot;\nfilterable.defines\n collection: &quot;books&quot; \n paginatable: 12\n filterable:\n query:\n author: &quot;George Orwell&quot;\n\n view = new App.views.FilterableBooks()\n</code></pre>\n\n<h4>Filterable Collections</h4>\n\n<p>The <code>Luca.CollectionView</code> will attempt to perform a local query against its\ncollection which behaves like a <code>Backbone.QueryCollection</code>. It will do this\nby default without making a remote request to the API. </p>\n\n<p>If you do not want this behavior, you can configure the <code>Luca.CollectionView</code> to \nbehave as if the filtering was happen remotely in your REST API.<br>\n filterable:\n options:\n remote: true</p>\n","type_alias":"collection_view","css_class_identifier":"luca-collection-view","defines_methods":{"initialize":{"defined_on_line":96,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"locateItemElement":{"defined_on_line":135,"documentation":"<p>Given the id of a model, find the underlying DOM element which was rendered by this collection.\nAssumes that the data-model-id attribute is set, which it is by default by @attributesForItem.</p>\n","arguments":[{"argument":"id","value":null}]},"refresh":{"defined_on_line":142,"documentation":"<p>Refresh is responsible for applying any filtering, pagination, or sorting options that may be set\nfrom the various Luca.concerns mixed in by <code>Luca.CollectionView</code> and making a query to the underlying\ncollection. It will then take the set of models returned by <code>@getModels</code> and pass them through the\nitem rendering pipeline.</p>\n","arguments":[]},"attributesForItem":{"defined_on_line":164,"documentation":"<p>Determines which attributes should be set on the item DOM element.</p>\n","arguments":[{"argument":"item","value":null},{"argument":"model","value":null}]},"contentForItem":{"defined_on_line":169,"documentation":"<p>Determines the content for the item DOM element. Will use the appropriate options\nspecified by <code>@itemTemplate</code>, <code>@itemRenderer</code>, or <code>@itemProperty</code></p>\n","arguments":[{"argument":"item","value":"{}"}]},"makeItem":{"defined_on_line":182,"documentation":"<p>Uses the various options passed to the <code>CollectionView</code> to assemble a call to <code>Backbone.View::make</code>.</p>\n","arguments":[{"argument":"model","value":null},{"argument":"index","value":null}]},"refreshModel":{"defined_on_line":193,"documentation":"<p>Given a model, attempt to re-render the contents of its item in this view&#39;s DOM contents.</p>\n","arguments":[{"argument":"model","value":null}]},"registerEvent":{"defined_on_line":199,"documentation":"","arguments":[{"argument":"domEvent","value":null},{"argument":"selector","value":null},{"argument":"handler","value":null}]}},"defines_properties":{"collection":{"defined_on_line":64,"documentation":"<p>Specify which collection will be used to supply the models to be rendered.\nAccepts either a string alias for the Collection class, or an instance of\nany class which inherits from Backbone.Collection</p>\n","default":""},"tagName":{"defined_on_line":67,"documentation":"<p>By default the CollectionView will be rendered inside of an OL tag.</p>\n","default":""},"bodyClassName":{"defined_on_line":72,"documentation":"<p>The CollectionView behaves as a Luca.Panel which means it has an area for\ntop and bottom toolbars. The actual content that gets rendered from the\ncollection will be rendered inside an element with the specified class.</p>\n","default":""},"itemTagName":{"defined_on_line":75,"documentation":"<p>Each item from the collection will be rendered inside of an element specified by @itemTagName</p>\n","default":""},"itemClassName":{"defined_on_line":78,"documentation":"<p>Each item element will be assigned a CSS class specified by @itemClassName</p>\n","default":""},"itemTemplate":{"defined_on_line":83,"documentation":"<p>Specify which template should be used to render each item in the collection.\nAccepts a string which will be passed to Luca.template(@itemTemplate). Your template\ncan expect to be passed an object with the <code>model</code> and <code>index</code> properties on it.</p>\n","default":""},"itemRenderer":{"defined_on_line":87,"documentation":"<p>Accepts a reference to a function, which will be called with an object with the <code>model</code> and <code>index</code>\nproperties on it. This function should return a String which will be injected into the item DOM element.</p>\n","default":""},"itemProperty":{"defined_on_line":90,"documentation":"<p>Plucks the specified property from the model and inserts it into the item DOM element.</p>\n","default":""},"observeChanges":{"defined_on_line":93,"documentation":"<p>If @observeChanges is set to true, any change in an underlying model will automatically be re-rendered.</p>\n","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/controller.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/controller.coffee","type":"component_definition","class_name":"Luca.components.Controller","header_documentation":"","type_alias":"controller","css_class_identifier":"luca-controller","defines_methods":{"default":{"defined_on_line":7,"documentation":"","arguments":[{"argument":"callback","value":null}]},"activePage":{"defined_on_line":10,"documentation":"","arguments":[]},"navigate_to":{"defined_on_line":13,"documentation":"","arguments":[{"argument":"section","value":null},{"argument":"callback","value":null}]},"setupComponentKeyEvents":{"defined_on_line":38,"documentation":"","arguments":[]},"controllerPath":{"defined_on_line":43,"documentation":"","arguments":[]},"initialize":{"defined_on_line":64,"documentation":"","arguments":[{"argument":"@options","value":null}]},"each":{"defined_on_line":83,"documentation":"","arguments":[{"argument":"fn","value":null}]},"activeSection":{"defined_on_line":86,"documentation":"","arguments":[]},"pageControllers":{"defined_on_line":89,"documentation":"","arguments":[{"argument":"deep","value":"false"}]},"controllers":{"defined_on_line":92,"documentation":"","arguments":[{"argument":"deep","value":"false"}]},"availablePages":{"defined_on_line":97,"documentation":"","arguments":[]},"availableSections":{"defined_on_line":100,"documentation":"","arguments":[]},"pageNames":{"defined_on_line":109,"documentation":"","arguments":[]},"sectionNames":{"defined_on_line":112,"documentation":"","arguments":[{"argument":"deep","value":"false"}]}},"defines_properties":{"tracker":{"defined_on_line":5,"documentation":"","default":""},"Luca.View":{"defined_on_line":57,"documentation":"","default":""},"additionalClassNames":{"defined_on_line":60,"documentation":"","default":""},"activeAttribute":{"defined_on_line":61,"documentation":"","default":""},"stateful":{"defined_on_line":62,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/base.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/base.coffee","type":"component_definition","class_name":"Luca.core.Field","header_documentation":"","type_alias":"field","css_class_identifier":"luca-core-field","defines_methods":{"disable":{"defined_on_line":19,"documentation":"","arguments":[]},"enable":{"defined_on_line":22,"documentation":"","arguments":[]},"getValue":{"defined_on_line":25,"documentation":"","arguments":[]},"setValue":{"defined_on_line":28,"documentation":"","arguments":[{"argument":"value","value":null}]},"updateState":{"defined_on_line":31,"documentation":"","arguments":[{"argument":"state","value":null}]},"clearErrors":{"defined_on_line":36,"documentation":"","arguments":[]},"displayErrors":{"defined_on_line":39,"documentation":"","arguments":[{"argument":"errors","value":null}]},"getParsedValue":{"defined_on_line":43,"documentation":"","arguments":[{"argument":"raw","value":null}]},"initialize":{"defined_on_line":57,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"beforeRender":{"defined_on_line":81,"documentation":"","arguments":[]},"change_handler":{"defined_on_line":87,"documentation":"","arguments":[{"argument":"e","value":null}]},"getInputElement":{"defined_on_line":90,"documentation":"","arguments":[]}},"defines_properties":{"labelAlign":{"defined_on_line":10,"documentation":"","default":""},"className":{"defined_on_line":11,"documentation":"","default":""},"isField":{"defined_on_line":53,"documentation":"","default":""},"template":{"defined_on_line":54,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/button_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/button_field.coffee","type":"component_definition","class_name":"Luca.fields.ButtonField","header_documentation":"","type_alias":"button_field","css_class_identifier":"luca-fields-button-field","defines_methods":{"click_handler":{"defined_on_line":23,"documentation":"","arguments":[{"argument":"e","value":null}]},"initialize":{"defined_on_line":27,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"afterInitialize":{"defined_on_line":35,"documentation":"","arguments":[]},"setValue":{"defined_on_line":44,"documentation":"","arguments":[]}},"defines_properties":{"readOnly":{"defined_on_line":8,"documentation":"","default":""},"input_value":{"defined_on_line":9,"documentation":"","default":""},"input_type":{"defined_on_line":10,"documentation":"","default":""},"icon_class":{"defined_on_line":11,"documentation":"","default":""},"input_name":{"defined_on_line":12,"documentation":"","default":""},"white":{"defined_on_line":13,"documentation":"","default":""},"isButton":{"defined_on_line":17,"documentation":"","default":""},"template":{"defined_on_line":18,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/checkbox_array.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/checkbox_array.coffee","type":"component_definition","class_name":"Luca.fields.CheckboxArray","header_documentation":"","type_alias":"checkbox_array","css_class_identifier":"luca-fields-checkbox-array","defines_methods":{"initialize":{"defined_on_line":18,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"afterInitialize":{"defined_on_line":31,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"clickHandler":{"defined_on_line":47,"documentation":"","arguments":[{"argument":"event","value":null}]},"controls":{"defined_on_line":56,"documentation":"","arguments":[]},"renderCheckboxes":{"defined_on_line":59,"documentation":"","arguments":[]},"uncheckAll":{"defined_on_line":77,"documentation":"","arguments":[]},"allFields":{"defined_on_line":80,"documentation":"","arguments":[]},"checkSelected":{"defined_on_line":83,"documentation":"","arguments":[{"argument":"items","value":null}]},"getValue":{"defined_on_line":94,"documentation":"","arguments":[]},"setValue":{"defined_on_line":97,"documentation":"","arguments":[{"argument":"items","value":null}]},"getValues":{"defined_on_line":108,"documentation":"","arguments":[]},"setValues":{"defined_on_line":111,"documentation":"","arguments":[{"argument":"items","value":null}]}},"defines_properties":{"version":{"defined_on_line":7,"documentation":"","default":""},"template":{"defined_on_line":9,"documentation":"","default":""},"className":{"defined_on_line":11,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/checkbox_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/checkbox_field.coffee","type":"component_definition","class_name":"Luca.fields.CheckboxField","header_documentation":"","type_alias":"checkbox_field","css_class_identifier":"luca-fields-checkbox-field","defines_methods":{"change_handler":{"defined_on_line":18,"documentation":"","arguments":[{"argument":"e","value":null}]},"initialize":{"defined_on_line":28,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"setValue":{"defined_on_line":39,"documentation":"","arguments":[{"argument":"checked","value":null}]},"getValue":{"defined_on_line":42,"documentation":"","arguments":[]}},"defines_properties":{"send_blanks":{"defined_on_line":9,"documentation":"","default":""},"input_value":{"defined_on_line":10,"documentation":"","default":""},"template":{"defined_on_line":13,"documentation":"","default":""},"version":{"defined_on_line":46,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/file_upload_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/file_upload_field.coffee","type":"component_definition","class_name":"Luca.fields.FileUploadField","header_documentation":"","type_alias":"file_upload_field","css_class_identifier":"luca-fields-file-upload-field","defines_methods":{"afterInitialize":{"defined_on_line":9,"documentation":"","arguments":[]}},"defines_properties":{"version":{"defined_on_line":5,"documentation":"","default":""},"template":{"defined_on_line":7,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/hidden_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/hidden_field.coffee","type":"component_definition","class_name":"Luca.fields.HiddenField","header_documentation":"","type_alias":"hidden_field","css_class_identifier":"luca-fields-hidden-field","defines_methods":{"afterInitialize":{"defined_on_line":7,"documentation":"","arguments":[]}},"defines_properties":{"template":{"defined_on_line":5,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/label_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/label_field.coffee","type":"component_definition","class_name":"Luca.components.LabelField","header_documentation":"","type_alias":"label_field","css_class_identifier":"luca-label-field","defines_methods":{"formatter":{"defined_on_line":5,"documentation":"","arguments":[{"argument":"value","value":null}]},"setValue":{"defined_on_line":9,"documentation":"","arguments":[{"argument":"value","value":null}]}},"defines_properties":{}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/select_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/select_field.coffee","type":"component_definition","class_name":"Luca.fields.SelectField","header_documentation":"","type_alias":"select_field","css_class_identifier":"luca-fields-select-field","defines_methods":{"setValue":{"defined_on_line":47,"documentation":"<p>sets the value of this select field.</p>\n","arguments":[{"argument":"value","value":null}]},"getValue":{"defined_on_line":54,"documentation":"<p>returns the value of the select field. runs\nthe value through the getParsedValue method which\nenforces the valueType type conversion.</p>\n","arguments":[]},"initialize":{"defined_on_line":64,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"afterInitialize":{"defined_on_line":80,"documentation":"","arguments":[]},"parseData":{"defined_on_line":99,"documentation":"<p>if the select field is configured with a data property\nthen parse that data into the proper format. either\nan array of objects with the valueField and displayField\nproperties, or an array of arrays with [valueField, displayField]</p>\n","arguments":[]},"getInputElement":{"defined_on_line":109,"documentation":"","arguments":[]},"afterRender":{"defined_on_line":112,"documentation":"","arguments":[]},"beforeFetch":{"defined_on_line":118,"documentation":"","arguments":[]},"change_handler":{"defined_on_line":121,"documentation":"","arguments":[{"argument":"e","value":null}]},"resetOptions":{"defined_on_line":124,"documentation":"","arguments":[]},"populateOptions":{"defined_on_line":132,"documentation":"","arguments":[]}},"defines_properties":{"allowMultiple":{"defined_on_line":10,"documentation":"<p>Enables multi-select UI element.</p>\n","default":""},"includeBlank":{"defined_on_line":14,"documentation":"<p>Includes a blank option in addition to all of the items\nin the underlying collection. Defaults to <code>true</code></p>\n","default":""},"blankText":{"defined_on_line":22,"documentation":"<p>Determines the text displayed when\nthe blank option is selected</p>\n","default":""},"maxDisplayLength":{"defined_on_line":28,"documentation":"<p>Specifying a value for maxDisplayLength will truncate\nvalues displayed in the select field when they reach\npast a certain point, using the _.str truncate method.\nLeave at 0 if you want to keep this feature disabled.</p>\n","default":""},"retainValue":{"defined_on_line":34,"documentation":"<p>When the underlying collection is reset and we re-render\nthe options elements, should we keep the value that was set\non this field prior to that? Defaults to <code>true</code> unless otherwise\nspecified.</p>\n","default":""},"label":{"defined_on_line":38,"documentation":"<p>Determines which value is rendered in the label element that gets\nrendered along with this control group.</p>\n","default":""},"template":{"defined_on_line":41,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/text_area_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/text_area_field.coffee","type":"component_definition","class_name":"Luca.fields.TextAreaField","header_documentation":"","type_alias":"text_area_field","css_class_identifier":"luca-fields-text-area-field","defines_methods":{"initialize":{"defined_on_line":16,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"setValue":{"defined_on_line":35,"documentation":"","arguments":[{"argument":"value","value":null}]},"getValue":{"defined_on_line":38,"documentation":"","arguments":[]},"field":{"defined_on_line":41,"documentation":"","arguments":[]},"keyup_handler":{"defined_on_line":44,"documentation":"","arguments":[{"argument":"e","value":null}]},"blur_handler":{"defined_on_line":50,"documentation":"","arguments":[{"argument":"e","value":null}]},"focus_handler":{"defined_on_line":53,"documentation":"","arguments":[{"argument":"e","value":null}]},"change_handler":{"defined_on_line":56,"documentation":"","arguments":[{"argument":"e","value":null}]}},"defines_properties":{"autoBindEventHandlers":{"defined_on_line":4,"documentation":"","default":""},"template":{"defined_on_line":10,"documentation":"","default":""},"height":{"defined_on_line":12,"documentation":"","default":""},"width":{"defined_on_line":13,"documentation":"","default":""},"keyEventThrottle":{"defined_on_line":14,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/text_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/text_field.coffee","type":"component_definition","class_name":"Luca.fields.TextField","header_documentation":"","type_alias":"text_field","css_class_identifier":"luca-fields-text-field","defines_methods":{"initialize":{"defined_on_line":18,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"keyup_handler":{"defined_on_line":43,"documentation":"","arguments":[{"argument":"e","value":null}]},"blur_handler":{"defined_on_line":49,"documentation":"","arguments":[{"argument":"e","value":null}]},"focus_handler":{"defined_on_line":52,"documentation":"","arguments":[{"argument":"e","value":null}]},"change_handler":{"defined_on_line":55,"documentation":"","arguments":[{"argument":"e","value":null}]}},"defines_properties":{"template":{"defined_on_line":10,"documentation":"","default":""},"autoBindEventHandlers":{"defined_on_line":12,"documentation":"","default":""},"send_blanks":{"defined_on_line":14,"documentation":"","default":""},"keyEventThrottle":{"defined_on_line":16,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/type_ahead_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/type_ahead_field.coffee","type":"component_definition","class_name":"Luca.fields.TypeAheadField","header_documentation":"","type_alias":"type_ahead_field","css_class_identifier":"luca-fields-type-ahead-field","defines_methods":{"getSource":{"defined_on_line":6,"documentation":"","arguments":[]},"matcher":{"defined_on_line":9,"documentation":"","arguments":[{"argument":"item","value":null}]},"beforeRender":{"defined_on_line":12,"documentation":"","arguments":[]},"afterRender":{"defined_on_line":16,"documentation":"","arguments":[]}},"defines_properties":{}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/form_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/form_view.coffee","type":"component_definition","class_name":"Luca.components.FormView","header_documentation":"<p>The FormView component is a special container which provides functionality\naround the components inside which extend from the Luca.core.Field class.\nThe FormView component integrates well with Luca.Models and can control\nthe attributes on that model, respond to validations, and submit changes\nto an API.</p>\n","type_alias":"form_view","css_class_identifier":"luca-form-view","defines_methods":{"initialize":{"defined_on_line":110,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"onFieldChange":{"defined_on_line":138,"documentation":"","arguments":[{"argument":"field","value":null},{"argument":"e","value":null}]},"getDefaultToolbar":{"defined_on_line":142,"documentation":"","arguments":[]},"applyStyleClasses":{"defined_on_line":146,"documentation":"","arguments":[]},"applyBootstrapStyleClasses":{"defined_on_line":153,"documentation":"","arguments":[]},"resetHandler":{"defined_on_line":161,"documentation":"","arguments":[{"argument":"e","value":null}]},"submitHandler":{"defined_on_line":170,"documentation":"","arguments":[{"argument":"e","value":null}]},"afterComponents":{"defined_on_line":180,"documentation":"","arguments":[]},"eachField":{"defined_on_line":188,"documentation":"","arguments":[{"argument":"iterator","value":null}]},"getField":{"defined_on_line":191,"documentation":"","arguments":[{"argument":"name","value":null}]},"getFields":{"defined_on_line":197,"documentation":"","arguments":[{"argument":"attr","value":null},{"argument":"value","value":null}]},"loadModel":{"defined_on_line":208,"documentation":"","arguments":[{"argument":"model","value":null}]},"reset":{"defined_on_line":230,"documentation":"","arguments":[]},"clear":{"defined_on_line":233,"documentation":"","arguments":[]},"isDirty":{"defined_on_line":242,"documentation":"","arguments":[]},"setValues":{"defined_on_line":247,"documentation":"<p>set the values on the form\nwithout syncing</p>\n","arguments":[{"argument":"source","value":null},{"argument":"options","value":"{}"}]},"getValues":{"defined_on_line":270,"documentation":"<p>Public: returns a hash of values for the form fields in this view.</p>\n\n<p>options - An options Hash to control the behavior of values returned (default: {}):\nreject<em>blank: don&#39;t include values which are blank (default: true)\nskip</em>buttons: don&#39;t include button fields (default: true)\nblanks: an inverse alias for reject_blank (default: false)</p>\n","arguments":[{"argument":"options","value":"{}"}]},"removeErrors":{"defined_on_line":309,"documentation":"","arguments":[]},"displayErrors":{"defined_on_line":316,"documentation":"","arguments":[{"argument":"errors","value":null}]},"displayValidationErrorsMessage":{"defined_on_line":326,"documentation":"","arguments":[]},"submit_success_handler":{"defined_on_line":329,"documentation":"","arguments":[{"argument":"model","value":null},{"argument":"response","value":null},{"argument":"xhr","value":null}]},"submit_fatal_error_handler":{"defined_on_line":338,"documentation":"","arguments":[{"argument":"model","value":null},{"argument":"response","value":null},{"argument":"xhr","value":null}]},"submit":{"defined_on_line":348,"documentation":"","arguments":[{"argument":"save","value":"true"},{"argument":"saveOptions","value":"{}"}]},"hasModel":{"defined_on_line":359,"documentation":"","arguments":[]},"currentModel":{"defined_on_line":362,"documentation":"","arguments":[{"argument":"options","value":"{}"}]},"applyFormValuesToModel":{"defined_on_line":368,"documentation":"","arguments":[{"argument":"options","value":null}]},"setLegend":{"defined_on_line":371,"documentation":"","arguments":[{"argument":"@legend","value":null}]},"flash":{"defined_on_line":374,"documentation":"","arguments":[{"argument":"message","value":null}]},"successMessage":{"defined_on_line":382,"documentation":"","arguments":[{"argument":"message","value":null}]},"errorMessage":{"defined_on_line":389,"documentation":"","arguments":[{"argument":"message","value":null}]},"setupToolbar":{"defined_on_line":394,"documentation":"","arguments":[]}},"defines_properties":{"trackDirtyState":{"defined_on_line":35,"documentation":"<p>track dirty state will bind to change events\non all of the underlying fields, and set a\nflag whenever one of them changes</p>\n","default":""},"trackModelChanges":{"defined_on_line":38,"documentation":"<p>don&#39;t setup two way binding to the model</p>\n","default":""},"labelAlign":{"defined_on_line":42,"documentation":"<p>should the label display above, or to the\nside of the fields</p>\n","default":""},"fieldLayoutClass":{"defined_on_line":46,"documentation":"<p>specifying this class gives you the ability\nto layout the nested fields accordingly.</p>\n","default":""},"toolbar":{"defined_on_line":55,"documentation":"<p>available options are true, false, &quot;top&quot;, &quot;bottom&quot;, or &quot;both&quot;\nthe component configuration for the toolbar can be controlled\nby specifying a name of a property that contains a valid\ncomponent reference ( either hash w/ type reference )</p>\n","default":""},"toolbarConfig":{"defined_on_line":60,"documentation":"<p>the name of the property which contains the configuration\nfor the buttons that will go in this toolbar. Specify\na string so it can be lazily evaluated at initialization.</p>\n","default":""},"defaultToolbar":{"defined_on_line":66,"documentation":"<p>the default toolbar definition that will be created if\nthe form is configured to have a toolbar on it. this value\nwill be resolved at initialization, so pass a string identifying\nan object in memory.</p>\n","default":""},"loadMask":{"defined_on_line":71,"documentation":"<p>if this form will be submitting values to a RESTful API and you\nwant to show a loading indicator or progress bar, configure the\n@loadMask property.</p>\n","default":""},"well":{"defined_on_line":75,"documentation":"<p>Applies the twitter bootstrap well class to this form.\n@$el.addClass(&#39;well&#39;) if @well</p>\n","default":""},"searchForm":{"defined_on_line":79,"documentation":"<p>Applies the twitter bootstrap form-search class to this form.\n@$el.addClass(&#39;form-search&#39;) if @searchForm</p>\n","default":""},"horizontalForm":{"defined_on_line":83,"documentation":"<p>Applies the twitter bootstrap horizontal form class to this form.\n@$el.addClass(&#39;form-horizontal&#39;) if @horizontalForm</p>\n","default":""},"inlineForm":{"defined_on_line":87,"documentation":"<p>Applies the twitter bootstrap inline form class to this form.\n@$el.addClass(&#39;form-inline&#39;) if @inlineForm</p>\n","default":""},"includeBlankValues":{"defined_on_line":91,"documentation":"<p>if we should always include blank values\nregardless of how the field is configured</p>\n","default":""},"tagName":{"defined_on_line":94,"documentation":"","default":""},"bodyClassName":{"defined_on_line":103,"documentation":"","default":""},"successFlashDelay":{"defined_on_line":380,"documentation":"","default":""},"version":{"defined_on_line":420,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/grid_layout_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/grid_layout_view.coffee","type":"component_definition","class_name":"Luca.components.GridLayoutView","header_documentation":"","type_alias":"grid_layout_view","css_class_identifier":"luca-grid-layout-view","defines_methods":{"attributesForItem":{"defined_on_line":19,"documentation":"<p>adds the bootstrap span class to each collection-item,\nwhere span class is equal to the 12 column grid / @itemsPerRow.\nfor example, each item would receive a span4 class when @itemsPerRow = 3</p>\n","arguments":[]},"renderModels":{"defined_on_line":29,"documentation":"<p>wraps every N number of rows, where N = @itemsPerRow\nin a row-fluid wrapper, and appends it to the view</p>\n","arguments":[{"argument":"models","value":null}]}},"defines_properties":{"itemsPerRow":{"defined_on_line":8,"documentation":"<p>how many items do you wish to render per row?\nassuming a 12 column grid, each item will receive\nan equal amount of grid span/columns.</p>\n","default":""},"className":{"defined_on_line":11,"documentation":"","default":""},"tagName":{"defined_on_line":12,"documentation":"","default":""},"itemTagName":{"defined_on_line":13,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/load_mask.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/load_mask.coffee","type":"component_definition","class_name":"Luca.components.LoadMask","header_documentation":"<p>#_.def(&quot;Luca.components.LoadMask&quot;).extends(&quot;Luca.View&quot;).with</p>\n","type_alias":"load_mask","css_class_identifier":"luca-load-mask","defines_methods":{},"defines_properties":{"className":{"defined_on_line":7,"documentation":"","default":""},"bodyTemplate":{"defined_on_line":8,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/multi_collection_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/multi_collection_view.coffee","type":"component_definition","class_name":"Luca.components.MultiCollectionView","header_documentation":"","type_alias":"multi_collection_view","css_class_identifier":"luca-multi-collection-view","defines_methods":{"initialize":{"defined_on_line":42,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"relayAfterRefresh":{"defined_on_line":54,"documentation":"","arguments":[{"argument":"models","value":null},{"argument":"query","value":null},{"argument":"options","value":null}]},"refresh":{"defined_on_line":57,"documentation":"","arguments":[]},"propagateCollectionComponents":{"defined_on_line":61,"documentation":"","arguments":[]},"validateComponent":{"defined_on_line":81,"documentation":"","arguments":[{"argument":"component","value":null}]}},"defines_properties":{"version":{"defined_on_line":92,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/nav_bar.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/nav_bar.coffee","type":"component_definition","class_name":"Luca.components.NavBar","header_documentation":"<p>A Twitter Bootstrap compatible navigation bar. The Luca.Application\nand Luca.containers.Viewport class both have configuration options for\ncreating navbar components in the header and footer of the viewport.</p>\n\n<h4>Example of an Application with a Navbar</h4>\n\n<h5>Component Definition</h5>\n\n<pre><code> # Navigation Component\n navBar = Luca.register &quot;App.views.TopNavigation&quot;\n navBar.extends &quot;Luca.components.NavBar&quot;\n navBar.defines\n brand: &quot;My App&quot;\n # for white on black\n inverse: true\n</code></pre>\n\n<p>We are able to reference the component we just defined in the\nconfiguration of the Application, simply by using it&#39;s \ntype alias <code>top_navigation</code>\n # Application Component\n app = Luca.register &quot;App.Application&quot;\n app.extends &quot;Luca.Application&quot;\n app.defines\n topNav: &quot;top_navigation&quot;</p>\n","type_alias":"nav_bar","css_class_identifier":"luca-nav-bar","defines_methods":{"beforeRender":{"defined_on_line":54,"documentation":"","arguments":[]},"render":{"defined_on_line":70,"documentation":"","arguments":[]},"navContainer":{"defined_on_line":73,"documentation":"","arguments":[]},"content":{"defined_on_line":76,"documentation":"","arguments":[]}},"defines_properties":{"fixed":{"defined_on_line":31,"documentation":"<p>Specify whether the navbar is supposed to be fixed\nthe way Twitter bootstrap navbar can be.</p>\n","default":""},"position":{"defined_on_line":34,"documentation":"<p>Valid options are &#39;top&#39;, &#39;bottom&#39;. Only valid when <code>@fixed is true</code></p>\n","default":""},"fluid":{"defined_on_line":38,"documentation":"<p>Specify whether the navbar should use the fluid grid.\nUsually the same as your Viewport setting.</p>\n","default":""},"brand":{"defined_on_line":42,"documentation":"<p>What content do you want to show in the logo area of the\nstandard bootstrap nav</p>\n","default":""},"template":{"defined_on_line":47,"documentation":"<p>Specifies an optional template to use for the navigation menu\ncontent. Whatever you specify will be rendered inside of the\ncollapsible container inside of the standard bootstrap nav.</p>\n","default":""},"className":{"defined_on_line":50,"documentation":"","default":""},"bodyTemplate":{"defined_on_line":51,"documentation":"","default":""},"bodyClassName":{"defined_on_line":52,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/page.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/page.coffee","type":"component_definition","class_name":"Luca.components.Page","header_documentation":"<p>The <code>Page</code> is a type of <code>Container</code> that has\nall of its subcomponents visible at one time, \nand assigned to various <code>@regions</code> that exist\nin the <code>@layout</code> template which provide its \ninternal dom structure.</p>\n\n<h4>Example Template (haml):</h4>\n\n<pre><code> .page.layout.row-fluid{&quot;data-layout&quot;=&gt;&quot;layouts/left_nav_grid&quot;}\n .span3.region{&quot;data-region&quot;=&gt;&quot;left&quot;}\n .span9.region{&quot;data-region&quot;=&gt;&quot;right&quot;}\n</code></pre>\n\n<h3>Example Page Configuration</h3>\n\n<pre><code>page = new Luca.components.Page\n layout: &quot;layouts/left_nav_grid&quot;\n regions:\n left: \n type: &quot;navigation&quot;\n right:\n type: &quot;details&quot;\n</code></pre>\n","type_alias":"page","css_class_identifier":"luca-page","defines_methods":{"initialize":{"defined_on_line":26,"documentation":"<p><code>Page</code>s are typically instantiated by a <code>Luca.components.Controller</code></p>\n","arguments":[{"argument":"@options","value":"{}"}]},"assignComponentsToRegions":{"defined_on_line":33,"documentation":"<p>Takes the configuration specified in @regions\nand creates a components hash out of them.</p>\n","arguments":[]}},"defines_properties":{"layout":{"defined_on_line":53,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/page_controller.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/page_controller.coffee","type":"component_definition","class_name":"Luca.PageController","header_documentation":"","type_alias":"page_controller","css_class_identifier":"luca-page-controller","defines_methods":{},"defines_properties":{}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/pagination_control.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/pagination_control.coffee","type":"component_definition","class_name":"Luca.components.PaginationControl","header_documentation":"","type_alias":"pagination_control","css_class_identifier":"luca-pagination-control","defines_methods":{"onPageCountChange":{"defined_on_line":20,"documentation":"","arguments":[]},"limit":{"defined_on_line":23,"documentation":"","arguments":[]},"page":{"defined_on_line":26,"documentation":"","arguments":[]},"nextPage":{"defined_on_line":29,"documentation":"","arguments":[]},"previousPage":{"defined_on_line":33,"documentation":"","arguments":[]},"selectPage":{"defined_on_line":37,"documentation":"","arguments":[{"argument":"e","value":null}]},"setPage":{"defined_on_line":46,"documentation":"","arguments":[{"argument":"page","value":"1"},{"argument":"options","value":"{}"}]},"setLimit":{"defined_on_line":49,"documentation":"","arguments":[{"argument":"limit","value":"1"},{"argument":"options","value":"{}"}]},"pageButtonContainer":{"defined_on_line":52,"documentation":"","arguments":[]},"previousEnabled":{"defined_on_line":55,"documentation":"","arguments":[]},"nextEnabled":{"defined_on_line":58,"documentation":"","arguments":[]},"previousButton":{"defined_on_line":61,"documentation":"","arguments":[]},"nextButton":{"defined_on_line":64,"documentation":"","arguments":[]},"pageButtons":{"defined_on_line":67,"documentation":"","arguments":[]},"updateWithPageCount":{"defined_on_line":70,"documentation":"","arguments":[{"argument":"@pageCount","value":null},{"argument":"models","value":"[]"}]},"toggleNavigationButtons":{"defined_on_line":85,"documentation":"","arguments":[]},"selectActivePageButton":{"defined_on_line":90,"documentation":"","arguments":[]},"activePageButton":{"defined_on_line":93,"documentation":"","arguments":[]},"totalPages":{"defined_on_line":96,"documentation":"","arguments":[]},"totalItems":{"defined_on_line":99,"documentation":"","arguments":[]},"itemsPerPage":{"defined_on_line":102,"documentation":"","arguments":[{"argument":"value","value":null},{"argument":"options","value":"{}"}]}},"defines_properties":{"template":{"defined_on_line":6,"documentation":"","default":""},"stateful":{"defined_on_line":8,"documentation":"","default":""},"autoBindEventHandlers":{"defined_on_line":13,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/router.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/router.coffee","type":"component_definition","class_name":"Luca.Router","header_documentation":"<p>#_.def(&quot;Luca.Router&quot;).extends(&quot;Backbone.Router&quot;).with</p>\n","type_alias":"router","css_class_identifier":"luca-router","defines_methods":{"initialize":{"defined_on_line":8,"documentation":"","arguments":[{"argument":"@options","value":null}]},"navigate":{"defined_on_line":26,"documentation":"<p>Intercept calls to Backbone.Router.navigate so that we can at least\nbuild a path from the route, even if we don&#39;t trigger the route handler</p>\n","arguments":[{"argument":"route","value":null},{"argument":"triggerRoute","value":"false"}]},"buildPathFrom":{"defined_on_line":34,"documentation":"<p>given a url fragment, construct an argument chain similar to what would be\nemitted from a normal route:#{ name } event that gets triggered\nwhen a route is actually fired. This is used to trap route changes that happen\nthrough calls to @navigate()</p>\n","arguments":[{"argument":"matchedRoute","value":null}]}},"defines_properties":{}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/simple_collection_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/simple_collection_view.coffee","type":"component_definition","class_name":"Luca.components.SimpleCollectionView","header_documentation":"<p>The SimpleCollectionView class is a CollectionView without any of the\nbells and whistles ( filtering, pagination, sorting, etc )</p>\n","type_alias":"simple_collection_view","css_class_identifier":"luca-simple-collection-view","defines_methods":{},"defines_properties":{"filterable":{"defined_on_line":7,"documentation":"","default":""},"paginatable":{"defined_on_line":8,"documentation":"","default":""},"sortable":{"defined_on_line":9,"documentation":"","default":""},"loadMask":{"defined_on_line":10,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/table_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/table_view.coffee","type":"component_definition","class_name":"Luca.components.TableView","header_documentation":"","type_alias":"table_view","css_class_identifier":"luca-table-view","defines_methods":{"lastColumn":{"defined_on_line":21,"documentation":"","arguments":[]},"eachColumn":{"defined_on_line":24,"documentation":"","arguments":[{"argument":"fn","value":null},{"argument":"scope","value":"@"}]},"itemRenderer":{"defined_on_line":29,"documentation":"","arguments":[{"argument":"item","value":null},{"argument":"model","value":null}]},"initialize":{"defined_on_line":32,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"rowRenderer":{"defined_on_line":80,"documentation":"","arguments":[{"argument":"item","value":null},{"argument":"model","value":null},{"argument":"index","value":null}]}},"defines_properties":{"emptyText":{"defined_on_line":7,"documentation":"","default":""},"additionalClassNames":{"defined_on_line":10,"documentation":"","default":""},"tagName":{"defined_on_line":11,"documentation":"","default":""},"bodyTemplate":{"defined_on_line":12,"documentation":"","default":""},"bodyTagName":{"defined_on_line":13,"documentation":"","default":""},"bodyClassName":{"defined_on_line":14,"documentation":"","default":""},"stateful":{"defined_on_line":15,"documentation":"","default":""},"itemTagName":{"defined_on_line":16,"documentation":"","default":""},"observeChanges":{"defined_on_line":17,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/table_view_scrollable.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/table_view_scrollable.coffee","type":"component_definition","class_name":"Luca.components.ScrollableTable","header_documentation":"","type_alias":"scrollable_table","css_class_identifier":"luca-scrollable-table","defines_methods":{"$scrollableWrapperEl":{"defined_on_line":11,"documentation":"","arguments":[]},"setMaxHeight":{"defined_on_line":14,"documentation":"","arguments":[]},"afterRender":{"defined_on_line":18,"documentation":"","arguments":[]}},"defines_properties":{"maxHeight":{"defined_on_line":8,"documentation":"","default":""},"version":{"defined_on_line":23,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/container.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/container.coffee","type":"component_definition","class_name":"Luca.Container","header_documentation":"<p>The Luca.Container is the heart and soul of the Luca framework \nand the component driven design philosophy. The central idea\nis that every component should be designed as an isolated unit\nwhich completely encapsulates its features. It should not know about\nother components outside of it.</p>\n\n<p>It is the responsibility of a <code>Luca.Container</code> to define its \nchild <code>@components</code>, render them, and broker communication between them\nin response to events which occur in the user interface.<br>\nA common use case for this would be a page which has a filter form, and\na grid of search results. The fields in the filter form are used to \nfilter the table. Neither the form or the table know about each other, \nsince both can be used in other contexts. A <code>Luca.Container</code> would be used\nto relay events from the form to the table, and in doing so create a higher\nlevel component which can be extended and re-used. </p>\n\n<h4>Using a container to combine a Filter View and Results Table</h4>\n\n<pre><code> form = Luca.register &quot;App.views.FilterForm&quot;\n form.extends &quot;Luca.components.FormView&quot;\n form.contains\n type: &quot;text&quot;\n label: &quot;Filter by&quot;\n name: &quot;filter_text&quot;\n ,\n type: &quot;button&quot;\n className: &quot;filter&quot;\n value: &quot;Filter&quot; \n form.defines\n toolbar: false \n</code></pre>\n\n<p>Elsewhere, we have a table that lists records in a collection:</p>\n\n<pre><code> table = Luca.register &quot;App.views.ResultsTable&quot;\n table.extends &quot;Luca.components.TableView&quot;\n table.defines \n striped: true\n collection: &quot;components&quot;\n columns:[\n header: &quot;Component Class&quot;\n reader: &quot;class_name&quot;\n ,\n header: &quot;Component Type Alias&quot;\n reader: &quot;type_alias&quot;\n ]\n</code></pre>\n\n<p>We can join these two components together by declaring their relationship\nin a <code>Luca.Container</code>. Remember the components we defined above are just\nprototypes. We can override specific instance configuration and properties \nin our container.</p>\n\n<h4>Container Example</h4>\n\n<pre><code> container = Luca.register &quot;App.views.ComponentFinder&quot;\n container.extends &quot;Luca.Container&quot;\n\n # This is the same as defining a components property on the component.\n # The type alias is derived from the name of the component. It is \n # a short hand way of referencing a component you might reuse a lot.\n container.contains\n type: &quot;filter_form&quot;\n role: &quot;filter&quot;\n ,\n type: &quot;results_table&quot;\n # change the prototype&#39;s default \n striped: false\n role: &quot;results&quot;\n filterable: true\n # A Container will generally define some component event bindings\n # and handler methods to handle the communication between its sub\n # components. By default a container is able to access events\n # from all of its descendants in the hierarchy. \n container.defines\n # These will be applied to each of our components.\n defaults:\n attributes:\n &quot;data-attribute&quot;: &quot;whatever&quot;\n componentEvents:\n # Any time any of our child components emit\n # the on:change event, pass it to the filterTable method\n &quot;* on:change&quot; : &quot;filterTable&quot;\n # Communicates between the filter and the table&#39;s\n # underlying collection. NOtice the use of the @role\n # property. It automatically creates getter helpers for us.\n filterTable: ()-&gt;\n filter = @getFilter()\n results = @getResults()\n # filter.getValues() is a hash of each field and its value\n results.applyFilter( filter.getValues() )\n</code></pre>\n\n<h3>DOM Layout Configuration</h3>\n\n<p>Another responsibility of the container is to structurally layout its\nchild components in the DOM. There are a number of different \noptions available depending on how you need to do this. By default,\na <code>Luca.Container</code> will simply append the @$el of all of its views\nto its own.\nThe <code>Luca.components.Controller</code> is a container which hides every page\nbut the active page. Similarly, there is the <code>Luca.containers.TabView</code>\nwhich does the same thing, but renders a tab selector menu for you. You\ncan create any type of interface you want using containers. \nTo make this easy for you, you can do a few different things:</p>\n\n<h4>Use the Twitter Bootstrap Fluid Grid</h4>\n\n<pre><code> container = Luca.register &quot;App.views.ColumnLayout&quot; \n container.extends &quot;App.views.ComponentFinder&quot;\n container.contains\n span: 4\n type: &quot;filter_form&quot;\n role: &quot;filter&quot;\n ,\n span: 8\n type: &quot;results_table&quot;\n role: &quot;results&quot;\n container.defines\n rowFluid: true\n</code></pre>\n\n<h4>Using a layout template with CSS Selectors</h4>\n\n<pre><code> ... \n container.contains\n role: &quot;filter&quot;\n container: &quot;#filter-wrapper-dom-selector&quot;\n ,\n role: &quot;results&quot;\n container: &quot;#results-wrapper-dom-selector&quot;\n ...\n container.defines\n # assumes the template will provide the CSS selectors used above \n bodyTemplate: &quot;layouts/custom_template&quot;\n</code></pre>\n","type_alias":"container","css_class_identifier":"luca-container","defines_methods":{"initialize":{"defined_on_line":183,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"remove":{"defined_on_line":202,"documentation":"","arguments":[]},"beforeRender":{"defined_on_line":207,"documentation":"","arguments":[]},"customizeContainerEl":{"defined_on_line":216,"documentation":"<p>Components which inherit from Luca.Container can implement\ntheir own versions of this method, if they need to apply any sort\nof additional styling / configuration for the DOM elements that\nare created to wrap each container.</p>\n","arguments":[{"argument":"containerEl","value":null},{"argument":"panel","value":null},{"argument":"panelIndex","value":null}]},"prepareLayout":{"defined_on_line":219,"documentation":"","arguments":[]},"prepareComponents":{"defined_on_line":242,"documentation":"","arguments":[]},"createComponents":{"defined_on_line":285,"documentation":"<p>create components is responsible for turning the JSON syntax of the\ncontainer&#39;s definition into live objects against a given Luca Component\ntype.</p>\n\n<p>In addition to this, a container builds an index of the components\nwhich belong to it, so that they can easily be looked up by name</p>\n","arguments":[]},"renderComponents":{"defined_on_line":349,"documentation":"<p>Trigger the Rendering Pipeline process on all of the nested\ncomponents</p>\n","arguments":[{"argument":"@debugMode","value":"\"\""}]},"firstActivation":{"defined_on_line":395,"documentation":"<h3>Container Activation</h3>\n\n<p>When a container is first activated is a good time to perform\noperations which are not needed unless that component becomes\nvisible. This first activation event should be relayed to all\nof the nested components. Components which hide / display\nother components, such as a CardView or TabContainer\nwill trigger first:activation on the components as they become\ndisplayed.</p>\n","arguments":[]},"_":{"defined_on_line":405,"documentation":"<h3>Underscore Methods For Working with Components</h3>\n","arguments":[{"argument":")-> _( @components","value":null}]},"pluck":{"defined_on_line":407,"documentation":"","arguments":[{"argument":"attribute","value":null}]},"invoke":{"defined_on_line":410,"documentation":"","arguments":[{"argument":"method","value":null}]},"select":{"defined_on_line":413,"documentation":"","arguments":[{"argument":"fn","value":null}]},"detect":{"defined_on_line":416,"documentation":"","arguments":[{"argument":"fn","value":null}]},"reject":{"defined_on_line":419,"documentation":"","arguments":[{"argument":"fn","value":null}]},"map":{"defined_on_line":422,"documentation":"","arguments":[{"argument":"fn","value":null}]},"registerComponentEvents":{"defined_on_line":425,"documentation":"","arguments":[{"argument":"eventList","value":null},{"argument":"direction","value":"\"on\""}]},"subContainers":{"defined_on_line":447,"documentation":"","arguments":[]},"roles":{"defined_on_line":451,"documentation":"","arguments":[]},"allChildren":{"defined_on_line":454,"documentation":"","arguments":[]},"findComponentForEventBinding":{"defined_on_line":462,"documentation":"","arguments":[{"argument":"nameRoleOrGetter","value":null},{"argument":"deep","value":"true"}]},"findComponentByGetter":{"defined_on_line":465,"documentation":"","arguments":[{"argument":"getter","value":null},{"argument":"deep","value":"false"}]},"findComponentByRole":{"defined_on_line":469,"documentation":"","arguments":[{"argument":"role","value":null},{"argument":"deep","value":"false"}]},"findComponentByType":{"defined_on_line":473,"documentation":"","arguments":[{"argument":"desired","value":null},{"argument":"deep","value":"false"}]},"findComponentByName":{"defined_on_line":477,"documentation":"","arguments":[{"argument":"name","value":null},{"argument":"deep","value":"false"}]},"findComponentById":{"defined_on_line":481,"documentation":"","arguments":[{"argument":"id","value":null},{"argument":"deep","value":"false"}]},"findComponent":{"defined_on_line":484,"documentation":"","arguments":[{"argument":"needle","value":null},{"argument":"haystack","value":"\"name\""},{"argument":"deep","value":"false"}]},"each":{"defined_on_line":498,"documentation":"","arguments":[{"argument":"fn","value":null}]},"eachComponent":{"defined_on_line":504,"documentation":"<p>run a function for each component in this container\nand any nested containers in those components, recursively\npass false as the second argument to skip the deep recursion</p>\n","arguments":[{"argument":"fn","value":null},{"argument":"deep","value":"true"}]},"indexOf":{"defined_on_line":509,"documentation":"","arguments":[{"argument":"name","value":null}]},"activeComponent":{"defined_on_line":513,"documentation":"","arguments":[]},"componentElements":{"defined_on_line":517,"documentation":"","arguments":[]},"getComponent":{"defined_on_line":520,"documentation":"","arguments":[{"argument":"needle","value":null}]},"isRootComponent":{"defined_on_line":523,"documentation":"","arguments":[]},"getRootComponent":{"defined_on_line":526,"documentation":"","arguments":[]},"selectByAttribute":{"defined_on_line":530,"documentation":"","arguments":[{"argument":"attribute","value":null},{"argument":"value","value":"undefined"},{"argument":"deep","value":"false"}]},"at":{"defined_on_line":624,"documentation":"","arguments":[{"argument":"index","value":null}]}},"defines_properties":{"emptyContainerElements":{"defined_on_line":159,"documentation":"","default":""},"className":{"defined_on_line":160,"documentation":"","default":""},"componentTag":{"defined_on_line":161,"documentation":"","default":""},"componentClass":{"defined_on_line":162,"documentation":"","default":""},"isContainer":{"defined_on_line":163,"documentation":"","default":""},"rendered":{"defined_on_line":164,"documentation":"","default":""},"@trigger \"before":{"defined_on_line":558,"documentation":"","default":""},"@trigger \"after":{"defined_on_line":560,"documentation":"","default":""},"style_declarations.push \"height":{"defined_on_line":565,"documentation":"","default":""},"style_declarations.push \"width":{"defined_on_line":566,"documentation":"","default":""},"style_declarations.push \"float":{"defined_on_line":567,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/panel_toolbar.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/panel_toolbar.coffee","type":"component_definition","class_name":"Luca.PanelToolbar","header_documentation":"<p>The Panel Toolbar is a collection of buttons and / or dropdowns</p>\n","type_alias":"panel_toolbar","css_class_identifier":"luca-panel-toolbar","defines_methods":{"initialize":{"defined_on_line":29,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"clickHandler":{"defined_on_line":43,"documentation":"<p>The Toolbar behaves by triggering events on the components which they\nbelong to. Combined with Luca.View::setupHooks it is a clean way\nto organize actions</p>\n","arguments":[{"argument":"e","value":null}]},"beforeRender":{"defined_on_line":61,"documentation":"","arguments":[]},"render":{"defined_on_line":72,"documentation":"","arguments":[]}},"defines_properties":{"orientation":{"defined_on_line":22,"documentation":"","default":""},"autoBindEventHandlers":{"defined_on_line":24,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/tab_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/tab_view.coffee","type":"component_definition","class_name":"Luca.containers.TabView","header_documentation":"","type_alias":"tab_view","css_class_identifier":"luca-containers-tab-view","defines_methods":{"initialize":{"defined_on_line":19,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"activeTabSelector":{"defined_on_line":30,"documentation":"","arguments":[]},"beforeLayout":{"defined_on_line":33,"documentation":"","arguments":[]},"afterRender":{"defined_on_line":41,"documentation":"","arguments":[]},"createTabSelectors":{"defined_on_line":50,"documentation":"","arguments":[]},"highlightSelectedTab":{"defined_on_line":63,"documentation":"","arguments":[]},"tabSelectClickHandler":{"defined_on_line":67,"documentation":"","arguments":[{"argument":"e","value":null}]},"select":{"defined_on_line":75,"documentation":"","arguments":[{"argument":"tabName","value":"0"}]},"componentElements":{"defined_on_line":80,"documentation":"","arguments":[]},"tabContentWrapper":{"defined_on_line":83,"documentation":"","arguments":[]},"tabContainerWrapper":{"defined_on_line":86,"documentation":"","arguments":[]},"tabContainer":{"defined_on_line":89,"documentation":"","arguments":[]},"tabSelectors":{"defined_on_line":92,"documentation":"","arguments":[]},"bodyTemplateVars":{"defined_on_line":95,"documentation":"","arguments":[]}},"defines_properties":{"tab_position":{"defined_on_line":8,"documentation":"","default":""},"tabVerticalOffset":{"defined_on_line":9,"documentation":"","default":""},"additionalClassNames":{"defined_on_line":12,"documentation":"","default":""},"navClass":{"defined_on_line":13,"documentation":"","default":""},"bodyTemplate":{"defined_on_line":14,"documentation":"","default":""},"bodyClassName":{"defined_on_line":15,"documentation":"","default":""},"skipGetterMethods":{"defined_on_line":16,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/viewport.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/viewport.coffee","type":"component_definition","class_name":"Luca.containers.Viewport","header_documentation":"","type_alias":"viewport","css_class_identifier":"luca-containers-viewport","defines_methods":{"initialize":{"defined_on_line":10,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"enableFluid":{"defined_on_line":21,"documentation":"","arguments":[{"argument":")-> @enableWrapper(","value":null}]},"disableFluid":{"defined_on_line":23,"documentation":"","arguments":[{"argument":")-> @disableWrapper(","value":null}]},"enableWrapper":{"defined_on_line":25,"documentation":"","arguments":[]},"disableWrapper":{"defined_on_line":29,"documentation":"","arguments":[]},"enableFullscreen":{"defined_on_line":33,"documentation":"","arguments":[]},"disableFullscreen":{"defined_on_line":37,"documentation":"","arguments":[]},"beforeRender":{"defined_on_line":41,"documentation":"","arguments":[]},"height":{"defined_on_line":50,"documentation":"","arguments":[]},"width":{"defined_on_line":53,"documentation":"","arguments":[]},"afterRender":{"defined_on_line":56,"documentation":"","arguments":[]},"renderTopNavigation":{"defined_on_line":62,"documentation":"","arguments":[]},"renderBottomNavigation":{"defined_on_line":77,"documentation":"","arguments":[]}},"defines_properties":{"fullscreen":{"defined_on_line":5,"documentation":"","default":""},"fluid":{"defined_on_line":6,"documentation":"","default":""},"applyWrapper":{"defined_on_line":8,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/application.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/application.coffee","type":"component_definition","class_name":"Luca.Application","header_documentation":"<p>The <code>Luca.Application</code> is the main entry point into your Application.\nIt acts as a global state machine, page controller, and router, in addition\nto providing access to other singletons such as the CollectionManager, and SocketManager.</p>\n\n<p>The structure of a common <code>Luca.Application</code> is that it contains one or many <code>Pages</code> which\nthemselves are made up of the components of your application. One <code>Page</code> is visible at a time\nand which page is displayed is managed by an instance of the <code>Luca.components.Controller</code> class.</p>\n\n<h3>Example Configuration</h3>\n\n<pre><code>application = Luca.register &quot;App.Application&quot;\napplication.extends &quot;Luca.Application&quot;\napplication.defines\n name: &quot;MyApplication&quot;\n routes: \n &quot;&quot; : &quot;home&quot;\n &quot;standard/backbone/style/:route&quot; : &quot;name_of_page#name_of_method&quot;\n components:[\n name: &quot;home&quot;\n ,\n type: &quot;your_view&quot;\n name: &quot;name_of_page&quot;\n name_of_method: (routeParam)-&gt;\n @doSomethignToSetupYourPageWithThePassed(routeParam) \n ]\n</code></pre>\n\n<p>App.onReady ()-&gt;\n window.MyApp = new App.Application();\n window.MyApp.boot() </p>\n\n<h4>@routes and pages</h4>\n\n<p>In the above example, our application contains two pages, one with the name &#39;home&#39;\nand one with the name &#39;name<em>of</em>page&#39;. It also specifies a <code>@routes</code> property which\nis identical to the configuration you would see in a standard <code>Backbone.Router</code>.\nWhenever the route matches &#39;standard/backbone/style/route&#39; the <code>App.Application</code> instance\nwill send an instruction to the <code>Luca.components.Controller</code> to <code>activate</code> the page whose name\nis passed in the <code>@routes</code> config.</p>\n\n<p>If that page defines a method called <code>@routeHandler</code> it will be called with the parameters\nfrom the route. In the <code>@routes</code> config you can specify your own route handler method\nby using the rails style <code>page_name#action</code> and it will call the <code>@action</code> method instead\non the view named <code>page_name</code>.\nThe <code>App.Application</code> instance, also accessible by <code>window.MyApp</code>, or through the helper <code>App()</code>\nor <code>Luca.getApplication()</code> maintains the state of which page is active. You can access this\nin your code by calling <code>App().activePage()</code>.</p>\n\n<h4>Controllers</h4>\n\n<p>The <code>Luca.components.Controller</code> is a special type of component which contains \nother views, or <code>Pages</code> which only one will be visible at any given time. It expects\nthat each page will have its own unique <code>@name</code> property. A <code>Luca.components.Controller</code> can\ncontain other controllers, providing you with a way of structuring your application layout\nin an organized, hierarchal fashion. \nBy default, any <code>Luca.Application</code> will have one <code>Luca.components.Controller</code> automatically\ncreated named &#39;main_controller&#39; which is accessible by <code>MyApp.getMainController()</code>. Any\ncomponents you define on the <code>Luca.Application</code> instance will be wrapped by the main controller\nautomatically unless you specify <code>@useController = false</code> in your Application component definition.</p>\n","type_alias":"application","css_class_identifier":"luca-application","defines_methods":{"initialize":{"defined_on_line":170,"documentation":"<p>Don&#39;t create getters on this component\nfor the nested components</p>\n","arguments":[{"argument":"@options","value":"{}"}]},"activeView":{"defined_on_line":240,"documentation":"<p>@activeView() returns a reference to the instance of the view\nwhich is currently monopolizing the viewport. In an application\nwhich uses a controller hierarchy, it will be the last controller\nhas activated one of its pages.</p>\n","arguments":[]},"activeSection":{"defined_on_line":247,"documentation":"<p>Returns the name of the active component on the main controller</p>\n","arguments":[]},"activeSubSection":{"defined_on_line":253,"documentation":"<p>Returns the name of the active component on the nested controllers\non the main controller, if there is one. These get set on the\nstate machine in response to card switch events on the controller component</p>\n","arguments":[]},"activePages":{"defined_on_line":256,"documentation":"","arguments":[]},"boot":{"defined_on_line":267,"documentation":"<p>boot should trigger the ready event, which will call the initial call\nto render() your application, which will have a cascading effect on every\nsubcomponent in the view, recursively rendering everything which is set\nto automatically render (i.e. any non-deferrable components ).</p>\n\n<p>you should use boot to fire up any dependent collections, manager, any\nsort of data processing, whatever your application requires to run outside\nof the views</p>\n","arguments":[]},"collection":{"defined_on_line":274,"documentation":"<p>delegate to the collection manager&#39;s get or create function.\nuse App.collection() to create or access existing collections</p>\n","arguments":[]},"get":{"defined_on_line":277,"documentation":"","arguments":[{"argument":"attribute","value":null}]},"set":{"defined_on_line":280,"documentation":"","arguments":[{"argument":"attribute","value":null},{"argument":"value","value":null},{"argument":"options","value":null}]},"view":{"defined_on_line":283,"documentation":"","arguments":[{"argument":"name","value":null}]},"navigate_to":{"defined_on_line":289,"documentation":"<h3>Navigation Hooks</h3>\n\n<p>delegate to the main controller so that we can switch the active section</p>\n","arguments":[{"argument":"component_name","value":null},{"argument":"callback","value":null}]},"keyHandler":{"defined_on_line":293,"documentation":"","arguments":[{"argument":"e","value":null}]},"setupControllerBindings":{"defined_on_line":318,"documentation":"","arguments":[]},"setupMainController":{"defined_on_line":335,"documentation":"","arguments":[]},"setupCollectionManager":{"defined_on_line":354,"documentation":"","arguments":[]},"setupSocketManager":{"defined_on_line":388,"documentation":"","arguments":[]},"setupRouter":{"defined_on_line":394,"documentation":"","arguments":[]},"setupKeyHandler":{"defined_on_line":424,"documentation":"","arguments":[]},"pageHierarchy":{"defined_on_line":442,"documentation":"<p>Public: For purely informational purposes, describes the structure\nof the Application&#39;s controller views, and any of their nested controllers views.</p>\n","arguments":[]},"registerInstance":{"defined_on_line":461,"documentation":"<p>Private: registers the instance of the Luca.Appliction\nso that it is available via the Luca() helper, or through\na call to Luca.Application.get()</p>\n","arguments":[{"argument":"app","value":null}]},"checkForKeymaster":{"defined_on_line":471,"documentation":"<p>The following special keys can be used for shortcuts:\n<code>backspace</code>, <code>tab</code>, <code>clear</code>, <code>enter</code>, <code>return</code>, <code>esc</code>, <code>escape</code>, <code>space</code>,\n<code>up</code>, <code>down</code>, <code>left</code>, <code>right</code>, <code>home</code>, <code>end</code>, <code>pageup</code>, <code>pagedown</code>, <code>del</code>, <code>delete</code>\nand <code>f1</code> through <code>f19</code>.</p>\n","arguments":[]},"routeTo":{"defined_on_line":486,"documentation":"<p>Private: Recursively navigates down the controller page hierarchy\nto the page you specify by name. You can specify the\nmethod which is to be called at the end of the chain.</p>\n\n<p>This is used internally by the Application as it sets up\nthe @routes property and uses it to configure the Luca.Router\ninstance for your app.</p>\n","arguments":[{"argument":"pages...","value":null}]},"startHistory":{"defined_on_line":530,"documentation":"<p>Public: you can override Luca.Application.startHistory to\nmodify how Backbone.history.start is called. This will get called\nby the Application instance in response to the @autoStartHistory property.</p>\n","arguments":[]}},"defines_properties":{"name":{"defined_on_line":70,"documentation":"","default":""},"autoBoot":{"defined_on_line":81,"documentation":"<p>if autoBoot is set to true, the application will\nattempt to boot on document ready.</p>\n","default":""},"autoStartHistory":{"defined_on_line":87,"documentation":"<p>automatically starts the @router if it exists,\nonce the components for the application have\nbeen created. Pass the event name you want to\nlisten for on this component before you start history</p>\n","default":""},"useCollectionManager":{"defined_on_line":91,"documentation":"<p>we will create a collection manager singleton\nby default unless otherwise specified.</p>\n","default":""},"collectionManagerClass":{"defined_on_line":100,"documentation":"<p>by default we will use the standard collection manager which ships with\nLuca. If you would like to use your own extension of the collection manager\njust pass a reference to the class you would like to use.</p>\n","default":""},"plugin":{"defined_on_line":105,"documentation":"<p>Luca plugin apps are apps which mount onto existing\nluca apps, and will not have the behavior of a main\napp which acts as a singleton</p>\n","default":""},"useController":{"defined_on_line":111,"documentation":"<p>by default, the application will use a controller\ncomponent, which is a card view container which shows\none view at a time. this is useful for having an application\nwith several &#39;pages&#39; so to speak</p>\n","default":""},"mainControllerContainer":{"defined_on_line":117,"documentation":"<p>if you have special rendering requirements for\nthe application&#39;s components, you can assign the\nspecific element you want to render the container\nto inside of the #viewport</p>\n","default":""},"useKeyHandler":{"defined_on_line":125,"documentation":"<p>Key Handler</p>\n\n<p>One responsibility of the application, since it is a viewport which monopolizes the entire screen\nis to relay keypress events from the document, to whatever views are interested in responding to them.</p>\n\n<p>This functionality is disabled by default.</p>\n","default":""},"createRoleBasedGetters":{"defined_on_line":160,"documentation":"<p>create getter methods for the various\nroles in the application&#39;s components on the\napplication itself. false by default.</p>\n","default":""},"useSocketManager":{"defined_on_line":165,"documentation":"<p>create an instance of Luca.SocketManager\nwhich is a Backbone.Events style abstraction that\nsits on top of services like faye, or socket.io</p>\n","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/collection_loader_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/collection_loader_view.coffee","type":"component_definition","class_name":"Luca.components.CollectionLoaderView","header_documentation":"<p>Collection Loader View is a simple modal view\nYou can provide your own template for the collection loader modal\nif you want to. Default implementation uses twitter bootstrap modal and\nprogress bar (<a href=\"http://twitter.github.com/bootstrap/\">http://twitter.github.com/bootstrap/</a>). You template\nshould contain <code>progress</code>, <code>bar</code> and <code>message</code> classes</p>\n","type_alias":"collection_loader_view","css_class_identifier":"luca-collection-loader-view","defines_methods":{"initialize":{"defined_on_line":14,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"modalContainer":{"defined_on_line":22,"documentation":"","arguments":[]},"setupBindings":{"defined_on_line":25,"documentation":"","arguments":[]}},"defines_properties":{"className":{"defined_on_line":10,"documentation":"","default":""},"template":{"defined_on_line":12,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/collection_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/collection_view.coffee","type":"component_definition","class_name":"Luca.CollectionView","header_documentation":"<p>The <code>Luca.CollectionView</code> renders models from a <code>Luca.Collection</code> into multiple\nelements, and provides methods for filtering, paginating, sorting the underlying\ncollection and re-rendering the contents of its <code>@el</code> accordingly.</p>\n\n<h4>Basic Example</h4>\n\n<pre><code>collectionView = Luca.register &quot;App.views.Books&quot;\ncollectionView.extends &quot;Luca.CollectionView&quot;\ncollectionView.defines\n itemProperty: &quot;author&quot;\n collection: new Luca.Collection([\n author: &quot;George Orwell&quot;\n title: &quot;Animal Farm&quot;\n ,\n author: &quot;Noam Chomsky&quot;\n title: &quot;Manufacturing Consent&quot;\n ])\nview = new App.views.Books()\n</code></pre>\n\n<h4>Extending it to make it Filterable and Paginatable</h4>\n\n<pre><code>filterable = Luca.register &quot;App.views.FilterableBooks&quot;\nfilterable.extends &quot;App.views.Books&quot;\nfilterable.defines\n collection: &quot;books&quot; \n paginatable: 12\n filterable:\n query:\n author: &quot;George Orwell&quot;\n\n view = new App.views.FilterableBooks()\n</code></pre>\n\n<h4>Filterable Collections</h4>\n\n<p>The <code>Luca.CollectionView</code> will attempt to perform a local query against its\ncollection which behaves like a <code>Backbone.QueryCollection</code>. It will do this\nby default without making a remote request to the API. </p>\n\n<p>If you do not want this behavior, you can configure the <code>Luca.CollectionView</code> to \nbehave as if the filtering was happen remotely in your REST API.<br>\n filterable:\n options:\n remote: true</p>\n","type_alias":"collection_view","css_class_identifier":"luca-collection-view","defines_methods":{"initialize":{"defined_on_line":96,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"locateItemElement":{"defined_on_line":135,"documentation":"<p>Given the id of a model, find the underlying DOM element which was rendered by this collection.\nAssumes that the data-model-id attribute is set, which it is by default by @attributesForItem.</p>\n","arguments":[{"argument":"id","value":null}]},"refresh":{"defined_on_line":142,"documentation":"<p>Refresh is responsible for applying any filtering, pagination, or sorting options that may be set\nfrom the various Luca.concerns mixed in by <code>Luca.CollectionView</code> and making a query to the underlying\ncollection. It will then take the set of models returned by <code>@getModels</code> and pass them through the\nitem rendering pipeline.</p>\n","arguments":[]},"attributesForItem":{"defined_on_line":164,"documentation":"<p>Determines which attributes should be set on the item DOM element.</p>\n","arguments":[{"argument":"item","value":null},{"argument":"model","value":null}]},"contentForItem":{"defined_on_line":169,"documentation":"<p>Determines the content for the item DOM element. Will use the appropriate options\nspecified by <code>@itemTemplate</code>, <code>@itemRenderer</code>, or <code>@itemProperty</code></p>\n","arguments":[{"argument":"item","value":"{}"}]},"makeItem":{"defined_on_line":182,"documentation":"<p>Uses the various options passed to the <code>CollectionView</code> to assemble a call to <code>Backbone.View::make</code>.</p>\n","arguments":[{"argument":"model","value":null},{"argument":"index","value":null}]},"refreshModel":{"defined_on_line":193,"documentation":"<p>Given a model, attempt to re-render the contents of its item in this view&#39;s DOM contents.</p>\n","arguments":[{"argument":"model","value":null}]},"registerEvent":{"defined_on_line":199,"documentation":"","arguments":[{"argument":"domEvent","value":null},{"argument":"selector","value":null},{"argument":"handler","value":null}]}},"defines_properties":{"collection":{"defined_on_line":64,"documentation":"<p>Specify which collection will be used to supply the models to be rendered.\nAccepts either a string alias for the Collection class, or an instance of\nany class which inherits from Backbone.Collection</p>\n","default":""},"tagName":{"defined_on_line":67,"documentation":"<p>By default the CollectionView will be rendered inside of an OL tag.</p>\n","default":""},"bodyClassName":{"defined_on_line":72,"documentation":"<p>The CollectionView behaves as a Luca.Panel which means it has an area for\ntop and bottom toolbars. The actual content that gets rendered from the\ncollection will be rendered inside an element with the specified class.</p>\n","default":""},"itemTagName":{"defined_on_line":75,"documentation":"<p>Each item from the collection will be rendered inside of an element specified by @itemTagName</p>\n","default":""},"itemClassName":{"defined_on_line":78,"documentation":"<p>Each item element will be assigned a CSS class specified by @itemClassName</p>\n","default":""},"itemTemplate":{"defined_on_line":83,"documentation":"<p>Specify which template should be used to render each item in the collection.\nAccepts a string which will be passed to Luca.template(@itemTemplate). Your template\ncan expect to be passed an object with the <code>model</code> and <code>index</code> properties on it.</p>\n","default":""},"itemRenderer":{"defined_on_line":87,"documentation":"<p>Accepts a reference to a function, which will be called with an object with the <code>model</code> and <code>index</code>\nproperties on it. This function should return a String which will be injected into the item DOM element.</p>\n","default":""},"itemProperty":{"defined_on_line":90,"documentation":"<p>Plucks the specified property from the model and inserts it into the item DOM element.</p>\n","default":""},"observeChanges":{"defined_on_line":93,"documentation":"<p>If @observeChanges is set to true, any change in an underlying model will automatically be re-rendered.</p>\n","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/controller.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/controller.coffee","type":"component_definition","class_name":"Luca.components.Controller","header_documentation":"","type_alias":"controller","css_class_identifier":"luca-controller","defines_methods":{"default":{"defined_on_line":7,"documentation":"","arguments":[{"argument":"callback","value":null}]},"activePage":{"defined_on_line":10,"documentation":"","arguments":[]},"navigate_to":{"defined_on_line":13,"documentation":"","arguments":[{"argument":"section","value":null},{"argument":"callback","value":null}]},"setupComponentKeyEvents":{"defined_on_line":38,"documentation":"","arguments":[]},"controllerPath":{"defined_on_line":43,"documentation":"","arguments":[]},"initialize":{"defined_on_line":64,"documentation":"","arguments":[{"argument":"@options","value":null}]},"each":{"defined_on_line":83,"documentation":"","arguments":[{"argument":"fn","value":null}]},"activeSection":{"defined_on_line":86,"documentation":"","arguments":[]},"pageControllers":{"defined_on_line":89,"documentation":"","arguments":[{"argument":"deep","value":"false"}]},"controllers":{"defined_on_line":92,"documentation":"","arguments":[{"argument":"deep","value":"false"}]},"availablePages":{"defined_on_line":97,"documentation":"","arguments":[]},"availableSections":{"defined_on_line":100,"documentation":"","arguments":[]},"pageNames":{"defined_on_line":109,"documentation":"","arguments":[]},"sectionNames":{"defined_on_line":112,"documentation":"","arguments":[{"argument":"deep","value":"false"}]}},"defines_properties":{"tracker":{"defined_on_line":5,"documentation":"","default":""},"Luca.View":{"defined_on_line":57,"documentation":"","default":""},"additionalClassNames":{"defined_on_line":60,"documentation":"","default":""},"activeAttribute":{"defined_on_line":61,"documentation":"","default":""},"stateful":{"defined_on_line":62,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/base.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/base.coffee","type":"component_definition","class_name":"Luca.core.Field","header_documentation":"","type_alias":"field","css_class_identifier":"luca-core-field","defines_methods":{"disable":{"defined_on_line":19,"documentation":"","arguments":[]},"enable":{"defined_on_line":22,"documentation":"","arguments":[]},"getValue":{"defined_on_line":25,"documentation":"","arguments":[]},"setValue":{"defined_on_line":28,"documentation":"","arguments":[{"argument":"value","value":null}]},"updateState":{"defined_on_line":31,"documentation":"","arguments":[{"argument":"state","value":null}]},"clearErrors":{"defined_on_line":36,"documentation":"","arguments":[]},"displayErrors":{"defined_on_line":39,"documentation":"","arguments":[{"argument":"errors","value":null}]},"getParsedValue":{"defined_on_line":43,"documentation":"","arguments":[{"argument":"raw","value":null}]},"initialize":{"defined_on_line":57,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"beforeRender":{"defined_on_line":81,"documentation":"","arguments":[]},"change_handler":{"defined_on_line":87,"documentation":"","arguments":[{"argument":"e","value":null}]},"getInputElement":{"defined_on_line":90,"documentation":"","arguments":[]}},"defines_properties":{"labelAlign":{"defined_on_line":10,"documentation":"","default":""},"className":{"defined_on_line":11,"documentation":"","default":""},"isField":{"defined_on_line":53,"documentation":"","default":""},"template":{"defined_on_line":54,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/button_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/button_field.coffee","type":"component_definition","class_name":"Luca.fields.ButtonField","header_documentation":"","type_alias":"button_field","css_class_identifier":"luca-fields-button-field","defines_methods":{"click_handler":{"defined_on_line":23,"documentation":"","arguments":[{"argument":"e","value":null}]},"initialize":{"defined_on_line":27,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"afterInitialize":{"defined_on_line":35,"documentation":"","arguments":[]},"setValue":{"defined_on_line":44,"documentation":"","arguments":[]}},"defines_properties":{"readOnly":{"defined_on_line":8,"documentation":"","default":""},"input_value":{"defined_on_line":9,"documentation":"","default":""},"input_type":{"defined_on_line":10,"documentation":"","default":""},"icon_class":{"defined_on_line":11,"documentation":"","default":""},"input_name":{"defined_on_line":12,"documentation":"","default":""},"white":{"defined_on_line":13,"documentation":"","default":""},"isButton":{"defined_on_line":17,"documentation":"","default":""},"template":{"defined_on_line":18,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/checkbox_array.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/checkbox_array.coffee","type":"component_definition","class_name":"Luca.fields.CheckboxArray","header_documentation":"","type_alias":"checkbox_array","css_class_identifier":"luca-fields-checkbox-array","defines_methods":{"initialize":{"defined_on_line":18,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"afterInitialize":{"defined_on_line":31,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"clickHandler":{"defined_on_line":47,"documentation":"","arguments":[{"argument":"event","value":null}]},"controls":{"defined_on_line":56,"documentation":"","arguments":[]},"renderCheckboxes":{"defined_on_line":59,"documentation":"","arguments":[]},"uncheckAll":{"defined_on_line":77,"documentation":"","arguments":[]},"allFields":{"defined_on_line":80,"documentation":"","arguments":[]},"checkSelected":{"defined_on_line":83,"documentation":"","arguments":[{"argument":"items","value":null}]},"getValue":{"defined_on_line":94,"documentation":"","arguments":[]},"setValue":{"defined_on_line":97,"documentation":"","arguments":[{"argument":"items","value":null}]},"getValues":{"defined_on_line":108,"documentation":"","arguments":[]},"setValues":{"defined_on_line":111,"documentation":"","arguments":[{"argument":"items","value":null}]}},"defines_properties":{"version":{"defined_on_line":7,"documentation":"","default":""},"template":{"defined_on_line":9,"documentation":"","default":""},"className":{"defined_on_line":11,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/checkbox_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/checkbox_field.coffee","type":"component_definition","class_name":"Luca.fields.CheckboxField","header_documentation":"","type_alias":"checkbox_field","css_class_identifier":"luca-fields-checkbox-field","defines_methods":{"change_handler":{"defined_on_line":18,"documentation":"","arguments":[{"argument":"e","value":null}]},"initialize":{"defined_on_line":28,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"setValue":{"defined_on_line":39,"documentation":"","arguments":[{"argument":"checked","value":null}]},"getValue":{"defined_on_line":42,"documentation":"","arguments":[]}},"defines_properties":{"send_blanks":{"defined_on_line":9,"documentation":"","default":""},"input_value":{"defined_on_line":10,"documentation":"","default":""},"template":{"defined_on_line":13,"documentation":"","default":""},"version":{"defined_on_line":46,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/file_upload_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/file_upload_field.coffee","type":"component_definition","class_name":"Luca.fields.FileUploadField","header_documentation":"","type_alias":"file_upload_field","css_class_identifier":"luca-fields-file-upload-field","defines_methods":{"afterInitialize":{"defined_on_line":9,"documentation":"","arguments":[]}},"defines_properties":{"version":{"defined_on_line":5,"documentation":"","default":""},"template":{"defined_on_line":7,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/hidden_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/hidden_field.coffee","type":"component_definition","class_name":"Luca.fields.HiddenField","header_documentation":"","type_alias":"hidden_field","css_class_identifier":"luca-fields-hidden-field","defines_methods":{"afterInitialize":{"defined_on_line":7,"documentation":"","arguments":[]}},"defines_properties":{"template":{"defined_on_line":5,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/label_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/label_field.coffee","type":"component_definition","class_name":"Luca.components.LabelField","header_documentation":"","type_alias":"label_field","css_class_identifier":"luca-label-field","defines_methods":{"formatter":{"defined_on_line":5,"documentation":"","arguments":[{"argument":"value","value":null}]},"setValue":{"defined_on_line":9,"documentation":"","arguments":[{"argument":"value","value":null}]}},"defines_properties":{}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/select_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/select_field.coffee","type":"component_definition","class_name":"Luca.fields.SelectField","header_documentation":"","type_alias":"select_field","css_class_identifier":"luca-fields-select-field","defines_methods":{"setValue":{"defined_on_line":47,"documentation":"<p>sets the value of this select field.</p>\n","arguments":[{"argument":"value","value":null}]},"getValue":{"defined_on_line":54,"documentation":"<p>returns the value of the select field. runs\nthe value through the getParsedValue method which\nenforces the valueType type conversion.</p>\n","arguments":[]},"initialize":{"defined_on_line":64,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"afterInitialize":{"defined_on_line":80,"documentation":"","arguments":[]},"parseData":{"defined_on_line":99,"documentation":"<p>if the select field is configured with a data property\nthen parse that data into the proper format. either\nan array of objects with the valueField and displayField\nproperties, or an array of arrays with [valueField, displayField]</p>\n","arguments":[]},"getInputElement":{"defined_on_line":109,"documentation":"","arguments":[]},"afterRender":{"defined_on_line":112,"documentation":"","arguments":[]},"beforeFetch":{"defined_on_line":118,"documentation":"","arguments":[]},"change_handler":{"defined_on_line":121,"documentation":"","arguments":[{"argument":"e","value":null}]},"resetOptions":{"defined_on_line":124,"documentation":"","arguments":[]},"populateOptions":{"defined_on_line":132,"documentation":"","arguments":[]}},"defines_properties":{"allowMultiple":{"defined_on_line":10,"documentation":"<p>Enables multi-select UI element.</p>\n","default":""},"includeBlank":{"defined_on_line":14,"documentation":"<p>Includes a blank option in addition to all of the items\nin the underlying collection. Defaults to <code>true</code></p>\n","default":""},"blankText":{"defined_on_line":22,"documentation":"<p>Determines the text displayed when\nthe blank option is selected</p>\n","default":""},"maxDisplayLength":{"defined_on_line":28,"documentation":"<p>Specifying a value for maxDisplayLength will truncate\nvalues displayed in the select field when they reach\npast a certain point, using the _.str truncate method.\nLeave at 0 if you want to keep this feature disabled.</p>\n","default":""},"retainValue":{"defined_on_line":34,"documentation":"<p>When the underlying collection is reset and we re-render\nthe options elements, should we keep the value that was set\non this field prior to that? Defaults to <code>true</code> unless otherwise\nspecified.</p>\n","default":""},"label":{"defined_on_line":38,"documentation":"<p>Determines which value is rendered in the label element that gets\nrendered along with this control group.</p>\n","default":""},"template":{"defined_on_line":41,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/text_area_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/text_area_field.coffee","type":"component_definition","class_name":"Luca.fields.TextAreaField","header_documentation":"","type_alias":"text_area_field","css_class_identifier":"luca-fields-text-area-field","defines_methods":{"initialize":{"defined_on_line":16,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"setValue":{"defined_on_line":35,"documentation":"","arguments":[{"argument":"value","value":null}]},"getValue":{"defined_on_line":38,"documentation":"","arguments":[]},"field":{"defined_on_line":41,"documentation":"","arguments":[]},"keyup_handler":{"defined_on_line":44,"documentation":"","arguments":[{"argument":"e","value":null}]},"blur_handler":{"defined_on_line":50,"documentation":"","arguments":[{"argument":"e","value":null}]},"focus_handler":{"defined_on_line":53,"documentation":"","arguments":[{"argument":"e","value":null}]},"change_handler":{"defined_on_line":56,"documentation":"","arguments":[{"argument":"e","value":null}]}},"defines_properties":{"autoBindEventHandlers":{"defined_on_line":4,"documentation":"","default":""},"template":{"defined_on_line":10,"documentation":"","default":""},"height":{"defined_on_line":12,"documentation":"","default":""},"width":{"defined_on_line":13,"documentation":"","default":""},"keyEventThrottle":{"defined_on_line":14,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/text_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/text_field.coffee","type":"component_definition","class_name":"Luca.fields.TextField","header_documentation":"","type_alias":"text_field","css_class_identifier":"luca-fields-text-field","defines_methods":{"initialize":{"defined_on_line":18,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"keyup_handler":{"defined_on_line":43,"documentation":"","arguments":[{"argument":"e","value":null}]},"blur_handler":{"defined_on_line":49,"documentation":"","arguments":[{"argument":"e","value":null}]},"focus_handler":{"defined_on_line":52,"documentation":"","arguments":[{"argument":"e","value":null}]},"change_handler":{"defined_on_line":55,"documentation":"","arguments":[{"argument":"e","value":null}]}},"defines_properties":{"template":{"defined_on_line":10,"documentation":"","default":""},"autoBindEventHandlers":{"defined_on_line":12,"documentation":"","default":""},"send_blanks":{"defined_on_line":14,"documentation":"","default":""},"keyEventThrottle":{"defined_on_line":16,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/type_ahead_field.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/fields/type_ahead_field.coffee","type":"component_definition","class_name":"Luca.fields.TypeAheadField","header_documentation":"","type_alias":"type_ahead_field","css_class_identifier":"luca-fields-type-ahead-field","defines_methods":{"getSource":{"defined_on_line":6,"documentation":"","arguments":[]},"matcher":{"defined_on_line":9,"documentation":"","arguments":[{"argument":"item","value":null}]},"beforeRender":{"defined_on_line":12,"documentation":"","arguments":[]},"afterRender":{"defined_on_line":16,"documentation":"","arguments":[]}},"defines_properties":{}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/form_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/form_view.coffee","type":"component_definition","class_name":"Luca.components.FormView","header_documentation":"<p>The FormView component is a special container which provides functionality\naround the components inside which extend from the Luca.core.Field class.\nThe FormView component integrates well with Luca.Models and can control\nthe attributes on that model, respond to validations, and submit changes\nto an API.</p>\n","type_alias":"form_view","css_class_identifier":"luca-form-view","defines_methods":{"initialize":{"defined_on_line":110,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"onFieldChange":{"defined_on_line":138,"documentation":"","arguments":[{"argument":"field","value":null},{"argument":"e","value":null}]},"getDefaultToolbar":{"defined_on_line":142,"documentation":"","arguments":[]},"applyStyleClasses":{"defined_on_line":146,"documentation":"","arguments":[]},"applyBootstrapStyleClasses":{"defined_on_line":153,"documentation":"","arguments":[]},"resetHandler":{"defined_on_line":161,"documentation":"","arguments":[{"argument":"e","value":null}]},"submitHandler":{"defined_on_line":170,"documentation":"","arguments":[{"argument":"e","value":null}]},"afterComponents":{"defined_on_line":180,"documentation":"","arguments":[]},"eachField":{"defined_on_line":188,"documentation":"","arguments":[{"argument":"iterator","value":null}]},"getField":{"defined_on_line":191,"documentation":"","arguments":[{"argument":"name","value":null}]},"getFields":{"defined_on_line":197,"documentation":"","arguments":[{"argument":"attr","value":null},{"argument":"value","value":null}]},"loadModel":{"defined_on_line":208,"documentation":"","arguments":[{"argument":"model","value":null}]},"reset":{"defined_on_line":230,"documentation":"","arguments":[]},"clear":{"defined_on_line":233,"documentation":"","arguments":[]},"isDirty":{"defined_on_line":242,"documentation":"","arguments":[]},"setValues":{"defined_on_line":247,"documentation":"<p>set the values on the form\nwithout syncing</p>\n","arguments":[{"argument":"source","value":null},{"argument":"options","value":"{}"}]},"getValues":{"defined_on_line":270,"documentation":"<p>Public: returns a hash of values for the form fields in this view.</p>\n\n<p>options - An options Hash to control the behavior of values returned (default: {}):\nreject<em>blank: don&#39;t include values which are blank (default: true)\nskip</em>buttons: don&#39;t include button fields (default: true)\nblanks: an inverse alias for reject_blank (default: false)</p>\n","arguments":[{"argument":"options","value":"{}"}]},"removeErrors":{"defined_on_line":309,"documentation":"","arguments":[]},"displayErrors":{"defined_on_line":316,"documentation":"","arguments":[{"argument":"errors","value":null}]},"displayValidationErrorsMessage":{"defined_on_line":326,"documentation":"","arguments":[]},"submit_success_handler":{"defined_on_line":329,"documentation":"","arguments":[{"argument":"model","value":null},{"argument":"response","value":null},{"argument":"xhr","value":null}]},"submit_fatal_error_handler":{"defined_on_line":338,"documentation":"","arguments":[{"argument":"model","value":null},{"argument":"response","value":null},{"argument":"xhr","value":null}]},"submit":{"defined_on_line":348,"documentation":"","arguments":[{"argument":"save","value":"true"},{"argument":"saveOptions","value":"{}"}]},"hasModel":{"defined_on_line":359,"documentation":"","arguments":[]},"currentModel":{"defined_on_line":362,"documentation":"","arguments":[{"argument":"options","value":"{}"}]},"applyFormValuesToModel":{"defined_on_line":368,"documentation":"","arguments":[{"argument":"options","value":null}]},"setLegend":{"defined_on_line":371,"documentation":"","arguments":[{"argument":"@legend","value":null}]},"flash":{"defined_on_line":374,"documentation":"","arguments":[{"argument":"message","value":null}]},"successMessage":{"defined_on_line":382,"documentation":"","arguments":[{"argument":"message","value":null}]},"errorMessage":{"defined_on_line":389,"documentation":"","arguments":[{"argument":"message","value":null}]},"setupToolbar":{"defined_on_line":394,"documentation":"","arguments":[]}},"defines_properties":{"trackDirtyState":{"defined_on_line":35,"documentation":"<p>track dirty state will bind to change events\non all of the underlying fields, and set a\nflag whenever one of them changes</p>\n","default":""},"trackModelChanges":{"defined_on_line":38,"documentation":"<p>don&#39;t setup two way binding to the model</p>\n","default":""},"labelAlign":{"defined_on_line":42,"documentation":"<p>should the label display above, or to the\nside of the fields</p>\n","default":""},"fieldLayoutClass":{"defined_on_line":46,"documentation":"<p>specifying this class gives you the ability\nto layout the nested fields accordingly.</p>\n","default":""},"toolbar":{"defined_on_line":55,"documentation":"<p>available options are true, false, &quot;top&quot;, &quot;bottom&quot;, or &quot;both&quot;\nthe component configuration for the toolbar can be controlled\nby specifying a name of a property that contains a valid\ncomponent reference ( either hash w/ type reference )</p>\n","default":""},"toolbarConfig":{"defined_on_line":60,"documentation":"<p>the name of the property which contains the configuration\nfor the buttons that will go in this toolbar. Specify\na string so it can be lazily evaluated at initialization.</p>\n","default":""},"defaultToolbar":{"defined_on_line":66,"documentation":"<p>the default toolbar definition that will be created if\nthe form is configured to have a toolbar on it. this value\nwill be resolved at initialization, so pass a string identifying\nan object in memory.</p>\n","default":""},"loadMask":{"defined_on_line":71,"documentation":"<p>if this form will be submitting values to a RESTful API and you\nwant to show a loading indicator or progress bar, configure the\n@loadMask property.</p>\n","default":""},"well":{"defined_on_line":75,"documentation":"<p>Applies the twitter bootstrap well class to this form.\n@$el.addClass(&#39;well&#39;) if @well</p>\n","default":""},"searchForm":{"defined_on_line":79,"documentation":"<p>Applies the twitter bootstrap form-search class to this form.\n@$el.addClass(&#39;form-search&#39;) if @searchForm</p>\n","default":""},"horizontalForm":{"defined_on_line":83,"documentation":"<p>Applies the twitter bootstrap horizontal form class to this form.\n@$el.addClass(&#39;form-horizontal&#39;) if @horizontalForm</p>\n","default":""},"inlineForm":{"defined_on_line":87,"documentation":"<p>Applies the twitter bootstrap inline form class to this form.\n@$el.addClass(&#39;form-inline&#39;) if @inlineForm</p>\n","default":""},"includeBlankValues":{"defined_on_line":91,"documentation":"<p>if we should always include blank values\nregardless of how the field is configured</p>\n","default":""},"tagName":{"defined_on_line":94,"documentation":"","default":""},"bodyClassName":{"defined_on_line":103,"documentation":"","default":""},"successFlashDelay":{"defined_on_line":380,"documentation":"","default":""},"version":{"defined_on_line":420,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/grid_layout_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/grid_layout_view.coffee","type":"component_definition","class_name":"Luca.components.GridLayoutView","header_documentation":"","type_alias":"grid_layout_view","css_class_identifier":"luca-grid-layout-view","defines_methods":{"attributesForItem":{"defined_on_line":19,"documentation":"<p>adds the bootstrap span class to each collection-item,\nwhere span class is equal to the 12 column grid / @itemsPerRow.\nfor example, each item would receive a span4 class when @itemsPerRow = 3</p>\n","arguments":[]},"renderModels":{"defined_on_line":29,"documentation":"<p>wraps every N number of rows, where N = @itemsPerRow\nin a row-fluid wrapper, and appends it to the view</p>\n","arguments":[{"argument":"models","value":null}]}},"defines_properties":{"itemsPerRow":{"defined_on_line":8,"documentation":"<p>how many items do you wish to render per row?\nassuming a 12 column grid, each item will receive\nan equal amount of grid span/columns.</p>\n","default":""},"className":{"defined_on_line":11,"documentation":"","default":""},"tagName":{"defined_on_line":12,"documentation":"","default":""},"itemTagName":{"defined_on_line":13,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/load_mask.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/load_mask.coffee","type":"component_definition","class_name":"Luca.components.LoadMask","header_documentation":"<p>#_.def(&quot;Luca.components.LoadMask&quot;).extends(&quot;Luca.View&quot;).with</p>\n","type_alias":"load_mask","css_class_identifier":"luca-load-mask","defines_methods":{},"defines_properties":{"className":{"defined_on_line":7,"documentation":"","default":""},"bodyTemplate":{"defined_on_line":8,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/multi_collection_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/multi_collection_view.coffee","type":"component_definition","class_name":"Luca.components.MultiCollectionView","header_documentation":"","type_alias":"multi_collection_view","css_class_identifier":"luca-multi-collection-view","defines_methods":{"initialize":{"defined_on_line":42,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"relayAfterRefresh":{"defined_on_line":54,"documentation":"","arguments":[{"argument":"models","value":null},{"argument":"query","value":null},{"argument":"options","value":null}]},"refresh":{"defined_on_line":57,"documentation":"","arguments":[]},"propagateCollectionComponents":{"defined_on_line":61,"documentation":"","arguments":[]},"validateComponent":{"defined_on_line":81,"documentation":"","arguments":[{"argument":"component","value":null}]}},"defines_properties":{"version":{"defined_on_line":92,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/nav_bar.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/nav_bar.coffee","type":"component_definition","class_name":"Luca.components.NavBar","header_documentation":"<p>A Twitter Bootstrap compatible navigation bar. The Luca.Application\nand Luca.containers.Viewport class both have configuration options for\ncreating navbar components in the header and footer of the viewport.</p>\n\n<h4>Example of an Application with a Navbar</h4>\n\n<h5>Component Definition</h5>\n\n<pre><code> # Navigation Component\n navBar = Luca.register &quot;App.views.TopNavigation&quot;\n navBar.extends &quot;Luca.components.NavBar&quot;\n navBar.defines\n brand: &quot;My App&quot;\n # for white on black\n inverse: true\n</code></pre>\n\n<p>We are able to reference the component we just defined in the\nconfiguration of the Application, simply by using it&#39;s \ntype alias <code>top_navigation</code>\n # Application Component\n app = Luca.register &quot;App.Application&quot;\n app.extends &quot;Luca.Application&quot;\n app.defines\n topNav: &quot;top_navigation&quot;</p>\n","type_alias":"nav_bar","css_class_identifier":"luca-nav-bar","defines_methods":{"beforeRender":{"defined_on_line":54,"documentation":"","arguments":[]},"render":{"defined_on_line":70,"documentation":"","arguments":[]},"navContainer":{"defined_on_line":73,"documentation":"","arguments":[]},"content":{"defined_on_line":76,"documentation":"","arguments":[]}},"defines_properties":{"fixed":{"defined_on_line":31,"documentation":"<p>Specify whether the navbar is supposed to be fixed\nthe way Twitter bootstrap navbar can be.</p>\n","default":""},"position":{"defined_on_line":34,"documentation":"<p>Valid options are &#39;top&#39;, &#39;bottom&#39;. Only valid when <code>@fixed is true</code></p>\n","default":""},"fluid":{"defined_on_line":38,"documentation":"<p>Specify whether the navbar should use the fluid grid.\nUsually the same as your Viewport setting.</p>\n","default":""},"brand":{"defined_on_line":42,"documentation":"<p>What content do you want to show in the logo area of the\nstandard bootstrap nav</p>\n","default":""},"template":{"defined_on_line":47,"documentation":"<p>Specifies an optional template to use for the navigation menu\ncontent. Whatever you specify will be rendered inside of the\ncollapsible container inside of the standard bootstrap nav.</p>\n","default":""},"className":{"defined_on_line":50,"documentation":"","default":""},"bodyTemplate":{"defined_on_line":51,"documentation":"","default":""},"bodyClassName":{"defined_on_line":52,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/page.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/page.coffee","type":"component_definition","class_name":"Luca.components.Page","header_documentation":"<p>The <code>Page</code> is a type of <code>Container</code> that has\nall of its subcomponents visible at one time, \nand assigned to various <code>@regions</code> that exist\nin the <code>@layout</code> template which provide its \ninternal dom structure.</p>\n\n<h4>Example Template (haml):</h4>\n\n<pre><code> .page.layout.row-fluid{&quot;data-layout&quot;=&gt;&quot;layouts/left_nav_grid&quot;}\n .span3.region{&quot;data-region&quot;=&gt;&quot;left&quot;}\n .span9.region{&quot;data-region&quot;=&gt;&quot;right&quot;}\n</code></pre>\n\n<h3>Example Page Configuration</h3>\n\n<pre><code>page = new Luca.components.Page\n layout: &quot;layouts/left_nav_grid&quot;\n regions:\n left: \n type: &quot;navigation&quot;\n right:\n type: &quot;details&quot;\n</code></pre>\n","type_alias":"page","css_class_identifier":"luca-page","defines_methods":{"initialize":{"defined_on_line":26,"documentation":"<p><code>Page</code>s are typically instantiated by a <code>Luca.components.Controller</code></p>\n","arguments":[{"argument":"@options","value":"{}"}]},"assignComponentsToRegions":{"defined_on_line":33,"documentation":"<p>Takes the configuration specified in @regions\nand creates a components hash out of them.</p>\n","arguments":[]}},"defines_properties":{"layout":{"defined_on_line":53,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/page_controller.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/page_controller.coffee","type":"component_definition","class_name":"Luca.PageController","header_documentation":"","type_alias":"page_controller","css_class_identifier":"luca-page-controller","defines_methods":{},"defines_properties":{}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/pagination_control.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/pagination_control.coffee","type":"component_definition","class_name":"Luca.components.PaginationControl","header_documentation":"","type_alias":"pagination_control","css_class_identifier":"luca-pagination-control","defines_methods":{"onPageCountChange":{"defined_on_line":20,"documentation":"","arguments":[]},"limit":{"defined_on_line":23,"documentation":"","arguments":[]},"page":{"defined_on_line":26,"documentation":"","arguments":[]},"nextPage":{"defined_on_line":29,"documentation":"","arguments":[]},"previousPage":{"defined_on_line":33,"documentation":"","arguments":[]},"selectPage":{"defined_on_line":37,"documentation":"","arguments":[{"argument":"e","value":null}]},"setPage":{"defined_on_line":46,"documentation":"","arguments":[{"argument":"page","value":"1"},{"argument":"options","value":"{}"}]},"setLimit":{"defined_on_line":49,"documentation":"","arguments":[{"argument":"limit","value":"1"},{"argument":"options","value":"{}"}]},"pageButtonContainer":{"defined_on_line":52,"documentation":"","arguments":[]},"previousEnabled":{"defined_on_line":55,"documentation":"","arguments":[]},"nextEnabled":{"defined_on_line":58,"documentation":"","arguments":[]},"previousButton":{"defined_on_line":61,"documentation":"","arguments":[]},"nextButton":{"defined_on_line":64,"documentation":"","arguments":[]},"pageButtons":{"defined_on_line":67,"documentation":"","arguments":[]},"updateWithPageCount":{"defined_on_line":70,"documentation":"","arguments":[{"argument":"@pageCount","value":null},{"argument":"models","value":"[]"}]},"toggleNavigationButtons":{"defined_on_line":85,"documentation":"","arguments":[]},"selectActivePageButton":{"defined_on_line":90,"documentation":"","arguments":[]},"activePageButton":{"defined_on_line":93,"documentation":"","arguments":[]},"totalPages":{"defined_on_line":96,"documentation":"","arguments":[]},"totalItems":{"defined_on_line":99,"documentation":"","arguments":[]},"itemsPerPage":{"defined_on_line":102,"documentation":"","arguments":[{"argument":"value","value":null},{"argument":"options","value":"{}"}]}},"defines_properties":{"template":{"defined_on_line":6,"documentation":"","default":""},"stateful":{"defined_on_line":8,"documentation":"","default":""},"autoBindEventHandlers":{"defined_on_line":13,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/router.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/router.coffee","type":"component_definition","class_name":"Luca.Router","header_documentation":"<p>#_.def(&quot;Luca.Router&quot;).extends(&quot;Backbone.Router&quot;).with</p>\n","type_alias":"router","css_class_identifier":"luca-router","defines_methods":{"initialize":{"defined_on_line":8,"documentation":"","arguments":[{"argument":"@options","value":null}]},"navigate":{"defined_on_line":26,"documentation":"<p>Intercept calls to Backbone.Router.navigate so that we can at least\nbuild a path from the route, even if we don&#39;t trigger the route handler</p>\n","arguments":[{"argument":"route","value":null},{"argument":"triggerRoute","value":"false"}]},"buildPathFrom":{"defined_on_line":34,"documentation":"<p>given a url fragment, construct an argument chain similar to what would be\nemitted from a normal route:#{ name } event that gets triggered\nwhen a route is actually fired. This is used to trap route changes that happen\nthrough calls to @navigate()</p>\n","arguments":[{"argument":"matchedRoute","value":null}]}},"defines_properties":{}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/simple_collection_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/simple_collection_view.coffee","type":"component_definition","class_name":"Luca.components.SimpleCollectionView","header_documentation":"<p>The SimpleCollectionView class is a CollectionView without any of the\nbells and whistles ( filtering, pagination, sorting, etc )</p>\n","type_alias":"simple_collection_view","css_class_identifier":"luca-simple-collection-view","defines_methods":{},"defines_properties":{"filterable":{"defined_on_line":7,"documentation":"","default":""},"paginatable":{"defined_on_line":8,"documentation":"","default":""},"sortable":{"defined_on_line":9,"documentation":"","default":""},"loadMask":{"defined_on_line":10,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/table_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/table_view.coffee","type":"component_definition","class_name":"Luca.components.TableView","header_documentation":"","type_alias":"table_view","css_class_identifier":"luca-table-view","defines_methods":{"lastColumn":{"defined_on_line":21,"documentation":"","arguments":[]},"eachColumn":{"defined_on_line":24,"documentation":"","arguments":[{"argument":"fn","value":null},{"argument":"scope","value":"@"}]},"itemRenderer":{"defined_on_line":29,"documentation":"","arguments":[{"argument":"item","value":null},{"argument":"model","value":null}]},"initialize":{"defined_on_line":32,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"rowRenderer":{"defined_on_line":80,"documentation":"","arguments":[{"argument":"item","value":null},{"argument":"model","value":null},{"argument":"index","value":null}]}},"defines_properties":{"emptyText":{"defined_on_line":7,"documentation":"","default":""},"additionalClassNames":{"defined_on_line":10,"documentation":"","default":""},"tagName":{"defined_on_line":11,"documentation":"","default":""},"bodyTemplate":{"defined_on_line":12,"documentation":"","default":""},"bodyTagName":{"defined_on_line":13,"documentation":"","default":""},"bodyClassName":{"defined_on_line":14,"documentation":"","default":""},"stateful":{"defined_on_line":15,"documentation":"","default":""},"itemTagName":{"defined_on_line":16,"documentation":"","default":""},"observeChanges":{"defined_on_line":17,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/table_view_scrollable.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/components/table_view_scrollable.coffee","type":"component_definition","class_name":"Luca.components.ScrollableTable","header_documentation":"","type_alias":"scrollable_table","css_class_identifier":"luca-scrollable-table","defines_methods":{"$scrollableWrapperEl":{"defined_on_line":11,"documentation":"","arguments":[]},"setMaxHeight":{"defined_on_line":14,"documentation":"","arguments":[]},"afterRender":{"defined_on_line":18,"documentation":"","arguments":[]}},"defines_properties":{"maxHeight":{"defined_on_line":8,"documentation":"","default":""},"version":{"defined_on_line":23,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/container.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/container.coffee","type":"component_definition","class_name":"Luca.Container","header_documentation":"<p>The Luca.Container is the heart and soul of the Luca framework \nand the component driven design philosophy. The central idea\nis that every component should be designed as an isolated unit\nwhich completely encapsulates its features. It should not know about\nother components outside of it.</p>\n\n<p>It is the responsibility of a <code>Luca.Container</code> to define its \nchild <code>@components</code>, render them, and broker communication between them\nin response to events which occur in the user interface.<br>\nA common use case for this would be a page which has a filter form, and\na grid of search results. The fields in the filter form are used to \nfilter the table. Neither the form or the table know about each other, \nsince both can be used in other contexts. A <code>Luca.Container</code> would be used\nto relay events from the form to the table, and in doing so create a higher\nlevel component which can be extended and re-used. </p>\n\n<h4>Using a container to combine a Filter View and Results Table</h4>\n\n<pre><code> form = Luca.register &quot;App.views.FilterForm&quot;\n form.extends &quot;Luca.components.FormView&quot;\n form.contains\n type: &quot;text&quot;\n label: &quot;Filter by&quot;\n name: &quot;filter_text&quot;\n ,\n type: &quot;button&quot;\n className: &quot;filter&quot;\n value: &quot;Filter&quot; \n form.defines\n toolbar: false \n</code></pre>\n\n<p>Elsewhere, we have a table that lists records in a collection:</p>\n\n<pre><code> table = Luca.register &quot;App.views.ResultsTable&quot;\n table.extends &quot;Luca.components.TableView&quot;\n table.defines \n striped: true\n collection: &quot;components&quot;\n columns:[\n header: &quot;Component Class&quot;\n reader: &quot;class_name&quot;\n ,\n header: &quot;Component Type Alias&quot;\n reader: &quot;type_alias&quot;\n ]\n</code></pre>\n\n<p>We can join these two components together by declaring their relationship\nin a <code>Luca.Container</code>. Remember the components we defined above are just\nprototypes. We can override specific instance configuration and properties \nin our container.</p>\n\n<h4>Container Example</h4>\n\n<pre><code> container = Luca.register &quot;App.views.ComponentFinder&quot;\n container.extends &quot;Luca.Container&quot;\n\n # This is the same as defining a components property on the component.\n # The type alias is derived from the name of the component. It is \n # a short hand way of referencing a component you might reuse a lot.\n container.contains\n type: &quot;filter_form&quot;\n role: &quot;filter&quot;\n ,\n type: &quot;results_table&quot;\n # change the prototype&#39;s default \n striped: false\n role: &quot;results&quot;\n filterable: true\n # A Container will generally define some component event bindings\n # and handler methods to handle the communication between its sub\n # components. By default a container is able to access events\n # from all of its descendants in the hierarchy. \n container.defines\n # These will be applied to each of our components.\n defaults:\n attributes:\n &quot;data-attribute&quot;: &quot;whatever&quot;\n componentEvents:\n # Any time any of our child components emit\n # the on:change event, pass it to the filterTable method\n &quot;* on:change&quot; : &quot;filterTable&quot;\n # Communicates between the filter and the table&#39;s\n # underlying collection. NOtice the use of the @role\n # property. It automatically creates getter helpers for us.\n filterTable: ()-&gt;\n filter = @getFilter()\n results = @getResults()\n # filter.getValues() is a hash of each field and its value\n results.applyFilter( filter.getValues() )\n</code></pre>\n\n<h3>DOM Layout Configuration</h3>\n\n<p>Another responsibility of the container is to structurally layout its\nchild components in the DOM. There are a number of different \noptions available depending on how you need to do this. By default,\na <code>Luca.Container</code> will simply append the @$el of all of its views\nto its own.\nThe <code>Luca.components.Controller</code> is a container which hides every page\nbut the active page. Similarly, there is the <code>Luca.containers.TabView</code>\nwhich does the same thing, but renders a tab selector menu for you. You\ncan create any type of interface you want using containers. \nTo make this easy for you, you can do a few different things:</p>\n\n<h4>Use the Twitter Bootstrap Fluid Grid</h4>\n\n<pre><code> container = Luca.register &quot;App.views.ColumnLayout&quot; \n container.extends &quot;App.views.ComponentFinder&quot;\n container.contains\n span: 4\n type: &quot;filter_form&quot;\n role: &quot;filter&quot;\n ,\n span: 8\n type: &quot;results_table&quot;\n role: &quot;results&quot;\n container.defines\n rowFluid: true\n</code></pre>\n\n<h4>Using a layout template with CSS Selectors</h4>\n\n<pre><code> ... \n container.contains\n role: &quot;filter&quot;\n container: &quot;#filter-wrapper-dom-selector&quot;\n ,\n role: &quot;results&quot;\n container: &quot;#results-wrapper-dom-selector&quot;\n ...\n container.defines\n # assumes the template will provide the CSS selectors used above \n bodyTemplate: &quot;layouts/custom_template&quot;\n</code></pre>\n","type_alias":"container","css_class_identifier":"luca-container","defines_methods":{"initialize":{"defined_on_line":183,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"remove":{"defined_on_line":202,"documentation":"","arguments":[]},"beforeRender":{"defined_on_line":207,"documentation":"","arguments":[]},"customizeContainerEl":{"defined_on_line":216,"documentation":"<p>Components which inherit from Luca.Container can implement\ntheir own versions of this method, if they need to apply any sort\nof additional styling / configuration for the DOM elements that\nare created to wrap each container.</p>\n","arguments":[{"argument":"containerEl","value":null},{"argument":"panel","value":null},{"argument":"panelIndex","value":null}]},"prepareLayout":{"defined_on_line":219,"documentation":"","arguments":[]},"prepareComponents":{"defined_on_line":242,"documentation":"","arguments":[]},"createComponents":{"defined_on_line":285,"documentation":"<p>create components is responsible for turning the JSON syntax of the\ncontainer&#39;s definition into live objects against a given Luca Component\ntype.</p>\n\n<p>In addition to this, a container builds an index of the components\nwhich belong to it, so that they can easily be looked up by name</p>\n","arguments":[]},"renderComponents":{"defined_on_line":349,"documentation":"<p>Trigger the Rendering Pipeline process on all of the nested\ncomponents</p>\n","arguments":[{"argument":"@debugMode","value":"\"\""}]},"firstActivation":{"defined_on_line":395,"documentation":"<h3>Container Activation</h3>\n\n<p>When a container is first activated is a good time to perform\noperations which are not needed unless that component becomes\nvisible. This first activation event should be relayed to all\nof the nested components. Components which hide / display\nother components, such as a CardView or TabContainer\nwill trigger first:activation on the components as they become\ndisplayed.</p>\n","arguments":[]},"_":{"defined_on_line":405,"documentation":"<h3>Underscore Methods For Working with Components</h3>\n","arguments":[{"argument":")-> _( @components","value":null}]},"pluck":{"defined_on_line":407,"documentation":"","arguments":[{"argument":"attribute","value":null}]},"invoke":{"defined_on_line":410,"documentation":"","arguments":[{"argument":"method","value":null}]},"select":{"defined_on_line":413,"documentation":"","arguments":[{"argument":"fn","value":null}]},"detect":{"defined_on_line":416,"documentation":"","arguments":[{"argument":"fn","value":null}]},"reject":{"defined_on_line":419,"documentation":"","arguments":[{"argument":"fn","value":null}]},"map":{"defined_on_line":422,"documentation":"","arguments":[{"argument":"fn","value":null}]},"registerComponentEvents":{"defined_on_line":425,"documentation":"","arguments":[{"argument":"eventList","value":null},{"argument":"direction","value":"\"on\""}]},"subContainers":{"defined_on_line":447,"documentation":"","arguments":[]},"roles":{"defined_on_line":451,"documentation":"","arguments":[]},"allChildren":{"defined_on_line":454,"documentation":"","arguments":[]},"findComponentForEventBinding":{"defined_on_line":462,"documentation":"","arguments":[{"argument":"nameRoleOrGetter","value":null},{"argument":"deep","value":"true"}]},"findComponentByGetter":{"defined_on_line":465,"documentation":"","arguments":[{"argument":"getter","value":null},{"argument":"deep","value":"false"}]},"findComponentByRole":{"defined_on_line":469,"documentation":"","arguments":[{"argument":"role","value":null},{"argument":"deep","value":"false"}]},"findComponentByType":{"defined_on_line":473,"documentation":"","arguments":[{"argument":"desired","value":null},{"argument":"deep","value":"false"}]},"findComponentByName":{"defined_on_line":477,"documentation":"","arguments":[{"argument":"name","value":null},{"argument":"deep","value":"false"}]},"findComponentById":{"defined_on_line":481,"documentation":"","arguments":[{"argument":"id","value":null},{"argument":"deep","value":"false"}]},"findComponent":{"defined_on_line":484,"documentation":"","arguments":[{"argument":"needle","value":null},{"argument":"haystack","value":"\"name\""},{"argument":"deep","value":"false"}]},"each":{"defined_on_line":498,"documentation":"","arguments":[{"argument":"fn","value":null}]},"eachComponent":{"defined_on_line":504,"documentation":"<p>run a function for each component in this container\nand any nested containers in those components, recursively\npass false as the second argument to skip the deep recursion</p>\n","arguments":[{"argument":"fn","value":null},{"argument":"deep","value":"true"}]},"indexOf":{"defined_on_line":509,"documentation":"","arguments":[{"argument":"name","value":null}]},"activeComponent":{"defined_on_line":513,"documentation":"","arguments":[]},"componentElements":{"defined_on_line":517,"documentation":"","arguments":[]},"getComponent":{"defined_on_line":520,"documentation":"","arguments":[{"argument":"needle","value":null}]},"isRootComponent":{"defined_on_line":523,"documentation":"","arguments":[]},"getRootComponent":{"defined_on_line":526,"documentation":"","arguments":[]},"selectByAttribute":{"defined_on_line":530,"documentation":"","arguments":[{"argument":"attribute","value":null},{"argument":"value","value":"undefined"},{"argument":"deep","value":"false"}]},"at":{"defined_on_line":624,"documentation":"","arguments":[{"argument":"index","value":null}]}},"defines_properties":{"emptyContainerElements":{"defined_on_line":159,"documentation":"","default":""},"className":{"defined_on_line":160,"documentation":"","default":""},"componentTag":{"defined_on_line":161,"documentation":"","default":""},"componentClass":{"defined_on_line":162,"documentation":"","default":""},"isContainer":{"defined_on_line":163,"documentation":"","default":""},"rendered":{"defined_on_line":164,"documentation":"","default":""},"@trigger \"before":{"defined_on_line":558,"documentation":"","default":""},"@trigger \"after":{"defined_on_line":560,"documentation":"","default":""},"style_declarations.push \"height":{"defined_on_line":565,"documentation":"","default":""},"style_declarations.push \"width":{"defined_on_line":566,"documentation":"","default":""},"style_declarations.push \"float":{"defined_on_line":567,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/panel_toolbar.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/panel_toolbar.coffee","type":"component_definition","class_name":"Luca.PanelToolbar","header_documentation":"<p>The Panel Toolbar is a collection of buttons and / or dropdowns</p>\n","type_alias":"panel_toolbar","css_class_identifier":"luca-panel-toolbar","defines_methods":{"initialize":{"defined_on_line":29,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"clickHandler":{"defined_on_line":43,"documentation":"<p>The Toolbar behaves by triggering events on the components which they\nbelong to. Combined with Luca.View::setupHooks it is a clean way\nto organize actions</p>\n","arguments":[{"argument":"e","value":null}]},"beforeRender":{"defined_on_line":61,"documentation":"","arguments":[]},"render":{"defined_on_line":72,"documentation":"","arguments":[]}},"defines_properties":{"orientation":{"defined_on_line":22,"documentation":"","default":""},"autoBindEventHandlers":{"defined_on_line":24,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/tab_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/tab_view.coffee","type":"component_definition","class_name":"Luca.containers.TabView","header_documentation":"","type_alias":"tab_view","css_class_identifier":"luca-containers-tab-view","defines_methods":{"initialize":{"defined_on_line":19,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"activeTabSelector":{"defined_on_line":30,"documentation":"","arguments":[]},"beforeLayout":{"defined_on_line":33,"documentation":"","arguments":[]},"afterRender":{"defined_on_line":41,"documentation":"","arguments":[]},"createTabSelectors":{"defined_on_line":50,"documentation":"","arguments":[]},"highlightSelectedTab":{"defined_on_line":63,"documentation":"","arguments":[]},"tabSelectClickHandler":{"defined_on_line":67,"documentation":"","arguments":[{"argument":"e","value":null}]},"select":{"defined_on_line":75,"documentation":"","arguments":[{"argument":"tabName","value":"0"}]},"componentElements":{"defined_on_line":80,"documentation":"","arguments":[]},"tabContentWrapper":{"defined_on_line":83,"documentation":"","arguments":[]},"tabContainerWrapper":{"defined_on_line":86,"documentation":"","arguments":[]},"tabContainer":{"defined_on_line":89,"documentation":"","arguments":[]},"tabSelectors":{"defined_on_line":92,"documentation":"","arguments":[]},"bodyTemplateVars":{"defined_on_line":95,"documentation":"","arguments":[]}},"defines_properties":{"tab_position":{"defined_on_line":8,"documentation":"","default":""},"tabVerticalOffset":{"defined_on_line":9,"documentation":"","default":""},"additionalClassNames":{"defined_on_line":12,"documentation":"","default":""},"navClass":{"defined_on_line":13,"documentation":"","default":""},"bodyTemplate":{"defined_on_line":14,"documentation":"","default":""},"bodyClassName":{"defined_on_line":15,"documentation":"","default":""},"skipGetterMethods":{"defined_on_line":16,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/viewport.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/containers/viewport.coffee","type":"component_definition","class_name":"Luca.containers.Viewport","header_documentation":"","type_alias":"viewport","css_class_identifier":"luca-containers-viewport","defines_methods":{"initialize":{"defined_on_line":10,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"enableFluid":{"defined_on_line":21,"documentation":"","arguments":[{"argument":")-> @enableWrapper(","value":null}]},"disableFluid":{"defined_on_line":23,"documentation":"","arguments":[{"argument":")-> @disableWrapper(","value":null}]},"enableWrapper":{"defined_on_line":25,"documentation":"","arguments":[]},"disableWrapper":{"defined_on_line":29,"documentation":"","arguments":[]},"enableFullscreen":{"defined_on_line":33,"documentation":"","arguments":[]},"disableFullscreen":{"defined_on_line":37,"documentation":"","arguments":[]},"beforeRender":{"defined_on_line":41,"documentation":"","arguments":[]},"height":{"defined_on_line":50,"documentation":"","arguments":[]},"width":{"defined_on_line":53,"documentation":"","arguments":[]},"afterRender":{"defined_on_line":56,"documentation":"","arguments":[]},"renderTopNavigation":{"defined_on_line":62,"documentation":"","arguments":[]},"renderBottomNavigation":{"defined_on_line":77,"documentation":"","arguments":[]}},"defines_properties":{"fullscreen":{"defined_on_line":5,"documentation":"","default":""},"fluid":{"defined_on_line":6,"documentation":"","default":""},"applyWrapper":{"defined_on_line":8,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/core/collection_view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/core/collection_view.coffee","type":"component_definition","class_name":"Luca.components.CollectionView","header_documentation":"<p>The CollectionView handles rendering a set of models from a \ncollection</p>\n","type_alias":"collection_view","css_class_identifier":"luca-collection-view","defines_methods":{"initialize":{"defined_on_line":39,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"attributesForItem":{"defined_on_line":81,"documentation":"","arguments":[{"argument":"item","value":null},{"argument":"model","value":null}]},"contentForItem":{"defined_on_line":84,"documentation":"","arguments":[{"argument":"item","value":"{}"}]},"makeItem":{"defined_on_line":96,"documentation":"","arguments":[{"argument":"model","value":null},{"argument":"index","value":null}]},"locateItemElement":{"defined_on_line":108,"documentation":"","arguments":[{"argument":"id","value":null}]},"refreshModel":{"defined_on_line":111,"documentation":"","arguments":[{"argument":"model","value":null}]},"refresh":{"defined_on_line":116,"documentation":"","arguments":[{"argument":"query","value":null},{"argument":"options","value":null},{"argument":"models","value":null}]},"registerEvent":{"defined_on_line":139,"documentation":"","arguments":[{"argument":"domEvent","value":null},{"argument":"selector","value":null},{"argument":"handler","value":null}]}},"defines_properties":{"tagName":{"defined_on_line":30,"documentation":"","default":""},"bodyClassName":{"defined_on_line":31,"documentation":"","default":""},"itemTagName":{"defined_on_line":32,"documentation":"","default":""},"itemClassName":{"defined_on_line":33,"documentation":"","default":""},"itemTemplate":{"defined_on_line":34,"documentation":"","default":""},"itemRenderer":{"defined_on_line":35,"documentation":"","default":""},"itemProperty":{"defined_on_line":36,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/core/panel.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/core/panel.coffee","type":"component_definition","class_name":"Luca.Panel","header_documentation":"<p>Luca.Panel is a low level Luca.View component which is used \nto build components which have toolbar areas, and a body area for the main\ncontents of the view.</p>\n","type_alias":"panel","css_class_identifier":"luca-panel","defines_methods":{"applyStyles":{"defined_on_line":18,"documentation":"","arguments":[{"argument":"styles","value":"{}"},{"argument":"body","value":"false"}]},"$bodyEl":{"defined_on_line":27,"documentation":"","arguments":[]},"$wrap":{"defined_on_line":44,"documentation":"","arguments":[]},"$template":{"defined_on_line":50,"documentation":"","arguments":[]},"$empty":{"defined_on_line":53,"documentation":"","arguments":[]},"$html":{"defined_on_line":56,"documentation":"","arguments":[]},"$append":{"defined_on_line":59,"documentation":"","arguments":[]},"beforeRender":{"defined_on_line":63,"documentation":"","arguments":[]},"renderToolbars":{"defined_on_line":69,"documentation":"","arguments":[]},"renderToolbar":{"defined_on_line":74,"documentation":"","arguments":[{"argument":"orientation","value":"\"top\""},{"argument":"config","value":"{}"}]},"attachToolbar":{"defined_on_line":83,"documentation":"","arguments":[{"argument":"config","value":"{}"},{"argument":"targetEl","value":null}]}},"defines_properties":{"topToolbar":{"defined_on_line":11,"documentation":"","default":""},"bottomToolbar":{"defined_on_line":12,"documentation":"","default":""},"version":{"defined_on_line":124,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/core/view.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/core/view.coffee","type":"component_definition","class_name":"Luca.View","header_documentation":"<p><code>Luca.View</code> is an enhanced <code>Backbone.View</code> which provides common patterns for view components,\nand various helper methods and configuration conventions.</p>\n\n<h4>Instance caching / naming</h4>\n\n<p>If you provide a <code>@name</code> property to your views, they will be accessible by that property\nusing the Application helper.<br>\n view = new Luca.View(name:&quot;my<em>view&quot;)\n Luca(&quot;my</em>view&quot;) === view</p>\n\n<h4>CSS @className conventions</h4>\n\n<p>In order to make it easier to componentize your views, extending from <code>Luca.View</code> will\nenable CSS class based inheritance based on the names of the view class.</p>\n\n<h5>For Example:</h5>\n\n<pre><code> base = Luca.register &quot;App.views.BaseViewClass&quot;\n base.extends &quot;Luca.View&quot;\n base.defines\n className: &quot;some-other-class&quot;\n child = Luca.register &quot;App.views.ChildViewClass&quot;\n child.extends &quot;App.views.BaseViewClass&quot;\n child.defines\n myClasses: ()-&gt;\n @$el.attr(&#39;class&#39;) \n\nview = new App.views.ChildViewClass()\nview.myClasses() #=&gt; &quot;app-base-view-class app-child-view-class some-other-class&quot;\n</code></pre>\n\n<p>This establishes a convention for css class names, and allows you to componetize your css\nalong with the component by joining them based on the name of your view class. When using\nSass scoping / nesting it fits very nicely together.</p>\n\n<h4>Internal state machine</h4>\n\n<p>Any <code>Luca.View</code> class which defines a <code>@stateful</code> property will automatically generate a\n<code>@state</code> model that can be used to get/set attributes on the view as well as bind to change events on these attributes. </p>\n\n<p>This gives your views a dedicated place to store state, and you can bind to your data models separately\nand update the DOM without confusing the two. </p>\n\n<pre><code> statefulView = Luca.register &quot;App.views.StatefulView&quot;\n statefulView.extends &quot;Luca.View&quot;\n statefulView.defines\n # Passing an object allows you to set default values on the @state model.\n stateful:\n attribute: &quot;value&quot;\n # Whenever the attribute specified changes, call the specified method.\n stateChangeEvents:\n &quot;attribute&quot; : &quot;onAttributeChange&quot;\n\n onAttributeChange: (stateMachine, attributeValue)-&gt;\n @doSomethingWhenAttributeChanges()\n</code></pre>\n\n<p>If this type of declarative style isn&#39;t your thing, you can still bind to events in code:</p>\n\n<pre><code> view = new App.views.StatefulView()\n view.on &quot;state:change:attribute&quot;, (stateMachine, attributeValue)=&gt; @$el.html(&quot;New Attribute: #&quot;)\n view.set &quot;attribute&quot;, &quot;something&quot;\n</code></pre>\n\n<h4>Event binding helpers</h4>\n\n<p>In addition to the <code>@stateChangeEvent</code> bindings documented above, you have available\nto you similar configuration helpers for binding to events emitted by the singletons:\n- <code>Luca.Application</code> via <code>@applicationEvents</code> \n- <code>Luca.CollectionManager</code> via <code>@collectionEvents</code>\n- <code>Luca.SocketManager</code> via <code>@socketEvents</code></p>\n","type_alias":"view","css_class_identifier":"luca-view","defines_methods":{"identifier":{"defined_on_line":149,"documentation":"","arguments":[]},"remove":{"defined_on_line":154,"documentation":"<p>Calls Backbone.View::remove, and removes the view from the\ninstance cache. Triggers a &quot;before:remove&quot; event.</p>\n","arguments":[]},"initialize":{"defined_on_line":159,"documentation":"","arguments":[{"argument":"@options","value":"{}"}]},"debug":{"defined_on_line":188,"documentation":"","arguments":[{"argument":"args...","value":null}]},"trigger":{"defined_on_line":193,"documentation":"","arguments":[]},"registerEvent":{"defined_on_line":203,"documentation":"","arguments":[{"argument":"selector","value":null},{"argument":"handler","value":null}]},"definitionClass":{"defined_on_line":216,"documentation":"<p>Returns a reference to the class which this view is an instance of.</p>\n","arguments":[]},"_collections":{"defined_on_line":220,"documentation":"<p>Returns a list of all of the collections which are properties on this view.</p>\n","arguments":[]},"_models":{"defined_on_line":224,"documentation":"<p>Returns a list of all of the models which are properties on this view.</p>\n","arguments":[]},"_views":{"defined_on_line":228,"documentation":"<p>Returns a list of all of the views which are properties on this view.</p>\n","arguments":[]},"legacy":{"defined_on_line":258,"documentation":"","arguments":[{"argument":"_userSpecifiedMethod","value":null}]},"improved":{"defined_on_line":298,"documentation":"","arguments":[{"argument":"_userSpecifiedMethod","value":null}]}},"defines_properties":{"name":{"defined_on_line":111,"documentation":"<p>Specifying a <code>@name</code> for your views is useful for views which\nthere will only be one instance. This allows you to reference\nthe view instances by name using the application helper:\nLuca(&quot;my<em>view</em>name&quot;)</p>\n","default":""},"autoBindEventHandlers":{"defined_on_line":137,"documentation":"<p>Setting this property to true will automatically bind the context\nof your event handler methods to the instance of this view. This\nsaves you from having to manually do:</p>\n\n<p>Luca.View.extend\nevents:\n&quot;click .one&quot; : &quot;oneHandler&quot;\n&quot;click .two&quot; : &quot;twoHandler&quot;\ninitialize: ()-&gt;\n_.bindAll(@, &quot;oneHandler&quot;, &quot;twoHandler&quot;)</p>\n\n<p>Instead:</p>\n\n<p>Luca.View.extend\nautoBindEventHandlers: true\nevents:\n&quot;click .one&quot; : &quot;oneHandler&quot;</p>\n\n<p>Optionally, you can define an array of method names you want bound\nto this view:</p>\n\n<p>Luca.View.extend\nbindMethods:[&quot;oneHandler&quot;,&quot;twoHandler&quot;]</p>\n","default":""},"_events":{"defined_on_line":143,"documentation":"<p>Supplying configuration to <code>@_events</code> will ensure that this configuration\nis present on views which extend from this view. In normal Backbone behavior\nthe <code>@events</code> property can be overridden by views which extend, and this isn&#39;t\nalways what you want from your component.</p>\n","default":""},"setupHooks":{"defined_on_line":242,"documentation":"<p>views which inherit from Luca.View can define hooks\nor events which can be emitted from them. Automatically,\nany functions on the view which are named according to the\nconvention will automatically get run.</p>\n\n<p>by default, all Luca.View classes come with the following:</p>\n\n<ul>\n<li>before:render : beforeRender()</li>\n<li>after:render : afterRender()</li>\n<li>after:initialize : afterInitialize()</li>\n<li>first:activation : firstActivation()</li>\n</ul>\n","default":""},"_userSpecifiedMethod ||= ()-> @trigger \"empty":{"defined_on_line":325,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/development/code_sync_manager.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/development/code_sync_manager.coffee","type":"component_definition","class_name":"Luca.CodeSyncManager","header_documentation":"","type_alias":"code_sync_manager","css_class_identifier":"luca-code-sync-manager","defines_methods":{"setup":{"defined_on_line":10,"documentation":"","arguments":[{"argument":"options","value":"{}"}]},"initialize":{"defined_on_line":15,"documentation":"","arguments":[{"argument":"@attributes","value":"{}"}]},"bindToChannel":{"defined_on_line":22,"documentation":"","arguments":[]},"onChangesNotification":{"defined_on_line":34,"documentation":"<p>changeData is a payload that gets sent over the socket\nwhenever an asset that is being watched changes.\nit is different if the type of file is css or javascript.</p>\n","arguments":[{"argument":"changeData","value":"{}"},{"argument":"applicationName","value":null}]},"rerunSyncPad":{"defined_on_line":56,"documentation":"","arguments":[]},"processTemplate":{"defined_on_line":60,"documentation":"","arguments":[{"argument":"change","value":"{}"}]},"processComponentDefinitionChange":{"defined_on_line":66,"documentation":"","arguments":[{"argument":"change","value":"{}"}]},"processJavascriptChange":{"defined_on_line":76,"documentation":"","arguments":[{"argument":"change","value":"{}"}]},"processStylesheetChange":{"defined_on_line":90,"documentation":"","arguments":[{"argument":"change","value":"{}"}]},"replaceStylesheetAndEverythingAfter":{"defined_on_line":98,"documentation":"","arguments":[{"argument":"path","value":null}]},"syncStylesheet":{"defined_on_line":115,"documentation":"","arguments":[{"argument":"change","value":null}]}},"defines_properties":{"host":{"defined_on_line":5,"documentation":"","default":""},"namespace":{"defined_on_line":6,"documentation":"","default":""},"channel":{"defined_on_line":7,"documentation":"","default":""},"make":{"defined_on_line":126,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/development/component.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/development/component.coffee","type":"component_definition","class_name":"Luca.models.Component","header_documentation":"","type_alias":"component","css_class_identifier":"","defines_methods":{"documentation":{"defined_on_line":15,"documentation":"","arguments":[]},"documentationFor":{"defined_on_line":28,"documentation":"","arguments":[{"argument":"methodOrPropertyGroup","value":"\"publicMethods\""}]},"url":{"defined_on_line":41,"documentation":"","arguments":[]},"metaData":{"defined_on_line":44,"documentation":"","arguments":[]},"classNameId":{"defined_on_line":47,"documentation":"","arguments":[]},"componentGroup":{"defined_on_line":50,"documentation":"","arguments":[]},"componentType":{"defined_on_line":54,"documentation":"","arguments":[]},"componentTypeAlias":{"defined_on_line":73,"documentation":"","arguments":[]}},"defines_properties":{"idAttribute":{"defined_on_line":13,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/development/components.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/development/components.coffee","type":"component_definition","class_name":"Luca.collections.Components","header_documentation":"","type_alias":"components","css_class_identifier":"","defines_methods":{"generate":{"defined_on_line":9,"documentation":"","arguments":[]},"findByClassName":{"defined_on_line":15,"documentation":"","arguments":[{"argument":"class_name","value":null}]},"filterByNamespace":{"defined_on_line":19,"documentation":"","arguments":[{"argument":"namespace","value":null}]},"classNames":{"defined_on_line":23,"documentation":"","arguments":[]},"groupsInsideOf":{"defined_on_line":26,"documentation":"","arguments":[{"argument":"namespace","value":null}]},"namespaces":{"defined_on_line":36,"documentation":"","arguments":[]},"fetch":{"defined_on_line":42,"documentation":"","arguments":[{"argument":"options","value":"{}"}]},"comparator":{"defined_on_line":45,"documentation":"","arguments":[{"argument":"model","value":null}]},"populateFromRegistry":{"defined_on_line":48,"documentation":"","arguments":[{"argument":"options","value":"{}"}]}},"defines_properties":{"model":{"defined_on_line":5,"documentation":"","default":""},"namespace":{"defined_on_line":6,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/development/console.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/development/console.coffee","type":"component_definition","class_name":"Luca.tools.DevelopmentConsole","header_documentation":"","type_alias":"development_console","css_class_identifier":"luca-tools-development-console","defines_methods":{"afterRender":{"defined_on_line":59,"documentation":"","arguments":[]},"show":{"defined_on_line":66,"documentation":"","arguments":[{"argument":"options","value":"{}"}]},"getContext":{"defined_on_line":70,"documentation":"","arguments":[]},"initialize":{"defined_on_line":73,"documentation":"","arguments":[]},"saveHistory":{"defined_on_line":77,"documentation":"","arguments":[{"argument":"command","value":null}]},"historyUp":{"defined_on_line":81,"documentation":"","arguments":[]},"historyDown":{"defined_on_line":88,"documentation":"","arguments":[]},"append":{"defined_on_line":96,"documentation":"","arguments":[{"argument":"code","value":null},{"argument":"result","value":null},{"argument":"skipFormatting","value":"false"}]},"onSuccess":{"defined_on_line":110,"documentation":"","arguments":[{"argument":"result","value":null},{"argument":"js","value":null},{"argument":"coffee","value":null}]},"onError":{"defined_on_line":122,"documentation":"","arguments":[{"argument":"error","value":null},{"argument":"js","value":null},{"argument":"coffee","value":null}]},"evaluateCode":{"defined_on_line":125,"documentation":"","arguments":[{"argument":"code","value":null},{"argument":"raw","value":null}]},"runCommand":{"defined_on_line":165,"documentation":"","arguments":[]}},"defines_properties":{"className":{"defined_on_line":6,"documentation":"","default":""},"name":{"defined_on_line":7,"documentation":"","default":""},"historyIndex":{"defined_on_line":9,"documentation":"","default":""},"width":{"defined_on_line":10,"documentation":"","default":""}}},{"source":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/managers/socket_manager.coffee","defined_in_file":"/Users/jonathan/Projects/luca/app/assets/javascripts/luca/managers/socket_manager.coffee","type":"component_definition","class_name":"Luca.SocketManager","header_documentation":"<p>The SocketManager provides communication between a Websocket / Pubsub\nsystem and routes messages through the application to instances\nof a specific view, model, collection, or other Backbone.Events object. \nYou will need to create the socket manager specifying your provider and host:\n @socket = new Luca.SocketManager(host:&quot;//localhost:9292/faye&quot;)</p>\n","type_alias":"socket_manager","css_class_identifier":"","defines_methods":{"initialize":{"defined_on_line":24,"documentation":"","arguments":[{"argument":"@attributes","value":"{}"}]},"isReady":{"defined_on_line":50,"documentation":"<p>The socket manager is ready once &#39;ready&#39; event has been\ntriggered on it. ( usually by the application ). and once\nthe provider client library as been loaded.</p>\n","arguments":[]},"providerLibraryIsAvailable":{"defined_on_line":53,"documentation":"","arguments":[]},"connect":{"defined_on_line":62,"documentation":"","arguments":[]},"providerSourceLoaded":{"defined_on_line":70,"documentation":"","arguments":[]},"providerSourceUrl":{"defined_on_line":73,"documentation":"","arguments":[]},"loadProviderSource":{"defined_on_line":78,"documentation":"","arguments":[]}},"defines_properties":{}}];