--- /dev/null
+[%# We require add_to_po.js to be included, but can't do it ourselves. %]
+ <div dojoType="dijit.Dialog" jsId='addToPoDialog'>
+ <script type="dojo/connect" event="execute">
+ var dia = this;
+ var poId = addToPoInput.attr('value');
+ if (!poId) return false;
+
+ /* XXX we rely on a global liTable singleton. Ugh. */
+ var liId = liTable.getSelected()[0].id();
+ console.log("adding li " + liId + " to PO " + poId);
+
+ fieldmapper.standardRequest(
+ ['open-ils.acq',
+ 'open-ils.acq.purchase_order.add_lineitem'],
+ { async : true,
+ params : [openils.User.authtoken, poId, liId],
+ oncomplete : function(r) {
+ if ((r = openils.Util.readResponse(r))) {
+ if (r.success) {
+ location.href = oilsBasePath +
+ '/acq/po/view/' + poId;
+ } else {
+ if (r.error == 'bad-po-state') {
+ alert(localeStrings.ADD_LI_TO_PO_BAD_PO_STATE);
+ } else if (r.error == 'bad-li-state') {
+ alert(localeStrings.ADD_LI_TO_PO_BAD_LI_STATE);
+ }
+ }
+ }
+ dia.hide();
+ }
+ }
+ );
+ </script>
+ <script type="dojo/connect" event="onShow">
+ if (!window._already_addToPo_onShow) {
+ var dia = this;
+ openils.Util.registerEnterHandler(
+ addToPoInput.domNode,
+ function() { dia.execute(); }
+ );
+ window._already_addToPo_onShow = true;
+ }
+ </script>
+ <table class='dijitTooltipTable'>
+ <tr>
+ <td><label>[% l('Enter the PO Name: ') %]</label></td>
+ <td><input jsId='addToPoInput' name='addToPoInput' dojoType="dijit.form.TextBox" /></td>
+ </tr>
+ <tr>
+ <td colspan='2' align='center'>
+ <span dojoType='dijit.form.Button' type="submit">[% l('Save') %]</span>
+ </td>
+ </tr>
+ </table>
+ </div>
</div>
<div class="hidden">
- <div dojoType="dijit.Dialog" jsId='addToPoDialog'>
- <table class='dijitTooltipTable'>
- <tr>
- <td><label>[% l('Enter the PO #: ') %]</label></td>
- <td><input jsId='addToPoInput' dojoType="dijit.form.TextBox" /></td>
- </tr>
- <tr>
- <td colspan='2' align='center'>
- <button dojoType='dijit.form.Button' jsId='addToPoSave' type="submit">[% l('Save') %]</button>
- </td>
- </tr>
- </table>
- </div>
+ [% INCLUDE "acq/common/add_to_po.tt2" %]
</div>
</div>
[% INCLUDE "acq/common/info.tt2" which = "Related" %]
[% INCLUDE "acq/common/li_table.tt2" %]
+<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/common/add_to_po.js"></script>
<script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/acq/lineitem/related.js"></script>
[% END %]
prepareButtons();
fetchRelated();
- dojo.connect(addToPoSave, 'onClick', addToPo)
- openils.Util.registerEnterHandler(addToPoInput.domNode, addToPo);
-}
-
-var _addToPoHappened = false;
-function addToPo(args) {
- var poId = addToPoInput.attr('value');
- if (!poId) return false;
- if (_addToPoHappened) return false;
-
- var liId = liTable.getSelected()[0].id();
- console.log("adding li " + liId + " to PO " + poId);
-
- // hmm, addToPo is invoked twice for some reason...
- _addToPoHappened = true;
-
- fieldmapper.standardRequest(
- ['open-ils.acq', 'open-ils.acq.purchase_order.add_lineitem'],
- { async : true,
- params : [openils.User.authtoken, poId, liId],
- oncomplete : function(r) {
- var resp = openils.Util.readResponse(r);
- if (resp.success) {
- location.href = oilsBasePath + '/acq/po/view/' + poId;
- } else {
- _addToPoHappened = false;
- if (resp.error == 'bad-po-state') {
- alert(localeStrings.ADD_LI_TO_PO_BAD_PO_STATE);
- } else if (resp.error == 'bad-li-state') {
- alert(localeStrings.ADD_LI_TO_PO_BAD_LI_STATE);
- }
- }
- }
- }
- );
-
- addToPoDialog.hide();
- return false; // prevent form submission
}
openils.Util.addOnLoad(load);