ProjektyProNetMediaZamZlec.php.zam-zlec-list.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. // @requires var SAVE_ORDER_NOTES_URL
  2. // @requires var DBG
  3. function submitZamowienie(fld) {
  4. var frm = fld.form;
  5. frm['_task'].value='addZamowienie';
  6. }
  7. function submitZlecenie(fld) {
  8. var frm = fld.form;
  9. frm['_task'].value='addZlecenie';
  10. }
  11. (function() {
  12. var _saveOrderNotesLink = SAVE_ORDER_NOTES_URL;
  13. var _dbg = DBG;
  14. jQuery(document).on('p5:ZamZlec:editNote:click', function(e, n, payload) {
  15. if (!payload || !payload.props || !payload.props.idOrder) return false;
  16. // TODO: load current value for field 'ORDER_NOTES' from ajax
  17. // superagent
  18. // .post(_saveOrderNotesLink)
  19. // .type('json') // header ĺapplication/x-www-form-urlencoded' requires type('form');
  20. // .send({
  21. // notes: orderNotes
  22. // })
  23. // .set('Accept', 'application/json')
  24. // .end(function(err, res) {
  25. // if(_dbg)console.log('#widget-zamzlec/editOrderNotes: res:', res, 'res.body:', res.body)
  26. // if (err || !res.ok) {
  27. // // jQuery(document).trigger('DBG:notify', {type: 'warning', msg: 'Req error', err: err});
  28. // reject("Request error")
  29. // } else {
  30. // if ('application/json' !== res.type) {
  31. // reject("Wrong response type - required json")
  32. // return
  33. // }
  34. // if (!res.body.id || res.body.id <= 0) reject(res.body.msg || "Wystąpiły błędy podczas dodawaniu kosztu")
  35. // resolve(res.body)
  36. // }
  37. // })
  38. var orderNotes = jQuery(n).parent().find('.order-notes').text()
  39. zamZlec__editOrderNote(n, payload.props.idOrder, payload.props.label || '', orderNotes)
  40. });
  41. function zamZlec__editOrderNote(n, idOrder, orderLabel, orderNotes) {
  42. var noteNode = n;
  43. console.log('TODO: edit note for idOrder('+idOrder+') orderNotes', orderNotes)
  44. swal({
  45. title: 'Uwagi do zamówienia',
  46. html: 'nr: "' + orderLabel + '" (id:'+idOrder+')',
  47. animation: false,
  48. input: 'textarea',
  49. inputPlaceholder: 'uwagi...',
  50. inputValue: orderNotes,
  51. // inputAttributes: {'step': '0.01'},
  52. showCancelButton: true,
  53. confirmButtonText: 'Zapisz',
  54. showLoaderOnConfirm: true,
  55. showCloseButton: true,
  56. preConfirm: function(orderNotes) {
  57. return new Promise(function(resolve, reject) {
  58. if (orderNotes.length > 255) reject('Przekroczono limit długości znaków')
  59. superagent
  60. .post(_saveOrderNotesLink)
  61. .type('json') // header ĺapplication/x-www-form-urlencoded' requires type('form');
  62. .send({
  63. id: idOrder,
  64. notes: orderNotes
  65. })
  66. .set('Accept', 'application/json')
  67. .end(function(err, res) {
  68. if(_dbg)console.log('#widget-zamzlec/editOrderNotes: res:', res, 'res.body:', res.body)
  69. if (err || !res.ok) {
  70. reject((res.body && res.body.msg) ? res.body.msg || "Request error" : "Request error")
  71. } else {
  72. if ('application/json' !== res.type) {
  73. reject("Wrong response type - required json")
  74. return
  75. }
  76. if (!res.body.order || res.body.order.ID <= 0) reject(res.body.msg || "Wystąpiły błędy")
  77. resolve(res.body.order)
  78. }
  79. })
  80. })
  81. },
  82. allowOutsideClick: false
  83. }).then(function(order) {
  84. if(_dbg)console.log('#widget-zamzlec/editOrderNotes: order:', order)
  85. zamZlec__renderNote(order.ID, order.ORDER_NOTES, n)
  86. }).catch(function(e) {
  87. // eg. hit Cancel
  88. })
  89. }
  90. function zamZlec__renderNote(idOrder, notes, noteNode) {
  91. console.log('TODO: edit note for idOrder('+idOrder+'), noteNode:', noteNode, 'notes:', notes);
  92. jQuery(noteNode).parent().find('.order-notes').text(notes)
  93. }
  94. })();
  95. global.submitZamowienie = submitZamowienie
  96. global.submitZlecenie = submitZlecenie