Guest User

Untitled

a guest
May 27th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. /**
  2. * Nested Set for RightJS
  3. *
  4. * Copyright (C) 2010 Andrew Kalek, Anlek Consulting
  5. */
  6.  
  7. if (!RightJS) throw "This is design to be used with RightJS";
  8.  
  9. /**
  10. * Used to add/remove nested form items
  11. *
  12. */
  13.  
  14. var Nested = new Class({
  15. initialize: function(element){
  16. this.element = element;
  17. this.template_name = this.element.attributes['data-template'].value;
  18. this.template = eval(this.template_name);
  19.  
  20. var click_behavior = Event.delegate({
  21. '.add_nested': function(e){
  22. e.stop();
  23. $(e.originalTarget.attributes['rel'].value).insert(this._replace_ids(this.template), 'bottom');
  24. $(e.originalTarget.attributes['rel'].value).lastChild.fade('in');
  25. }.bind(this),
  26. '.remove_nested': function(e){
  27. e.stop();
  28. var item = e.originalTarget.parent('.item');
  29. if(!item.select('.delete').empty()){
  30. item.select('.delete').first().value = 1;
  31. item.fade('out');
  32. }else{
  33. item.fade('out', {onFinish: function(){
  34. item.remove();
  35. }});
  36. }
  37. }
  38. });
  39.  
  40. this.element.on('click', click_behavior);
  41. },
  42. _replace_ids: function (s){
  43. var new_id = new Date().getTime();
  44. return s.replace(/NEW_RECORD/g, new_id);
  45. }
  46.  
  47. });
  48.  
  49.  
  50. document.on('ready',function(){
  51. var nested_objects = [];
  52. $$('.nested').each(function(element, idx){
  53. nested_objects.push(new Nested(element));
  54. });
  55. });
Add Comment
Please, Sign In to add comment