mirror of
https://github.com/syncthing/syncthing.git
synced 2024-11-16 10:28:49 -07:00
Merge pull request #1686 from calmh/major-upgrade-v11
Allow major upgrades
This commit is contained in:
commit
f8f1c72b44
@ -686,7 +686,8 @@ func restGetSystemUpgrade(w http.ResponseWriter, r *http.Request) {
|
|||||||
res := make(map[string]interface{})
|
res := make(map[string]interface{})
|
||||||
res["running"] = Version
|
res["running"] = Version
|
||||||
res["latest"] = rel.Tag
|
res["latest"] = rel.Tag
|
||||||
res["newer"] = upgrade.CompareVersions(rel.Tag, Version) == 1
|
res["newer"] = upgrade.CompareVersions(rel.Tag, Version) == upgrade.Newer
|
||||||
|
res["majorNewer"] = upgrade.CompareVersions(rel.Tag, Version) == upgrade.MajorNewer
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
json.NewEncoder(w).Encode(res)
|
json.NewEncoder(w).Encode(res)
|
||||||
@ -727,7 +728,7 @@ func restPostSystemUpgrade(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if upgrade.CompareVersions(rel.Tag, Version) == 1 {
|
if upgrade.CompareVersions(rel.Tag, Version) > upgrade.Equal {
|
||||||
err = upgrade.To(rel)
|
err = upgrade.To(rel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Warnln("upgrading:", err)
|
l.Warnln("upgrading:", err)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
"A new major version may not be compatible with previous versions.": "A new major version may not be compatible with previous versions.",
|
||||||
"API Key": "API Key",
|
"API Key": "API Key",
|
||||||
"About": "About",
|
"About": "About",
|
||||||
"Add": "Add",
|
"Add": "Add",
|
||||||
@ -71,6 +72,7 @@
|
|||||||
"Later": "Later",
|
"Later": "Later",
|
||||||
"Local Discovery": "Local Discovery",
|
"Local Discovery": "Local Discovery",
|
||||||
"Local State": "Local State",
|
"Local State": "Local State",
|
||||||
|
"Major Upgrade": "Major Upgrade",
|
||||||
"Maximum Age": "Maximum Age",
|
"Maximum Age": "Maximum Age",
|
||||||
"Metadata Only": "Metadata Only",
|
"Metadata Only": "Metadata Only",
|
||||||
"Move to top of queue": "Move to top of queue",
|
"Move to top of queue": "Move to top of queue",
|
||||||
@ -89,11 +91,13 @@
|
|||||||
"Override Changes": "Override Changes",
|
"Override Changes": "Override Changes",
|
||||||
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for",
|
"Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for": "Path to the folder on the local computer. Will be created if it does not exist. The tilde character (~) can be used as a shortcut for",
|
||||||
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Path where versions should be stored (leave empty for the default .stversions folder in the folder).",
|
"Path where versions should be stored (leave empty for the default .stversions folder in the folder).": "Path where versions should be stored (leave empty for the default .stversions folder in the folder).",
|
||||||
|
"Please consult the release notes before performing a major upgrade.": "Please consult the release notes before performing a major upgrade.",
|
||||||
"Please wait": "Please wait",
|
"Please wait": "Please wait",
|
||||||
"Preview": "Preview",
|
"Preview": "Preview",
|
||||||
"Preview Usage Report": "Preview Usage Report",
|
"Preview Usage Report": "Preview Usage Report",
|
||||||
"Quick guide to supported patterns": "Quick guide to supported patterns",
|
"Quick guide to supported patterns": "Quick guide to supported patterns",
|
||||||
"RAM Utilization": "RAM Utilization",
|
"RAM Utilization": "RAM Utilization",
|
||||||
|
"Release Notes": "Release Notes",
|
||||||
"Rescan": "Rescan",
|
"Rescan": "Rescan",
|
||||||
"Rescan All": "Rescan All",
|
"Rescan All": "Rescan All",
|
||||||
"Rescan Interval": "Rescan Interval",
|
"Rescan Interval": "Rescan Interval",
|
||||||
@ -151,10 +155,12 @@
|
|||||||
"The number of versions must be a number and cannot be blank.": "The number of versions must be a number and cannot be blank.",
|
"The number of versions must be a number and cannot be blank.": "The number of versions must be a number and cannot be blank.",
|
||||||
"The path cannot be blank.": "The path cannot be blank.",
|
"The path cannot be blank.": "The path cannot be blank.",
|
||||||
"The rescan interval must be a non-negative number of seconds.": "The rescan interval must be a non-negative number of seconds.",
|
"The rescan interval must be a non-negative number of seconds.": "The rescan interval must be a non-negative number of seconds.",
|
||||||
|
"This is a major version upgrade.": "This is a major version upgrade.",
|
||||||
"Unknown": "Unknown",
|
"Unknown": "Unknown",
|
||||||
"Unshared": "Unshared",
|
"Unshared": "Unshared",
|
||||||
"Unused": "Unused",
|
"Unused": "Unused",
|
||||||
"Up to Date": "Up to Date",
|
"Up to Date": "Up to Date",
|
||||||
|
"Upgrade": "Upgrade",
|
||||||
"Upgrade To {%version%}": "Upgrade To {{version}}",
|
"Upgrade To {%version%}": "Upgrade To {{version}}",
|
||||||
"Upgrading": "Upgrading",
|
"Upgrading": "Upgrading",
|
||||||
"Upload Rate": "Upload Rate",
|
"Upload Rate": "Upload Rate",
|
||||||
|
@ -38,6 +38,12 @@
|
|||||||
<span translate translate-value-version="{{upgradeInfo.latest}}">Upgrade To {%version%}</span>
|
<span translate translate-value-version="{{upgradeInfo.latest}}">Upgrade To {%version%}</span>
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
|
<li ng-if="upgradeInfo && upgradeInfo.majorNewer">
|
||||||
|
<button type="button" class="btn navbar-btn btn-danger btn-sm" href="" ng-click="upgradeMajor()">
|
||||||
|
<span class="glyphicon glyphicon-chevron-up"></span> 
|
||||||
|
<span translate translate-value-version="{{upgradeInfo.latest}}">Upgrade To {%version%}</span>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
<li class="dropdown" language-select></li>
|
<li class="dropdown" language-select></li>
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-cog" aria-label="Edit"></span></a>
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-cog" aria-label="Edit"></span></a>
|
||||||
@ -466,6 +472,35 @@
|
|||||||
<img ng-if="myID" class="center-block img-thumbnail" ng-src="qr/?text={{myID}}"/>
|
<img ng-if="myID" class="center-block img-thumbnail" ng-src="qr/?text={{myID}}"/>
|
||||||
</modal>
|
</modal>
|
||||||
|
|
||||||
|
<!-- Major upgrade modal -->
|
||||||
|
|
||||||
|
<div id="majorUpgrade" class="modal fade" tabindex="-1" data-backdrop="true" data-keyboard="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header alert alert-danger">
|
||||||
|
<h4 class="modal-title">
|
||||||
|
<span ng-if="icon" class="glyphicon glyphicon-chevron-up"></span>
|
||||||
|
<span translate>Major Upgrade</span>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p>
|
||||||
|
<span translate>This is a major version upgrade.</span>
|
||||||
|
<span translate>A new major version may not be compatible with previous versions.</span>
|
||||||
|
<span translate>Please consult the release notes before performing a major upgrade.</span>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a href="https://github.com/syncthing/syncthing/releases/latest" target="_blank" translate>Release Notes</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary btn-sm" ng-click="upgrade()"><span class="glyphicon glyphicon-ok"></span> <span translate>Upgrade</span></button>
|
||||||
|
<button type="button" class="btn btn-default btn-sm" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> <span translate>Close</span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Device editor modal -->
|
<!-- Device editor modal -->
|
||||||
|
|
||||||
<div id="editDevice" class="modal fade" tabindex="-1">
|
<div id="editDevice" class="modal fade" tabindex="-1">
|
||||||
|
@ -698,6 +698,7 @@ angular.module('syncthing.core')
|
|||||||
|
|
||||||
$scope.upgrade = function () {
|
$scope.upgrade = function () {
|
||||||
restarting = true;
|
restarting = true;
|
||||||
|
$('#majorUpgrade').modal('hide');
|
||||||
$('#upgrading').modal();
|
$('#upgrading').modal();
|
||||||
$http.post(urlbase + '/system/upgrade').success(function () {
|
$http.post(urlbase + '/system/upgrade').success(function () {
|
||||||
$('#restarting').modal();
|
$('#restarting').modal();
|
||||||
@ -707,6 +708,10 @@ angular.module('syncthing.core')
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$scope.upgradeMajor = function () {
|
||||||
|
$('#majorUpgrade').modal();
|
||||||
|
};
|
||||||
|
|
||||||
$scope.shutdown = function () {
|
$scope.shutdown = function () {
|
||||||
restarting = true;
|
restarting = true;
|
||||||
$http.post(urlbase + '/system/shutdown').success(function () {
|
$http.post(urlbase + '/system/shutdown').success(function () {
|
||||||
|
Loading…
Reference in New Issue
Block a user