ui_basic.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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: _col_class()}, this.placeholder));
  99. r.append(HTMLBuilder.switch(data, {inline: ""}, {inline: ""}));
  100. this.root.append(r);
  101. return r;
  102. }
  103. getJson()
  104. {
  105. return $("#"+this.elemId).prop('checked');
  106. }
  107. setJson(e)
  108. {
  109. $("#"+this.elemId).prop('checked', e);
  110. return this;
  111. }
  112. }
  113. registerUiClass("switch", UISwitch);
  114. class UICheckBox extends UIElement
  115. {
  116. init()
  117. {
  118. var prefix=this.elemId;
  119. var size=(this.size)?this.size:12;
  120. var r = HTMLBuilder.rootElemDiv(size);
  121. var nsize=12;
  122. if(this.facultative) nsize-=4;
  123. if(this.placeholder) r.append(HTMLBuilder.div({}, this.placeholder));
  124. var data = {
  125. id: this.elemId,
  126. size: nsize
  127. };
  128. for (var key in this.list) {
  129. if (this.list.hasOwnProperty(key)) {
  130. r.append(HTMLBuilder.checkbox({id: this.elemId+"_"+key, label: this.list[key]}));
  131. }
  132. }
  133. this.root.append(r);
  134. return r;
  135. }
  136. getJson()
  137. {
  138. var ret = {};
  139. var aret = [];
  140. for (var key in this.list) {
  141. if (this.list.hasOwnProperty(key)) {
  142. var id = this.elemId+"_"+key;
  143. if($('#'+id).prop("checked"))
  144. {
  145. aret.push(key);
  146. ret[key]=true;
  147. }else {
  148. ret[key]=false;
  149. }
  150. }
  151. }
  152. if(this.asArray)
  153. return aret;
  154. return ret;
  155. }
  156. setJson(e)
  157. {
  158. var obj = {};
  159. if(e instanceof Array)
  160. {
  161. for(var i=0; i<e.length;i++)
  162. obj[e[i]]=true;
  163. }else obj=e;
  164. for (var key in this.list) {
  165. if (this.list.hasOwnProperty(key)) {
  166. var id = this.elemId+"_"+key;
  167. var b = obj[key]?true:false;
  168. $("#"+id).prop("checked", b);
  169. }
  170. }
  171. return this;
  172. }
  173. }
  174. registerUiClass("checkbox", UICheckBox);