diff --git a/src/users/viewUser.js b/src/users/viewUser.js
index 2263b35115a4d08dfaa41cd6da8f037385c626c1..62183f299998142b1d6134a9f3eab9bb112a1678 100644
--- a/src/users/viewUser.js
+++ b/src/users/viewUser.js
@@ -87,6 +87,7 @@ export default class UserView extends ItemView {
               controller: this.eventsignups,
               keys: ['event.title_de'],
               titles: ['event'],
+              clickOnRows: (data) => { m.route.set(`/events/${data.event._id}`); },
             }),
           ]),
         })),
@@ -106,6 +107,7 @@ export default class UserView extends ItemView {
               controller: this.groupmemberships,
               keys: ['group.name', 'expiry'],
               titles: ['groupname', 'expiry'],
+              clickOnRows: (data) => { m.route.set(`/groups/${data.group._id}`); },
             }),
           ]),
         })),
diff --git a/src/views/tableView.js b/src/views/tableView.js
index f352aac4b9a4818780c1f5d18bcb15b4ad5c1211..2baf072c8b53cefcd8b62b414624530ba2b48eb7 100644
--- a/src/views/tableView.js
+++ b/src/views/tableView.js
@@ -41,7 +41,13 @@ export default class TableView {
    *       { embedded: { event: 1 } } to a list of eventsignups,
    *       you can display event.title_de as a table key
    */
-  constructor({ attrs: { keys, tileContent, clickOnRows = true } }) {
+  constructor({
+    attrs: {
+      keys,
+      tileContent,
+      clickOnRows = (data) => { m.route.set(`/${data._links.self.href}`); },
+    },
+  }) {
     this.search = '';
     this.tableKeys = keys;
     this.tileContent = tileContent;
@@ -70,7 +76,7 @@ export default class TableView {
       compact: true,
       content: m('div', {
         onclick: () => {
-          if (this.clickOnRows) { m.route.set(`/${data._links.self.href}`); }
+          if (this.clickOnRows) this.clickOnRows(data);
         },
         className: 'tableTile',
         style: { width: '100%', display: 'flex' },