Mercurial > hg > extraction-interface
view develop/js/taggingtext.js @ 19:f60969462226
save tag modification of topic configration into topic_tag_relation table
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Mon, 23 Feb 2015 12:46:03 +0100 |
parents | 82f8c6bd2b69 |
children | 04db1dd9d10d |
line wrap: on
line source
// === for taggingtext.php === var stringBeforeChange=""; var stringBeforeChangeStack = []; var lastAddTag=""; window.onbeforeunload = function() { return "Are you sure?"; }; /* $(document).on("mouseup", function (e) { e.stopPropagation(); $('.questionMarkClass').remove(); $('.tagItemDivClass').remove(); alert("Remove"); }); $(document).on("click", '.questionMarkClass', function (e) { e.stopPropagation(); }); */ function tagTime() { saveUndoText(); var el = document.getElementById("editable-area"); var str="" + el.innerHTML; var regexText=/(<?php echo $wordlistArray[0][2]; ?>)(○?)(一|二|三|四|五|六|七|八|九)?(○?)(十)?(○?)(一|二|三|四|五|六|七|八|九|元|十)(○?)(年)/g; var replaceText="<time>$1$2$3$4$5$6$7$8$9</time>"; var matchedCount = str.match(regexText).length; str = str.replace(regexText, replaceText); var regexText=/(?!(>))(<?php echo $wordlistArray[0][2]; ?>)/g; var replaceText="<time>$1$2</time>"; matchedCount += str.match(regexText).length; el.innerHTML = str.replace(regexText, replaceText); var regexText=/(一|二|三|四|五|六|七|八|九)?(○?)(十)?(○?)(一|二|三|四|五|六|七|八|九|元|十)(○?)(年)(?!(<))/g; var replaceText="<time>$1$2$3$4$5$6$7</time>"; matchedCount += str.match(regexText).length; el.innerHTML = str.replace(regexText, replaceText); alert( "Tagged "+matchedCount+" entities!" ); } function removeTagNewDiv( eventObject, tagName, tagObject ) { saveUndoText(); var newdiv = document.createElement("div"); newdiv.id = "questionMarkId"; newdiv.setAttribute("class", "questionMarkClass"); newdiv.style.cssText = 'top:'+eventObject.pageY+'; left:'+eventObject.pageX+'; position:absolute; background-color: white; border:1px solid black; padding: 5px'; newdiv.innerHTML = "Tag: "+tagName+"<br>Value: "+tagObject.text()+"<br>"; var newbutton = $('<button>Remove this</button>').mouseup(function (e2) { var textKeep = $(this).parent().parent().html(); var regexText=/<div(.*?)<\/div>/g; var replaceText=""; textKeep = textKeep.replace(regexText, replaceText); $(this).parent().parent().replaceWith( textKeep ); }); newbutton.appendTo(newdiv); var newbutton = $('<button>Remove this(with newline)</button>').mouseup(function (e2) { var textKeep = $(this).parent().parent().html(); var regexText=/<div(.*?)<\/div>/g; var replaceText=""; textKeep = textKeep.replace(regexText, replaceText); var newLineBefore = $(this).parent().parent().prev(); if ( newLineBefore.prop("tagName") == "BR" ) { $(this).parent().parent().prev().replaceWith( ); } $(this).parent().parent().replaceWith( textKeep ); }); newbutton.appendTo(newdiv); var newbutton = $('<button>Remove all</button>').mouseup(function (e2) { var textKeep = $(this).parent().parent().html(); var regexText=/<div(.*?)<\/div>/g; var replaceText=""; textKeep = textKeep.replace(regexText, replaceText); $(this).parent().parent().replaceWith( textKeep ); var el = document.getElementById("editable-area"); var regexText=new RegExp("<"+tagName+">("+textKeep+")</"+tagName+">", "g"); var replaceText="$1"; var str="" + el.innerHTML; if ( str.match(regexText)==null ) { alert( "Removed 1 entity!" ); } else { alert( "Removed "+(parseInt(str.match(regexText).length)+1)+" entities!" ); } el.innerHTML = str.replace(regexText, replaceText); }); newbutton.appendTo(newdiv); var newbutton = $('<button>Remove all(with newline)</button>').mouseup(function (e2) { var textKeep = $(this).parent().parent().html(); var regexText=/<div(.*?)<\/div>/g; var replaceText=""; textKeep = textKeep.replace(regexText, replaceText); $(this).parent().remove(); var el = document.getElementById("editable-area"); var regexText=new RegExp("<br><"+tagName+">("+textKeep+")</"+tagName+">", "g"); var replaceText="$1"; var str="" + el.innerHTML; alert( "Removed "+str.match(regexText).length+" entities!" ); el.innerHTML = str.replace(regexText, replaceText); }); newbutton.appendTo(newdiv); tagObject.append(newdiv); } function removeTagTitle( range, container ) { saveUndoText(); range.deleteContents(); lastAddTag = $('#RemoveTitletagType').val(); var stringtemp = container.innerHTML; if ( $('#RemoveTitletagName').val() == "" ) { var regexText="<"+lastAddTag+">〈(.*?)〉</"+lastAddTag+">"; var replaceText=""; stringtemp = stringtemp.replace(new RegExp(regexText, "g"), replaceText); var regexText="<"+lastAddTag+">(.*?)</"+lastAddTag+">"; var replaceText="$1"; stringtemp = stringtemp.replace(new RegExp(regexText, "g"), replaceText); } else { var regexText="<"+lastAddTag+">〈"+$('#RemoveTitletagName').val()+"〉</"+lastAddTag+">"; var replaceText=""; stringtemp = stringtemp.replace(new RegExp(regexText, "g"), replaceText); var regexText="<"+lastAddTag+">("+$('#RemoveTitletagName').val()+")</"+lastAddTag+">"; var replaceText="$1"; stringtemp = stringtemp.replace(new RegExp(regexText, "g"), replaceText); } var newdiv = document.createElement("aaaa"); newdiv.innerHTML = stringtemp; range.insertNode(newdiv); var el = document.getElementById("editable-area"); var regexText=/<aaaa>/gi; var replaceText=''; el.innerHTML = el.innerHTML.replace(regexText, replaceText); var regexText=/<\/aaaa>/gi; var replaceText=''; el.innerHTML = el.innerHTML.replace(regexText, replaceText); $('.tagItemDivClass').remove(); } function addTagTitle( range, container ) { saveUndoText(); lastAddTag = $('#TitletagType').val(); tag = "<"+$('#TitletagType').val()+">〈"+$('#TitletagName').val()+"〉</"+$('#TitletagType').val()+">"; range.deleteContents(); var stringtemp = container.innerHTML; var regexText=/<br>/g; var replaceText="<br>"+tag; stringtemp = stringtemp.replace(regexText, replaceText); var newdiv = document.createElement("aaaa"); newdiv.innerHTML = tag+stringtemp; range.insertNode(newdiv); var el = document.getElementById("editable-area"); var regexText=/<aaaa>/gi; var replaceText=''; el.innerHTML = el.innerHTML.replace(regexText, replaceText); var regexText=/<\/aaaa>/gi; var replaceText=''; el.innerHTML = el.innerHTML.replace(regexText, replaceText); $('.tagItemDivClass').remove(); } function cleanUpTextArea() { var el = document.getElementById("editable-area"); var regexText=/<div>/gi; var replaceText='<br>'; el.innerHTML = el.innerHTML.replace(regexText, replaceText); var regexText=/<\/div>/gi; var replaceText=''; el.innerHTML = el.innerHTML.replace(regexText, replaceText); var regexText=/<span style="(.*?)">/gi; var replaceText=''; el.innerHTML = el.innerHTML.replace(regexText, replaceText); var regexText=/<\/span>/gi; var replaceText=''; el.innerHTML = el.innerHTML.replace(regexText, replaceText); } function Undo() { if ( stringBeforeChangeStack.length > 0 ) { var el = document.getElementById("editable-area"); el.innerHTML = stringBeforeChangeStack.pop(); } else { var el = document.getElementById("buttonUndo"); el.disabled = true; } } function saveUndoText() { var el = document.getElementById("editable-area"); //stringBeforeChange = el.innerHTML; stringBeforeChangeStack.push(el.innerHTML); var el = document.getElementById("buttonUndo"); el.disabled = false; } function editText() { var el = document.getElementById("editable-area"); if ( $("#editTextId").html() == "Edit the text" ) { saveUndoText(); el.contentEditable = true; $("button").attr("disabled", true); $("#editTextId").attr("disabled", false); $("#editTextId").html("Edit completed!"); } else { el.contentEditable = false; cleanUpTextArea(); $("button").attr("disabled", false); $("#editTextId").html("Edit the text"); } } function saveText(section_id) { var el = document.getElementById("editable-area"); $.ajax({ url : './'+section_id, async : false, type : 'POST', data : 'func=SaveFullText'+'&text='+encodeURIComponent(el.innerHTML)+'&filename='+section_id, // data : 'func=SaveFullText'+'&text='+el.innerHTML+'&filename='+section_id success: function (e) { alert("Saved!"); }, error: function (e) { alert("Haven't saved!"); } }).done(function(result) { }); } function preg_quote (str, delimiter) { // http://kevin.vanzonneveld.net // + original by: booeyOH // + improved by: Ates Goral (http://magnetiq.com) // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Onno Marsman // + improved by: Brett Zamir (http://brett-zamir.me) // * example 1: preg_quote("$40"); // * returns 1: '\$40' // * example 2: preg_quote("*RRRING* Hello?"); // * returns 2: '\*RRRING\* Hello\?' // * example 3: preg_quote("\\.+*?[^]$(){}=!<>|:"); // * returns 3: '\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:' return (str + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&'); } function replaceRegex() { saveUndoText(); var startPage = $('#regexPageStart2').val(); var endPage = $('#regexPageEnd2').val(); var el = document.getElementById("editable-area"); var str="" + el.innerHTML; var regexText=document.getElementById("regexText").value; var replaceText=document.getElementById("replaceText").value; var str="" + el.innerHTML; if ( startPage == "" ) { alert( "Tagged "+str.match(new RegExp(regexText, "g")).length+" entities!" ); el.innerHTML = str.replace(new RegExp(regexText, "g"), replaceText); } else { var regexText2="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】"; var partString = ""+str.match(new RegExp(regexText2, "g")); alert(partString); alert( "Tagged "+partString.match(new RegExp(regexText, "g")).length+" entities!" ); var resultString = partString.replace(new RegExp(regexText, "g"), replaceText); str="" + el.innerHTML; el.innerHTML = str.replace(new RegExp(regexText, "g"), resultString); } //document.styleSheets[0].addRule("tag001", "color:green;") } //Tagging Items function getSelected() { if(window.getSelection) { return window.getSelection(); } else if (document.getSelection) { return document.getSelection(); } else { var selection = document.selection && document.selection.createRange(); if(selection.text) { return selection.text; } return false; } return false; } function tagStringWithTag( stringValue, tag ) { saveUndoText(); var el = document.getElementById("editable-area"); var regexText="("+String(stringValue)+")"; if ( tag=="person") { var replaceText="<br><"+tag+">$1</"+tag+">"; } else { var replaceText="<"+tag+">$1</"+tag+">"; } var str="" + el.innerHTML; $('.tagItemDivClass').remove(); alert( "Tagged "+str.match(new RegExp(regexText, "g")).length+" entities!" ); el.innerHTML = str.replace(new RegExp(regexText, "g"), replaceText); } function tagwithtitle( range, stringSelection ) { saveUndoText(); range.deleteContents(); //var newdiv = document.createElement("br"); //range.insertNode(newdiv); range.insertNode(document.createTextNode("〈"+stringSelection+"〉")); var newdiv = document.createElement("br"); range.insertNode(newdiv); $('.tagItemDivClass').remove(); } function tagwithOnlytag( range, stringSelection, tag ) { saveUndoText(); range.deleteContents(); if ( tag=="person2") { var newdiv = document.createElement("person"); newdiv.innerHTML = stringSelection; range.insertNode(newdiv); var newdiv = document.createElement("br"); range.insertNode(newdiv); } else if (tag=="object2") { var newdiv = document.createElement("object"); newdiv.innerHTML = stringSelection; range.insertNode(newdiv); var newdiv = document.createElement("br"); range.insertNode(newdiv); } else { var newdiv = document.createElement(tag); newdiv.innerHTML = stringSelection; range.insertNode(newdiv); } $('.tagItemDivClass').remove(); } function tagNameWithLastName() { saveUndoText(); var el = document.getElementById("editable-area"); var regexText=/(○|】|^)(王|李|張|趙|劉|陳|楊|吳|黃|黄|朱|孫|郭|胡|呂|高|宋|徐|程|林|鄭|范|何|韓|曹|馬|許|田|馮|杜|周|曾|汪|蘇|董|方|蔡|梁|石|謝|賈|薛|彭|崔|唐|潘|鄧|史|錢|侯|魏|羅|葉|沈|孟|姚|傅|丁|章|蕭|蔣|盧|陸|袁|晁|譚|邵|歐陽|孔|詹|俞|尹|廖|閻|洪|夏|雷|葛|文|柳|陶|毛|丘|龔|蒲|邢|郝|龐|安|裴|折|施|游|金|鄒|湯|虞|嚴|鍾)([^○(舉人|縣人|歲貢|間任)]{1,3}|○[^○])(?=(○|$))/g; var replaceText="$1<br><person>$2$3</person>$4"; var str="" + el.innerHTML; alert( "Tagged "+str.match(regexText).length+" entities!" ); el.innerHTML = str.replace(regexText, replaceText); } function tagNameWithLastName2() { saveUndoText(); var el = document.getElementById("editable-area"); var regexText="(○|】|^)("+$('#surname').val()+")([^○(舉人|縣人|歲貢|間任)]{1,3}|○[^○])(?=(○|$))"; var replaceText="$1<br><person>$2$3</person>$4"; var str="" + el.innerHTML; alert( "Tagged "+str.match(new RegExp(regexText, "g")).length+" entities!" ); el.innerHTML = str.replace(new RegExp(regexText, "g"), replaceText); } function tagBiogAddr() { saveUndoText(); var el = document.getElementById("editable-area"); var str="" + el.innerHTML; var regexText=/(○)([^○]{1,6})(○?)(人)/g; var replaceText="$1<biog_addr>$2</biog_addr>$3$4"; el.innerHTML = str.replace(regexText, replaceText); alert( "Tagged "+str.match(regexText).length+" entities!" ); } function smartRegexNew() { $('#smartRegexPopUpDiv').css("display", "block"); $('#smartRegexPopUpDiv').css("background-color", "White"); $('#smartRegexPopUpDiv').css("width", "400px"); $('#smartRegexPopUpDiv').css("height", "300px"); $('#smartRegexPopUpDiv').css("top", "170px"); $('#smartRegexPopUpDiv').css("left", "-400px"); $('#smartRegexPopUpDiv').css("border", "1px solid black"); $('#smartRegexPopUpDiv').css("padding", "5px"); $('#smartRegexPopUpAdd').attr("disabled", false); $('#smartRegexPopUpEdit').attr("disabled", "disabled"); $('#smartRegexPopUpDel').attr("disabled", "disabled"); $('#smartRegexPopUpBack').attr("disabled", "disabled"); $('#smartRegexPopUpFor').attr("disabled", "disabled"); } function replaceSmartClose() { $('#smartRegexPopUpDiv').css("display", "none"); $("#smartRegexPopUpSelectWord").val("NULL"); $("#smartRegexPopUpText").val(""); $("#smartRegexPopUpName").val(""); } function replaceSmartEdit(){ thisObject = $('#smartRegexPopUpDiv').attr("editID"); $('#smartRegexShowDiv > #'+thisObject).attr("class", "span_"+$("#smartRegexPopUpSelectTag").val()); $('#smartRegexShowDiv > #'+thisObject).attr("regexText", $("#smartRegexPopUpText").val()); $('#smartRegexShowDiv > #'+thisObject).attr("regexReplace", $("#smartRegexPopUpSelectTag").val()); } function replaceSmartDel() { thisObject = $('#smartRegexPopUpDiv').attr("editID"); $('#smartRegexShowDiv > #'+thisObject).remove(); } function replaceSmartFor() { thisObject = $('#smartRegexPopUpDiv').attr("editID"); //var wahaha = $('#'+thisObject).clone(); //var hahawa = $('#'+thisObject).next(); //$('#'+thisObject).remove(); //wahaha.insertAfter(hahawa); $('#smartRegexShowDiv > #'+thisObject).insertAfter( $('#'+thisObject).next() ); } function replaceSmartBack() { thisObject = $('#smartRegexPopUpDiv').attr("editID"); //var wahaha = $('#'+thisObject).clone(); //var hahawa = $('#'+thisObject).prev(); //$('#'+thisObject).remove(); //wahaha.insertBefore(hahawa); $('#smartRegexShowDiv > #'+thisObject).insertBefore( $('#'+thisObject).prev() ); } function replaceSmartAdd() { var newdiv = document.createElement("span"); newdiv.innerHTML = " "+$("#smartRegexPopUpName").val()+" "; $(newdiv).css("border", "1px solid black"); $(newdiv).css("width", "100px"); $(newdiv).attr("class", "span_"+$("#smartRegexPopUpSelectTag").val()); $(newdiv).attr("id", "span_"+$("#smartRegexPopUpName").val()); $(newdiv).attr("regexText", $("#smartRegexPopUpText").val()); $(newdiv).attr("regexReplace", $("#smartRegexPopUpSelectTag").val()); $('#smartRegexShowDiv').append(newdiv); replaceSmartClose(); } $(document).on("click", '#smartRegexShowDiv > span', function (e) { $('#smartRegexPopUpDiv').css("display", "block"); $('#smartRegexPopUpDiv').css("background-color", "White"); $('#smartRegexPopUpDiv').css("width", "400px"); $('#smartRegexPopUpDiv').css("height", "300px"); $('#smartRegexPopUpDiv').css("top", "100px"); $('#smartRegexPopUpDiv').css("left", "-400px"); $('#smartRegexPopUpDiv').css("border", "1px solid black"); //$('#smartRegexPopUpDiv').css("padding", "5px"); $('#smartRegexPopUpDiv').attr("editID", $(this).attr("id")); var _id = $(this).attr("id"); var aa = document.getElementById(_id); var name = aa.textContent; $('#smartRegexPopUpName').val(name); // $('#smartRegexPopUpName').val($(this).html()); // why there is a <span i="transmark"></span> inbetween? $('#smartRegexPopUpText').val($(this).attr("regexText")); $('#smartRegexPopUpSelectTag').val($(this).attr("regexReplace")); $('#smartRegexPopUpAdd').attr("disabled", "disabled"); $('#smartRegexPopUpEdit').attr("disabled", false); $('#smartRegexPopUpDel').attr("disabled", false); $('#smartRegexPopUpBack').attr("disabled", false); $('#smartRegexPopUpFor').attr("disabled", false); }); function smartRegexEmpty() { $('#smartRegexShowDiv').html(""); } function replaceSmartRun() { var replaceSmartRegexString = ""; var replaceSmartReplaceString = ""; var count=1; saveUndoText(); $('#smartRegexShowDiv').children('span').each(function () { replaceSmartRegexString += "(" + $(this).attr("regexText") + ")"; if ( $(this).attr("regexReplace") == "notag" ) { replaceSmartReplaceString += "$" + count; } else if ( $(this).attr("regexReplace") == "title" ) { replaceSmartReplaceString += "<br>〈" + "$" + count + "〉<br>"; } else { replaceSmartReplaceString += "<" + $(this).attr("regexReplace") + ">" + "$" + count + "</"+ $(this).attr("regexReplace") +">"; } count++; }); var startPage = $('#regexPageStart').val(); var endPage = $('#regexPageEnd').val(); var el = document.getElementById("editable-area"); var str="" + el.innerHTML; if ( startPage == "" ) { alert( "Tagged "+str.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" ); el.innerHTML = str.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString); } else { var regexText="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】"; var partString = ""+str.match(new RegExp(regexText, "g")); alert(partString); alert( "Tagged "+partString.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" ); var resultString = partString.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString); str="" + el.innerHTML; el.innerHTML = str.replace(new RegExp(regexText, "g"), resultString); } } function replaceSmartRunSpace() { var replaceSmartRegexString = ""; var replaceSmartReplaceString = ""; var count=1; saveUndoText(); $('#smartRegexShowDiv').children('span').each(function () { //alert($(this).attr("regexText")); replaceSmartRegexString += "(" + $(this).attr("regexText") + ")(○*)"; if ( $(this).attr("regexReplace") == "notag" ) { replaceSmartReplaceString += "$" + count; } else if ( $(this).attr("regexReplace") == "title" ) { replaceSmartReplaceString += "<br>〈" + "$" + count + "〉<br>"; } else { replaceSmartReplaceString += "<" + $(this).attr("regexReplace") + ">" + "$" + count + "</"+ $(this).attr("regexReplace") +">"; } count++; replaceSmartReplaceString += "$" + count; count++; }); var startPage = $('#regexPageStart').val(); var endPage = $('#regexPageEnd').val(); var el = document.getElementById("editable-area"); var str="" + el.innerHTML; if ( startPage == "" ) { alert( "Tagged "+str.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" ); el.innerHTML = str.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString); } else { var regexText="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】"; var partString = ""+str.match(new RegExp(regexText, "g")); alert(partString); alert( "Tagged "+partString.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" ); var resultString = partString.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString); str="" + el.innerHTML; el.innerHTML = str.replace(new RegExp(regexText, "g"), resultString); } //alert( "Tagged "+str.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" ); //el.innerHTML = str.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString); } function smartRegexSave() { var x; var name=prompt("Please enter this Regex name",RegexLoadedName); if (name!=null){ $.ajax({ type : 'POST', url : './TaggingText', async : false, data : 'func=SmartRegexSave'+'&text='+encodeURIComponent($('#smartRegexShowDiv').html())+'&filename='+name, error: function (e) { alert("Error when saving"); } }).done(function(result) { alert("Saved!"); }); } } function smartRegexLoad(topic_id) { $('#load_regex_div').html(""); $('#load_regex_div').css("display", "block"); $('#load_regex_div').css("border", "1px solid black"); $('#load_regex_div').css("background-color", "White"); $('#load_regex_div').css("width", "300px"); $('#load_regex_div').css("height", "70px"); $('#load_regex_div').css("top", "100px"); $('#load_regex_div').css("left", "-300px"); var newselect = document.createElement("select"); newselect.id = "loadRegexSelect"; $.ajax({ type: 'POST', url: './TaggingText', dataType: 'json', data: "func=SmartRegexLoad&topic_id="+topic_id, //cache: false, success: function (data) { $.each(data, function(index, element) { // index is the filename (without '.txt') // element is the content in the file newselect.innerHTML += "<option value=\""+index+"\">"+index+"</option>\n"; //alert(index); //alert(element); var newdiv = document.createElement("div"); $(newdiv).css("display", "none"); $(newdiv).html(element); $(newdiv).attr("id", "div_"+index); $('#load_regex_div').append(newdiv); }); }, error: function (data) { console.log("SmartRegexLoad fails"); } }); /* $.ajax({ type: 'POST', url: '../models/_extractapp_func.php', dataType: 'json', data: "func=SmartRegexLoad", //cache: false, success: function (data) { $.each(data, function(index, element) { newselect.innerHTML += "<option value=\""+index+"\">"+index+"</option>\n"; //alert(index); //alert(element); var newdiv = document.createElement("div"); $(newdiv).css("display", "none"); $(newdiv).html(element); $(newdiv).attr("id", "div_"+index); $('#load_regex_div').append(newdiv); }); }, error: function (data) { console.log("SmartRegexLoad fails"); } }); */ $('#load_regex_div').append(newselect); var newbutton = document.createElement("button"); $(newbutton).html("Load"); $(newbutton).addClass("btn btn-info"); $(newbutton).attr("onclick", "loadRegexAdd()"); $('#load_regex_div').append(newbutton); var newbutton = document.createElement("button"); $(newbutton).html("Close"); $(newbutton).addClass("btn btn-default"); $(newbutton).attr("onclick", "$('#load_regex_div').css(\"display\", \"none\");"); $('#load_regex_div').append(newbutton); } var RegexLoadedName = ""; function loadRegexAdd() { RegexLoadedName = $('#loadRegexSelect').val(); var divName = "#div_"+RegexLoadedName; var name = $(divName).html(); $('#smartRegexShowDiv').html(name ); $('#load_regex_div').css("display", "none"); } // === // === for exporttable.php === function exportTable( range, container ) { //MsgBox("enter function"); var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "./ExportTable"); form.setAttribute("target", "_blank"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "content"); hiddenField.setAttribute("value", container.innerHTML); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionid"); hiddenField.setAttribute("value", "<?php echo $section_id; ?>"); form.appendChild(hiddenField); var hiddenField2 = document.createElement("input"); hiddenField2.setAttribute("name", "topic"); hiddenField2.setAttribute("value", topic_id); form.appendChild(hiddenField2); if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { document.body.appendChild(form); form.submit(); } else { form.submit(); // works under IE and Chrome, but not FF } } function exportPage() { var startPage = $('#exportPageStart').val(); var endPage = $('#exportPageEnd').val(); var el = document.getElementById("editable-area"); var str="" + el.innerHTML; var regexText="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】"; var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "./ExportTable"); form.setAttribute("target", "_blank"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "content"); hiddenField.setAttribute("value", str.match(new RegExp(regexText, "g"))); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionid"); hiddenField.setAttribute("value", "<?php echo $section_id; ?>"); form.appendChild(hiddenField); if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { document.body.appendChild(form); form.submit(); } else { form.submit(); // works under IE and Chrome, but not FF } } function exportAll(topic_id) { var el = document.getElementById("editable-area"); var str= "" + el.innerHTML; var form = document.createElement("form"); form.setAttribute("method", "post"); //form.setAttribute("action", "exportTable.php"); form.setAttribute("action", "./ExportTable");//+section_id); // hand to controller form.setAttribute("target", "_blank"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "content"); hiddenField.setAttribute("value", str); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "topic"); hiddenField.setAttribute("value", topic_id); form.appendChild(hiddenField); console.log(topic_id); /* var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionid"); hiddenField.setAttribute("value", section_id); form.appendChild(hiddenField); */ if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { document.body.appendChild(form); form.submit(); } else { form.submit(); // works under IE and Chrome, but not FF } } // =========== // === for editwordlist.php === function addNewList() { var el = document.getElementById("listNameText"); $.ajax({ //url : '../../models/_extractapp_func.php', url : './Editwordlist', async : false, type : 'POST', data : 'func=AddNewList'+'&text='+el.value, success: function (e) { alert("Added!"); document.location.reload(true); }, error: function (e) { console.log("error when add new list"); alert("Haven't added new list!!"); } }).done(function(result) { }); } function saveWordlist(id ) { var el = document.getElementById("editable-area"); $.ajax({ url : './Editwordlist', async : false, type : 'POST', data : 'func=SaveWordlist'+'&text='+el.innerHTML+'&filename='+id, success: function (e) { alert("Saved!"); }, error: function (e) { alert("Haven't saved!"); } }).done(function(result) { }); } function editWordlistText( id ) { var el = document.getElementById("editable-area"); el.contentEditable = true; } function replaceRegex() { var el = document.getElementById("editable-area"); var regexText=document.getElementById("regexText").value; var replaceText=document.getElementById("replaceText").value; var str="" + el.innerHTML; el.innerHTML = str.replace(new RegExp(regexText, "g"), replaceText); } function showListContent( id ) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = process; xhr.open("POST", "../data/wordlist/"+id+".txt?t=" + Math.random(), true); // TODO: should show the latest wordlist file. eg. id_timestamp.txt, rather than open the original id.txt file xhr.send(); function process() { if (xhr.readyState == 4) { var el = document.getElementById("editable-area"); var str = xhr.responseText var regexText=/\n/g; var replaceText="<br>\n"; el.innerHTML = str.replace(regexText, replaceText); document.getElementById("button-area").innerHTML= "<form action=\"javascript:void(0);\"> \ <fieldset><legend>Edit:</legend> \ <button id=\"buttonEditText\" onclick=\"editWordlistText("+id+")\" style=\"height: 30px; width: 220px\">Edit the text</button></br> \ <button id=\"buttonSaveText\" onclick=\"saveWordlist("+id+")\" style=\"height: 30px; width: 220px\">Save the text</button> \ </fieldset> \ <fieldset><legend>Replace By Regex:</legend> \ Regex: <input type=\"text\" size=\"30\" id=\"regexText\"></br> \ Replace: <input type=\"text\" size=\"30\" id=\"replaceText\"><br> \ <button onclick=\"replaceRegex()\">Replace!</button> \ </fieldset> \ </form>"; } } } // ============ // === for edittaglist.php === function editTaglist(topic_id) { var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "./EditTaglist"); form.setAttribute("target", "_blank"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "topic_id"); hiddenField.setAttribute("value", topic_id); form.appendChild(hiddenField); if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { document.body.appendChild(form); form.submit(); } else { form.submit(); // works under IE and Chrome, but not FF } } // ============ //