From 41161b886bfad6c82a1f06a0fd469165f014b356 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 6 Jul 2022 17:01:47 -0400 Subject: [PATCH] Afform - Use urlHash embedded in popup dialog --- ext/afform/core/ang/afCore.js | 19 ++++++++++++++++--- js/crm.ajax.js | 6 ++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ext/afform/core/ang/afCore.js b/ext/afform/core/ang/afCore.js index ef64b2ee9d..a1dc17aa22 100644 --- a/ext/afform/core/ang/afCore.js +++ b/ext/afform/core/ang/afCore.js @@ -18,9 +18,22 @@ $scope.crmUrl = CRM.url; // Afforms do not use routing, but some forms get input from search params - $scope.$watch(function() {return $location.search();}, function(params) { - $scope.routeParams = params; - }); + var dialog = $el.closest('.ui-dialog-content'); + if (!dialog.length) { + // Full-screen mode + $scope.$watch(function() {return $location.search();}, function(params) { + $scope.routeParams = params; + }); + } else { + // Use urlHash embedded in popup dialog + $scope.routeParams = {}; + if (dialog.data('urlHash')) { + var searchParams = new URLSearchParams(dialog.data('urlHash')); + searchParams.forEach(function(value, key) { + $scope.routeParams[key] = value; + }); + } + } $scope.$parent.afformTitle = meta.title; diff --git a/js/crm.ajax.js b/js/crm.ajax.js index 2c892bfcea..007c7f9346 100644 --- a/js/crm.ajax.js +++ b/js/crm.ajax.js @@ -302,8 +302,10 @@ }); }, refresh: function() { - var that = this; - var url = this._formatUrl(this.options.url, 'json'); + var that = this, + hash = this.options.url.split('#')[1]; + url = this._formatUrl(this.options.url, 'json'); + $(this.element).data('urlHash', hash); if (this.options.crmForm) $('form', this.element).ajaxFormUnbind(); if (this.options.block) this.element.block(); this._ajax(url).then(function(data) { -- 2.25.1