designer.html 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Designer</title>
  6. <meta name="description"
  7. content="Designer Drawing Block.">
  8. <link rel="stylesheet" href="{{ static_url("style.css") }}">
  9. <link rel="stylesheet" href="{{ static_url("jquery-ui.min.css") }}">
  10. <!--[if IE]>
  11. <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  12. <![endif]-->
  13. </head>
  14. <body>
  15. <div id="page_info">Designer Block. Generated by BORA 0.0.1</div>
  16. <img src="{{ static_url('background.png') }}"></img>
  17. <button class="button showhide" onclick="showhide()">Show/Hide</button>
  18. {% if data['style'] %}
  19. {% for key in data['style'] %}
  20. <div style='position: absolute; top: {{ data['style'][key]['top'] }}; left:{{ data['style'][key]['left'] }}; width:{{ data['style'][key]['width'] }}px; height:{{ data['style'][key]['height'] }}px;' min="{{ data['style'][key]['min'] }}" max="{{ data['style'][key]['max'] }}" lesser="{{ data['style'][key]['lesser'] }}" larger="{{ data['style'][key]['larger'] }}" class='varbox' id="{{ key }}">
  21. <p><span style="color: #000; font-size: {{ data['style'][key]['header']['size'] }}; font-weight: {{ data['style'][key]['header']['weight'] }};" class="title">{{ data['style'][key]['header']['title'] }}</span>&nbsp;&nbsp;&nbsp;&nbsp;
  22. <span style="color: #000; font-size: {{ data['style'][key]['unit']['size'] }}; font-weight: {{ data['style'][key]['unit']['weight'] }};" class="varval"> XXX.XX <span class='unit_title'> {{ data['style'][key]['unit']['title'] }}</span></span></p>
  23. </div>
  24. {% end %}
  25. {% else %}
  26. {% end %}
  27. <div id="tool-btn">
  28. <span class="info">Variable</span>
  29. <select id="varname" style="font-size:16pt;">
  30. {% for key in data['cache'] %}
  31. <option value={{data['cache'][key]}}>{{key}}</option>
  32. {% end %}
  33. </select>
  34. <br /><br />
  35. <span class="info">Title</span>
  36. <input type="text" id="elem_title_text" placeholder="text" style="font-size:16pt; width=100px;"/>
  37. <input type="text" id="elem_title_size" placeholder="size" style="font-size:16pt; width=100px;"/>
  38. <input type="text" id="elem_lesser_range" placeholder="smaller than (red)" style="font-size:16pt; width=100px;"/>
  39. <input type="text" id="elem_larger_range" placeholder="larger than (red)" style="font-size:16pt; width=100px;"/>
  40. <select id="elem_title_style" style="font-size:16pt;">
  41. <option value="400">normal</option>
  42. <option value="700">bold</option>
  43. </select>
  44. <br /><br />
  45. <span class="info">Value</span>
  46. <input type="text" id="elem_unit_text" placeholder="unit" style="font-size:16pt; width=100px;"/>
  47. <input type="text" id="elem_unit_size" placeholder="size" style="font-size:16pt; width=100px;"/>
  48. <input type="text" id="elem_min_range" placeholder="minimum (green)" style="font-size:16pt; width=100px;"/>
  49. <input type="text" id="elem_max_range" placeholder="maximum (green)" style="font-size:16pt; width=100px;"/>
  50. <select id="elem_unit_style" style="font-size:16pt;">
  51. <option value="400">normal</option>
  52. <option value="700">bold</option>
  53. </select>
  54. <br /><br />
  55. <button class="button highlight" onclick="highlight()">Highlight</button>
  56. <button class="button add" onclick="add()">Add</button>
  57. <button class="button remove" onclick="myremove()">Remove</button>
  58. <button class="button save" onclick="mysave({{ data['cache'] }})">Save</button>
  59. </div>
  60. <!-- java script -->
  61. <script src="{{ static_url("jquery-1.12.3.min.js") }}"></script>
  62. <script src="{{ static_url("jquery-ui.min.js") }}"></script>
  63. <script>
  64. function showhide() {
  65. console.log("Show or Hide");
  66. $("#tool-btn").toggle();
  67. }
  68. function add() {
  69. console.log("add element");
  70. title_text = $("#elem_title_text").val();
  71. title_color = "#000000";
  72. //title_color = $("#elem_title_color").val();
  73. title_size = $("#elem_title_size").val();
  74. title_style = $("#elem_title_style option:selected").val();
  75. unit_text = $("#elem_unit_text").val();
  76. unit_color = "#000";
  77. //unit_color = $("#elem_unit_color").val();
  78. unit_size = $("#elem_unit_size").val();
  79. unit_style = $("#elem_unit_style option:selected").val();
  80. data_min = $("#elem_min_range").val();
  81. data_max = $("#elem_max_range").val();
  82. data_lesser = $("#elem_lesser_range").val();
  83. data_larger = $("#elem_larger_range").val();
  84. varval = $( "#varname option:selected").val();
  85. varname = $("#varname option:selected").text();
  86. console.log(title_text, unit_text, varname, varval);
  87. if($("#" + varname).length == 0) {
  88. html_text = "<div style='position: absolute; top:0; left:0;' class='varbox' id='" + varname + "' min='" + data_min + "' max='" + data_max + "' lesser='" + data_lesser + "' larger='" + data_larger + "'>";
  89. html_text += "<p><span style='color: " + title_color + "; font-size:" + title_size + "px; font-weight: " + title_style + ";' " + "class='title'>" + title_text + "</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style='color: " + unit_color + "; font-size:" + unit_size + "px; font-weight: " + unit_style + ";' " + "class='varval'>" + parseFloat(varval).toFixed(2) + " </span><span class='unit_title'>" + unit_text + "</span></p>";
  90. html_text += "</div>";
  91. $( "body" ).append(html_text);
  92. $("#"+varname).draggable();
  93. $("#"+varname).resizable();
  94. }
  95. }
  96. function myremove() {
  97. varname = $("#varname option:selected").text();
  98. if($("#" + varname).length > 0) {
  99. $("#"+varname).remove();
  100. console.log(varname +" removed.");
  101. }
  102. }
  103. function mysave(data) {
  104. console.log("saving...");
  105. console.log(data);
  106. var position = {};
  107. for(key in data) {
  108. var tmp = {};
  109. console.log(key);
  110. if($("#" + key).length > 0) {
  111. tmp["left"] = $("#"+key).css("left");
  112. tmp["top"] = $("#"+key).css("top");
  113. tmp["width"] = $("#"+key).width();
  114. tmp["height"] = $("#"+key).height();
  115. //tmp["min"] = $("#elem_min_range").val();
  116. //tmp["max"] = $("#elem_max_range").val();
  117. tmp["min"] = $("#"+key).attr("min");
  118. tmp["max"] = $("#"+key).attr("max");
  119. tmp["lesser"] = $("#"+key).attr("lesser");
  120. tmp["larger"] = $("#"+key).attr("larger");
  121. header = {};
  122. header["title"] = $(".title", "#"+key).text();
  123. //header["color"] = $(".title", "#"+key).css("color");
  124. header["size"] = $(".title", "#"+key).css("font-size");
  125. header["weight"] = $(".title", "#"+key).css("font-weight");
  126. unit = {};
  127. unit["title"] = $(".unit_title", "#"+key).text();
  128. //unit["color"] = $(".varval", "#"+key).css("color");
  129. unit["size"] = $(".varval", "#"+key).css("font-size");
  130. unit["weight"] = $(".varval", "#"+key).css("font-weight");
  131. tmp["header"] = header;
  132. tmp["unit"] = unit;
  133. position[key] = tmp;
  134. }
  135. }
  136. console.log(position);
  137. var dataToSend = JSON.stringify(position);
  138. $.ajax({
  139. url: '/save/',
  140. type: 'POST',
  141. data: dataToSend,
  142. success: function (response) {
  143. var objresponse = JSON.parse(response);
  144. console.log(objresponse);
  145. },
  146. error: function () {
  147. console.log("Error.")
  148. }
  149. });
  150. }
  151. function highlight() {
  152. varname = $("#varname option:selected").text();
  153. console.log(varname);
  154. if ($("#"+varname).hasClass("box_highlight")) {
  155. $("#"+varname).removeClass("box_highlight");
  156. } else {
  157. $("#"+varname).addClass("box_highlight");
  158. }
  159. }
  160. jQuery(window).load(function () {
  161. $("#varname > option").each(function() {
  162. if ($('#'+this.text).length){
  163. $('#'+this.text).draggable();
  164. $('#'+this.text).resizable();
  165. }
  166. //console.log(this.text + ' ' + this.value);
  167. });
  168. });
  169. </script>
  170. </body>
  171. </html>