标签作为气泡注释
popup_init();
//刷新句子链接递归,有加层数限制。
//note_refresh_new();
//将新的数据添加到数据总表
_arrData = _arrData.concat(sentData);
note_ref_init();
//获取术语字典
term_get_dict();
//刷新channel列表
note_channal_list();
//显示不同的巴利语脚本
refresh_pali_script();
//把巴利语单词用分隔用于点词查询等
splite_pali_word();
//处理编辑框消息
tran_sent_textarea_event_init();
if (callback) {
callback();
}
} catch (e) {
console.error(e);
}
}
}
);
} else {
//term_get_dict();
}
}
//渲染巴利原文句子
function render_pali_sent(palitext){
let output = "";
output =
"";
if(palitext.book<1000){
output += palitext.palitext;
}
else{
output += marked(palitext.palitext);
}
output +=" ";
return output;
}
//渲染阅读模式句子
function render_read_mode_sent(iterator) {
let id = iterator.id;
let strPalitext =render_pali_sent(iterator);
if (
$("#" + id)
.parent()
.parent()
.children(".para_div").length == 0
) {
let tranDivHtml = "";
if (_channal != "") {
let arrChannal = _channal.split(",");
for (let index = arrChannal.length - 1; index >= 0; index--) {
const iChannal = arrChannal[index];
tranDivHtml += "";
}
} else {
tranDivHtml = "";
}
$("#" + id)
.parent()
.parent()
.prepend(
"" +
tranDivHtml +
""
);
}
$("#" + id)
.parent()
.parent()
.children(".para_div")
.find(".palitext")
.first()
.append(strPalitext);
let htmlSent = "";
htmlSent += "";
htmlSent += "";
htmlSent += "" + strPalitext + "";
htmlSent += "";
htmlSent += iterator.book + "-" + iterator.para + "-" + iterator.begin + "-" + iterator.end;
htmlSent += "";
htmlSent += "";
htmlSent += "";
htmlSent += "";
for (const oneTran of iterator.translation) {
let html = "";
html += marked(term_std_str_to_tran(oneTran.text, oneTran.channal, oneTran.editor, oneTran.lang));
html += "";
htmlSent += html;
let channelId = "0";
if (_channal != "") {
channelId = oneTran.channal;
}
$("#" + id)
.parent()
.parent()
.find(".tran_div_channel[channal='" + channelId + "']")
.append(html);
}
htmlSent += "";
htmlSent += ""; //note_body
htmlSent += "";
htmlSent += "" + iterator.ref + "";
htmlSent +=
"" +
iterator.book +
"-" +
iterator.para +
"-" +
iterator.begin +
"-" +
iterator.end +
"";
htmlSent += ""; //note_foot
return htmlSent;
}
//生成channel列表
function note_channal_list() {
console.log("note_channal_list start");
let arrSentInfo = new Array();
$("note").each(function () {
let info = $(this).attr("info");
if (info && info != "") {
arrSentInfo.push({ id: "", data: info });
}
});
if (arrSentInfo.length > 0) {
$.post(
"../term/channal_list.php",
{
setting: "",
data: JSON.stringify(arrSentInfo),
},
function (data, status) {
if (status == "success") {
try {
let active = JSON.parse(data);
_channalData = active;
for (const iterator of _my_channal) {
let found = false;
for (const one of active) {
if (iterator.id == one.id) {
found = true;
break;
}
}
if (found == false) {
_channalData.push(iterator);
}
}
let strHtml = "";
for (const iterator of _channalData) {
if (_channal.indexOf(iterator.id) >= 0) {
strHtml += render_channal_list(iterator);
}
}
for (const iterator of _channalData) {
if (_channal.indexOf(iterator.id) == -1) {
strHtml += render_channal_list(iterator);
}
}
$("#channal_list").html(strHtml);
set_more_button_display();
} catch (e) {
console.error(e);
}
}
}
);
}
}
function find_channal(id) {
for (const iterator of _channalData) {
if (id == iterator.id) {
return iterator;
}
}
return false;
}
//生成版本列表
//选择列表中的版本切换页面
function render_channal_list(channalinfo) {
let output = "";
let checked = "";
let selected = "noselect";
if (_channal.indexOf(channalinfo.id) >= 0) {
checked = "checked";
selected = "selected";
}
output += "";
output += '";
output +=
'";
output += "";
output += "";
if (parseInt(channalinfo.power) == 30) {
output += gLocal.gui.your.slice(0, 1);
} else {
output += channalinfo.nickname.slice(0, 1);
}
output += "";
output += "";
output += "";
output += "";
return output;
}
function onChannelMultiSelectStart() {
$(".channel_select").show();
}
function onChannelMultiSelectCancel() {
$(".channel_select").hide();
}
function onChannelChange() {
let channal_list = new Array();
$("[channal_id]").each(function () {
if (this.checked) {
channal_list.push($(this).attr("channal_id"));
}
});
set_channal(channal_list.join());
}
//点击引用 需要响应的事件
function note_ref_init() {
$("chapter").click(function () {
let bookid = $(this).attr("book");
let para = $(this).attr("para");
window.open("../reader/?view=chapter&book=" + bookid + "¶=" + para, "_blank");
});
$("para").click(function () {
let bookid = $(this).attr("book");
let para = $(this).attr("para");
window.open("../reader/?view=para&book=" + bookid + "¶=" + para, "_blank");
});
}
/*
生成编辑模式句子块
id
palitext
tran
ref
*/
function note_json_html(in_json) {
let output = "";
output += '";
let strPalitext = render_pali_sent(in_json);
output += "";
output += "";
output += "" + strPalitext + "";
output += "";
output += "";
output += "";
//译文开始
output += "";
for (const iterator of in_json.translation) {
output += render_one_sent_tran_a(iterator);
}
output += "";
//译文结束
output += ""; /**note_body end */
//工具栏开始
output += "";
output += "";
//工具栏结束
//未选择的其他译文开始
output += "";
output += "";
output += "";
return output;
}
//设置取消输入框的编辑模式
function sent_tran_set_edit_mode(obj, isEditMode) {
$(".sent_tran").removeClass("edit_mode");
if (isEditMode) {
let jqObj = $(obj);
while (!jqObj.hasClass("sent_tran")) {
jqObj = jqObj.parent();
if (!jqObj) {
return;
}
}
jqObj.addClass("edit_mode");
}
}
function sent_tran_edit(obj) {
let jqObj = $(obj);
while (!jqObj.hasClass("sent_tran")) {
jqObj = jqObj.parent();
if (!jqObj) {
return;
}
}
if (jqObj.hasClass("edit_mode")) {
jqObj.removeClass("edit_mode");
} else {
$(".sent_tran").removeClass("edit_mode");
jqObj.addClass("edit_mode");
}
}
//采纳 pr
function sent_pr_merge(id) {
$.post(
"../usent/sent_pr_merge.php",
{
id: id,
},
function (data) {
let result = JSON.parse(data);
if (result.status > 0) {
alert("error" + result.message);
} else {
ntf_show("成功采纳");
}
}
);
}
function sent_commit(src, id) {
commit_init({
src: src,
sent: [id],
express: false,
});
}
function render_icon_button(icon_id, event, tiptitle) {
let html = "";
html += "";
return html;
}
function render_one_sent_tran_a(iterator, diff = false) {
let mChannel = get_channel_by_id(iterator.channal);
let tranText;
let sid = iterator.book + "-" + iterator.para + "-" + iterator.begin + "-" + iterator.end;
if (iterator.text == "") {
if (typeof iterator.channalinfo == "undefined") {
tranText =
"" +
"空" +
"@" +
iterator.editor_name.nickname +
"";
} else {
tranText =
"" +
iterator.channalinfo.name +
"-" +
iterator.channalinfo.lang +
"";
}
} else {
if (diff) {
let orgText = "";
for (const oneSent of _arrData) {
if (
oneSent.book == iterator.book &&
oneSent.para == iterator.para &&
oneSent.begin == iterator.begin &&
oneSent.end == iterator.end
) {
for (const tran of oneSent.translation) {
if (tran.channal == iterator.channal) {
orgText = tran.text;
break;
}
}
break;
}
}
tranText = str_diff(orgText, iterator.text);
} else {
//note_init处理句子链接
tranText = note_init(term_std_str_to_tran(iterator.text, iterator.channal, iterator.editor, iterator.lang));
}
}
let html = "";
html += "";
html += "";
html += '";
//tool_bar 结束
html += '";
html += '';
html += '";
html += '';
html += '';
html += "";
html += "";
html += '';
//html += ""
html += '';
html += ' = ';
html += "" + gLocal.gui.cancel + "";
html += "";
html += "";
html += '';
html += "➕";
html += ' = ';
if (parseInt(iterator.mypower) < 20) {
html += "";
html += gLocal.gui.submit + "" + gLocal.gui.suggest + gLocal.gui.translation + "";
html += "";
} else {
html += "";
html += gLocal.gui.save;
html += "";
}
html += ' = ';
html += gLocal.gui.next_line;
html += "MarkDown✅";
html += "";
html += "";
html += '"; //end of foot bar
html += "";
html += "";
//sent_tran_inner结束
html += '';
html += "";
return html;
}
function tran_sent_textarea_event_init() {
let textarea = document.querySelectorAll(".tran_sent_textarea");
for (let iterator of textarea) {
iterator.onkeydown = function (e) {
let menu = document.querySelector("#menu");
switch (e.key) {
case "Enter":
if (menu && menu.style.display == "block") {
let value = textarea.value;
let selectionStart = textarea.selectionStart;
let str1 = value.slice(0, selectionStart);
let str2 = value.slice(selectionStart);
textarea.value = str1 + data[menuFocusIndex] + "]]" + str2;
menu.style.display = "none";
return false;
} else {
if (e.ctrlKey) {
//回车存盘
tran_sent_save(e.currentTarget);
return false;
}
}
break;
case "Escape":
tran_sent_edit_cancel(e.currentTarget);
break;
default:
break;
}
};
}
}
function render_one_sent_tran(book, para, begin, end, iterator) {
let output = "";
output += "";
//译文工具按钮开始
output += "";
output +=
"";
//译文工具栏开始
output += "";
//译文工具栏结束
output += "";
//译文工具按钮结束
//译文正文开始
output +=
"";
if (iterator.text == "") {
output +=
"" +
iterator.channalinfo.name +
"-" +
iterator.channalinfo.lang +
"";
} else {
//note_init处理句子链接
output += note_init(term_std_str_to_tran(iterator.text, iterator.channal, iterator.editor, iterator.lang));
}
output += "";
//译文正文结束
output += "";
//单个channal译文框结束
return output;
}
function hidden_control(obj) {
if ($(".lang_2")[0].style.display == "none" && $(".lang_3")[0].style.display == "none") {
$(".lang_2").show();
$(".lang_3").show();
obj.innerHTML = "⬅"
}
else {
$(".lang_2").hide();
$(".lang_3").hide();
obj.innerHTML = "➡"
}
}
function add_new_tran_button_click(obj) {
let html = "";
var first_lang = "";
for (const iterator of _my_channal) {
if (iterator.lang) {
first_lang = iterator.lang;
break;
}
}
//母语channel列表
html += "";
html += "- ";
html += gLocal.language[first_lang];
html += "
";
for (const iterator of _my_channal) {
if (iterator.status > 0 && first_lang.indexOf(iterator.lang) != -1 && iterator.lang != 0) {
if (_channal.indexOf(iterator.id) < 0) {
html += '- ' + iterator.name;
if (parseInt(iterator.power) < 20) {
html += "(建议)";
}
html += "
";
}
}
}
html += " "
html += "
";
//非母语channel列表
html += "";
html += "- ";
html += gLocal.gui.other;
html += " "
html += "
";
for (const iterator of _my_channal) {
if (iterator.status > 0 && first_lang.indexOf(iterator.lang) == -1 && iterator.lang != 0) {
if (_channal.indexOf(iterator.id) < 0) {
html += '- ' + iterator.name;
if (parseInt(iterator.power) < 20) {
html += "(建议)";
}
html += "
";
}
}
}
html += "
";
//协作channel列表-带中文
html += "";
//协作channel列表-不带中文
html += "";
html += "";
$(obj).parent().children(".tran_text_tool_bar").first().html(html);
if ($(obj).parent().children(".tran_text_tool_bar").css("display") == "block") {
$(obj).parent().children(".tran_text_tool_bar").first().hide();
} else {
$(obj).parent().children(".tran_text_tool_bar").first().show();
$(document).one("click", function () {
$(obj).parent().children(".tran_text_tool_bar").first().hide();
});
event.stopPropagation();
$(obj).parent().show();
}
}
function checkStringIsChinese(str) {
var pattern = new RegExp("[\u4E00-\u9FA5]+");
if (pattern.test(str)) {
return true;
}
return false;
}
function tool_bar_show(element) {
if ($(element).find(".tran_text_tool_bar").css("display") == "none") {
$(element).find(".tran_text_tool_bar").css("display", "flex");
$(element).find(".icon_expand").css("transform", "rotate(-180deg)");
$(element).css("background-color", "var(--btn-bg-color)");
$(element).css("visibility", "visible");
$(document).one("click", function () {
$(element).find(".tran_text_tool_bar").hide();
$(element).css("background-color", "var(--nocolor)");
$(element).find(".icon_expand").css("transform", "unset");
$(element).css("visibility", "");
});
event.stopPropagation();
} else {
$(element).find(".tran_text_tool_bar").hide();
$(element).css("background-color", "var(--nocolor)");
$(element).find(".icon_expand").css("transform", "unset");
$(element).css("visibility", "");
}
}
function new_sentence(book, para, begin, end, channel, obj) {
let newsent = { id: "", text: "", lang: "", channal: channel };
for (let iterator of _arrData) {
if (iterator.book == book && iterator.para == para && iterator.begin == begin && iterator.end == end) {
let found = false;
for (const tran of iterator.translation) {
if (tran.channal == channel) {
found = true;
break;
}
}
if (!found) {
iterator.translation.push(newsent);
}
}
}
if ($(obj).parent().parent().css("display") == "block") {
$(obj).parent().parent().hide();
}
note_edit_sentence(book, para, begin, end, channel);
}
//显示更多译文按钮动作
function set_more_button_display() {
$(".other_tran_div").each(function () {
const sentid = $(this).attr("sent").split("-");
const book = sentid[0];
const para = sentid[1];
const begin = sentid[2];
const end = sentid[3];
let count = 0;
for (const iterator of _channalData) {
if (iterator.final) {
for (const onesent of iterator.final) {
let id = onesent.id.split("-");
if (book == id[0] && para == id[1] && begin == id[2] && end == id[3] && onesent.final) {
if (_channal.indexOf(iterator.id) == -1) {
count++;
}
}
}
}
}
if (count > 0) {
$(this).find(".other_tran_num").html(count);
$(this).find(".other_tran_num").attr("style", "display:inline-flex;");
$(this)
.find(".other_bar")
.click(function () {
const sentid = $(this).parent().parent().attr("sent").split("-");
const book = sentid[0];
const para = sentid[1];
const begin = sentid[2];
const end = sentid[3];
let sentId = $(this).parent().parent().attr("sent");
if ($(this).parent().parent().siblings(".other_tran").first().css("display") == "none") {
$(".other_tran_div[sent='" + sentId + "']")
.children(".other_tran")
.slideDown();
$(this).siblings(".more_tran ").css("transform", "unset");
$.get(
"../usent/get.php",
{
book: book,
para: para,
begin: begin,
end: end,
},
function (data, status) {
let arrSent = JSON.parse(data);
let html = "";
for (const iterator of arrSent) {
if (_channal.indexOf(iterator.channal) == -1) {
html += render_one_sent_tran_a(iterator);
}
}
html += "";
let sentId =
arrSent[0].book +
"-" +
arrSent[0].paragraph +
"-" +
arrSent[0].begin +
"-" +
arrSent[0].end;
$(".other_tran_div[sent='" + sentId + "']")
.children(".other_tran")
.html(html);
//初始化文本编辑框消息处理
tran_sent_textarea_event_init();
}
);
} else {
$(".other_tran_div[sent='" + sentId + "']")
.children(".other_tran")
.slideUp();
$(this).siblings(".more_tran ").css("transform", "rotate(-90deg)");
}
});
} else {
//隐藏自己
//$(this).hide();
$(this).find(".other_tran_span").addClass("disable"); //gLocal.gui.no + gLocal.gui.other + gLocal.gui.translation
//$(this).find(".more_tran").hide();
}
});
}
function note_edit_sentence(book, para, begin, end, channal) {
let channalInfo;
for (const iterator of _channalData) {
if (iterator.id == channal) {
channalInfo = iterator;
break;
}
}
for (const iterator of _arrData) {
if (iterator.book == book && iterator.para == para && iterator.begin == begin && iterator.end == end) {
for (const tran of iterator.translation) {
if (tran.channal == channal) {
let html = "";
html += "" + channalInfo.name + "@" + channalInfo.nickname + "";
html +=
"";
$("#edit_dialog_content").html(html);
$("#note_sent_edit_dlg").dialog("open");
return;
}
}
}
}
alert("未找到句子");
}
function tran_sent_edit_cancel(obj) {
sent_tran_set_edit_mode(obj, false);
}
function tran_sent_save(obj) {
let sentDiv = find_sent_tran_div(obj);
if (sentDiv) {
let textarea = $(sentDiv).children().find(".tran_sent_textarea").first();
let isPr = $(textarea).attr("is_pr");
if (isPr == "true") {
note_pr_save(textarea);
} else {
note_sent_save_a(textarea);
}
sent_tran_set_edit_mode(textarea, false);
} else {
console.error("sent div not found");
}
}
//保存pr句子 新
function note_pr_save(obj) {
let id = $(obj).attr("dbid");
let sid = $(obj).attr("sid").split("-");
let book = sid[0];
let para = sid[1];
let begin = sid[2];
let end = sid[3];
let channel = $(obj).attr("channel");
let text = $(obj).val();
let sent_tran_div = find_sent_tran_div(obj);
$.post(
"../usent/pr_post.php",
{
id: id,
book: book,
para: para,
begin: begin,
end: end,
channel: channel,
text: text,
},
sent_save_callback
);
if (sent_tran_div) {
$(sent_tran_div).addClass("loading");
}
}
//保存译文句子 新
function note_sent_save_a(obj) {
let id = $(obj).attr("dbid");
let sid = $(obj).attr("sid").split("-");
let book = sid[0];
let para = sid[1];
let begin = sid[2];
let end = sid[3];
let channal = $(obj).attr("channel");
let text = $(obj).val();
let sent_tran_div = find_sent_tran_div(obj);
$.ajaxSetup({
timeout: 5000,
});
$.post("../usent/sent_post.php", {
id: id,
book: book,
para: para,
begin: begin,
end: end,
channal: channal,
text: text,
lang: "zh",
})
.done(function (data) {
sent_save_callback(data);
})
.fail(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.removeClass("loading");
sent_tran_div.addClass("error");
}
switch (error) {
case "timeout":
alert("服务器长时间没有回应。请稍后重试。");
break;
case "error":
alert("与服务器通讯失败,您可能没有连接到网络。请稍后重试。");
break;
case "notmodified":
break;
default:
break;
}
});
if (sent_tran_div) {
$(sent_tran_div).addClass("loading");
$(sent_tran_div).removeClass("error");
}
}
function update_sent_tran(sentData) {}
function sent_save_callback(data) {
let result;
try {
result = JSON.parse(data);
} catch (e) {
alert(e.message);
return;
}
if (result.status > 0) {
alert("error" + result.message);
} else {
let sid = result.book + "-" + result.para + "-" + result.begin + "-" + result.end;
let sent_tran_div = $(
".sent_tran[dbid='" + result.id + "'][channel='" + result.channal + "'][sid='" + sid + "']"
);
if (sent_tran_div) {
sent_tran_div.removeClass("loading");
}
if (result.commit_type == 1 || result.commit_type == 2) {
ntf_show("成功修改");
if (sent_tran_div) {
let divPreview = sent_tran_div.find(".preview").first();
if (result.text == "") {
let channel_info = "Empty";
let thisChannel = find_channal(result.channal);
if (thisChannel) {
channel_info = thisChannel.name + "-" + thisChannel.nickname;
}
divPreview.html("" + channel_info + "");
} else {
divPreview.html(
marked(term_std_str_to_tran(result.text, result.channal, result.editor, result.lang))
);
term_updata_translation();
popup_init();
for (const iterator of _arrData) {
if (
iterator.book == result.book &&
iterator.para == result.para &&
iterator.begin == result.begin &&
iterator.end == result.end
) {
for (const tran of iterator.translation) {
if (tran.channal == result.channal) {
tran.text = result.text;
break;
}
}
}
}
}
}
} else if (result.commit_type == 3) {
ntf_show("已经提交修改建议");
} else {
ntf_show("未提交");
}
}
}
//保存译文句子
function note_sent_save() {
let id = $("#edit_dialog_text").attr("sent_id");
let book = $("#edit_dialog_text").attr("book");
let para = $("#edit_dialog_text").attr("para");
let begin = $("#edit_dialog_text").attr("begin");
let end = $("#edit_dialog_text").attr("end");
let channal = $("#edit_dialog_text").attr("channal");
let text = $("#edit_dialog_text").val();
$.post(
"../usent/sent_post.php",
{
id: id,
book: book,
para: para,
begin: begin,
end: end,
channal: channal,
text: text,
lang: "zh",
},
function (data) {
let result = JSON.parse(data);
if (result.status > 0) {
alert("error" + result.message);
} else {
if (result.commit_type == 1 || result.commit_type == 2) {
ntf_show("成功修改");
if (result.text == "") {
let channel_info = "Empty";
let thisChannel = find_channal(result.channal);
if (thisChannel) {
channel_info = thisChannel.name + "-" + thisChannel.nickname;
}
$(
"#tran_text_" +
result.book +
"_" +
result.para +
"_" +
result.begin +
"_" +
result.end +
"_" +
result.channal
).html("" + channel_info + "");
} else {
$(
"#tran_text_" +
result.book +
"_" +
result.para +
"_" +
result.begin +
"_" +
result.end +
"_" +
result.channal
).html(marked(term_std_str_to_tran(result.text, result.channal, result.editor, result.lang)));
term_updata_translation();
for (const iterator of _arrData) {
if (
iterator.book == result.book &&
iterator.para == result.para &&
iterator.begin == result.begin &&
iterator.end == result.end
) {
for (const tran of iterator.translation) {
if (tran.channal == result.channal) {
tran.text = result.text;
break;
}
}
}
}
}
} else if (result.commit_type == 3) {
ntf_show("已经提交修改建议");
} else {
ntf_show("未提交");
}
}
}
);
}
function copy_ref(book, para, begin, end) {
let strRef = "{{" + book + "-" + para + "-" + begin + "-" + end + "}}";
copy_to_clipboard(strRef);
}
function goto_nissaya(book, para, begin = 0, end = 0) {
window.open("../nissaya/index.php?book=" + book + "¶=" + para + "&begin=" + begin + "&end=" + end, "nissaya");
}
function edit_in_studio(book, para, begin, end) {
wbw_channal_list_open(book, [para]);
}
//显示和隐藏某个内容 如 巴利文
function setVisibility(key, value) {
switch (key) {
case "palitext":
if ($(value).is(":checked")) {
$(".palitext").show();
} else {
$(".palitext").hide();
}
break;
default:
break;
}
}
function note_show_pali_sim(SentId) {
pali_sim_dlg_open(SentId, 0, 20);
}
function set_pali_script(pos, script) {
if (script == "none") {
$(".palitext" + pos).html("");
} else {
$(".palitext" + pos).each(function () {
let html = $(this).siblings(".palitext_roma").first().html();
$(this).html(html);
});
$(".palitext" + pos)
.find("*")
.contents()
.filter(function () {
return this.nodeType != 1;
})
.wrap(" ");
$(".palitext" + pos)
.contents()
.filter(function () {
return this.nodeType != 1;
})
.wrap(" ");
$("pl" + pos).html(function (index, oldcontent) {
switch(script){
case "မြန်မာ":
return roman_to_my(oldcontent);
case "සිංහල":
return roman_to_si(oldcontent);
case "ᨲ᩠ᩅᩫᨴᩱ᩠ᨿᨵᨾ᩠ᨾ᩼":
return roman_to_tai(oldcontent);
case "อักษรไทย":
return roman_to_thai(oldcontent);
default:
return(oldcontent);
}
});
}
}
function splite_pali_word() {
$("pali")
.contents()
.filter(function () {
return this.nodeType != 1;
})
.wrap(" ");
$("pl").each(function () {
let html = $(this).html();
$(this).html("" + html.replace(/\s/g, " ") + " ");
});
$("w").click(function () {
let word = com_getPaliReal($(this).text());
if (gBuildinDictIsOpen) {
window.open("../dict/index.php?builtin=true&key=" + word, "dict");
}
});
}
function refresh_pali_script() {
if (_display && _display == "para") {
//段落模式
} else {
//句子模式
setting_get("lib.second_script", set_second_scrip);
}
}
function set_second_scrip(value) {
set_pali_script(2, value);
}
function slider_show(obj) {
$(obj).parent().parent().parent().parent().parent().toggleClass("slider_show_shell");
}
function find_sent_tran_div(obj) {
let jqObj = $(obj);
while (!jqObj.hasClass("sent_tran")) {
jqObj = jqObj.parent();
if (!jqObj) {
return false;
}
}
return jqObj;
/*
let parent = obj.parentNode;
while (parent.nodeType == 1) {
if ($(parent).hasClass("sent_tran")) {
return parent;
} else if (parent.nodeName == "BODY") {
return false;
}
parent = parent.parentNode;
}
return false;
*/
}
//显示或隐藏pr数据
function note_pr_show(channel, id) {
let obj = $(".sent_tran[channel='" + channel + "'][sid='" + id + "']").find(".pr_content");
let prHtml = obj.first().html();
if (prHtml == "") {
note_get_pr(channel, id);
} else {
obj.slideUp();
obj.html("");
}
}
//获取pr数据并显示
function note_get_pr(channel, id) {
let sid = id.split("-");
let book = sid[0];
let para = sid[1];
let begin = sid[2];
let end = sid[3];
$.post(
"../usent/get_pr.php",
{
book: book,
para: para,
begin: begin,
end: end,
channel: channel,
},
function (data) {
let result = JSON.parse(data);
if (result.length > 0) {
let html = "";
for (const iterator of result) {
html += render_one_sent_tran_a(iterator, true);
}
html += "";
$(".sent_tran[channel='" + channel + "'][sid='" + id + "']")
.find(".pr_content")
.html(html);
$(".sent_tran[channel='" + channel + "'][sid='" + id + "']")
.find(".pr_content")
.slideDown();
} else {
}
}
);
$(".sent_tran[channel='" + channel + "'][sid='" + id + "']")
.find(".pr_content")
.html("loading");
$(".sent_tran[channel='" + channel + "'][sid='" + id + "']")
.find(".pr_content")
.show();
}
function get_channel_by_id(id) {
if (typeof _channalData != "undefined") {
for (const iterator of _channalData) {
if (iterator.id == id) {
return iterator;
}
}
}
if (typeof _my_channal != "undefined") {
for (const iterator of _my_channal) {
if (iterator.id == id) {
return iterator;
}
}
}
return false;
}
//设置显示方向
function setDirection(obj) {
if (obj.value == "row") {
$("#contents").removeClass("vertical");
$("#contents").addClass("horizontal");
_direction = "row";
} else {
$("#contents").removeClass("horizontal");
$("#contents").addClass("vertical");
_direction = "col";
}
}
//设置逐段或逐句模式
function setDisplay(obj) {
if (obj.value == "para") {
$("#contents").removeClass("sent_mode");
$("#contents").addClass("para_mode");
_display = "para";
} else {
$("#contents").removeClass("para_mode");
$("#contents").addClass("sent_mode");
_display = "sent";
}
}
//获取文章中H 并渲染为目录
function render_heading_toc() {
//$(":header")
}