]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/js/ui/default/conify/global/config/z3950_source.js
c73bc9ce4f28517a3023559d32606095a908ca14
[Evergreen.git] / Open-ILS / web / js / ui / default / conify / global / config / z3950_source.js
1 dojo.require('dojox.grid.DataGrid');
2 dojo.require('dojo.data.ItemFileReadStore');
3 dojo.require('dijit.form.NumberTextBox');
4 dojo.require('dijit.form.CheckBox');
5 dojo.require('dijit.Dialog');
6 dojo.require('fieldmapper.OrgUtils');
7 dojo.require('openils.widget.OrgUnitFilteringSelect');
8 dojo.require('openils.widget.AutoGrid');
9 dojo.require('openils.widget.FlattenerGrid');
10 dojo.require('openils.widget.AutoFieldWidget');
11 dojo.require('openils.User');
12 dojo.require('openils.PermaCrud');
13 var zsList;
14
15 function buildZSGrid() {
16
17     if (sourceCode) {
18
19         zaGrid.overrideWidgetArgs.source = {
20             widgetValue : sourceCode, 
21             readOnly : true
22         };
23
24         // draw the credentials context org unit selector
25         new openils.User().buildPermOrgSelector(
26             'ADMIN_Z3950_SOURCE', z39ContextSelector);
27
28     } else {
29
30         zsGrid.loadAll({order_by:{czs : 'name'}});
31     }
32 }
33
34 function applyCreds(clear) {
35     dojo.byId('z39-creds-button').disabled = true;
36     dojo.byId('z39-creds-clear').disabled = true;
37     fieldmapper.standardRequest(
38         ['open-ils.search', 'open-ils.search.z3950.apply_credentials'],
39         {   async : true,
40             params : [
41                 openils.User.authtoken,
42                 sourceCode,
43                 z39ContextSelector.attr('value'),
44                 clear ? '' : dojo.byId('z39-creds-username').value,
45                 clear ? '' : dojo.byId('z39-creds-password').value
46             ],
47             oncomplete : function(r) {
48                 dojo.byId('z39-creds-password').value = '';
49                 dojo.byId('z39-creds-button').disabled = false;
50                 dojo.byId('z39-creds-clear').disabled = false;
51                 openils.Util.readResponse(r);
52             }
53         }
54     );
55 }
56
57 function formatSourceName(val) {
58     return '<a href="' + location.href + '/' + escape(val) + '">' + val + '</a>';
59 }
60
61 var cloneSourceSelector;
62 function showAttrCloneDialog() {
63     attrCloneDialog.show();
64     if (!cloneSourceSelector) {
65         cloneSourceSelector = new openils.widget.AutoFieldWidget({
66             fmClass : 'czs',
67             fmField : 'name',
68             selfReference : true,
69             parentNode : 'attr-clone-source'
70         });
71         cloneSourceSelector.build();
72     }
73 }
74
75 function cloneFromSource() {
76     var pcrud = new openils.PermaCrud({authtoken : openils.User.authtoken}); 
77     var remoteAttrs = pcrud.search('cza', {source : cloneSourceSelector.widget.attr('value')});
78     var myAttrs = pcrud.search('cza', {source : sourceCode});
79     var newAttrs = [];
80
81     dojo.forEach(remoteAttrs, 
82         function(rattr) {
83
84             // if this source already has an attribute with the same name, don't clobber it
85             if (myAttrs.filter(function(a) { return (a.name() == rattr.name()) })[0]) 
86                 return;
87             
88             var newAttr = rattr.clone();
89             newAttr.id(null);
90             newAttr.isnew(true);
91             newAttr.source(sourceCode);
92             newAttrs.push(newAttr);
93         }
94     );
95
96     if (newAttrs.length) {
97         pcrud.create(newAttrs, 
98             {oncomplete : function() { zaGrid.refresh() }});
99     }
100
101     attrCloneDialog.hide();
102 }
103
104 openils.Util.addOnLoad(buildZSGrid);
105
106