Browse Source

more update work

causefx 8 years ago
parent
commit
d85a3f747f
3 changed files with 58 additions and 2 deletions
  1. 0 1
      api/functions/update-functions.php
  2. 15 0
      api/index.php
  3. 43 1
      js/functions.js

+ 0 - 1
api/functions/update-functions.php

@@ -8,7 +8,6 @@ function upgradeInstall($branch = 'v2-master', $stage) {
     $source = dirname(__DIR__,2).DIRECTORY_SEPARATOR.'upgrade'.DIRECTORY_SEPARATOR.'Organizr-'.str_replace('v2','2',$branch).DIRECTORY_SEPARATOR;
     $cleanup = dirname(__DIR__,2) .DIRECTORY_SEPARATOR."upgrade".DIRECTORY_SEPARATOR;
     $destination = dirname(__DIR__,2).DIRECTORY_SEPARATOR;
-	echo 'URL: ',$url, '<br/></br/>FILENAME: ',$file,'<br/></br/>SOURCLEFILE: ', $source,'<br/></br/>DELETE DIR: ', $cleanup,'<br/></br/>OVERWRITE: ', $destination;
 	switch ($stage) {
 		case '1':
 			return 'stage1';

+ 15 - 0
api/index.php

@@ -287,6 +287,21 @@ switch ($function) {
                 break;
         }
         break;
+    case 'v1_upgrade':
+    case 'v1_update':
+    case 'v1_force':
+        switch ($method) {
+            case 'POST':
+                    $result['status'] = 'success';
+                    $result['statusText'] = 'success';
+                    $result['data'] = upgradeInstall($_POST['data']['branch'],$_POST['data']['stage']);
+                break;
+            default:
+                $result['status'] = 'error';
+                $result['statusText'] = 'The function requested is not defined for method: '.$method;
+                break;
+        }
+        break;
     case 'v1_login_page':
         switch ($method) {
             case 'GET':

+ 43 - 1
js/functions.js

@@ -1109,7 +1109,49 @@ function updateCheck(){
 	});
 }
 function updateNow(){
-	alert('update script');
+	console.log('Organizr Function: Starting Update Process');
+	message('',window.lang.translate('Starting Update Process'),'bottom-right','#FFF','success','10000');
+	organizrAPI('POST','api/?v1/update', {branch:activeInfo.branch,stage:1}).success(function(data) {
+		var json = JSON.parse(data);
+		if(json.data == 'stage1'){
+			message('',window.lang.translate('Update File Downloaded'),'bottom-right','#FFF','success','10000');
+			organizrAPI('POST','api/?v1/update', {branch:activeInfo.branch,stage:2}).success(function(data) {
+				var json = JSON.parse(data);
+				if(json.data == 'stage2'){
+					message('',window.lang.translate('Update File Unzipped'),'bottom-right','#FFF','success','10000');
+					organizrAPI('POST','api/?v1/update', {branch:activeInfo.branch,stage:3}).success(function(data) {
+						var json = JSON.parse(data);
+						if(json.data == 'stage3'){
+							message('',window.lang.translate('Update Files Copied'),'bottom-right','#FFF','success','10000');
+							organizrAPI('POST','api/?v1/update', {branch:activeInfo.branch,stage:4}).success(function(data) {
+								var json = JSON.parse(data);
+								if(json.data == 'stage4'){
+									message('',window.lang.translate('Update Cleanup Finished'),'bottom-right','#FFF','success','10000');
+									location.reload();
+								}else{
+									message('',window.lang.translate('Update Cleanup Failed'),'bottom-right','#FFF','danger','10000');
+								}
+							}).fail(function(xhr) {
+								console.error("Organizr Function: API Connection Failed");
+							});
+						}else{
+							message('',window.lang.translate('Update File Copy Failed'),'bottom-right','#FFF','danger','10000');
+						}
+					}).fail(function(xhr) {
+						console.error("Organizr Function: API Connection Failed");
+					});
+				}else{
+					message('',window.lang.translate('Update File Unzip Failed'),'bottom-right','#FFF','danger','10000');
+				}
+			}).fail(function(xhr) {
+				console.error("Organizr Function: API Connection Failed");
+			});
+		}else{
+			message('',window.lang.translate('Update File Download Failed'),'bottom-right','#FFF','danger','10000');
+		}
+	}).fail(function(xhr) {
+		console.error("Organizr Function: API Connection Failed");
+	});
 }
 function organizrAPI(type,path,data=null){
 	//console.log('Organizr API: Calling API: '+path);