import { EgBaseComponent } from './base.component';
import { EgBaseRoutingModule } from './base-routing.module';
import { WelcomeComponent } from './welcome.component';
+import { EgIdlService } from '@eg/core/eg-idl.service';
@NgModule({
declarations: [
BrowserModule,
NgbModule.forRoot()
],
- providers: [],
+ providers: [EgIdlService],
bootstrap: [EgBaseComponent]
})
--- /dev/null
+import { Injectable } from '@angular/core';
+
+// Added globally by /IDL2js
+declare var _preload_fieldmapper_IDL: Object;
+
+@Injectable()
+export class EgIdlService {
+
+ classes: Object;
+
+ parseIdl(): void {
+ let this_ = this;
+
+ // retain a copy of the full IDL within the this
+ this.classes = _preload_fieldmapper_IDL;
+
+ /**
+ * Creates the class constructor and getter/setter
+ * methods for each IDL class.
+ */
+
+ let mkclass = function(cls, fields) {
+ this_.classes[cls].classname = cls;
+
+ this_[cls] = function(seed) {
+ this.a = seed || [];
+ this.classname = cls;
+ this._isfieldmapper = true;
+ }
+
+ /** creates the getter/setter methods for each field */
+ fields.forEach(function(field, idx) {
+ this_[cls].prototype[fields[idx].name] = function(n) {
+ if (arguments.length==1) this.a[idx] = n;
+ return this.a[idx];
+ }
+ });
+
+ // global class constructors required for JSON_v1.js
+ window[cls] = this_[cls];
+ }
+
+ for (var cls in this_.classes)
+ mkclass(cls, this_.classes[cls].fields);
+ };
+
+}
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { EgNetService } from '@eg/core/eg-net.service';
+import { EgIdlService } from '@eg/core/eg-idl.service';
@Component({
templateUrl: 'bcsearch.component.html'
constructor(
private route: ActivatedRoute,
- private egNet: EgNetService
+ private egNet: EgNetService,
+ private egIdl : EgIdlService
) {}
ngOnInit() {
x => console.log(x),
e => console.log('echo event: ' + e),
() => console.log('done')
- )
+ );
+
+ this.egIdl.parseIdl();
+ console.log(this.egIdl.aou);
}
import { ActivatedRoute, Router } from '@angular/router';
@Component({
- selector: 'eg-staff-nav-bar';
- templateUrl: 'nav.component.html'
+ selector: 'eg-staff-nav-bar',
+ templateUrl: 'nav.component.html'
})
export class EgStaffNavComponent implements OnInit {
})
export class EgStaffComponent implements OnInit {
- title = 'EgStaff';
constructor(private route: ActivatedRoute) {}
</head>
<body>
<eg-root></eg-root>
+ <script src="/IDL2js"></script>
<script src="/js/dojo/opensrf/JSON_v1.js"></script>
<script src="/js/dojo/opensrf/opensrf.js"></script>
<script src="/js/dojo/opensrf/opensrf_ws.js"></script>