diff --git a/smp-angular/src/app/edit/edit-domain/domain-group-panel/domain-group.component.ts b/smp-angular/src/app/edit/edit-domain/domain-group-panel/domain-group.component.ts
index ee27b6546e67e6177a7447e3aa964ba524dace66..660c3f7387de4fb7e12783f1146aa9f4f1ca30b0 100644
--- a/smp-angular/src/app/edit/edit-domain/domain-group-panel/domain-group.component.ts
+++ b/smp-angular/src/app/edit/edit-domain/domain-group-panel/domain-group.component.ts
@@ -29,6 +29,9 @@ import {lastValueFrom} from "rxjs";
 import {
   SmpTableColDef
 } from "../../../common/components/smp-table/smp-table-coldef.model";
+import {
+  EditResourceController
+} from "../../edit-resources/edit-resource.controller";
 
 @Component({
   selector: 'domain-group-panel',
@@ -52,6 +55,7 @@ export class DomainGroupComponent implements OnInit, BeforeLeaveGuard {
   selectedGroup: GroupRo;
 
   constructor(private editDomainService: EditDomainService,
+              private editResourceController: EditResourceController,
               private alertService: AlertMessageService,
               private dialog: MatDialog,
               private formBuilder: FormBuilder,
@@ -216,6 +220,7 @@ export class DomainGroupComponent implements OnInit, BeforeLeaveGuard {
         if (result) {
           this.alertService.success(await lastValueFrom(this.translateService.get("domain.group.success.delete", {groupName: result.groupName})));
           this.onGroupSelected(null);
+          this.editResourceController.dataChanged = true;
           this.refresh()
         }
       }, (error) => {
diff --git a/smp-angular/src/app/edit/edit-domain/domain-group-panel/group-dialog/group-dialog.component.ts b/smp-angular/src/app/edit/edit-domain/domain-group-panel/group-dialog/group-dialog.component.ts
index 6f24f1b9b81c12356f7607c3f3227dce511b99c8..4368213e44e4ed1d6d25d4dafa06af930bc352a8 100644
--- a/smp-angular/src/app/edit/edit-domain/domain-group-panel/group-dialog/group-dialog.component.ts
+++ b/smp-angular/src/app/edit/edit-domain/domain-group-panel/group-dialog/group-dialog.component.ts
@@ -6,6 +6,9 @@ import {AlertMessageService} from "../../../../common/alert-message/alert-messag
 import {VisibilityEnum} from "../../../../common/enums/visibility.enum";
 import {GroupRo} from "../../../../common/model/group-ro.model";
 import {EditDomainService} from "../../edit-domain.service";
+import {
+  EditResourceController
+} from "../../../edit-resources/edit-resource.controller";
 
 
 @Component({
@@ -29,6 +32,7 @@ export class GroupDialogComponent {
 
   constructor(@Inject(MAT_DIALOG_DATA) public data: any,
               private editDomainService: EditDomainService,
+              private editResourceController: EditResourceController,
               public dialogRef: MatDialogRef<GroupDialogComponent>,
               private alertService: AlertMessageService,
               private formBuilder: FormBuilder
@@ -112,6 +116,7 @@ export class GroupDialogComponent {
 
     this.editDomainService.createDomainGroupObservable(this._currentDomain.domainId, group).subscribe((group: GroupRo) => {
       if (!!group) {
+        this.editResourceController.dataChanged = true;
         this.closeDialog();
       }
     }, (error) => {
@@ -126,6 +131,7 @@ export class GroupDialogComponent {
   public saveGroup(group: GroupRo) {
     this.editDomainService.saveDomainGroupObservable(this._currentDomain.domainId, group).subscribe((group: GroupRo) => {
       if (!!group) {
+        this.editResourceController.dataChanged = true;
         this.closeDialog();
       }
     }, (error) => {
diff --git a/smp-angular/src/app/edit/edit-group/group-resource-panel/group-resource-panel.component.ts b/smp-angular/src/app/edit/edit-group/group-resource-panel/group-resource-panel.component.ts
index 326d15ef158a4c232a8bbd0c7243a810f50123f6..1901c0cdb5641392992bcc39c4d3b505ae16fe7f 100644
--- a/smp-angular/src/app/edit/edit-group/group-resource-panel/group-resource-panel.component.ts
+++ b/smp-angular/src/app/edit/edit-group/group-resource-panel/group-resource-panel.component.ts
@@ -34,6 +34,9 @@ import {MatTableDataSource} from "@angular/material/table";
 import {
   SmpTableColDef
 } from "../../../common/components/smp-table/smp-table-coldef.model";
+import {
+  EditResourceController
+} from "../../edit-resources/edit-resource.controller";
 
 @Component({
   selector: 'group-resource-panel',
@@ -58,6 +61,7 @@ export class GroupResourcePanelComponent implements BeforeLeaveGuard {
   columns: SmpTableColDef[];
 
   constructor(private editGroupService: EditGroupService,
+              private editResourceController: EditResourceController,
               private alertService: AlertMessageService,
               private dialog: MatDialog,
               private translateService: TranslateService) {
@@ -220,6 +224,7 @@ export class GroupResourcePanelComponent implements BeforeLeaveGuard {
     this.editGroupService.deleteResourceFromGroup(resource, this._group, this.domain)
       .pipe(
         finalize(() => {
+          this.editResourceController.dataChanged = true;
           this.refresh();
           this.isLoadingResults = false;
         }))
diff --git a/smp-angular/src/app/edit/edit-group/group-resource-panel/resource-dialog/resource-dialog.component.ts b/smp-angular/src/app/edit/edit-group/group-resource-panel/resource-dialog/resource-dialog.component.ts
index b2595a6a3cefd8b5e3affed7e8275d8e6e5cd04d..44f48e5c40c6c5cf051e2624a0303327a352075e 100644
--- a/smp-angular/src/app/edit/edit-group/group-resource-panel/resource-dialog/resource-dialog.component.ts
+++ b/smp-angular/src/app/edit/edit-group/group-resource-panel/resource-dialog/resource-dialog.component.ts
@@ -31,6 +31,9 @@ import {
   DomainPropertyRo
 } from "../../../../common/model/domain-property-ro.model";
 import {Subscription} from "rxjs";
+import {
+  EditResourceController
+} from "../../../edit-resources/edit-resource.controller";
 
 
 @Component({
@@ -67,6 +70,7 @@ export class ResourceDialogComponent implements OnInit {
               public dialogRef: MatDialogRef<ResourceDialogComponent>,
               private editGroupService: EditGroupService,
               private editResourceService: EditResourceService,
+              private editResourceController: EditResourceController,
               private alertService: AlertMessageService,
               private httpErrorHandlerService: HttpErrorHandlerService,
               private editDomainService: EditDomainService,
@@ -224,6 +228,8 @@ export class ResourceDialogComponent implements OnInit {
     this.editGroupService.createResourceForGroup(this.resource, this.group, this.domain).subscribe({
       next: (result: ResourceRo) => {
         if (!!result) {
+          // refresh the domains/groups/resources for user to see the changes
+          this.editResourceController.dataChanged = true;
           this.closeDialog();
         }
         this.submitInProgress = false;
@@ -239,6 +245,8 @@ export class ResourceDialogComponent implements OnInit {
     this.editResourceService.updateResourceForGroup(resource, this.group, this.domain).subscribe({
       next: (result: ResourceRo): void => {
         if (!!result) {
+          // refresh the domains/groups/resources for user to see the changes
+          this.editResourceController.dataChanged = true;
           this.closeDialog();
         }
         this.submitInProgress = false;
diff --git a/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts b/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts
index 2271a143d0148308fa26d61f1ba3964d7c391225..0577e4e00d47c05726d482ffec255f618c48778d 100644
--- a/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts
+++ b/smp-angular/src/app/edit/edit-resources/edit-resource.component.ts
@@ -47,6 +47,8 @@ export class EditResourceComponent implements OnInit, BeforeLeaveGuard {
 
   ngOnInit() {
     console.log("EditResourceComponent: ngOnInit  " + this.columns.length);
+    this.editResourceController.refreshDataOnDataChange();
+
     if (!this.selectedResource) {
       this.editResourceController.refreshDomains();
     } else {
diff --git a/smp-angular/src/app/edit/edit-resources/edit-resource.controller.ts b/smp-angular/src/app/edit/edit-resources/edit-resource.controller.ts
index 899324fca1adca87f78252926bf3047cdebfdaa6..6f9d9581948bcbf3bfe6104c6c998879694351fa 100644
--- a/smp-angular/src/app/edit/edit-resources/edit-resource.controller.ts
+++ b/smp-angular/src/app/edit/edit-resources/edit-resource.controller.ts
@@ -28,13 +28,16 @@ export class EditResourceController extends MatTableDataSource<ResourceRo> {
   domainList: DomainRo[] = [];
   groupList: GroupRo[] = [];
 
+  // data changed indicates the cached data may be outdated and need to be refreshed
+  _dataChanged: boolean = false;
+  _isLoadingResults:boolean = false;
+
   _selectedDomain: DomainRo;
   _selectedGroup: GroupRo;
   _selectedResource: ResourceRo;
   _selectedDomainResourceDefs: ResourceDefinitionRo[];
 
   resourcesFilter: any = {};
-  isLoadingResults = false;
 
   dataLength:number = 0;
   pageIndex:number = 0;
@@ -58,6 +61,29 @@ export class EditResourceController extends MatTableDataSource<ResourceRo> {
     });
   }
 
+  // this flag is used to trigger data refresh when data is needed.
+  //The data can be changed for the user when adding/creating new resource in the edit group
+  @Input() set dataChanged(value: boolean) {
+    this._dataChanged = value;
+  }
+
+  get dataChanged(): boolean {
+    return this._dataChanged;
+  }
+
+  // this flag is used to trigger data refresh when data is needed.
+  //The data can be changed for the user when adding/creating new resource in the edit group
+  @Input() set isLoadingResults(value: boolean) {
+    if (!value) {
+      // data was loaded, and we can reset the flag for data changed
+      this._dataChanged = value
+    }
+    this._isLoadingResults = value;
+  }
+
+  get isLoadingResults(): boolean {
+    return this._isLoadingResults;
+  }
 
   private clearSelectedData() {
     this.domainList = [];
@@ -77,7 +103,7 @@ export class EditResourceController extends MatTableDataSource<ResourceRo> {
 
   @Input() set selectedDomain(domain: DomainRo) {
     this._selectedDomain = domain;
-    if (!!this.selectedDomain) {
+    if (!!this.selectedDomain || this.dataChanged) {
       this.refreshGroups();
       this.refreshDomainsResourceDefinitions();
     } else {
@@ -93,7 +119,7 @@ export class EditResourceController extends MatTableDataSource<ResourceRo> {
 
   @Input() set selectedGroup(resource: GroupRo) {
     this._selectedGroup = resource;
-    if (!!this._selectedGroup) {
+    if (!!this._selectedGroup || this.dataChanged ) {
       this.refreshResources();
     } else {
       this.isLoadingResults = false;
@@ -123,6 +149,15 @@ export class EditResourceController extends MatTableDataSource<ResourceRo> {
     this._selectedResource = resource;
   };
 
+  /**
+   * Method refreshes data when data changed
+   */
+  refreshDataOnDataChange() {
+    if (this.dataChanged) {
+      this.refreshDomains();
+    }
+  }
+
 
   refreshDomains() {
     this.isLoadingResults = true;
@@ -140,6 +175,7 @@ export class EditResourceController extends MatTableDataSource<ResourceRo> {
   refreshGroups() {
     if (!this.selectedDomain) {
       this.updateGroupList([]);
+
       this.isLoadingResults = false;
       return;
     }
@@ -191,6 +227,7 @@ export class EditResourceController extends MatTableDataSource<ResourceRo> {
     if (!!this.domainList && this.domainList.length > 0) {
       this.selectedDomain = this.domainList[0];
     } else {
+      this._dataChanged = false;
       this.isLoadingResults = false;
     }
   }
@@ -200,6 +237,7 @@ export class EditResourceController extends MatTableDataSource<ResourceRo> {
     if (!!this.groupList && this.groupList.length > 0) {
       this.selectedGroup = this.groupList[0];
     } else {
+      this._dataChanged = false;
       this.isLoadingResults = false;
     }
   }
diff --git a/smp-angular/src/assets/i18n/en.json b/smp-angular/src/assets/i18n/en.json
index 6beaf4bdd7c6bd8d6776b23e758c985bb412e18b..3287378a1e05981dcd9b8fd2af63512ee42bface 100644
--- a/smp-angular/src/assets/i18n/en.json
+++ b/smp-angular/src/assets/i18n/en.json
@@ -547,7 +547,7 @@
   "edit.resource.placeholder.filter": "Resource filter",
   "edit.resource.placeholder.selected.domain": "Select domain",
   "edit.resource.placeholder.selected.group": "Select group",
-  "edit.resource.text": "Edit resource administration panel is a tool for resource administrators to administer the resource",
+  "edit.resource.text": "Edit resource administration panel is a tool for resource administrators to administer the resource.<br /><b>Note:</b>Only domains and groups where the user is a resource administrator are shown.",
   "edit.resource.title": "Edit Resource",
   "edit.resource.tooltip.selected.domain": "Select domain.",
   "edit.resource.tooltip.selected.group": "Select group.",