comparison views/Extractapp/TaggingText.php @ 67:3ada9334ebfc extractapp

New: check taglist is deprecated or not
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 07 Apr 2015 14:45:31 +0200
parents e71a437ae49f
children 6676ca451dcc
comparison
equal deleted inserted replaced
66:e71a437ae49f 67:3ada9334ebfc
108 108
109 } 109 }
110 110
111 function handleFileVersionConflict() { 111 function handleFileVersionConflict() {
112 var info = JSON.parse('<?php echo json_encode($info) ?>'); 112 var info = JSON.parse('<?php echo json_encode($info) ?>');
113 console.log("currentFileId="+info['current_fileId']);
114
115 // if (info['current_fileId'] != 0 && info['current_fileId'] != info['file_id']){ 113 // if (info['current_fileId'] != 0 && info['current_fileId'] != info['file_id']){
116 if (info['current_fileId'] != 0){ 114 if (info['current_fileId'] != 0){
117 // -- there might be conflicts between different version 115 // -- there might be conflicts between different version
118 alert("Your saving failed! Someone edited this file and saved before you."); 116 alert("Your saving failed! Someone edited this file and saved before you.");
119 $('#reloadTextButton').css("display", "block"); 117 $('#reloadTextButton').css("display", "block");
148 var windowpos = $(window).scrollTop(); 146 var windowpos = $(window).scrollTop();
149 var finaldestination = windowpos+originalelpos; 147 var finaldestination = windowpos+originalelpos;
150 //el.stop().animate({'top':finaldestination},500); 148 //el.stop().animate({'top':finaldestination},500);
151 el.stop().animate({'top':finaldestination},0); 149 el.stop().animate({'top':finaldestination},0);
152 }); 150 });
151 // ---
153 152
154 //--- for popups --- 153 //--- for popups ---
155 //run once 154 //run once
156 var el=$('#popups'); 155 var el=$('#popups');
157 var originalelpos=el.offset().top; // take it where it originally is on the page 156 var originalelpos=el.offset().top; // take it where it originally is on the page
163 var windowpos = $(window).scrollTop(); 162 var windowpos = $(window).scrollTop();
164 var finaldestination = windowpos+originalelpos; 163 var finaldestination = windowpos+originalelpos;
165 //el.stop().animate({'top':finaldestination},500); 164 //el.stop().animate({'top':finaldestination},500);
166 el.stop().animate({'top':finaldestination},0); 165 el.stop().animate({'top':finaldestination},0);
167 }); 166 });
168 167 // ---
169 168
169
170 // === This case only be possible for developing on local machine ====
170 var _GET = JSON.parse('<?php echo json_encode($_GET) ?>'); 171 var _GET = JSON.parse('<?php echo json_encode($_GET) ?>');
171 if (_GET['id']) { 172 if (_GET['id']) {
172 // === This case should only be possible for developing on local machine ====
173 var info = JSON.parse('<?php echo json_encode($info) ?>'); 173 var info = JSON.parse('<?php echo json_encode($info) ?>');
174 var redirectUrl = "http://localhost:1080/localgazetteers-dev/extraction-interface/Extractapp/TaggingText"; 174 var redirectUrl = "http://localhost:1080/localgazetteers-dev/extraction-interface/Extractapp/TaggingText";
175 var section_id = info['section_id']; 175 var section_id = info['section_id'];
176 176
177 var form = $('<form action="' + redirectUrl + '" method="post">' + 177 var form = $('<form action="' + redirectUrl + '" method="post">' +
178 '<input type="hidden" name="sectionId" value="'+section_id+'" />' + 178 '<input type="hidden" name="sectionId" value="'+section_id+'" />' +
179 '</form>'); 179 '</form>');
180 $('body').append(form); 180 $('body').append(form);
181 $(form).submit(); 181 $(form).submit();
182 } 182 }
183 183 // --------
184
185 // --- handle file version conflict ---
186 var info = JSON.parse('<?php echo json_encode($info) ?>');
187 // the first time to this section. without branch_id and file_id
188 if (info['file_id'] == 0) { // or info['branch_id'] == 0, means new file
189 $( "#saveTextToLGService_id").text( "Create(Save) Branch to LGService" );
190
191 }
192 handleFileVersionConflict();
193
194 // --- handle taglist deprecation ---
195 var taglist_infile = JSON.parse('<?php echo json_encode($taglist_infile) ?>');
196 var taglistArray = JSON.parse('<?php echo json_encode($taglistArray) ?>');
197
198 if (taglist_infile == "") {
199 console.log("Debug: taglist_infile is empty which means taglist_infile is equal to taglist in db.");
200 } else {
201 console.log("Debug: taglist_infile length=" + taglist_infile.length);
202 console.log(taglist_infile);
203 console.log("Debug: taglistArray length=" + taglistArray.length);
204 console.log(taglistArray);
205
206 // TOOD: ask user to modify/decide tags
207 // showing taglist_infile and taglistArray
208 alert("taglist is deprecated in the current file.");
209
210 }
184 211
185 // --- handle old version taglist --- 212 // --- handle old version taglist ---
186 // --- TODO: check if taglist in file is up-to-date --- 213 // --- TODO: check if taglist in file is up-to-date ---
187 /* 214 /*
188 var taglist_infile = JSON.parse('<?php echo json_encode($taglist_infile) ?>'); 215 var taglist_infile = JSON.parse('<?php echo json_encode($taglist_infile) ?>');
202 //_showTagColor(retVal); 229 //_showTagColor(retVal);
203 <?php $taglist_infile = ""; ?> 230 <?php $taglist_infile = ""; ?>
204 } 231 }
205 */ 232 */
206 233
207 var info = JSON.parse('<?php echo json_encode($info) ?>'); 234
208
209 // the first time to this section. without branch_id and file_id
210 if (info['file_id'] == 0) { // or info['branch_id'] == 0, means new file
211 $( "#saveTextToLGService_id").text( "Create(Save) Branch to LGService" );
212
213 }
214
215 handleFileVersionConflict();
216
217 235
218 }); 236 });
219 237
220 $(document).on("mouseup", '#editable-area', function (e) { 238 $(document).on("mouseup", '#editable-area', function (e) {
221 239
477 hiddenField.setAttribute("name", "topic"); 495 hiddenField.setAttribute("name", "topic");
478 hiddenField.setAttribute("value", topic_id); 496 hiddenField.setAttribute("value", topic_id);
479 form.appendChild(hiddenField); 497 form.appendChild(hiddenField);
480 498
481 _postForContineTagging(form); 499 _postForContineTagging(form);
482 /*
483 var section_id = JSON.parse('<?php echo json_encode($section_id) ?>');
484 console.log("section_id: "+section_id+", topic_id: "+topic_id);
485
486 var hiddenField = document.createElement("input");
487 hiddenField.setAttribute("name", "sectionId");
488 hiddenField.setAttribute("value", section_id);
489 form.appendChild(hiddenField);
490
491 var info = JSON.parse( '<?php echo json_encode($info) ?>');
492
493 if (info) {
494 var hiddenField = document.createElement("input");
495 hiddenField.setAttribute("name", "bookId");
496 hiddenField.setAttribute("value", info['book_id']);
497 form.appendChild(hiddenField);
498
499 var hiddenField = document.createElement("input");
500 hiddenField.setAttribute("name", "bookName");
501 hiddenField.setAttribute("value", info['book_name']);
502 form.appendChild(hiddenField);
503
504 var hiddenField = document.createElement("input");
505 hiddenField.setAttribute("name", "sectionName");
506 hiddenField.setAttribute("value", info['section_name']);
507 form.appendChild(hiddenField);
508
509 };
510
511
512 if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
513 document.body.appendChild(form);
514 form.submit();
515 } else {
516 form.submit(); // works under IE and Chrome, but not FF
517 }
518 */
519 500
520 } 501 }
521 // =========== 502 // ===========
522 503
523 function tagwithOnlytag( range, stringSelection, tag ) { 504 function tagwithOnlytag( range, stringSelection, tag ) {
524 saveUndoText(); 505 saveUndoText();
525 var topic_tag = JSON.parse('<?php echo json_encode($topic_tag) ?>'); 506 var topic_tag = JSON.parse('<?php echo json_encode($topic_tag) ?>');
526 var topic_tag2 = topic_tag+"2"; 507 var topic_tag2 = topic_tag+"2";
527 508
528 range.deleteContents(); 509 range.deleteContents();
529
530 510
531 if ( tag==topic_tag2) { 511 if ( tag==topic_tag2) {
532 var newdiv = document.createElement(topic_tag); 512 var newdiv = document.createElement(topic_tag);
533 newdiv.innerHTML = stringSelection; 513 newdiv.innerHTML = stringSelection;
534 range.insertNode(newdiv); 514 range.insertNode(newdiv);
539 var newdiv = document.createElement(tag); 519 var newdiv = document.createElement(tag);
540 newdiv.innerHTML = stringSelection; 520 newdiv.innerHTML = stringSelection;
541 range.insertNode(newdiv); 521 range.insertNode(newdiv);
542 } 522 }
543 523
544 /*
545 if ( tag=="person2") {
546 var newdiv = document.createElement("person");
547 newdiv.innerHTML = stringSelection;
548 range.insertNode(newdiv);
549 var newdiv = document.createElement("br");
550 range.insertNode(newdiv);
551 } else if (tag=="object2") {
552 var newdiv = document.createElement("object");
553 newdiv.innerHTML = stringSelection;
554 range.insertNode(newdiv);
555 var newdiv = document.createElement("br");
556 range.insertNode(newdiv);
557
558 } else {
559 var newdiv = document.createElement(tag);
560 newdiv.innerHTML = stringSelection;
561 range.insertNode(newdiv);
562 }
563 */
564 524
565 $('.tagItemDivClass').remove(); 525 $('.tagItemDivClass').remove();
566 } 526 }
567 527
568 function replaceSmartRegex() { 528 function replaceSmartRegex() {
707 }; 667 };
708 668
709 669
710 //Create and append the options 670 //Create and append the options
711 for (var i = 0; i < t.length; i++) { 671 for (var i = 0; i < t.length; i++) {
712 console.log(t[i]['id']+","+t[i]['name_ch']+","+t[i]['name_pinyin']+","+t[i]['name_en']);
713 var option = document.createElement("option"); 672 var option = document.createElement("option");
714 option.value = t[i]['id']; 673 option.value = t[i]['id'];
715 option.text = t[i]['name_en']+" ("+t[i]['name_ch']+", "+t[i]['name_pinyin']+")"; 674 option.text = t[i]['name_en']+" ("+t[i]['name_ch']+", "+t[i]['name_pinyin']+")";
716 if (option.value == default_topic_id) { 675 if (option.value == default_topic_id) {
717 option.selected = true; 676 option.selected = true;
739 698
740 // pass taglist 699 // pass taglist
741 var hiddenField = document.createElement("input"); 700 var hiddenField = document.createElement("input");
742 hiddenField.setAttribute("name", "taglistArray"); 701 hiddenField.setAttribute("name", "taglistArray");
743 var taglistObj = JSON.parse('<?php echo json_encode($taglist_infile) ?>'); 702 var taglistObj = JSON.parse('<?php echo json_encode($taglist_infile) ?>');
703 // if taglist_infile == "" means the taglist in db is up-to-date, will use taglistArray to save to file
704
744 if (!taglistObj) { 705 if (!taglistObj) {
706 // TODO: should pass the user-decided taglist to post['taglistArray']
745 taglistObj = JSON.parse('<?php echo json_encode($taglistArray) ?>'); 707 taglistObj = JSON.parse('<?php echo json_encode($taglistArray) ?>');
746 } 708 }
747 taglistArray = JSON.stringify(taglistObj); 709 taglistArray = JSON.stringify(taglistObj);
748 hiddenField.setAttribute("value", taglistArray); 710 hiddenField.setAttribute("value", taglistArray);
749 form.appendChild(hiddenField); 711 form.appendChild(hiddenField);
867 </div> 829 </div>
868 <div class="bg-info"> <?php echo $messages['info']; ?> </div> 830 <div class="bg-info"> <?php echo $messages['info']; ?> </div>
869 <div class="bg-default"> <?php echo $messages['debug']; ?> </div> 831 <div class="bg-default"> <?php echo $messages['debug']; ?> </div>
870 </div> 832 </div>
871 833
872 <table width="1270" border="1" style="margin:10 30 30 30; width:100%; max-width:1270px"> 834 <table border="1" style="margin:10 30 30 30; width:100%; max-width:1270px">
873 <tr> 835 <tr>
874 <td width="980" style="padding:0 5 0 5; margin: 0 5 0 5;"> 836 <td style="padding:0 5 0 5; margin: 0 5 0 5;">
875 <div id="editable-area" class="area" style="max-width:980px; min-width:400px"><?php echo $stringInput; ?></div> 837 <div id="editable-area" class="area" style="max-width:980px; min-width:400px"><?php echo $stringInput; ?></div>
876 </td> 838 </td>
877 <td width="290" valign="top" style="min-width:280px"> 839 <td valign="top" style="min-width:280px; padding:0 5 0 5; margin:0 5 0 5;">
878 <div id="popups" style="position:absolute; width:300px; "> 840 <div id="popups" style="position:absolute; width:300px; ">
879 <div id="load_topic_div" class="popup-topic popup-frame"></div> 841 <div id="load_topic_div" class="popup-topic popup-frame"></div>
880 <div id="load_regex_div" class="popup-loadregex popup-frame"></div> 842 <div id="load_regex_div" class="popup-loadregex popup-frame"></div>
881 <div id="smartRegexPopUpDiv" class="popup-regex popup-frame"> 843 <div id="smartRegexPopUpDiv" class="popup-regex popup-frame">
882 Name: <input id="smartRegexPopUpName"></input><br><br> 844 Name: <input id="smartRegexPopUpName"></input><br><br>