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 }