other-list.php 7.6 KB

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