LP1901930 SIP mediator continued
authorBill Erickson <berickxx@gmail.com>
Wed, 25 Nov 2020 20:49:57 +0000 (12:49 -0800)
committerBill Erickson <berickxx@gmail.com>
Wed, 25 Nov 2020 20:49:57 +0000 (12:49 -0800)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/eg2/src/app/share/fm-editor/fm-editor.component.ts
Open-ILS/src/eg2/src/app/staff/admin/server/sip/account.component.html
Open-ILS/src/eg2/src/app/staff/admin/server/sip/account.component.ts

index 54553a4..2b98d42 100644 (file)
@@ -144,7 +144,11 @@ export class FmRecordEditorComponent
     @Input() hideBanner: boolean;
 
     // do not close dialog on error saving record
-    @Input() remainOpenOnError: false;
+    @Input() remainOpenOnError = false;
+
+    // Avoid making any pcrud calls.  Instead return the modified object
+    // to the caller via recordSaved Output and dialog close().
+    @Input() inPlaceMode = false;
 
     // Emit the modified object when the save action completes.
     @Output() recordSaved = new EventEmitter<IdlObject>();
@@ -631,6 +635,19 @@ export class FmRecordEditorComponent
             this.preSave(this.mode, recToSave);
         }
         this.convertDatatypesToIdl(recToSave);
+
+        if (this.inPlaceMode) {
+            this.recordSaved.emit(recToSave);
+            if (this.fmEditForm) {
+                this.fmEditForm.form.markAsPristine();
+            }
+            if (this.isDialog()) {
+                this.record = undefined;
+                this.close(recToSave);
+            }
+            return;
+        }
+
         this.pcrud[this.mode]([recToSave]).toPromise().then(
             result => {
                 this.recordSaved.emit(result);
index ba3766d..3525d4f 100644 (file)
@@ -67,7 +67,7 @@
 
     <eg-fm-record-editor #editor
       idlClass="sipacc" [mode]="createMode ? 'create' : 'update'" 
-      hiddenFields="id" displayMode="inline"
+      hiddenFields="id" displayMode="inline" [inPlaceMode]="true"
       fieldOrder="sip_username,sip_password,setting_group,usr,workstation,transient,activity_who,enabled"
       [fieldOptions]="{
         setting_group:{customTemplate:{template:grpTemplate}},
index 2e373ca..f6d969f 100644 (file)
@@ -4,6 +4,7 @@ import {Observable, of} from 'rxjs';
 import {map, tap, switchMap, catchError} from 'rxjs/operators';
 import {IdlService, IdlObject} from '@eg/core/idl.service';
 import {OrgService} from '@eg/core/org.service';
+import {NetService} from '@eg/core/net.service';
 import {AuthService} from '@eg/core/auth.service';
 import {PcrudService} from '@eg/core/pcrud.service';
 import {ToastService} from '@eg/share/toast/toast.service';
@@ -43,6 +44,7 @@ export class SipAccountComponent implements OnInit {
         private route: ActivatedRoute,
         private router: Router,
         private idl: IdlService,
+        private net: NetService,
         private pcrud: PcrudService
     ) {}
 
@@ -108,7 +110,6 @@ export class SipAccountComponent implements OnInit {
         };
     }
 
-
     fetchGroups() {
         this.pcrud.retrieveAll('sipsetg',
             {order_by: {sipsetg: 'label'}}, {atomic: true})
@@ -188,13 +189,17 @@ export class SipAccountComponent implements OnInit {
         );
     }
 
-    accountSaved(result) {
+    accountSaved(account) {
+        // Create/modify the account via API
+
+        /*
         if (this.createMode) {
             this.router.navigate(
                 [`/staff/admin/server/sip/account/${result.id()}`]);
         } else {
             this.refreshAccount();
         }
+        */
     }
 
     editFirstSetting(rows: any) {