--- /dev/null
+[%
+ WRAPPER "staff/base.tt2";
+ ctx.page_title = l("Z39.50");
+ ctx.page_app = "egCatZ3950Search";
+ ctx.page_ctrl = "Z3950SearchCtrl";
+%]
+
+[% BLOCK APP_JS %]
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/grid.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/ui.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/cat/z3950/app.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/cat/services/z3950.js"></script>
+[% END %]
+
+<div ng-view></div>
+
+[% END %]
--- /dev/null
+<div>
+<strong>[% l('Search') %]</strong>
+</div>
+
+<div>
+<strong>[% l('Targets') %]</strong>
+<eg-z3950-target-list></eg-z3950-target-list>
+</div>
+
+<eg-grid
+ id-field="index"
+ features="-display,-sort,-multisort"
+ main-label="[% l('Results') %]"
+ items-provider="gridDataProvider"
+ grid-controls="gridControls"
+ persist-key="cat.z3950_results">
+
+</eg-grid>
--- /dev/null
+<div ng-repeat="target in targets">
+ <span>{{target.code}} / {{target.settings.label}}}</span>
+ <span ng-if="target.settings.auth == 't'">requires auth</span>
+</div>
</li>
<li class="divider"></li>
<li>
+ <a href="./cat/z3950/index" target="_self">
+ <span class="glyphicon glyphicon-cloud-download"></span>
+ [% l('Import Record from Z39.50') %]
+ </a>
+ </li>
+ <li>
<a href="./cat/catalog/vandelay" target="_self">
<span class="glyphicon glyphicon-transfer"></span>
[% l('MARC Batch Import/Export') %]
--- /dev/null
+angular.module('egZ3950Mod', ['egCoreMod', 'ui.bootstrap'])
+
+.directive("egZ3950TargetList", function () {
+ return {
+ transclude: true,
+ restrict: 'AE',
+ scope: {
+
+ },
+ templateUrl: './cat/z3950/t_target',
+ controller:
+ ['$scope','egCore','egAuth',
+ function($scope , egCore, egAuth) {
+ function loadTargets() {
+ egCore.net.request(
+ 'open-ils.search',
+ 'open-ils.search.z3950.retrieve_services',
+ egAuth.token()
+ ).then(function(res) {
+ $scope.targets = [];
+ // native Evergreen search goes first
+ var localTarget = res['native-evergreen-catalog'];
+ delete res['native-evergreen-catalog'];
+ angular.forEach(res, function(value, key) {
+ this.push({
+ code: key,
+ settings: value
+ });
+ }, $scope.targets);
+ $scope.targets.sort(function (a, b) {
+ a = a.settings.label;
+ b = b.settings.label;
+ return a < b ? -1 : (a > b ? 1 : 0);
+ });
+ $scope.targets.unshift({
+ code: 'native-evergreen-catalog',
+ settings: localTarget
+ });
+ });
+ }
+ loadTargets();
+ }]
+ }
+})