other-list.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. <?php
  2. session_start();
  3. if (!isset($_SESSION['loggedin'])) {
  4. header('Location: pages-signin.html');
  5. exit;
  6. }
  7. ?>
  8. <!doctype html>
  9. <html class="fixed">
  10. <head>
  11. <!-- jstree CSS -->
  12. <link rel="stylesheet" href="assets/vendor/jstree/themes/default/style.css" />
  13. <?php include("bim-support-header.html"); ?>
  14. <script src="./script/js/global.js"></script>
  15. <script src="./script/js/pdfobject.min.js"></script>
  16. <script type="application/javascript">
  17. var url_href = window.location.href;
  18. var url = new URL(url_href);
  19. var type = url.searchParams.get("type");
  20. if (type === null) {
  21. window.location.href = "other-list.php?type=收費建議";
  22. }
  23. var delFavoriteList = [];
  24. var i = 0;
  25. var path = [];
  26. var categoryList = [];
  27. var categoryTable = [];
  28. var id = [];
  29. var revitVersion = [];
  30. var userName = '<?php echo $_SESSION['name']; ?>';
  31. var url_href = window.location.href;
  32. var url = new URL(url_href);
  33. var $grid;
  34. var list;
  35. pageHeader = "BIM程式庫";
  36. </script>
  37. <style>
  38. .menu-item.active {
  39. color: #0088CC;
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <canvas id="c"></canvas>
  45. <section class="body">
  46. <!-- start: header -->
  47. <header-menu></header-menu>
  48. <!-- end: header -->
  49. <div class="inner-wrapper">
  50. <!-- start: sidebar -->
  51. <side-bar></side-bar>
  52. <!-- end: sidebar -->
  53. <section role="main" class="content-body">
  54. <header class="page-header">
  55. <h2>{{pageHeader}}</h2>
  56. </header>
  57. <!-- start: page -->
  58. <section class="content-with-menu content-with-menu-has-toolbar media-gallery">
  59. <div class="content-with-menu-container">
  60. <inner-menu>
  61. <template v-slot:inner-equipment>
  62. <other-list></other-list>
  63. </template>
  64. </inner-menu>
  65. <div class="inner-body mg-main">
  66. <div class="inner-toolbar">
  67. </div>
  68. <filter-content2></filter-content2>
  69. <div class="row">
  70. <div class="col-md-6">
  71. <section class="panel">
  72. <div class="panel-body">
  73. <h5 class="text-semibold text-dark text-uppercase">檔案下載</h5>
  74. <div id="treeAjaxHTML" style="height:800px"></div>
  75. </div>
  76. </section>
  77. </div>
  78. <div class="col-md-6">
  79. <section class="panel">
  80. <div class="panel-body">
  81. <div id="pdfFile" style="height:800px"></div>
  82. </div>
  83. </section>
  84. </div>
  85. </div>
  86. <!-- <div class="row mg-files" data-sort-destination="" data-sort-id="media-gallery" id="content" style="position: relative; height: 720.5px;">
  87. <isotope-item v-for="item in list" v-bind:name="item.APIName" v-bind:folder="item.APIID + item.APIName" v-bind:id="item.id" v-bind:object="item.object" v-bind:usage="item.usage" v-bind:software="item.software" v-bind:detail="item.detail" v-bind:operate="item.operate" v-bind:source="item.source">
  88. </isotope-item>
  89. </div> -->
  90. </div>
  91. </div>
  92. </section>
  93. <!-- end: page -->
  94. </section>
  95. </div>
  96. </section>
  97. <script>
  98. var folder = 'Dynamo/自動化汙水管線建置';
  99. $.ajax({
  100. url: "./script/php/getPath.php",
  101. type: "GET",
  102. async: false,
  103. data: {
  104. type: type,
  105. },
  106. contentType: "application/json",
  107. dataType: "json"
  108. }).done(function(data) {
  109. var table = data.table;
  110. for (i = 0; i < table.length; i++) {
  111. listObj = {};
  112. listObj["APIName"] = table[i].APIName;
  113. if (table[i].APIID == null)
  114. table[i].APIID = '';
  115. listObj["APIID"] = table[i].APIID;
  116. listObj["id"] = table[i].id;
  117. if (table[i].object != null)
  118. table[i].object = table[i].object.replaceAll(",", " ");
  119. listObj["object"] = table[i].object;
  120. if (table[i].usage != null)
  121. table[i].usage = table[i].usage.replaceAll(",", " ");
  122. listObj["usage"] = table[i].usage;
  123. listObj["software"] = table[i].software;
  124. listObj["detail"] = table[i].detail;
  125. listObj["operate"] = table[i].operate;
  126. listObj["source"] = table[i].source;
  127. list.push(listObj);
  128. }
  129. var filter = data.objectFilter;
  130. var filterArray = [];
  131. for (i = 0; i < filter.length; i++) {
  132. filterArray = filter[i].object.split(",")
  133. for (j = 0; j < filterArray.length; j++) {
  134. objectFilter.push(filterArray[j]);
  135. }
  136. }
  137. objectFilter = [...new Set(objectFilter)];
  138. filter = data.usageFilter;
  139. for (i = 0; i < filter.length; i++) {
  140. filterArray = filter[i].usage.split(",");
  141. for (j = 0; j < filterArray.length; j++) {
  142. usageFilter.push(filterArray[j]);
  143. }
  144. }
  145. usageFilter = [...new Set(usageFilter)];
  146. vm.mount('.body');
  147. }).error(function(error) {
  148. console.log(error);
  149. });
  150. </script>
  151. <?php include("bim-support-body.html"); ?>
  152. <script>
  153. // $(document).ready(function() {
  154. $grid = $("#content").isotope({
  155. itemSelector: ".isotope-item",
  156. layoutMode: 'fitRows',
  157. getSortData: {
  158. name: '.name',
  159. }
  160. })
  161. setTimeout(() => {
  162. $grid.isotope({
  163. sortBy: 'name'
  164. })
  165. }, 100);
  166. // });
  167. $(document).ready(function() {
  168. PDFObject.embed("./assets/null.pdf", "#pdfFile");
  169. console.log(type);
  170. $('#treeAjaxHTML').jstree({
  171. 'core': {
  172. 'themes': {
  173. 'responsive': false
  174. },
  175. 'check_callback': true,
  176. 'data': {
  177. 'url': './script/php/getBIMData.php?folder=' + type,
  178. }
  179. },
  180. 'types': {
  181. 'default': {
  182. 'icon': 'fa fa-folder'
  183. },
  184. 'file': {
  185. 'icon': 'fa fa-file-o'
  186. },
  187. 'pdf': {
  188. 'icon': 'fa fa-file-pdf-o'
  189. },
  190. 'word': {
  191. 'icon': 'fa fa-file-word-o'
  192. },
  193. 'excel': {
  194. 'icon': 'fa fa-file-excel-o'
  195. },
  196. 'ppt': {
  197. 'icon': 'fa fa-file-powerpoint-o'
  198. },
  199. 'f-open': {
  200. 'icon': 'fa fa-folder-open'
  201. },
  202. 'f-closed': {
  203. 'icon': 'fa fa-folder'
  204. }
  205. },
  206. 'plugins': ['types']
  207. }).on(
  208. 'select_node.jstree',
  209. function(event, data) {
  210. data.instance.toggle_node(data.node);
  211. if (data.node.text.includes(".") & !data.node.text.includes(".pdf")) {
  212. console.log(data.node);
  213. var link = document.createElement("a");
  214. link.download = data.node.text;
  215. link.href = data.node.a_attr.href;
  216. document.body.appendChild(link);
  217. link.click();
  218. document.body.removeChild(link);
  219. } else if (data.node.text.includes(".pdf")) {
  220. PDFObject.embed(data.node.a_attr.href, "#pdfFile");
  221. }
  222. }).bind('loaded.jstree', function(e, data) {
  223. // invoked after jstree has loaded
  224. /*$('.jstree-anchor').each(function(index) {
  225. if ($(this).attr('href').includes(".dll") || $(this).attr('href').includes(".dyn") || $(this).attr('href').includes(".exe") || $(this).attr('href').includes(".msi")) {
  226. folder.push($(this).attr('href'));
  227. }
  228. });
  229. if (api != null) {
  230. for (i = 0; i < api.length; i++) {
  231. var fileNames = api[i].split("/");
  232. fileName = fileNames[fileNames.length - 1];
  233. $("#apiList").append("<a download href='" + api[i] + "' id='api" + i + "'>" + fileName + "</a><br>");
  234. }
  235. }*/
  236. });
  237. $("#treeAjaxHTML").on('open_node.jstree', function(event, data) {
  238. data.instance.set_type(data.node, 'f-open');
  239. });
  240. $("#treeAjaxHTML").on('close_node.jstree', function(event, data) {
  241. data.instance.set_type(data.node, 'f-closed');
  242. });
  243. });
  244. </script>
  245. <script src="assets/vendor/jstree/jstree.js"></script>
  246. </body>
  247. </html>