setting.js 5.3 KB

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