2 [% WRAPPER "base.tt2" %]
4 [%- IF CGI.param('context') == 'scv' %]
7 [%- IF CGI.param('id') != 'new' %]
8 sub_id = [% CGI.param('id') %];
13 <script src="[% ctx.media_prefix %]/js/ui/default/serial/common.js">
15 <script src="[% ctx.media_prefix %]/js/ui/default/serial/subscription.js">
17 <script src="[% ctx.media_prefix %]/js/ui/default/serial/subscription/distribution.js"></script>
18 <script src="[% ctx.media_prefix %]/js/ui/default/serial/subscription/caption_and_pattern.js">
20 <script src="[% ctx.media_prefix %]/js/ui/default/serial/subscription/issuance.js">
23 <div dojoType="dijit.layout.ContentPane" layout="top" class="oils-header-panel">
24 <div>[% l('Subscription Details') %]</div>
26 <span dojoType="dijit.form.Button" onClick="clone_dialog.show();">
27 [% l('Clone Subscription') %]
29 <span dojoType="dijit.form.Button" onClick="open_batch_receive();">
30 [% l('Batch Item Receive') %]
35 <div dojoType="dijit.layout.TabContainer" jsId="tab_container"
36 class="oils-serial-tab-container">
38 <!-- Subscription Summary -->
39 [%- IF CGI.param('context') == 'scv' -%]
40 <div dojoType="dijit.layout.ContentPane" title="[% l('View/Edit') %]" selected="true">
41 <div dojoType="dijit.layout.ContentPane" layout="top"
42 class="oils-header-panel lesser">
43 <div>[% l('Subscriptions') %]</div>
44 <div style="margin-right: 16px;">
45 <span dojoType="dijit.form.Button"
46 onClick="open_notes('sub', ssub_grid);">[% l('View/Edit Notes') %]</span>
50 <script type="dojo/connect" event="onShow">
51 if(ssub_grid.store && !ssub_grid._fresh) { // onShow fires twice on initial page load; we only want to run the second time (and subsequent times)
52 ssub_grid.resetStore();
55 {"order_by": {"ssub": "start_date DESC"}},
59 ssub_grid._fresh = true;
62 <table jsId="ssub_grid"
63 dojoType="openils.widget.AutoGrid"
65 fieldOrder="['id','owning_lib','start_date','end_date']"
66 suppressFields="['record_entry']"
69 onPostSubmit="attempt_reload_opac"
70 showSequenceFields="true"
75 <div dojoType="dijit.layout.ContentPane" title="[% l('Summary') %]" selected="true">
76 <script type="dojo/connect" event="onShow">
77 load_sub_grid(sub_id);
79 <table jsId="sub_grid"
80 dojoType="dojox.grid.DataGrid" query="{id: '*'}" rowSelector="20px">
83 <th field="id">[% l('ID') %]</th>
84 <th field="owning_lib" formatter="format_org_unit">
85 [% l('Owning Library') %]
87 <th field="start_date" formatter="format_date">
90 <th field="end_date" formatter="format_date">
93 <th field="record_entry" width="20em"
94 formatter="format_bib">
95 [% l('Bibliographic Record') %]
97 <th field="expected_date_offset">[% l('Expected Date Offset') %]</th>
98 <th field="num_dist">[% l('Number of Distributions') %]</th>
105 <!-- Distributions -->
106 <div dojoType="dijit.layout.ContentPane" jsId="distributions_tab"
107 title="[% l('Distributions') %]" layoutAlign="client">
108 <script type="dojo/connect" event="onShow">
109 if (!dist_grid._fresh) {
110 dist_grid.resetStore();
112 {"order_by": {"sdist": "holding_lib"}},
113 {"subscription": sub_id}
115 dist_grid._fresh = true;
118 if (!dist_grid.overrideEditWidgets.subscription) {
119 dist_grid.overrideEditWidgets.subscription =
120 new dijit.form.TextBox({
121 "disabled": true, "value": sub_id
124 [%- IF CGI.param('context') == 'scv' -%]
125 // attach the holding_lib selector to the record_entry selector
126 dist_grid.overrideWidgetArgs.holding_lib = {'dijitArgs' : {'onChange' : function(value) { populate_sre_selector(dist_grid, value); } }};
129 var _display_grouping_store = new dojo.data.ItemFileReadStore({
131 "identifier": "display_grouping",
134 {"display_grouping": "chron",
135 "label": "[% l('Chronology') %]"},
136 {"display_grouping": "enum",
137 "label": "[% l('Enumeration') %]"}
142 var settings = fieldmapper.aou.fetchOrgSettingBatch(
143 openils.User.user.ws_ou(),
144 ["serial.default_display_grouping"]
146 var default_display_grouping = "chron";
148 if (settings && settings["serial.default_display_grouping"]) {
149 default_display_grouping =
150 settings["serial.default_display_grouping"].value;
153 dist_grid.overrideEditWidgets.display_grouping =
154 new dijit.form.FilteringSelect({
155 "store": _display_grouping_store,
156 "searchAttr": "label",
157 "name": "display_grouping"
159 dist_grid.overrideEditWidgets.display_grouping.shove = {
160 "create": default_display_grouping
163 var _summary_method_store = new dojo.data.ItemFileReadStore({
165 "identifier": "summary_method",
168 {"summary_method": "add_to_sre",
169 "label": "[% l('Add to record entry') %]"},
170 {"summary_method": "merge_with_sre",
171 "label": "[% l('Merge with record entry') %]"},
172 {"summary_method": "use_sre_only",
173 "label": "[% l('Use record entry only') %]"},
174 {"summary_method": "use_sdist_only",
175 "label": "[% l('Do not use record entry') %]"}
180 dist_grid.overrideEditWidgets.summary_method =
181 new dijit.form.FilteringSelect({
182 "store": _summary_method_store,
183 "searchAttr": "label",
184 "name": "summary_method"
186 // TODO: add setting for default selection?
187 dist_grid.overrideEditWidgets.summary_method.shove = {
188 "create": "add_to_sre"
193 [% INCLUDE "serial/subscription/distribution.tt2" %]
196 <!-- Caption/Pattern -->
197 <div dojoType="dijit.layout.ContentPane"
198 title="[% l('Captions and Patterns') %]" layoutAlign="client">
199 <script type="dojo/connect" event="onShow">
201 cap_editor = new SCAPEditor(sub_id);
202 cap_importer = new SCAPImporter(sub);
205 [% INCLUDE "serial/subscription/caption_and_pattern.tt2" %]
209 <div dojoType="dijit.layout.ContentPane" jsId="issuances_tab"
210 title="[% l('Issuances') %]" layoutAlign="client">
211 <script type="dojo/connect" event="onShow">
212 if (!iss_grid._fresh) {
213 iss_grid.resetStore();
215 {"order_by": {"siss": "date_published"}},
216 {"subscription": sub_id}
218 iss_grid._fresh = true;
221 if (!iss_grid.overrideEditWidgets.subscription) {
222 iss_grid.overrideEditWidgets.subscription =
223 new dijit.form.TextBox({
224 "disabled": true, "value": sub_id
227 iss_grid.overrideEditWidgets.creator =
228 new dijit.form.TextBox({"disabled": true});
229 iss_grid.overrideEditWidgets.creator.shove = {
230 "create": openils.User.user.id()
233 iss_grid.overrideEditWidgets.editor =
234 new dijit.form.TextBox({
235 "disabled": true, "value": openils.User.user.id()
238 iss_grid.overrideEditWidgets.holding_type =
239 new dijit.form.TextBox({"disabled": true});
240 iss_grid.overrideEditWidgets.holding_type.shove = {"create":""};
242 iss_grid.overrideEditWidgets.holding_type =
243 new dijit.form.TextBox;
245 fresh_scap_selector(iss_grid);
247 [% INCLUDE "serial/subscription/issuance.tt2" %]
251 <div dojoType="openils.widget.ProgressDialog" jsId="progress_dialog"></div>
252 <div dojoType="dijit.Dialog" jsId="clone_dialog" title="[% l('Clone Subscription') %]"
253 style="width: 460px;" execute="clone_subscription(arguments[0]);">
254 <div style="margin-bottom: 0.5em;">
255 [% |l %]This feature will clone a subscription and all of its subscription
256 notes, distributions, distribution notes, captions and patterns,
257 streams, and routing list users.[% END %]</div>
258 <div style="margin-bottom: 0.5em;">
259 [% |l %]Holdings-related objects, like issuances, items, units, and
260 summaries will <em>not</em> be cloned.[% END %]
262 <div style="margin-bottom: 0.5em;">
263 [% |l %]To what bibliographic record should the new subscription be
268 <td style="padding-right: 0.5em; vertical-align: top;">
269 <input dojoType="dijit.form.RadioButton"
270 id="use_ident_no" name="use_ident" value="no"
274 <label for="use_ident_no">
275 [% l('Same record as the existing subscription') %]
280 <td style="padding-right: 0.5em; vertical-align: top;">
281 <input dojoType="dijit.form.RadioButton"
282 onChange="toggle_clone_ident_field(this);"
283 id="use_ident_yes" name="use_ident" value="yes" />
286 <label for="use_ident_yes">
287 [% l('Record specified by this unique identifier:') %]
289 <input dojoType="dijit.form.TextBox" name="ident"
290 jsId="clone_ident" disabled="true"
291 style="margin-left: 0.5em; width: 10em;" />
295 <td colspan="2" align="center">
296 <span dojoType="dijit.form.Button" type="submit">