+++ /dev/null
-<html><head><title>/home/alan/gitlive/roojs1/Roo/MasterTemplate.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
- * Based on:
- * Ext JS Library 1.1.1
- * Copyright(c) 2006-2007, Ext JS, LLC.
- *
- * Originally Released Under LGPL - original licence link has changed is not relivant.
- *
- * Fork - LGPL
- * <script type="text/javascript">
- */
-
-
-
-
-/**
- * @class Roo.MasterTemplate
- * @extends Roo.Template
- * Provides a template that can have child templates. The syntax is:
-<pre><code>
-var t = new Roo.MasterTemplate(
- '&lt;select name="{name}"&gt;',
- '&lt;tpl name="options"&gt;&lt;option value="{value:trim}"&gt;{text:ellipsis(10)}&lt;/option&gt;&lt;/tpl&gt;',
- '&lt;/select&gt;'
-);
-t.add('options', {value: 'foo', text: 'bar'});
-// or you can add multiple child elements in one shot
-t.addAll('options', [
- {value: 'foo', text: 'bar'},
- {value: 'foo2', text: 'bar2'},
- {value: 'foo3', text: 'bar3'}
-]);
-// then append, applying the master template values
-t.append('my-form', {name: 'my-select'});
-</code></pre>
-* A name attribute for the child template is not required if you have only one child
-* template or you want to refer to them by index.
- */
-</span><span class="jsdoc-var">Roo.MasterTemplate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
- </span><span class="jsdoc-var">Roo.MasterTemplate.superclass.constructor.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">this.originalHtml </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">st </span><span class="jsdoc-syntax">= {};
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.subTemplateRe</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">re.lastIndex </span><span class="jsdoc-syntax">= 0;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">subIndex </span><span class="jsdoc-syntax">= 0;
- </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">re.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">)){
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">[1], </span><span class="jsdoc-var">content </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">[2];
- </span><span class="jsdoc-var">st</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">subIndex</span><span class="jsdoc-syntax">] = {
- </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">subIndex</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">buffer</span><span class="jsdoc-syntax">: [],
- </span><span class="jsdoc-var">tpl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">content</span><span class="jsdoc-syntax">)
- };
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">st</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">st</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">subIndex</span><span class="jsdoc-syntax">];
- }
- </span><span class="jsdoc-var">st</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">subIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.tpl.compile</span><span class="jsdoc-syntax">();
- </span><span class="jsdoc-var">st</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">subIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.tpl.call </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.call.createDelegate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">subIndex</span><span class="jsdoc-syntax">++;
- }
- </span><span class="jsdoc-var">this.subCount </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">subIndex</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">this.subs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">st</span><span class="jsdoc-syntax">;
-};
-</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.MasterTemplate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">, {
- </span><span class="jsdoc-comment">/**
- * The regular expression used to match sub templates
- * @type RegExp
- * @property
- */
- </span><span class="jsdoc-var">subTemplateRe </span><span class="jsdoc-syntax">: /<tpl(?:\sname="([\w-]+)")?>((?:.|\n)*?)<\/tpl>/gi,
-
- </span><span class="jsdoc-comment">/**
- * Applies the passed values to a child template.
- * @param {String/Number} name (optional) The name or index of the child template
- * @param {Array/Object} values The values to be applied to the template
- * @return {MasterTemplate} this
- */
- </span><span class="jsdoc-var">add </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">arguments.length </span><span class="jsdoc-syntax">== 1){
- </span><span class="jsdoc-var">values </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">[0];
- </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">= 0;
- }
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.subs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">];
- </span><span class="jsdoc-var">s.buffer</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">s.buffer.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">s.tpl.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
- },
-
- </span><span class="jsdoc-comment">/**
- * Applies all the passed values to a child template.
- * @param {String/Number} name (optional) The name or index of the child template
- * @param {Array} values The values to be applied to the template, this should be an array of objects.
- * @param {Boolean} reset (optional) True to reset the template first
- * @return {MasterTemplate} this
- */
- </span><span class="jsdoc-var">fill </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">reset</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a.length </span><span class="jsdoc-syntax">== 1 || (</span><span class="jsdoc-var">a.length </span><span class="jsdoc-syntax">== 2 && </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[1] == </span><span class="jsdoc-string">"boolean"</span><span class="jsdoc-syntax">)){
- </span><span class="jsdoc-var">values </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[0];
- </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">= 0;
- </span><span class="jsdoc-var">reset </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[1];
- }
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">reset</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">this.reset</span><span class="jsdoc-syntax">();
- }
- </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">values.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
- </span><span class="jsdoc-var">this.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
- }
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
- },
-
- </span><span class="jsdoc-comment">/**
- * Resets the template for reuse
- * @return {MasterTemplate} this
- */
- </span><span class="jsdoc-var">reset </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.subs</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.subCount</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
- </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.buffer </span><span class="jsdoc-syntax">= [];
- }
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
- },
-
- </span><span class="jsdoc-var">applyTemplate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.subs</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">replaceIndex </span><span class="jsdoc-syntax">= -1;
- </span><span class="jsdoc-var">this.html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.originalHtml.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.subTemplateRe</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">[++</span><span class="jsdoc-var">replaceIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.buffer.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">);
- });
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.MasterTemplate.superclass.applyTemplate.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-var">apply </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
- </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.applyTemplate.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
- },
-
- </span><span class="jsdoc-var">compile </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){</span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;}
-});
-
-</span><span class="jsdoc-comment">/**
- * Alias for fill().
- * @method
- */
-</span><span class="jsdoc-var">Roo.MasterTemplate.prototype.addAll </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.MasterTemplate.prototype.fill</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-comment">/**
- * Creates a template from the passed element's value (display:none textarea, preferred) or innerHTML. e.g.
- * var tpl = Roo.MasterTemplate.from('element-id');
- * @param {String/HTMLElement} el
- * @param {Object} config
- * @static
- */
-</span><span class="jsdoc-var">Roo.MasterTemplate.from </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Roo.MasterTemplate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.value </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">el.innerHTML</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
-};</span></code></body></html>
\ No newline at end of file