]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/templates/conify/global/config/coded_value_map.tt2
3d30089026e5855e3068d37edea151f083fe6df7
[working/Evergreen.git] / Open-ILS / src / templates / conify / global / config / coded_value_map.tt2
1 [% WRAPPER base.tt2 %]
2 <h1>[% l('Coded Value Maps') %]</h1> <br/>
3
4 <div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
5     <div>[% l('Coded Value Maps') %]</div>
6     <div>
7         <button dojoType='dijit.form.Button' onClick='ccvmGrid.showCreateDialog()'>[% l('New Map') %]</button>
8         <button dojoType='dijit.form.Button' onClick='ccvmGrid.deleteSelected()'>[% l('Delete Selected') %]</button>
9     </div>
10 </div>
11
12 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
13     <span>[% l('Record Attribute Type: ') %]</span><div id='attr-def-div'></div>
14 </div>
15
16 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
17     <table  jsId="ccvmGrid"
18             autoHeight='true'
19             dojoType="openils.widget.AutoGrid"
20             fieldOrder="['ctype', 'code', 'value', 'description', 'opac_visible', 'search_label', 'is_simple', 'composite_def']"
21             query="{code: '*'}"
22             defaultCellWidth='"25%"'
23             fmClass='ccvm'
24             showPaginator='true'
25             editOnEnter='true'>
26       <thead>
27         <tr><th field='composite_def' 
28                 get='getCompositeDefLink' 
29                 formatter='formatCompositeDefLink'>
30             [% l('Composite Definition') %]</th></tr>
31       </thead>
32     </table>
33  </div>
34
35 <script type ="text/javascript">
36
37     dojo.require('dijit.form.FilteringSelect');
38     dojo.require('openils.widget.AutoGrid');
39     dojo.require('openils.widget.AutoFieldWidget');
40
41     function getCompositeDefLink(rowId, item) {
42       if (!item) return '';
43       return this.grid.store.getValue(item, 'id');
44     }
45
46     var isComposite = false;
47     function formatCompositeDefLink(id) {
48       if (id && isComposite) {
49         return "<a href='" + oilsBasePath +
50           "/conify/global/config/composite_attr_entry_definition/" 
51           + id + "'>Manage</a>";
52         } else {
53           return "";
54       }
55     }
56
57     openils.Util.addOnLoad(
58         function() {
59
60             var selector = new openils.widget.AutoFieldWidget({
61                 fmClass : 'ccvm',
62                 fmField : 'ctype',
63                 parentNode : dojo.byId('attr-def-div')
64             });
65
66             selector.build(
67                 function(w, ww) {
68                     dojo.connect(w, 'onChange', 
69                         function(newVal) {
70
71                             // see if this attr def supports composite entries
72                             w.store.fetch({
73                               onComplete : function(list) {
74                                 if (!list.length) return;
75                                 var comp = w.store.getValue(list[0], 'composite');
76                                 if (comp == 't') {
77                                   isComposite = true;
78                                 } else {
79                                   isComposite = false;
80                                 }
81                               },
82                               query : {name : ''+newVal}
83                             });
84                             
85                             ccvmGrid.resetStore();
86                             ccvmGrid.loadAll({order_by : {ccvm : 'code'}}, {ctype : newVal});
87                             ccvmGrid.overrideWidgetArgs.ctype = {dijitArgs : {value : newVal}};
88                             // ^-- why is this not working?
89                         }
90                     );
91                 }
92             );
93
94             // hide the progress indicator since we're not loading any data up front
95             dojo.style(ccvmGrid.loadProgressIndicator, 'visibility', 'hidden');
96         }
97     );
98
99 </script>
100
101 [% END %]