</div>
<div class="modal-body">
<div class="row">
+ <div class="col-xs-3">
+ <label for="merge_profile_selector">[% l('Choose merge profile') %]</label>
+ <eg-fm-value-selector id="merge_profile_selector" ng-model="merge_profile" idl-class="vmp" filter="{'preserve_spec':{'=':null}}" ou-setting="cat.default_merge_profile" sticky-setting="eg.cat.z3950.default_merge_profile"></eg-fm-value-selector>
+ <button class="btn btn-default" ng-click="editOverlayRecord()">
+ [% l('Edit Z39.50 Record') %]
+ </button>
+ </div>
+ </div>
+ <div class="row">
<div class="col-xs-6">
- <div>[% l('Replace TCN [_1] ...', '{{overlay_target}}') %]</div>
- <eg-record-html record-id="overlay_target" />
+ <div>[% l('Replace TCN [_1] ...', '{{overlay_target.id}}') %]</div>
+ <eg-record-breaker marc-xml="overlay_target.orig_marc_xml"></eg-record-breaker>
</div>
<div class="col-xs-6">
<div>[% l('With this?') %]
- <button class="btn btn-default" ng-click="editOverlayRecord()">
- [% l('Edit') %]
- </button>
+ <span ng-if="overlay_target.merged">[% l('(merged)') %]</span>
</div>
- <eg-record-html marc-xml="{{args.marc_xml}}" />
+ <eg-record-breaker marc-xml="overlay_target.marc_xml"></eg-record-breaker>
</div>
</div>
</div>
controller:
['$scope', '$uibModalInstance', function($scope, $uibModalInstance) {
$scope.focusMe = true;
- $scope.overlay_target = overlay_target;
+ $scope.merge_profile = null;
+ $scope.overlay_target = {
+ id : overlay_target,
+ merged : false
+ };
+
+ egCore.pcrud.retrieve('bre', $scope.overlay_target.id)
+ .then(function(rec) {
+ $scope.overlay_target.orig_marc_xml = rec.marc();
+ $scope.overlay_target.marc_xml = rec.marc();
+ $scope.merge_marc(); // in case a sticky value was already set
+ });
+
+ $scope.merge_marc = function() {
+ if (!$scope.merge_profile) return;
+ egCore.net.request(
+ 'open-ils.cat',
+ 'open-ils.cat.merge.marc.per_profile',
+ egCore.auth.token(),
+ $scope.merge_profile,
+ [ args.marc_xml, $scope.overlay_target.orig_marc_xml ]
+ ).then(function(merged) {
+ if (merged) {
+ $scope.overlay_target.marc_xml = merged;
+ $scope.overlay_target.merged = true;
+ }
+ });
+ }
+ $scope.$watch('merge_profile', function(newVal, oldVal) {
+ if (newVal && newVal !== oldVal) {
+ $scope.merge_marc();
+ }
+ });
+
$scope.args = args;
+ args.overlay_target = $scope.overlay_target;
$scope.ok = function(args) { $uibModalInstance.close(args) };
$scope.cancel = function () { $uibModalInstance.dismiss() };
$scope.editOverlayRecord = function() {
$scope.cancel = function () { $uibModalInstance.dismiss() }
}]
}).result.then(function (args) {
+ $scope.merge_marc();
if (!args || !args.name) return;
});
};
'open-ils.cat.biblio.record.marc.replace',
egCore.auth.token(),
overlay_target,
- args.marc_xml,
+ (args.overlay_target.merged ? args.overlay_target.marc_xml : args.marc_xml),
null, // FIXME bib source
null,
$scope.selectFieldStripGroups()