Ohm-Management - Projektarbeit B-ME
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <!-- NOTE: Meta Tags -->
  5. <meta charset="utf-8">
  6. <meta name="description" content="Ohm management app">
  7. <meta name="keywords" content="">
  8. <meta name="author" content="">
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  10. <!--for demonstration:-->
  11. <!-- <meta http-equiv="refresh" content="10">
  12. <!-- <meta http-equiv="refresh" content="30"> -->
  13. <!-- NOTE: Define Theme Color -->
  14. <!-- Chrome, Firefox OS and Opera -->
  15. <meta name="theme-color" content="#0046a0">
  16. <!-- NOTE: Icon for tab recognition -->
  17. <!-- highest resolution for Chrome & Opera -->
  18. <link rel="icon" sizes="192x192" href="favicon.ico">
  19. <!-- icons for Safari -> iOS Icons -->
  20. <!-- icons for IE & Windows phone -->
  21. <meta name="msapplication-square70x70logo" content="icon_smalltile.png">
  22. <meta name="msapplication-square150x150logo" content="icon_mediumtile.png">
  23. <meta name="msapplication-square310x310logo" content="icon_largetile.png">
  24. <meta name="msapplication-wide310x150logo" content="icon_widetile.png">
  25. <!-- NOTE: iOS - Add to Homescreen -->
  26. <!-- Hide Safari UI Components -->
  27. <meta name="apple-mobile-web-app-capable" content="yes" />
  28. <!-- iOS Status bar: black or black-translucent -->
  29. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  30. <!-- iOS App Name next to Icon -->
  31. <meta name="apple-mobile-web-app-title" content="OHM News">
  32. <!-- Icon: No transparency allowed -->
  33. <link rel="apple-touch-icon" href="img/launcher/ios_launcher_app_icon_192.png"> <!-- iphone -->
  34. <link rel="apple-touch-icon" sizes="152x152" href="img/launcher/ios_launcher_app_icon_152.png"><!-- ipad -->
  35. <link rel="apple-touch-icon" sizes="180x180" href="img/launcher/ios_launcher_app_icon_180.png"><!-- iphone-retina -->
  36. <link rel="apple-touch-icon" sizes="167x167" href="img/launcher/ios_launcher_app_icon_167.png"><!-- ipad-retina -->
  37. <!-- Splash screen: If not set, will be white screen -->
  38. <link rel="apple-touch-startup-image" sizes="2048x2732" href="ios-splash/apple_splash_2048.png" /><!-- Tablet -->
  39. <link rel="apple-touch-startup-image" sizes="1668x2224"href="ios-splash/apple_splash_1668.png" /><!-- Tablet -->
  40. <link rel="apple-touch-startup-image" sizes="1536x2048" href="ios-splash/apple_splash_1536.png" /><!-- Tablet -->
  41. <link rel="apple-touch-startup-image" sizes="1125x2436" href="ios-splash/apple_splash_1125.png" /><!-- Tablet ? Phone -->
  42. <link rel="apple-touch-startup-image" sizes="1242x2208" href="ios-splash/apple_splash_1242.png" /><!-- Tablet ? Phone -->
  43. <link rel="apple-touch-startup-image" sizes="750x1334" href="ios-splash/apple_splash_750.png" /><!-- Phone -->
  44. <link rel="apple-touch-startup-image" sizes="640x1136" href="ios-splash/apple_splash_640.png" /><!-- Phone -->
  45. <!-- NOTE: CSS -->
  46. <!-- CSS_Material Design for Bootstrap fonts and icons -->
  47. <link rel="stylesheet" href="lib/bootstrap-font-and-icons.css">
  48. <!-- NOTE: Call manifest.json -->
  49. <link rel="manifest" href="manifest.json">
  50. <!-- NOTE: Load JQuery, Vue.js, VueRouter, Vuetify -->
  51. <script src="lib/jquery-3.3.1.min.js"></script>
  52. <script src="lib/vue-2.6.10.js"></script>
  53. <script src="lib/vue-router-3.0.1.js"></script>
  54. <!-- Buefy/Vuetify -->
  55. <script src="lib/buefy-0.7.5.js"></script>
  56. <!-- <script src="lib/buefy-0.7.5.min.js"></script>-->
  57. <link rel="stylesheet" href="https://cdn.materialdesignicons.com/2.5.94/css/materialdesignicons.min.css">
  58. <link rel="stylesheet" type="text/css" href="lib/buefy-0.7.5.css">
  59. <!--<link rel="stylesheet" type="text/css" href="lib/buefy-0.7.5.min.css">-->
  60. <!-- CSS_Custom Design -->
  61. <link rel="stylesheet" type="text/css" href="style/style.css">
  62. <!-- NOTE: JavaScript Libs & Files -->
  63. <script src="routes/home.js"></script>
  64. <script src="routes/files.js"></script>
  65. <script src="routes/createMessage.js"></script>
  66. <script src="routes/bookmark.js"></script>
  67. <script src="routes/profil.js"></script>
  68. <script src="routes/msgCard.js"></script>
  69. <script src="routes/messageData.js"></script>
  70. <script src="routes/tagData.js"></script>
  71. <script src="routes/profilCard.js"></script>
  72. <script src="routes/profilData.js"></script>
  73. <script src="routes/login.js"></script>
  74. <script src="routes/navRoutes.js"></script>
  75. <title>OHM News</title>
  76. </head>
  77. <body>
  78. <div id="api">
  79. <div class="om-header-container">
  80. <div class="om-header">
  81. <a class="logo-img" href="index.html"><img src="img/app_icon.png" width=45px height=45px></a>
  82. <form class="om-searchbar" @submit.prevent="search()">
  83. <b-field>
  84. <b-autocomplete
  85. rounded
  86. v-model="searchtext"
  87. @keydown.native.enter="search"
  88. :data="filteredDataArray"
  89. placeholder="suche..."
  90. icon="magnify"
  91. @select="option => selected = option">
  92. </b-autocomplete>
  93. <button @click="clear">x</button>
  94. </b-field>
  95. </form>
  96. </div>
  97. </div>
  98. <div class="om-content">
  99. <div id=xxx></div>
  100. <nav-router></nav-router>
  101. <router-view></router-view>
  102. </div>
  103. </div>
  104. <script>
  105. var tagArray = ["lorem"];
  106. const dat=[
  107. 'th',
  108. 'efi',
  109. 'wichtig',
  110. ];
  111. </script>
  112. <script>
  113. var app = new Vue({
  114. router,
  115. el: '#api',
  116. data: function() {
  117. return {
  118. searchtext: "",
  119. isSearchActiv: false,
  120. selected: [],
  121. taglist: dat,
  122. };
  123. },
  124. computed:{
  125. filteredDataArray() {
  126. return this.taglist.filter((option) => {
  127. return option
  128. .toString()
  129. .toLowerCase()
  130. .indexOf(this.searchtext.toLowerCase()) >= 0
  131. })
  132. }
  133. },
  134. methods: {
  135. search: function() {
  136. this.isSearchActiv = true;
  137. console.log("Searchtext: " +this.searchtext.replace(/#/g,''));
  138. $.ajax({
  139. url: "api/msg/search/" + this.searchtext.replace(/#/g, ''),
  140. method: "GET"
  141. }).done(jd => {
  142. // NICHT SO wg. Vue: _messagelist = jd;
  143. _messagelist.splice(0, _messagelist.length);
  144. _messagelist.push.apply(_messagelist, jd);
  145. //console.log("jd: "+jd);
  146. for (var e in jd) {
  147. if (!_messages[jd[e]]) {
  148. get_insert_message(jd[e]);
  149. }
  150. }
  151. }).fail(function(e, f, g) {
  152. console.log("searching: err: " + e + f + g);
  153. })
  154. },
  155. list_messages: function () {
  156. $.ajax({url: "api/msg/ids", method: "GET"})
  157. .done(jd => {
  158. // NICHT SO wg. Vue: _messagelist = jd;
  159. _messagelist.splice(0, _messagelist.length);
  160. _messagelist.push.apply(_messagelist, jd);
  161. //console.log("jd: "+jd);
  162. for (var e in jd) {
  163. if (!_messages[jd[e]]) {
  164. get_insert_message(jd[e]);
  165. }
  166. }
  167. }).fail(function (e, f, g) {
  168. console.log("list_msg: err: " + e + f + g);
  169. });
  170. },
  171. getFilteredTags(text) {
  172. this.taglist = dat.filter((option) => {
  173. return option
  174. .toString()
  175. .toLowerCase()
  176. .indexOf(text.toLowerCase()) >= 0
  177. })
  178. this.search();
  179. },
  180. saveTagsToArray: function() {
  181. tagArray = this.selected;
  182. console.info(tagArray);
  183. },
  184. list_tags: function () {
  185. $.ajax({url: "api/tag/ids",method: "GET"})
  186. .done(jd => {
  187. // NICHT SO wg. Vue: _messagelist = jd;
  188. _taglist.splice(0, _taglist.length);
  189. _taglist.push.apply(_taglist, jd);
  190. console.log("tag: jd: " + jd);
  191. for (var e in jd) {
  192. if (!_tags[jd[e]]) {
  193. get_insert_tag(jd[e]);
  194. }
  195. }
  196. }).fail(function (e, f, g) {
  197. console.log("err: " + e + f + g);
  198. });
  199. },
  200. clear: function() {
  201. console.log("clear");
  202. this.isSearchActiv = false;
  203. this.searchtext = "";
  204. this.list_messages();
  205. },
  206. },
  207. mounted: function () {
  208. //this.search();
  209. this.list_tags();
  210. },
  211. });
  212. function get_insert_tag(id){
  213. $.ajax({ url: "api/tag/"+id, method: "GET" }).done(function (tag) {
  214. dat.push("#"+tag.name);
  215. console.log("it worked!");
  216. }).fail(function (e, f, g) {
  217. console.log("cannot load " + id + ".json: " + e + f + g);
  218. })
  219. }
  220. const search_data = [];
  221. /*
  222. export.default {
  223. data: function () {
  224. return {
  225. selected: [],
  226. taglist: data,
  227. };
  228. },
  229. computed: {
  230. filteredTagArray() {
  231. this.taglist = data.filter((option) => {
  232. return option
  233. .toString()
  234. .toLowerCase()
  235. .indexOf(this.name.toLowerCase()) >= 0
  236. })
  237. },
  238. },
  239. methods: {
  240. evaluate(text) {
  241. this.taglist = data.filter((option) => {
  242. return option
  243. .toString()
  244. .toLowerCase()
  245. .indexOf(text.toLowerCase()) >= 0
  246. })
  247. },
  248. },
  249. mounted: function () {
  250. if ($(this).bootstrapMaterialDesign)
  251. $(this).bootstrapMaterialDesign();
  252. },
  253. };
  254. */
  255. </script>
  256. <!-- CDN_Vue.js minified lib -->
  257. <!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.min.js"></script> -->
  258. <!-- CDN_jQuery minified lib -->
  259. <!--<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>-->
  260. <!-- Load Popper.js -->
  261. <script src="lib/popper-1.12.6.js"></script>
  262. <!-- Load Bootstrap.js -->
  263. <script src="lib/bootstrap-material-design.js"></script>
  264. <!-- NOTE: Call main.js -->
  265. <script src="main.js"></script>
  266. </body>
  267. </html>