diff --git a/.env.example b/.env.example
index 7e05cb5..958e5c7 100644
--- a/.env.example
+++ b/.env.example
@@ -56,7 +56,7 @@ LLM_API_VERSION=
REDIS_URL=redis://localhost:6379/0
# UI default page size (number of events shown per page)
-DEFAULT_PAGE_SIZE=25
+DEFAULT_PAGE_SIZE=24
# Optional: privacy / access control
# Hide entire services from users without PRIVACY_SERVICE_ROLES
diff --git a/backend/config.py b/backend/config.py
index 02f2b5c..4966a26 100644
--- a/backend/config.py
+++ b/backend/config.py
@@ -61,7 +61,7 @@ class Settings(BaseSettings):
REDIS_URL: str = "redis://localhost:6379/0"
# UI defaults
- DEFAULT_PAGE_SIZE: int = 25
+ DEFAULT_PAGE_SIZE: int = 24
_settings = Settings()
diff --git a/backend/frontend/index.html b/backend/frontend/index.html
index 1bacab4..706a16d 100644
--- a/backend/frontend/index.html
+++ b/backend/frontend/index.html
@@ -4,7 +4,7 @@
Admin Operations Center
-
+
@@ -184,11 +184,7 @@
-
-
- +
- −
-
+
@@ -309,7 +305,7 @@
accessToken: null,
authScopes: [],
filters: {
- actor: '', selectedServices: [], search: '', operation: '', result: '', start: '', end: '', limit: 25, includeTags: '', excludeTags: '',
+ actor: '', selectedServices: [], search: '', operation: '', result: '', start: '', end: '', limit: 24, includeTags: '', excludeTags: '',
},
options: { actors: [], services: [], operations: [], results: [] },
savedSearches: [],
@@ -402,6 +398,8 @@
this.aiFeaturesEnabled = featBody.ai_features_enabled !== false;
if (featBody.default_page_size) {
this.filters.limit = featBody.default_page_size;
+ } else {
+ this.filters.limit = 24;
}
} else {
this.aiFeaturesEnabled = true;
@@ -571,9 +569,8 @@
const saved = localStorage.getItem('aoc_filters');
if (!saved && this.options.services.length) {
- // Default: exclude noisy high-volume services
- const noisy = ['Exchange', 'SharePoint', 'Teams'];
- this.filters.selectedServices = this.options.services.filter((s) => !noisy.includes(s));
+ // Default: show all services (privacy controls handle exclusions server-side)
+ this.filters.selectedServices = [...this.options.services];
} else if (saved) {
try {
const parsed = JSON.parse(saved);
@@ -667,26 +664,15 @@
},
clearFilters() {
- const noisy = ['Exchange', 'SharePoint', 'Teams'];
- this.filters = { actor: '', selectedServices: this.options.services.filter((s) => !noisy.includes(s)), search: '', operation: '', result: '', start: '', end: '', limit: 25, includeTags: '', excludeTags: '' };
+ this.filters = { actor: '', selectedServices: [...this.options.services], search: '', operation: '', result: '', start: '', end: '', limit: 24, includeTags: '', excludeTags: '' };
this.saveFilters();
this.resetPagination();
this.loadEvents();
},
- addServiceFilter(service) {
+ filterByService(service) {
if (!service) return;
- if (!this.filters.selectedServices.includes(service)) {
- this.filters.selectedServices.push(service);
- this.saveFilters();
- this.resetPagination();
- this.loadEvents();
- }
- },
-
- removeServiceFilter(service) {
- if (!service) return;
- this.filters.selectedServices = this.filters.selectedServices.filter((s) => s !== service);
+ this.filters.selectedServices = [service];
this.saveFilters();
this.resetPagination();
this.loadEvents();
diff --git a/backend/frontend/style.css b/backend/frontend/style.css
index 693e689..ebb07b1 100644
--- a/backend/frontend/style.css
+++ b/backend/frontend/style.css
@@ -376,31 +376,6 @@ input {
background: rgba(249, 115, 22, 0.25);
}
-.pill__action {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- width: 16px;
- height: 16px;
- border-radius: 4px;
- margin-left: 4px;
- font-size: 11px;
- font-weight: 700;
- line-height: 1;
- cursor: pointer;
- color: var(--muted);
- background: rgba(255, 255, 255, 0.06);
- border: 1px solid transparent;
- transition: all 0.12s ease;
- vertical-align: middle;
-}
-
-.pill__action:hover {
- color: var(--text);
- background: rgba(125, 211, 252, 0.2);
- border-color: rgba(125, 211, 252, 0.3);
-}
-
.event h3 {
margin: 0 0 6px;
font-size: 17px;