<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>TabHelper</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" href="../css/reset.css" type="text/css" media="screen" /> <link rel="stylesheet" href="../css/main.css" type="text/css" media="screen" /> <link rel="stylesheet" href="../css/github.css" type="text/css" media="screen" /> <script src="../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script> <script src="../js/jquery-effect.js" type="text/javascript" charset="utf-8"></script> <script src="../js/main.js" type="text/javascript" charset="utf-8"></script> <script src="../js/highlight.pack.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div class="banner"> <h1> <span class="type">Module</span> TabHelper </h1> <ul class="files"> <li><a href="../files/app/helpers/tab_helper_rb.html">app/helpers/tab_helper.rb</a></li> </ul> </div> <div id="bodyContent"> <div id="content"> <!-- Method ref --> <div class="sectiontitle">Methods</div> <dl class="methods"> <dt>B</dt> <dd> <ul> <li> <a href="#method-i-branches_tab_class">branches_tab_class</a> </li> </ul> </dd> <dt>N</dt> <dd> <ul> <li> <a href="#method-i-nav_link">nav_link</a>, </li> <li> <a href="#method-i-nav_tab">nav_tab</a> </li> </ul> </dd> <dt>P</dt> <dd> <ul> <li> <a href="#method-i-project_tab_class">project_tab_class</a> </li> </ul> </dd> </dl> <!-- Methods --> <div class="sectiontitle">Instance Public methods</div> <div class="method"> <div class="title method-title" id="method-i-branches_tab_class"> <b>branches_tab_class</b>() <a href="../classes/TabHelper.html#method-i-branches_tab_class" name="method-i-branches_tab_class" class="permalink">Link</a> </div> <div class="description"> </div> <div class="sourcecode"> <p class="source-link"> Source: <a href="javascript:toggleSource('method-i-branches_tab_class_source')" id="l_method-i-branches_tab_class_source">show</a> </p> <div id="method-i-branches_tab_class_source" class="dyn-source"> <pre><span class="ruby-comment"># File app/helpers/tab_helper.rb, line 80</span> <span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">branches_tab_class</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">current_page?</span>(<span class="ruby-identifier">branches_project_repository_path</span>(<span class="ruby-ivar">@project</span>)) <span class="ruby-operator">||</span> <span class="ruby-identifier">current_controller?</span>(<span class="ruby-value">:protected_branches</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">current_page?</span>(<span class="ruby-identifier">project_repository_path</span>(<span class="ruby-ivar">@project</span>)) <span class="ruby-string">'active'</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div> </div> </div> <div class="method"> <div class="title method-title" id="method-i-nav_link"> <b>nav_link</b>(options = {}, &block) <a href="../classes/TabHelper.html#method-i-nav_link" name="method-i-nav_link" class="permalink">Link</a> </div> <div class="description"> <p>Navigation link helper</p> <p>Returns an `li` element with an ‘active’ class if the supplied controller(s) and/or action(s) are currently active. The content of the element is the value passed to the block.</p> <p>options - The options hash used to determine if the element is “active” (default: {})</p> <pre>:controller - One or more controller names to check (optional). :action - One or more action names to check (optional). :path - A shorthand path, such as 'dashboard#index', to check (optional). :html_options - Extra options to be passed to the list element (optional).</pre> <p>block - An optional block that will become the contents of the returned</p> <pre>`li` element.</pre> <p>When both :controller and :action are specified, BOTH must match in order to be marked as active. When only one is given, either can match.</p> <p>Examples</p> <pre class="ruby"><span class="ruby-comment"># Assuming we're on TreeController#show</span> <span class="ruby-comment"># Controller matches, but action doesn't</span> <span class="ruby-identifier">nav_link</span>(<span class="ruby-identifier">controller</span><span class="ruby-operator">:</span> [:<span class="ruby-identifier">tree</span>, :<span class="ruby-identifier">refs</span>], <span class="ruby-identifier">action</span><span class="ruby-operator">:</span> :<span class="ruby-identifier">edit</span>) { <span class="ruby-string">"Hello"</span> } <span class="ruby-comment"># => '<li>Hello</li>'</span> <span class="ruby-comment"># Controller matches</span> <span class="ruby-identifier">nav_link</span>(<span class="ruby-identifier">controller</span><span class="ruby-operator">:</span> [:<span class="ruby-identifier">tree</span>, :<span class="ruby-identifier">refs</span>]) { <span class="ruby-string">"Hello"</span> } <span class="ruby-comment"># => '<li class="active">Hello</li>'</span> <span class="ruby-comment"># Shorthand path</span> <span class="ruby-identifier">nav_link</span>(<span class="ruby-identifier">path</span><span class="ruby-operator">:</span> <span class="ruby-string">'tree#show'</span>) { <span class="ruby-string">"Hello"</span> } <span class="ruby-comment"># => '<li class="active">Hello</li>'</span> <span class="ruby-comment"># Supplying custom options for the list element</span> <span class="ruby-identifier">nav_link</span>(<span class="ruby-identifier">controller</span><span class="ruby-operator">:</span> :<span class="ruby-identifier">tree</span>, <span class="ruby-identifier">html_options</span><span class="ruby-operator">:</span> {<span class="ruby-keyword">class</span><span class="ruby-operator">:</span> <span class="ruby-string">'home'</span>}) { <span class="ruby-string">"Hello"</span> } <span class="ruby-comment"># => '<li class="home active">Hello</li>'</span> </pre> <p>Returns a list item element String</p> </div> <div class="sourcecode"> <p class="source-link"> Source: <a href="javascript:toggleSource('method-i-nav_link_source')" id="l_method-i-nav_link_source">show</a> </p> <div id="method-i-nav_link_source" class="dyn-source"> <pre><span class="ruby-comment"># File app/helpers/tab_helper.rb, line 40</span> <span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">nav_link</span>(<span class="ruby-identifier">options</span> = {}, &<span class="ruby-identifier">block</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">path</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:path</span>) <span class="ruby-identifier">c</span>, <span class="ruby-identifier">a</span>, <span class="ruby-identifier">_</span> = <span class="ruby-identifier">path</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">'#'</span>) <span class="ruby-keyword">else</span> <span class="ruby-identifier">c</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:controller</span>) <span class="ruby-identifier">a</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:action</span>) <span class="ruby-keyword">end</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">c</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">a</span> <span class="ruby-comment"># When given both options, make sure BOTH are active</span> <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">current_controller?</span>(*<span class="ruby-identifier">c</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">current_action?</span>(*<span class="ruby-identifier">a</span>) <span class="ruby-operator">?</span> <span class="ruby-string">'active'</span> <span class="ruby-operator">:</span> <span class="ruby-string">''</span> <span class="ruby-keyword">else</span> <span class="ruby-comment"># Otherwise check EITHER option</span> <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">current_controller?</span>(*<span class="ruby-identifier">c</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">current_action?</span>(*<span class="ruby-identifier">a</span>) <span class="ruby-operator">?</span> <span class="ruby-string">'active'</span> <span class="ruby-operator">:</span> <span class="ruby-string">''</span> <span class="ruby-keyword">end</span> <span class="ruby-comment"># Add our custom class into the html_options, which may or may not exist</span> <span class="ruby-comment"># and which may or may not already have a :class key</span> <span class="ruby-identifier">o</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:html_options</span>) <span class="ruby-operator">||</span> {} <span class="ruby-identifier">o</span>[<span class="ruby-value">:class</span>] <span class="ruby-operator">||=</span> <span class="ruby-string">''</span> <span class="ruby-identifier">o</span>[<span class="ruby-value">:class</span>] <span class="ruby-operator">+=</span> <span class="ruby-string">' '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">klass</span> <span class="ruby-identifier">o</span>[<span class="ruby-value">:class</span>].<span class="ruby-identifier">strip!</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span> <span class="ruby-identifier">content_tag</span>(<span class="ruby-value">:li</span>, <span class="ruby-identifier">capture</span>(&<span class="ruby-identifier">block</span>), <span class="ruby-identifier">o</span>) <span class="ruby-keyword">else</span> <span class="ruby-identifier">content_tag</span>(<span class="ruby-value">:li</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">o</span>) <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div> </div> </div> <div class="method"> <div class="title method-title" id="method-i-nav_tab"> <b>nav_tab</b>(key, value, &block) <a href="../classes/TabHelper.html#method-i-nav_tab" name="method-i-nav_tab" class="permalink">Link</a> </div> <div class="description"> <p>Use <a href="TabHelper.html#method-i-nav_tab">#nav_tab</a> for save controller/action but different params</p> </div> <div class="sourcecode"> <p class="source-link"> Source: <a href="javascript:toggleSource('method-i-nav_tab_source')" id="l_method-i-nav_tab_source">show</a> </p> <div id="method-i-nav_tab_source" class="dyn-source"> <pre><span class="ruby-comment"># File app/helpers/tab_helper.rb, line 89</span> <span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">nav_tab</span> <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>, &<span class="ruby-identifier">block</span> <span class="ruby-identifier">o</span> = {} <span class="ruby-identifier">o</span>[<span class="ruby-value">:class</span>] = <span class="ruby-string">""</span> <span class="ruby-identifier">o</span>[<span class="ruby-value">:class</span>] <span class="ruby-operator"><<</span> <span class="ruby-string">" active"</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">value</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span> <span class="ruby-identifier">content_tag</span>(<span class="ruby-value">:li</span>, <span class="ruby-identifier">capture</span>(&<span class="ruby-identifier">block</span>), <span class="ruby-identifier">o</span>) <span class="ruby-keyword">else</span> <span class="ruby-identifier">content_tag</span>(<span class="ruby-value">:li</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">o</span>) <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div> </div> </div> <div class="method"> <div class="title method-title" id="method-i-project_tab_class"> <b>project_tab_class</b>() <a href="../classes/TabHelper.html#method-i-project_tab_class" name="method-i-project_tab_class" class="permalink">Link</a> </div> <div class="description"> </div> <div class="sourcecode"> <p class="source-link"> Source: <a href="javascript:toggleSource('method-i-project_tab_class_source')" id="l_method-i-project_tab_class_source">show</a> </p> <div id="method-i-project_tab_class_source" class="dyn-source"> <pre><span class="ruby-comment"># File app/helpers/tab_helper.rb, line 70</span> <span class="ruby-keyword">def</span> <span class="ruby-keyword ruby-title">project_tab_class</span> [<span class="ruby-value">:show</span>, <span class="ruby-value">:files</span>, <span class="ruby-value">:edit</span>, <span class="ruby-value">:update</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">action</span><span class="ruby-operator">|</span> <span class="ruby-keyword">return</span> <span class="ruby-string">"active"</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">current_page?</span>(<span class="ruby-identifier">controller</span><span class="ruby-operator">:</span> <span class="ruby-string">"projects"</span>, <span class="ruby-identifier">action</span><span class="ruby-operator">:</span> <span class="ruby-identifier">action</span>, <span class="ruby-identifier">id</span><span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>) <span class="ruby-keyword">end</span> <span class="ruby-keyword">if</span> [<span class="ruby-string">'snippets'</span>, <span class="ruby-string">'services'</span>, <span class="ruby-string">'hooks'</span>, <span class="ruby-string">'deploy_keys'</span>, <span class="ruby-string">'team_members'</span>].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">controller_name</span> <span class="ruby-string">"active"</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div> </div> </div> </div> </div> </body> </html>