Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenaka <diosmosis@users.noreply.github.com>2018-04-10 08:55:58 +0300
committerGitHub <noreply@github.com>2018-04-10 08:55:58 +0300
commitc026eae585491cd16fc98a33bf90b2223e6b10cb (patch)
tree49299cd15e4db96a6153d188dd0272a1b4e2bef7 /plugins/SitesManager
parent7ae0af6836f85d750fdc764de7a60029aecb98d9 (diff)
Redirect to a different site if deleting idSite in URL (#12696)
* If deleting a site with ID that is == to idSite in the URL, redirect to a different site to avoid later errors. * Use non-strict equality/inequality since MySQLi returns ints while PDO returns strings.
Diffstat (limited to 'plugins/SitesManager')
-rw-r--r--plugins/SitesManager/angularjs/sites-manager/sites-manager-site.controller.js23
1 files changed, 21 insertions, 2 deletions
diff --git a/plugins/SitesManager/angularjs/sites-manager/sites-manager-site.controller.js b/plugins/SitesManager/angularjs/sites-manager/sites-manager-site.controller.js
index bb8b86bd5d..9bf5bf254a 100644
--- a/plugins/SitesManager/angularjs/sites-manager/sites-manager-site.controller.js
+++ b/plugins/SitesManager/angularjs/sites-manager/sites-manager-site.controller.js
@@ -187,6 +187,25 @@
};
var deleteSite = function() {
+ var redirectParams = $scope.redirectParams;
+
+ // if the current idSite in the URL is the site we're deleting, then we have to make to change it. otherwise,
+ // if a user goes to another page, the invalid idSite may cause a fatal error.
+ if (broadcast.getValueFromUrl('idSite') == $scope.site.idsite) {
+ var sites = $scope.adminSites.sites;
+
+ var otherSite;
+ for (var i = 0; i !== sites.length; ++i) {
+ if (sites[i].idsite != $scope.site.idsite) {
+ otherSite = sites[i];
+ break;
+ }
+ }
+
+ if (otherSite) {
+ redirectParams = $.extend({}, redirectParams, { idSite: otherSite.idsite });
+ }
+ }
var ajaxHandler = new ajaxHelper();
@@ -197,11 +216,11 @@
method: 'SitesManager.deleteSite'
}, 'GET');
- ajaxHandler.redirectOnSuccess($scope.redirectParams);
+ ajaxHandler.redirectOnSuccess(redirectParams);
ajaxHandler.setLoadingElement();
ajaxHandler.send();
};
init();
}
-})(); \ No newline at end of file
+})();