view.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. $(document).ready(function()
  2. {
  3. $(document).on('click', 'td.child .addItem', function()
  4. {
  5. var child = $(this).parents('table').data('child');
  6. $(this).closest('tr').after(window.itemRows[child].replace(/KEY/g, window.childKey));
  7. initSelect($(this).closest('tr').next().find('.picker-select'));
  8. $(this).closest('tr').next().find('.form-date, .form-datetime').datetimepicker(
  9. {
  10. language: config.clientLang,
  11. weekStart: 1,
  12. todayBtn: 1,
  13. autoclose: 1,
  14. todayHighlight: 1,
  15. startView: 2,
  16. minView: 2,
  17. forceParse: 0,
  18. format: 'yyyy-mm-dd'
  19. });
  20. });
  21. $(document).on('click', 'td.child .delItem', function()
  22. {
  23. if($(this).parents('.table-child').find('tr').size() > 1)
  24. {
  25. $(this).closest('tr').remove();
  26. }
  27. else
  28. {
  29. $(this).closest('tr').find('input,select,textarea').val('');
  30. }
  31. })
  32. $('.reloadPage').click(function()
  33. {
  34. url = $(this).attr('href');
  35. $.getJSON(url, function(response)
  36. {
  37. if(response.message)
  38. {
  39. bootbox.alert(response.message, function()
  40. {
  41. if(response.locate)
  42. {
  43. location.href = response.locate;
  44. return false;
  45. }
  46. location.reload();
  47. });
  48. }
  49. else
  50. {
  51. if(response.locate)
  52. {
  53. location.href = response.locate;
  54. return false;
  55. }
  56. location.reload();
  57. }
  58. });
  59. return false;
  60. });
  61. $('#linkType').change(function()
  62. {
  63. var linkType = $(this).val();
  64. if(!linkType) return false;
  65. $('#linkTypeBox').modal('hide', 'fit');
  66. loadUnlinkData(linkType, 'browse', $(this).find('option:selected').text());
  67. });
  68. $('.unlink').click(function()
  69. {
  70. var url = $(this).attr('href');
  71. var confirm = $(this).data('confirm');
  72. bootbox.confirm(confirm, function(result)
  73. {
  74. if(result)
  75. {
  76. $.getJSON(url, function(response)
  77. {
  78. if(response.result == 'success')
  79. {
  80. location.reload();
  81. }
  82. else
  83. {
  84. bootbox.alert(response.message);
  85. }
  86. })
  87. }
  88. })
  89. return false;
  90. });
  91. $('.prevP').each(function()
  92. {
  93. loadPrevData($(this), 0, 'p');
  94. });
  95. $('.prevTR').each(function()
  96. {
  97. loadPrevData($(this), 0);
  98. });
  99. $('a[href=#' + window.linkType + ']').click();
  100. $.setAjaxForm('.form-ajax');
  101. if(window.viewMode == 'bysearch') loadUnlinkData(window.linkType, 'bysearch');
  102. fixMainAction();
  103. })
  104. function loadUnlinkData(linkType, mode, tabTitle)
  105. {
  106. tabTitle = typeof tabTitle === 'undefined' ? '' : tabTitle;
  107. var pane = $('#' + linkType).length == 1 ? linkType : 'common';
  108. var $navTab = $('#tabsNav .nav-tabs a[href=#' + pane + ']').parent();
  109. if($navTab.hasClass('hidden')) $navTab.removeClass('hidden');
  110. if(!$navTab.hasClass('active')) $navTab.find('a').click();
  111. if(tabTitle) $navTab.find('a').html(tabTitle);
  112. $('#querybox').remove();
  113. var link = window.loadLink.replace('LINKTYPE', linkType).replace('MODE', mode);
  114. $.get(link, function(data)
  115. {
  116. $('#' + pane).html(data);
  117. $('#' + pane).find('[data-ride=table]').table();
  118. $('#' + pane).removeClass('without-search');
  119. initSearch();
  120. });
  121. }
  122. function fixMainAction()
  123. {
  124. var wHeight = $(window).height();
  125. var fTop = $('.tab-content .tab-pane:first .main-actions').offset().top;
  126. var fHeight = $('.tab-content .tab-pane:first .main-actions').outerHeight();
  127. if(fTop + fHeight >= wHeight)
  128. {
  129. $('body').addClass('main-actions-fixed');
  130. $('.main-actions').addClass('col-9');
  131. }
  132. var mainAction = $('#mainContent .main-row > .main-col, #mainContent .main-col').find('.main-actions');
  133. mainAction.after('<div class="main-actions-holder"></div>');
  134. $('.main-actions-holder').css('height', mainAction.outerHeight());
  135. }