diff --git a/docs/symbols/src/kis-js_src_modules_template.js.html b/docs/symbols/src/kis-js_src_modules_template.js.html deleted file mode 100755 index 1e98d0b..0000000 --- a/docs/symbols/src/kis-js_src_modules_template.js.html +++ /dev/null @@ -1,242 +0,0 @@ -
  1 /** 
-  2  * Template module for simple javascript templating
-  3  */
-  4 (function(){
-  5 	"use strict";
-  6 	
-  7 	//This module relies on some others for simplicity
-  8 	//so, if they aren't there, don't initialize the module
-  9 	if($_.ajax === "undefined")
- 10 	{
- 11 		return;
- 12 	}
- 13 	
- 14 	var t, _t, _p;
- 15 	
- 16 	
- 17 	//Private object to store retrieved templates
- 18 	_t = {};
- 19 	
- 20 	//Private object to store parsed templates
- 21 	_p = {};
- 22 	
- 23 	
- 24 	/**
- 25 	 * Module for html templating. Requires ajax module.
- 26 	 * 
- 27 	 * @name template
- 28 	 * @namespace
- 29 	 * @memberOf $_
- 30 	 */
- 31 	t = {
- 32 		/**
- 33 		 * Retrieves a template
- 34 		 * 
- 35 		 * @memberOf $_.template
- 36 		 * @name get
- 37 		 * @param string name
- 38 		 * @return string
- 39 		 * @function
- 40 		 * @type string
- 41 		 */
- 42 		get: function(name)
- 43 		{
- 44 			var res;
- 45 
- 46 			res = this.el.innerHTML;
- 47 			
- 48 			if(res === "")
- 49 			{
- 50 				console.log("Template is empty or cannot be found");
- 51 				return;
- 52 			}
- 53 			
- 54 			_t[name] = res;
- 55 			return res;
- 56 		},
- 57 		/**
- 58 		 * Formats a template
- 59 		 * 
- 60 		 * @memberOf $_.template
- 61 		 * @name parse
- 62 		 * @param string template_name
- 63 		 * @param object replace_data
- 64 		 * @return string
- 65 		 * @function
- 66 		 * @type string
- 67 		 */
- 68 		parse: function(name, data)
- 69 		{
- 70 			var tmp = _t[name],
- 71 				pairs = [],
- 72 				pair_reg = /\{([A-Z0-9_\-]+)\}(.*)\{\/\1\}/gim,
- 73 				var_reg = /\{([A-Z0-9_\-]+)\}/gim,
- 74 				pseudos = [], 
- 75 				num_pairs = 0,
- 76 				num_pseudos = 0,
- 77 				i = 0,
- 78 				j = 0,
- 79 				var_name = '',
- 80 				rep_data = {},
- 81 				tmp_data = '',
- 82 				data_len,
- 83 				frag,
- 84 				frag_section,
- 85 				emptys,
- 86 				x;
- 87 				
- 88 			tmp = String(tmp);
- 89 		
- 90 			//Remove newlines and tabs from template because
- 91 			//those whitespace characters are extra bandwidth
- 92 			tmp = tmp.replace(/\s+/gim, " ");
- 93 			tmp = tmp.replace(/>\s+</gim, "><");
- 94 			tmp = tmp.replace(/>\s+\{/gim, ">{");
- 95 			tmp = tmp.replace(/\}\s+</gim, "}<");
- 96 			
- 97 			//Match all the looped sections of content
- 98 			pairs = tmp.match(pair_reg);
- 99 			
-100 			if(pairs != null)
-101 			{
-102 				num_pairs = pairs.length;
-103 				
-104 				//Go through the template, and match the pairs
-105 				for(i=0;i<num_pairs;i++)
-106 				{
-107 					//Put the loop in a placeholder
-108 					tmp = tmp.replace(pairs[i], "{"+i+"}");
-109 					
-110 					//Create a place to store looped data
-111 					tmp_data = "";
-112 					
-113 					//The replace variable is the name of the tag
-114 					var_name = String(pairs[i]).match(/^\{([A-Z0-9_\-]+)\}/i);
-115 					rep_data = data[var_name[1]];
-116 					
-117 					//Make sure there are loops
-118 					if(rep_data.length > 0)
-119 					{
-120 						data_len = rep_data.length;
-121 						
-122 						//Get rid of the loop tags
-123 						pairs[i] = pairs[i].replace(pair_reg, "$2");
-124 						
-125 						//Replace psudovariables with data
-126 						for(j=0;j<data_len;j++)
-127 						{
-128 							//Is there a better way to do this, rather than an inline function?
-129 							tmp_data += pairs[i].replace(var_reg, function(_, varName){
-130 								return (rep_data[j][varName]) ? rep_data[j][varName] : ""; 
-131 							});
-132 						}
-133 					}
-134 					
-135 					//Replace the looped content
-136 					tmp = tmp.replace("{"+i+"}", tmp_data);
-137 				}
-138 			}
-139 			
-140 			//Replace all the rest of the psudeovariables
-141 			pseudos = tmp.match(var_reg);
-142 			
-143 			if(pseudos != null)
-144 			{
-145 				num_pseudos = pseudos.length;
-146 			
-147 				for(i=0;i<num_pseudos;i++)
-148 				{
-149 					//Remove the {} from the pseudos
-150 					var_name = pseudos[i].replace('{', '');
-151 					var_name = var_name.replace('}', '');
-152 					
-153 					//Replace each pseudovariable with the value of the object
-154 					//property of the same name
-155 					tmp = tmp.replace(pseudos[i], data[var_name]);
-156 				}
-157 			}
-158 			
-159 			//Create an empty fragement
-160 			frag = document.createDocumentFragment();
-161 			
-162 			//Insert the html
-163 			frag.appendChild(document.createElement('section'));
-164 			frag_section = frag.querySelectorAll('section')[0];
-165 			frag_section.innerHTML = tmp;
-166 			
-167 			//Remove bad elements in the fragment, should be faster than being done live
-168 			emptys = frag_section.querySelectorAll('[src=""], [href=""]');
-169 			
-170 			for(x in emptys)
-171 			{
-172 				if(emptys[x].parentNode)
-173 				{
-174 					emptys[x].parentNode.removeChild(emptys[x]);
-175 				}
-176 			}
-177 			
-178 			//Save the parsed template in an object for later retrieval
-179 			_p[name] = tmp;
-180 			
-181 			return tmp;
-182 		},
-183 		/** 
-184 		 * Inserts the formatted template into the page. If the url and data parameters
-185 		 * are passed, it will retrieve a template file from the same domain, parse, 
-186 		 * and insert the template into the page. 
-187 		 *
-188 		 * @memberOf $_.template
-189 		 * @name apply
-190 		 * @function
-191 		 * @param string parsed_template/template_name
-192 		 * @param [string] url
-193 		 * @param [object] data
-194 		 */
-195 		apply: function(name, url, data)
-196 		{
-197 			//If the parsed template is supplied, just apply it to the passed selector
-198 			if(typeof url === "undefined" && typeof data === "undefined")
-199 			{
-200 				//If the "name" variable is in the _p object, set that
-201 				if(typeof _p[name] !== "undefined")
-202 				{
-203 					this.el.innerHTML = _p[name];
-204 					return;
-205 				}
-206 			
-207 				//Otherwise, set the passed string to the current selector
-208 				this.el.innerHTML = name;
-209 				return;
-210 			}
-211 			
-212 			//Otherwise, get the template, parse it, and apply it
-213 			$_.get(url, {}, function(res){
-214 				var parsed;
-215 			
-216 				if(res === "")
-217 				{
-218 					console.log("Template is empty or can not be found");
-219 					return;
-220 				}
-221 				
-222 				//Cache the template in an object for later use
-223 				_t[name] = res;
-224 				parsed = this.parse(name, data);
-225 				_p[name] = parsed;
-226 				
-227 				this.el.innerHTML = parsed;
-228 			});
-229 		}
-230 	};
-231 	
-232 	//Add the module to the library
-233 	$_.ext('template', t);
-234 	
-235 })();
\ No newline at end of file