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