server/renkan-web/src/main/webapp/static/js/thymol.js
changeset 316 242510015401
parent 315 8c85ab4cf3aa
child 317 2b30c5426f1e
--- a/server/renkan-web/src/main/webapp/static/js/thymol.js	Wed Jul 09 12:15:53 2014 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,376 +0,0 @@
-/*-------------------- Thymol - the flavour of Thymeleaf --------------------*
-
-   Thymol version 0.1.2 Copyright 2012 James J. Benson.
-   jjbenson .AT. users.sf.net
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" basis,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
- *---------------------------------------------------------------------------*/
-
-var thURL = "http://www.thymeleaf.org";
-var thPrefix = "th";
-var thProtocol = "file:///";
-var thCache = new Object;
-
-$(function() {
-	thymol();
-});
-
-var thymol = function() {
-	
-	var urlParams = {};
-	(function() {
-		var e, a = /\+/g, r = /([^&=]+)=?([^&]*)/g, d = function(s) {
-			return decodeURIComponent(s.replace(a, " "));
-		}, f = function(s) {
-			return new Param(d(s));
-		}, q = window.location.search.substring(1);
-		while (e = r.exec(q)) {
-			urlParams[d(e[1])] = f(e[2]);
-		}
-	})();
-
-	var debug = getThParam("thDebug",true,false);
-	var root = getThParam("thRoot",false,true);
-	var path = getThParam("thPath",false,true);
-
-	$.ajaxSetup({
-		async : false,
-		isLocal : true
-	});
-
-	(function() {
-		var htmlTag = $("html")[0];
-		$(htmlTag.attributes).each(function() {
-			if (thURL == this.value) {
-				var nsspec = this.localName.split(":");
-				if (nsspec.length > 0) {
-					thPrefix = nsspec[nsspec.length - 1];
-					return;
-				}
-			}
-		});
-	})();
-
-	var thIncl = new ThObj("include");
-	var thSubs = new ThObj("substituteby");
-	var thIf = new ThObj("if");
-	var thUnless = new ThObj("unless");
-	var thSwitch = new ThObj("switch");
-	var thCase = new ThObj("case");
-
-	var thFragEscp = "[" + thPrefix + "\\:fragment='";
-	var base = new ThNode(document, false, null, null, null, document.nodeName, "::", false, document);
-	process(base);
-	return;
-
-	function process(base) {
-		var n = base;
-		while (n.thDoc) {
-			getChildren(n);
-			if (n.firstChild && n.firstChild.thDoc && !n.visited) {
-				n.visited = true;
-				n = n.firstChild;
-			}
-			else {
-				doReplace(n.isNode, n.element, n.thDoc);
-				if (n.nextSibling && n.nextSibling.thDoc) {
-					n = n.nextSibling;
-				}
-				else {
-					if (n == base)
-						break;
-					else {
-						n = n.parentDoc;
-					}
-				}
-			}
-		}
-	}
-
-	function getChildren(base) {
-		var thIfSpecs = $(thIf.escp, base.thDoc);
-		var thUnlessSpecs = $(thUnless.escp, base.thDoc);
-		var thSwitchSpecs = $(thSwitch.escp, base.thDoc);
-		var ths = $(thIfSpecs).add(thUnlessSpecs).add(thSwitchSpecs);
-		ths.each(function() {
-			var element = this;
-			$(element.attributes).each(function() {
-				var thAttr = this;
-				if (thIf.name == thAttr.name || thUnless.name == thAttr.name || thSwitch.name == thAttr.name) {
-					processConditional(element, base, thAttr);
-				}
-			});
-		});
-		var thInclSpecs = $(thIncl.escp, base.thDoc);
-		var thSubsSpecs = $(thSubs.escp, base.thDoc);
-		ths = $(thInclSpecs).add(thSubsSpecs);
-		var count = 0;
-		var last = null;
-		ths.each(function() {
-			var element = this;
-			$(element.attributes).each(function() {
-				var thAttr = this;
-				if (thIncl.name == thAttr.name || thSubs.name == thAttr.name) {
-					var child = processImport(element, base, thAttr);
-					if( child != null ) {
-						if (count == 0) {
-							base.firstChild = child;
-						}
-						else {
-							last.nextSibling = child;
-						}
-						last = child;
-						count++;						
-					}
-				}
-			});
-		});
-	}
-
-	function processConditional(element, base, attr) {
-		var args = attr.value.match(/[$\*#]{(!?.*)}/);
-		var processed = false;
-		if (args.length > 0) {
-			var param = args[1];
-			if (thSwitch.name == attr.name) {
-				processed = processSwitch(element, base, attr, param);
-			}
-			else {
-				var negate = false;
-				if (args[1].charAt(0) == '!') {
-					negate = true;
-					param = args[1].substring(1);
-				}
-				if ((!negate && isTrue(param)) || (negate && !isTrue(param))) {
-					if (thUnless.name == attr.name) { // true for "if" and
-						// false for "unless"
-						element.innerHTML = "";
-					}
-					processed = true;
-				}
-				else {
-					if (thIf.name == attr.name) { // false for "if", true for
-						// "unless"
-						element.innerHTML = "";
-					}
-					processed = true;
-				}
-
-			}
-		}
-		if (!processed && debug) {
-			window.alert("thymol.processConditional cannot process: " + attr.name + "=\"" + attr.value + "\"\n" + element.innerHTML);
-		}
-		element.removeAttribute(attr.name);
-	}
-
-	function processSwitch(element, base, attr, param) {
-		var matched = false;
-		var haveDefault = false;
-		var thCaseSpecs = $(thCase.escp, element);
-		thCaseSpecs.each(function() {
-			var caseClause = this;
-			var remove = true;
-			$(caseClause.attributes).each(function() {
-				var ccAttr = this;
-				if (thCase.name == ccAttr.name) {
-					if (!matched) {
-						var s = urlParams[param];
-						if (ccAttr.value == "*" || (s && (s.getStringValue() == ccAttr.value))) {
-							matched = true;
-							remove = false;
-						}
-					}
-					caseClause.removeAttribute(ccAttr.name);
-				}
-			});
-			if (remove) {
-				caseClause.innerHTML = "";
-			}
-		});
-		return matched;
-	}
-
-	function processImport(element, base, attr) {
-		var importNode = null;
-		var filePart = null;
-		var fragmentPart = "::";
-		if (attr.value.indexOf("::") < 0) {
-			filePart = getFilePart(attr.value); 
-		}
-		else {
-			var names = attr.value.split("::");
-			filePart = getFilePart(names[0].trim());
-			fragmentPart = substitute(names[1].trim());
-		}
-		var isNode = (thSubs.name == attr.localName);
-		if (thCache[filePart] != null && thCache[filePart][fragmentPart] != null) {
-			isNode = ((thSubs.name == attr.localName) || (fragmentPart == "::"));
-			importNode = new ThNode(thCache[filePart][fragmentPart], false, base, null, null, filePart, fragmentPart, isNode, element);
-		}
-		else {
-			var fileName = filePart + ".html";
-			$.get(fileName, function(content, status) {
-				if ("success" == status) {
-					if (thCache[filePart] == null) {
-						thCache[filePart] = new Object;
-					}
-					if (fragmentPart == "::") {
-						var htmlContent = $("html", content)[0];
-						thCache[filePart][fragmentPart] = htmlContent;
-					}
-					else {
-						var fragSpec = thFragEscp + fragmentPart + "']";
-						var fragArray = $(fragSpec, content);
-						$(fragArray).each(function() {
-							thCache[filePart][fragmentPart] = this;
-						});
-					}
-					importNode = new ThNode(thCache[filePart][fragmentPart], false, base, null, null, filePart, fragmentPart, isNode, element);
-				}
-				else if (debug) {
-					window.alert("file read failed: " + filePart + " fragment: " + fragmentPart);
-				}
-	    	}, "xml");
-			if (importNode == null && debug) {
-				window.alert("fragment import failed: " + filePart + " fragment: " + fragmentPart);
-			}
-		}
-		element.removeAttribute(attr.name);		
-		return importNode;
-	}
-	
-	function getFilePart(part) {
-		var result = substitute(part);
-		if( result.charAt(0) != '.' ) {	// Initial period character indicates a relative path
-			if( result.indexOf('/') >= 0 ) {	// If it doesn't start with a '.', and there are no path separators, it's also treated as relative
-				result = thProtocol + root + path + result;													
-			}
-		}
-		return result;
-	}
-
-	function doReplace(isNode, element, content) {
-		if (isNode) {
-			element.parentNode.replaceChild(content.cloneNode(true), element);
-		}
-		else {			
-			try {
-				element.innerHTML = content.innerHTML;
-			}
-			catch (err) { // Work-around for IE
-				while (element.firstChild != null) {
-					element.removeChild(element.firstChild);
-				}
-				for (i = 0; i < content.childNodes.length; i++) {
-					element.appendChild(content.childNodes[i].cloneNode(true));
-				}
-			}			
-		}
-	}
-
-	function ThNode(thDoc, visited, parentDoc, firstChild, nextSibling, fileName, fragName, isNode, element) {
-		this.thDoc = thDoc;
-		this.visited = visited;
-		this.parentDoc = parentDoc;
-		this.firstChild = firstChild;
-		this.nextSibling = nextSibling;
-		this.fileName = fileName;
-		this.fragName = fragName;
-		this.isNode = isNode;
-		this.element = element;
-	}
-
-	function ThObj(suffix) {
-		this.name = thPrefix + ":" + suffix;
-		this.escp = "[" + thPrefix + "\\:" + suffix + "]";
-	}
-
-	function Param(valueArg) {
-		this.value = valueArg;
-		this.getBooleanValue = function() {
-			return !(this.value == "false" || this.value == "off" || this.value == "no");
-		};
-		this.getStringValue = function() {
-			return this.value;
-		};
-		this.getNumericValue = function() {
-			return Number(this.value);
-		};
-	}
-
-	function isTrue(arg) {
-		var p = urlParams[arg];
-		if (p) {
-			return p.getBooleanValue();
-		}
-		return false;
-	}
-	
-	function substitute(argValue) {
-		var result = argValue;
-		var args = argValue.match(/[$\*#]{(!?.*)}/);
-		if (args != null && args.length > 0) {
-			var param = args[1];
-			if(param) {
-				var paramValue = urlParams[param];
-				if (paramValue) {
-					result = paramValue.value;
-				}					
-			}		
-		}			
-		return result;
-	}
-
-	function getThParam(paramName,isBoolean,isPath) {
-		var localValue;
-		if( isBoolean ) {
-			localValue = false;
-		}
-		else {
-			localValue = "";			
-		}
-		var theParam = urlParams[paramName];
-		if (isBoolean && theParam) {
-			localValue = theParam.getBooleanValue();
-		}
-		else {
-			var paramValue;
-			try {			
-				paramValue = eval(paramName);
-				if( !(typeof paramValue === "undefined") ) {
-					if( paramValue != null ) {
-						if ( isBoolean ) {
-							localValue = (paramValue==true);
-						}								
-						else {
-							localValue = paramValue;							
-						}
-					}
-				}
-			}
-			catch (err) {
-				if (err instanceof ReferenceError) {					
-				}
-				if (err instanceof EvalError) {					
-				}
-			}				
-		}
-		if( !isBoolean && isPath && localValue.length > 0 && localValue.charAt(localValue.length-1) != '/' ) {
-			localValue = localValue + '/';
-		}
-		return localValue;
-	}
-
-};
\ No newline at end of file