diff options
author | Benaka <diosmosis@users.noreply.github.com> | 2018-04-10 08:55:58 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-10 08:55:58 +0300 |
commit | c026eae585491cd16fc98a33bf90b2223e6b10cb (patch) | |
tree | 49299cd15e4db96a6153d188dd0272a1b4e2bef7 /plugins/SitesManager | |
parent | 7ae0af6836f85d750fdc764de7a60029aecb98d9 (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.js | 23 |
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 +})(); |