TableAjax.php.create.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // @require variables:
  2. if ('undefined' === typeof TABLE_AJAX_NODE_ID) throw "Missing TABLE_AJAX_NODE_ID"; // $this->_htmlID,
  3. if ('undefined' === typeof TABLE_AJAX_LABEL) throw "Missing TABLE_AJAX_LABEL"; // this->getLabelHtml()
  4. if ('undefined' === typeof NAMESPACE) throw "Missing NAMESPACE";
  5. if ('undefined' === typeof FIRCE_FILER_INIT) throw "Missing FIRCE_FILER_INIT";
  6. if ('undefined' === typeof FUNCTION_CREATE_ROUTE) throw "Missing FUNCTION_CREATE_ROUTE";
  7. if ('undefined' === typeof URL_CREATE_FORM_AJAX) throw "Missing URL_CREATE_FORM_AJAX";
  8. if ('undefined' === typeof URL_CREATE_FORM_LEGACY_HTML) throw "Missing URL_CREATE_FORM_LEGACY_HTML";
  9. function TableAjax__CREATE_Route() {
  10. var cont = jQuery('#' + TABLE_AJAX_NODE_ID).parent();
  11. cont.hide();
  12. // remove previous task content
  13. var taskCnt = jQuery('#' + TABLE_AJAX_NODE_ID + '_task');
  14. taskCnt.parent().remove();
  15. taskCnt.remove();
  16. var taskCont = jQuery('<div class="AjaxTableCont"></div>').insertBefore(cont);
  17. jQuery('<ul class="breadcrumb">' +
  18. '<li><a href="#" onclick="return tableAjaxBackToTable();">'+TABLE_AJAX_LABEL+'</a></li>' +
  19. '<li class="active">Dodaj nowy rekord</li>' +
  20. '</ul>').appendTo(taskCont);
  21. taskCnt = jQuery('<div id="' + TABLE_AJAX_NODE_ID + '_task" class="AjaxTableTaskCnt AjaxTable-loading"></div>').appendTo(taskCont);
  22. jQuery('<span class="loading-info"> loading ...</span>').appendTo(taskCnt);
  23. var reqData = {};
  24. var forceFilterInit = FIRCE_FILER_INIT; // TODO: read from TableAjax
  25. if (forceFilterInit) {
  26. $.map(forceFilterInit, function(fltrProps, fltr) {
  27. reqData['ff_' + fltr] = fltrProps;
  28. });
  29. }
  30. // TODO: replace jQuery.ajax
  31. // window.fetch(URL_CREATE_FORM_AJAX, {
  32. // method: 'GET',
  33. // credentials: 'same-origin',
  34. // }).then(function(response) {
  35. // return response.json()
  36. // }).then(function __route_edit_payload(payload) {
  37. // taskCnt.removeClass('AjaxTable-loading');
  38. // // console.log('editFormJson :: payload', payload)
  39. // if ('success' == payload.type) {
  40. // var node = document.createElement('div')
  41. // taskCnt.get(0).appendChild(node)
  42. // p5UI__buildDom(payload.body.reactNode, node)
  43. // initDateTimePicker(jQuery(node));
  44. // // console.log('editFormJson :: dom loaded - TODO: add action on save - P5UI__FeatureEditForm')
  45. // } else {
  46. // console.log('editFormJson :: ERROR payload', payload)
  47. // }
  48. // }).catch(function __route_edit_catch(e) {
  49. // taskCnt.removeClass('AjaxTable-loading');
  50. // console.log('editFormJson :: ERROR', e)
  51. // p5UI__notifyAjaxCallback({
  52. // type: 'error',
  53. // msg: 'Request error ' + e
  54. // });
  55. // });
  56. jQuery.ajax({
  57. url: URL_CREATE_FORM_LEGACY_HTML,
  58. type: 'GET',
  59. dataType: 'text',
  60. data: reqData,
  61. async: true,
  62. success: function(data) {
  63. taskCnt.removeClass('AjaxTable-loading');
  64. jQuery(data).appendTo(taskCnt);
  65. initDateTimePicker(taskCnt);
  66. },
  67. error: function(err) {
  68. taskCnt.removeClass('AjaxTable-loading');
  69. }
  70. });
  71. }
  72. global[FUNCTION_CREATE_ROUTE] = TableAjax__CREATE_Route