Эх сурвалжийг харах

Add keepSettings option to updater

DSR! 3 жил өмнө
parent
commit
8ad1b9d0c8

+ 6 - 1
src/pineapple/modules/Advanced/api/module.php

@@ -217,7 +217,12 @@ class Advanced extends SystemModule
     private function performUpgrade()
     {
         if (file_exists(self::UP_PATH)) {
-            $this->execBackground("sysupgrade -n " . self::UP_PATH);
+            $params = "";
+            if ($this->request->keepSettings) {
+                $params = "-n";
+            }
+
+            $this->execBackground("sysupgrade {$params} " . self::UP_PATH);
             $this->response = array("success" => true);
         } else {
             $this->error = "Upgrade failed.";

+ 3 - 2
src/pineapple/modules/Advanced/js/module.js

@@ -165,6 +165,7 @@ registerController("AdvancedUpgradeController", ['$api', '$scope', '$interval',
     $scope.isManualUpgrade = false;
     $scope.manualUpgradeUrl = "";
     $scope.showManualUpgradeUrlError = false;
+    $scope.keepSettings = false;
 
     $scope.reloadData = (function() {
         $api.request({
@@ -267,11 +268,11 @@ registerController("AdvancedUpgradeController", ['$api', '$scope', '$interval',
         });
     });
 
-    $scope.performUpgrade = (function(skipMetadata) {
+    $scope.performUpgrade = (function() {
         $api.request({
             module: 'Advanced',
             action: 'performUpgrade',
-            skipMetadata: skipMetadata
+            keepSettings: $scope.keepSettings
         }, function(response) {
             if (response.success === true) {
                 $scope.performUpgradeStart = true;

+ 12 - 2
src/pineapple/modules/Advanced/module.html

@@ -184,8 +184,14 @@
                             <p ng-bind-html="upgradeData['changelog'] | rawHTML">
                                 Changelog:
                             </p>
-                            <p ng-if="upgradeData['upgradeUrl']">
+                            <div class="input-group" ng-if="upgradeData['upgradeUrl']">
+                                <div class="checkbox">
+                                    <label><input type="checkbox" ng-model="keepSettings">Keep settings and retain the current configuration</label><
+                                </div>
+                                <br/>
                                 <button class="btn btn-default center-block" ng-click="downloadUpgrade()">Perform Upgrade</button>
+                            </div>
+                            <p ng-if="upgradeData['upgradeUrl']">
                             </p>
                         </div>
                         <div class="text-center" ng-show="!isManualUpgrade && downloading">
@@ -219,13 +225,17 @@
                             </div>
                             <br/>
                             <div class="input-group">
+                                <div class="checkbox">
+                                    <label><input type="checkbox" ng-model="keepSettings">Keep settings and retain the current configuration</label><
+                                </div>
+                                <br/>
                                 <button class="btn btn-default" ng-click="downloadManualUpgrade()" ng-disabled="isManualUpgrade && downloading">
                                     <span ng-hide="isManualUpgrade && downloading">Download</span>
                                     <img class="image-small-18" src="img/throbber.gif" ng-show="isManualUpgrade && downloading">
                                 </button>
                             </div>
                         </div>
-                        <div class="text-center" ng-show="isManualUpgrade && downloaded">
+                        <div class="" ng-show="isManualUpgrade && downloaded">
                             <p><hr></p>
                             <p>Download completed. If the data is correct continue with the installation.</p>
                             <p>Downloaded: {{ upgradeData['downloaded'] }}</p>