summaryrefslogtreecommitdiffstatshomepage
path: root/includes/js/dojox/dtl/tag/loop.js
diff options
context:
space:
mode:
authorGravatar mensonge2008-11-14 15:39:19 +0000
committerGravatar mensonge2008-11-14 15:39:19 +0000
commit1c5685d68f1b73270fb814fe04cbb490eb90ba5f (patch)
tree3d3ada08a934b96fc31531f1327690d7edc6f766 /includes/js/dojox/dtl/tag/loop.js
parent104d59099e048688c4dbac37d72137006e396558 (diff)
downloadscuttle-1c5685d68f1b73270fb814fe04cbb490eb90ba5f.tar.gz
scuttle-1c5685d68f1b73270fb814fe04cbb490eb90ba5f.zip
Minor fix: Remove DOJO library (60Mo) replaced by link to Google CDN (online DOJO library)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@159 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dojox/dtl/tag/loop.js')
-rw-r--r--includes/js/dojox/dtl/tag/loop.js196
1 files changed, 0 insertions, 196 deletions
diff --git a/includes/js/dojox/dtl/tag/loop.js b/includes/js/dojox/dtl/tag/loop.js
deleted file mode 100644
index 3626c52..0000000
--- a/includes/js/dojox/dtl/tag/loop.js
+++ /dev/null
@@ -1,196 +0,0 @@
-if(!dojo._hasResource["dojox.dtl.tag.loop"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
-dojo._hasResource["dojox.dtl.tag.loop"] = true;
-dojo.provide("dojox.dtl.tag.loop");
-
-dojo.require("dojox.dtl._base");
-dojo.require("dojox.string.tokenize");
-
-(function(){
- var dd = dojox.dtl;
- var ddtl = dd.tag.loop;
-
- ddtl.CycleNode = dojo.extend(function(cyclevars, name, TextNode, shared){
- this.cyclevars = cyclevars;
- this.name = name;
- this.TextNode = TextNode;
- this.shared = shared || {counter: -1, map: {}};
- },
- {
- render: function(context, buffer){
- if(context.forloop && !context.forloop.counter0){
- this.shared.counter = -1;
- }
-
- ++this.shared.counter;
- var value = this.cyclevars[this.shared.counter % this.cyclevars.length];
-
- var map = this.shared.map;
- if(!map[value]){
- map[value] = new dd._Filter(value);
- }
- value = map[value].resolve(context, buffer);
-
- if(this.name){
- context[this.name] = value;
- }
- if(!this.contents){
- this.contents = new this.TextNode("");
- }
- this.contents.set(value);
- return this.contents.render(context, buffer);
- },
- unrender: function(context, buffer){
- return this.contents.unrender(context, buffer);
- },
- clone: function(){
- return new this.constructor(this.cyclevars, this.name, this.TextNode, this.shared);
- }
- });
-
- ddtl.IfChangedNode = dojo.extend(function(nodes, vars, shared){
- this.nodes = nodes;
- this._vars = vars;
- this.shared = shared || {last: null};
- this.vars = dojo.map(vars, function(item){
- return new dojox.dtl._Filter(item);
- });
- }, {
- render: function(context, buffer){
- if(context.forloop && context.forloop.first){
- this.shared.last = null;
- }
-
- var change;
- if(this.vars.length){
- change = dojo.toJson(dojo.map(this.vars, function(item){
- return item.resolve(context);
- }));
- }else{
- change = this.nodes.dummyRender(context, buffer);
- }
-
- if(change != this.shared.last){
- var firstloop = (this.shared.last === null);
- this.shared.last = change;
- context.push();
- context.ifchanged = {firstloop: firstloop}
- buffer = this.nodes.render(context, buffer);
- context.pop();
- }
- return buffer;
- },
- unrender: function(context, buffer){
- this.nodes.unrender(context, buffer);
- },
- clone: function(buffer){
- return new this.constructor(this.nodes.clone(buffer), this._vars, this.shared);
- }
- });
-
- ddtl.RegroupNode = dojo.extend(function(expression, key, alias){
- this._expression = expression;
- this.expression = new dd._Filter(expression);
- this.key = key;
- this.alias = alias;
- },
- {
- _push: function(container, grouper, stack){
- if(stack.length){
- container.push({ grouper: grouper, list: stack })
- }
- },
- render: function(context, buffer){
- context[this.alias] = [];
- var list = this.expression.resolve(context);
- if(list){
- var last = null;
- var stack = [];
- for(var i = 0; i < list.length; i++){
- var id = list[i][this.key];
- if(last !== id){
- this._push(context[this.alias], last, stack);
- last = id;
- stack = [list[i]];
- }else{
- stack.push(list[i]);
- }
- }
- this._push(context[this.alias], last, stack);
- }
- return buffer;
- },
- unrender: function(context, buffer){
- return buffer;
- },
- clone: function(context, buffer){
- return this;
- }
- });
-
- dojo.mixin(ddtl, {
- cycle: function(parser, text){
- // summary: Cycle among the given strings each time this tag is encountered
- var args = text.split(" ");
-
- if(args.length < 2){
- throw new Error("'cycle' tag requires at least two arguments");
- }
-
- if(args[1].indexOf(",") != -1){
- var vars = args[1].split(",");
- args = [args[0]];
- for(var i = 0; i < vars.length; i++){
- args.push('"' + vars[i] + '"');
- }
- }
-
- if(args.length == 2){
- var name = args[args.length - 1];
-
- if(!parser._namedCycleNodes){
- throw new Error("No named cycles in template: '" + name + "' is not defined");
- }
- if(!parser._namedCycleNodes[name]){
- throw new Error("Named cycle '" + name + "' does not exist");
- }
-
- return parser._namedCycleNodes[name];
- }
-
- if(args.length > 4 && args[args.length - 2] == "as"){
- var name = args[args.length - 1];
-
- var node = new ddtl.CycleNode(args.slice(1, args.length - 2), name, parser.getTextNodeConstructor());
-
- if(!parser._namedCycleNodes){
- parser._namedCycleNodes = {};
- }
- parser._namedCycleNodes[name] = node;
- }else{
- node = new ddtl.CycleNode(args.slice(1), null, parser.getTextNodeConstructor());
- }
-
- return node;
- },
- ifchanged: function(parser, text){
- var parts = dojox.dtl.text.pySplit(text);
- var nodes = parser.parse(["endifchanged"]);
- parser.next();
- return new ddtl.IfChangedNode(nodes, parts.slice(1));
- },
- regroup: function(parser, text){
- var tokens = dojox.string.tokenize(dojo.trim(text), /(\s+)/g, function(spaces){
- return spaces;
- });
- if(tokens.length < 11 || tokens[tokens.length - 3] != "as" || tokens[tokens.length - 7] != "by"){
- throw new Error("Expected the format: regroup list by key as newList");
- }
- var expression = tokens.slice(2, -8).join("");
- var key = tokens[tokens.length - 5];
- var alias = tokens[tokens.length - 1];
- return new ddtl.RegroupNode(expression, key, alias);
- }
- });
-})();
-
-}