Quellcode durchsuchen

Merge commit '76c03eef0cd8e78ce389803da1dd7d108c3d3529' of http://192.168.8.104/mint/

Bhikkhu-Kosalla vor 5 Jahren
Ursprung
Commit
5dd3301251
4 geänderte Dateien mit 104 neuen und 48 gelöschten Zeilen
  1. 9 1
      app/studio/editor.php
  2. 12 6
      app/studio/js/editor.js
  3. 48 18
      app/sync/function.php
  4. 35 23
      app/sync/sync.php

+ 9 - 1
app/studio/editor.php

@@ -242,7 +242,14 @@ else{$currDevice="computer";}
 		margin: 0 15px 0 -8px;
 	}
 	.translate_sent_head_toolbar {
-	display: none;
+		display: none;
+	}
+	div#input_org_select .case_dropbtn {
+		background-color: rgb(127 127 127 / 20%);
+		padding: 0 6px;
+		border-radius: 4px;
+		min-width: 1em;
+		min-height: 1.3em;
 	}
 	</style>
 	<link type="text/css" rel="stylesheet" href="css/print.css" media="print" />
@@ -686,6 +693,7 @@ foreach($plugin_list as $info){
 					</div>				
 				</div>
 				<!-- 拆分意思 -->
+
 				<div class="edit_detail_p" >
 					<guide gid="studio_part_meaning"></guide>
 					<span class="edit_detail_span"><?php echo $_local->gui->partmeaning;?>:</span>

+ 12 - 6
app/studio/js/editor.js

@@ -3554,21 +3554,27 @@ function getMeaningMenuList(index, word) {
 	} else {
 		currMeaningList.push("↓↓");
 	}
-	for (MeaningList_i in currMeaningList0) {
-		currMeaningList.push(currMeaningList0[MeaningList_i]);
+	for (const iterator of currMeaningList0) {
+		if (iterator != "") {
+			currMeaningList.push(iterator);
+		}
 	}
+
 	var output = "";
 	output += "<div class=\"case_dropdown\" style='display:inline-block;'>";
 
+	let currMean;
 	output += "<p id='org_part_mean_" + index + "' class='case_dropbtn' >";
 	if (g_initPartMeaning) {
-		output += currMeaningList[0];
-
+		currMean = currMeaningList[0];
 		g_arrPartMean[index] = currMeaningList[0];
 	} else {
-		output += g_arrPartMean[index];
+		currMean = g_arrPartMean[index];
+	}
+	if (currMean == "") {
+		currMean = "↓↓";
 	}
-	output += "</p>";
+	output += currMean + "</p>";
 
 	output += '<div class="case_dropdown-content" id=\'part_mean_menu_' + index + "'>";
 	//直列菜单

+ 48 - 18
app/sync/function.php

@@ -4,20 +4,33 @@ require_once '../redis/function.php';
 
 function do_sync($param)
 {
-	
+	$output=array();
+	$output["error"]=0;
+	$output["message"]="";
+	$output["data"]=array();
+
 	$redis=redis_connect();
 	if($redis){
 		$key = $redis->hget("sync://key",$_POST["userid"]);
 		if($key===FALSE){
+			$output["error"]=1;
+			$output["message"]="key验证失败";
+			echo json_encode($output, JSON_UNESCAPED_UNICODE);	
 			return false;
 		}
 		else{
-			if($key!=$_POST["sync_key"]){
+			if($key!=$_POST["key"]){
+				$output["error"]=1;
+				$output["message"]="key验证失败";
+				echo json_encode($output, JSON_UNESCAPED_UNICODE);	
 				return false;
 			}
 		}
 	}
 	else{
+		$output["error"]=1;
+		$output["message"]="redis初始化失败";
+		echo json_encode($output, JSON_UNESCAPED_UNICODE);	
 		return false;
 	}
 
@@ -26,8 +39,10 @@ function do_sync($param)
     } else if (isset($_POST["op"])) {
         $op = $_POST["op"];
     } else {
-        echo "error: no op";
-        return (false);
+		$output["error"]=1;
+		$output["message"]="无操作码";
+		echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+		return false;
     }
 
     $PDO = new PDO("" . $param->database, "", "", array(PDO::ATTR_PERSISTENT => true));
@@ -59,8 +74,9 @@ function do_sync($param)
 						$stmt->execute(array($time,$newTime));
 						$Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
 					}
-
-					echo (json_encode($Fetch, JSON_UNESCAPED_UNICODE));					
+					$output["data"]=$Fetch;
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+					return;			
 				}
 				else if(isset($_POST["id"])){
 					$params = json_decode($_POST["id"],true);
@@ -72,7 +88,8 @@ function do_sync($param)
 					$stmt->execute($params);
 					$Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
 					$iFetch = count($Fetch);
-					echo (json_encode($Fetch, JSON_UNESCAPED_UNICODE));						
+					$output["data"]=$Fetch;
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);					
 				}
 
                 break;
@@ -93,7 +110,8 @@ function do_sync($param)
 				$stmt = $PDO->prepare($query);
 				$stmt->execute($arrId);
                 $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
-                echo (json_encode($Fetch, JSON_UNESCAPED_UNICODE));
+				$output["data"]=$Fetch;
+				echo json_encode($output, JSON_UNESCAPED_UNICODE);
                 return (true);
                 break;
             }
@@ -135,11 +153,15 @@ function do_sync($param)
                 $PDO->commit();
                 if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
                     $error = $PDO->errorInfo();
-                    echo "error - $error[2] <br>";
+					$output["error"]=1;
+					$output["message"]="error - $error[2] <br>";
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);	
                     return (false);
                 } else {
                     $count = count($arrData);
-                    echo "INSERT $count recorders." . "<br>";
+					$output["error"]=1;
+					$output["message"]="INSERT $count recorders." . "<br>";
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);						
                     return (true);
                 }
                 break;
@@ -150,8 +172,10 @@ function do_sync($param)
                 if (isset($_POST["data"])) {
                     $data = $_POST["data"];
                 } else {
-                    echo "没有输入数据<br>";
-                    return (false);
+					$output["error"]=1;
+					$output["message"]="没有输入数据<br>";
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+                    return false;
                 }
                 $arrData = json_decode($data, true);
                 $query = "UPDATE {$param->table} SET ";
@@ -177,17 +201,23 @@ function do_sync($param)
                     $PDO->commit();
                     if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
                         $error = $PDO->errorInfo();
-                        echo "error - $error[2] <br>";
-                        return (false);
+						$output["error"]=1;
+						$output["message"]="error - $error[2] <br>";
+						echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+						return false;
                     } else {
                         $count = count($arrData);
-                        echo "INSERT $count recorders." . "<br>";
-                        return (true);
+						$output["error"]=0;
+						$output["message"]="INSERT $count recorders." . "<br>";
+						echo json_encode($output, JSON_UNESCAPED_UNICODE);	
+                        return true;
                     }
                 } catch (Exception $e) {
                     $PDO->rollback();
-                    echo "Failed:" . $e->getMessage() . "<br>";
-                    return (false);
+					$output["error"]=1;
+					$output["message"]="Failed:" . $e->getMessage() . "<br>";
+					echo json_encode($output, JSON_UNESCAPED_UNICODE);						
+                    return false;
                 }
 
                 break;

+ 35 - 23
app/sync/sync.php

@@ -31,12 +31,18 @@ else{
 $client = new \GuzzleHttp\Client();
 $response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'sync','time'=>$time,'size'=>$size,"key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
 $serverJson=$response->getBody();
-$serverData = json_decode($serverJson);
-$output["src_row"]=count($serverData);
+$serverData = json_decode($serverJson,true);
+if($serverData["error"]>0){
+	$output["message"]=$serverData["message"];
+	echo json_encode($output, JSON_UNESCAPED_UNICODE);
+	exit;
+}
+$serverDBData = $serverData["data"];
+$output["src_row"]=count($serverDBData);
 $message.= "输入时间:".$time."<br>";
 $message.= "src_row:".$output["src_row"]."<br>";
 if($output["src_row"]>0){
-	$output["time"]=$serverData[$output["src_row"]-1]->modify_time;
+	$output["time"]=$serverDBData[$output["src_row"]-1]["modify_time"];
 	$message.= "最新时间:".$output["time"]."<br>";
 }
 else{
@@ -44,15 +50,21 @@ else{
 	exit;
 }
 $aIdList=array();
-foreach($serverData as $sd){
-	$aIdList[]=$sd->guid;
+foreach($serverDBData as $sd){
+	$aIdList[]=$sd["guid"];
 }
 $sIdlist = json_encode($aIdList, JSON_UNESCAPED_UNICODE);;
 // 拉 id 列表
 $response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'sync','id'=>$sIdlist,'size'=>$size,"key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
 $strLocalData = $response->getBody();
-$localData = json_decode($strLocalData);
-$localCount = count($localData);
+$localData = json_decode($strLocalData,true);
+if($localData["error"]>0){
+	$output["message"]=$localData["message"];
+	echo json_encode($output, JSON_UNESCAPED_UNICODE);
+	exit;
+}
+$localDBData = $localData["data"];
+$localCount = count($localDBData);
 $message .= "local-row:".$localCount."<br>";
 $localindex=array();
 
@@ -61,18 +73,18 @@ $update_to_server=array();
 $insert_to_local=array();
 $update_to_local=array();
 $message .= "<h3>{$path}</h3>";
-foreach($localData as $local){
-	$localindex[$local->guid][0]=$local->modify_time;
-	$localindex[$local->guid][1]=false;
+foreach($localDBData as $local){
+	$localindex[$local["guid"]][0]=$local["modify_time"];
+	$localindex[$local["guid"]][1]=false;
 }
-foreach($serverData as $sd){
-	if(isset($localindex[$sd->guid])){
-		$localindex[$sd->guid][1]=true;
-		if($sd->modify_time>$localindex[$sd->guid][0]){
+foreach($serverDBData as $sd){
+	if(isset($localindex[$sd["guid"]])){
+		$localindex[$sd["guid"]][1]=true;
+		if($sd['modify_time']>$localindex[$sd["guid"]][0]){
 			//服务器数据较新 server data is new than local
-			$update_to_local[]=$sd->guid;
+			$update_to_local[]=$sd["guid"];
 		}
-		else if($sd->modify_time==$localindex[$sd->guid][0]){
+		else if($sd['modify_time']==$localindex[$sd["guid"]][0]){
 			//"相同 same
 		}
 		else{
@@ -82,7 +94,7 @@ foreach($serverData as $sd){
 	}
 	else{
 		//本地没有 新增 insert recorder in local
-		$insert_to_local[]=$sd->guid;
+		$insert_to_local[]=$sd['guid'];
 	}
 }
 
@@ -136,10 +148,11 @@ else{
 		$idInServer = json_encode($insert_to_local, JSON_UNESCAPED_UNICODE);
 		$response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'get','id'=>"{$idInServer}","key"=>$sync_key]]);
 		$serverData=$response->getBody();
-		$response = $client->request('POST', $localhost.'/app/'.$path, ['verify' => false,'form_params'=>['op'=>'insert','data'=>"{$serverData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
+		$arrData = json_decode($serverData,true);
+		$strData = json_encode($arrData["data"], JSON_UNESCAPED_UNICODE);
+		$response = $client->request('POST', $localhost.'/app/'.$path, ['verify' => false,'form_params'=>['op'=>'insert','data'=>"{$strData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
 		$message .=  $response->getBody()."<br>";
 		*/
-		
 	}
 
 	if(count($update_to_local)>0){
@@ -148,15 +161,14 @@ else{
 		$idInServer = json_encode($update_to_local, JSON_UNESCAPED_UNICODE);
 		$response = $client->request('POST', $server.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'get','id'=>"{$idInServer}","key"=>$sync_key]]);
 		$serverData=$response->getBody();
-		$response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'update','data'=>"{$serverData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
+		$arrData = json_decode($serverData,true);
+		$strData = json_encode($arrData["data"], JSON_UNESCAPED_UNICODE);
+		$response = $client->request('POST', $localhost.'/app/'.$path,['verify' => false,'form_params'=>['op'=>'update','data'=>"{$strData}","key"=>$sync_key,"userid"=>$_COOKIE["userid"]]]);
 		$message .=  $response->getBody()."<br>";
 		*/
-		
 	}
-	
 }
 $output["message"]=$message;
 echo json_encode($output, JSON_UNESCAPED_UNICODE);
 
-
 ?>