testing commit, please ignore
[kcls-web.git] / js / ui / default / conify / global / config / idl_field_doc.js
1 dojo.require('dijit.form.FilteringSelect');
2 dojo.require('dojo.data.ItemFileReadStore');
3 dojo.require('fieldmapper.IDL');
4 dojo.require('openils.PermaCrud');
5 dojo.require('openils.widget.AutoGrid');
6
7 function updateFieldSelector() {
8     var cls = this.attr('value');
9     if(!cls) return;
10     var flist = fieldmapper.IDL.fmclasses[cls];
11     var fields = [];
12     for(var f in flist.fields) {
13         var field = flist.fields[f];
14         if(field.virtual) continue;
15         fields.push({name:field.label, value:field.name});
16     }
17     fdocGrid.overrideEditWidgets.field.store = new dojo.data.ItemFileReadStore(
18         {data:{identifier:'value', label:'name', items:fields}});
19 }
20
21 function load() {
22     var slist = fieldmapper.IDL.fmclasses;
23     var dlist = [];
24
25     fdocGrid.overrideEditWidgets.field = editFieldSelector;
26     fdocGrid.overrideEditWidgets.fm_class = editClassSelector;
27     dojo.connect(fdocGrid.overrideEditWidgets.fm_class, 'onChange', updateFieldSelector);
28
29     for(var f in slist) {
30         if(slist[f].label != slist[f].name) // only show tables that have an actual label
31             dlist.push({value:slist[f].name, name:slist[f].label});
32     }
33     dlist = dlist.sort(function(a, b){return (a.name < b.name) ? -1 : 1;});
34
35     fmClassSelector.store = 
36         fdocGrid.overrideEditWidgets.fm_class.store = 
37             new dojo.data.ItemFileReadStore({data:{identifier:'value', label:'name', items:dlist}});
38
39     fmClassSelector.startup();
40     dojo.connect(fmClassSelector, 'onChange',
41         function() {
42             fdocGrid.resetStore();
43             fdocGrid.loadAll({order_by:{fdoc : 'field'}}, {fm_class: this.attr('value')});
44         }
45     );
46 }
47
48
49 openils.Util.addOnLoad(load);
50