Kaynağa Gözat

支持术语显示模版设置

visuddhinanda 4 yıl önce
ebeveyn
işleme
ff910edf98
3 değiştirilmiş dosya ile 80 ekleme ve 14 silme
  1. 18 4
      app/term/note.js
  2. 23 7
      app/term/term.js
  3. 39 3
      app/ucenter/setting.js

+ 18 - 4
app/term/note.js

@@ -36,6 +36,10 @@ var gBuildinDictIsOpen = false;
 
 */
 function note_create() {
+	$.post("../ucenter/get_setting.php", {}, function (data, status) {
+		setting = JSON.parse(data);
+	});
+
 	wbw_channal_list_init();
 	note_sent_edit_dlg_init();
 	term_edit_dlg_init();
@@ -954,7 +958,7 @@ function render_one_sent_tran_a(iterator) {
 	html += "</span>";
 	html += '<span class="date">' + getPassDataTime(iterator.update_time) + "</span>";
 	html += "</div>";
-	html += "<div class='preview'>" + tranText + "</div>";
+	html += "<div class='preview'><span class='icon_sent_send_status'></span>" + tranText + "</div>";
 	html += "</div>";
 
 	html += '<div class="edit">';
@@ -977,7 +981,7 @@ function render_one_sent_tran_a(iterator) {
 	html += "<a onclick='tran_sent_edit_cancel(this)'>" + gLocal.gui.cancel + "</a>";
 	html += "</span>";
 	html += "<span style='display: inline-flex;'>";
-	html += '<span class="keybutton" >Ctrl</span>';
+	html += '<span class="keybutton" >Ctrl/⌘</span>';
 	html += "➕";
 	html += '<span class="keybutton" >Enter</span> = ';
 	if (parseInt(iterator.mypower) < 20) {
@@ -1393,6 +1397,8 @@ function set_more_button_display() {
 								$(".other_tran_div[sent='" + sentId + "']")
 									.children(".other_tran")
 									.html(html);
+								//初始化文本编辑框消息处理
+								tran_sent_textarea_event_init();
 							}
 						);
 					} else {
@@ -1552,12 +1558,20 @@ function note_sent_save_a(obj) {
 			//alert("second success");
 		})
 		.error(function (xhr, error, data) {
+			let sid = book + "-" + para + "-" + begin + "-" + end;
+
+			let sent_tran_div = $(".sent_tran[channel='" + channal + "'][sid='" + sid + "']");
+			if (sent_tran_div) {
+				sent_tran_div.first().children().find(".preview").first().removeClass("loading");
+				sent_tran_div.first().children().find(".preview").first().addClass("error");
+			}
+
 			switch (error) {
 				case "timeout":
-					alert("服务器长时间没有回应。");
+					alert("服务器长时间没有回应。请稍后重试。");
 					break;
 				case "error":
-					alert("与服务器通讯失败,您可能没有连接到网络。");
+					alert("与服务器通讯失败,您可能没有连接到网络。请稍后重试。");
 					break;
 				case "notmodified":
 					break;

+ 23 - 7
app/term/term.js

@@ -7,7 +7,7 @@ var arrWordIdTermId = new Array();
 
 //术语渲染模板
 var strTermTanslationTmp = "[%mean%](%pali% %mean2% %mymean%)";
-var strTermTanslationTmp2 = "[%mean%](%pali%)";
+var strTermTanslationTmp2 = "[%mean%]";
 
 var termCounter = new Array();
 var noteCounter = 0; //正文内注释计数器
@@ -409,6 +409,15 @@ function term_array_updata() {
 function term_updata_translation() {
 	termCounter = new Array();
 	noteCounter = 1;
+	//计算有效模版数量
+	let iValidTmp = 0;
+	if (typeof setting !== "undefined") {
+		for (const iterator of setting["term.template"]) {
+			if (iterator != "") {
+				iValidTmp++;
+			}
+		}
+	}
 	$("term").each(function () {
 		let status = $(this).attr("status");
 		let termText = $(this).text();
@@ -466,10 +475,18 @@ function term_updata_translation() {
 				if (renderTo == "wbw") {
 					noteText = "%note%";
 				} else {
-					if (termCounter[guid] == 1) {
-						noteText = strTermTanslationTmp;
+					if (typeof setting !== "undefined") {
+						let currTermCounter = termCounter[guid];
+						if (currTermCounter > iValidTmp) {
+							currTermCounter = iValidTmp;
+						}
+						noteText = setting["term.template"][currTermCounter - 1];
 					} else {
-						noteText = strTermTanslationTmp2;
+						if (termCounter[guid] == 1) {
+							noteText = strTermTanslationTmp;
+						} else {
+							noteText = strTermTanslationTmp2;
+						}
 					}
 				}
 
@@ -492,10 +509,9 @@ function term_updata_translation() {
 				noteText = noteText.replace("]", "</span>");
 				noteText = noteText.replace("%mean%", "<span class='term_mean'>" + mean + "</span>");
 				noteText = noteText.replace("%pali%", "<span class='term_pali'>" + pali + "</span>");
-				if(mean2!=""){
+				if (mean2 != "") {
 					noteText = noteText.replace("%mean2%", ", <span class='term_mean2'>" + mean2 + "</span>");
-				}
-				else{
+				} else {
 					noteText = noteText.replace("%mean2%", "");
 				}
 				noteText = noteText.replace("%note%", "<span class='term_note'>" + "" + "</span>");

+ 39 - 3
app/ucenter/setting.js

@@ -1,4 +1,11 @@
 var setting;
+$(document).load(function () {
+	$.post("../ucenter/get_setting.php", {}, function (data, status) {
+		try {
+			setting = JSON.parse(data);
+		} catch (e) {}
+	});
+});
 function setting_head_render(file) {
 	let html = '<svg class="head_icon" style="height: 3em;width: 3em;">';
 	html += '<use xlink:href="../head/images/"' + file + "></use>";
@@ -20,11 +27,40 @@ function setting_onload() {
 			//Library 设置
 
 			html = "";
-			html += "<h3>"+gLocal.gui.script+gLocal.gui.display+"</h3>";
-			html += "<div>"+gLocal.gui.main_code +"&nbsp;"+ setting_render_paliscript("lib.first_script") + "</div>";
-			html += "<div>"+gLocal.gui.sub_pcode +"&nbsp;"+ setting_render_paliscript("lib.second_script") + "</div>";
+			html += "<h3>" + gLocal.gui.script + gLocal.gui.display + "</h3>";
+			html +=
+				"<div>" + gLocal.gui.main_code + "&nbsp;" + setting_render_paliscript("lib.first_script") + "</div>";
+			html +=
+				"<div>" + gLocal.gui.sub_pcode + "&nbsp;" + setting_render_paliscript("lib.second_script") + "</div>";
+			html += "<h3>术语模版" + "</h3>";
+			html +=
+				"<div>第一次出现<input type='input' class='term_template' index='0' value='" +
+				setting["term.template"][0] +
+				"' placeholder='不能为空'/>" +
+				"</div>";
+			html +=
+				"<div>第二次出现<input type='input'  class='term_template' index='1' value='" +
+				setting["term.template"][1] +
+				"' placeholder='同上'/>" +
+				"</div>";
+			html +=
+				"<div>第三次出现<input type='input'  class='term_template' index='2' value='" +
+				setting["term.template"][2] +
+				"' placeholder='同上'/>" +
+				"</div>";
+			html +=
+				"<div>第四次出现<input type='input'  class='term_template' index='3' value='" +
+				setting["term.template"][3] +
+				"' placeholder='同上' />" +
+				"</div>";
+			html += "<div>以后出现同第四次</div>";
+			html += "<div><button onclick='setting_save()'>保存</button></div>";
 
 			$("#setting_library").html(html);
+			$(".term_template").change(function () {
+				$index = $(this).attr("index");
+				setting["term.template"][$index] = $(this).val();
+			});
 			//Library 设置结束
 
 			//Studio 设置