Mercurial > hg > soundsoftware-site
annotate 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 |
rev | line source |
---|---|
Chris@16 | 1 var Subform = Class.create({ |
Chris@16 | 2 lineIndex: 1, |
Chris@16 | 3 parentElement: "", |
Chris@16 | 4 initialize: function(rawHTML, lineIndex, parentElement) { |
Chris@16 | 5 this.rawHTML = rawHTML; |
Chris@16 | 6 this.lineIndex = lineIndex; |
Chris@16 | 7 this.parentElement = parentElement; |
Chris@16 | 8 }, |
Chris@16 | 9 |
Chris@16 | 10 parsedHTML: function() { |
Chris@16 | 11 return this.rawHTML.replace(/--INDEX--/g, this.lineIndex++); |
Chris@16 | 12 }, |
Chris@16 | 13 |
Chris@16 | 14 add: function() { |
Chris@16 | 15 var e = $(this.parentElement); |
Chris@16 | 16 Element.insert(e, { bottom: this.parsedHTML()}); |
Chris@16 | 17 Effect.toggle(e.childElements().last(), 'slide', {duration:0.2}); |
Chris@16 | 18 recalculate_even_odd(e); |
Chris@16 | 19 }, |
Chris@16 | 20 |
Chris@16 | 21 add_after: function(e) { |
Chris@16 | 22 Element.insert(e, { after: this.parsedHTML()}); |
Chris@16 | 23 Effect.toggle(e.next(), 'slide', {duration:0.2}); |
Chris@16 | 24 recalculate_even_odd($(this.parentElement)); |
Chris@16 | 25 }, |
Chris@16 | 26 |
Chris@16 | 27 add_on_top: function() { |
Chris@16 | 28 var e = $(this.parentElement); |
Chris@16 | 29 Element.insert(e, { top: this.parsedHTML()}); |
Chris@16 | 30 Effect.toggle(e.childElements().first(), 'slide', {duration:0.2}); |
Chris@16 | 31 recalculate_even_odd(e); |
Chris@16 | 32 } |
Chris@16 | 33 }); |
Chris@16 | 34 |
Chris@16 | 35 function recalculate_even_odd(element) { |
Chris@16 | 36 $A(element.childElements()).inject( |
Chris@16 | 37 0, |
Chris@16 | 38 function(acc, e) |
Chris@16 | 39 { |
Chris@16 | 40 e.removeClassName("even"); |
Chris@16 | 41 e.removeClassName("odd"); |
Chris@16 | 42 e.addClassName( (acc%2==0) ? "odd" : "even"); return ++acc; |
Chris@16 | 43 } |
Chris@16 | 44 ) |
Chris@16 | 45 } |