server template : angular admin ui
authorBill Erickson <berickxx@gmail.com>
Tue, 16 Apr 2019 20:22:39 +0000 (16:22 -0400)
committerBill Erickson <berickxx@gmail.com>
Fri, 19 Apr 2019 17:31:22 +0000 (13:31 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/eg2/src/app/staff/admin/server/admin-server-splash.component.html
Open-ILS/src/eg2/src/app/staff/admin/server/admin-server.module.ts
Open-ILS/src/eg2/src/app/staff/admin/server/print-template.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/admin/server/routing.module.ts

index 5e6058d..b3da873 100644 (file)
@@ -81,6 +81,9 @@
       url="/eg/staff/admin/server/legacy/permission/grp_tree"></eg-link-table-link>
     <eg-link-table-link i18n-label label="Permissions"  
       routerLink="/staff/admin/server/permission/perm_list"></eg-link-table-link>
+    <!-- Probably should move this to local admin once it's migrated -->
+    <eg-link-table-link i18n-label label="Print Templates"  
+      routerLink="/staff/admin/server/config/print_template"></eg-link-table-link>
     <eg-link-table-link i18n-label label="Remote Accounts"  
       routerLink="/staff/admin/server/config/remote_account"></eg-link-table-link>
     <eg-link-table-link i18n-label label="SMS Carriers"  
index 1f00a8a..c92a2e7 100644 (file)
@@ -3,10 +3,12 @@ import {StaffCommonModule} from '@eg/staff/common.module';
 import {AdminServerRoutingModule} from './routing.module';
 import {AdminCommonModule} from '@eg/staff/admin/common.module';
 import {AdminServerSplashComponent} from './admin-server-splash.component';
+import {PrintTemplateComponent} from './print-template.component';
 
 @NgModule({
   declarations: [
-      AdminServerSplashComponent
+      AdminServerSplashComponent,
+      PrintTemplateComponent
   ],
   imports: [
     AdminCommonModule,
diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/print-template.component.ts b/Open-ILS/src/eg2/src/app/staff/admin/server/print-template.component.ts
new file mode 100644 (file)
index 0000000..aa482e5
--- /dev/null
@@ -0,0 +1,52 @@
+import {Component, OnInit,  ViewChild, TemplateRef} from '@angular/core';
+import {ActivatedRoute} from '@angular/router';
+import {IdlService} from '@eg/core/idl.service';
+import {FmFieldOptions} from '@eg/share/fm-editor/fm-editor.component';
+
+/**
+ * Generic IDL class editor page.
+ */
+
+@Component({
+    template: `
+      <eg-title i18n-prefix prefix="{{classLabel}} Administration"></eg-title>
+      <ng-template #templateTemplate let-record="record">
+        <textarea class="form-control" rows="20" [ngModel]="record.template()"
+          (ngModelChange)="record.template($event)"></textarea>
+      </ng-template>
+      <eg-staff-banner bannerText="{{classLabel}} Configuration" i18n-bannerText>
+      </eg-staff-banner>
+      <eg-admin-page idlClass="cpt" [fieldOptions]="fieldOptions"></eg-admin-page>
+    `
+})
+
+export class PrintTemplateComponent implements OnInit {
+
+    idlClass: string;
+    classLabel: string;
+    persistKeyPfx: string;
+    fieldOptions: {[field: string]: FmFieldOptions};
+
+    @ViewChild('templateTemplate') templateTemplate: TemplateRef<any>;
+
+    constructor(
+        private route: ActivatedRoute,
+        private idl: IdlService) {}
+
+    ngOnInit() {
+
+        this.fieldOptions = {
+            template: {
+                customTemplate: {
+                    template: this.templateTemplate
+                }
+            }
+        };
+
+        this.idlClass = 'cpt';
+        const classDef = this.idl.classes[this.idlClass];
+        this.classLabel = classDef.label;
+    }
+}
+
+
index ceb60f2..a38cae0 100644 (file)
@@ -2,11 +2,15 @@ import {NgModule} from '@angular/core';
 import {RouterModule, Routes} from '@angular/router';
 import {AdminServerSplashComponent} from './admin-server-splash.component';
 import {BasicAdminPageComponent} from '@eg/staff/admin/basic-admin-page.component';
+import {PrintTemplateComponent} from './print-template.component';
 
 const routes: Routes = [{
     path: 'splash',
     component: AdminServerSplashComponent
 }, {
+    path: 'config/print_template',
+    component: PrintTemplateComponent
+}, {
     path: ':schema/:table',
     component: BasicAdminPageComponent
 }];