## Is your feature request related to a problem?

When setting up dashboards I'd like to filter the stats to a certain page/subdomain. 

## Describe the solution you'd like

Allow adding a extra filters for all graphs on a dashboard (e.g. filter by $current_url)

## Describe alternatives you've considered

Updating every graph in dashboard one-by-one and then reverting them back.

## Additional context

Related to https://github.com/PostHog/posthog/issues/780

Datadog has a decent solution for this: https://docs.datadoghq.com/dashboards/template_variables/, which I think we can simplify and use ourselves.

Came up during #2560 

#### *Thank you* for your feature request – we love each and every one!

posthog/api/dashboard.py
legacy_team_compatibility = True
    def get_parents_query_dict(self) -> Dict[str, Any]:
        if not self.request.user.is_authenticated or "share_token" in self.request.GET:
            return {}
        return {"team_id": self.team_id}
class SharedDashboardsViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):
    queryset = Dashboard.objects.filter(is_shared=True)
    serializer_class = DashboardSerializer
    authentication_classes: Sequence[Type[BaseAuthentication]] = []
    permission_classes: Sequence[Union[Type[BasePermission], OperandHolder, SingleOperandHolder]] = []
    lookup_field = "share_token"
@xframe_options_exempt
def shared_dashboard(request: HttpRequest, share_token: str):
    dashboard = get_object_or_404(Dashboard, is_shared=True, share_token=share_token)
    shared_dashboard_serialized = {
        "id": dashboard.id,
        "share_token": dashboard.share_token,
        "name": dashboard.name,
        "description": dashboard.description,
        "team_name": dashboard.team.name,
    }
    return render_template(
        "shared_dashboard.html",
        request=request,
        context={"shared_dashboard_serialized": json.dumps(shared_dashboard_serialized)},
    )
class LegacyInsightViewSet(InsightViewSet):
    legacy_team_compatibility = True