ui_basic.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. class UIInput extends UIElement {
  2. setJson(e)
  3. {
  4. super.setJson(e);
  5. $("#"+this.elemId+"_lbl").addClass("active");
  6. }
  7. }
  8. class UIInputText extends UIInput {
  9. init()
  10. {
  11. var size=(this.size)?this.size:12;
  12. var r = HTMLBuilder.rootElemDiv(size);
  13. var nsize=12;
  14. if(this.facultative) nsize-=2;
  15. var x = HTMLBuilder[this.getFct()]({
  16. type: this.type,
  17. id: this.elemId,
  18. size: nsize,
  19. label: this.placeholder
  20. },
  21. {},
  22. {
  23. max: this.max,
  24. min: this.min,
  25. value: this.value,
  26. disabled: (this.value)?"":undefined
  27. },
  28. { active: (this.value)?"":undefined });
  29. r.append($(x));
  30. doFac(r,this);
  31. this.root.append(r);
  32. }
  33. }
  34. class UITextArea extends UIInputText {
  35. getFct()
  36. {
  37. return "textArea";
  38. }
  39. }
  40. registerUiClass("textarea", UITextArea);
  41. class UIInputLine extends UIInputText {
  42. getFct()
  43. {
  44. return "textInput";
  45. }
  46. }
  47. registerUiClass("text", UIInputLine);
  48. registerUiClass("number", UIInputLine);
  49. class UISelect extends UIElement
  50. {
  51. init(){
  52. var size=(this.size)?this.size:12;
  53. var r = HTMLBuilder.rootElemDiv(size);
  54. var nsize=12;
  55. if(this.facultative) nsize-=4;
  56. var data = {
  57. type: this.type,
  58. id: this.elemId,
  59. size: nsize,
  60. label: this.placeholder
  61. };
  62. var prop ={
  63. };
  64. var options = [];
  65. for(var i=0; i<this.select.length; i++)
  66. {
  67. var opt= { text:this.select[i], prop: {}};
  68. if(i==0) opt.prop.selected="";
  69. opt.prop.value=this.select[i];
  70. options.push(opt);
  71. }
  72. r.append(HTMLBuilder.select(data, prop, options));
  73. this.root.find("select").formSelect();
  74. doFac(r,this);
  75. this.root.append(r);
  76. }
  77. setJson(e)
  78. {
  79. super.setJson(e);
  80. this.root.find("select").formSelect();
  81. }
  82. }
  83. registerUiClass("select", UISelect);
  84. class UISwitch extends UIElement
  85. {
  86. init()
  87. {
  88. var size=(this.size)?this.size:12;
  89. var r = HTMLBuilder.rootElemDiv(size);
  90. var nsize=12;
  91. if(this.facultative) nsize-=4;
  92. var data = {
  93. id: this.elemId,
  94. size: nsize,
  95. on: this.on,
  96. off: this.off
  97. };
  98. if(this.placeholder) r.append(HTMLBuilder.div({class: _inline_fields+_col_class()},
  99. HTMLBuilder.p(this.placeholder)));
  100. r.append(HTMLBuilder.switch(data, {inline: ""}, {inline: ""}));
  101. this.root.append(r);
  102. return r;
  103. }
  104. getJson()
  105. {
  106. return $("#"+this.elemId).prop('checked');
  107. }
  108. setJson(e)
  109. {
  110. $("#"+this.elemId).prop('checked', e);
  111. return this;
  112. }
  113. }
  114. registerUiClass("switch", UISwitch);
  115. class UICheckBox extends UIElement
  116. {
  117. init()
  118. {
  119. var prefix=this.elemId;
  120. var size=(this.size)?this.size:12;
  121. var r = HTMLBuilder.rootElemDiv(size);
  122. var nsize=12;
  123. if(this.facultative) nsize-=4;
  124. if(this.placeholder) r.append(HTMLBuilder.div({}, this.placeholder));
  125. var data = {
  126. id: this.elemId,
  127. size: nsize
  128. };
  129. for (var key in this.list) {
  130. if (this.list.hasOwnProperty(key)) {
  131. r.append(HTMLBuilder.checkbox({id: this.elemId+"_"+key, label: this.list[key]}));
  132. }
  133. }
  134. this.root.append(r);
  135. return r;
  136. }
  137. getJson()
  138. {
  139. var ret = {};
  140. var aret = [];
  141. for (var key in this.list) {
  142. if (this.list.hasOwnProperty(key)) {
  143. var id = this.elemId+"_"+key;
  144. if($('#'+id).prop("checked"))
  145. {
  146. aret.push(key);
  147. ret[key]=true;
  148. }else {
  149. ret[key]=false;
  150. }
  151. }
  152. }
  153. if(this.asArray)
  154. return aret;
  155. return ret;
  156. }
  157. setJson(e)
  158. {
  159. var obj = {};
  160. if(e instanceof Array)
  161. {
  162. for(var i=0; i<e.length;i++)
  163. obj[e[i]]=true;
  164. }else obj=e;
  165. for (var key in this.list) {
  166. if (this.list.hasOwnProperty(key)) {
  167. var id = this.elemId+"_"+key;
  168. var b = obj[key]?true:false;
  169. $("#"+id).prop("checked", b);
  170. }
  171. }
  172. return this;
  173. }
  174. }
  175. registerUiClass("checkbox", UICheckBox);