]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/templates/conify/global/cat/authority/control_set_authority_field.tt2
webstaff: throw a kitchen sink at double-scrollbar issues
[Evergreen.git] / Open-ILS / src / templates / conify / global / cat / authority / control_set_authority_field.tt2
1 [% WRAPPER base.tt2 %]
2 [% ctx.page_title = l("Configure Authority Authority Fields") %]
3 <div dojoType="dijit.layout.ContentPane" layoutAlign="client">
4     <div dojoType="dijit.layout.ContentPane" layoutAlign="top" class="oils-header-panel">
5         <div>[% l('Authority Fields') %]</div>
6         <div>
7             <button dojoType="dijit.form.Button" onClick="acsaf_grid.showCreateDialog()">[% l('New Authority Field') %]</button>
8             <button dojoType="dijit.form.Button" onClick="acsaf_grid.deleteSelected()">[% l('Delete Selected') %]</button>
9         </div>
10     </div>
11     <div id="control-set-metadata-holder" class="hidden">
12         [% l('Showing only authority fields linked to control set:') %]
13         <a id="control-set-metadata"></a>
14     </div>
15         <table  jsId="acsaf_grid"
16                 dojoType="openils.widget.AutoGrid"
17                 autoHeight="true"
18                 defaultCellWidth="'12%'"
19                 fieldOrder="['id','name','description','main_entry','control_set','tag','sf_list','bib_fields','axis_maps']"
20                 suppressEditFields="['id']"
21                 query="{id: '*'}"
22                 fmClass="acsaf"
23                 editOnEnter="true">
24             <thead>
25                 <tr>
26                     <th field="bib_fields" name="[% l('Controlled Bib Fields') %]"
27                         get="get_just_id" formatter="format_bib_fields"></th>
28                     <th field="axis_maps" name="[% l('Axes') %]"
29                         get="get_just_id" formatter="format_axis_maps"></th>
30                 </tr>
31             </thead>
32         </table>
33 </div>
34 <script type="text/javascript"
35     src="[% ctx.media_prefix %]/js/ui/default/conify/global/cat/authority/common.js"></script>
36 <script type="text/javascript">
37     dojo.require("openils.widget.AutoGrid");
38     dojo.require("openils.CGI");
39     dojo.require("openils.PermaCrud");
40
41     dojo.requireLocalization("openils.authority", "authority");
42     var localeStrings =
43         dojo.i18n.getLocalization("openils.authority", "authority");
44
45     var cgi, pcrud, control_set;
46     var acsaf_cache = {};
47
48     function acsaf_grid_loader() {
49         acsaf_cache = {};
50         acsaf_grid.resetStore();
51         acsaf_grid.showLoadProgressIndicator();
52         fieldmapper.standardRequest(
53             ["open-ils.cat",
54                 "open-ils.cat.authority.control_set_authority_field.retrieve"],{
55                 "async": true,
56                 "params": [
57                     acsaf_grid.displayLimit, acsaf_grid.displayOffset,
58                     control_set.id(), cgi.param("focus")
59                 ],
60                 "onresponse": function(r) {
61                     if (r = openils.Util.readResponse(r)) {
62                         acsaf_cache[r.id()] = r;
63                         acsaf_grid.store.newItem(r.toStoreItem());
64                     }
65                 },
66                 "oncomplete": function() {
67                     acsaf_grid.hideLoadProgressIndicator();
68                 }
69             }
70         );
71     }
72
73     function get_just_id(row_index, item) {
74         if (item) return this.grid.store.getValue(item, "id");
75     }
76
77     function format_axis_maps(id) {
78         if (id) {
79             var text = acsaf_cache[id].axis_maps().map(
80                 function(f) { return f.axis().name(); }
81             ).sort().join(", ") || localeStrings.NONE_LINK;
82             var href = "browse_axis_authority_field_map?";
83             if (control_set)
84                 href += "acs=" + control_set.id() + "&amp;";
85             href += "acsaf=" + id;
86             return "<a href='" + href + "'>"  + text + "</a>";
87         }
88     }
89
90     function format_bib_fields(id) {
91         if (id) {
92             var text = acsaf_cache[id].bib_fields().map(
93                 function(f) { return f.tag(); }
94             ).sort().join(", ") || localeStrings.NONE_LINK;
95             var href = "control_set_bib_field?";
96             if (control_set)
97                 href += "acs=" + control_set.id() + "&amp;";
98             href += "acsaf=" + id;
99             return "<a href='" + href + "'>"  + text + "</a>";
100         }
101     }
102
103     function my_init() {
104         cgi = new openils.CGI();
105         pcrud = new openils.PermaCrud();
106
107         control_set = cgi.param("acs");
108         if (control_set) {
109             control_set = pcrud.retrieve("acs", control_set);
110             render_control_set_metadata(control_set);
111
112             acsaf_grid.overrideEditWidgets.control_set =
113                 new dijit.form.TextBox({"disabled": true});
114             acsaf_grid.overrideEditWidgets.control_set.shove =
115                 {"create": control_set.id()};
116         }
117
118         acsaf_grid.onPostCreate = function(o) {
119             o.bib_fields([]);
120             o.axis_maps([]);
121             acsaf_cache[o.id()] = o;
122         };
123
124         acsaf_grid.dataLoader = acsaf_grid_loader;
125         acsaf_grid_loader();
126     }
127
128     openils.Util.addOnLoad(my_init);
129 </script>
130 [% END %]