step1.html.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <div id='mainContent' class='main-row'>
  2. <div class='main-col'>
  3. <style><?php include $this->app->getModuleRoot() . 'dataview/css/querybase.css';?></style>
  4. <?php include $this->app->getModuleRoot() . 'dataview/view/querybase.html.php';?>
  5. <script><?php include $this->app->getModuleRoot() . 'dataview/js/querybase.js';?></script>
  6. </div>
  7. </div>
  8. <div class="pull-right heading-actions">
  9. <button id="previewSql" type="button" class="btn hidden"><?php echo $lang->bi->previewSql;?></button>
  10. <button id="changeMode" type="button" class="btn"><i class="icon icon-exchange"></i><?php echo $lang->bi->toggleSqlBuilder;?></button>
  11. <button id="changeModeDisabled" type="button" class="btn disabled hidden" disabled title="<?php echo $lang->bi->modeDisableTip;?>"><i class="icon icon-exchange"></i><?php echo $lang->bi->toggleSqlBuilder;?></button>
  12. </div>
  13. <iframe id='sqlbuilder' class='hidden' style="width: 100%; border: none; height: 384px;" src=""></iframe>
  14. <script>
  15. window.sqlBuilderChange = function(builder)
  16. {
  17. $('#sql').val(builder.sql);
  18. DataStorage.sqlbuilder = builder;
  19. $('.error').addClass('hidden');
  20. }
  21. window.toggleChangeMode = function()
  22. {
  23. if($('#sql').val()?.length)
  24. {
  25. $('#changeMode').addClass('hidden');
  26. $('#changeModeDisabled').removeClass('hidden');
  27. }
  28. else
  29. {
  30. $('#changeMode').removeClass('hidden');
  31. $('#changeModeDisabled').addClass('hidden');
  32. }
  33. }
  34. window.doChangeMode = function()
  35. {
  36. DataStorage.mode = DataStorage.mode == 'text' ? 'builder' : 'text';
  37. updateMode();
  38. }
  39. window.updateMode = function()
  40. {
  41. if(DataStorage.mode == 'text')
  42. {
  43. $('#dictionary').removeClass('hidden');
  44. $('#queryPanel').css('width', '85%');
  45. $('#sql').removeClass('hidden');
  46. $('#sqlbuilder').addClass('hidden');
  47. $('#previewSql').addClass('hidden');
  48. $('#changeMode').html('<i class="icon icon-exchange"></i><?php echo $lang->bi->toggleSqlBuilder;?>');
  49. $('#sqlbuilder').attr('src', '');
  50. toggleChangeMode();
  51. }
  52. else
  53. {
  54. $('#dictionary').addClass('hidden');
  55. $('#queryPanel').css('width', '100%');
  56. $('#sql').addClass('hidden');
  57. $('#sqlbuilder').removeClass('hidden');
  58. $('#previewSql').removeClass('hidden');
  59. $('#changeMode').html('<i class="icon icon-exchange"></i><?php echo $lang->bi->toggleSqlText;?>');
  60. $('#sqlbuilder').attr('src', `<?php echo $this->createLink('sqlbuilder', 'index', "objectID={$chart->id}&objectType=chart");?>`);
  61. }
  62. }
  63. $(function()
  64. {
  65. $('#dataform .btn.query').after(<?php echo json_encode('<button type="button" class="btn btn-primary btn-next-step pull-right" onclick="nextStep()">' . $lang->chart->nextStep . '</button>');?>);
  66. $('.heading-actions').appendTo($('.main-col .panel-heading').first());
  67. $('#sql').after($('#sqlbuilder'));
  68. updateMode();
  69. $(document).on('change', '#sql', function()
  70. {
  71. toggleChangeMode();
  72. })
  73. $('#changeMode').click(function()
  74. {
  75. if(DataStorage.mode == 'builder')
  76. {
  77. bootbox.confirm({message: '<?php echo $lang->bi->changeModeTip;?>', callback: function(res) {if(res) doChangeMode()}});
  78. }
  79. else
  80. {
  81. doChangeMode();
  82. }
  83. });
  84. $('#previewSql').click(function()
  85. {
  86. var sql = $('#sql').val();
  87. if(!sql?.length) sql = '<?php echo $lang->bi->noSql;?>';
  88. sql = sql.replace(/\n/g, '<br />');
  89. bootbox.confirm({message: `<div>${sql}</div>`, callback:function(){}});
  90. })
  91. });
  92. </script>