Mercurial > hg > soundsoftware-site
comparison vendor/plugins/redmine_checkout/assets/javascripts/subform.js @ 16:020926a36823 yuya
* Add redmine-checkout plugin (as of svn rev 179 of the plugin)
author | Chris Cannam |
---|---|
date | Wed, 25 Aug 2010 16:39:01 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
15:9c6c72729d91 | 16:020926a36823 |
---|---|
1 var Subform = Class.create({ | |
2 lineIndex: 1, | |
3 parentElement: "", | |
4 initialize: function(rawHTML, lineIndex, parentElement) { | |
5 this.rawHTML = rawHTML; | |
6 this.lineIndex = lineIndex; | |
7 this.parentElement = parentElement; | |
8 }, | |
9 | |
10 parsedHTML: function() { | |
11 return this.rawHTML.replace(/--INDEX--/g, this.lineIndex++); | |
12 }, | |
13 | |
14 add: function() { | |
15 var e = $(this.parentElement); | |
16 Element.insert(e, { bottom: this.parsedHTML()}); | |
17 Effect.toggle(e.childElements().last(), 'slide', {duration:0.2}); | |
18 recalculate_even_odd(e); | |
19 }, | |
20 | |
21 add_after: function(e) { | |
22 Element.insert(e, { after: this.parsedHTML()}); | |
23 Effect.toggle(e.next(), 'slide', {duration:0.2}); | |
24 recalculate_even_odd($(this.parentElement)); | |
25 }, | |
26 | |
27 add_on_top: function() { | |
28 var e = $(this.parentElement); | |
29 Element.insert(e, { top: this.parsedHTML()}); | |
30 Effect.toggle(e.childElements().first(), 'slide', {duration:0.2}); | |
31 recalculate_even_odd(e); | |
32 } | |
33 }); | |
34 | |
35 function recalculate_even_odd(element) { | |
36 $A(element.childElements()).inject( | |
37 0, | |
38 function(acc, e) | |
39 { | |
40 e.removeClassName("even"); | |
41 e.removeClassName("odd"); | |
42 e.addClassName( (acc%2==0) ? "odd" : "even"); return ++acc; | |
43 } | |
44 ) | |
45 } |