$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;
});
},
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) {