From d46b696e6db7079c4e8f54422fa1abdcff1d7740 Mon Sep 17 00:00:00 2001 From: igor Date: Fri, 19 Aug 2022 17:12:00 +0600 Subject: [PATCH] =?UTF-8?q?+=20=D0=9F=D0=BE=D0=B4=D1=80=D0=BE=D0=B1=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D0=BA=D0=BE=D0=BC=D0=B5=D0=BD=D1=82=D1=8B=20?= =?UTF-8?q?=D0=B2=20=D0=BD=D0=B5=20[[]]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- metadata/dbms/editrecord.js | 82 +++++++++--------- metadata/dbms/images/loading1.gif | Bin 0 -> 10819 bytes metadata/dbms/login.js | 74 +++++++++++----- metadata/dbms/records.php | 78 ++++++++++++++--- metadata/dbms/setup.js | 3 +- metadata/dbms/showrecord.js | 28 +++++- metadata/dbms/tabs.js | 7 +- metadata/dbms/tools.js | 64 +++++++++++--- .../kcfinder/integration/BolmerCMS.php | 2 +- metadata/include/tools.php | 37 ++++++++ 10 files changed, 279 insertions(+), 96 deletions(-) create mode 100644 metadata/dbms/images/loading1.gif diff --git a/metadata/dbms/editrecord.js b/metadata/dbms/editrecord.js index 259d376..caf0f74 100644 --- a/metadata/dbms/editrecord.js +++ b/metadata/dbms/editrecord.js @@ -1,4 +1,4 @@ -//Copyright (C) Ivanov I.M. irigm@mail.ru +77051809750 file created in 2008 +//Copyright (C) Ivanov I.M. file created in 2008 //For find non english chars: [^\x00-\x7F]+ //Заглушки @@ -1182,51 +1182,53 @@ class EdtRec }; applyReq(req,fn,node,xmldoc,win) - { //alert2(trt('Alert'),"erec XML=\n"+getXMLNodeSerialisation(node)); - if (fn==-1) - { - alert2(trt('Alert'),findFirstNode(node,'#cdata-section').nodeValue); - //this.pBarCnt=0; - this.hideProgressBar(); - }else - if (fn==0) - { - this.hideProgressBar(); + { + this.hideProgressBar(); + if (fn==-1) { + let fullText = findFirstNode(node,'#cdata-section').nodeValue; + let smallText = ''; + let pos1=fullText.indexOf('[['); + let pos2=fullText.indexOf(']]'); + if(pos1>0 && pos2>0 && pos1=0){ //Если есть идентификатор того что это перезапись + let okFunc=()=>{ + this.setValue('seq',0); + this.sendData(); //Применить ещё раз + }; + if (smallText != '') + confirm2(trt('Warning'),smallText, fullText, okFunc, null); + else + confirm2(trt('Warning'),smallText, '', okFunc, null); + }else { + if (smallText != '') + alert2(trt('Alert'), smallText, fullText); + else + alert2(trt('Alert'), fullText); + } + } else + if (fn==0) { this.eRecNo(node,this.record_id); - }else - if (fn==1) //returned id - { - this.hideProgressBar(); + } else + if (fn==1) { //returned id this.insertRows(node); - }else - if (fn==2) //Returned id and type of updated record - { - this.hideProgressBar(); + } else + if (fn==2) { //Returned id and type of updated record this.updateRows(node); - }else - if (fn==3) //Returned id of deleted record - { - this.hideProgressBar(); + } else + if (fn==3) { //Returned id of deleted record this.deleteRows(node); - }else - if (fn==5) - { - this.hideProgressBar(); + } else + if (fn==5) { this.setData(node); - }else - if (fn==6) //Fill in the drop-down lists. - { - this.hideProgressBar(); + } else + if (fn==6) { //Fill in the drop-down lists. this.setDataSelect(node); - }else - if (fn==7) // - { - this.hideProgressBar(); + } else + if (fn==7) { this.setData(node); - }else - { + } else { alert2(trt('Alert'),"Unknown function! fn=\""+fn+"\"" ); - this.hideProgressBar(); } }; /** @@ -1359,8 +1361,6 @@ class EdtRec { if(nodeProp.getAttribute("selector")=="combo") { - //console.log("++++++++++field.options.length = "+field.options.length); - //We sort out the elements of the list (options) and set it to the desired value (the snake is not automatically exposed by the automaton). for(let i=0;i"+trt("Add_more")+"?",null,()=>this.win.Close()); + confirm2(trt('Warning'),trt("Successfully_added_data")+"
"+trt("Add_more")+"?",'',null,()=>this.win.Close()); }else { this.win.Close(); diff --git a/metadata/dbms/images/loading1.gif b/metadata/dbms/images/loading1.gif new file mode 100644 index 0000000000000000000000000000000000000000..d84f653789e5008da64ff04ee109471284a9e284 GIT binary patch literal 10819 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.result=='ERROR'){this.showLoginForm();}}); - setTimeout(()=>this.checkSession(), 10000); + $.ajax({ + url: '../session', + data: "{}", + type: "POST", + dataType: "json", + success: (data,status) => { + if(status=='success') + { + if(data.result=='ERROR'){ + this.showLoginForm(); + }else + if(data.result=='OK'){ + this.id=data.user_id; + } + this.showLock(false); + }else + { + this.showLock(true); + } + }, + error: (jqXHR, exception)=> + { + this.showLock(true); + } + }); + setTimeout(()=>this.checkSession(), 10000); }; showShadow(visible) @@ -280,27 +317,22 @@ class DBMSUser xmlHttpRequest.responseXML=CreateXMLDOC(xmlHttpRequest.responseText); //загрузился xml документ начинаем его разбирать (по id функции в документе) - var xmldoc = xmlHttpRequest.responseXML + let xmldoc = xmlHttpRequest.responseXML if(xmldoc==null) { alert2(trt('Alert'), trt('Wrong_XML_document') + "!\n" + xmlHttpRequest.responseText); - return; - } - - var node = xmldoc.documentElement; - if((node==null)||(node.getAttribute("fn")==null)) alert(trt('Error')+"\n "+trt("No_data")+"!\n"+xmlHttpRequest.responseText); - else - { - //alert("Принятый браузером XML=\n"+getXMLNodeSerialisation(node)); - var fn = node.getAttribute("fn"); - if (fn==-1) - { - alert(findFirstNode(node,'#cdata-section').nodeValue); - this.win.hideProgressBar(); - }else - if(fn==7) - { - alert(findFirstNode(node,'#cdata-section').nodeValue); - this.win.Close(); + }else { + var node = xmldoc.documentElement; + if ((node == null) || (node.getAttribute("fn") == null)) alert(trt('Error') + "\n " + trt("No_data") + "!\n" + xmlHttpRequest.responseText); + else { + //alert("Принятый браузером XML=\n"+getXMLNodeSerialisation(node)); + var fn = node.getAttribute("fn"); + if (fn == -1) { + alert(findFirstNode(node, '#cdata-section').nodeValue); + this.win.hideProgressBar(); + } else if (fn == 7) { + alert(findFirstNode(node, '#cdata-section').nodeValue); + this.win.Close(); + } } } }else diff --git a/metadata/dbms/records.php b/metadata/dbms/records.php index 46c621c..0a431e0 100644 --- a/metadata/dbms/records.php +++ b/metadata/dbms/records.php @@ -436,7 +436,8 @@ } $xmlstring=''; - header('Content-type: text/xml'); + header('Content-type: text/xml'); + header("Cache-Control: no-cache, must-revalidate"); echo $xmlstring; Exit(); }else @@ -545,7 +546,8 @@ $result = $stmt->fetch(PDO::FETCH_NUM); //$obj_id if($result[0]==''){ $result[0]=$obj_id; } $xmlstring=''; - header('Content-type: text/xml'); + header('Content-type: text/xml'); + header("Cache-Control: no-cache, must-revalidate"); echo $xmlstring; Exit(); }else @@ -583,7 +585,8 @@ $xmlstring.=''; $xmlstring.=" \n"; $xmlstring.="\n"; - header('Content-type: text/xml'); + header('Content-type: text/xml'); + header("Cache-Control: no-cache, must-revalidate"); echo $xmlstring; Exit(); }else @@ -920,11 +923,62 @@ if($cmd==0) //Restore password by email { - $res = $db->query("select 1 from '.$Schema.'_Users where del=false and email = '$login';"); + $recovery=false; + $res = $db->query("select email from ".$Schema."_Users where del=false and (email = '$login' or login = '$login');"); if($res->rowCount()>0) { - mail($login,'rigor.kz','Not implement',"Content-type: text/html; charset=utf-8\r\nFrom: rigor Site "); + while ($row = $res->fetch(PDO::FETCH_ASSOC)) { + /*$pos++; + if (($pagepos!=-1)&&(($pos<($pagepos*$rowspagecount))||($pos>=$pagepos*$rowspagecount+$rowspagecount))) { continue; } + + //разрешать или запрещять редактировать запись надо проверять в хранимке а также запрещять либо разрешать редактировать колонку + //для каждой записи формируеться строка настроек со значениями что нужно запретить в таком виде "iuds" + //$access=$row["access"]; + $access=''; //u = enable update field, d = enable delete field + if(!array_key_exists("_u",$row)) { $access.="u"; } else { $access.=$row["email"]; }*/ + + $password = getPassword(6); + $sql = 'update ' . $Schema . '_users set password=md5(:password) where email=:email'; + $stmt = $db->prepare($sql); + $stmt->bindValue(':password', $password, PDO::PARAM_STR); + $stmt->bindValue(':email', $row["email"], PDO::PARAM_STR); + try { + $stmt->execute(); + if ($stmt->rowCount() > 0) { + //$result = $stmt->fetch(PDO::FETCH_NUM); + $recovery = true; + } + } catch (Exception $e) { + $db->rollBack(); + sendError(1, $e->getMessage()); + } + + $html = 'Message'; + $html .= '

New password:

'; + $html .= '' . $password . ''; + $html .= ''; + //mail($login,'rigor.kz','Not implement',"Content-type: text/html; charset=utf-8\r\nFrom: rigor Site "); + if (!mail($login, 'Password for transit.istt.kz', $html, "Content-type: text/html; charset=utf-8\r\nFrom: Transit Site ")) { + sendError("Failed to send mail to: " . $row["email"]); + } + } } + if($recovery) { + $xs = '' . "\n"; + $xs .= ''; + header('Content-type: text/xml'); + header("Cache-Control: no-cache, must-revalidate"); + echo $xs; + exit(); + }else{ + $xs = '' . "\n"; + $xs .= ''; + header('Content-type: text/xml'); + header("Cache-Control: no-cache, must-revalidate"); + echo $xs; + exit(); + } + }elseif($cmd==1) //Logout { $sql='delete from '.$Schema.'_Logins where sessionid='.getSQLValue('string',$_COOKIE['GUID']).' and user_id='.getSQLValue('object',$_SESSION['USER_ID']).';'; @@ -935,21 +989,17 @@ } unset($_SESSION['USER_ID']); - header('Content-type: text/xml'); - header("Cache-Control: no-cache, must-revalidate"); - $xs=''."\n"; $xs.=''."\n"; $xs.=' '."\n"; $xs.=''; + header('Content-type: text/xml'); + header("Cache-Control: no-cache, must-revalidate"); echo $xs; exit(); }elseif($cmd==2) //Проверить залогинен ли пользователь { - header('Content-type: text/xml'); - header("Cache-Control: no-cache, must-revalidate"); - $xs=''."\n"; $xs.=''."\n"; if(!isset($_SESSION['USER_ID']) || $_SESSION['USER_ID']=='') @@ -969,6 +1019,8 @@ } $xs.=''; + header('Content-type: text/xml'); + header("Cache-Control: no-cache, must-revalidate"); echo $xs; exit(); @@ -990,8 +1042,6 @@ $patronymic=$result['patronymic']; } - header('Content-type: text/xml'); - header("Cache-Control: no-cache, must-revalidate"); $xs=''."\n"; $xs.=''."\n"; $xs.=''; @@ -1001,6 +1051,8 @@ $xs.=' '."\n"; $xs.=' '."\n"; $xs.=''; + header('Content-type: text/xml'); + header("Cache-Control: no-cache, must-revalidate"); echo $xs; exit(); }else{ diff --git a/metadata/dbms/setup.js b/metadata/dbms/setup.js index 37c4628..677364e 100644 --- a/metadata/dbms/setup.js +++ b/metadata/dbms/setup.js @@ -1,4 +1,5 @@ //var ScriptName='../records'; //POST //var ScriptDName='../download'; //var ScriptUName='../upload'; -//var ScriptRName='../reports'; //GET For download reports (?file=name) \ No newline at end of file +//var ScriptRName='../reports'; //GET For download reports (?file=name) +//var ScriptSName='../session'; diff --git a/metadata/dbms/showrecord.js b/metadata/dbms/showrecord.js index 70428e9..2b6f99b 100644 --- a/metadata/dbms/showrecord.js +++ b/metadata/dbms/showrecord.js @@ -1,4 +1,4 @@ -//Copyright (C) 2008 Ivanov I.M. irigm@mail.ru +77051809750 +//Copyright (C) 2008 Ivanov I.M. ivanov.i@istt.kz //For find non english chars: [^\x00-\x7F]+ function callWindow(uid,id,i) @@ -50,9 +50,29 @@ class SRec this.hideProgressBar(); this.xmldoc=node.ownerDocument; //xmldoc; - if (fn==-1) //Information menu + if (fn==-1) //Information alert { - alert2(trt('Alert'),findFirstNode(node,'#cdata-section').nodeValue); + let fullText = findFirstNode(node,'#cdata-section').nodeValue; + let smallText = ''; + let pos1=fullText.indexOf('[['); + let pos2=fullText.indexOf(']]'); + if(pos1>0 && pos2>0 && pos1=0){ //Если есть идентификатор того что это перезапись + let okFunc=()=>{ + this.setValue('seq',0); + this.sendData(); //Применить ещё раз + }; + if (smallText != '') + confirm2(trt('Warning'),smallText, fullText, okFunc, null); + else + confirm2(trt('Warning'),smallText, '', okFunc, null); + }else { + if (smallText != '') + alert2(trt('Alert'), smallText, fullText); + else + alert2(trt('Alert'), fullText); + } }else if (fn==0) { @@ -1606,7 +1626,7 @@ class SRec //We run through the marked records and request their removal deleteRecord(recordid) { - confirm2(trt('Warning'),trt("Are_you_sure_you_want_to_delete_the_entries")+"
" + confirm2(trt('Warning'),trt("Are_you_sure_you_want_to_delete_the_entries")+"
",'' ,()=>{ for(let i=0;i\n\ + \n\ + '+smallText+'\n\ + \n\ + \n\ + '+fullText+'\n\ \n\ \n\ -  \n\ - \n\ + '+(fullText === undefined || fullText == '' ? '' : '')+' \n\ + \n\ \n\ '; win.setContent(html); - let obj=document.getElementById(win.uid+'_close'); + + let obj=document.getElementById('show_'+win.uid); + if(obj!=null) obj.onclick=function(win){ + return function(){ + if(document.getElementById('show_'+win.uid).checked) { + document.getElementById('smallText_' + win.uid).style.display = "none"; + document.getElementById('fullText_' + win.uid).style.display = "table-row"; + }else{ + document.getElementById('smallText_' + win.uid).style.display = "table-row"; + document.getElementById('fullText_' + win.uid).style.display = "none"; + } + }; + }(win); + + obj=document.getElementById('close_'+win.uid); obj.focus(); if(obj!=null) obj.onclick=function(win,okFunc){return function(){ win.Close(); if(okFunc!=null) okFunc(); };}(win,okFunc); win.setSize("300px","150px"); @@ -219,24 +240,41 @@ function alert2(title,text,okFunc=null) } //Вывести текст поверх окон с кнопочкой OK -function confirm2(title,text,okFunc,cancelFunc) +function confirm2(title,smallText,fullText,okFunc,cancelFunc) { let win=new TWin(); win.BuildGUI(10,10); win.setCaption(document.createTextNode(title)); let html='\n\ \n\ - \n\ - \n\ + \n\ + \n\ + \n\ + \n\ + \n\ \n\ \n\ - \n\ + \n\ \n\ \\n\ \n\
'+text+'
'+smallText+'
 '+(fullText === undefined || fullText == '' ? '' : '')+' 
'; win.setContent(html); + + let obj=document.getElementById('show_'+win.uid); + if(obj!=null) obj.onclick=function(win){ + return function(){ + if(document.getElementById('show_'+win.uid).checked) { + document.getElementById('smallText_' + win.uid).style.display = "none"; + document.getElementById('fullText_' + win.uid).style.display = "table-row"; + }else{ + document.getElementById('smallText_' + win.uid).style.display = "table-row"; + document.getElementById('fullText_' + win.uid).style.display = "none"; + } + }; + }(win); + let btnO=document.getElementById(win.uid+'_ok'); btnO.focus(); if(btnO!=null){ @@ -1293,7 +1331,7 @@ class TWin let str=''; str+=''; - str+=' '; + str+=' '; str+=' '; str+=' '; str+=' '; @@ -1527,9 +1565,9 @@ class TWin { if(this.parent!=null) { - for(var i=0;igetLoginUserType(); if($type=='manager'){ diff --git a/metadata/include/tools.php b/metadata/include/tools.php index 8a6fba2..c6a8854 100644 --- a/metadata/include/tools.php +++ b/metadata/include/tools.php @@ -314,6 +314,43 @@ function deleteTempFiles($dir) } } +function getFilesTree($dir,$cut="",$result = null){ + if($result==null) + $result = new stdClass(); + + if (is_dir($dir)) + { + $result->list = array(); + + $dh = opendir($dir); + if ($dh) + { + while (($file = readdir($dh)) !== false) + { + if($file == '..' || $file == '.') continue; + + if(is_dir($dir.DIRECTORY_SEPARATOR.$file)){ + $sub = new stdClass(); + $sub->name=$file; + $sub->path=$dir.DIRECTORY_SEPARATOR.$file; + if($cut) $sub->path = str_replace($cut, "",$sub->path); + array_push($result->list, $sub); + getFilesTree($dir.DIRECTORY_SEPARATOR.$file, $cut, $sub); + }else{ + $sub = new stdClass(); + $sub->name=$file; + $sub->path=$dir.DIRECTORY_SEPARATOR.$file; + if($cut) $sub->path = str_replace($cut, "",$sub->path); + array_push($result->list, $sub); + } + + } + closedir($dh); + } + } + return $result; +} + //Генерация пароля function getPassword($max) {
'+(this.disableClosing ? '' : '
')+'
'+(this.disableClosing ? '' : '
')+'