2 <h1>[% l('Coded Value Maps') %]</h1> <br/>
4 <div dojoType="dijit.layout.ContentPane" layoutAlign="client" class='oils-header-panel'>
5 <div>[% l('Coded Value Maps') %]</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 <button dojoType='dijit.form.Button' onClick='ccvmGrid.showClonePane(handleClone)'>[% l('Clone Selected') %]</button>
13 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
14 <span>[% l('Record Attribute Type: ') %]</span><div id='attr-def-div'></div>
17 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
18 <table jsId="ccvmGrid"
20 dojoType="openils.widget.AutoGrid"
21 fieldOrder="['ctype', 'code', 'value', 'description', 'opac_visible', 'search_label', 'is_simple', 'composite_def']"
23 defaultCellWidth='"25%"'
28 <tr><th field='composite_def'
29 get='getCompositeDefLink'
30 formatter='formatCompositeDefLink'>
31 [% l('Composite Definition') %]</th></tr>
36 <script type ="text/javascript">
38 dojo.require('dijit.form.FilteringSelect');
39 dojo.require('openils.widget.AutoGrid');
40 dojo.require('openils.widget.AutoFieldWidget');
41 dojo.require('openils.PermaCrud');
43 function getCompositeDefLink(rowId, item) {
45 return this.grid.store.getValue(item, 'id');
48 var isComposite = false;
49 function formatCompositeDefLink(id) {
50 if (id && isComposite) {
51 return "<a href='" + oilsBasePath +
52 "/conify/global/config/composite_attr_entry_definition/"
53 + id + "'>[% l('Manage') %]</a>";
59 var cradName = '[% ctx.page_args.0 %]';
61 function handleClone(oldObj, newObj) {
62 if (!isComposite) return; // vanilla, non-composite clone
64 // fetch the composite def for the clone source object
65 var pcrud = new openils.PermaCrud();
66 pcrud.search('ccraed', {coded_value : oldObj.id}, {
68 oncomplete : function(r) {
69 composite_def = openils.Util.readResponse(r).pop();
71 // after cloning, jump to the composite def page
72 var dest = oilsBasePath
73 + '/conify/global/config/composite_attr_entry_definition/'
76 if (!composite_def || !composite_def.definition()) {
82 // copy the composite definition from the clone
83 // source object into the clone destination object
84 var new_def = new fieldmapper.ccraed();
85 new_def.coded_value(newObj.id());
86 new_def.definition(composite_def.definition());
87 pcrud.create(new_def, {
88 oncomplete : function(r) {
89 openils.Util.readResponse(r); // test for alerts
97 openils.Util.addOnLoad(
100 var selector = new openils.widget.AutoFieldWidget({
103 parentNode : dojo.byId('attr-def-div')
108 dojo.connect(w, 'onChange',
111 // see if this attr def supports composite entries
113 onComplete : function(list) {
114 if (!list.length) return;
115 var comp = w.store.getValue(list[0], 'composite');
122 query : {name : ''+newVal}
125 ccvmGrid.resetStore();
126 ccvmGrid.loadAll({order_by : {ccvm : 'code'}}, {ctype : newVal});
127 ccvmGrid.overrideWidgetArgs.ctype = {dijitArgs : {value : newVal}};
128 // ^-- why is this not working?
132 // if a crad is already selected via URL, fetch the ccvm's
133 if (cradName) w.attr('value', cradName);
137 // hide the progress indicator since we're not loading any data up front
138 dojo.style(ccvmGrid.loadProgressIndicator, 'visibility', 'hidden');