Обновление документации

This commit is contained in:
Igor I
2024-01-24 08:29:40 +06:00
parent 15064de0e2
commit 4b03f9ecc3
10 changed files with 107 additions and 83 deletions

View File

@ -1,36 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"> <?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="CCALM-1.0.0-BUILD-SNAPSHOT"> <wb-module deploy-name="CCALM-1.0.0-BUILD-SNAPSHOT">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp"/> <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/> <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
<property name="java-output-path" value="target/classes"/> <property name="java-output-path" value="target/classes"/>
<property name="context-root" value="CCALM_TOMCAT"/>
<property name="context-root" value="CCALM"/>
</wb-module> </wb-module>
</project-modules> </project-modules>

View File

@ -1744,10 +1744,10 @@ map.on('click', function(evt){
if(feature.userData !== undefined && (feature.userData.type=="Product2" || feature.userData.type=="Product3" || feature.userData.type=="Product2r" || feature.userData.type=="Product3r")) if(feature.userData !== undefined && (feature.userData.type=="Product2" || feature.userData.type=="Product3" || feature.userData.type=="Product2r" || feature.userData.type=="Product3r"))
{ {
if(feature.userData.percent!='') //if(feature.userData.percent!='')
new TChartFRMLocustInfo(feature.userData); new TChartFRMLocustInfo(feature.userData);
else //else
alert2(trt('Alert'),trt('No_data')+'!',feature.userData.name); // alert2(trt('Alert'),trt('No_data')+'!',feature.userData.name);
} }
if(feature.userData !== undefined && (feature.userData.type=="Product4" || feature.userData.type=="Product4r")) if(feature.userData !== undefined && (feature.userData.type=="Product4" || feature.userData.type=="Product4r"))

View File

@ -18,8 +18,8 @@
<body> <body>
<h3>ASDC Guidelines</h3> <h3>ASDC Guidelines</h3>
<a href="ASDC_for_Android_ENG.pdf" target="_blank">ASDC_for_Android_ENG_v2.3.pdf</a><br/> <a href="ASDC_for_Android_ENG.pdf" target="_blank">ASDC_for_Android_ENG_v2.4.3.pdf</a><br/>
<a href="ASDC_for_Android_RUS.pdf" target="_blank">ASDC_for_Android_RUS_v2.3.pdf</a> <a href="ASDC_for_Android_RUS.pdf" target="_blank">ASDC_for_Android_RUS_v2.4.3.pdf</a>
<h3>CCALM Guidelines</h3> <h3>CCALM Guidelines</h3>
<a href="CCALM_help_ENG.pdf" target="_blank">CCALM_help_ENG.pdf</a><br/> <a href="CCALM_help_ENG.pdf" target="_blank">CCALM_help_ENG.pdf</a><br/>

View File

@ -38,7 +38,7 @@ function showIFrameWindow(title,url)
function showConfigWidget() function showConfigWidget()
{ {
this.win=new TWin(); this.win=new TWin();
this.win.BuildGUI(10,10); this.win.BuildGUI(350,140);
this.win.setCaption(trt('Settings')); this.win.setCaption(trt('Settings'));
let str=`<div style="width: 100%; height: 100%; padding: 3px; text-align: left;"> let str=`<div style="width: 100%; height: 100%; padding: 3px; text-align: left;">
@ -65,7 +65,7 @@ function showConfigWidget()
</table> </table>
</div>`; </div>`;
this.win.setSize("420px","50px"); this.win.setSize("400px","140px");
this.win.setContent(str); this.win.setContent(str);
this.win.setCenter(); this.win.setCenter();
this.win.shadow=true; this.win.shadow=true;
@ -451,12 +451,22 @@ function downloadQGISFile(product)
} }
//Class for making chart from "frmLocustInfo" table //Class for making chart from "frmLocustInfo" table
function TChartFRMLocustInfo(userData) class TChartFRMLocustInfo
{ {
this.updateData = function() constructor(userData) {
this.name='TChartFRMLocustInfo';
this.userData = userData;
this.m_win=null;
this.m_arr = new Array()
this.m_uid = getUID();
this.callData();
}
updateData()
{ {
this.m_win.setSize("150px","100px"); this.m_win.setSize("150px","100px");
var str=''; let str='';
str='<div style="font-size:12px; position:relative;">\n\ str='<div style="font-size:12px; position:relative;">\n\
<div id="tit_'+this.m_uid+'" style="font-weight:bold;">&nbsp;</div>\n\ <div id="tit_'+this.m_uid+'" style="font-weight:bold;">&nbsp;</div>\n\
<table id="tbl_'+this.m_uid+'" border="1" style="font-size:inherit; border-collapse:collapse;">\n\ <table id="tbl_'+this.m_uid+'" border="1" style="font-size:inherit; border-collapse:collapse;">\n\
@ -473,27 +483,26 @@ function TChartFRMLocustInfo(userData)
this.m_win.hideProgressBar(); this.m_win.hideProgressBar();
} }
this.addField = function(year,val) addField(year,val)
{ {
this.m_arr[year]=val; this.m_arr[year]=val;
} }
this.buildTable = function(year,currVal) buildTable(year,currVal,txt)
{ {
var tbl=document.getElementById("tbl_"+this.m_uid); let tbl=document.getElementById("tbl_"+this.m_uid);
var tblb=document.getElementById("tblb_"+this.m_uid); let tblb=document.getElementById("tblb_"+this.m_uid);
for(var i = 0; i < tblb.rows.length;) for(let i = 0; i < tblb.rows.length;)
{ {
tblb.deleteRow(i); tblb.deleteRow(i);
} }
//tbl.innerHTML='<thead style="background: #aaaaaa;"><tr style="border: 1px solid black;"><td style="border: 1px solid black;">'+trt('Year')+'</td><td style="border: 1px solid black;"> .2. </td><td style="border: 1px solid black;">'+trt('Value')+'</td></tr></thead><tbody></tbody>'; //tbl.innerHTML='<thead style="background: #aaaaaa;"><tr style="border: 1px solid black;"><td style="border: 1px solid black;">'+trt('Year')+'</td><td style="border: 1px solid black;"> .2. </td><td style="border: 1px solid black;">'+trt('Value')+'</td></tr></thead><tbody></tbody>';
let max=parseFloat(currVal);
var max=currVal; let average=0;
var average=0; let cnt=0;
var cnt=0;
//Calculating average value //Calculating average value
for (var key in this.m_arr) for (let key in this.m_arr)
{ {
if (this.m_arr.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) if (this.m_arr.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294)
{ {
@ -503,22 +512,21 @@ function TChartFRMLocustInfo(userData)
cnt++; cnt++;
} }
} }
average=average/cnt; average=average/cnt;
let pr=100/max;
var pr=100/max; for(let key in this.m_arr)
for (var key in this.m_arr)
{ {
if (this.m_arr.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294) if (this.m_arr.hasOwnProperty(key) && /^0$|^[1-9]\d*$/.test(key) && key <= 4294967294)
{ {
var tr; var div; let tr; let div;
tr = document.createElement('tr'); tr = document.createElement('tr');
var td1 = document.createElement('td'); let td1 = document.createElement('td');
td1.appendChild(document.createTextNode(key)); td1.appendChild(document.createTextNode(key));
tr.appendChild(td1); tr.appendChild(td1);
var td2 = document.createElement('td'); let td2 = document.createElement('td');
td2.style.cssText='width:100px;height:100%;padding:1px;'; td2.style.cssText='width:100px;height:100%;padding:1px;';
div = document.createElement('td'); div = document.createElement('td');
div.style.cssText='height:15px; background-color:#9999ff; display:inline-block;'; div.style.cssText='height:15px; background-color:#9999ff; display:inline-block;';
@ -526,71 +534,76 @@ function TChartFRMLocustInfo(userData)
td2.appendChild(div); td2.appendChild(div);
tr.appendChild(td2); tr.appendChild(td2);
var td3 = document.createElement('td'); let td3 = document.createElement('td');
td3.appendChild(document.createTextNode(this.m_arr[key])); td3.appendChild(document.createTextNode(this.m_arr[key]));
tr.appendChild(td3); tr.appendChild(td3);
var td4 = document.createElement('td'); let td4 = document.createElement('td');
td4.appendChild(document.createTextNode((Math.round((this.m_arr[key]/average-1)*1000)/10)+"%")); td4.appendChild(document.createTextNode((Math.round((this.m_arr[key]/average-1)*1000)/10)+"%"));
tr.appendChild(td4); tr.appendChild(td4);
tblb.appendChild(tr); tblb.appendChild(tr);
} }
} }
//For last value //For last value
var tr; var div; let tr; let div;
tr = document.createElement('tr'); tr = document.createElement('tr');
var td1 = document.createElement('td'); let td1 = document.createElement('td');
td1.appendChild(document.createTextNode(year)); td1.appendChild(document.createTextNode(year));
tr.appendChild(td1); tr.appendChild(td1);
var td2 = document.createElement('td'); let td2 = document.createElement('td');
td2.style.cssText='width:100px;height:100%;padding:1px;'; td2.style.cssText='width:100px;height:100%;padding:1px;';
div = document.createElement('td'); div = document.createElement('td');
div.style.cssText='height:15px; background-color:#9999ff; display:inline-block;'; div.style.cssText='height:15px; background-color:#9999ff; display:inline-block;';
div.style.width = Math.round(currVal*pr)+"px"; div.style.width = Math.round(parseFloat(currVal)*pr)+"px";
td2.appendChild(div); td2.appendChild(div);
tr.appendChild(td2); tr.appendChild(td2);
var td3 = document.createElement('td'); let td3 = document.createElement('td');
td3.appendChild(document.createTextNode(currVal)); if(txt!='')
td3.appendChild(document.createTextNode(txt));
else
td3.appendChild(document.createTextNode(currVal));
tr.appendChild(td3); tr.appendChild(td3);
tblb.appendChild(tr); tblb.appendChild(tr);
var td4 = document.createElement('td'); let td4 = document.createElement('td');
td4.appendChild(document.createTextNode((Math.round((currVal/average-1)*1000)/10)+"%")); td4.appendChild(document.createTextNode((Math.round((parseFloat(currVal)/average-1)*1000)/10)+"%"));
tr.appendChild(td4); tr.appendChild(td4);
var eTit=document.getElementById("tit_"+this.m_uid); let eTit=document.getElementById("tit_"+this.m_uid);
eTit.innerHTML=this.userData.name; eTit.innerHTML=this.userData.name;
let p=(parseFloat(currVal)/average-1)*100;
var p=(currVal/average-1)*100; let eTxt=document.getElementById("txt_"+this.m_uid);
var eTxt=document.getElementById("txt_"+this.m_uid);
eTxt.innerHTML=trt('Average')+': '+(Math.round(average * 100) / 100)+' ('+trt('thous_ha')+')<br>'+trt('Deviation')+': '+(Math.round(p * 10) / 10)+'%'; eTxt.innerHTML=trt('Average')+': '+(Math.round(average * 100) / 100)+' ('+trt('thous_ha')+')<br>'+trt('Deviation')+': '+(Math.round(p * 10) / 10)+'%';
//var crd=ElemCoords(tbl); if(this.m_arr.length<=1){
let eLin=document.getElementById("lin_"+this.m_uid);
var eLin=document.getElementById("lin_"+this.m_uid); eLin.style.visibility='hidden';
eLin.style.top = (tbl.offsetTop + (tbl.offsetHeight/(cnt+1)))+"px"; }else{
eLin.style.left = td2.offsetLeft+(average*pr)+"px"; let eLin=document.getElementById("lin_"+this.m_uid);
eLin.style.top = (tbl.offsetTop + (tbl.offsetHeight/(cnt+1)))+"px";
eLin.style.height = (tbl.offsetHeight - 2*(tbl.offsetHeight/(cnt+1)))+"px"; eLin.style.left = td2.offsetLeft+(average*pr)+"px";
eLin.style.height = (tbl.offsetHeight - 2*(tbl.offsetHeight/(cnt+1)))+"px";
}
} }
this.prepareData = function(obj) prepareData(obj)
{ {
let find=false;
for(let i=0;i<obj.data.length;i++){ for(let i=0;i<obj.data.length;i++){
year=obj.data[i].row[0]; let year=obj.data[i].row[0];
inspect=parseFloat(obj.data[i].row[1]); let inspect=parseFloat(obj.data[i].row[1]);
infested_etd=parseFloat(obj.data[i].row[2]); let infested_etd=parseFloat(obj.data[i].row[2]);
treated=parseFloat(obj.data[i].row[3]); let treated=parseFloat(obj.data[i].row[3]);
if(!isNaN(infested_etd)) if(!isNaN(infested_etd))
{ {
//alert('add year = '+year);
if(this.userData.year!=year) if(this.userData.year!=year)
{ {
if(this.userData.type=="Product2" || this.userData.type=="Product2r") if(this.userData.type=="Product2" || this.userData.type=="Product2r")
@ -603,16 +616,27 @@ function TChartFRMLocustInfo(userData)
this.updateData(); this.updateData();
if(this.userData.type=="Product2" || this.userData.type=="Product2r") if(this.userData.type=="Product2" || this.userData.type=="Product2r")
{ {
this.buildTable(year,infested_etd); this.buildTable(year,infested_etd,'');
}else if(this.userData.type=="Product3" || this.userData.type=="Product3r") }else if(this.userData.type=="Product3" || this.userData.type=="Product3r")
{ this.buildTable(year,treated); { this.buildTable(year,treated,'');
} }
find=true;
} }
} }
}
//Если в данных нет иследуемого года
if(!find){
this.updateData();
if(this.userData.type=="Product2" || this.userData.type=="Product2r")
{
this.buildTable(this.userData.year,0,'none');
}else if(this.userData.type=="Product3" || this.userData.type=="Product3r")
{ this.buildTable(this.userData.year,0,'none');
}
} }
} }
this.callData = function() callData()
{ {
this.m_win = new TWin(); this.m_win = new TWin();
this.m_win.BuildGUI(pageX,pageY); this.m_win.BuildGUI(pageX,pageY);
@ -620,7 +644,7 @@ function TChartFRMLocustInfo(userData)
this.m_win.setSize("220px","100px"); this.m_win.setSize("220px","100px");
this.m_win.setCenter(); this.m_win.setCenter();
var xs=''; let xs='';
if(typeof this.userData.region_id != 'undefined' ) if(typeof this.userData.region_id != 'undefined' )
{ {
xs='<?xml version="1.0" encoding="utf-8"?>\n\ xs='<?xml version="1.0" encoding="utf-8"?>\n\
@ -648,16 +672,16 @@ function TChartFRMLocustInfo(userData)
</type>\n\ </type>\n\
</metadata>'; </metadata>';
} }
var request=new TRequest(this); let request=new TRequest(this);
if(request.callServer(ScriptName,xs)) if(request.callServer(ScriptName,xs))
{ {
this.m_win.showProgressBar(); this.m_win.showProgressBar();
} }
this.m_win.hide(false); this.m_win.hide(false);
}; }
this.applyReq = function(req,fn,node) applyReq(req,fn,node)
{ {
if(node.errorCode>0) { if(node.errorCode>0) {
let fullText = node.errorMessage; let fullText = node.errorMessage;
@ -691,15 +715,7 @@ function TChartFRMLocustInfo(userData)
} }
}else }else
alert("Unknown function! fn=\""+fn+"\""); alert("Unknown function! fn=\""+fn+"\"");
}; }
this.name='TChartFRMLocustInfo';
this.userData = userData;
this.m_win=null;
this.m_arr = new Array()
this.m_uid = getUID();
this.callData();
} }
//Customize the visual elements on the access level. //Customize the visual elements on the access level.