Fix admin repository links and remove buttons

- Use $location.search() instead of window.location.search for URL
  params so cross-page links (owner, conference, search filters) work
  with AngularJS client-side navigation
- Add missing removeRepository() in both repos and user detail controllers
- Fix removeCache() spurious $scope.$apply() that caused digest errors
- Add confirmation prompts and list refresh after remove/cache operations
This commit is contained in:
tdurieux
2026-05-06 21:27:57 +03:00
parent d9104c2ec2
commit 1204eaffa9
+27 -16
View File
@@ -138,10 +138,11 @@ angular
search: "", search: "",
}); });
// pre-fill owner / conference from URL ?owner= / ?conference= // pre-fill filters from URL ?owner= / ?conference= / ?search=
const params = new URLSearchParams(window.location.search); const urlParams = $location.search();
if (params.get("owner")) $scope.query.owner = params.get("owner"); if (urlParams.owner) $scope.query.owner = urlParams.owner;
if (params.get("conference")) $scope.query.conference = params.get("conference"); if (urlParams.conference) $scope.query.conference = urlParams.conference;
if (urlParams.search) $scope.query.search = urlParams.search;
// -------- presets -------- // -------- presets --------
const presetsKey = "admin.repos.presets"; const presetsKey = "admin.repos.presets";
@@ -203,13 +204,18 @@ angular
}; };
$scope.removeCache = (repo) => { $scope.removeCache = (repo) => {
if (!confirm("Remove cached files for " + repo.repoId + "?")) return;
$http.delete("/api/admin/repos/" + repo.repoId).then( $http.delete("/api/admin/repos/" + repo.repoId).then(
(res) => { () => getRepositories(),
$scope.$apply(); (err) => console.error(err)
}, );
(err) => { };
console.error(err);
} $scope.removeRepository = (repo) => {
if (!confirm("Remove repository " + repo.repoId + "?")) return;
$http.delete("/api/repo/" + repo.repoId + "/").then(
() => getRepositories(),
(err) => console.error(err)
); );
}; };
@@ -551,13 +557,18 @@ angular
}; };
$scope.removeCache = (repo) => { $scope.removeCache = (repo) => {
if (!confirm("Remove cached files for " + repo.repoId + "?")) return;
$http.delete("/api/admin/repos/" + repo.repoId).then( $http.delete("/api/admin/repos/" + repo.repoId).then(
(res) => { () => getUserRepositories($routeParams.username),
$scope.$apply(); (err) => console.error(err)
}, );
(err) => { };
console.error(err);
} $scope.removeRepository = (repo) => {
if (!confirm("Remove repository " + repo.repoId + "?")) return;
$http.delete("/api/repo/" + repo.repoId + "/").then(
() => getUserRepositories($routeParams.username),
(err) => console.error(err)
); );
}; };