2
0

setting.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. var setting;
  2. $(document).load(function () {
  3. $.post("../ucenter/get_setting.php", {}, function (data, status) {
  4. try {
  5. setting = JSON.parse(data);
  6. } catch (e) {}
  7. });
  8. });
  9. function setting_head_render(file) {
  10. let html = '<svg class="head_icon" style="height: 3em;width: 3em;">';
  11. html += '<use xlink:href="../head/images/"' + file + "></use>";
  12. html += "</svg>";
  13. $("#head_img").html(html);
  14. }
  15. function setting_onload() {
  16. $.post("get_setting.php", {}, function (data, status) {
  17. try {
  18. setting = JSON.parse(data);
  19. let html;
  20. //通用设置
  21. html = "";
  22. html += gLocal.gui.interface_language + ":";
  23. $("#setting_general").html(html);
  24. //通用设置结束
  25. //Library 设置
  26. html = "";
  27. html += "<h3>" + gLocal.gui.script + gLocal.gui.display + "</h3>";
  28. html +=
  29. "<div>" + gLocal.gui.main_code + "&nbsp;" + setting_render_paliscript("lib.first_script") + "</div>";
  30. html +=
  31. "<div>" + gLocal.gui.sub_pcode + "&nbsp;" + setting_render_paliscript("lib.second_script") + "</div>";
  32. html += "<h3>术语模版" + "</h3>";
  33. html +=
  34. "<div>第一次出现<input type='input' class='term_template' index='0' value='" +
  35. setting["term.template"][0] +
  36. "' placeholder='不能为空'/>" +
  37. "</div>";
  38. html +=
  39. "<div>第二次出现<input type='input' class='term_template' index='1' value='" +
  40. setting["term.template"][1] +
  41. "' placeholder='同上'/>" +
  42. "</div>";
  43. html +=
  44. "<div>第三次出现<input type='input' class='term_template' index='2' value='" +
  45. setting["term.template"][2] +
  46. "' placeholder='同上'/>" +
  47. "</div>";
  48. html +=
  49. "<div>第四次出现<input type='input' class='term_template' index='3' value='" +
  50. setting["term.template"][3] +
  51. "' placeholder='同上' />" +
  52. "</div>";
  53. html += "<div>以后出现同第四次</div>";
  54. html += "<div><button onclick='setting_save()'>保存</button></div>";
  55. $("#setting_library").html(html);
  56. $(".term_template").change(function () {
  57. $index = $(this).attr("index");
  58. setting["term.template"][$index] = $(this).val();
  59. });
  60. //Library 设置结束
  61. //Studio 设置
  62. html = "";
  63. html += gLocal.gui.translation_language + ":";
  64. $("#setting_studio").html(html);
  65. //Studio 设置结束
  66. let dict_lang_others = new Array();
  67. for (const iterator of setting["_dict.lang"]) {
  68. if (setting["dict.lang"].indexOf(iterator) == -1) {
  69. dict_lang_others.push(iterator);
  70. }
  71. }
  72. html = "";
  73. html += gLocal.gui.magic_dict_language + ":";
  74. html += "<div style='display:flex;'>";
  75. html += "<fieldset style='width:10em;'>";
  76. html += "<legend>" + gLocal.gui.priority + "</legend>";
  77. html += "<ul id='ul_dict_lang1' class='dict_lang'>";
  78. let i = 0;
  79. for (const iterator of setting["dict.lang"]) {
  80. html +=
  81. "<li id='dict_lang1_li_" +
  82. i +
  83. "' value='" +
  84. iterator +
  85. "'>" +
  86. lang_get_org_name(iterator) +
  87. "</li>";
  88. i++;
  89. }
  90. html += "</ul>";
  91. html += "</fieldset>";
  92. html += "<fieldset style='width:10em;'>";
  93. html += "<legend>" + gLocal.gui.no_need + "</legend>";
  94. html += "<ul id='ul_dict_lang2' class='dict_lang'>";
  95. i = 0;
  96. for (const iterator of dict_lang_others) {
  97. html +=
  98. "<li id='dict_lang2_li_" +
  99. i +
  100. "' value='" +
  101. iterator +
  102. "'>" +
  103. lang_get_org_name(iterator) +
  104. "</li>";
  105. i++;
  106. }
  107. html += "</ul>";
  108. html += "</fieldset>";
  109. html += "</div>";
  110. $("#setting_dictionary").html(html);
  111. $("#ul_dict_lang1, #ul_dict_lang2")
  112. .sortable({
  113. connectWith: ".dict_lang",
  114. })
  115. .disableSelection();
  116. $("#ul_dict_lang1").sortable({
  117. update: function (event, ui) {
  118. let sortedIDs = $("#ul_dict_lang1").sortable("toArray");
  119. let newLang = new Array();
  120. for (const iSorted of sortedIDs) {
  121. newLang.push($("#" + iSorted).attr("value"));
  122. }
  123. setting["dict.lang"] = newLang;
  124. setting_save();
  125. },
  126. });
  127. } catch (e) {}
  128. });
  129. }
  130. function li_remove() {
  131. $(this).parent().remove();
  132. }
  133. var get_callback;
  134. function setting_get(key, callback) {
  135. get_callback = callback;
  136. $.post(
  137. "../ucenter/get_setting.php",
  138. {
  139. key: key,
  140. },
  141. function (data, status) {
  142. try {
  143. let arrSetting = JSON.parse(data);
  144. if (arrSetting.hasOwnProperty(key)) {
  145. get_callback(arrSetting[key]);
  146. } else {
  147. get_callback(false);
  148. }
  149. } catch (e) {
  150. get_callback(false);
  151. }
  152. }
  153. );
  154. }
  155. function setting_save() {
  156. $.post(
  157. "set_setting.php",
  158. {
  159. data: JSON.stringify(setting),
  160. },
  161. function (data, status) {
  162. ntf_show(data);
  163. }
  164. );
  165. }
  166. function setting_paliscript_change(set) {
  167. let x = document.getElementById(set);
  168. setting[set] = x.options[x.selectedIndex].text;
  169. setting_save();
  170. }
  171. function setting_render_paliscript(set) {
  172. let html = "";
  173. html += "<select id='" + set + "' onchange=\"setting_paliscript_change('" + set + "')\" style='font-family:\"Noto Sans\", \"Noto Sans SC\", \"Noto Sans TC\", \"ATaiThamKHNewV3-Normal\", Arial, Verdana'>";
  174. for (const iterator of setting["_lib.pali_script"]) {
  175. html += "<option value='" + iterator + "'";
  176. if (iterator == setting[set]) {
  177. html += "selected='selected'";
  178. }
  179. html += " style='font-family:\"Noto Sans\", \"Noto Sans SC\", \"Noto Sans TC\", \"ATaiThamKHNewV3-Normal\", Arial, Verdana'>";
  180. html += iterator;
  181. html += "</option>";
  182. }
  183. html += "</select>";
  184. return html;
  185. }