From e19c35a6d99fd792106d925ae03e8ae3cef3f6b3 Mon Sep 17 00:00:00 2001
From: Li Jun <buli@deloitte.com.cn>
Date: 星期三, 20 四月 2022 16:44:06 +0800
Subject: [PATCH] Insert log issue
---
force-app/main/default/pages/XinDailyReport.page | 128 +++++++++++++++++++++++++++++++++++++-----
1 files changed, 111 insertions(+), 17 deletions(-)
diff --git a/force-app/main/default/pages/XinDailyReport.page b/force-app/main/default/pages/XinDailyReport.page
index b762bc6..82c4800 100644
--- a/force-app/main/default/pages/XinDailyReport.page
+++ b/force-app/main/default/pages/XinDailyReport.page
@@ -9,6 +9,10 @@
<apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
<apex:includeScript value="/soap/ajax/29.0/connection.js"/>
<apex:includeScript value="/soap/ajax/29.0/apex.js"/>
+ <!-- Add By Li Jun for PIPL 20220225 -->
+ <apex:includeScript value="{!URLFOR($Resource.AWSService, 'AWSService.js') }" />
+ <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script>
+ <!-- Add By Li Jun for PIPL 20220225 -->
<!-- <apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
<apex:includeScript value="{!URLFOR($Resource.apex20)}"/> -->
<apex:includeScript value="{!URLFOR($Resource.jquerydoubletapjs)}"/>
@@ -58,11 +62,88 @@
var tempActId = '';
var tempRecordTypeName = '';
var tempBtnIdHidden = '';
+ var OPDId = '';
var tempRedId = '';
var tempReportId = '';
var hiddenDivShowFlg = false;
var StatusCheck = '{!report.Status_With_Check__c}'; //20210426 zh
sforce.connection.sessionId = '{!$Api.Session_ID}';
+
+ //Add By Li Jun 20220225 for PIPL Start
+ // AWSService.sfSessionId = '{!GETSESSIONID()}';
+ // var staticResources = JSON.parse('{!staticResource}');
+ // var contactAWSIds = JSON.parse('{!contactAWSIds}');
+ // console.log('contactAWSIds:'+JSON.stringify(contactAWSIds));
+ // var sfIdToContactInfo = {};
+ // function preparePayloadForSearchContact(){
+ // let searchPayload = new Object();
+ // searchPayload.dataIds = contactAWSIds;
+ // searchPayload.contactName = '';
+ // return JSON.stringify(searchPayload);
+ // }
+
+ // function refreshContactAll(){
+ // let contactIdsFromSF = [];
+ // // let allSizeForAct =document.getElementById('Page:mainForm:idDayEdit:AllSize').value;
+ // let allSizeForAct = j$(escapeVfId('idActSize')).value();
+ // console.log('allSizeForAct:'+allSizeForAct);
+ // for(let i=0;i<allSizeForAct;i++){
+ // for(let j=1;j<6;j++){
+ // let contactIdForVis = document.getElementById("Page:mainForm:idDayEdit:idActivities:"+i+":idVisitor"+j+"_IdHidden").value;
+ // contactIdsFromSF.push(contactIdForVis);
+ // }
+ // };
+ // sforce.connection.sessionId = '{!GETSESSIONID()}';
+ // var condition = '';
+ // for(var i=0;i<contactIdsFromSF.length;i++){
+ // if(contactIdsFromSF[i] != ''){
+ // condition += "," + "\'"+contactIdsFromSF[i]+"\'";
+ // }
+ // }
+ // condition = condition.substr(1);
+ // console.log('condition = ' + condition);
+ // var record = sforce.connection.query("select AWS_Data_Id__c from Contact where id in("+condition+")");
+ // var records = record.getArray("records");
+ // for(var i =0;i<records.length;i++){
+ // contactAWSIds.push(records[i].AWS_Data_Id__c);
+ // }
+ // searchContactAll();
+ // }
+ // function searchContactAll(){
+ // let data = preparePayloadForSearchContact();
+ // let searchCallBack = function searchCallBack(result){
+ // let contacts = result.object;
+ // if(contacts == null){
+ // return;
+ // }
+ // for(var i=0;i<contacts.length;i++){
+ // let temp = {}
+ // temp.lastName = contacts[i].lastName?contacts[i].lastName:'';
+ // if(contacts[i].sfRecordId){
+ // sfIdToContactInfo[contacts[i].sfRecordId] = temp;
+ // }
+ // }
+ // console.log('AWS Result:'+JSON.stringify(sfIdToContactInfo));
+ // // let allSizeForAct =document.getElementById('Page:mainForm:idDayEdit:AllSize').value;
+ // let allSizeForAct = j$(escapeVfId('idActSize')).value();
+ // console.log('Act size:'+allSizeForAct);
+ // for(let i=0;i<allSizeForAct;i++){
+ // for(let j=1;j<6;j++){
+ // let contactIdForVis = document.getElementById("Page:mainForm:idDayEdit:idActivities:"+i+":idVisitor"+j+"_IdHidden").value;
+ // if(contactIdForVis){
+ // console.log('SFId for Contact:'+contactIdForVis);
+ // if(sfIdToContactInfo.hasOwnProperty(contactIdForVis)){
+ // document.getElementById("Page:mainForm:idDayEdit:idActivities:"+i+":idVisitor"+j).value = sfIdToContactInfo[contactIdForVis].lastName;
+ // }
+ // }else{
+ // document.getElementById("Page:mainForm:idDayEdit:idActivities:"+i+":idVisitor"+j).value = '';
+ // }
+ // }
+ // }
+ // };
+ // AWSService.search(staticResources.searchUrl,data,searchCallBack,staticResources.token);
+ // }
+ //Add By Li Jun 20220225 for PIPL End
//window.document.onkeydown= onKeyEvent;
function initSetPage() {
// 2018/11/21 SWAG-B6Q8BS 鍒濆鍖栬缃鑹蹭娇鐢�
@@ -504,7 +585,7 @@
}else {
//浜嬩欢瀹屾垚
if(NewEventStatus == '03 瀹屾垚'){
- // j$(escapeVfId('Page:mainForm:idDayEdit:idActivities:' + j + ':idfieldset')).attr('disabled', 'disabled');
+ // j$(escapeVfId('Page:mainForm:idDayEdit:idActivities:' + j + ':idfieldset')).attr('disabled', 'disabled');
//浜嬩欢瀹屾垚鍚庡欢鏈熷彇娑堜笉鍙慨鏀�
//鍙栨秷鎸夐挳
document.getElementById('Page:mainForm:idDayEdit:idActivities:'+j+':idCancel').disabled = true;
@@ -537,7 +618,7 @@
document.getElementById('Page:mainForm:idDayEdit:idActivities:'+j+':idDelayReason').disabled = true;
//鍙栨秷淇℃伅
//Page:mainForm:idDayEdit:idActivities:0:idCancelReasonRemark
- document.getElementById('Page:mainForm:idDayEdit:idActivities:'+j+':idCancelReasonRemark').disabled = true;
+ document.getElementById('Page:mainForm:idDayEdit:idActivities:'+j+':idCancelReasonRemark').disabled = true;
}
}
}
@@ -1051,24 +1132,33 @@
<tr>
<th>{!$Label.Visitor}</th><!--璁块棶瀵硅薄-->
<td> </td>
- <td colspan="5"><span><div class="requiredInput"><div class="requiredBlock"></div><apex:inputField id="idVisitor1" value="{!a.act.Visitor1__c}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor1_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /></div></span><apex:inputText id="idVisitor1_IdHidden" value="{!a.act.Visitor1_ID__c}" style="display:none"/></td>
+ <td colspan="5"><span><div class="requiredInput"><div class="requiredBlock"></div>
+ <apex:inputText id="idVisitor1" value="{!idVisitor1PI}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor1_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /></div></span><apex:inputText id="idVisitor1_IdHidden" value="{!a.act.Visitor1_ID__c}" style="display:none"/></td>
<td> </td>
- <td colspan="2"><apex:inputField id="idVisitor2" value="{!a.act.Visitor2__c}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor2_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor2_IdHidden" value="{!a.act.Visitor2_ID__c}" style="display:none"/></td>
+ <td colspan="2">
+ <apex:inputText id="idVisitor2" value="{!idVisitor2PI}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor2_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor2_IdHidden" value="{!a.act.Visitor2_ID__c}" style="display:none"/></td>
+ <!-- <apex:inputField id="idVisitor2" value="{!a.act.Visitor2__c}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor2_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor2_IdHidden" value="{!a.act.Visitor2_ID__c}" style="display:none"/></td> -->
<td> </td>
- <td><apex:inputField id="idVisitor3" value="{!a.act.Visitor3__c}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor3_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor3_IdHidden" value="{!a.act.Visitor3_ID__c}" style="display:none"/></td>
+ <td>
+ <apex:inputText id="idVisitor3" value="{!idVisitor3PI}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor3_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor3_IdHidden" value="{!a.act.Visitor3_ID__c}" style="display:none"/></td>
+ <!-- <apex:inputField id="idVisitor3" value="{!a.act.Visitor3__c}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor3_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor3_IdHidden" value="{!a.act.Visitor3_ID__c}" style="display:none"/></td> -->
<td> </td>
- <td><apex:inputField id="idVisitor4" value="{!a.act.Visitor4__c}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor4_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor4_IdHidden" value="{!a.act.Visitor4_ID__c}" style="display:none"/></td>
+ <td>
+ <apex:inputText id="idVisitor4" value="{!idVisitor4PI}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor4_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor4_IdHidden" value="{!a.act.Visitor4_ID__c}" style="display:none"/></td>
+ <!-- <apex:inputField id="idVisitor4" value="{!a.act.Visitor4__c}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor4_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor4_IdHidden" value="{!a.act.Visitor4_ID__c}" style="display:none"/></td> -->
<td> </td>
- <td><apex:inputField id="idVisitor5" value="{!a.act.Visitor5__c}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor5_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor5_IdHidden" value="{!a.act.Visitor5_ID__c}" style="display:none"/></td>
+ <td>
+ <apex:inputText id="idVisitor5" value="{!idVisitor5PI}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor5_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor5_IdHidden" value="{!a.act.Visitor5_ID__c}" style="display:none"/></td>
+ <!-- <apex:inputField id="idVisitor5" value="{!a.act.Visitor5__c}" style="width:100px" onchange="clearVisitorId({!a.index},'idVisitor5_IdHidden');" onClick="searchVisitor2({!a.index},value);return false;" /><apex:inputText id="idVisitor5_IdHidden" value="{!a.act.Visitor5_ID__c}" style="display:none"/></td> -->
<td> </td>
<th>{!$Label.Main_Visit_Location}</th>
<td> </td>
<td><apex:inputField id="idMainPlace" value="{!a.act.Main_Visit_Location__c}" style="width:100px" /></td>
<td> </td>
<th>{!$Label.Free_Input} <apex:inputField id="idFree_Input__c" value="{!a.act.Free_Input__c}" onClick="if(vpChack({!a.index})) return false;setVisitorPlaceDisabled();"/> </th>
- </tr>
+ </tr>
<tr>
- <th>鎷滆鐩殑</th>
+ <th >鎷滆鐩殑</th>
<td></td>
<apex:outputPanel rendered="{!IF(reportOwner.Job_Category__c == '閿�鍞湇鍔�', 'true', 'false')}" layout="none">
<td colspan="3"><span><div class="requiredInput"><div class="requiredBlock"></div><apex:inputField id="idActivityPurposeFSEDiv" value="{!a.act.Activity_PurposeFSE__c}" ></apex:inputField>
@@ -1172,7 +1262,7 @@
<td colspan="4"><input type="button" id="{!a.index}:idRelOpp5Btn" class="btn" value="璇环鏇存柊" onclick="enquiryPage(this);" style="width: 63px; cursor: default; border-color: rgb(196, 196, 196); color: #909090; background-position: 0px -90px;" disabled="disabled" />
<input type="button" id="{!a.index}:idRelOpp5LoseBtn" class="btn" value="澶卞崟" onclick="loseEnquiry(this);" style="width: 35px; cursor: default; border-color: rgb(196, 196, 196); color: #909090; background-position: 0px -90px;" disabled="disabled" />
</td>
-
+
<td><input type="button" id="{!a.index}:idRelService1Btn" class="btn" value="淇℃伅鏇存柊" onclick="slaInfoPage('{!a.act.Id}','{!a.index}')" style="width: 100px; cursor: default; border-color: rgb(196, 196, 196); color: #909090; background-position: 0px -90px;" disabled="disabled" /></td>
</tr>
</table>
@@ -1249,23 +1339,23 @@
<td><input type="button" class="btn" id="idOpds{!a.index}" name="reportBtn" value="鏂板缓OPD璁″垝" style="width:110px" onclick="addOpdNew('{!a.index}', '{!a.act.Id}');"/></td>
<!--SWAG-BUF6R8 20201020 youchang end -->
<td> </td>
- <td><input type="button" class="{!If(a.act.OPD_ID__c != '' || a.act.OPDPlan_Flag__c,'btnRed','btn')}" id="idOPD{!a.index}" name="reportBtn" value="{!$Label.OPD_Taiwan}" style="width:110px;{!If(a.act.OPD_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','OPD','idOPD_IdHidden','idOPD','{!report.id}');"/><apex:inputText id="idOPD_IdHidden" value="{!a.act.OPD_ID__c}" style="display:none" disabled="true"/></td>
+ <td><input type="button" class="{!If(a.act.OPD_ID__c != '' || a.act.OPDPlan_Flag__c,'btnRed','btn')}" id="idOPD{!a.index}" name="reportBtn" value="{!$Label.OPD_Taiwan}" style="width:110px;{!If(a.act.OPD_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','OPD','idOPD_IdHidden','idOPD','{!report.id}','{!a.act.Opd_Plan__c}');"/><apex:inputText id="idOPD_IdHidden" value="{!a.act.OPD_ID__c}" style="display:none" disabled="true"/></td>
<!-- <td><input type="button" class="{!If(a.act.OPD_ID__c != '','btnRed','btn')}" id="idOPD{!a.index}" name="reportBtn" value="{!$Label.OPD_Taiwan}" style="width:110px;{!If(a.act.OPD_ID__c != '','color:red;','color:black;')}" onclick="selectOPDSISReportType('{!a.index}','{!a.act.id}','OPD','idOPD_IdHidden','idOPD','{!report.id}');"/><apex:inputText id="idOPD_IdHidden" value="{!a.act.OPD_ID__c}" style="display:none" disabled="true"/></td> -->
<td> </td>
- <td><input type="button" class="{!If(a.act.NTC_ID__c != '','btnRed','btn')}" id="idNTC{!a.index}" name="reportBtn" value="NTC/CDS鍩硅" style="width:110px;{!If(a.act.NTC_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','NTC','idNTC_IdHidden','idNTC','{!report.id}');"/><apex:inputText id="idNTC_IdHidden" value="{!a.act.NTC_ID__c}" style="display:none" disabled="true"/></td>
+ <td><input type="button" class="{!If(a.act.NTC_ID__c != '','btnRed','btn')}" id="idNTC{!a.index}" name="reportBtn" value="NTC/CDS鍩硅" style="width:110px;{!If(a.act.NTC_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','NTC','idNTC_IdHidden','idNTC','{!report.id}','{!a.act.Opd_Plan__c}');"/><apex:inputText id="idNTC_IdHidden" value="{!a.act.NTC_ID__c}" style="display:none" disabled="true"/></td>
<td> </td>
- <td><input type="button" class="{!If(a.act.OnCall_ID__c != '','btnRed','btn')}" id="idONCALL{!a.index}" name="reportBtn" value="ON CALL" style="width:110px;{!If(a.act.OnCall_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','On_Call','idONCALL_IdHidden','idONCALL','{!report.id}');"/><apex:inputText id="idONCALL_IdHidden" value="{!a.act.OnCall_ID__c}" style="display:none" disabled="true"/></td>
+ <td><input type="button" class="{!If(a.act.OnCall_ID__c != '','btnRed','btn')}" id="idONCALL{!a.index}" name="reportBtn" value="ON CALL" style="width:110px;{!If(a.act.OnCall_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','On_Call','idONCALL_IdHidden','idONCALL','{!report.id}','{!a.act.Opd_Plan__c}');"/><apex:inputText id="idONCALL_IdHidden" value="{!a.act.OnCall_ID__c}" style="display:none" disabled="true"/></td>
<td> </td>
- <td><input type="button" class="{!If(a.act.ReportAccompanied_ID__c != '','btnRed','btn')}" id="idReportAccompanied{!a.index}" name="reportBtn" value="{!$Label.Report_Accompanied}" style="width:110px;{!If(a.act.ReportAccompanied_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','Visit_With','idReportAccompanied_IdHidden','idReportAccompanied','{!report.id}');"/><apex:inputText id="idReportAccompanied_IdHidden" value="{!a.act.ReportAccompanied_ID__c}" style="display:none" disabled="true"/></td>
+ <td><input type="button" class="{!If(a.act.ReportAccompanied_ID__c != '','btnRed','btn')}" id="idReportAccompanied{!a.index}" name="reportBtn" value="{!$Label.Report_Accompanied}" style="width:110px;{!If(a.act.ReportAccompanied_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','Visit_With','idReportAccompanied_IdHidden','idReportAccompanied','{!report.id}','{!a.act.Opd_Plan__c}');"/><apex:inputText id="idReportAccompanied_IdHidden" value="{!a.act.ReportAccompanied_ID__c}" style="display:none" disabled="true"/></td>
<td> </td>
- <td><input type="button" class="{!If(a.act.CityStatus_ID__c != '','btnRed','btn')}" id="idCityStatus{!a.index}" name="reportBtn" value="{!$Label.City_Status_Report}" style="width:110px;{!If(a.act.CityStatus_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','MarketCondition','idCityStatus_IdHidden','idCityStatus','{!report.id}');"/><apex:inputText id="idCityStatus_IdHidden" value="{!a.act.CityStatus_ID__c}" style="display:none" disabled="true"/></td>
+ <td><input type="button" class="{!If(a.act.CityStatus_ID__c != '','btnRed','btn')}" id="idCityStatus{!a.index}" name="reportBtn" value="{!$Label.City_Status_Report}" style="width:110px;{!If(a.act.CityStatus_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','MarketCondition','idCityStatus_IdHidden','idCityStatus','{!report.id}','{!a.act.Opd_Plan__c}');"/><apex:inputText id="idCityStatus_IdHidden" value="{!a.act.CityStatus_ID__c}" style="display:none" disabled="true"/></td>
<td> </td>
<!-- <td>
<input type="button" class="{!If(a.act.Claim_ID__c != '','btnRed','btn')}" id="idClaim{!a.index}" name="reportBtn" value="{!$Label.Claim_Input}" style="width:110px;{!If(a.act.Claim_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','Complaint','idClaim_IdHidden','idClaim','{!report.id}');"/>
<apex:inputText id="idClaim_IdHidden" value="{!a.act.Claim_ID__c}" style="display:none" disabled="true"/>
</td> -->
<td> </td>
- <td><input type="button" class="{!If(a.act.Conflict_ID__c != '','btnRed','btn')}" id="idConflict{!a.index}" name="reportBtn" value="{!$Label.Competitor_Information}" style="width:110px;{!If(a.act.Conflict_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','Competitor','idConflict_IdHidden','idConflict','{!report.id}');"/><apex:inputText id="idConflict_IdHidden" value="{!a.act.Conflict_ID__c}" style="display:none" disabled="true"/></td>
+ <td><input type="button" class="{!If(a.act.Conflict_ID__c != '','btnRed','btn')}" id="idConflict{!a.index}" name="reportBtn" value="{!$Label.Competitor_Information}" style="width:110px;{!If(a.act.Conflict_ID__c != '','color:red;','color:black;')}" onclick="openPDNew('{!a.index}','{!a.act.id}','Competitor','idConflict_IdHidden','idConflict','{!report.id}','{!a.act.Opd_Plan__c}');"/><apex:inputText id="idConflict_IdHidden" value="{!a.act.Conflict_ID__c}" style="display:none" disabled="true"/></td>
</tr>
<tr>
<td style="text-align:left;"><apex:commandButton styleClass="idSaveComment" value="{!$Label.SaveComment}" onclick="blockme();" style="width:80px" action="{!saveComment}" rerender="dummy" disabled="{!ministerCommentEditFlg && managerCommentEditFlg}"/></td>
@@ -1535,6 +1625,10 @@
</fieldset>
<!-- 20200420 浠诲姟鏃ユ姤绠$悊 add gzw end -->
</apex:repeat>
+ <script>
+ console.log('Load AWS Data');
+ searchContactAll();
+ </script>
</apex:outputPanel>
<apex:outputPanel id="idAddActPanel">
<table class="formtable" width="1200" border="0">
@@ -1562,7 +1656,7 @@
<td> </td>
<td><apex:commandButton value="{!$Label.Add_Line}" id="idAddAct" action="{!addActivity}"
reRender="Activities,idAddActPanel" onClick="blockme();"
- onComplete="bindAllDoubleTap();setVisitorPlaceDisabled();unblockUI();initSetPage();"
+ onComplete="bindAllDoubleTap();setVisitorPlaceDisabled();unblockUI();initSetPage();refreshContactAll();"
style="width:100px;display:{!IF(actSize>14,'none','')}"/></td>
<th> </th>
<td> </td>
--
Gitblit v1.9.1