X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2FTemplate.js;h=f117c9aa6d6429a9a686bee198e80758b448ceda;hb=refs%2Fheads%2Fwip_leon_T7094_logo_image_upload_in_boilerplate;hp=8e28fd80b940a2d934222006f917f02988c676ac;hpb=7fc2a1506ab155fb198b0920ef893fa7eca3c629;p=roojs1
diff --git a/Roo/Template.js b/Roo/Template.js
index 8e28fd80b9..f117c9aa6d 100644
--- a/Roo/Template.js
+++ b/Roo/Template.js
@@ -25,7 +25,9 @@ var t = new Roo.Template({
});
t.append('some-element', {id: 'myid', cls: 'myclass', name: 'foo', value: 'bar'});
-* For more information see this blog post with examples: DomHelper - Create Elements using DOM, HTML fragments and Templates.
+* For more information see this blog post with examples:
+* DomHelper
+ - Create Elements using DOM, HTML fragments and Templates.
* @constructor
* @param {Object} cfg - Configuration object.
*/
@@ -44,23 +46,44 @@ Roo.Template = function(cfg){
// bc
this.html = cfg;
}
-
+ if (this.url) {
+ this.load();
+ }
};
Roo.Template.prototype = {
+ /**
+ * @cfg {Function} onLoad Called after the template has been loaded and complied (usually from a remove source)
+ */
+ onLoad : false,
+
+
+ /**
+ * @cfg {String} url The Url to load the template from. beware if you are loading from a url, the data may not be ready if you use it instantly..
+ * it should be fixed so that template is observable...
+ */
+ url : false,
/**
* @cfg {String} html The HTML fragment or an array of fragments to join("") or multiple arguments to join("")
*/
html : '',
+
+
+ compiled : false,
+ loaded : false,
/**
* Returns an HTML fragment of this template with the specified values applied.
* @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
* @return {String} The HTML fragment
*/
+
+
+
applyTemplate : function(values){
+ //Roo.log(["applyTemplate", values]);
try {
-
+
if(this.compiled){
return this.compiled(values);
}
@@ -99,18 +122,35 @@ Roo.Template.prototype = {
},
loading : false,
-
- load : function (url, success)
+
+ load : function ()
{
+
if (this.loading) {
- return false;
+ return;
}
- var cx = new Roo.data.Connection({
- url : url,
+ var _t = this;
+
+ this.loading = true;
+ this.compiled = false;
+
+ var cx = new Roo.data.Connection();
+ cx.request({
+ url : this.url,
method : 'GET',
- success : success,
- failure : function() {
- Roo.log("Template failed to load from " + url);
+ success : function (response) {
+ _t.loading = false;
+ _t.url = false;
+
+ _t.set(response.responseText,true);
+ _t.loaded = true;
+ if (_t.onLoad) {
+ _t.onLoad();
+ }
+ },
+ failure : function(response) {
+ Roo.log("Template failed to load from " + _t.url);
+ _t.loading = false;
}
});
},
@@ -123,7 +163,7 @@ Roo.Template.prototype = {
*/
set : function(html, compile){
this.html = html;
- this.compiled = null;
+ this.compiled = false;
if(compile){
this.compile();
}