Mercurial > hg > extraction-interface
view develop/views/Extractapp/TaggingText.php @ 42:c245d54eab9f extractapp
config lg server url, without port
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Thu, 12 Mar 2015 17:33:30 +0100 |
parents | 2e938dc046db |
children | b3ca5d2b4d3f |
line wrap: on
line source
<?php // --- initialize config file and input text --- $stringInput = $viewmodel['stringInput']; $wordlistArray = $viewmodel['wordlistArray']; $taglistArray = $viewmodel['taglistArray']; $section_id = $viewmodel['section_id']; $topiclistArray = $viewmodel['topiclistArray']; $default_topic_id = $viewmodel['default_topic_id']; $topic_name = $viewmodel['topic_name']; $topic_tag = $viewmodel['topic_tag']; $info = $viewmodel['info']; $messages = $viewmodel['messages']; $taglist_infile = $viewmodel['taglist_infile']; $book_meta = $viewmodel['book_meta']; ?> <html> <head> <title></title> <style> dynasty { color:red; } nianhao { color:blue; } name { color:orange; } #editable-area { line-height:160%; letter-spacing:1.5px; font-size:21px; } <?php // color on the tags foreach ( $taglistArray as $taglistValue ) { echo $taglistValue[2]."\n{\ncolor:".$taglistValue[3]."\n}\n"; echo ".span_".$taglistValue[2]."\n{\nbackground-color:".$taglistValue[3]."\n}\n"; } ?> </style> </head> <body> <script type="text/javascript"> // not use this for now function _showTagColor(up_to_date) { var taglistArray = ""; if (up_to_date) { taglistArray = JSON.parse('<?php echo json_encode($taglistArray) ?>'); } else { taglistArray = JSON.parse('<?php echo json_encode($taglist_infile) ?>'); } for (var i = 0; i < taglistArray.length; i++) { var taglistValue = taglistArray[i]; $(taglistValue[2]).css('color', taglistValue[3]); /*var element = document.querySelectorAll(taglistValue[2]); for (var j = 0; j < element.length; j++) { element[j].style.color = taglistValue[3]; } */ } } // TODO: Popup to proceeding the saving situations function handleFileVersionConflict() { var info = JSON.parse('<?php echo json_encode($info) ?>'); console.log("currentFileId="+info['current_fileId']); if (info['current_fileId'] != 0 && info['current_fileId'] != info['file_id']){ // -- there might be conflicts between different version alert("Someone edited this file and saved before you."); return; var retVal = confirm('There were something happened/someone editing in the between of time.\nDo you want to force saving? (There might be conflicts between two versions.)'); if( retVal == true ){ // TODO: force saving with currentFileId alert("You do the force saving!"); //saveTextToLGService(); }else{ var loadLastest = confirm("Do you want to reload for the lastest version? (Your current editing will lost.)"); console.log("loadLastest="+loadLastest); /* var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "./TaggingText"); // hand to controller form.setAttribute("target", "_blank"); var topic_id = JSON.parse('<?php echo json_encode($default_topic_id) ?>'); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "topic"); hiddenField.setAttribute("value", topic_id); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "func"); hiddenField.setAttribute("value", "Reload"); // reload form.appendChild(hiddenField); _postForContineTagging(form); alert("You will reload the latest version."); */ /* if (loadLastest == true) { // TODO: reload page with the currentFileId console.log('loadLastest is true'); $.ajax({ type : 'POST', url : './TaggingText', async : false, data : 'func=Reload', success: function (result) { //var lastest_editing = jQuery.parseJSON(result); console.log("lastest_editing string:"+result); // change text to the new one //var el = document.getElementById("editable-area"); //el.innerHTML = lastest_editing; //alert("Reload the page!"); }, error: function (result) { alert("Reload Fails!"); } }).done(function(result) { // reload page //document.location.reload(true); }); } else { alert("Just a reminder, there is a new version for this branch."); } */ } } return; } <?php foreach ( $taglistArray as $taglistValue ) { echo '$(document).on("click", "'.$taglistValue[2].'", function (e) {'."\n"; echo "\t".'if ( $(this).prop("tagName").toLowerCase() != "'.$taglistValue[2].'" ) return 0;'."\n"; echo "\t".'if ( $("#editTextId").html() != "Edit the text" ) return 0;'."\n"; echo "\tremoveTagNewDiv( e, \"".$taglistValue[2]."\", $(this) );\n"; echo "});\n"; } ?> $(document).ready(function(){ // --- for sidebar--- //run once var el=$('#follow-scroll'); var originalelpos=el.offset().top; // take it where it originally is on the page //run on scroll $(window).scroll(function(){ var el = $('#follow-scroll'); // important! (local) var elpos = el.offset().top; // take current situation var windowpos = $(window).scrollTop(); var finaldestination = windowpos+originalelpos; //el.stop().animate({'top':finaldestination},500); el.stop().animate({'top':finaldestination},0); }); //--- for popups --- //run once var el=$('#popups'); var originalelpos=el.offset().top; // take it where it originally is on the page //run on scroll $(window).scroll(function(){ var el = $('#popups'); // important! (local) var elpos = el.offset().top; // take current situation var windowpos = $(window).scrollTop(); var finaldestination = windowpos+originalelpos; //el.stop().animate({'top':finaldestination},500); el.stop().animate({'top':finaldestination},0); }); // --- handle old version taglist --- var _GET = JSON.parse('<?php echo json_encode($_GET) ?>'); if (_GET['id']) { // === This case should only be possible for developing on local machine ==== var info = JSON.parse('<?php echo json_encode($info) ?>'); var redirectUrl = "http://localhost:1080/extraction-interface/develop/Extractapp/TaggingText"; var section_id = info['section_id']; var form = $('<form action="' + redirectUrl + '" method="post">' + '<input type="hidden" name="sectionId" value="'+section_id+'" />' + '</form>'); $('body').append(form); $(form).submit(); } else { // --- TODO: check if taglist in file is up-to-date --- /* var taglist_infile = JSON.parse('<?php echo json_encode($taglist_infile) ?>'); if (taglist_infile != "") { // TODO: pop up to ask if load the latest taglist var retVal = confirm("Tag list in file is not up-to-date. \nDo you want to load file with new tag list?"); if( retVal == true ){ // use $taglisArray alert("Load file with new tag list."); }else{ // use $taglist_infile as $taglistArray <?php // $taglistArray = $taglist_infile; ?> alert("You are viewing the file with old version of tag list. Please use the up-to-date taglist."); } //_showTagColor(retVal); <?php $taglist_infile = ""; ?> } */ } handleFileVersionConflict(); /* // Popup choosing topic if first time to this section. without branchId if (info['file_id'] == 0) { // or info['branchId'] == 0, means new file // ask to choose topic $.ajax({ }); var popup = document.getElementById('popup-window'); // alert('choose topic!'); } */ }); $(document).on("click", "name", function (e) { if ( $("#editTextId").html() != "Edit the text" ) return 0; if ( $(this).prop("tagName").toLowerCase() != "name" ) return 0; removeTagNewDiv( e, "name", $(this) ); }); $(document).on("mouseup", '#editable-area', function (e) { $('.questionMarkClass').remove(); $('.tagItemDivClass').remove(); if ( $("#editTextId").html() != "Edit the text" ) return 0; var selection = getSelected(); range = getSelected().getRangeAt(0); container = document.createElement("div"); container.appendChild(selection.getRangeAt(0).cloneContents()); if(selection && (selection = new String(selection).replace(/^\s+|\s+$/g,''))) { var newdiv = document.createElement("div"); newdiv.id = "tagItemDivId"; newdiv.setAttribute("class", "tagItemDivClass"); newdiv.style.cssText = 'top:'+e.pageY+'; left:'+e.pageX+'; position:absolute; background-color: white; border:1px solid black; padding: 5px'; newdiv.style.backgroundColor = "white"; newdiv.style.zIndex = 2; //console.log(selection.getRangeAt(0).cloneContents()); if ( container.innerHTML.indexOf( "br" ) != -1 ) { var newselect = document.createElement("select"); newselect.id = "TitletagType"; console.log(JSON.parse('<?php echo json_encode($taglistArray) ?>')); <?php foreach ( $taglistArray as $taglistValue ) { echo "newselect.innerHTML += \"<option value='".$taglistValue[2]."'>".$taglistValue[1]."</option>\";\n"; } ?> newdiv.appendChild(newselect); //matchValue = .match(); myRegexp = new RegExp("〈(.*?)〉", "g") matchValue = myRegexp.exec(String(selection)); if ( matchValue != null ) { newdiv.innerHTML += "<input id=\"TitletagName\" value=\""+ matchValue[1] +"\"></br>"; } else { newdiv.innerHTML += "<input id=\"TitletagName\" value=\"\"></br>"; } console.log(" container innerHTML: "+ container.innerHTML ); newdiv.innerHTML += "<button onclick=\"addTagTitle( range, container )\">Add Title Tag To Each Line</button></br>"; /* newdiv.innerHTML += "<button onclick=\"exportTable( range, container )\">Export As A Table</button></br></br>"; */ var newselect = document.createElement("select"); newselect.id = "RemoveTitletagType"; <?php foreach ( $taglistArray as $taglistValue ) { echo "newselect.innerHTML += \"<option value='".$taglistValue[2]."'>".$taglistValue[1]."</option>\";\n"; } ?> newdiv.appendChild(newselect); newdiv.innerHTML += "<input id=\"RemoveTitletagName\" value=\"\"></br>"; newdiv.innerHTML += "<button onclick=\"removeTagTitle( range, container )\">Remove</button></br>"; } else { // for pop up window on edit-area for tag list newdiv.innerHTML = "Tag: "+String(selection)+"<br>"; <?php foreach ( $taglistArray as $taglistValue ) { if ($taglistValue[2] == $topic_tag) { echo "newdiv.innerHTML += \"<button accesskey=\\\"1\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."2' )\\\">[TopicTag]Tag as:".$taglistValue[1]."(necessary for this topic!)</button>\";\n"; echo "newdiv.innerHTML += \"<button accesskey=\\\"1\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(No BR)</button>\";\n"; echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n"; /* echo "newdiv.innerHTML += \"<button accesskey=\\\"1\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(No BR)</button>\";\n"; echo "newdiv.innerHTML += \"<button accesskey=\\\"1\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."2' )\\\">Tag as:".$taglistValue[1]."</button>\";\n"; echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n"; */ break; } } ?> newdiv.innerHTML += "<button accesskey=\"2\" onclick=\"tagwithtitle( range, '"+String(selection)+"' )\">Tag As Title</button></br>"; <?php foreach ( $taglistArray as $taglistValue ) { /* if ( $taglistValue[2] == "person") { echo "newdiv.innerHTML += \"<button accesskey=\\\"1\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(No BR)</button>\";\n"; echo "newdiv.innerHTML += \"<button accesskey=\\\"1\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."2' )\\\">Tag as:".$taglistValue[1]."</button>\";\n"; echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n"; } else */ if ($taglistValue[2] == $topic_tag) { // pass } else if ($taglistValue[2] == "post_time") { echo "newdiv.innerHTML += \"<button accesskey=\\\"3\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."</button>\";\n"; echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n"; } else if ($taglistValue[2] == "office") { echo "newdiv.innerHTML += \"<button accesskey=\\\"4\\\" onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."</button>\";\n"; echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n"; } else { echo "newdiv.innerHTML += \"<button onclick=\\\"tagwithOnlytag( range, '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."</button>\";\n"; echo "newdiv.innerHTML += \"<button onclick=\\\"tagStringWithTag( '\"+String(selection)+\"', '".$taglistValue[2]."' )\\\">Tag as:".$taglistValue[1]."(ALL)</button></br>\";\n"; } } ?> } //$('#tagItemDivId').addClass(); // tagItemDivId is newdiv's id $('body').append(newdiv); $('#TitletagType').val(lastAddTag); } //e.stopPropagation(); }); // === 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); var info = JSON.parse( '<?php echo json_encode($info) ?>'); if (info) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "bookId"); hiddenField.setAttribute("value", info['book_id']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "bookName"); hiddenField.setAttribute("value", info['book_name']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionName"); hiddenField.setAttribute("value", info['section_name']); 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 exportPage(topic_id) { 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", "topic"); hiddenField.setAttribute("value", topic_id); form.appendChild(hiddenField); _postForContineTagging(form); /* var section_id = JSON.parse('<?php echo json_encode($section_id) ?>'); console.log("section_id: "+section_id+", topic_id: "+topic_id); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionId"); hiddenField.setAttribute("value", section_id); form.appendChild(hiddenField); var info = JSON.parse( '<?php echo json_encode($info) ?>'); if (info) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "bookId"); hiddenField.setAttribute("value", info['book_id']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "bookName"); hiddenField.setAttribute("value", info['book_name']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionName"); hiddenField.setAttribute("value", info['section_name']); 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");//+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); _postForContineTagging(form); /* var section_id = JSON.parse('<?php echo json_encode($section_id) ?>'); console.log("section_id: "+section_id+", topic_id: "+topic_id); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionId"); hiddenField.setAttribute("value", section_id); form.appendChild(hiddenField); var info = JSON.parse( '<?php echo json_encode($info) ?>'); if (info) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "bookId"); hiddenField.setAttribute("value", info['book_id']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "bookName"); hiddenField.setAttribute("value", info['book_name']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionName"); hiddenField.setAttribute("value", info['section_name']); 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 tagwithOnlytag( range, stringSelection, tag ) { saveUndoText(); var topic_tag = JSON.parse('<?php echo json_encode($topic_tag) ?>'); var topic_tag2 = topic_tag+"2"; range.deleteContents(); if ( tag==topic_tag2) { var newdiv = document.createElement(topic_tag); 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); } /* 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 replaceSmartRegex() { saveUndoText(); var startPage = $('#regexPageStart2').val(); var endPage = $('#regexPageEnd2').val(); var el = document.getElementById("editable-area"); var regexText=document.getElementById("regexText").value; <?php foreach ( $wordlistArray as $wordlistValue ) { echo "\tvar regexText1=\"List ".$wordlistValue[1]."\";\n"; echo "\tregexText1 = preg_quote(regexText1);\n"; echo "\tvar replaceText1=\"".$wordlistValue[2]."\";\n"; echo "\tregexText = regexText.replace(new RegExp(regexText1, \"g\"), replaceText1);\n\n"; } ?> 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(regexText2, "g"), resultString); } //document.styleSheets[0].addRule("tag001", "color:green;") } function saveTextToLGService() { var info = JSON.parse('<?php echo json_encode($info) ?>'); var topic_id = JSON.parse('<?php echo json_encode($default_topic_id) ?>'); // if this is a new branch, ask for label if (info['branch_id'] == 0) { var cnt = 0; var label = prompt("Please enter your label for this new branch", "section"+info['section_id']); while (label == null && cnt <= 3) { cnt ++; label = prompt("Please enter your label for this new branch (not empty)", "section"+info['section_id']); } }; var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "./TaggingText"); // hand to controller form.setAttribute("target", "_self"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "func"); hiddenField.setAttribute("value", "SaveFullTextToLGService"); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "label"); hiddenField.setAttribute("value", label); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "topic_id"); hiddenField.setAttribute("value", topic_id); form.appendChild(hiddenField); _postForContineTagging(form); console.log("complete saving to LGService"); /* if (info) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "fileId"); hiddenField.setAttribute("value", info['file_id']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "branchId"); hiddenField.setAttribute("value", info['branch_id']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "userId"); hiddenField.setAttribute("value", info['user_id']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionId"); hiddenField.setAttribute("value", info['section_id']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "bookId"); hiddenField.setAttribute("value", info['book_id']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionName"); hiddenField.setAttribute("value", info['section_name']); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "bookName"); hiddenField.setAttribute("value", info['book_name']); form.appendChild(hiddenField); } var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "text"); var el = document.getElementById("editable-area"); //var text = encodeURIComponent(el.innerHTML); var text = el.innerHTML; hiddenField.setAttribute("value", text); 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 chooseTopic(default_topic_id) { var t = JSON.parse( '<?php echo json_encode($topiclistArray) ?>' ); var info = JSON.parse('<?php echo json_encode($info) ?>'); $('#load_topic_div').html(""); $('#load_topic_div').css("display", "block"); $('#load_topic_div').css("border", "1px solid black"); $('#load_topic_div').css("background-color", "White"); $('#load_topic_div').css("width", "150px"); $('#load_topic_div').css("height", "50px"); $('#load_topic_div').css("top", "20px"); $('#load_topic_div').css("left", "-150px"); var topic_select = document.createElement("select"); topic_select.id = "loadTopiclist"; var selected_topic = t[0]; topic_select.onchange = function(){ selected_topic = topic_select.options[topic_select.selectedIndex]; console.log(selected_topic.text); var topic_id = selected_topic.value; var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "./TaggingText"); // hand to controller form.setAttribute("target", "_self"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "topic"); hiddenField.setAttribute("value", topic_id); form.appendChild(hiddenField); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "func"); hiddenField.setAttribute("value", "ContinueTagging"); form.appendChild(hiddenField); _postForContineTagging(form); }; //Create and append the options for (var i = 0; i < t.length; i++) { console.log(t[i]['id']+","+t[i]['name']); var option = document.createElement("option"); option.value = t[i]['id']; option.text = t[i]['name']; if (option.value == default_topic_id) { option.selected = true; }; topic_select.appendChild(option); } $('#load_topic_div').append(topic_select); var newbutton = document.createElement("button"); $(newbutton).html("Close"); $(newbutton).addClass("btn btn-xs btn-default"); $(newbutton).attr("onclick", "$('#load_topic_div').css(\"display\", \"none\");"); $('#load_topic_div').append(newbutton); } // --- for config tags in topic --- function _postForContineTagging(form) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "text"); var el = document.getElementById("editable-area"); var text = el.innerHTML; hiddenField.setAttribute("value", text); form.appendChild(hiddenField); // pass taglist var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "taglistArray"); var taglistObj = JSON.parse('<?php echo json_encode($taglist_infile) ?>'); if (!taglistObj) { taglistObj = JSON.parse('<?php echo json_encode($taglistArray) ?>'); } taglistArray = JSON.stringify(taglistObj); hiddenField.setAttribute("value", taglistArray); form.appendChild(hiddenField); // pass book_meta var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "book_meta"); var book_metaObj = JSON.parse('<?php echo json_encode($book_meta) ?>'); book_metaArray = JSON.stringify(book_metaObj); hiddenField.setAttribute("value", book_metaArray); form.appendChild(hiddenField); var info = JSON.parse( '<?php echo json_encode($info) ?>'); if (info) { // TODO: different field info array based on fileId(branchId) existing or not if (info['file_id']) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "fileId"); hiddenField.setAttribute("value", info['file_id']); form.appendChild(hiddenField); }; if (info['branch_id']) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "branchId"); hiddenField.setAttribute("value", info['branch_id']); form.appendChild(hiddenField); }; if (info['user_id']) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "userId"); hiddenField.setAttribute("value", info['user_id']); form.appendChild(hiddenField); }; if (info['section_id']) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionId"); hiddenField.setAttribute("value", info['section_id']); form.appendChild(hiddenField); }; if (info['book_id']) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "bookId"); hiddenField.setAttribute("value", info['book_id']); form.appendChild(hiddenField); }; if (info['section_name']) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "sectionName"); hiddenField.setAttribute("value", info['section_name']); form.appendChild(hiddenField); }; if (info['book_name']) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "bookName"); hiddenField.setAttribute("value", info['book_name']); form.appendChild(hiddenField); }; if (info['current_fileId']) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "currentFileId"); hiddenField.setAttribute("value", info['current_fileId']); 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 configTagsInTopic(topic_id) { var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "./ConfigTagsInTopic"); // hand to controller form.setAttribute("target", "_blank"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "topic"); hiddenField.setAttribute("value", topic_id); form.appendChild(hiddenField); _postForContineTagging(form); /* if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { document.body.appendChild(form); form.submit(); } else { form.submit(); // works under IE and Chrome, but not FF } */ } $(document).on("change", '#smartRegexPopUpSelectWord', function (e) { <?php foreach ( $wordlistArray as $wordlistValue ) { echo "if ( $('#smartRegexPopUpSelectWord').val() == \"".$wordlistValue[0]."\") {"; echo "$('#smartRegexPopUpText').val(\"".$wordlistValue[2]."\");"; echo "}"; } ?> }); </script> <div id="dialog-form" title="config tags for topic" style="position:fixed; top: 30px; "> </div> <p class="bg-info" style="margin:10 30 10 30; max-width:1250"> <?php echo $messages; ?> </p> <table width="1270" border="1" style="margin:10 30 10 30;"> <tr> <td width="980" style="padding:0 5 0 5; margin: 0 5 0 5;"> <div id="editable-area" class="area" style="max-width: 980"><?php echo $stringInput; ?></div> </td> <td width="290" valign="top"> <div id="popups" style="position:absolute; width:300px; "> <div id="load_topic_div" style="position: absolute; display: none; z-index:2"></div> <div id="load_regex_div" style="position: absolute; display: none; z-index:2;"></div> <div id="smartRegexPopUpDiv" style="position: absolute; display: none; z-index:2"> Name: <input id="smartRegexPopUpName"></input><br><br> Word List: <select id="smartRegexPopUpSelectWord"> <option value="NULL" selected>無</option> <?php foreach ( $wordlistArray as $wordlistValue ) { echo "<option value=\"".$wordlistValue[0]."\">".$wordlistValue[1]."</option>\n"; } ?> </select> <br> OR (USE "|" TO SEPARATE WORDS):<br> <TEXTAREA id="smartRegexPopUpText" COLS=30 ROWS=4></TEXTAREA><br><br> Tag: <select id="smartRegexPopUpSelectTag"> <?php foreach ( $taglistArray as $taglistValue ) { echo "<option value=\"".$taglistValue[2]."\">".$taglistValue[1]."</option>\n"; } echo "<option value=\"title\">Title</option>\n"; ?> <option value="NOTAG">不標記</option> </select><br> <button id="smartRegexPopUpAdd" onclick="replaceSmartAdd()" class="btn btn-info" style="">Add</button> <button id="smartRegexPopUpEdit" onclick="replaceSmartEdit()" class="btn btn-success" style="">Edit</button> <button id="smartRegexPopUpDel" onclick="replaceSmartDel()" class="btn btn-danger" style="">Delete</button> <button id="smartRegexPopUpBack" onclick="replaceSmartBack()" class="btn btn-default" style=""><<</button> <button id="smartRegexPopUpFor" onclick="replaceSmartFor()" class="btn btn-default" style="">>></button> <button onclick="replaceSmartClose()" class="btn btn-default" style="">Close</button> </div> </div> <div id="follow-scroll" style="position:absolute; height:680px; overflow:scroll; margin:0 5 15 5; max-width:270px"> <form action="javascript:void(0);"> <fieldset> <legend><h5 class="text-success"> Config Topic: </h5></legend> <div> current topic is <?php echo $topic_name; ?> <button onclick="chooseTopic(<?php echo $default_topic_id; ?>)" class="btn btn-xs btn-default">Change</button> </div> <button onclick="configTagsInTopic(<?php echo $default_topic_id;?>)" class="btn btn-sm btn-default" style="">Manage Tags in topic</button></br> </fieldset> <fieldset> <legend><h5 class="text-success"> Replace By <i><b>Smart Regex</b></i>©: </h5></legend> <div id="smartRegexShowDiv"></div><br> <button onclick="smartRegexNew()" style="height: 30px; width: 220px">Add Regex Group</button></br> Range: <input type="text" size="5" id="regexPageStart">to<input type="text" size="5" id="regexPageEnd"><br> <button onclick="replaceSmartRun()" style="height: 30px; width: 100px">Run</button> <button onclick="replaceSmartRunWithBr()" style="height: 30px; width: 100px">Run(with Br)</button></br> <button onclick="replaceSmartRunSpace()" style="height: 30px; width: 220px">Run(Allow space between Group)</button></br> <button onclick="smartRegexSave(<?php echo $default_topic_id; ?>)" style="height: 30px; width: 70px">Save</button> <button onclick="smartRegexLoad(<?php echo $default_topic_id; ?>)" style="height: 30px; width: 70px">Load</button> <button onclick="smartRegexEmpty()" style="height: 30px; width: 70px">Clear</button></br> <!-- <button id="example" type="button" class="btn btn-sm btn-default" data-toggle="popover">Load</button> --> </fieldset> <fieldset> <legend><h5 class="text-success"> Tag by rule:</h5></legend> <button onclick="tagNameWithLastName()" style="height: 30px; width: 220px">Tag Word Begin With Surname</button></br> <button onclick="tagNameWithLastName2()" style="height: 30px; width: 170px">Tag Word Begin With</button><input type="text" size="2" id="surname"></br> <!--<button onclick="tagTime()" style="height: 30px; width: 220px">Tag Time</button></br>--> <!--<button onclick="tagBiogAddr()" style="height: 30px; width: 220px">Tag BiogAddr</button></br>--> <button onclick="Undo()" style="height: 30px; width: 220px" id="buttonUndo" disabled="true">Undo</button> </fieldset> <fieldset> <legend><h5 class="text-success"> Edit:</h5></legend> <button onclick="saveTextToLGService()" style="height: 30px; width: 220px">Save to LGService</button></br> <!--<button onclick="cleanUpTextArea()" style="height: 30px; width: 220px">Reform the text</button></br>--> <!-- save text in local. replaced by saveTextToLGService, which is also saving on copy in local in development stage --> <!-- <button onclick="saveText(<?php echo $section_id; ?>)" style="height: 30px; width: 220px">Save the text</button></br> --> <button onclick="editText()" id="editTextId" style="height: 30px; width: 220px">Edit the text</button></br> </br> <button onclick="window.open('./EditWordlist')" style="height: 30px; width: 220px">Manage Word List</button></br> <!-- <button onclick="window.open('./EditTaglist')" style="height: 30px; width: 220px">Manage Tag List</button></br> --> <button onclick="editTaglist(<?php echo $default_topic_id; ?>)" style="height: 30px; width: 220px">Manage Tag List</button></br> </fieldset> <fieldset> <legend><h5 class="text-success"> Export:</h5></legend> Page: <input type="text" size="5" id="exportPageStart">to<input type="text" size="5" id="exportPageEnd"><br> <button onclick="exportPage(<?php echo $default_topic_id;?>)" style="height: 30px; width: 220px">Export</button></br> <button onclick="exportAll(<?php echo $default_topic_id;?>)" style="height: 30px; width: 220px">Export All</button></br> </fieldset> <fieldset> <legend><h5 class="text-success"> Replace By <i><b>Regex</b></i>: </h5></legend> Range: <input type="text" size="5" id="regexPageStart2">to<input type="text" size="5" id="regexPageEnd2"><br> Regex: <input type="text" size="23" id="regexText"></br> Replace: <input type="text" size="23" id="replaceText"><br> <button onclick="replaceSmartRegex()">Replace!</button> </fieldset> </form> </div> </td> </tr> </table> </body> </html>