simple_list.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. function addIndiceLine(root)
  2. {
  3. var data = getUIFromDom(root);
  4. return data.addLine();
  5. }
  6. function removeIndiceLine(root)
  7. {
  8. var data = getUIFromDom(root);
  9. var obj = $("#"+root);
  10. data.onDelete();
  11. obj.next().remove(); //<div><hr>
  12. var parent = obj.parent();
  13. obj.remove();
  14. parent.remove();
  15. }
  16. class UISimpleListElement extends UIContainer {
  17. initEnd()
  18. {
  19. this.root.parent().append(HTMLBuilder.hrDiv({class: _col_class(12)}));
  20. if(this.parent.inline==undefined || this.parent.inline==false)
  21. this.foreach(function(k, o){ $("#"+o.rootId).removeClass(_col_class(12)); });
  22. }
  23. }
  24. registerUiClass("listelement", UISimpleListElement);
  25. class UISimpleList extends UIContainer {
  26. init()
  27. {
  28. var v = this.rootId;
  29. this.root.empty();
  30. var r = HTMLBuilder.div()
  31. r.append(HTMLBuilder.h4(this.title, {class: _col_class()+"noPaddingTop"}));
  32. r.append(HTMLBuilder.iconButton("add", {class: "green col s1 toBottom"},
  33. function(e){addIndiceLine(v);} ))
  34. r.append(HTMLBuilder.hrDiv({class: _col_class(12)}));
  35. this.root.append(r);
  36. this.root.addClass(_subcat_class)
  37. this.compteur=0;
  38. }
  39. addLine()
  40. {
  41. this.compteur++;
  42. var id = this.rootId+"_"+this.compteur;
  43. var subRoot= HTMLBuilder.div();
  44. subRoot.append(HTMLBuilder.iconButton("remove", {class:"red toBottom "+_col_class(1)},
  45. function(){removeIndiceLine(id);}));
  46. var r = HTMLBuilder.div({class: _row_class+_col_class(11), id:id});
  47. subRoot.append(r);
  48. this.root.append(subRoot)
  49. return this.index[id]=new UISimpleListElement(this.rootData, this,id, this);
  50. }
  51. reset()
  52. {
  53. for (var key in this.index)
  54. {
  55. if (this.index.hasOwnProperty(key))
  56. {
  57. removeIndiceLine(key);
  58. }
  59. }
  60. }
  61. getJson()
  62. {
  63. var obj = super.getJson();
  64. return Object.values(obj);
  65. }
  66. setJson(e)
  67. {
  68. this.reset();
  69. for(var i = 0; i<e.length; i++)
  70. {
  71. var d = this.addLine();
  72. d.val(e[i])
  73. }
  74. }
  75. }
  76. registerUiClass("simple_list", UISimpleList);