99 lines
19 KiB
HTML
99 lines
19 KiB
HTML
<!DOCTYPE html> <html> <head> <title>widget.fields.js</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To … <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="backend.couchdb.html"> backend.couchdb.js </a> <a class="source" href="backend.csv.html"> backend.csv.js </a> <a class="source" href="backend.dataproxy.html"> backend.dataproxy.js </a> <a class="source" href="backend.elasticsearch.html"> backend.elasticsearch.js </a> <a class="source" href="backend.gdocs.html"> backend.gdocs.js </a> <a class="source" href="backend.memory.html"> backend.memory.js </a> <a class="source" href="backend.solr.html"> backend.solr.js </a> <a class="source" href="data.transform.html"> data.transform.js </a> <a class="source" href="model.html"> model.js </a> <a class="source" href="view.graph.html"> view.graph.js </a> <a class="source" href="view.grid.html"> view.grid.js </a> <a class="source" href="view.map.html"> view.map.js </a> <a class="source" href="view.multiview.html"> view.multiview.js </a> <a class="source" href="view.slickgrid.html"> view.slickgrid.js </a> <a class="source" href="view.timeline.html"> view.timeline.js </a> <a class="source" href="view.transform.html"> view.transform.js </a> <a class="source" href="widget.facetviewer.html"> widget.facetviewer.js </a> <a class="source" href="widget.fields.html"> widget.fields.js </a> <a class="source" href="widget.filtereditor.html"> widget.filtereditor.js </a> <a class="source" href="widget.pager.html"> widget.pager.js </a> <a class="source" href="widget.queryeditor.html"> widget.queryeditor.js </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> widget.fields.js </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">¶</a> </div> </td> <td class="code"> <div class="highlight"><pre><span class="cm">/*jshint multistr:true */</span></pre></div> </td> </tr> <tr id="section-2"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-2">¶</a> </div> <p>Field Info</p>
|
|
|
|
<p>For each field</p>
|
|
|
|
<p>Id / Label / type / format</p> </td> <td class="code"> <div class="highlight"><pre></pre></div> </td> </tr> <tr id="section-3"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-3">¶</a> </div> <p>Editor -- to change type (and possibly format)
|
|
Editor for show/hide ...</p> </td> <td class="code"> <div class="highlight"><pre></pre></div> </td> </tr> <tr id="section-4"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-4">¶</a> </div> <p>Summaries of fields</p>
|
|
|
|
<p>Top values / number empty
|
|
If number: max, min average ...</p> </td> <td class="code"> <div class="highlight"><pre></pre></div> </td> </tr> <tr id="section-5"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-5">¶</a> </div> <p>Box to boot transform editor ...</p> </td> <td class="code"> <div class="highlight"><pre><span class="k">this</span><span class="p">.</span><span class="nx">recline</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">recline</span> <span class="o">||</span> <span class="p">{};</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">recline</span><span class="p">.</span><span class="nx">View</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">recline</span><span class="p">.</span><span class="nx">View</span> <span class="o">||</span> <span class="p">{};</span>
|
|
|
|
<span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">$</span><span class="p">,</span> <span class="nx">my</span><span class="p">)</span> <span class="p">{</span>
|
|
|
|
<span class="nx">my</span><span class="p">.</span><span class="nx">Fields</span> <span class="o">=</span> <span class="nx">Backbone</span><span class="p">.</span><span class="nx">View</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
|
|
<span class="nx">className</span><span class="o">:</span> <span class="s1">'recline-fields-view'</span><span class="p">,</span>
|
|
<span class="nx">template</span><span class="o">:</span> <span class="s1">' \</span>
|
|
<span class="s1"> <div class="accordion fields-list well"> \</span>
|
|
<span class="s1"> <h3>Fields <a href="#" class="js-show-hide">+</a></h3> \</span>
|
|
<span class="s1"> {{#fields}} \</span>
|
|
<span class="s1"> <div class="accordion-group field"> \</span>
|
|
<span class="s1"> <div class="accordion-heading"> \</span>
|
|
<span class="s1"> <i class="icon-file"></i> \</span>
|
|
<span class="s1"> <h4> \</span>
|
|
<span class="s1"> {{label}} \</span>
|
|
<span class="s1"> <small> \</span>
|
|
<span class="s1"> {{type}} \</span>
|
|
<span class="s1"> <a class="accordion-toggle" data-toggle="collapse" href="#collapse{{id}}"> &raquo; </a> \</span>
|
|
<span class="s1"> </small> \</span>
|
|
<span class="s1"> </h4> \</span>
|
|
<span class="s1"> </div> \</span>
|
|
<span class="s1"> <div id="collapse{{id}}" class="accordion-body collapse in"> \</span>
|
|
<span class="s1"> <div class="accordion-inner"> \</span>
|
|
<span class="s1"> {{#facets}} \</span>
|
|
<span class="s1"> <div class="facet-summary" data-facet="{{id}}"> \</span>
|
|
<span class="s1"> <ul class="facet-items"> \</span>
|
|
<span class="s1"> {{#terms}} \</span>
|
|
<span class="s1"> <li class="facet-item"><span class="term">{{term}}</span> <span class="count">[{{count}}]</span></li> \</span>
|
|
<span class="s1"> {{/terms}} \</span>
|
|
<span class="s1"> </ul> \</span>
|
|
<span class="s1"> </div> \</span>
|
|
<span class="s1"> {{/facets}} \</span>
|
|
<span class="s1"> <div class="clear"></div> \</span>
|
|
<span class="s1"> </div> \</span>
|
|
<span class="s1"> </div> \</span>
|
|
<span class="s1"> </div> \</span>
|
|
<span class="s1"> {{/fields}} \</span>
|
|
<span class="s1"> </div> \</span>
|
|
<span class="s1"> '</span><span class="p">,</span>
|
|
|
|
<span class="nx">events</span><span class="o">:</span> <span class="p">{</span>
|
|
<span class="s1">'click .js-show-hide'</span><span class="o">:</span> <span class="s1">'onShowHide'</span>
|
|
<span class="p">},</span>
|
|
<span class="nx">initialize</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">model</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">el</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">);</span>
|
|
<span class="nx">_</span><span class="p">.</span><span class="nx">bindAll</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'render'</span><span class="p">);</span></pre></div> </td> </tr> <tr id="section-6"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-6">¶</a> </div> <p>TODO: this is quite restrictive in terms of when it is re-run
|
|
e.g. a change in type will not trigger a re-run atm.
|
|
being more liberal (e.g. binding to all) can lead to being called a lot (e.g. for change:width)</p> </td> <td class="code"> <div class="highlight"><pre> <span class="k">this</span><span class="p">.</span><span class="nx">model</span><span class="p">.</span><span class="nx">fields</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="s1">'reset'</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">action</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">self</span><span class="p">.</span><span class="nx">model</span><span class="p">.</span><span class="nx">fields</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">field</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">field</span><span class="p">.</span><span class="nx">facets</span><span class="p">.</span><span class="nx">unbind</span><span class="p">(</span><span class="s1">'all'</span><span class="p">,</span> <span class="nx">self</span><span class="p">.</span><span class="nx">render</span><span class="p">);</span>
|
|
<span class="nx">field</span><span class="p">.</span><span class="nx">facets</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="s1">'all'</span><span class="p">,</span> <span class="nx">self</span><span class="p">.</span><span class="nx">render</span><span class="p">);</span>
|
|
<span class="p">});</span></pre></div> </td> </tr> <tr id="section-7"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-7">¶</a> </div> <p>fields can get reset or changed in which case we need to recalculate</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">self</span><span class="p">.</span><span class="nx">model</span><span class="p">.</span><span class="nx">getFieldsSummary</span><span class="p">();</span>
|
|
<span class="nx">self</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span>
|
|
<span class="p">});</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">render</span><span class="p">();</span>
|
|
<span class="p">},</span>
|
|
<span class="nx">render</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">self</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
|
|
<span class="kd">var</span> <span class="nx">tmplData</span> <span class="o">=</span> <span class="p">{</span>
|
|
<span class="nx">fields</span><span class="o">:</span> <span class="p">[]</span>
|
|
<span class="p">};</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">model</span><span class="p">.</span><span class="nx">fields</span><span class="p">.</span><span class="nx">each</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">field</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">var</span> <span class="nx">out</span> <span class="o">=</span> <span class="nx">field</span><span class="p">.</span><span class="nx">toJSON</span><span class="p">();</span>
|
|
<span class="nx">out</span><span class="p">.</span><span class="nx">facets</span> <span class="o">=</span> <span class="nx">field</span><span class="p">.</span><span class="nx">facets</span><span class="p">.</span><span class="nx">toJSON</span><span class="p">();</span>
|
|
<span class="nx">tmplData</span><span class="p">.</span><span class="nx">fields</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">out</span><span class="p">);</span>
|
|
<span class="p">});</span>
|
|
<span class="kd">var</span> <span class="nx">templated</span> <span class="o">=</span> <span class="nx">Mustache</span><span class="p">.</span><span class="nx">render</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">template</span><span class="p">,</span> <span class="nx">tmplData</span><span class="p">);</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">html</span><span class="p">(</span><span class="nx">templated</span><span class="p">);</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">find</span><span class="p">(</span><span class="s1">'.collapse'</span><span class="p">).</span><span class="nx">collapse</span><span class="p">(</span><span class="s1">'hide'</span><span class="p">);</span>
|
|
<span class="p">},</span>
|
|
<span class="nx">onShowHide</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="nx">e</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span>
|
|
<span class="kd">var</span> <span class="nx">$target</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">target</span><span class="p">);</span></pre></div> </td> </tr> <tr id="section-8"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-8">¶</a> </div> <p>weird collapse class seems to have been removed (can watch this happen
|
|
if you watch dom) but could not work why. Absence of collapse then meant
|
|
we could not toggle.
|
|
This seems to fix the problem.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">find</span><span class="p">(</span><span class="s1">'.accordion-body'</span><span class="p">).</span><span class="nx">addClass</span><span class="p">(</span><span class="s1">'collapse'</span><span class="p">);;</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="nx">$target</span><span class="p">.</span><span class="nx">text</span><span class="p">()</span> <span class="o">===</span> <span class="s1">'+'</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">find</span><span class="p">(</span><span class="s1">'.collapse'</span><span class="p">).</span><span class="nx">collapse</span><span class="p">(</span><span class="s1">'show'</span><span class="p">);</span>
|
|
<span class="nx">$target</span><span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="s1">'-'</span><span class="p">);</span>
|
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="nx">el</span><span class="p">.</span><span class="nx">find</span><span class="p">(</span><span class="s1">'.collapse'</span><span class="p">).</span><span class="nx">collapse</span><span class="p">(</span><span class="s1">'hide'</span><span class="p">);</span>
|
|
<span class="nx">$target</span><span class="p">.</span><span class="nx">text</span><span class="p">(</span><span class="s1">'+'</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="p">});</span>
|
|
|
|
<span class="p">})(</span><span class="nx">jQuery</span><span class="p">,</span> <span class="nx">recline</span><span class="p">.</span><span class="nx">View</span><span class="p">);</span>
|
|
|
|
</pre></div> </td> </tr> </tbody> </table> </div> </body> </html> |